From: Kenneth Graunke Date: Thu, 8 Nov 2018 07:23:30 +0000 (-0800) Subject: iris: Fix TextureBarrier X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=58507c02ce2e36dd6f953a23c3c87a7864a67f54;p=mesa.git 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 --- 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