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

Spurious VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063 error #9015

Open
rg3igalia opened this issue Dec 12, 2024 · 0 comments
Open
Assignees
Labels
Bug Something isn't working

Comments

@rg3igalia
Copy link
Contributor

Environment:

  • OS: Linux
  • GPU and driver version: NVIDIA GeForce RTX 4060 with the latest drivers
  • SDK or header version if building from repo: b10d21a
  • Options enabled (synchronization, best practices, etc.): defaults

Describe the Issue

The CTS tests dEQP-VK.dgc.ext.compute.misc.descriptor_buffer_push_descriptor* produce VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-0806 when run on the NVIDIA driver. The key factor here is that those tests use descriptor buffers coupled with push descriptors, and push descriptors only. For this reason, vkGetDescriptorSetLayoutSizeEXT returns 0. When the test allocates the buffer, it rounds that up to descriptorBufferOffsetAlignment to avoid allocating and empty buffer but, despite this, a later call to vkCmdSetDescriptorBufferOffsetsEXT results in the VUID mentioned before, probably because the buffer offset that we pass is zero, which is strictly not less than the set layout size, but the layers should probably special-case this.

VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063(ERROR / SPEC): msgNum: 587158185 - Validation Error: [ VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063 ] Object 0: handle = 0x55555f233650, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x22ff52a9 | vkCmdSetDescriptorBufferOffsetsEXT(): pOffsets[0] 0 must be small enough such that any descriptor binding referenced by layout without the VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT flag computes a valid address inside the underlying VkBuffer.
The Vulkan spec states: The offsets in pOffsets must be small enough such that any descriptor binding referenced by layout without the VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT flag computes a valid address inside the underlying VkBuffer (https://www.khronos.org/registry/vulkan/specs/1.4-extensions/html/vkspec.html#VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063)

Note: this issue is probably related to #8203.

Expected behavior

What the test does seems valid, so no validation errors should be emitted, likely.

Valid Usage ID

VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063

Additional context

N/A

@spencer-lunarg spencer-lunarg self-assigned this Dec 13, 2024
@spencer-lunarg spencer-lunarg added the Bug Something isn't working label Dec 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants