On Mon, Sep 17, 2012 at 11:09 PM, Tom Stellard <[email protected]> wrote: > From: Tom Stellard <[email protected]> > > 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 <[email protected]> Marek _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
