diff options
author | Erik Faye-Lund <[email protected]> | 2018-10-30 15:15:58 +0100 |
---|---|---|
committer | Erik Faye-Lund <[email protected]> | 2018-11-02 11:10:36 +0100 |
commit | ecab2d6f1481e1e50b20b54ae88dd949c1dafab6 (patch) | |
tree | 54527576c50cd9cac6a2a813e94c11329a13a2e0 /src | |
parent | e975c5b785f9e6d0c5ccec12a027b19a6073130c (diff) |
glsl: fall back to inexact function-match
In GLES, we currently either need an exact match with a local function,
or an exact match with a builtin.
However, if we add support for implicit conversions for GLES shaders,
we also need to fall back to a non-exact match in the case where there
were no builtin match either.
Luckily, we already have a variable ready with this, so let's just
return it if the builtin-search failed.
Signed-off-by: Erik Faye-Lund <[email protected]>
Reviewed-by: Tapani Pälli <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/glsl/ast_function.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/compiler/glsl/ast_function.cpp b/src/compiler/glsl/ast_function.cpp index 1fa3f7561ae..ee68d0e17e7 100644 --- a/src/compiler/glsl/ast_function.cpp +++ b/src/compiler/glsl/ast_function.cpp @@ -667,7 +667,12 @@ match_function_by_name(const char *name, /* Local shader has no exact candidates; check the built-ins. */ _mesa_glsl_initialize_builtin_functions(); sig = _mesa_glsl_find_builtin_function(state, name, actual_parameters); - return sig; + + /* if _mesa_glsl_find_builtin_function failed, fall back to the result + * of choose_best_inexact_overload() instead. This should only affect + * GLES. + */ + return sig ? sig : local_sig; } static ir_function_signature * |