diff --git a/spec/index.bs b/spec/index.bs index 263e2b9dcb..cb28c57f74 100644 --- a/spec/index.bs +++ b/spec/index.bs @@ -1456,6 +1456,7 @@ enum GPUFeatureName { "pipeline-statistics-query", "texture-compression-bc", "timestamp-query", + "subgroup-operations" }; @@ -7706,6 +7707,10 @@ The following enums are supported if and only if the {{GPUFeatureName/"pipeline- * {{GPUQueryType/"pipeline-statistics"}} +## subgroup-operations ## {#subgroup-operations} + +Issue: Define functionality when the {{GPUFeatureName/"subgroup-operations"}} [=feature=] is enabled. + ## texture-compression-bc ## {#texture-compression-bc} diff --git a/wgsl/index.bs b/wgsl/index.bs index 106f7666bc..5c6e407ac6 100644 --- a/wgsl/index.bs +++ b/wgsl/index.bs @@ -4600,6 +4600,19 @@ See [[#builtin-inputs-outputs]] for how to declare a built-in variable.
Subgroup built-in functions | SPIR-V + |
subgroupIsFirst() -> bool | OpGroupNonUniformElect + |
subgroupAll(bool) -> bool | OpGroupNonUniformAll + |
subgroupAny(bool) -> bool | OpGroupNonUniformAny + |
subgroupBallot(bool) -> vec4<u32> | OpGroupNonUniformBallot + |
subgroupBroadcastFirst(Integral) -> Integral | OpGroupNonUniformBroadcastFirst + |
subgroupBroadcastFirst(Floating) -> Floating | OpGroupNonUniformBroadcastFirst + |
subgroupAdd(Integral) -> Integral | OpGroupNonUniformIAdd with Reduce + |
subgroupAdd(Floating) -> Floating | OpGroupNonUniformFAdd with Reduce + |
subgroupMul(Integral) -> Integral | OpGroupNonUniformIMul with Reduce + |
subgroupMul(Floating) -> Floating | OpGroupNonUniformFMul with Reduce + |
subgroupMin(Integral) -> Integral | OpGroupNonUniformUMin or OpGroupNonUniformSMin with Reduce + |
subgroupMin(Floating) -> Floating | OpGroupNonUniformFMin with Reduce + |
subgroupMax(Integral) -> Integral | OpGroupNonUniformUMax or OpGroupNonUniformSMax with Reduce + |
subgroupMax(Floating) -> Floating | OpGroupNonUniformFMax with Reduce + |
subgroupAnd(Integral) -> Integral | OpGroupNonUniformBitwiseAnd + |
subgroupOr(Integral) -> Integral | OpGroupNonUniformBitwiseOr + |
subgroupXor(Integral) -> Integral | OpGroupNonUniformBitwiseXor + |
subgroupPrefixAdd(Integral) -> Integral | OpGroupNonUniformIAdd with ExclusiveScan + |
subgroupPrefixAdd(Floating) -> Floating | OpGroupNonUniformFAdd with ExclusiveScan + |
subgroupPrefixMul(Integral) -> Integral | OpGroupNonUniformIMul with ExclusiveScan + |
subgroupPrefixMul(Floating) -> Floating | OpGroupNonUniformFMul with ExclusiveScan + |