compiler: add a new explicit interpolation mode

This introduces one more interpolation mode INTERP_MODE_EXPLICIT,
which is needed for AMD_shader_explicit_vertex_parameter.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3578>
This commit is contained in:
Samuel Pitoiset
2020-01-24 10:14:42 +01:00
committed by Marge Bot
parent e6b531af66
commit 746e9e5d66
5 changed files with 5 additions and 3 deletions

View File

@@ -213,7 +213,7 @@ void ir_print_visitor::visit(ir_variable *ir)
"in ", "out ", "inout ", "in ", "out ", "inout ",
"const_in ", "sys ", "temporary " }; "const_in ", "sys ", "temporary " };
STATIC_ASSERT(ARRAY_SIZE(mode) == ir_var_mode_count); STATIC_ASSERT(ARRAY_SIZE(mode) == ir_var_mode_count);
const char *const interp[] = { "", "smooth", "flat", "noperspective" }; const char *const interp[] = { "", "smooth", "flat", "noperspective", "explicit" };
STATIC_ASSERT(ARRAY_SIZE(interp) == INTERP_MODE_COUNT); STATIC_ASSERT(ARRAY_SIZE(interp) == INTERP_MODE_COUNT);
fprintf(f, "(%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s) ", fprintf(f, "(%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s) ",

View File

@@ -1254,7 +1254,7 @@ struct glsl_struct_field {
* For interface blocks, the interpolation mode (as in * For interface blocks, the interpolation mode (as in
* ir_variable::interpolation). 0 otherwise. * ir_variable::interpolation). 0 otherwise.
*/ */
unsigned interpolation:2; unsigned interpolation:3;
/** /**
* For interface blocks, 1 if this variable uses centroid interpolation (as * For interface blocks, 1 if this variable uses centroid interpolation (as

View File

@@ -378,7 +378,7 @@ typedef struct nir_variable {
* *
* \sa glsl_interp_mode * \sa glsl_interp_mode
*/ */
unsigned interpolation:2; unsigned interpolation:3;
/** /**
* If non-zero, then this variable may be packed along with other variables * If non-zero, then this variable may be packed along with other variables

View File

@@ -269,6 +269,7 @@ glsl_interp_mode_name(enum glsl_interp_mode qual)
ENUM(INTERP_MODE_SMOOTH), ENUM(INTERP_MODE_SMOOTH),
ENUM(INTERP_MODE_FLAT), ENUM(INTERP_MODE_FLAT),
ENUM(INTERP_MODE_NOPERSPECTIVE), ENUM(INTERP_MODE_NOPERSPECTIVE),
ENUM(INTERP_MODE_EXPLICIT),
}; };
STATIC_ASSERT(ARRAY_SIZE(names) == INTERP_MODE_COUNT); STATIC_ASSERT(ARRAY_SIZE(names) == INTERP_MODE_COUNT);
return NAME(qual); return NAME(qual);

View File

@@ -667,6 +667,7 @@ enum glsl_interp_mode
INTERP_MODE_SMOOTH, INTERP_MODE_SMOOTH,
INTERP_MODE_FLAT, INTERP_MODE_FLAT,
INTERP_MODE_NOPERSPECTIVE, INTERP_MODE_NOPERSPECTIVE,
INTERP_MODE_EXPLICIT,
INTERP_MODE_COUNT /**< Number of interpolation qualifiers */ INTERP_MODE_COUNT /**< Number of interpolation qualifiers */
}; };