[Mesa-dev] [PATCH 08/13] r600g: fix flushing on RV670, RS780, RS880 again

Alex Deucher alexdeucher at gmail.com
Mon Apr 21 08:24:59 PDT 2014


On Sun, Apr 20, 2014 at 9:59 PM, Marek Olšák <maraeo at gmail.com> wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> Cc: 10.0 10.1 mesa-stable at lists.freedesktop.org

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  src/gallium/drivers/r600/r600_hw_context.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/src/gallium/drivers/r600/r600_hw_context.c b/src/gallium/drivers/r600/r600_hw_context.c
> index 5ecc73d..0aa7f45 100644
> --- a/src/gallium/drivers/r600/r600_hw_context.c
> +++ b/src/gallium/drivers/r600/r600_hw_context.c
> @@ -210,6 +210,15 @@ void r600_flush_emit(struct r600_context *rctx)
>                                 S_0085F0_SMX_ACTION_ENA(1);
>         }
>
> +       /* Workaround for buggy flushing on some R6xx chipsets. */
> +       if (rctx->b.flags & R600_CONTEXT_FLUSH_AND_INV &&
> +           (rctx->b.family == CHIP_RV670 ||
> +            rctx->b.family == CHIP_RS780 ||
> +            rctx->b.family == CHIP_RS880)) {
> +               cp_coher_cntl |=  S_0085F0_CB1_DEST_BASE_ENA(1) |
> +                                 S_0085F0_DEST_BASE_0_ENA(1);
> +       }
> +
>         if (cp_coher_cntl) {
>                 cs->buf[cs->cdw++] = PKT3(PKT3_SURFACE_SYNC, 3, 0);
>                 cs->buf[cs->cdw++] = cp_coher_cntl;   /* CP_COHER_CNTL */
> --
> 1.8.3.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list