[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