Vulkan validation: mesh-fallback indirect draws use a dynamic vertex stride that was never set (VUID-04913) #2494
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot#2494
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
On a GPU without mesh shaders (RX 580, Mesa 26.2.6 RADV), the Khronos validation layer (1.4.363) reports thousands of these per play session:
So a pipeline with a dynamic vertex binding stride is drawn with
vkCmdDrawIndirectwhile no vertex buffers were bound throughvkCmdBindVertexBuffers2in that command buffer. The indirect draws are most likely the mesh-shader fallback's (compute writes the vertices, then an indirect draw), which would explain why it only shows on cards without mesh shaders.Counts, about 45 s in Kokiri Forest after reaching play, headless:
7759a6f312f835d0It scales with frames drawn; nothing else in that run's validation output is new.
Why it matters: drawing with a dynamic stride state that was never set is undefined. On this RADV it renders correctly as far as we can see, but another driver could read a garbage stride.
Possible fixes, not tried:
VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDEfrom them), orvkCmdBindVertexBuffers2before those draws.How to reproduce: a GPU without mesh shaders (or force the mesh fallback),
RX_VK_VALIDATION=1with the validation layer installed and its duplicate-message limit off, then play for a minute.Thanks for the report. Reports of the same problem are now collected in #1001, which lists this one with your details and links back here, so one fix closes them together and the open list stays readable. Follow #1001 for the fix, and add new details there (or here). If this turns out to be a separate problem it will be reopened.