mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
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:
parent
ba925cf958
commit
ec2cce6d60
4 changed files with 16 additions and 22 deletions
|
|
@ -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, ®ion);
|
||||
} 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 *
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue