From 1ffcef04cee5eaa14617fa1dfb92fdb4a68332cf Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Fri, 30 Aug 2013 23:15:59 -0700 Subject: [PATCH] glsl: Skip unavailable built-ins when matching signatures. Signed-off-by: Kenneth Graunke Reviewed-by: Matt Turner Reviewed-by: Paul Berry --- src/glsl/ir_function.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/glsl/ir_function.cpp b/src/glsl/ir_function.cpp index 2dd98bcc291..53cf469d9c0 100644 --- a/src/glsl/ir_function.cpp +++ b/src/glsl/ir_function.cpp @@ -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; } -- 2.30.2