PIX validation fallback should inspect canonical DXIL

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

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
76/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
cpp
Domain
testing-qa

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.

Description

bug needs-triage

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
  1. Construct a DXIL container whose canonical DFCC_DXIL and DFCC_ShaderDebugInfoDXIL parts contain different unused metadata.
  2. 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.
  3. 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.

Dominant language
C++
Stars
3.7k
Forks
900
Avg merge
2d 14h
Merged PRs (30d)
39

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.

More from microsoft/DirectXShaderCompiler

All issues in microsoft/DirectXShaderCompiler

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.