KhronosGroup / KhronosGroup/Vulkan-ValidationLayers

Improve error message for vkCmdDraw-None-08600

Open
#9,068 2 comments 0 reactions 1 assignee Claimed by @spencer-lunarg View on GitHub
Enhancement
Dominant language
C++
Stars
1k
Forks
504
Avg merge
11h 35m
Merged PRs (30d)
224

Description

Example:

Self Validation Error: [ VUID-vkCmdDraw-None-08600 ] Object 0: handle = 0x7323f50000000048, type = VK_OBJECT_TYPE_PIPELINE; Object 1: handle = 0x4fac1c0000000032, type = VK_OBJECT_TYPE_PIPELINE_LAYOUT; Object 2: handle = 0xa808d50000000033, type = VK_OBJECT_TYPE_PIPELINE_LAYOUT; Object 3: handle = 0x4fac1c0000000032, type = VK_OBJECT_TYPE_PIPELINE_LAYOUT; | MessageID = 0x4768cf39 | vkCmdDraw(): The VkPipeline 0x7323f50000000048[] (created with a union of layouts [ VkPipelineLayout 0x4fac1c0000000032[] VkPipelineLayout 0xa808d50000000033[] ]) statically uses descriptor set 31, but all sets 0 to 31 are not compatible with the pipeline layout bound with vkCmdBindDescriptorSets (VkPipelineLayout 0x4fac1c0000000032[])
Set 1 contains a null set which is considered non-compatible
The Vulkan spec states: For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-08600)

It is unclear what "set 1" refers to. This is just one example, the "describe difference" part of this error message generally needs improvements. IMO we need to not only mention the difference, telling precisely what part of the described difference comes from what, but also log how both pipeline layout look like. Maybe just the relevant parts, here for instance the descriptor set layouts, not necessarily the push constant ranges layout

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.