KhronosGroup / KhronosGroup/Vulkan-ValidationLayers

descriptor/queuesubmit layout validation errors could be more descriptive

Open
#10,734 1 comment 0 reactions 0 assignees View on GitHub
Enhancement ImageLayout
Dominant language
C++
Stars
1k
Forks
504
Avg merge
11h 35m
Merged PRs (30d)
224

Description

```
[gfxrecon] ERROR - DEBUG MESSENGER: Frame #3: VUID-vkCmdDraw-None-09600: vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0xec6990 expects VkImage 0x21400000002140[Back buffer 1 (6698)] (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 0) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_GENERAL.
The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600)
Validation Error: [ VUID-vkCmdDraw-None-09600 ] | MessageID = 0x46582f7b
vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0x3863f30 expects VkImage 0x21410000002141[Back buffer 1 (6698)] (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 0) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_GENERAL.
The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600)
Objects: 2
[0] VkCommandBuffer 0x3863f30
[1] VkImage 0x21410000002141[Back buffer 1 (6698)]
```

This should give me the descriptor binding info @spencer-lunarg

Contributor guide

Open the contributing guide

Research direction

Start by tracing the descriptor/queuesubmit layout validation path that produces the reported VUID-vkCmdDraw-None-09600 message. Identify where descriptor binding information can be added, then verify that the validation error includes it for the shown mismatch.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.