From 58507c02ce2e36dd6f953a23c3c87a7864a67f54 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 7 Nov 2018 23:23:30 -0800 Subject: [PATCH] iris: Fix TextureBarrier I don't know how I came up with the old one, this is now what i965 does Also we now do compute batches too --- src/gallium/drivers/iris/iris_pipe_control.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/iris/iris_pipe_control.c b/src/gallium/drivers/iris/iris_pipe_control.c index 5b9935398d3..3face134def 100644 --- a/src/gallium/drivers/iris/iris_pipe_control.c +++ b/src/gallium/drivers/iris/iris_pipe_control.c @@ -150,9 +150,21 @@ iris_texture_barrier(struct pipe_context *ctx, unsigned flags) { struct iris_context *ice = (void *) ctx; - // XXX: compute batch? + if (ice->render_batch.contains_draw) { + iris_emit_pipe_control_flush(&ice->render_batch, + PIPE_CONTROL_DEPTH_CACHE_FLUSH | + PIPE_CONTROL_RENDER_TARGET_FLUSH | + PIPE_CONTROL_CS_STALL); + iris_emit_pipe_control_flush(&ice->render_batch, + PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE); + } - iris_flush_depth_and_render_caches(&ice->render_batch); + if (ice->compute_batch.contains_draw) { + iris_emit_pipe_control_flush(&ice->compute_batch, + PIPE_CONTROL_CS_STALL); + iris_emit_pipe_control_flush(&ice->compute_batch, + PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE); + } } static void -- 2.30.2