On 09/30/2013 11:03 AM, Ian Romanick wrote: > On 09/30/2013 03:08 AM, Chris Forbes wrote: >> From: Maxence Le Dore <maxence.led...@gmail.com> >> >> V2 [Chris Forbes]: >> - Add new pattern, fixup parameter reading. >> >> V3: Rebase onto new builtins machinery >> >> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> >> --- >> src/glsl/builtin_functions.cpp | 35 +++++++++++++++++++++++++++++++++++ >> src/glsl/glcpp/glcpp-parse.y | 3 +++ >> src/glsl/glsl_parser_extras.cpp | 1 + >> src/glsl/glsl_parser_extras.h | 2 ++ >> src/glsl/ir.cpp | 2 +- >> src/glsl/ir.h | 4 +++- >> src/glsl/ir_clone.cpp | 1 + >> src/glsl/ir_hv_accept.cpp | 1 + >> src/glsl/ir_print_visitor.cpp | 3 ++- >> src/glsl/ir_reader.cpp | 6 +++++- >> src/glsl/ir_rvalue_visitor.cpp | 1 + >> src/glsl/opt_tree_grafting.cpp | 1 + >> src/glsl/standalone_scaffolding.cpp | 1 + >> src/mesa/program/ir_to_mesa.cpp | 5 +++++ >> 14 files changed, 62 insertions(+), 4 deletions(-) >> >> diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp >> index 72054e0..df735ef 100644 >> --- a/src/glsl/builtin_functions.cpp >> +++ b/src/glsl/builtin_functions.cpp >> @@ -262,6 +262,13 @@ texture_query_lod(const _mesa_glsl_parse_state *state) >> state->ARB_texture_query_lod_enable; >> } >> >> +static bool >> +texture_gather(const _mesa_glsl_parse_state *state) >> +{ >> + return state->is_version(400, 0) || >> + state->ARB_texture_gather_enable; >> +} >> + > > This should be glsl_parser_state::has_texture_gather, like in Ken's > f91475d... though it looks like some of the rest of this file could be > modified to use that pattern. Hrm...
Ian, These are accessed via function pointers (in ir_function_signature): /** * A function that returns whether a built-in function is available in the * current shading language (based on version, ES or desktop, and extensions). */ typedef bool (*builtin_available_predicate)(const _mesa_glsl_parse_state *); I don't believe that you can mix pointers to ordinary functions and pointers to class methods. We could move /all/ of these predicates to be members of _mesa_glsl_parse_state, and change the typedef, but...I don't think we get to mix both styles. I would prefer to leave Chris's patch as is, and resolve this as a follow-up series. --Ken _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev