-
Notifications
You must be signed in to change notification settings - Fork 397
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
False Negative Validation Error: VUID-vkCmdWriteTimestamp-None-00830 #8233
Comments
this is not the VVL anymore (I remember taking it out a while ago)
you are building the VVL from the latest top of tree, or are you using and SDK built version (if so, which version?) |
Sorry, turns out I had environment vars that loaded the old vulkan validation layer instead of the one from the repo. I've updated the issue with the correct validation error message and version. The issue is still relevant, although we do get a different validation id with a similar message. Test was ran with the layer from latest top of tree |
It would be very helpful to know what the error message looks like now |
The issue has been modified with the new validation message already along with my previous comment Validation Error: [ VUID-vkCmdWriteTimestamp-None-00830 ] Object 0: handle = 0x26e709d9a00, type = VK_OBJECT_TYPE_COMMAND_BUFFER; Object 1: handle = 0xf56c9b0000000004, type = VK_OBJECT_TYPE_QUERY_POOL; | MessageID = 0xeb0b9b05 | vkCmdWriteTimestamp(): VkQueryPool 0xf56c9b0000000004[] and query 0: query not reset. After query pool creation, each query must be reset before it is used. Queries must also be reset between uses. The Vulkan spec states: All queries used by the command must be unavailable (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdWriteTimestamp-None-00830) |
Thanks @tteguh ! I will take a look at it early next week and get it fixed! |
Ok, so confirmed the issue is around // The "local" prefix is about tracking state within a *single* queue submission
// (across all command buffers of that submission), as opposed to globally
// tracking state accross *all* submissions to the same queue.
QueryMap local_query_to_state_map; which is why it doesn't catch the |
No worries @spencer-lunarg. Thanks for the update! |
Environment:
Describe the Issue
The validation layer don't seem to properly respect the implicit ordering guarantees for timestamp query operations that should be guaranteed based on the vulkan spec: https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-implicit
"3. The order in which command buffers are specified in the pCommandBuffers member of VkSubmitInfo or VkSubmitInfo2 from lowest index to highest."
The example code attached describes the scenario that is triggering the false negative:
Validation Error: [ VUID-vkCmdWriteTimestamp-None-00830 ] Object 0: handle = 0x26e709d9a00, type = VK_OBJECT_TYPE_COMMAND_BUFFER; Object 1: handle = 0xf56c9b0000000004, type = VK_OBJECT_TYPE_QUERY_POOL; | MessageID = 0xeb0b9b05 | vkCmdWriteTimestamp(): VkQueryPool 0xf56c9b0000000004[] and query 0: query not reset. After query pool creation, each query must be reset before it is used. Queries must also be reset between uses. The Vulkan spec states: All queries used by the command must be unavailable (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdWriteTimestamp-None-00830)
The
vkCmdTimestampWrite
andvkCmdResetQueryPool
happens in two different command buffers. Submitting this into the sameVkSubmitInfo
in correct order from lowest index to highest will trigger the validation error.Splitting it such that the command buffers are submitted within it's own
VkSubmitInfo
fixes the problem. SetsplitSubmit
in the example code to true to see this behavior.Expected behavior
The validation error should not be present.
Valid Usage ID
VUID-vkCmdWriteTimestamp-None-00830
Additional context
Test code that demonstrates false negative validation error
The text was updated successfully, but these errors were encountered: