-
Notifications
You must be signed in to change notification settings - Fork 411
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
Validation for VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912 is not correct according to the Vulkan spec. #5671
Comments
I'm seeing the same issue on Linux with my own engine. (DeepSea) I have debug labels that span multiple command buffers across queue submission that is causing this error to be reported every frame. According to the spec this usage should be valid:
|
…fer-01912. As described in [Vulkan-ValidationLayers#5671], the validation layers don't understand debug ranges paired across different command buffers on the same queue, even though the Vulkan spec says: > An application may open a debug label region in one command buffer and close it in another, or otherwise split debug label regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to vkCmdBeginDebugUtilsLabelEXT and vkCmdEndDebugUtilsLabelEXT must be matched and balanced. Until this is fixed, wgpu should ignore this validation error to reduce noise in test runs. Fixes gfx-rs#3733. [Vulkan-ValidationLayers#5671]: KhronosGroup/Vulkan-ValidationLayers#5671,
…fer-01912. As described in [Vulkan-ValidationLayers#5671], the validation layers don't understand debug ranges paired across different command buffers on the same queue, even though the Vulkan spec says: > An application may open a debug label region in one command buffer and close it in another, or otherwise split debug label regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to vkCmdBeginDebugUtilsLabelEXT and vkCmdEndDebugUtilsLabelEXT must be matched and balanced. Until this is fixed, wgpu should ignore this validation error to reduce noise in test runs. Fixes gfx-rs#3733. [Vulkan-ValidationLayers#5671]: KhronosGroup/Vulkan-ValidationLayers#5671,
@juan-lunarg Do you think this will be quick to fix? I had started looking into doing it myself today, but this is my first time looking at the code. I'd be delighted if someone else fixed it first. :D |
I think so. I'll start working on this. |
I've created a test that reproduces the false positive. Should have a fix soon. |
…fer-01912. As described in [Vulkan-ValidationLayers#5671], the validation layers don't understand debug ranges paired across different command buffers on the same queue, even though the Vulkan spec says: > An application may open a debug label region in one command buffer and close it in another, or otherwise split debug label regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to vkCmdBeginDebugUtilsLabelEXT and vkCmdEndDebugUtilsLabelEXT must be matched and balanced. Until this is fixed, wgpu should ignore this validation error to reduce noise in test runs. Consult the validation layer's description and version, to filter out only affected versions of the validation layer. Fixes gfx-rs#3733. [Vulkan-ValidationLayers#5671]: KhronosGroup/Vulkan-ValidationLayers#5671,
…fer-01912. As described in [Vulkan-ValidationLayers#5671], the validation layers don't understand debug ranges paired across different command buffers on the same queue, even though the Vulkan spec says: > An application may open a debug label region in one command buffer and close it in another, or otherwise split debug label regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to vkCmdBeginDebugUtilsLabelEXT and vkCmdEndDebugUtilsLabelEXT must be matched and balanced. Until this is fixed, wgpu should ignore this validation error to reduce noise in test runs. Consult the validation layer's description and version, to filter out only affected versions of the validation layer. Fixes gfx-rs#3733. [Vulkan-ValidationLayers#5671]: KhronosGroup/Vulkan-ValidationLayers#5671,
…fer-01912. As described in [Vulkan-ValidationLayers#5671], the validation layers don't understand debug ranges paired across different command buffers on the same queue, even though the Vulkan spec says: > An application may open a debug label region in one command buffer and close it in another, or otherwise split debug label regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to vkCmdBeginDebugUtilsLabelEXT and vkCmdEndDebugUtilsLabelEXT must be matched and balanced. Until this is fixed, wgpu should ignore this validation error to reduce noise in test runs. Consult the validation layer's description and version, to filter out only affected versions of the validation layer. Fixes gfx-rs#3733. [Vulkan-ValidationLayers#5671]: KhronosGroup/Vulkan-ValidationLayers#5671,
TLDR: There is some spec confusion that needs ironing out. For now we are going to remove validation for I'm also keeping the positive test I've written to prevent a regression. |
This VUID cannot be validated in vkCmdEndDebugUtilsLabelEXT So I'm adding it to the unimplementable_validation.h file. My plan is to help fix/clear up the specification. Meanwhile fixing up this false positive and adding positive testing to prevent a regression. closes #5671
False positive has been addressed and we have added testing to prevent a regression. We will also need to work on some minor issues in the specification regarding this extension. Thank you for bring this to our attention. |
…fer-01912 As described in [Vulkan-ValidationLayers#5671], the validation layers don't understand debug ranges paired across different command buffers on the same queue, even though the Vulkan spec says: > An application may open a debug label region in one command buffer and close it in another, or otherwise split debug label regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to vkCmdBeginDebugUtilsLabelEXT and vkCmdEndDebugUtilsLabelEXT must be matched and balanced. Until this is fixed, wgpu should ignore this validation error to reduce noise in test runs. Fixes gfx-rs#3733. [Vulkan-ValidationLayers#5671]: KhronosGroup/Vulkan-ValidationLayers#5671
…fer-01912 As described in [Vulkan-ValidationLayers#5671], the validation layers don't understand debug ranges paired across different command buffers on the same queue, even though the Vulkan spec says: > An application may open a debug label region in one command buffer and close it in another, or otherwise split debug label regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to vkCmdBeginDebugUtilsLabelEXT and vkCmdEndDebugUtilsLabelEXT must be matched and balanced. Until this is fixed, wgpu should ignore this validation error to reduce noise in test runs. Fixes gfx-rs#3733. [Vulkan-ValidationLayers#5671]: KhronosGroup/Vulkan-ValidationLayers#5671
…fer-01912 (#3809) As described in [Vulkan-ValidationLayers#5671], the validation layers don't understand debug ranges paired across different command buffers on the same queue, even though the Vulkan spec says: > An application may open a debug label region in one command buffer and close it in another, or otherwise split debug label regions across multiple command buffers or multiple queue submissions. When viewed from the linear series of submissions to a single queue, the calls to vkCmdBeginDebugUtilsLabelEXT and vkCmdEndDebugUtilsLabelEXT must be matched and balanced. Until this is fixed, wgpu should ignore this validation error to reduce noise in test runs. Fixes #3733. [Vulkan-ValidationLayers#5671]: KhronosGroup/Vulkan-ValidationLayers#5671
Environment:
Describe the Issue
VVL error introduced in this PR is not correct according to the Vulkan spec. The spec says (source):
This validation check implemented here checks for matching debug labels per command buffer while it should check per queue. There's an exception for secondary command buffers (source):
In that case checking for matching debug labels makes sense per secondary command buffer.
Steps to reproduce
--force-vulkan-layers
argument from CLI.VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912
get logged in the Unity console.Expected behavior
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912 gets validated per queue
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01913 gets validated per secondary command buffer
Valid Usage ID
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912
The text was updated successfully, but these errors were encountered: