On 30 July 2013 11:13, Kenneth Graunke <kenn...@whitecape.org> wrote:

> On 07/28/2013 11:03 PM, Paul Berry wrote:
>
>> From: Bryan Cain <bryanca...@gmail.com>
>>
>> v2 (Paul Berry <stereotype...@gmail.com>): Account for rework of
>> builtin_variables.cpp.  Use INTERP_QUALIFIER_FLAT for gl_PrimitiveID
>> so that it will obey provoking vertex conventions.  Convert to GLSL
>> 1.50 style geometry shaders.
>> ---
>>   src/glsl/builtin_variables.cpp               | 11 +++++++++--
>>   src/glsl/builtins/ir/**EmitVertex.ir           |  5 +++++
>>   src/glsl/builtins/ir/**EndPrimitive.ir         |  5 +++++
>>   src/glsl/builtins/profiles/**150.geom          |  3 +++
>>   src/glsl/builtins/tools/**generate_builtins.py |  6 ++++--
>>   5 files changed, 26 insertions(+), 4 deletions(-)
>>   create mode 100644 src/glsl/builtins/ir/**EmitVertex.ir
>>   create mode 100644 src/glsl/builtins/ir/**EndPrimitive.ir
>>   create mode 100644 src/glsl/builtins/profiles/**150.geom
>>
>> diff --git a/src/glsl/builtin_variables.**cpp
>> b/src/glsl/builtin_variables.**cpp
>> index 1e88b6a..9d927a4 100644
>> --- a/src/glsl/builtin_variables.**cpp
>> +++ b/src/glsl/builtin_variables.**cpp
>> @@ -686,8 +686,10 @@ builtin_variable_generator::**
>> generate_gs_special_vars()
>>       * the specific case of gl_PrimitiveIDIn.  So we don't need to treat
>>       * gl_PrimitiveIDIn as an {ARB,EXT}_geometry_shader4-**only
>> variable.
>>       */
>> -   add_input(VARYING_SLOT_**PRIMITIVE_ID, int_t, "gl_PrimitiveIDIn");
>> -   add_output(VARYING_SLOT_**PRIMITIVE_ID, int_t, "gl_PrimitiveID");
>> +   add_input(VARYING_SLOT_**PRIMITIVE_ID, int_t, "gl_PrimitiveIDIn")
>> +      ->interpolation = INTERP_QUALIFIER_FLAT;
>> +   add_output(VARYING_SLOT_**PRIMITIVE_ID, int_t, "gl_PrimitiveID")
>> +      ->interpolation = INTERP_QUALIFIER_FLAT;
>>   }
>>
>
> This took a moment to understand :)
>
> Could we instead use a temporary?  Something like:
>
>    ir_variable *var;
>    var = add_input(VARYING_SLOT_**PRIMITIVE_ID, int_t,
> "gl_PrimitiveIDIn");
>    var->interpolation = INTERP_QUALIFIER_FLAT;
>    var = add_input(VARYING_SLOT_**PRIMITIVE_ID, int_t, "gl_PrimitiveID");
>    var->interpolation = INTERP_QUALIFIER_FLAT;
>
> etc.


Sure, no problem.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to