diff options
author | marha <marha@users.sourceforge.net> | 2013-09-10 09:01:25 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-09-10 09:01:25 +0200 |
commit | 889d7dd8e94a5538f388cc619115bf5c0b6fc0b7 (patch) | |
tree | bdda17693281525be9d48886acf2dc89ac4c66b4 /mesalib/src/glsl/ir_function.cpp | |
parent | 2414a1de3cc17f438219f8f2a58b530d33e99a5e (diff) | |
download | vcxsrv-889d7dd8e94a5538f388cc619115bf5c0b6fc0b7.tar.gz vcxsrv-889d7dd8e94a5538f388cc619115bf5c0b6fc0b7.tar.bz2 vcxsrv-889d7dd8e94a5538f388cc619115bf5c0b6fc0b7.zip |
fontconfig libX11 libXmu libxcb mesa xserver git update 10 Sep 2013
xserver commit 47ff382d1fce25a8b097d45b79489e891f1f1228
libxcb commit f1405d9fe4a6ddcae24585ba254389a4c4f4c8c9
libX11 commit cb107760df33ffc8630677e66e2e50aa37950a5c
libXmu commit 2539e539eafdac88177c8ee30b043c5d52f017e4
fontconfig commit a61e145304da86c8c35b137493bbd8fd5dd1e7f5
mesa commit 395b9410860371a64d6b5f2d50679f29eb41729e
Diffstat (limited to 'mesalib/src/glsl/ir_function.cpp')
-rw-r--r-- | mesalib/src/glsl/ir_function.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/mesalib/src/glsl/ir_function.cpp b/mesalib/src/glsl/ir_function.cpp index fe4209c77..53cf469d9 100644 --- a/mesalib/src/glsl/ir_function.cpp +++ b/mesalib/src/glsl/ir_function.cpp @@ -116,14 +116,16 @@ parameter_lists_match(const exec_list *list_a, const exec_list *list_b) ir_function_signature * -ir_function::matching_signature(const exec_list *actual_parameters) +ir_function::matching_signature(_mesa_glsl_parse_state *state, + const exec_list *actual_parameters) { bool is_exact; - return matching_signature(actual_parameters, &is_exact); + return matching_signature(state, actual_parameters, &is_exact); } ir_function_signature * -ir_function::matching_signature(const exec_list *actual_parameters, +ir_function::matching_signature(_mesa_glsl_parse_state *state, + const exec_list *actual_parameters, bool *is_exact) { ir_function_signature *match = NULL; @@ -143,6 +145,10 @@ ir_function::matching_signature(const exec_list *actual_parameters, 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; @@ -203,12 +209,17 @@ parameter_lists_match_exact(const exec_list *list_a, const exec_list *list_b) } ir_function_signature * -ir_function::exact_matching_signature(const exec_list *actual_parameters) +ir_function::exact_matching_signature(_mesa_glsl_parse_state *state, + const exec_list *actual_parameters) { foreach_iter(exec_list_iterator, iter, signatures) { 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; } |