Commit e975c5b7 authored by Erik Faye-Lund 's avatar Erik Faye-Lund

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 's avatarErik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Tapani Pälli's avatarTapani Pälli <tapani.palli@intel.com>
parent 12f001f0
......@@ -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);
......
......@@ -1446,8 +1446,7 @@ glsl_type::can_implicitly_convert_to(const glsl_type *desired,
* state-dependent checks have already happened though, so allow anything
* that's allowed in any shader version.
*/
if ((!state || state->is_version(400, 0) || state->ARB_gpu_shader5_enable ||
state->MESA_shader_integer_functions_enable) &&
if ((!state || state->has_implicit_uint_to_int_conversion()) &&
desired->base_type == GLSL_TYPE_UINT && this->base_type == GLSL_TYPE_INT)
return true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment