[Mesa-dev] [PATCH 1/3] mesa: add gl_driver_flags::NewScissor{Rect, Test}

Samuel Pitoiset samuel.pitoiset at gmail.com
Fri Jun 9 07:32:28 UTC 2017



On 06/09/2017 12:00 AM, Ian Romanick wrote:
> Is there any particular application that these series should help?  Was
> a performance improvement measured?

This series doesn't target any particular applications. It can help apps 
that update scissor boxes often because pipe_rasterizer is no longer 
updated in this situation.

The main idea behind this is actually to reduce the number of st/mesa 
changes and to not rely on the _NEW_xxx mesa flags in the state tracker.

> 
> On 06/06/2017 12:59 PM, Samuel Pitoiset wrote:
>> _NEW_SCISSOR mesa flag is set when a scissor test is enabled/disabled
>> or when a new rectangle is defined. However, it triggers too much
>> changes in the state tracker.
>>
>> Actually, ST_NEW_RASTERIZER should only be called when a scissor
>> test is enabled/disabled, while ST_NEW_SCISSOR should be called
>> in both situations.
>>
>> In other words, this will avoid to update the rasterizer every
>> time a new rectangle is defined using glScissor*().
>>
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>> ---
>>   src/mesa/main/mtypes.h | 6 ++++++
>>   1 file changed, 6 insertions(+)
>>
>> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
>> index 7ec012321f..5d327d0dc7 100644
>> --- a/src/mesa/main/mtypes.h
>> +++ b/src/mesa/main/mtypes.h
>> @@ -4402,6 +4402,12 @@ struct gl_driver_flags
>>       * gl_context::Scissor::WindowRects
>>       */
>>      uint64_t NewWindowRectangles;
>> +
>> +   /** gl_context::Scissor::EnableFlags */
>> +   uint64_t NewScissorTest;
>> +
>> +   /** gl_context::Scissor::ScissorArray */
>> +   uint64_t NewScissorRect;
>>   };
>>   
>>   struct gl_uniform_buffer_binding
>>
> 


More information about the mesa-dev mailing list