mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 06:58:05 +02:00
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:
parent
34c60ea02b
commit
752e969703
4 changed files with 19 additions and 0 deletions
|
|
@ -1969,6 +1969,10 @@ nir_intrinsic_from_system_value(gl_system_value val)
|
||||||
return nir_intrinsic_load_subgroup_le_mask;
|
return nir_intrinsic_load_subgroup_le_mask;
|
||||||
case SYSTEM_VALUE_SUBGROUP_LT_MASK:
|
case SYSTEM_VALUE_SUBGROUP_LT_MASK:
|
||||||
return nir_intrinsic_load_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:
|
case SYSTEM_VALUE_LOCAL_GROUP_SIZE:
|
||||||
return nir_intrinsic_load_local_group_size;
|
return nir_intrinsic_load_local_group_size;
|
||||||
default:
|
default:
|
||||||
|
|
@ -2040,6 +2044,10 @@ nir_system_value_from_intrinsic(nir_intrinsic_op intrin)
|
||||||
return SYSTEM_VALUE_SUBGROUP_LE_MASK;
|
return SYSTEM_VALUE_SUBGROUP_LE_MASK;
|
||||||
case nir_intrinsic_load_subgroup_lt_mask:
|
case nir_intrinsic_load_subgroup_lt_mask:
|
||||||
return SYSTEM_VALUE_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:
|
case nir_intrinsic_load_local_group_size:
|
||||||
return SYSTEM_VALUE_LOCAL_GROUP_SIZE;
|
return SYSTEM_VALUE_LOCAL_GROUP_SIZE;
|
||||||
default:
|
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_gt_mask, 0, 0, xx, xx, xx)
|
||||||
SYSTEM_VALUE(subgroup_le_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(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(subgroup_id, 1, 0, xx, xx, xx)
|
||||||
SYSTEM_VALUE(local_group_size, 3, 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_GT_MASK),
|
||||||
ENUM(SYSTEM_VALUE_SUBGROUP_LE_MASK),
|
ENUM(SYSTEM_VALUE_SUBGROUP_LE_MASK),
|
||||||
ENUM(SYSTEM_VALUE_SUBGROUP_LT_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_VERTEX_ID),
|
||||||
ENUM(SYSTEM_VALUE_INSTANCE_ID),
|
ENUM(SYSTEM_VALUE_INSTANCE_ID),
|
||||||
ENUM(SYSTEM_VALUE_INSTANCE_INDEX),
|
ENUM(SYSTEM_VALUE_INSTANCE_INDEX),
|
||||||
|
|
|
||||||
|
|
@ -397,6 +397,14 @@ typedef enum
|
||||||
SYSTEM_VALUE_SUBGROUP_LT_MASK,
|
SYSTEM_VALUE_SUBGROUP_LT_MASK,
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builtin variables added by VK_KHR_subgroups
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
SYSTEM_VALUE_NUM_SUBGROUPS,
|
||||||
|
SYSTEM_VALUE_SUBGROUP_ID,
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue