Though arguably because it should be so rare, it shouldn't really matter
much if it is removed neither for these drivers which want that...

Roland


Am 31.07.2015 um 20:30 schrieb Marek Olšák:
> Indeed, it is rare. I thought this was hit more often, but apparently
> not. Nevermind.
> 
> Marek
> 
> On Fri, Jul 31, 2015 at 7:44 PM, Roland Scheidegger <[email protected]> 
> wrote:
>> Actually, since the code says it can only happen with a non-full stencil
>> mask, isn't clearing depth/stencil with a non-full stencil mask
>> incredibly rare?
>>
>> Roland
>>
>> Am 31.07.2015 um 18:51 schrieb Roland Scheidegger:
>>> I don't think that's quite true in general.
>>> For gpus which have combined ds buffers I can'see why you'd wanted to do
>>> separate clears for depth and stencil in this case (i.e. doing
>>> pipe->clear for depth, then draw a quad for clearing stencil).
>>> At least for "simple" hw like llvmpipe which don't have special depth
>>> clear, this clearly seems to be much worse (you have to go through the
>>> memory twice).
>>>
>>> I vaguely remember something like this being proposed some time ago with
>>> some discussion that not the same thing is optimal depending on the
>>> hw... I don't think though there's anything at the moment where you
>>> could figure out what is better.
>>>
>>> Roland
>>>
>>>
>>>
>>> Am 31.07.2015 um 17:15 schrieb Marek Olšák:
>>>> From: Marek Olšák <[email protected]>
>>>>
>>>> A lot of GPUs allocate separate depth and stencil buffers, so clearing them
>>>> together doesn't make much sense. If some GPUs don't allocate separate
>>>> depth & stencil, it's still beneficial to clear the HiZ / HiS information
>>>> for only one of the two.
>>>> ---
>>>>  src/mesa/state_tracker/st_cb_clear.c | 9 ---------
>>>>  1 file changed, 9 deletions(-)
>>>>
>>>> diff --git a/src/mesa/state_tracker/st_cb_clear.c 
>>>> b/src/mesa/state_tracker/st_cb_clear.c
>>>> index 137fac8..1e404a2 100644
>>>> --- a/src/mesa/state_tracker/st_cb_clear.c
>>>> +++ b/src/mesa/state_tracker/st_cb_clear.c
>>>> @@ -515,15 +515,6 @@ st_Clear(struct gl_context *ctx, GLbitfield mask)
>>>>        }
>>>>     }
>>>>
>>>> -   /* Always clear depth and stencil together.
>>>> -    * This can only happen when the stencil writemask is not a full mask.
>>>> -    */
>>>> -   if (quad_buffers & PIPE_CLEAR_DEPTHSTENCIL &&
>>>> -       clear_buffers & PIPE_CLEAR_DEPTHSTENCIL) {
>>>> -      quad_buffers |= clear_buffers & PIPE_CLEAR_DEPTHSTENCIL;
>>>> -      clear_buffers &= ~PIPE_CLEAR_DEPTHSTENCIL;
>>>> -   }
>>>> -
>>>>     /* Only use quad-based clearing for the renderbuffers which cannot
>>>>      * use pipe->clear. We want to always use pipe->clear for the other
>>>>      * renderbuffers, because it's likely to be faster.
>>>>
>>>
>>> _______________________________________________
>>> mesa-dev mailing list
>>> [email protected]
>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev&d=BQIFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=Vjtt0vs_iqoI31UfJxBl7yv9I2FeiaeAYgMTLKRBc_I&m=qYlUiAdaROHYyjpCbp7x8-tzMXUkloq-8rnMW32rdDU&s=VIPdq-vACi98MlXh8bojT2SKc6BOBI1Yy_yXVxCAAcA&e=
>>>  
>>>
>>

_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to