diff options
author | Connor Abbott <cwabbott0@gmail.com> | 2017-06-06 16:02:22 -0700 |
---|---|---|
committer | Connor Abbott <cwabbott0@gmail.com> | 2017-08-07 16:41:31 -0700 |
commit | 8d2d39676ae741184a8201c7f632ec16d9daf21f (patch) | |
tree | e064c9937775db6c78fc4682e32486945c7f2e24 | |
parent | 546ffbc4bfdff0aed05c66c5627cba3b65fdb4b2 (diff) |
compiler: add new system values for SPV_KHR_shader_ballot
For SPIR-V, Khronos decided to make the SubGroup*Mask system values
consist of 4 32-bit components rather than one 64-bit component.
Although we'll lower away the difference in nir_lower_system_values so
drivers won't have to deal with them, adding these system values makes
it easier to implement the SPIRV-to-NIR bits.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
-rw-r--r-- | src/compiler/shader_enums.c | 5 | ||||
-rw-r--r-- | src/compiler/shader_enums.h | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/compiler/shader_enums.c b/src/compiler/shader_enums.c index b2ca80b49c..571a43e652 100644 --- a/src/compiler/shader_enums.c +++ b/src/compiler/shader_enums.c @@ -211,6 +211,11 @@ gl_system_value_name(gl_system_value sysval) ENUM(SYSTEM_VALUE_SUBGROUP_GT_MASK), ENUM(SYSTEM_VALUE_SUBGROUP_LE_MASK), ENUM(SYSTEM_VALUE_SUBGROUP_LT_MASK), + ENUM(SYSTEM_VALUE_SUBGROUP_EQ_MASK_32BIT), + ENUM(SYSTEM_VALUE_SUBGROUP_GE_MASK_32BIT), + ENUM(SYSTEM_VALUE_SUBGROUP_GT_MASK_32BIT), + ENUM(SYSTEM_VALUE_SUBGROUP_LE_MASK_32BIT), + ENUM(SYSTEM_VALUE_SUBGROUP_LT_MASK_32BIT), ENUM(SYSTEM_VALUE_VERTEX_ID), ENUM(SYSTEM_VALUE_INSTANCE_ID), ENUM(SYSTEM_VALUE_INSTANCE_INDEX), diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h index 2f20e68c5d..c73b3826c9 100644 --- a/src/compiler/shader_enums.h +++ b/src/compiler/shader_enums.h @@ -374,6 +374,17 @@ typedef enum SYSTEM_VALUE_SUBGROUP_GT_MASK, SYSTEM_VALUE_SUBGROUP_LE_MASK, SYSTEM_VALUE_SUBGROUP_LT_MASK, + + /** + * These are the same as system values above, except that they consist of 4 + * 32-bit components rather than 1 64-bit component. This matches the + * semantics of the SPIR-V KHR_shader_ballot extension. + */ + SYSTEM_VALUE_SUBGROUP_EQ_MASK_32BIT, + SYSTEM_VALUE_SUBGROUP_GE_MASK_32BIT, + SYSTEM_VALUE_SUBGROUP_GT_MASK_32BIT, + SYSTEM_VALUE_SUBGROUP_LE_MASK_32BIT, + SYSTEM_VALUE_SUBGROUP_LT_MASK_32BIT, /*@}*/ /*@}*/ |