summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-08-14 23:37:53 -0700
committerKenneth Graunke <[email protected]>2019-02-21 10:26:08 -0800
commit84b30a29001e2fe02d816882083338f55db298d6 (patch)
tree235af6cefc446bbe9796b8d171477ffcccb0420b /src/gallium
parent0e059e48299569ee128990969b1f66636a8dcfb2 (diff)
iris: call maybe_flush for each blorp operation
otherwise with high layer counts we may exceed two batches worth of commands... (!)
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/iris/iris_blit.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/iris/iris_blit.c b/src/gallium/drivers/iris/iris_blit.c
index 5e9a2bcb497..6064ca17ecf 100644
--- a/src/gallium/drivers/iris/iris_blit.c
+++ b/src/gallium/drivers/iris/iris_blit.c
@@ -149,12 +149,12 @@ iris_blit(struct pipe_context *ctx, const struct pipe_blit_info *info)
struct iris_batch *batch = &ice->render_batch;
- iris_batch_maybe_flush(batch, 1500);
-
struct blorp_batch blorp_batch;
blorp_batch_init(&ice->blorp, &blorp_batch, batch, 0);
for (int slice = 0; slice < info->dst.box.depth; slice++) {
+ iris_batch_maybe_flush(batch, 1500);
+
blorp_blit(&blorp_batch,
&src_surf, info->src.level, info->src.box.z + slice,
src_isl_format, src_isl_swizzle,
@@ -176,6 +176,8 @@ iris_blit(struct pipe_context *ctx, const struct pipe_blit_info *info)
ISL_AUX_USAGE_NONE, true);
for (int slice = 0; slice < info->dst.box.depth; slice++) {
+ iris_batch_maybe_flush(batch, 1500);
+
blorp_blit(&blorp_batch,
&src_surf, info->src.level, info->src.box.z + slice,
ISL_FORMAT_R8_UINT, src_isl_swizzle,