On Mon, Sep 17, 2012 at 11:09 PM, Tom Stellard <t...@stellard.net> wrote:
> From: Tom Stellard <thomas.stell...@amd.com>
>
> Compute shaders fetch data from vertex buffers via the texture cache, so
> we need to make sure the texture cache is flushed.
> ---
>  src/gallium/drivers/r600/evergreen_compute.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/r600/evergreen_compute.c 
> b/src/gallium/drivers/r600/evergreen_compute.c
> index 2749b05..e5396d8 100644
> --- a/src/gallium/drivers/r600/evergreen_compute.c
> +++ b/src/gallium/drivers/r600/evergreen_compute.c
> @@ -96,7 +96,10 @@ static void evergreen_cs_set_vertex_buffer(
>         vb->buffer = buffer;
>         vb->user_buffer = NULL;
>
> -       rctx->flags |= rctx->has_vertex_cache ? R600_CONTEXT_VTX_FLUSH : 
> R600_CONTEXT_TEX_FLUSH;
> +       /* The vertex instructions in the compute shaders use the texture 
> cache,
> +        * so we need to invalid it. */
> +       rctx->flags |= rctx->has_vertex_cache | R600_CONTEXT_VTX_FLUSH
> +                                               | R600_CONTEXT_TEX_FLUSH;

Here you combine the has_vertex_cache bool variable with the context
flush flags. That doesn't look right. I think you wanted to do (if I
understand correctly):

ctx->flags |= R600_CONTEXT_TEX_FLUSH;

Other than that, this series is:

Reviewed-by: Marek Olšák <mar...@gmail.com>

Marek
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to