zink: remove batch params from resource copy functions

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12770>
This commit is contained in:
Mike Blumenkrantz 2021-08-31 14:54:07 -04:00 committed by Marge Bot
parent ba925cf958
commit ec2cce6d60
4 changed files with 16 additions and 22 deletions

View file

@ -2847,7 +2847,7 @@ zink_flush_resource(struct pipe_context *pctx,
}
void
zink_copy_buffer(struct zink_context *ctx, struct zink_batch *batch, struct zink_resource *dst, struct zink_resource *src,
zink_copy_buffer(struct zink_context *ctx, struct zink_resource *dst, struct zink_resource *src,
unsigned dst_offset, unsigned src_offset, unsigned size)
{
VkBufferCopy region;
@ -2855,11 +2855,8 @@ zink_copy_buffer(struct zink_context *ctx, struct zink_batch *batch, struct zink
region.dstOffset = dst_offset;
region.size = size;
if (!batch) {
batch = &ctx->batch;
zink_batch_no_rp(ctx);
}
assert(!batch->in_rp);
struct zink_batch *batch = &ctx->batch;
zink_batch_no_rp(ctx);
zink_batch_reference_resource_rw(batch, src, false);
zink_batch_reference_resource_rw(batch, dst, true);
util_range_add(&dst->base.b, &dst->valid_buffer_range, dst_offset, dst_offset + size);
@ -2869,17 +2866,14 @@ zink_copy_buffer(struct zink_context *ctx, struct zink_batch *batch, struct zink
}
void
zink_copy_image_buffer(struct zink_context *ctx, struct zink_batch *batch, struct zink_resource *dst, struct zink_resource *src,
zink_copy_image_buffer(struct zink_context *ctx, struct zink_resource *dst, struct zink_resource *src,
unsigned dst_level, unsigned dstx, unsigned dsty, unsigned dstz,
unsigned src_level, const struct pipe_box *src_box, enum pipe_map_flags map_flags)
{
struct zink_resource *img = dst->base.b.target == PIPE_BUFFER ? src : dst;
struct zink_resource *buf = dst->base.b.target == PIPE_BUFFER ? dst : src;
if (!batch) {
batch = &ctx->batch;
zink_batch_no_rp(ctx);
}
struct zink_batch *batch = &ctx->batch;
zink_batch_no_rp(ctx);
bool buf2img = buf == src;
@ -3063,9 +3057,9 @@ zink_resource_copy_region(struct pipe_context *pctx,
1, &region);
} else if (dst->base.b.target == PIPE_BUFFER &&
src->base.b.target == PIPE_BUFFER) {
zink_copy_buffer(ctx, NULL, dst, src, dstx, src_box->x, src_box->width);
zink_copy_buffer(ctx, dst, src, dstx, src_box->x, src_box->width);
} else
zink_copy_image_buffer(ctx, NULL, dst, src, dst_level, dstx, dsty, dstz, src_level, src_box, 0);
zink_copy_image_buffer(ctx, dst, src, dst_level, dstx, dsty, dstz, src_level, src_box, 0);
}
static struct pipe_stream_output_target *

View file

@ -500,11 +500,11 @@ void
zink_rebind_framebuffer(struct zink_context *ctx, struct zink_resource *res);
void
zink_copy_buffer(struct zink_context *ctx, struct zink_batch *batch, struct zink_resource *dst, struct zink_resource *src,
zink_copy_buffer(struct zink_context *ctx, struct zink_resource *dst, struct zink_resource *src,
unsigned dst_offset, unsigned src_offset, unsigned size);
void
zink_copy_image_buffer(struct zink_context *ctx, struct zink_batch *batch, struct zink_resource *dst, struct zink_resource *src,
zink_copy_image_buffer(struct zink_context *ctx, struct zink_resource *dst, struct zink_resource *src,
unsigned dst_level, unsigned dstx, unsigned dsty, unsigned dstz,
unsigned src_level, const struct pipe_box *src_box, enum pipe_map_flags map_flags);

View file

@ -194,7 +194,7 @@ qbo_sync_from_prev(struct zink_context *ctx, struct zink_query *query, unsigned
unsigned qbo_offset = last_start * get_num_results(query->type) * sizeof(uint64_t);
query->curr_query = id_offset;
query->curr_qbo->num_results = id_offset;
zink_copy_buffer(ctx, NULL, zink_resource(query->curr_qbo->buffer), zink_resource(prev->buffer), 0,
zink_copy_buffer(ctx, zink_resource(query->curr_qbo->buffer), zink_resource(prev->buffer), 0,
qbo_offset,
id_offset * result_size);
}
@ -1006,7 +1006,7 @@ zink_get_query_result_resource(struct pipe_context *pctx,
}
struct pipe_resource *staging = pipe_buffer_create(pctx->screen, 0, PIPE_USAGE_STAGING, result_size * 2);
copy_results_to_buffer(ctx, query, zink_resource(staging), 0, 1, size_flags | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT | flag);
zink_copy_buffer(ctx, &ctx->batch, res, zink_resource(staging), offset, result_size, result_size);
zink_copy_buffer(ctx, res, zink_resource(staging), offset, result_size, result_size);
pipe_resource_reference(&staging, NULL);
return;
}
@ -1019,7 +1019,7 @@ zink_get_query_result_resource(struct pipe_context *pctx,
if (query->needs_update)
update_qbo(ctx, query);
/* internal qbo always writes 64bit value so we can just direct copy */
zink_copy_buffer(ctx, NULL, res, zink_resource(query->curr_qbo->buffer), offset,
zink_copy_buffer(ctx, res, zink_resource(query->curr_qbo->buffer), offset,
get_buffer_offset(query, query->curr_qbo->buffer, query->last_start),
result_size);
} else

View file

@ -999,7 +999,7 @@ zink_transfer_copy_bufimage(struct zink_context *ctx,
box.x = trans->offset;
if (dst->obj->transfer_dst)
zink_copy_image_buffer(ctx, NULL, dst, src, trans->base.b.level, buf2img ? x : 0,
zink_copy_image_buffer(ctx, dst, src, trans->base.b.level, buf2img ? x : 0,
box.y, box.z, trans->base.b.level, &box, trans->base.b.usage);
else
util_blitter_copy_texture(ctx->blitter, &dst->base.b, trans->base.b.level,
@ -1192,7 +1192,7 @@ zink_buffer_map(struct pipe_context *pctx,
if (!trans->staging_res)
goto fail;
struct zink_resource *staging_res = zink_resource(trans->staging_res);
zink_copy_buffer(ctx, NULL, staging_res, res, trans->offset, box->x, box->width);
zink_copy_buffer(ctx, staging_res, res, trans->offset, box->x, box->width);
res = staging_res;
usage &= ~PIPE_MAP_UNSYNCHRONIZED;
ptr = map_resource(screen, res);
@ -1403,7 +1403,7 @@ zink_transfer_flush_region(struct pipe_context *pctx,
struct zink_resource *staging_res = zink_resource(trans->staging_res);
if (ptrans->resource->target == PIPE_BUFFER)
zink_copy_buffer(ctx, NULL, res, staging_res, box->x, offset, box->width);
zink_copy_buffer(ctx, res, staging_res, box->x, offset, box->width);
else
zink_transfer_copy_bufimage(ctx, res, staging_res, trans);
}