KhronosGroup / KhronosGroup/Vulkan-ValidationLayers

GPU-AV instrumentation should report the variable id used for each descriptor access

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

Description

See #7102 and its partial fix in #7251. If there are more than one spirv variable using a set, binding pair in a shader, GPU-AV now tries to find any variable that matches the image dimensions matching the image view bound in the descriptor. This is only a workaround that prevents false positives. Instead, the shader instrumentation should return the variable id used to access the descriptor for validation. This would require:

- Updating the spirv instrumentation to store the variable id (instead of 1) for each accessed descriptor
- Including the variable id in the returned data from gpuav::DescriptorSet::State::UsedDescriptors()
- rewriting the FindMatchingImageVar() and FindMatchingTexelVar() functions in layers/descriptor_validator.cpp to find the matching variable id rather than looking for matching dimensions.
- looking for other places where variable id lookup is needed. I think mutable descriptors could make this happen very easily for non-image descriptors.

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.