-
Notifications
You must be signed in to change notification settings - Fork 158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cube: Make Volk requirement explicit #992
Conversation
CI Vulkan-Tools build queued with queue ID 181327. |
1 similar comment
CI Vulkan-Tools build queued with queue ID 181327. |
CI Vulkan-Tools build # 1443 running. |
CI Vulkan-Tools build # 1443 failed. |
Seems like the define needs to be added to these files as well: |
CI Vulkan-Tools build queued with queue ID 186219. |
1 similar comment
CI Vulkan-Tools build queued with queue ID 186219. |
CI Vulkan-Tools build # 1453 running. |
CI Vulkan-Tools build # 1453 failed. |
CI Vulkan-Tools build queued with queue ID 186986. |
1 similar comment
CI Vulkan-Tools build queued with queue ID 186986. |
CI Vulkan-Tools build # 1455 running. |
CI Vulkan-Tools build # 1455 passed. |
See also: Cannot build DEMOS.sln https://gitlab.khronos.org/vulkan/Vulkan-SDK-Packaging/-/issues/1417 Volk requires that VK_NO_PROTOTYPES be defined before vulkan.h or vulkan.hpp is included. Currently, the various flavors of vkcube hide this definition in the cube/CMakeLists.txt file, which can confuse users who may copy the source for their own use, and may require investigation to figure out why it doesn't "just work". This change makes the #define explicit in the cube.c and cube.cpp source files, which should both be clearer and be more similar to how most applications use Volk. cube/CMakeLists.txt: - remove - vulkaninfo already had a #VK_NO_PROTOTYPES somewhere - macOS DemoViewController includes of mvk_vulkan.h are confusing Volk and don't seem to be necessary, since cube.c and cube.cpp #include vulkan.h and vulkan.hpp, respectively
27d7d76
to
cee9689
Compare
CI Vulkan-Tools build queued with queue ID 187054. |
1 similar comment
CI Vulkan-Tools build queued with queue ID 187054. |
CI Vulkan-Tools build # 1456 running. |
CI Vulkan-Tools build # 1456 passed. |
🤣 you figured this out before I did! Blast it, I didn't see your response here while I was working it out in the Vulkan-SDK-Packaging issue - would have saved me some time and kept me from pulling as much of my already sparse hair out... |
@charles-lunarg @mikes-lunarg I noted this in the issue, and am reiterating it here...
The point of doing this as a Vulkan-Tools change instead of an SDK change is to make the use of Volk more "proper". But I'm not sure which of the above is more "proper"... |
From @charles-lunarg :
So I'm sticking with the current implementation. I'll rebase to make sure nothing has staled. |
For anyone reading this comment thread, I would like to clarify that mvk_vulkan.h isn't "outdated" but rather contains stuff not in standard vulkan, and therefore isn't cross platform. vkcube & vkcubepp do not use anything in the header, so its safe to remove. |
See also:
Volk requires that VK_NO_PROTOTYPES be defined before vulkan.h or vulkan.hpp is included. Currently, the various flavors of vkcube hide this definition in the cube/CMakeLists.txt file, which can confuse users who may copy the source for their own use, and may require investigation to figure out why it doesn't "just work".
This change makes the #define explicit in the cube.c and cube.cpp source files, which should both be clearer and be more similar to how most applications use Volk.