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

opt: Update copy prop arrays to handle InterpolateAt* instructions #5827

Merged

Conversation

cassiebeckley
Copy link
Contributor

@cassiebeckley cassiebeckley commented Sep 26, 2024

Adds support for InterpolateAtCentroid, InterpolateAtSample, and InterpolateAtOffset to the copy propagate arrays pass, as well as propagating pointers with the Input storage class. Also handles situations where variables should be propagated in an order different than the order that they are declared in the source.

Copy link
Collaborator

@s-perron s-perron left a comment

Choose a reason for hiding this comment

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

This look good. I might replace the repeated switch statement with a function call

bool IsInterpolationInstruction(Instruction* inst);

@cassiebeckley cassiebeckley changed the title WIP: Update copy prop arrays to handle vectors and InterpolateAt* Update copy prop arrays to handle InterpolateAt* instructions Oct 1, 2024
@cassiebeckley cassiebeckley marked this pull request as ready for review October 1, 2024 18:00
@cassiebeckley
Copy link
Contributor Author

@s-perron the discussed changes have been finished

@cassiebeckley cassiebeckley changed the title Update copy prop arrays to handle InterpolateAt* instructions opt: Update copy prop arrays to handle InterpolateAt* instructions Oct 1, 2024
@cassiebeckley cassiebeckley enabled auto-merge (squash) October 1, 2024 19:50
@cassiebeckley cassiebeckley merged commit 48f9f4a into KhronosGroup:main Oct 2, 2024
24 checks passed
@cassiebeckley cassiebeckley deleted the evaluate-at-copy-prop branch October 3, 2024 01:23
cassiebeckley added a commit that referenced this pull request Oct 16, 2024
#5827 is broken for situations where a loaded value is stored to a pointer resulting from an OpAccessChain. Traverse access chains to find the original OpVariable to add to the worklist.
Keenuts pushed a commit to Keenuts/SPIRV-Tools that referenced this pull request Nov 12, 2024
…hronosGroup#5827)

Adds support for `InterpolateAtCentroid`, `InterpolateAtSample`, and `InterpolateAtOffset` to the copy propagate arrays pass, as well as propagating pointers with the `Input` storage class. Also handles situations where variables should be propagated in an order different than the order that they are declared in the source.
Keenuts pushed a commit to Keenuts/SPIRV-Tools that referenced this pull request Nov 12, 2024
…p#5853)

KhronosGroup#5827 is broken for situations where a loaded value is stored to a pointer resulting from an OpAccessChain. Traverse access chains to find the original OpVariable to add to the worklist.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants