compiler: Add two new system values for subgroups
This will be required for SPIR-V subgroup support Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:
@@ -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:
|
||||
|
@@ -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)
|
||||
|
||||
|
@@ -210,6 +210,8 @@ 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_NUM_SUBGROUPS),
|
||||
ENUM(SYSTEM_VALUE_SUBGROUP_ID),
|
||||
ENUM(SYSTEM_VALUE_VERTEX_ID),
|
||||
ENUM(SYSTEM_VALUE_INSTANCE_ID),
|
||||
ENUM(SYSTEM_VALUE_INSTANCE_INDEX),
|
||||
|
@@ -397,6 +397,14 @@ typedef enum
|
||||
SYSTEM_VALUE_SUBGROUP_LT_MASK,
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* Builtin variables added by VK_KHR_subgroups
|
||||
*/
|
||||
/*@{*/
|
||||
SYSTEM_VALUE_NUM_SUBGROUPS,
|
||||
SYSTEM_VALUE_SUBGROUP_ID,
|
||||
/*@}*/
|
||||
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user