From 69b387fbdc42883fb2e9c27942f97e62ca06be4d Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 1 Aug 2012 20:42:53 +0000 Subject: [PATCH] r600g: Invalidate texture cache when creating vertex buffers for compute v2 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Compute shaders fetch data from vertex buffers via the texture cache, so we need to make sure the texture cache is flushed. v2: - Fix rebase mistake - Fix spelling in comment Reviewed-by: Marek Olšák --- src/gallium/drivers/r600/evergreen_compute.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c index 1056cf297a0..2c66306ebc3 100644 --- a/src/gallium/drivers/r600/evergreen_compute.c +++ b/src/gallium/drivers/r600/evergreen_compute.c @@ -96,7 +96,9 @@ 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 invalidate it. */ + rctx->flags |= R600_CONTEXT_TEX_FLUSH; state->enabled_mask |= 1 << vb_index; state->dirty_mask |= 1 << vb_index; r600_atom_dirty(rctx, &state->atom); -- 2.30.2