glsl: add has_implicit_uint_to_int_conversion()-helper
This makes the code a bit easier to read, as well as reduces repetition, especially when we add support for EXT_shader_implicit_conversions. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
@@ -250,8 +250,7 @@ get_implicit_conversion_operation(const glsl_type *to, const glsl_type *from,
|
||||
}
|
||||
|
||||
case GLSL_TYPE_UINT:
|
||||
if (!state->is_version(400, 0) && !state->ARB_gpu_shader5_enable
|
||||
&& !state->MESA_shader_integer_functions_enable)
|
||||
if (!state->has_implicit_uint_to_int_conversion())
|
||||
return (ir_expression_operation)0;
|
||||
switch (from->base_type) {
|
||||
case GLSL_TYPE_INT: return ir_unop_i2u;
|
||||
|
@@ -349,6 +349,13 @@ struct _mesa_glsl_parse_state {
|
||||
return is_version(120, 0);
|
||||
}
|
||||
|
||||
bool has_implicit_uint_to_int_conversion() const
|
||||
{
|
||||
return ARB_gpu_shader5_enable ||
|
||||
MESA_shader_integer_functions_enable ||
|
||||
is_version(400, 0);
|
||||
}
|
||||
|
||||
void process_version_directive(YYLTYPE *locp, int version,
|
||||
const char *ident);
|
||||
|
||||
|
Reference in New Issue
Block a user