[Mesa-dev] [PATCH] glsl: do not reset prog->TransformFeedback.BufferStride

Timothy Arceri tarceri at itsqueeze.com
Wed Jun 21 11:13:34 UTC 2017



On 21/06/17 20:24, Timothy Arceri wrote:
> On 21/06/17 18:13, Juan A. Suarez Romero wrote:
>> link_xfb_stride_layout_qualifiers() can be called multiple times, and
>> each time we call prog->TransformFeedback.BufferStride is reset to 0.
>>
>> Thus it is loosing the values set in previous call.
>>
>> Do not perform such reset.
>>
>> Fixes:
>> KHR-GL45.enhanced_layouts.xfb_stride_of_empty_list
>> KHR-GL45.enhanced_layouts.xfb_stride_of_empty_list_and_api
>>
>> Signed-off-by: Juan A. Suarez Romero <jasuarez at igalia.com>
>> ---
>>   src/compiler/glsl/linker.cpp | 4 ----
>>   1 file changed, 4 deletions(-)
>>
>> diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
>> index adfa3b7b1d..1fe0ccc496 100644
>> --- a/src/compiler/glsl/linker.cpp
>> +++ b/src/compiler/glsl/linker.cpp
>> @@ -1623,10 +1623,6 @@ link_xfb_stride_layout_qualifiers(struct 
>> gl_context *ctx,
>>                                     struct gl_shader **shader_list,
>>                                     unsigned num_shaders)
>>   {
>> -   for (unsigned i = 0; i < MAX_FEEDBACK_BUFFERS; i++) {
>> -      prog->TransformFeedback.BufferStride[i] = 0;
>> -   }
> 
> I think this probably needs to be moved rather than just deleted. I 
> think the idea is to reset things to 0 in case we are re-linking an 
> existing program with different shaders attached.

Actually you could also probably fix this by simply skipping calling 
link_xfb_stride_layout_qualifiers() if we are processing the fragment 
shader.


> 
>> -
>>      for (unsigned i = 0; i < num_shaders; i++) {
>>         struct gl_shader *shader = shader_list[i];
>>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list