microsoft / microsoft/DirectXShaderCompiler
[SPIR-V] Stage input variables optimized away despite -fspv-preserve-interface
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 3.7k
- Forks
- 900
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 44
Description
Description
Vertex attributes can still be optimized away when using -fspv-preserve-interface
Steps to Reproduce
A function unrelated to the stage input was refactored from
fn(uint offset) to fn(ByteAddressBuffer buffer, uint offset). Calling this function causes attributes to be optimized away.
It's better demonstrated by this snippet: https://godbolt.org/z/fW5K7rYsx
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Godbolt reproduction linked in the issue and compare the generated SPIR-V when the unrelated function takes a uint versus a ByteAddressBuffer and uint. Trace the stage-interface preservation and optimization behavior; done means vertex attributes are retained with -fspv-preserve-interface in both cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers, computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100