[Mesa-dev] [PATCH 14/14] radeonsi/gfx9: update & clean up a DPBB heuristic

Dieter Nützel Dieter at nuetzel-hh.de
Mon Jun 11 01:25:28 UTC 2018


Nevermind, I've spooled master back before Sonny Jiang's series you've 
committed on Thursday, so

for this series:

Tested-by: Dieter Nützel <Dieter at nuetzel-hh.de>

with glmark2, UH, UV, Blender 2.79, FreeCAD, Krita 4.0.3 under KDE 
Plasma5
on my Polaris 20 / RX580.

Dieter

Am 11.06.2018 01:55, schrieb Dieter Nützel:
> Hello Marek,
> 
> 5-9 and 12,13 do not apply clean on master.
> repro for merge?
> 
> Dieter
> 
> Am 08.06.2018 05:25, schrieb Marek Olšák:
>> Ping
>> 
>> On Fri, Jun 1, 2018 at 1:21 AM, Marek Olšák <maraeo at gmail.com>
>> wrote:
>> 
>>> From: Marek Olšák <marek.olsak at amd.com>
>>> 
>>> ---
>>> src/gallium/drivers/radeonsi/si_state_binning.c | 14 +++++---------
>>> 1 file changed, 5 insertions(+), 9 deletions(-)
>>> 
>>> diff --git a/src/gallium/drivers/radeonsi/si_state_binning.c
>>> b/src/gallium/drivers/radeonsi/si_state_binning.c
>>> index 9948a95488c..6d07492ced7 100644
>>> --- a/src/gallium/drivers/radeonsi/si_state_binning.c
>>> +++ b/src/gallium/drivers/radeonsi/si_state_binning.c
>>> @@ -332,32 +332,28 @@ void si_emit_dpbb_state(struct si_context
>>> *sctx)
>>> if (!sscreen->dpbb_allowed || !blend || !dsa ||
>>> sctx->dpbb_force_off) {
>>> si_emit_dpbb_disable(sctx);
>>> return;
>>> }
>>> 
>>> bool ps_can_kill = G_02880C_KILL_ENABLE(db_shader_control)
>>> ||
>>> 
>>> G_02880C_MASK_EXPORT_ENABLE(db_shader_control) ||
>>> 
>>> G_02880C_COVERAGE_TO_MASK_ENABLE(db_shader_control) ||
>>> blend->alpha_to_coverage;
>>> 
>>> -       /* This is ported from Vulkan, but it doesn't make much
>>> sense to me.
>>> -        * Maybe it's for RE-Z? But Vulkan doesn't use RE-Z. TODO:
>>> Clarify this.
>>> -        */
>>> -       bool ps_can_reject_z_trivially =
>>> +       bool db_can_reject_z_trivially =
>>> !G_02880C_Z_EXPORT_ENABLE(db_shader_control) ||
>>> -               G_02880C_CONSERVATIVE_Z_EXPORT(db_shader_control);
>>> +               G_02880C_CONSERVATIVE_Z_EXPORT(db_shader_control) ||
>>> +               G_02880C_DEPTH_BEFORE_SHADER(db_shader_control);
>>> 
>>> -       /* Disable binning if PS can kill trivially with DB writes.
>>> -        * Ported from Vulkan. (heuristic?)
>>> -        */
>>> +       /* Disable DPBB when it's believed to be inefficient. */
>>> if (ps_can_kill &&
>>> -           ps_can_reject_z_trivially &&
>>> +           db_can_reject_z_trivially &&
>>> sctx->framebuffer.state.zsbuf &&
>>> dsa->db_can_write) {
>>> si_emit_dpbb_disable(sctx);
>>> return;
>>> }
>>> 
>>> /* Compute the bin size. */
>>> /* TODO: We could also look at enabled pixel shader outputs.
>>> */
>>> unsigned cb_target_enabled_4bit =
>>> sctx->framebuffer.colorbuf_enabled_4bit &
>>> 
>>> blend->cb_target_enabled_4bit;
>>> --
>>> 2.17.0
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> 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