microsoft / microsoft/DirectXShaderCompiler
Improve DXIL Validator Testing Infrastructure
Nobody has claimed this yet.
- 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
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 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