Open
Description
Environment:
- OS: Windows 11
- GPU and driver version: RTX 6000 Ada, 572.93
- SDK or header version if building from repo: 1.4.309.0
- Options enabled (synchronization, best practices, etc.): Crash Diagnostics
Describe the Issue
When Crash Diagnostics configuration is enabled, I get incorrect errors when using dynamic rendering and dynamic state
ERROR : VALIDATION - Message Id Number: -175953704 | Message Id Name: VUID-vkCmdDraw-renderpass
vkCmdDraw(): This call must be issued inside an active render pass.
The Vulkan spec states: This command must only be called inside of a render pass instance (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-renderpass)
Objects - 1
Object[0] - VK_OBJECT_TYPE_COMMAND_BUFFER, Handle 00000211E82AABC0, Name "uniqueID: 11, Main Content: Primary Gfx"
ERROR : VALIDATION - Message Id Number: 1166748261 | Message Id Name: VUID-vkCmdDraw-None-07842
vkCmdDraw(): VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY state is dynamic, but the command buffer never called vkCmdSetPrimitiveTopology.
The Vulkan spec states: If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called and not subsequently invalidated in the current command buffer prior to this drawing command (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-07842)
Objects - 2
Object[0] - VK_OBJECT_TYPE_COMMAND_BUFFER, Handle 00000211E82AABC0, Name "uniqueID: 11, Main Content: Primary Gfx"
Object[1] - VK_OBJECT_TYPE_PIPELINE, Handle D9D6D100000003AC
ERROR : VALIDATION - Message Id Number: 1937114004 | Message Id Name: VUID-vkCmdDraw-None-04879
vkCmdDraw(): VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE state is dynamic, but the command buffer never called vkCmdSetPrimitiveRestartEnable.
The Vulkan spec states: If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-04879)
Objects - 2
Object[0] - VK_OBJECT_TYPE_COMMAND_BUFFER, Handle 00000211E82AABC0, Name "uniqueID: 11, Main Content: Primary Gfx"
Object[1] - VK_OBJECT_TYPE_PIPELINE, Handle D9D6D100000003AC
ERROR : VALIDATION - Message Id Number: -901174136 | Message Id Name: VUID-vkCmdDraw-dynamicPrimitiveTopologyUnrestricted-07500
vkCmdDraw(): the last primitive topology VK_PRIMITIVE_TOPOLOGY_POINT_LIST state set by vkCmdSetPrimitiveTopology is not compatible with the pipeline topology VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST.
The Vulkan spec states: If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-dynamicPrimitiveTopologyUnrestricted-07500)
Expected behavior
This does not happen when using regular Validation configuration.
Can be reproduce by installing TouchDesigner from here:
https://download.derivative.ca/TouchDesigner.2023.12230.exe
And launching it with Crash Diagnostics enabled and logging to a file.
Metadata
Metadata
Assignees
Labels
No labels