Skip to content
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

Shader Execution Reordering (SER) proposal #277

Merged
merged 27 commits into from
Jan 31, 2025

Conversation

rasmusnv
Copy link
Contributor

Add Shader Execution Reordering (SER) proposal for consideration.

Copy link
Member

@damyanp damyanp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks ready to take into the repo for further review. Before completing the PR, please pick the next free proposal number (at time of writing this comment, that would be 0021) and rename the file and the reference to it on line 4 appropriately.

Copy link
Member

@pow2clk pow2clk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll disclose that I'm not a DXR expert. A lot of my feedback is copy editing, trying to make the document easier to read. I feel a bit stronger about my thoughts on testability and DXIL op feedback.

@rasmusnv
Copy link
Contributor Author

@microsoft-github-policy-service agree company="NVIDIA"

Copy link
Member

@damyanp damyanp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like there's a large number of unresolved conversations on this PR - these either need to be moved into issues or addressed in the spec before we can merge it.

@damyanp damyanp added this to the Shader Model 6.9 milestone Oct 16, 2024
@llvm-beanz
Copy link
Collaborator

Design meeting: assigning to @derlemsft as the PM ushering this through.

@Jasper-Bekkers
Copy link

If reordering is optional, I would suggest renaming the call to MaybeReorderThread so that it's clear to the caller that implementations are free to do this, or not.

simoll added a commit to simoll/DirectXShaderCompiler that referenced this pull request Jan 28, 2025
Specification PR: microsoft/hlsl-specs#277

- This enables SER with SM6.9+
- Excludes reordercoherent and REORDER_SCOPE. Their implementation is largely orthogonal and factored into another commit.
- Includes a prototype header to inform a header-based implementation of the HitObject API in the HLSL implementation for Clang (docs/HitObject.h).
simoll added a commit to simoll/DirectXShaderCompiler that referenced this pull request Jan 29, 2025
Reduction of the complete SER implementation to just the HitObject type
and its default constructor.

Specification PR: microsoft/hlsl-specs#277
@Flakebi
Copy link

Flakebi commented Jan 29, 2025

There are two comment threads above (one and two) about clarifications in the wording.
The threads were marked as resolved, but it would still be nice if the formulations can be clarified before this is merged.

@rasmusnv
Copy link
Contributor Author

There are two comment threads above (one and two) about clarifications in the wording. The threads were marked as resolved, but it would still be nice if the formulations can be clarified before this is merged.

Please see the latest commit for clarifications.

@rasmusnv rasmusnv closed this Jan 31, 2025
@rasmusnv rasmusnv reopened this Jan 31, 2025
@Flakebi
Copy link

Flakebi commented Jan 31, 2025

Thanks for update, looks good to me now :)

@rasmusnv
Copy link
Contributor Author

I think the PR is ready for merge. I resolved the remaining conversations as it looked like no changes were required at this point. For further changes we can open focused issues. I also picked up the next available number, 27. (Please ignore the close and re-open, that was a mistake).

@damyanp
Copy link
Member

damyanp commented Jan 31, 2025

Thank you everyone! I'm going to go ahead an merge this PR. Options for further discussion:

  • open an issue in this repo against this proposal
  • submit a PR with a proposed change to the proposal
  • reach out directly to us if the above options are not possible

@damyanp damyanp merged commit 7b59075 into microsoft:main Jan 31, 2025
1 check passed
@damyanp
Copy link
Member

damyanp commented Jan 31, 2025

If reordering is optional, I would suggest renaming the call to MaybeReorderThread so that it's clear to the caller that implementations are free to do this, or not.

#378

llvm-beanz pushed a commit to llvm-beanz/hlsl-specs that referenced this pull request Feb 9, 2025

Co-authored-by: Greg Roth <[email protected]>
Co-authored-by: Tex Riddell <[email protected]>
Co-authored-by: Radek Drabinski <[email protected]>
simoll added a commit to simoll/DirectXShaderCompiler that referenced this pull request Feb 18, 2025
Reduction of the complete SER implementation to just the HitObject type
and its default constructor.

Specification PR: microsoft/hlsl-specs#277
simoll added a commit to simoll/DirectXShaderCompiler that referenced this pull request Feb 19, 2025
Reduction of the complete SER implementation to just the HitObject type
and its default constructor.

Specification PR: microsoft/hlsl-specs#277
simoll added a commit to simoll/DirectXShaderCompiler that referenced this pull request Feb 25, 2025
Reduction of the complete SER implementation to just the HitObject type
and its default constructor.

Specification PR: microsoft/hlsl-specs#277
simoll added a commit to simoll/DirectXShaderCompiler that referenced this pull request Feb 25, 2025
Reduction of the complete SER implementation to just the HitObject type
and its default constructor.

Specification PR: microsoft/hlsl-specs#277
simoll added a commit to simoll/DirectXShaderCompiler that referenced this pull request Feb 26, 2025
Reduction of the complete SER implementation to just the HitObject type
and its default constructor.

Specification PR: microsoft/hlsl-specs#277
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Design Meeting Agenda item for the design meeting
Projects
Status: Accepted
Status: Triaged
Development

Successfully merging this pull request may close these issues.