microsoft / microsoft/DirectXShaderCompiler

Improve DXIL Validator Testing Infrastructure

Open
#5,064 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

tech-debt
Dominant language
C++
Stars
3.7k
Forks
900
Avg merge
2d 11h
Merged PRs (30d)
44

Description

What
The dxv tool should be extended to support testing workflows required to adequately and easily test the dxil validator. We should also investigate alternative solutions to replace %dxilver when we move to lit for testing.

Why
We need to update how we test the DXIL validator to expand test coverage, adopt LIT, and make it easier to test and maintain.

One of the challenges with the DXIL validator tests is that the frontend should not be capable of generating malformed IR to trigger some failures. For example, the IR metadata should always be well formed and valid. We should also validate as many issues as possible at the source level in DXC so that we can provide better user diagnostics. Because of these design considerations, the current testing infrastructure can be fragile.

The current infrastructure is built on TAEF/GoogleTest, and much of it relies on HLSL source being compiled to textural IR, which is then modified with find/replace operations before being re-assembled into a DXIL container and validated.

Acceptance Criteria

New workflow for DXIL validator tests that works with LIT and covers all the required workflows for changing dxil validator versions.

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 by mapping the current TAEF/GoogleTest DXIL validator tests and the existing dxv workflow, then review how HLSL is compiled and modified before validation. Compare those workflows with LIT requirements and the proposed alternative to %dxilver. Done means a maintainable LIT-based workflow covers all required cases for changing DXIL validator versions.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.