From: Mike Blumenkrantz Date: Thu, 11 May 2023 13:54:01 +0000 (-0400) Subject: zink: reorder some native blit code X-Git-Tag: upstream/23.3.3~8626 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cc13c96b336f62a8eb3baa9e35f056a02f6efd7c;p=platform%2Fupstream%2Fmesa.git zink: reorder some native blit code no functional changes, but this will make it more convenient to reject certain blits Part-of: --- diff --git a/src/gallium/drivers/zink/zink_blit.c b/src/gallium/drivers/zink/zink_blit.c index 019a6ed..69b2f02 100644 --- a/src/gallium/drivers/zink/zink_blit.c +++ b/src/gallium/drivers/zink/zink_blit.c @@ -173,25 +173,6 @@ blit_native(struct zink_context *ctx, const struct pipe_blit_info *info, bool *n return false; - apply_dst_clears(ctx, info, false); - zink_fb_clears_apply_region(ctx, info->src.resource, zink_rect_from_box(&info->src.box)); - - if (src->obj->dt) - *needs_present_readback = zink_kopper_acquire_readback(ctx, src); - - struct zink_batch *batch = &ctx->batch; - zink_resource_setup_transfer_layouts(ctx, src, dst); - VkCommandBuffer cmdbuf = *needs_present_readback ? - ctx->batch.state->cmdbuf : - zink_get_cmdbuf(ctx, src, dst); - zink_batch_reference_resource_rw(batch, src, false); - zink_batch_reference_resource_rw(batch, dst, true); - - bool marker = zink_cmd_debug_marker_begin(ctx, cmdbuf, "blit_native(%s->%s, %dx%d->%dx%d)", - util_format_short_name(info->src.format), - util_format_short_name(info->src.format), - info->src.box.width, info->src.box.height, - info->dst.box.width, info->dst.box.height); VkImageBlit region = {0}; region.srcSubresource.aspectMask = src->aspect; region.srcSubresource.mipLevel = info->src.level; @@ -268,6 +249,26 @@ blit_native(struct zink_context *ctx, const struct pipe_blit_info *info, bool *n } assert(region.dstOffsets[0].z != region.dstOffsets[1].z); + apply_dst_clears(ctx, info, false); + zink_fb_clears_apply_region(ctx, info->src.resource, zink_rect_from_box(&info->src.box)); + + if (src->obj->dt) + *needs_present_readback = zink_kopper_acquire_readback(ctx, src); + + struct zink_batch *batch = &ctx->batch; + zink_resource_setup_transfer_layouts(ctx, src, dst); + VkCommandBuffer cmdbuf = *needs_present_readback ? + ctx->batch.state->cmdbuf : + zink_get_cmdbuf(ctx, src, dst); + zink_batch_reference_resource_rw(batch, src, false); + zink_batch_reference_resource_rw(batch, dst, true); + + bool marker = zink_cmd_debug_marker_begin(ctx, cmdbuf, "blit_native(%s->%s, %dx%d->%dx%d)", + util_format_short_name(info->src.format), + util_format_short_name(info->src.format), + info->src.box.width, info->src.box.height, + info->dst.box.width, info->dst.box.height); + VKCTX(CmdBlitImage)(cmdbuf, src->obj->image, src->layout, dst->obj->image, dst->layout, 1, ®ion,