diff options
author | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2023-05-03 13:16:25 -0400 |
---|---|---|
committer | Eric Engestrom <eric@engestrom.ch> | 2023-05-10 12:40:10 +0100 |
commit | 752c2f66432bd4efe7699cab718a6d379358b320 (patch) | |
tree | 86b46b6bbad24b83eac8b80996bd2a21629deb8d | |
parent | baba0ca1f672bf71cc69c1dc5ec696c5c5e5a4ef (diff) | |
download | mesa-752c2f66432bd4efe7699cab718a6d379358b320.tar.gz |
zink: block more flushes during unordered blits
Fixes: 89aa3635932 ("zink: block oom flushes during unordered blits")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22931>
(cherry picked from commit c6fd58802784c453ea40818bfe1af3bb6e28b8b1)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/gallium/drivers/zink/zink_context.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/.pick_status.json b/.pick_status.json index ab540ea7699..71f782275fb 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -130,7 +130,7 @@ "description": "zink: block more flushes during unordered blits", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "89aa36359328ea48fa29be8dd439dd87043eaa03" }, diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 04085fab7e6..e26cb658ec5 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -4411,7 +4411,7 @@ zink_copy_image_buffer(struct zink_context *ctx, struct zink_resource *dst, stru if (needs_present_readback) zink_kopper_present_readback(ctx, img); - if (ctx->oom_flush && !ctx->batch.in_rp) + if (ctx->oom_flush && !ctx->batch.in_rp && !ctx->unordered_blitting) flush_batch(ctx, false); } @@ -4541,7 +4541,7 @@ zink_resource_copy_region(struct pipe_context *pctx, zink_copy_buffer(ctx, dst, src, dstx, src_box->x, src_box->width); } else zink_copy_image_buffer(ctx, dst, src, dst_level, dstx, dsty, dstz, src_level, src_box, 0); - if (ctx->oom_flush && !ctx->batch.in_rp) + if (ctx->oom_flush && !ctx->batch.in_rp && !ctx->unordered_blitting) flush_batch(ctx, false); } |