-
Notifications
You must be signed in to change notification settings - Fork 566
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: add GroupNonUniformPartitionedNV capability to trim pass #5648
opt: add GroupNonUniformPartitionedNV capability to trim pass #5648
Conversation
Will be used for the implementation for microsoft/DirectXShaderCompiler#6545 |
Adds support for the WaveMatch() intrinsic function from Shader Model 6.5 using the OpGroupNonUniformPartitionNV instruction from the SPV_NV_shader_subgroup_partitioned extension. Requires KhronosGroup/SPIRV-Tools#5648 Fixes microsoft#6545
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.
Wonder if we need to start thinking about instructions enabled by multiple capabilities. Maybe there is something to do as in "if an capability is core, replace the vendor specific by the core capability"
The instructions enabled by this capability aren't and won't be enabled by any others (they have the NV suffix on the instruction too), but that is an optimization I looked into for |
89ae335
to
066c051
Compare
Rebasing to see if that makes the bots happy |
What was the failure mode? //:opt_fold_test TIMEOUT in 60.2s |
@dneto0 The hypothetical optimization of when to apply The only effect of this PR should be that the capability trimming pass now removes |
Oh and the bot failure I saw before rebase was just for an unrelated file's clang-format failure. |
Adds support for the WaveMatch() intrinsic function from Shader Model 6.5 using the OpGroupNonUniformPartitionNV instruction from the SPV_NV_shader_subgroup_partitioned extension. Requires KhronosGroup/SPIRV-Tools#5648 Fixes microsoft#6545
Adds support for the `WaveMatch()` intrinsic function from Shader Model 6.5 using the `OpGroupNonUniformPartitionNV` instruction from the `SPV_NV_shader_subgroup_partitioned` extension. SPIRV-Tools bumped to include: KhronosGroup/SPIRV-Tools#5648 Fixes #6545
PR KhronosGroup#5648 added support for the GroupNonUniformPartitionedNV. But there was an issue: the opcodes are enabled by multiple capabilities, and the actual operand is what matters. Added testing coverage and the implementation to correctly trim a few NonUniform capabilities. Signed-off-by: Nathan Gauër <brioche@google.com>
PR #5648 added support for the GroupNonUniformPartitionedNV. But there was an issue: the opcodes are enabled by multiple capabilities, and the actual operand is what matters. Added testing coverage and the implementation to correctly trim a few NonUniform capabilities. Signed-off-by: Nathan Gauër <brioche@google.com>
No description provided.