* Fix clang Objective-C++ flags for macOS command line builds
* Fix getAssetPath() and getShaderBasePath() for macOS command line builds
* Protect debugUtilsMessageCallback() from failing when pMessageIdName is NULL
* Fix a few clang function override and mismatched type warnings
* Fix validation layer warnings on exit for computeraytracing example
* Fix regression in text visibility toggle for textOverlay example
* Support VK_USE_PLATFORM_METAL_EXT vs. deprecated VK_USE_PLATFORM_MACOS_MVK / DVK_USE_PLATFORM_IOS_MVK
* Check dynamic state features before enabling capabilities in dynamicstate example
* Fix vkCmdDraw() vertexCount argument (PARTICLE_COUNT) in particlesystem example
* Update examples list and restore benchmarking script (to top level)
* Fix validation warning in descriptorindexing example
* Fix device max recursion depth validation warnings in ray tracing examples
* Fix OpenMP build settings for texture3d example on all platforms
* Update and simplify build instructions for macOS
* Update CI script with correct library path for libomp on macOS x86_64
* Update CI scipt to install libomp prior to macOS builds
* Trying one more time to get the CI script working for macOS libomp
* Fix vertexCount argument using calculated size in particlesystem example
* Fix combined image descriptor offset calculation in descriptorbuffer example
* macOS: Support non-system level Vulkan SDK installs, with fallback to MoltenVK library
Related to #876.
On AMD RX 5700 XT, heaps with MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
are present. Because the heap selection doesn't break early, the code
ends up selecting one of the 'late' heaps, which contains more property
bits than required. Including this one which causes validation error.
Breaking early should solve this on all GPUs, as the Vulkan specs
specifies the order of heap declarations:
```
For each pair of elements X and Y returned in memoryTypes, X must be
placed at a lower index position than Y if:
- the set of bit flags returned in the propertyFlags member of X is
a strict subset of the set of bit flags returned in the
propertyFlags member of Y;
```
So if my understanding is correct, by breaking early we should always
select the most basic heap that meets the sample needs.
Signed-off-by: Nathan Gauër <nathan@gauer.org>
Pointer to a variable declared into a block statement is stored and used outside of the block by vkCreateInstance. This can lead to segmentation fault.
Move the declaration of validationExt/validationLayerName outside of the block to fix the crash.
Move `data/shaders` to `data/shaders/glsl`
Move `data/hlsl` to `data/shaders/hlsl`
Fix up shader paths in the cpp files to point to the new glsl location.
`data/shaders/hlsl/compile.py` still overwrites the glsl .spv files (for
now).
Issue: #723