Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

False VUID-vkCmdDrawMeshTasksEXT-None-08607 and VUID_Undefined when using Mesh Shaders with Shader Object #9263

Open
darkestofbreads opened this issue Jan 19, 2025 · 0 comments

Comments

@darkestofbreads
Copy link

Environment:

  • OS: Windows 11
  • GPU and driver version: RTX 2070 SUPER 566.36
  • SDK or header version if building from repo: 1.4.304 SDK
  • Options enabled (synchronization, best practices, etc.):

Describe the Issue
Minimal Vulkan triangle application using a Mesh shader (no task shader) in place of a Vertex shader and Fragment shader:
Each time vkCmdDrawMeshTasksEXT is called, I am getting two validation errors:

  1. VUID-vkCmdDrawMeshTasksEXT-None-08607 telling me that no valid shader object was bound with vkCmdBindShadersEXT despite having done so.
  2. VUID_Undefined msgNum: 2044605652 telling me that vkCmdBindShadersEXT() was not called with stage VK_SHADER_STAGE_VERTEX_BIT

I think these two are connected because they do not show when adding a vertex stage with an empty shader (nullptr).
This should not be necessary because Mesh shaders fully replace the traditional pipeline.

Expected behavior
One does not have to add VK_SHADER_STAGE_VERTEX_BIT because it does not appear in the mesh shading pipeline, thus these errors should not be showing.

Valid Usage ID
#VUID-vkCmdDrawMeshTasksEXT-None-08607

Additional context

VUID-vkCmdDrawMeshTasksEXT-None-08607(ERROR / SPEC): msgNum: 455220475 - Validation Error: [ VUID-vkCmdDrawMeshTasksEXT-None-08607 ] Object 0: handle = 0x1c793204290, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x1b221cfb | vkCmdDrawMeshTasksEXT(): A valid VK_PIPELINE_BIND_POINT_GRAPHICS pipeline must be bound with vkCmdBindPipeline or shader objects with vkCmdBindShadersEXT before calling this command.
The Vulkan spec states: If the shaderObject feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and VK_NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command (https://vulkan.lunarg.com/doc/view/1.4.304.0/windows/1.4-extensions/vkspec.html#VUID-vkCmdDrawMeshTasksEXT-None-08607)
Objects: 1
[0] 0x1c793204290, type: 6, name: NULL

VUID_Undefined(ERROR / SPEC): msgNum: 2044605652 - Validation Error: [ VUID_Undefined ] Object 0: handle = 0x1c793204290, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x79de34d4 | vkCmdDrawMeshTasksEXT(): There is no graphics pipeline bound and vkCmdBindShadersEXT() was not called with stage VK_SHADER_STAGE_VERTEX_BIT and either VK_NULL_HANDLE or a valid VK_SHADER_STAGE_VERTEX_BIT shader.
Objects: 1
[0] 0x1c793204290, type: 6, name: NULL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant