Skip to content
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

layers: Fix debug label validation #5941

Merged
merged 1 commit into from
Jun 2, 2023
Merged

layers: Fix debug label validation #5941

merged 1 commit into from
Jun 2, 2023

Conversation

juan-lunarg
Copy link
Contributor

@juan-lunarg juan-lunarg commented May 31, 2023

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

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 10422.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 12255 running.

@juan-lunarg juan-lunarg changed the title layers: Fix debug layer validation layers: Fix debug label validation May 31, 2023
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 10435.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 12256 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 12256 failed.

@spencer-lunarg
Copy link
Contributor

The main issue is if Queue refers to the logical vulkan queue the work is being submitted on. Or the actual hardware queue.

This is 100% the VkQueue object. The hardware implementation of how it maps the VkQueue is outside the scope of any Vulkan Tool

@juan-lunarg
Copy link
Contributor Author

This is 100% the VkQueue object. The hardware implementation of how it maps the VkQueue is outside the scope of any Vulkan Tool

My main concern was this 1 line here from the description.

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.

Which makes it sounds like you can open a debug label region on 1 queue. Submit. Then end the debug label, then submit.

And when talking to @MarkY-LunarG (The author of this extension) they said

I was working with the AMD people who were using this, and we really can't validate it. I thought we added a note that we might not be able to validate it because of all this.

@MarkY-LunarG
Copy link
Contributor

This is 100% the VkQueue object. The hardware implementation of how it maps the VkQueue is outside the scope of any Vulkan Tool

This logic goes back because we were asked to support this across multiple QueueSubmits. Because of this, we really can only validate this on the GPU using something akin to GPU AV where we have a check for every BeginLabel and increment a counter and then check every EndLabel on the GPU to make sure the value is > 0 before we decrement and throw the error then if the value is <= 0. It might just be something we can't test properly at this point. [NOTE: There are other valid usage statements that also fall into this bin].

@juan-lunarg juan-lunarg marked this pull request as ready for review June 1, 2023 18:57
@juan-lunarg juan-lunarg requested a review from a team as a code owner June 1, 2023 18:57
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 11153.

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
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 11154.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 12277 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 12277 passed.

@juan-lunarg juan-lunarg merged commit a64db57 into KhronosGroup:main Jun 2, 2023
@juan-lunarg juan-lunarg deleted the juan/5671 branch June 2, 2023 22:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants