FS#78708 - [vulkan-validation-layers] False positive validation for debug labels used across command buffers

Attached to Project: Arch Linux
Opened by Aaron Barany (akb825) - Monday, 05 June 2023, 00:18 GMT
Last edited by Toolybird (Toolybird) - Monday, 11 September 2023, 02:09 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Laurent Carlier (lordheavy)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912 validation error is triggered when pushing and popping debug labels across multiple command buffers. This use case is correct according to the standard.

Additional info:
* package version: 1.3.243.0-1
* error logged:
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912: Validation Error: [ VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912 ] Object 0: handle = 0x55555702fd70, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x56146426 | vkCmdEndDebugUtilsLabelEXT() called without a corresponding vkCmdBeginDebugUtilsLabelEXT first The Vulkan spec states: There must be an outstanding vkCmdBeginDebugUtilsLabelEXT command prior to the vkCmdEndDebugUtilsLabelEXT on the queue that commandBuffer is submitted to (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912)
* link to upstream bug report: https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/5671
* link to upstream fix: https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/5941

Steps to reproduce:
1. Call vkCmdBeginDebugUtilsLabelEXT() in a command buffer.
2. In a separate command buffer, call vkCmdEndDebugUtilsLabelEXT().
3. Submit both command buffers together. This case is considered valid according to the standard, but triggers a false positive validation error.

Instructions to reproduce in Unity are available in the upstream bug report.

This can also by reproduced in my personal project (https://github.com/akb825/DeepSea) by running any of the GUI testers under the "testers" directory when built in Debug mode.
This task depends upon

Closed by  Toolybird (Toolybird)
Monday, 11 September 2023, 02:09 GMT
Reason for closing:  Fixed
Additional comments about closing:  "This has been fixed with the latest release."
Comment by Aaron Barany (akb825) - Monday, 05 June 2023, 02:07 GMT
Note for if you try to reproduce the issue with the DeepSea project I linked: debug marker usage is disabled on Intel GPUs due to a similar issue with the Intel Mesa driver. (https://gitlab.freedesktop.org/mesa/mesa/-/issues/6843)
Comment by Toolybird (Toolybird) - Monday, 05 June 2023, 05:50 GMT
IIUC this is fixed upstream already therefore we'll get it at the next update? If you're wanting a backport you should make it clear and say so.
Comment by Aaron Barany (akb825) - Monday, 05 June 2023, 08:38 GMT
Yes, it's currently merged into master. My own preference would be to backport it (I think it's unlikely to cause conflicts) as their latest release was only a week ago and their release cadence appears to be every 2 months or so. When this bug gets hit it tends to spam the output with errors, since it's typically hit every frame.

Loading...