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
This commit is contained in:
Kenneth Graunke 2018-11-07 23:23:30 -08:00
parent e5d84bbd36
commit 58507c02ce

View file

@ -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