compiler: Add color system value
This is nice to have with radeonsi, where color varyings are handled specially to avoid recompiles. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
@@ -1848,6 +1848,10 @@ nir_intrinsic_from_system_value(gl_system_value val)
|
||||
return nir_intrinsic_load_patch_vertices_in;
|
||||
case SYSTEM_VALUE_HELPER_INVOCATION:
|
||||
return nir_intrinsic_load_helper_invocation;
|
||||
case SYSTEM_VALUE_COLOR0:
|
||||
return nir_intrinsic_load_color0;
|
||||
case SYSTEM_VALUE_COLOR1:
|
||||
return nir_intrinsic_load_color1;
|
||||
case SYSTEM_VALUE_VIEW_INDEX:
|
||||
return nir_intrinsic_load_view_index;
|
||||
case SYSTEM_VALUE_SUBGROUP_SIZE:
|
||||
@@ -1933,6 +1937,10 @@ nir_system_value_from_intrinsic(nir_intrinsic_op intrin)
|
||||
return SYSTEM_VALUE_VERTICES_IN;
|
||||
case nir_intrinsic_load_helper_invocation:
|
||||
return SYSTEM_VALUE_HELPER_INVOCATION;
|
||||
case nir_intrinsic_load_color0:
|
||||
return SYSTEM_VALUE_COLOR0;
|
||||
case nir_intrinsic_load_color1:
|
||||
return SYSTEM_VALUE_COLOR1;
|
||||
case nir_intrinsic_load_view_index:
|
||||
return SYSTEM_VALUE_VIEW_INDEX;
|
||||
case nir_intrinsic_load_subgroup_size:
|
||||
|
@@ -594,6 +594,12 @@ system_value("blend_const_color_rgba", 4)
|
||||
system_value("blend_const_color_rgba8888_unorm", 1)
|
||||
system_value("blend_const_color_aaaa8888_unorm", 1)
|
||||
|
||||
# System values for gl_Color, for radeonsi which interpolates these in the
|
||||
# shader prolog to handle two-sided color without recompiles and therefore
|
||||
# doesn't handle these in the main shader part like normal varyings.
|
||||
system_value("color0", 4)
|
||||
system_value("color1", 4)
|
||||
|
||||
# Barycentric coordinate intrinsics.
|
||||
#
|
||||
# These set up the barycentric coordinates for a particular interpolation.
|
||||
|
@@ -231,6 +231,8 @@ gl_system_value_name(gl_system_value sysval)
|
||||
ENUM(SYSTEM_VALUE_SAMPLE_POS),
|
||||
ENUM(SYSTEM_VALUE_SAMPLE_MASK_IN),
|
||||
ENUM(SYSTEM_VALUE_HELPER_INVOCATION),
|
||||
ENUM(SYSTEM_VALUE_COLOR0),
|
||||
ENUM(SYSTEM_VALUE_COLOR1),
|
||||
ENUM(SYSTEM_VALUE_TESS_COORD),
|
||||
ENUM(SYSTEM_VALUE_VERTICES_IN),
|
||||
ENUM(SYSTEM_VALUE_PRIMITIVE_ID),
|
||||
|
@@ -580,6 +580,8 @@ typedef enum
|
||||
SYSTEM_VALUE_SAMPLE_POS,
|
||||
SYSTEM_VALUE_SAMPLE_MASK_IN,
|
||||
SYSTEM_VALUE_HELPER_INVOCATION,
|
||||
SYSTEM_VALUE_COLOR0,
|
||||
SYSTEM_VALUE_COLOR1,
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user