diff --git a/src/compiler/glsl/ir_function.cpp b/src/compiler/glsl/ir_function.cpp index 97262f0f4b9..a38e5285292 100644 --- a/src/compiler/glsl/ir_function.cpp +++ b/src/compiler/glsl/ir_function.cpp @@ -329,6 +329,9 @@ ir_function::matching_signature(_mesa_glsl_parse_state *state, free(inexact_matches); return sig; case PARAMETER_LIST_INEXACT_MATCH: + /* Subroutine signatures must match exactly */ + if (this->is_subroutine) + continue; inexact_matches_temp = (ir_function_signature **) realloc(inexact_matches, sizeof(*inexact_matches) *