summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir_reader.cpp
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2014-07-24 14:05:40 -0700
committerKenneth Graunke <kenneth@whitecape.org>2014-08-04 15:47:06 -0700
commit21129d4de300f1a934d02e30347c465520afef9e (patch)
tree499101703099b43852ce4119507131f9fd95550b /src/glsl/ir_reader.cpp
parentf82f2fb3dc770902f1657ab1c22e6004faa3afab (diff)
downloadexternal_mesa3d-21129d4de300f1a934d02e30347c465520afef9e.zip
external_mesa3d-21129d4de300f1a934d02e30347c465520afef9e.tar.gz
external_mesa3d-21129d4de300f1a934d02e30347c465520afef9e.tar.bz2
glsl: Make it possible to ignore built-ins when matching signatures.
Historically, we've implemented the rules for overriding built-in functions by creating multiple ir_functions and relying on the symbol table to hide the one containing built-in functions. That works, but has a few drawbacks, so the next patch will change it. Instead, we'll have a single ir_function for a particular name, which will contain both built-in and user-defined signatures. Passing an extra parameter to matching_signature makes it easy to ignore built-ins when they're supposed to be hidden. I didn't add the parameter to exact_matching_signature since it wasn't necessary. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/glsl/ir_reader.cpp')
-rw-r--r--src/glsl/ir_reader.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/glsl/ir_reader.cpp b/src/glsl/ir_reader.cpp
index e3566e1..ae00e79 100644
--- a/src/glsl/ir_reader.cpp
+++ b/src/glsl/ir_reader.cpp
@@ -677,7 +677,8 @@ ir_reader::read_call(s_expression *expr)
return NULL;
}
- ir_function_signature *callee = f->matching_signature(state, &parameters);
+ ir_function_signature *callee =
+ f->matching_signature(state, &parameters, true);
if (callee == NULL) {
ir_read_error(expr, "couldn't find matching signature for function "
"%s", name->value());