-
Notifications
You must be signed in to change notification settings - Fork 763
[spirv] AMD work graphs extension #7353
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
base: main
Are you sure you want to change the base?
Conversation
✅ With the latest revision this PR passed the C/C++ code formatter. |
@tex3d / @llvm-beanz - could you have a look at this please? Although this is tagged as a SPIR-V change, I see changes in DXIL-specific files as well as changes in generic HLSL files that aren't gated behind any spir-v ifdefs. |
c751daf
to
6a4aca0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is my first pass. Generally looks pretty good, but it is a large PR. It would be best to separate this into smaller PRs, especially for changes that are not specific to adding workgraphs to the SPIR-V backend.
At a minimum, we should have separate PRs for:
- Changes to the AST to enable spec constants in the attributes. This could be a change you do after the main change or before, but not with it because it affect DXIL. If there is a regression there, we want it to be a small change to make it easy to find the bug. We could check if we can change the attributes have ExprAttributesArgs.
- Have a separate PR for the OpExecutionMode/OpExecutionModeId refactoring. That is a good change, but, again, if it caused problems, it would be hard to determine where the bug came from.
- If you want to change the default target environment, that should be it own PR. That could be a major change for some people. If their code breaks, and they track it to this PR, it would be hard to understand why. Personally, if we change it, we will have to discuss what is should be, and it should not be based on the shader model.
- The main change to have compute nodes. (Is that the right term?)
- Finally another PR for the mesh nodes.
I agree that it's best to split up this PR. I'll eventually update the branch with the reduced work graphs extension (item 4 of your list). |
After a glance at #7084 I'm thinking that it would take care of the second item and provide infrastructure for the first. Could you nudge someone to review it? I'll probably drop the third item; I'm confident that the changes to CapabilityVisitor will take care of whatever issue I was trying to solve there. Mesh nodes can wait until it's been figured out what will happen with release-preview-mesh-nodes. |
Hi, -> Shall we always emit a DXC warning when emitting this extension to say this is a beta extension, and it's might not work/might change? Or is this extensions now "stable"? |
2ad475f
to
15fc00d
Compare
15fc00d
to
78e7573
Compare
It may not be a bad idea to add a warning. I'm not aware of any concrete plans to revise the spec but expect that will happen eventually. The current one has some limitations, one consequence of which is that passing nodes and node records to called functions is not supported. Also, validation generally has to be turned off because the spec (and therefore SPIRV-Tools) doesn't explicitly allow pointers of storage class |
Oh good to know, in that case I'd be in favor of either a warning, or gate this being a flag like |
Enables work graphs for SPIR-V target, based on AMD_shader_enqueue extension.
Closes #5960.