MESA_shader_integer_functions: Allow implicit int->uint conversions
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
65b0346fdb
commit
90537e1a0e
|
@ -244,7 +244,8 @@ 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)
|
||||
if (!state->is_version(400, 0) && !state->ARB_gpu_shader5_enable
|
||||
&& !state->MESA_shader_integer_functions_enable)
|
||||
return (ir_expression_operation)0;
|
||||
switch (from->base_type) {
|
||||
case GLSL_TYPE_INT: return ir_unop_i2u;
|
||||
|
|
|
@ -1403,11 +1403,14 @@ glsl_type::can_implicitly_convert_to(const glsl_type *desired,
|
|||
if (desired->is_float() && this->is_integer())
|
||||
return true;
|
||||
|
||||
/* With GLSL 4.0 / ARB_gpu_shader5, int can be converted to uint.
|
||||
* Note that state may be NULL here, when resolving function calls in the
|
||||
* linker. By this time, all the 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) &&
|
||||
/* With GLSL 4.0, ARB_gpu_shader5, or MESA_shader_integer_functions, int
|
||||
* can be converted to uint. Note that state may be NULL here, when
|
||||
* resolving function calls in the linker. By this time, all the
|
||||
* 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) &&
|
||||
desired->base_type == GLSL_TYPE_UINT && this->base_type == GLSL_TYPE_INT)
|
||||
return true;
|
||||
|
||||
|
|
Loading…
Reference in New Issue