Skip to content

Instantly share code, notes, and snippets.

@prideout
Created April 25, 2020 00:02
Show Gist options
  • Save prideout/63cc56bb4fbc9847e3779fec0db75c31 to your computer and use it in GitHub Desktop.
Save prideout/63cc56bb4fbc9847e3779fec0db75c31 to your computer and use it in GitHub Desktop.
Vulkan Validation on macOS
(1) cd ~/github/glslang/build
git pull
cmake ..
sudo chown -R $(whoami) /usr/local/bin /usr/local/etc /usr/local/sbin /usr/local/share /usr/local/share/doc
make install
(2) cd ~/github/Vulkan-Headers
git pull
rm -rf build ; mkdir -p build && cd build
make install
(3)
VkImageViewAddressPropertiesNVX
unknown type name 'VkRayTracingPipelineCreateInfoKHR'; did you mean 'VkRayTracingPipelineCreateInfoNV'?
KHR is Beta, NV is not.
cd ~/github/Vulkan-ValidationLayers
git clone https://github.com/google/googletest.git external/googletest
cd external/googletest
git checkout tags/release-1.8.1
rm -rf build ; mkdir -p build && cd build
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DGLSLANG_INSTALL_DIR=/usr/local \
-DVULKAN_HEADERS_INSTALL_DIR=/usr/local ..
make
export VK_ICD_FILENAMES=/Users/prideout/github/vulkansdk-macos-1.2.135.0/macOS/share/vulkan/icd.d/MoltenVK_icd.json
./tests/vk_layer_validation_tests
---
1. Download the latest tarball from https://vulkan.lunarg.com/sdk/home
2. Unpack the tarball and run `./install_vulkan.py`
- If you see a complaint about `/usr/local/lib/cmake`, do a force install.
- It might complain about permissions, in which case you could do
`sudo chown -R $(whoami) /usr/local/bin`.
3. To set environment variables such as VK_ICD_FILENAMES etc, do `source MY_SDK/setup-env.sh`.
4. If you see a dialog like "Apple cannot check it for malicious software..." then you might need
enable the dylib by ctrl-clicking it in Finder, clicking open, then clicking open again.
Image layout validation is done in multiple places throughout the core_validation layer. When it is
possible to know the layout at command buffer record time (for example if an image layout transition
was done earlier in that command buffer), the current image layout is compared against the
binding/usage in copy, dispatch, and draw calls. Where the image layout state cannot be determined
that check is deferred until queue submission of the command buffer, when the required state of the
image layout from the point of view of the command buffer is compared to the current/global state of
the image layout.
@prideout
Copy link
Author

 make -j && ./tests/vk_layer_validation_tests --gtest_filter='*SubresourceLayout2'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment