[Mesa-dev] [PATCH V4 02/13] glsl: add texture gather changes
Kenneth Graunke
kenneth at whitecape.org
Mon Sep 30 12:08:01 PDT 2013
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.ledore at gmail.com>
>>
>> V2 [Chris Forbes]:
>> - Add new pattern, fixup parameter reading.
>>
>> V3: Rebase onto new builtins machinery
>>
>> Reviewed-by: Kenneth Graunke <kenneth at 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
More information about the mesa-dev
mailing list