glsl: Skip unavailable built-ins when matching signatures.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
This commit is contained in:
Kenneth Graunke 2013-08-30 23:15:59 -07:00
parent 3e820e3aef
commit 1ffcef04ce

View file

@ -145,6 +145,10 @@ ir_function::matching_signature(_mesa_glsl_parse_state *state,
ir_function_signature *const sig =
(ir_function_signature *) iter.get();
/* Skip over any built-ins that aren't available in this shader. */
if (sig->is_builtin() && !sig->is_builtin_available(state))
continue;
switch (parameter_lists_match(& sig->parameters, actual_parameters)) {
case PARAMETER_LIST_EXACT_MATCH:
*is_exact = true;
@ -212,6 +216,10 @@ ir_function::exact_matching_signature(_mesa_glsl_parse_state *state,
ir_function_signature *const sig =
(ir_function_signature *) iter.get();
/* Skip over any built-ins that aren't available in this shader. */
if (sig->is_builtin() && !sig->is_builtin_available(state))
continue;
if (parameter_lists_match_exact(&sig->parameters, actual_parameters))
return sig;
}