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

Marek Olšák maraeo at gmail.com
Fri Jun 8 03:25:57 UTC 2018


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180607/247bbbe5/attachment.html>


More information about the mesa-dev mailing list