glsl: handle conversions to double when comparing param matches

This allows mod(int, int) to become selected as float mod when doubles
are supported.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
Ilia Mirkin 2015-06-17 15:07:14 -04:00
parent 6b0378e483
commit c40e7ee7c4

View file

@ -148,9 +148,11 @@ get_parameter_match_type(const ir_variable *param,
if (from_type == to_type)
return PARAMETER_EXACT_MATCH;
/* XXX: When ARB_gpu_shader_fp64 support is added, check for float->double,
* and int/uint->double conversions
*/
if (to_type->base_type == GLSL_TYPE_DOUBLE) {
if (from_type->base_type == GLSL_TYPE_FLOAT)
return PARAMETER_FLOAT_TO_DOUBLE;
return PARAMETER_INT_TO_DOUBLE;
}
if (to_type->base_type == GLSL_TYPE_FLOAT)
return PARAMETER_INT_TO_FLOAT;