-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[workstream] DXIL Shader Flags #57
Comments
@bharadwajy - first step of this is to do some investigation and figure out what's involved in the work so we can take something to refinement. |
Adding some notes:
|
Discussed in refinement today: this needs to be broken down further and the acceptance criteria defined. Note that it is reasonable to create subtasks to cover the work required to find all the shader flags / write a proposal etc. |
19 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
DXIL output contains various flags that tell the runtime about what optional features the shader might be using - for example, wave operations, doubles, 64-bit integers.
All shader flags specified in DXC output along with conditions that set each of them is catalogued here.
Support for appropriately setting the same set of flags in the clang-based HLSL Shader compiler needs to be implemented by enhancing the existing
ShaderFlagsAnalysis
pass in DXILShaderFlags.cpp. The existing Module pass needs to be extended to walk all constituent functions to collect shader flags for the candidate function. Results of the analysis pass is a map of shader functions to corresponding shader flags mask.NOTE: Analysis to set the following Shader Flags is not done as it appears that they are not being set in DXC sources based on module content. Listing them for the record and potential reclassification as needed.
DisableMathRefactoring
ComputeShadersPlusRawAndStructuredBuffers
(Only set for SM 4.0)ROVs
SamplerFeedback
Milestones
Compile particle_life.hlsl (#20)
Set based on properties of
DXIL::Opcode::BufferLoad
, if present, in the candidate function - see hereCompile all DML shaders, and they pass the validator (#11)
The text was updated successfully, but these errors were encountered: