microsoft / microsoft/DirectXShaderCompiler
PIX validation fallback should inspect canonical DXIL
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 3.7k
- Forks
- 900
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 44
Description
The PIX test validation helper directly validates the canonical DFCC_DXIL container part, but its metadata-stripping fallback parses DFCC_ShaderDebugInfoDXIL (ILDB). Those parts can diverge in content that survives debug-info stripping, so the fallback can classify validation using a different module from the one the validator rejected.
Reproduction
- Construct a DXIL container whose canonical
DFCC_DXILandDFCC_ShaderDebugInfoDXILparts contain different unused metadata. - Put a real non-PIX validation defect in the canonical part while the debug-info part contains only metadata permitted by the PIX test helper.
- Run the helper's direct validation and metadata-stripping fallback.
Direct validation rejects the canonical module, but the fallback inspects the ILDB module. In a divergent container, this can excuse or misclassify a genuine canonical validation failure.
Proposed fix
Parse, clone, strip, and revalidate the same canonical DFCC_DXIL part targeted by direct validation. Add a focused divergent-container regression test plus a positive control for canonical known-PIX metadata.
This is a test-harness correctness issue, not a compiler behavior change. It was discovered while reviewing PR #8841 and should be handled in a separate follow-up commit rather than expanding that review-feedback amendment.
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 at the PIX test validation helper's direct validation and metadata-stripping fallback, comparing how each selects the DFCC_DXIL and DFCC_ShaderDebugInfoDXIL parts. Add the divergent-container regression test and canonical known-PIX positive control described in the issue; done means the fallback parses, clones, strips, and revalidates the canonical DFCC_DXIL module.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 76/100