[Mesa-dev] [PATCH 11/14] mesa: add bind_frag_data_location() helper

Timothy Arceri tarceri at itsqueeze.com
Wed Jun 28 09:24:04 UTC 2017


On 28/06/17 18:39, Samuel Pitoiset wrote:
> Like you told me in a similar patch, we should keep "if (!name) return;" 
> in the helper. :-)

Whoops. Yes I definitely meant to add that here. Thanks :)

> 
> I suggest to add a no_error bool to bind_frag_data_location and always 
> inline it.

ok

> 
> With that fixed, patch is:
> 
> Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> 
> On 06/28/2017 08:13 AM, Timothy Arceri wrote:
>> ---
>>   src/mesa/main/shader_query.cpp | 30 +++++++++++++++++++-----------
>>   1 file changed, 19 insertions(+), 11 deletions(-)
>>
>> diff --git a/src/mesa/main/shader_query.cpp 
>> b/src/mesa/main/shader_query.cpp
>> index 6efbc37..d571846 100644
>> --- a/src/mesa/main/shader_query.cpp
>> +++ b/src/mesa/main/shader_query.cpp
>> @@ -233,6 +233,24 @@ _mesa_longest_attribute_name_length(struct 
>> gl_shader_program *shProg)
>>      return longest;
>>   }
>> +void static
>> +bind_frag_data_location(struct gl_shader_program *const shProg,
>> +                        const char *name, unsigned colorNumber,
>> +                        unsigned index)
>> +{
>> +   /* Replace the current value if it's already in the list.  Add
>> +    * FRAG_RESULT_DATA0 because that's how the linker differentiates
>> +    * between built-in attributes and user-defined attributes.
>> +    */
>> +   shProg->FragDataBindings->put(colorNumber + FRAG_RESULT_DATA0, name);
>> +   shProg->FragDataIndexBindings->put(index, name);
>> +
>> +   /*
>> +    * Note that this binding won't go into effect until
>> +    * glLinkProgram is called again.
>> +    */
>> +}
>> +
>>   void GLAPIENTRY
>>   _mesa_BindFragDataLocation(GLuint program, GLuint colorNumber,
>>                  const GLchar *name)
>> @@ -274,17 +292,7 @@ _mesa_BindFragDataLocationIndexed(GLuint program, 
>> GLuint colorNumber,
>>         return;
>>      }
>> -   /* Replace the current value if it's already in the list.  Add
>> -    * FRAG_RESULT_DATA0 because that's how the linker differentiates
>> -    * between built-in attributes and user-defined attributes.
>> -    */
>> -   shProg->FragDataBindings->put(colorNumber + FRAG_RESULT_DATA0, name);
>> -   shProg->FragDataIndexBindings->put(index, name);
>> -   /*
>> -    * Note that this binding won't go into effect until
>> -    * glLinkProgram is called again.
>> -    */
>> -
>> +   bind_frag_data_location(shProg, name, colorNumber, index);
>>   }
>>   GLint GLAPIENTRY
>>


More information about the mesa-dev mailing list