[Mesa-dev] [PATCH] radeonsi: flush TC at the end of CS

Marek Olšák maraeo at gmail.com
Tue Aug 27 16:01:20 PDT 2013


Please disregard this patch. I didn't mean to send this one.

Marek

On Wed, Aug 28, 2013 at 1:00 AM, Marek Olšák <maraeo at gmail.com> wrote:
> TC can be used for writing and therefore should be flushed.
> ---
>  src/gallium/drivers/radeonsi/r600_hw_context.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/radeonsi/r600_hw_context.c b/src/gallium/drivers/radeonsi/r600_hw_context.c
> index 5631bdb..1fe6814 100644
> --- a/src/gallium/drivers/radeonsi/r600_hw_context.c
> +++ b/src/gallium/drivers/radeonsi/r600_hw_context.c
> @@ -167,7 +167,7 @@ void si_need_cs_space(struct r600_context *ctx, unsigned num_dw,
>         }
>  }
>
> -static void r600_flush_framebuffer(struct r600_context *ctx)
> +static void r600_flush_caches(struct r600_context *ctx)
>  {
>         struct si_pm4_state *pm4;
>
> @@ -188,7 +188,9 @@ static void r600_flush_framebuffer(struct r600_context *ctx)
>                                 S_0085F0_CB6_DEST_BASE_ENA(1) |
>                                 S_0085F0_CB7_DEST_BASE_ENA(1) |
>                                 S_0085F0_DB_ACTION_ENA(1) |
> -                               S_0085F0_DB_DEST_BASE_ENA(1));
> +                               S_0085F0_DB_DEST_BASE_ENA(1) |
> +                               S_0085F0_TC_ACTION_ENA(1) |
> +                               S_0085F0_TCL1_ACTION_ENA(1));
>         si_cmd_flush_and_inv_cb_meta(pm4);
>
>         si_pm4_emit(ctx, pm4);
> @@ -223,7 +225,7 @@ void si_context_flush(struct r600_context *ctx, unsigned flags)
>         }
>  #endif
>
> -       r600_flush_framebuffer(ctx);
> +       r600_flush_caches(ctx);
>
>         /* partial flush is needed to avoid lockups on some chips with user fences */
>         cs->buf[cs->cdw++] = PKT3(PKT3_EVENT_WRITE, 0, 0);
> --
> 1.8.1.2
>


More information about the mesa-dev mailing list