Sunday, August 06, 2017

Vulkan SDK and building your first demo

i wanted to build my own texture mapped rotating cube from an empty project. haven't gotten that conpleted yet because i spent quite a bit of time exploring what was in the lunarG SDK.

after looking at the DEMOS directory I decided to see what it would take to build that source in another separate project. here's what i wrote down along the way:

Building a basic vulkan sdk app based on the Vulkan SDK DEMO (not sample)….  cube.c located in the directory: C:\VulkanSDK\1.0.54.0\Demos



  1. Actually create a *.c file instead of a *.cpp file..because there are non MSVC C++ compiler 'features' exploited like init'ing structs without the full declarations.
  2. Change to an x64 build instead of x86 (you can find a way out of this but I don't need a 32 bit app anymore)
  3. Add the path to the include directories to the Vulkan SDK includes: C:\VulkanSDK\1.0.54.0\Include
  4. Change the character set to 'not set' because they didn't use unicode
  5. Add a library path: The library path needs to include the path that points to vulkan-1.lib, something like: C:\VulkanSDK\1.0.54.0\Lib
  6. Add the library to the library line: vulkan-1.lib
  7. Copy the set of -D flags from cube.c to the new workspace. I don't know/care exactly what the flags are right now, but mostly this sorts through the various Oss for WinMain vs. main for example. 
  8. Copy cube_frag.spv and cube_vert.spv to the directory. I will look at the source for these shaders in the future, not right now. This is specifically for the DEMOs.


From what I can tell, [1] is leveraging some default compiler behavior to initialize non initialized values. 
To resolve the 'unrsesolved WinMain() see [6]'


No comments: