From 2fcc7f18f1c1b86f3d8443e3edffb8eac0bb5f82 Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Thu, 16 Nov 2023 19:34:55 +0100 Subject: [PATCH 1/4] Update, expand and simplify Visual Studio Windows project setup Refs #19 --- en/02_Development_environment.adoc | 18 ++++++++++++++---- images/glfw_directory.png | Bin 3431 -> 4751 bytes images/glm_directory.png | Bin 0 -> 3091 bytes images/library_directory.png | Bin 4277 -> 6498 bytes images/vs_include_dirs.png | Bin 4845 -> 6875 bytes images/vs_link_dirs.png | Bin 4746 -> 6208 bytes 6 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 images/glm_directory.png diff --git a/en/02_Development_environment.adoc b/en/02_Development_environment.adoc index f236bbb..e52048e 100644 --- a/en/02_Development_environment.adoc +++ b/en/02_Development_environment.adoc @@ -38,6 +38,8 @@ The `Bin` directory also contains the binaries of the Vulkan loader and the vali Lastly, there's the `Include` directory that contains the Vulkan headers. Feel free to explore the other files, but we won't need them for this tutorial. +The installer also sets the system environment variable `VULKAN_SDK` to the directory where the SDK is installed. That means we can easily access it's folder by using `%VULKAN_SDK%` instead of having to explicitly specify the versioned SDK folder names. This also makes updating to a new SDK dead simple, as the installer updates that variable to point at the new SDK instead. + === GLFW As mentioned before, Vulkan by itself is a platform agnostic API and does not include tools for creating a window to display the rendered results. @@ -47,8 +49,9 @@ There are other libraries available for this purpose, like https://www.libsdl.or You can find the latest release of GLFW on the http://www.glfw.org/download.html[official website]. In this tutorial we'll be using the 64-bit binaries, but you can of course also choose to build in 32 bit mode. In that case make sure to link with the Vulkan SDK binaries in the `Lib32` directory instead of `Lib`. -After downloading it, extract the archive to a convenient location. -I've chosen to create a `Libraries` directory in the Visual Studio directory under documents. +After downloading it, extract the archive to a convenient location like `C:\Vulkan-Tutorial`. + +Extract glfw there so that you have a path called `C:\Vulkan-Tutorial\glfw` with contents similar to this: image::/images/glfw_directory.png[] @@ -57,8 +60,13 @@ image::/images/glfw_directory.png[] Unlike DirectX 12, Vulkan does not include a library for linear algebra operations, so we'll have to download one. http://glm.g-truc.net/[GLM] is a nice library that is designed for use with graphics APIs and is also commonly used with OpenGL. -GLM is a header-only library, so just download the https://github.com/g-truc/glm/releases[latest version] and store it in a convenient location. -You should have a directory structure similar to the following now: +GLM is a header-only library, so just download the https://github.com/g-truc/glm/releases[latest version] and store it in a convenient location like `C:\Vulkan-Tutorial`. + +Extract glm there so that you have a folder called `C:\Vulkan-Tutorial\glm` with contents similar to this: + +image::/images/glm_directory.png[] + +After setting up glfw and glm, you should now have a directory structure similar to the following: image::/images/library_directory.png[] @@ -148,6 +156,8 @@ And add the locations of the object files for Vulkan and GLFW: image::/images/vs_link_dirs.png[] +NOTE: The GLFW folder you need to select depends on the Visual Studio version you are using. If you're using Visual Studio 2022 you need to select the `lib-vc2022` folder and if you e.g. use Visual Studio 2017 you select the `lib-vc2017` folder, etc. + Go to `+Linker -> Input+` and press `++` in the `Additional Dependencies` dropdown box. image::/images/vs_link_input.png[] diff --git a/images/glfw_directory.png b/images/glfw_directory.png index afd450b3b4ea5181e2209a8a7b8ae210a3821e4f..6a36e73606c8c2a3689f4e4646ea8986b0ce0148 100644 GIT binary patch literal 4751 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 E07Fj?7XSbN literal 3431 zcmeHJi#wEC7axalG#DqTj(a6SQkbHl8LDw9m)uUGG;V`L`e+E5!-Ot|iHNBTDVL{W zM1wQrRw9>SI2z=*+wzjrlFCroWf+Qo6WC)Iq z#F3FWIt~=c;5UdPlW}x9jt-EKkj)XBHV9~@Z`yH#WF$bxO*LSq8!V?AEjf*rU*1~H zG+WQM*l=5H=02R_wm9(GPjlWm^4i_zJ8c)bY!|!jcsBy+xh2&4To?obZ`vfW z_g9L1L8W3i#x30W3NAdt>tBA5P_Mv{aQzU!@LdS~L;8jW3%dd{K*u(llNK(Ko^y|* zqqkucn#BV!?pwDPVGqB{J$Krp=+AK|Mj;sS)A&X#iKPu)+yE9n;f_RiOmYiM$=9iu z4UHH!v8G2E9W_VGgGp+hP(Dt9{m^lXz~ey#9#5~VtfbS2?`hS!G{&x#qJhTPs4`x^5Wdy{s=rA_Cp)>aArB?rM~9-% zAHzS&W>jhPShGitRm-gi_Ki&F1`a+U1hMbQ3_D%2F~EjjVrIT%adXG2FL0$MGj{4l z4S5>~YSWnzA?njeK5}!k4?F33FgJRpJp__AKZ@MEcvH%@( zgH?t}j|IP0Pek&jsA3;{`>h1Lk&Lu}wp>E>!gUoyr27fIn2Rvr1S2%&xL)W)A%k7) zmYGqUWfA+NK%AO$f_sOo=)>fsS=80WMqd~(!HykRL%>(wbEv$D5DL9O_y^>cS z_gVgBE2}>S`Vs5D%``$3uIppWsqDLQ4o`Jy4(Yn$S#{lFpvGy707H!RnQNw0Tz@9d z@95|tkx0wS(m|y!Yj+2G7T+9-{tH9cE0(Dyj7k(q{BI^5-B&oqo59!Lb7I}ie$3*A zph%cbKeYBUw(1Qf_5KStlq?ek4Xli&Ls80lkKH)8PltJrZF7^JU?iwzn+TK7Y5&Pf zLD{vxX_>eje*dZ1%FPsFK*IZ8BWL9BPz)tYRa({1)cb+tj*5EsHsA4f`#`)gHPKC0 z5SqdE0o8oNuB|3jSz^_z2YB_!HaYtoEi{ zP&$7oAanPfg5}=Ad(sSxm5#!zUdEg^VDY%a>why{nsI*paPm*lMwD%MUJONtUAq)m zfL-Y<%uYNu+jDDPI=c6XOp4or`NML*Gg-RgjdK=T)PE+-7w`kFht?Roz0K4A(^Qy$ z*?4&|cMq7ar35by?Y{5us&(wUsmqGmY!^i@2dVd;5pU*7b_rNMuMXZ1k-+@g>+EF< z<))xWQvG3}fh3)UjjE^yz9weCYwS4*w zpBmut*JwATiwNr({35`tV26PqbXn6YsY=Wb-gkV{VXINTzGZtDtChO!TRA`Xtn{9$ z^2_JMmy3taCpZMsq|~!$O${dxl5U%PveVgK?tlM*gHO88YRBl!V21%tS64$@zhOn3 zS7iyD{z07DU`oqRRAoRfCh}|dFf1I_5zTK*Bkh_%*lWd5?D?t9Vu3Ke3RM#L%4EIX z|51TEyoPY5MHl|qco?@Mpp#v@5D4m55itCf7)mR53su~8v}gY8S7Pr;eqHI%gEYrD zhY587G3ad1JQPJr+K5GqU*z_*n54extMq?lCQeb|DXz*>CH?bN;u;L#mDg__J8g$k zAKDn5K|Af;ERT7SPBJ0;{Tt^^OmV5@nhHDLXXmzZ^+mSrA4JV=7e2{RcyEe5DrIEtLVe>dlw|EOh8=2Pg0Ieqsd6^R|nM}pFpaxcHU430%`cN`mI){_bk zT$R4BQBT?ta0>R&*l<2Y{y!tYXd;da(rfqHY3i^Ki)4~TS55BpK|Gb?Jp$~Y zf$RfOW#|*)Oipi3_M}983rX0hFX#HytCFKBl5xTh;QLNZjU4Vj&2jOnn~OFiNS^7|+=GYDEku^?W?LxXiJnu;Y;td{wVkBcSCz7`)2=$~ z$3n$=OVo#gRuMxhuvl9byj;-)t$gzL1B>8Or2A3X&x8U=9rpAmYVkBuLy12l zO0LC+f-9I^@Sn`P1MXJs9kg>3*|jO8ds)=Zeob6StnZbUw;l5*De6DuD*Sp JCC9Px{|4F$3%39O diff --git a/images/glm_directory.png b/images/glm_directory.png new file mode 100644 index 0000000000000000000000000000000000000000..3e310dcb66d65f1ac7902774cbdaedae8995c961 GIT binary patch literal 3091 zcmb`Jd05if8pn0KX_GdDj%jMzXhmgdE}2WnSg37klZ{JiCb(rGk{c>wjZ@-^<($TNs+=IWv)tP4EY45`twF71|>cZb*JbXMfH0p@D z%Mt6;3C2_6vf#WQ-x zkHLS>xx3#1qdgvJKLi3>ENuS03ey`oLW->aW#E0RzSZHSc^7$wf3mpdK{ZX>6h@z& z*U1~KX}#N)DX#febzAR>qopl1n9HZHm8?u+eXq{)%&U}{ zcBF8Dg|4r@?RPCiGe0K6vTY&X)LL@RHK9x&w|( zB6f91zC8mgDB;g&XS|0T9O~$0HCk8B zZy=t2#tWVo(@@g`<A~6P+3iMyj1{8^}BFh zen*8O4~O%6(#KMsO2zewg48iQ_nOksNNm*Si|f2b>nIPUf^dVvPdR->d=v8r4}+4M z#a3GspqOT;@6tE%b6Twx)4!?ijHI(ZoFxwBG^4mq+&ZK;EOM11klj|!9h~5ScyY?G zrw;gM$*(F_9uDtr1U5_Xub6WId;{_Z3BHf1jCiUP%zuHW43kF<&F{xE)5{|#YaaJ4 zg5sK?Gc8>HM&ftFhPAMG7L?PRQplc`bfR)Nr?N%?(A#$lE4^RJ=Th9nmsfQjFHsEy z9geo94i}+-W62)duLZARrySOH4b zl}b{L?HlvBUh~maMR-Je{dw_OoCtK-QzbjLX$92P9GHcEEvuTl$q8@~@1vM5fAg#0 z;GK`3x-a+_<+6(#(E|63_H*F*gP|?)J79_^qYu+zE#wqP(JrRlm$G&CzE7pT?~)GU^|){STh(jPNU~`mc2<6+%xNEj zm6I{iePdWl24E=RY58H(Se{bT2<C~i!c{5kHg^`9lUj)^GdRZ@oY!ANAr$@D$v%zO5YBB_@EDG>`>aW@cXT|P@91X@t{<;nw$&?>5Y z(PorG#fHxSnZX3PXEYrb(X>bFADedq){yzxE#uVh{?7bs7^W%EqeancwkMsGFF?=p}}Fcy($ zga=bbesD%?7tizY0s7FfPI6Lu>vo#(Hay5b2Hc~TWzkjG(R8x zNb$o4(TF{`(T+|fwS~KQX)kbHY3$&~K@@-S@!ODqhz8=i5_o-fUt8(Wf2CVu4B@;cEe-iKhDb8!qj0;qsyN|uj+9ZGX;>o*6tN11E%q405kuw<1^H4_!JmhF&iEXEA*jzvW zFoN1s2dYrNJ-0gc@3H)fO<68{UBLCU03+167o?G zw<8=Cgs5o)B6Pmy*+#u5`rarOWGBM$M%kZM z)Fw_qTHW~X_de8<=H_D_NF0s32gx3XK5dbh`oK+=I4 zlx=G776$$t`&89q2B}ExaVVK;j)*e!4H!;H%c{a&CD?5Z0CsiZfE!?<#pLNC_riOp za*f$zBOP3g&Tl&T(Ui6mB3r*`tfx4ZKib- zxIg$O|KIt)q;@bMuNo&Zr5zHIIanuc%D~Tl_ZiF1j|As#2QpS)?Ja_H&weu2xsxhd zEkuR@q+1`K!wY7>m^C^ULv;$g8Q+<%QN3joX0UV3zuNH6bR$}Q%}m5!Tb)$P$r9Mb z#sNLTvG_*)nBr5fsR%+nWMd-(hh F{{%M<^sN8@ literal 0 HcmV?d00001 diff --git a/images/library_directory.png b/images/library_directory.png index 692349e0ef5ce8296940283db1f34e0add5043bb..932811ad5e50e3aba35042d5d499cbdca3f2da58 100644 GIT binary patch literal 6498 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 JiyZy_@>l(0L3scG literal 4277 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 diff --git a/images/vs_include_dirs.png b/images/vs_include_dirs.png index def6bf65410b11d904eacccc6efad885f6c78342..e964f64337be7ed1364bc9823539bea7ff8a2144 100644 GIT binary patch literal 6875 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 S>B@XT1<=zr&??ff4f!uBJRsWu literal 4845 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 Date: Thu, 16 Nov 2023 19:52:20 +0100 Subject: [PATCH 2/4] Update Visual Studio include directory screenshots for stb and tinyobjloader --- images/include_dirs_stb.png | Bin 22619 -> 8029 bytes images/include_dirs_tinyobjloader.png | Bin 24796 -> 7812 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/images/include_dirs_stb.png b/images/include_dirs_stb.png index 9035e76588a5ac351283024a66fcaaf3bfe936d4..f6e483c65814c272b5048a81e4b98dfe77393c14 100644 GIT binary patch literal 8029 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 e`BGQxu8C(W}GidPO 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 InvN0w1r?xyjQ{`u From ba66f2af3a2edadb901d3cc070f7697e580daabb Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Thu, 16 Nov 2023 20:06:19 +0100 Subject: [PATCH 3/4] Prefer official LunarG SDK setups for Linux, update LInux paths --- en/02_Development_environment.adoc | 11 ++++++++--- .../01_Shader_modules.adoc | 11 ++++++----- en/06_Texture_mapping/00_Images.adoc | 4 ++-- en/08_Loading_models.adoc | 4 ++-- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/en/02_Development_environment.adoc b/en/02_Development_environment.adoc index e52048e..1e4297f 100644 --- a/en/02_Development_environment.adoc +++ b/en/02_Development_environment.adoc @@ -192,7 +192,14 @@ You'll also need `make`. === Vulkan Packages -The most important components you'll need for developing Vulkan applications on Linux are the Vulkan loader, validation layers, and a couple of command-line utilities to test whether your machine is Vulkan-capable: +LunarG provides the Vulkan SDK for 64-bit Linux distribution. Installation depends on your distribution and installation: + +- link::https://vulkan.lunarg.com/doc/view/latest/linux/getting_started_ubuntu.html[Getting Started with the Ubuntu Vulkan SDK] +- link::https://vulkan.lunarg.com/doc/view/latest/linux/getting_started.html[Getting Started with the Linux Tarball Vulkan SDK] + +NOTE: Installing the SDK via the official guides from LunarG is the preferred way. This will install all required tools and components and also makes them globally available via the path environment variable. + +If your distribution isn't supported you can try to install the required SDK components used in this tutorial from different sources, but you may need to adjust some paths that are used in this tutorial to make things work: * `sudo apt install vulkan-tools` or `sudo dnf install vulkan-tools`: Command-line utilities, most importantly `vulkaninfo` and `vkcube`. Run these to confirm your machine supports Vulkan. @@ -201,8 +208,6 @@ The loader looks up the functions in the driver at runtime, similarly to GLEW fo * `sudo apt install vulkan-validationlayers-dev spirv-tools` or `sudo dnf install mesa-vulkan-devel vulkan-validation-layers-devel`: Installs the standard validation layers and required SPIR-V tools. These are crucial when debugging Vulkan applications, and we'll discuss them in the upcoming chapter. -On Arch Linux, you can run `sudo pacman -S vulkan-devel` to install all the required tools above. - If installation was successful, you should be all set with the Vulkan portion. Remember to run `vkcube` and ensure you see the following pop up in a window: diff --git a/en/03_Drawing_a_triangle/02_Graphics_pipeline_basics/01_Shader_modules.adoc b/en/03_Drawing_a_triangle/02_Graphics_pipeline_basics/01_Shader_modules.adoc index 60f9daa..9e9103d 100644 --- a/en/03_Drawing_a_triangle/02_Graphics_pipeline_basics/01_Shader_modules.adoc +++ b/en/03_Drawing_a_triangle/02_Graphics_pipeline_basics/01_Shader_modules.adoc @@ -205,8 +205,8 @@ Create a `compile.bat` file with the following contents: [,bash] ---- -C:/VulkanSDK/x.x.x.x/Bin/glslc.exe shader.vert -o vert.spv -C:/VulkanSDK/x.x.x.x/Bin/glslc.exe shader.frag -o frag.spv +%VULKAN_SDK%/Bin/glslc.exe shader.vert -o vert.spv +%VULKAN_SDK%/Bin/glslc.exe shader.frag -o frag.spv pause ---- @@ -219,11 +219,12 @@ Create a `compile.sh` file with the following contents: [,bash] ---- -/home/user/VulkanSDK/x.x.x.x/x86_64/bin/glslc shader.vert -o vert.spv -/home/user/VulkanSDK/x.x.x.x/x86_64/bin/glslc shader.frag -o frag.spv +glslc shader.vert -o vert.spv +glslc shader.frag -o frag.spv ---- -Replace the path to `glslc` with the path to where you installed the Vulkan SDK. +NOTE: If you have installed the Vulkan SDK tools like `glslc` are added to the path and there is no need to explicitly call them from a given path. If you have manually installed glslc you may need to prepend it's path to make this work. + Make the script executable with `chmod +x compile.sh` and run it. *End of platform-specific instructions* diff --git a/en/06_Texture_mapping/00_Images.adoc b/en/06_Texture_mapping/00_Images.adoc index e8c515c..0b55796 100644 --- a/en/06_Texture_mapping/00_Images.adoc +++ b/en/06_Texture_mapping/00_Images.adoc @@ -59,12 +59,12 @@ Add the directory with `stb_image.h` to the include directories for GCC: [,text] ---- -VULKAN_SDK_PATH = /home/user/VulkanSDK/x.x.x.x/x86_64 +VULKAN_SDK_PATH = /usr/include/vulkan STB_INCLUDE_PATH = /home/user/libraries/stb ... -CFLAGS = -std=c++17 -I$(VULKAN_SDK_PATH)/include -I$(STB_INCLUDE_PATH) +CFLAGS = -std=c++17 -I$(VULKAN_SDK_PATH) -I$(STB_INCLUDE_PATH) ---- == Loading an image diff --git a/en/08_Loading_models.adoc b/en/08_Loading_models.adoc index 73d31c6..02b4d8b 100644 --- a/en/08_Loading_models.adoc +++ b/en/08_Loading_models.adoc @@ -27,13 +27,13 @@ Add the directory with `tiny_obj_loader.h` to the include directories for GCC: [,text] ---- -VULKAN_SDK_PATH = /home/user/VulkanSDK/x.x.x.x/x86_64 +VULKAN_SDK_PATH = /usr/include/vulkan STB_INCLUDE_PATH = /home/user/libraries/stb TINYOBJ_INCLUDE_PATH = /home/user/libraries/tinyobjloader ... -CFLAGS = -std=c++17 -I$(VULKAN_SDK_PATH)/include -I$(STB_INCLUDE_PATH) -I$(TINYOBJ_INCLUDE_PATH) +CFLAGS = -std=c++17 -I$(VULKAN_SDK_PATH) -I$(STB_INCLUDE_PATH) -I$(TINYOBJ_INCLUDE_PATH) ---- == Sample mesh From 3427d26f18eebcdfa020371dbbfd5a0b070c8374 Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Thu, 16 Nov 2023 20:11:41 +0100 Subject: [PATCH 4/4] Fix links --- en/02_Development_environment.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/02_Development_environment.adoc b/en/02_Development_environment.adoc index 1e4297f..16fb0ee 100644 --- a/en/02_Development_environment.adoc +++ b/en/02_Development_environment.adoc @@ -194,8 +194,8 @@ You'll also need `make`. LunarG provides the Vulkan SDK for 64-bit Linux distribution. Installation depends on your distribution and installation: -- link::https://vulkan.lunarg.com/doc/view/latest/linux/getting_started_ubuntu.html[Getting Started with the Ubuntu Vulkan SDK] -- link::https://vulkan.lunarg.com/doc/view/latest/linux/getting_started.html[Getting Started with the Linux Tarball Vulkan SDK] +- link:https://vulkan.lunarg.com/doc/view/latest/linux/getting_started_ubuntu.html[Getting Started with the Ubuntu Vulkan SDK] +- link:https://vulkan.lunarg.com/doc/view/latest/linux/getting_started.html[Getting Started with the Linux Tarball Vulkan SDK] NOTE: Installing the SDK via the official guides from LunarG is the preferred way. This will install all required tools and components and also makes them globally available via the path environment variable.