diff --git a/src/gallium/drivers/iris/iris_blit.c b/src/gallium/drivers/iris/iris_blit.c index dfc3b2ed690..504817de210 100644 --- a/src/gallium/drivers/iris/iris_blit.c +++ b/src/gallium/drivers/iris/iris_blit.c @@ -356,7 +356,7 @@ iris_blit(struct pipe_context *ctx, const struct pipe_blit_info *info) struct iris_screen *screen = (struct iris_screen *)ctx->screen; const struct intel_device_info *devinfo = &screen->devinfo; struct iris_batch *batch = &ice->batches[IRIS_BATCH_RENDER]; - enum blorp_batch_flags blorp_flags = 0; + enum blorp_batch_flags blorp_flags = iris_blorp_flags_for_batch(batch); /* We don't support color masking. */ assert((info->mask & PIPE_MASK_RGBA) == PIPE_MASK_RGBA || @@ -644,7 +644,9 @@ iris_copy_region(struct blorp_context *blorp, if (dst->target == PIPE_BUFFER) util_range_add(&dst_res->base.b, &dst_res->valid_buffer_range, dstx, dstx + src_box->width); - blorp_batch_init(blorp, &blorp_batch, batch, 0); + enum blorp_batch_flags blorp_flags = iris_blorp_flags_for_batch(batch); + + blorp_batch_init(blorp, &blorp_batch, batch, blorp_flags); if (dst->target == PIPE_BUFFER && src->target == PIPE_BUFFER) { struct blorp_address src_addr = { diff --git a/src/gallium/drivers/iris/iris_clear.c b/src/gallium/drivers/iris/iris_clear.c index c7f2f32c370..71385bce447 100644 --- a/src/gallium/drivers/iris/iris_clear.c +++ b/src/gallium/drivers/iris/iris_clear.c @@ -315,7 +315,7 @@ clear_color(struct iris_context *ice, struct iris_batch *batch = &ice->batches[IRIS_BATCH_RENDER]; const struct intel_device_info *devinfo = &batch->screen->devinfo; - enum blorp_batch_flags blorp_flags = 0; + enum blorp_batch_flags blorp_flags = iris_blorp_flags_for_batch(batch); if (render_condition_enabled) { if (ice->state.predicate == IRIS_PREDICATE_STATE_DONT_RENDER) diff --git a/src/gallium/drivers/iris/iris_context.h b/src/gallium/drivers/iris/iris_context.h index bee9ce2201f..69504dc52f3 100644 --- a/src/gallium/drivers/iris/iris_context.h +++ b/src/gallium/drivers/iris/iris_context.h @@ -894,6 +894,17 @@ void iris_copy_region(struct blorp_context *blorp, unsigned src_level, const struct pipe_box *src_box); +static inline enum blorp_batch_flags +iris_blorp_flags_for_batch(struct iris_batch *batch) +{ + if (batch->name == IRIS_BATCH_COMPUTE) + return BLORP_BATCH_USE_COMPUTE; + + if (batch->name == IRIS_BATCH_BLITTER) + return BLORP_BATCH_USE_BLITTER; + + return 0; +} /* iris_draw.c */