You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -178,53 +178,20 @@ Si le nombre d'extensions est nul, il y a un problème avec la configuration de
178
178
## Linux
179
179
180
180
Ces instructions sont conçues pour les utilisateurs d'Ubuntu, mais vous devriez pouvoir suivre ces instructions depuis
181
-
une autre distribution si vous recompilez vous-même le SDK et adaptez les commandes "apt" à votre propre gestionnaire de
182
-
packages. Il vous faut un compilateur qui supporte C++17 (GCC 7+ ou Clang 5+). Vous aurez également besoin de make et de CMake.
181
+
une autre distribution si vous adaptez les commandes "apt" à votre propre gestionnaire de
182
+
packages. Il vous faut un compilateur qui supporte C++17 (GCC 7+ ou Clang 5+). Vous aurez également besoin de make.
183
183
184
-
### Le SDK Vulkan
185
-
186
-
Le composant central au développement d'application Vulkan est le SDK. Il inclut les headers, les validation layers
187
-
standards, des outils de débogage et un loader pour les fonctions Vulkan. Ce loader récupère les fonctions dans le
188
-
driver à l'exécution, comme GLEW pour OpenGL, si cela vous parle.
189
-
190
-
Le SDK peut être téléchargé sur [le site LunarG](https://vulkan.lunarg.com/) en utilisant les boutons en bas de page.
191
-
Vous n'avez pas besoin de compte, mais celui-ci vous donne accès à une documentation supplémentaire qui pourra vous être
192
-
utile.
193
-
194
-

195
-
196
-
Ouvrez un terminal dans le dossier où vous avez téléchargé l'archive en ".tar.gz" et extrayez-là :
197
-
198
-
```bash
199
-
tar -xzf vulkansdk-linux-x86_64-xxx.tar.gz
200
-
```
201
-
202
-
Cela extraira tous les fichiers dans un sous-dossier dont le nom est celui de la version du SDK. Placez le dossier où
203
-
vous le désirez. Ouvrez-y un terminal. Vous devriez être là où sont présents les fichier comme "build_examples.sh".
204
-
205
-
Les exemples dans le SDK et l'une des libraries dont nous aurons besoin dépendent de la librairie XCB. C'est une
206
-
librairie écrite en C utilisée pour communiquer avec le gestionnaire de fenêtres X. Elle s'installe à l'aide du package
207
-
"libxcb1-dev" sous Ubuntu. Vous aurez également besoin de fichiers de développement X présents dans le package
208
-
"xorg-dev".
184
+
### Paquets Vulkan
209
185
210
-
```bash
211
-
sudo apt install libxcb1-dev xorg-dev
212
-
```
186
+
Les composants les plus importants pour le développement d'applications Vulkan sous Linux sont le loader Vulkan, les validation layers et quelques utilitaires pour tester que votre machine est bien en état de faire fonctionner une application Vulkan:
187
+
*`sudo apt install vulkan-tools`: Les utilitaires en ligne de commande, plus précisément `vulkaninfo` et `vkcube`. Lancez ceux-ci pour vérifier le bon fonctionnement de votre machine pour Vulkan.
188
+
*`sudo apt install libvulkan-dev`: Installe le loader Vulkan. Il sert à aller chercher les fonctions aurpès du driver de votre GPU au runtime, de la même façon que GLEW le fait pour OpenGL - si vous êtes familiez avec ceci.
189
+
*`sudo apt install vulkan-validationlayers-dev`: Installe les layers de validation standards. Ceux-ci sont cruciaux pour débugger vos applications Vulkan, et nous en reparlerons dans un prochain chapitre.
213
190
214
-
Compilez les exemples Vulkan ainsi :
215
-
216
-
```bash
217
-
./build_examples.sh
218
-
```
219
-
220
-
Si la compilation a réussi, vous avez normalement un exécutable "./examples/build/vkcube". Lancez-le depuis le
221
-
dossier "examples/build" avec la commande "./vkcube" et assurez-vous que vous obtenez la fenêtre suivante :
191
+
Si l'installation est un succès, vous devriez être prêt pour la partie Vulkan. N'oubliez pas de lancer `vkcube` et assurez-vous de voir la fenêtre suivante:
222
192
223
193

224
194
225
-
Si vous recevez un message d'erreur, assurez-vous que vos drivers sont à jour, incluent Vulkan et que votre carte
226
-
graphique est supportée. Référez-vous au [chapitre introductif](!fr/Introduction) pour les liens aux vendeurs principaux.
227
-
228
195
### GLFW
229
196
230
197
Comme dit précédemment, Vulkan ignore la plateforme sur laquelle il opère, et n'inclut pas d'outil de création
@@ -233,22 +200,9 @@ Vulkan, nous utiliserons la [librairie GLFW](http://www.glfw.org/) pour créer u
233
200
ou MacOS indifféremment. Il existe d'autres librairies telles que [SDL](https://www.libsdl.org/), mais GLFW à
234
201
l'avantage d'abstraire d'autres aspects spécifiques à la plateforme requis par Vulkan.
235
202
236
-
Nous allons installer GLFW à partir des sources, car Vulkan nécessite une version récente. Vous pouvez trouver ces
237
-
sources sur le [site officiel](http://www.glfw.org/). Extrayez les sources où vous voulez et ouvrez un terminal dans le
238
-
dossier extrait, où se trouve le fichier "CMakeLists.txt".
239
-
240
-
Exécutez les commandes suivantes afin de générer un makefile et de compiler GLFW :
241
-
203
+
Nous allons installer GLFW à l'aide de la commande suivante:
242
204
```bash
243
-
cmake .
244
-
make
245
-
```
246
-
247
-
Si vous rencontrez le message "Could NOT find Vulkan", ignorez-le. Si la compilation a fonctionné, vous pouvez installer
248
-
GLFW sur votre système en exécutant :
249
-
250
-
```bash
251
-
sudo make install
205
+
sudo apt install libglfw3-dev
252
206
```
253
207
254
208
### GLM
@@ -263,6 +217,18 @@ Cette librairie contenue intégralement dans les headers peut être installée d
263
217
sudo apt install libglm-dev
264
218
```
265
219
220
+
### Compilateur de shader
221
+
222
+
Nous avons tout ce qu'il nous faut, excepté un programme qui compile le code [GLSL](https://en.wikipedia.org/wiki/OpenGL_Shading_Language) lisible par un humain en bytecode.
223
+
224
+
Deux compilateurs de shader populaires sont `glslangValidator` de Khronos et `glslc` de Google. Ce dernier a l'avantage d'être proche de GCC et Clang à l'usage,.
225
+
Pour cette raison, nous l'utliliserons: téléchargez les exécutables [non officiels](https://github.com/google/shaderc/blob/main/downloads.md) et copiez `glslc` dans votre répertoire `/usr/local.bin`. Notez que vous aurez certainement besoin d'utiliser `sudo` en fonctions de vos permissions.
226
+
Pour tester, lancer `glslc` depuis le répertoire de votre choix et il devrait se plaindre qu'il n'a reçu aucun shader à compiler de votre part:
227
+
228
+
`glslc: error: no input files`
229
+
230
+
Nous couvrirons l'usage de `glslc` plus en détails dans le chapitre des [modules shaders](!fr/03_Dessiner_un_triangle/02_Pipeline_graphique_basique/01_Modules_shaders.md)
231
+
266
232
### Préparation d'un fichier makefile
267
233
268
234
Maintenant que vous avez installé toutes les dépendances, nous pouvons préparer un makefile basique pour Vulkan et
@@ -314,32 +280,22 @@ Nous allons maintenant créer un makefile pour compiler et lancer ce code. Crée
314
280
principe que vous connaissez déjà les bases de makefile, dont les variables et les règles. Sinon vous pouvez trouver des
315
281
introductions claires sur internet, par exemple [ici](https://makefiletutorial.com/).
316
282
317
-
Nous allons d'abord définir quelques variables pour simplifier le reste du fichier. Définissez `VULKAN_SDK_PATH`, qui se
318
-
réfère à l'emplacement du dossier "x86_64" dans le SDK, par exemple :
Remplacez bien "utilisateur" par votre nom d'utilisateur et "x.x.x.x" par la bonne version. Définissez ensuite `CFLAGS`,
325
-
qui spécifiera les arguments pour la compilation :
283
+
Nous allons d'abord définir quelques variables pour simplifier le reste du fichier.
284
+
Définissez `CFLAGS`, qui spécifiera les arguments pour la compilation :
326
285
327
286
```make
328
-
CFLAGS = -std=c++17 -I$(VULKAN_SDK_PATH)/include
287
+
CFLAGS = -std=c++17 -O2
329
288
```
330
289
331
-
Nous utiliserons du C++ moderne (`-std=c++17`). Nous devons également localiser "vulkan.h" dans le SDK de
332
-
LunarG.
290
+
Nous utiliserons du C++ moderne (`-std=c++17`) et compilerons avec le paramètre d'optimisation `-O2`. Vous pouvez le retirer pour compiler nos programmes plus rapidement, mais n'oubliez pas de le remettre pour compiler des exécutables prêts à être distribués.
0 commit comments