microsoft / microsoft/DirectXShaderCompiler

[SPIR-V] Stage input variables optimized away despite -fspv-preserve-interface

Open
#8,716 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs-triage spirv
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.