-
Notifications
You must be signed in to change notification settings - Fork 712
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
[SPIR-V] Implement WaveMutliPrefix* intrinsic support #6600
Labels
Comments
sudonatalie
added a commit
to sudonatalie/DirectXShaderCompiler
that referenced
this issue
May 10, 2024
Implements the Shader Model 6.5 WaveMultiPrefix* intrinsic functions using the group operation from SPV_NV_shader_subgroup_partitioned, PartitionedExclusiveScanNV, which performs a partitioned exclusive scan operation across a subset of invocations ("lanes") in a subgroup ("wave"). The subset of the partition is determined by the provided ballot ("mask") parameter, which follows the same requirements for valid partitioning and active invocations/lanes as the HLSL parameter. Note that WaveMultiPrefixCountBits remains unimplemented because it does not directly map to a SPIR-V GroupNonUniformArithmetic instruction that accepts the PartitionedExclusiveScanNV Group Operation. DirectX Spec: https://microsoft.github.io/DirectX-Specs/d3d/HLSL_ShaderModel6_5.html#wavemultiprefix-functions SPIR-V Extension: https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/NV/SPV_NV_shader_subgroup_partitioned.html Depends on microsoft#6596 Fixes microsoft#6600
sudonatalie
added a commit
to sudonatalie/DirectXShaderCompiler
that referenced
this issue
May 10, 2024
Implements the Shader Model 6.5 WaveMultiPrefix* intrinsic functions using the group operation from SPV_NV_shader_subgroup_partitioned, PartitionedExclusiveScanNV, which performs a partitioned exclusive scan operation across a subset of invocations ("lanes") in a subgroup ("wave"). The subset of the partition is determined by the provided ballot ("mask") parameter, which follows the same requirements for valid partitioning and active invocations/lanes as the HLSL parameter. Note that WaveMultiPrefixCountBits remains unimplemented because it does not directly map to a SPIR-V GroupNonUniformArithmetic instruction that accepts the PartitionedExclusiveScanNV Group Operation. DirectX Spec: https://microsoft.github.io/DirectX-Specs/d3d/HLSL_ShaderModel6_5.html#wavemultiprefix-functions SPIR-V Extension: https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/NV/SPV_NV_shader_subgroup_partitioned.html Depends on microsoft#6596 Fixes microsoft#6600
sudonatalie
added a commit
to sudonatalie/DirectXShaderCompiler
that referenced
this issue
May 15, 2024
Implements the Shader Model 6.5 WaveMultiPrefix* intrinsic functions using the group operation from SPV_NV_shader_subgroup_partitioned, PartitionedExclusiveScanNV, which performs a partitioned exclusive scan operation across a subset of invocations ("lanes") in a subgroup ("wave"). The subset of the partition is determined by the provided ballot ("mask") parameter, which follows the same requirements for valid partitioning and active invocations/lanes as the HLSL parameter. Note that WaveMultiPrefixCountBits remains unimplemented because it does not directly map to a SPIR-V GroupNonUniformArithmetic instruction that accepts the PartitionedExclusiveScanNV Group Operation. DirectX Spec: https://microsoft.github.io/DirectX-Specs/d3d/HLSL_ShaderModel6_5.html#wavemultiprefix-functions SPIR-V Extension: https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/NV/SPV_NV_shader_subgroup_partitioned.html Depends on microsoft#6596 Fixes microsoft#6600
s-perron
pushed a commit
that referenced
this issue
May 17, 2024
Implements the Shader Model 6.5 WaveMultiPrefix* intrinsic functions using the group operation from SPV_NV_shader_subgroup_partitioned, PartitionedExclusiveScanNV, which performs a partitioned exclusive scan operation across a subset of invocations ("lanes") in a subgroup ("wave"). The subset of the partition is determined by the provided ballot ("mask") parameter, which follows the same requirements for valid partitioning and active invocations/lanes as the HLSL parameter. Note that WaveMultiPrefixCountBits remains unimplemented because it does not directly map to a SPIR-V GroupNonUniformArithmetic instruction that accepts the PartitionedExclusiveScanNV Group Operation. DirectX Spec: https://microsoft.github.io/DirectX-Specs/d3d/HLSL_ShaderModel6_5.html#wavemultiprefix-functions SPIR-V Extension: https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/NV/SPV_NV_shader_subgroup_partitioned.html Depends on #6596 Fixes #6600
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The WaveMultiPrefix*() Functions were introduced in shader model 6.5 but are not yet supported by the SPIR-V backend. They should be implemented using: https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/NV/SPV_NV_shader_subgroup_partitioned.html
Related to #6545
The text was updated successfully, but these errors were encountered: