diff options
Diffstat (limited to 'src/gallium/drivers/iris/iris_pipe_control.c')
-rw-r--r-- | src/gallium/drivers/iris/iris_pipe_control.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/gallium/drivers/iris/iris_pipe_control.c b/src/gallium/drivers/iris/iris_pipe_control.c index 3face134def..5e5a996e40b 100644 --- a/src/gallium/drivers/iris/iris_pipe_control.c +++ b/src/gallium/drivers/iris/iris_pipe_control.c @@ -150,19 +150,19 @@ iris_texture_barrier(struct pipe_context *ctx, unsigned flags) { struct iris_context *ice = (void *) ctx; - if (ice->render_batch.contains_draw) { - iris_emit_pipe_control_flush(&ice->render_batch, + if (ice->batches[IRIS_BATCH_RENDER].contains_draw) { + iris_emit_pipe_control_flush(&ice->batches[IRIS_BATCH_RENDER], PIPE_CONTROL_DEPTH_CACHE_FLUSH | PIPE_CONTROL_RENDER_TARGET_FLUSH | PIPE_CONTROL_CS_STALL); - iris_emit_pipe_control_flush(&ice->render_batch, + iris_emit_pipe_control_flush(&ice->batches[IRIS_BATCH_RENDER], PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE); } - if (ice->compute_batch.contains_draw) { - iris_emit_pipe_control_flush(&ice->compute_batch, + if (ice->batches[IRIS_BATCH_COMPUTE].contains_draw) { + iris_emit_pipe_control_flush(&ice->batches[IRIS_BATCH_COMPUTE], PIPE_CONTROL_CS_STALL); - iris_emit_pipe_control_flush(&ice->compute_batch, + iris_emit_pipe_control_flush(&ice->batches[IRIS_BATCH_COMPUTE], PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE); } } @@ -198,10 +198,10 @@ iris_memory_barrier(struct pipe_context *ctx, unsigned flags) // XXX: don't unconditionally emit flushes in both engines, we don't // even know if we're even using e.g. the compute engine... - if (ice->render_batch.contains_draw) - iris_emit_pipe_control_flush(&ice->render_batch, bits); - if (ice->compute_batch.contains_draw) - iris_emit_pipe_control_flush(&ice->compute_batch, bits); + for (int i = 0; i < IRIS_BATCH_COUNT; i++) { + if (ice->batches[i].contains_draw) + iris_emit_pipe_control_flush(&ice->batches[i], bits); + } } void |