KhronosGroup / KhronosGroup/Vulkan-ValidationLayers

VUID 08114 : scope is too broad, 2 paths in GPU-AV can lead to the same check

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

Description

08114 as a VUID itself may have too broad of a scope.
More specifically In GPU-AV, we should do something to not emit what is basically the same error under the 08114 umbrella.
For instance, both descriptor indexing validation and post processing can emit a "uninitialized descriptor set" error:

Descriptor indexing:
===
Validation Error: [ VUID-vkCmdTraceRaysKHR-None-08114 ] | MessageID = 0xd5f5bac3
vkCmdTraceRaysKHR(): (set = 0, binding = 2) Descriptor index 5 is uninitialized.
Stage = Ray Generation. Global Launch ID (x,y,z) = (0, 0, 0).
Command buffer (0x19efad04bc0)
Ray Trace Index 0
Pipeline (0x23f000000023f)
Shader Module (0x2330000000233) (internal ID 1)
SPIR-V Instruction Index = 72
Unable to source. Build shader with debug info to get source information.
The Vulkan spec states: Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT (https://docs.vulkan.org/spec/latest/chapters/raytracing.html#VUID-vkCmdTraceRaysKHR-None-08114)
Objects: 2
[0] VkQueue 0x19efad74fc0
[1] VkCommandBuffer 0x19efad04bc0

Post Processing:
===
Validation Error: [ VUID-vkCmdDraw-None-08114 ] | MessageID = 0x2ba3a98e
vkQueueSubmit(): pSubmits[0] the descriptor [VkDescriptorSet 0x23c000000023c, Set 0, Binding 2, Index 5, variable "ray_origins_buffer"] is being used in draw but has never been updated via vkUpdateDescriptorSets() or a similar call.
The Vulkan spec states: Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-08114)
Objects: 3
[0] VkCommandBuffer 0x19efad04bc0
[1] VkPipeline 0x23f000000023f
[2] VkDescriptorSet 0x23c000000023c

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.