diff options
author | Jason Ekstrand <[email protected]> | 2017-09-30 14:50:40 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-03-07 12:13:47 -0800 |
commit | 752e9697030389e5b09553d55f9c4fc68edf08a2 (patch) | |
tree | 4215327bffba6e63fda9c056a8b707cf33b176c3 /src/compiler/nir | |
parent | 34c60ea02bdcb5ebea1459b71bc94eea3b7b6ac3 (diff) |
compiler: Add two new system values for subgroups
This will be required for SPIR-V subgroup support
Reviewed-by: Lionel Landwerlin <[email protected]>
Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
Reviewed-by: Iago Toral Quiroga <[email protected]>
Diffstat (limited to 'src/compiler/nir')
-rw-r--r-- | src/compiler/nir/nir.c | 8 | ||||
-rw-r--r-- | src/compiler/nir/nir_intrinsics.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c index bdd8960403c..f5fd1dc586b 100644 --- a/src/compiler/nir/nir.c +++ b/src/compiler/nir/nir.c @@ -1969,6 +1969,10 @@ nir_intrinsic_from_system_value(gl_system_value val) return nir_intrinsic_load_subgroup_le_mask; case SYSTEM_VALUE_SUBGROUP_LT_MASK: return nir_intrinsic_load_subgroup_lt_mask; + case SYSTEM_VALUE_NUM_SUBGROUPS: + return nir_intrinsic_load_num_subgroups; + case SYSTEM_VALUE_SUBGROUP_ID: + return nir_intrinsic_load_subgroup_id; case SYSTEM_VALUE_LOCAL_GROUP_SIZE: return nir_intrinsic_load_local_group_size; default: @@ -2040,6 +2044,10 @@ nir_system_value_from_intrinsic(nir_intrinsic_op intrin) return SYSTEM_VALUE_SUBGROUP_LE_MASK; case nir_intrinsic_load_subgroup_lt_mask: return SYSTEM_VALUE_SUBGROUP_LT_MASK; + case nir_intrinsic_load_num_subgroups: + return SYSTEM_VALUE_NUM_SUBGROUPS; + case nir_intrinsic_load_subgroup_id: + return SYSTEM_VALUE_SUBGROUP_ID; case nir_intrinsic_load_local_group_size: return SYSTEM_VALUE_LOCAL_GROUP_SIZE; default: diff --git a/src/compiler/nir/nir_intrinsics.h b/src/compiler/nir/nir_intrinsics.h index b8a67355900..1a816b46792 100644 --- a/src/compiler/nir/nir_intrinsics.h +++ b/src/compiler/nir/nir_intrinsics.h @@ -381,6 +381,7 @@ SYSTEM_VALUE(subgroup_ge_mask, 0, 0, xx, xx, xx) SYSTEM_VALUE(subgroup_gt_mask, 0, 0, xx, xx, xx) SYSTEM_VALUE(subgroup_le_mask, 0, 0, xx, xx, xx) SYSTEM_VALUE(subgroup_lt_mask, 0, 0, xx, xx, xx) +SYSTEM_VALUE(num_subgroups, 1, 0, xx, xx, xx) SYSTEM_VALUE(subgroup_id, 1, 0, xx, xx, xx) SYSTEM_VALUE(local_group_size, 3, 0, xx, xx, xx) |