summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/builtin_functions.h
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2017-07-03 17:08:12 -0400
committerIlia Mirkin <[email protected]>2017-07-05 20:05:53 -0400
commit880f21f55d579fe2183255d031c23343da30f69e (patch)
tree90bed3cbfae5903ce36f47973f9d1383094ae6e2 /src/compiler/glsl/builtin_functions.h
parentab1939aea8ff10d2e8b7d579575068ec11f60030 (diff)
glsl: check if any of the named builtins are available first
_mesa_glsl_has_builtin_function is used to determine whether any variant of a builtin are available, for the purpose of enforcing the GLSL ES 3.00+ rule that overloads or overrides of builtins are disallowed. However the builtin_builder contains information on all builtins, irrespective of parse state, or versions, or extension enablement. As a result we would say that a builtin existed even if it was not actually available. To resolve this, first check if at least one signature is available for a builtin before returning true. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101666 Signed-off-by: Ilia Mirkin <[email protected]> Cc: [email protected] Reviewed-by: Timothy Arceri <[email protected]> Acked-by: Lionel Landwerlin <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/compiler/glsl/builtin_functions.h')
-rw-r--r--src/compiler/glsl/builtin_functions.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/glsl/builtin_functions.h b/src/compiler/glsl/builtin_functions.h
index 14a52b94027..2053c82b745 100644
--- a/src/compiler/glsl/builtin_functions.h
+++ b/src/compiler/glsl/builtin_functions.h
@@ -32,7 +32,8 @@ _mesa_glsl_find_builtin_function(_mesa_glsl_parse_state *state,
const char *name, exec_list *actual_parameters);
extern bool
-_mesa_glsl_has_builtin_function(const char *name);
+_mesa_glsl_has_builtin_function(_mesa_glsl_parse_state *state,
+ const char *name);
extern gl_shader *
_mesa_glsl_get_builtin_function_shader(void);