microsoft / microsoft/DirectXShaderCompiler

Validation: ValidateCallGraph only checks module entry function for non-lib shaders

Open
#7,153 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

DxilValidation function ValidateCallGraph was never updated for libraries, so it just checks "the" entry function with ValCtx.DxilMod.GetEntryFunction():

https://github.com/microsoft/DirectXShaderCompiler/blob/d5951b74d76351c17626bf90daf6684ed8598d3d/lib/DxilValidation/DxilValidation.cpp#L5562

and "the" patch constant function, if the shader target is HS:
https://github.com/microsoft/DirectXShaderCompiler/blob/d5951b74d76351c17626bf90daf6684ed8598d3d/lib/DxilValidation/DxilValidation.cpp#L5568-L5569

For library targets, it should check each entry function and each exported function.

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

Read lib/DxilValidation/DxilValidation.cpp at ValidateCallGraph, especially the GetEntryFunction and hull-shader patch-constant handling around lines 5562-5569. Trace how library entry and exported functions are represented; done means validation checks each entry and exported function while preserving existing behavior for non-library shaders.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.