zink: delete persistent map tracking

this was never needed and never did anything: zink only uses COHERENT
memory, which is always available on queue submission, so it was all
just pointless code

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22907>
This commit is contained in:
Mike Blumenkrantz 2023-05-08 15:23:10 -04:00 committed by Marge Bot
parent ebe3b91ca0
commit 8e75378a2d
4 changed files with 1 additions and 27 deletions

View file

@ -129,7 +129,6 @@ zink_reset_batch_state(struct zink_context *ctx, struct zink_batch_state *bs)
VKSCR(DestroySampler)(screen->dev, *samp, NULL);
}
util_dynarray_clear(&bs->zombie_samplers);
util_dynarray_clear(&bs->persistent_resources);
zink_batch_descriptor_reset(screen, bs);
@ -335,7 +334,6 @@ create_batch_state(struct zink_context *ctx)
util_dynarray_init(&bs->wait_semaphore_stages, NULL);
util_dynarray_init(&bs->zombie_samplers, NULL);
util_dynarray_init(&bs->dead_framebuffers, NULL);
util_dynarray_init(&bs->persistent_resources, NULL);
util_dynarray_init(&bs->unref_resources, NULL);
util_dynarray_init(&bs->acquires, NULL);
util_dynarray_init(&bs->acquire_flags, NULL);
@ -601,16 +599,6 @@ submit_queue(void *data, void *gdata, int thread_index)
}
}
while (util_dynarray_contains(&bs->persistent_resources, struct zink_resource_object*)) {
struct zink_resource_object *obj = util_dynarray_pop(&bs->persistent_resources, struct zink_resource_object*);
VkMappedMemoryRange range = zink_resource_init_mem_range(screen, obj, 0, obj->size);
result = VKSCR(FlushMappedMemoryRanges)(screen->dev, 1, &range);
if (result != VK_SUCCESS) {
mesa_loge("ZINK: vkFlushMappedMemoryRanges failed (%s)", vk_Result_to_str(result));
}
}
simple_mtx_lock(&screen->queue_lock);
result = VKSCR(QueueSubmit)(screen->queue, num_si, num_si == 2 ? si : &si[1], VK_NULL_HANDLE);
if (result != VK_SUCCESS) {

View file

@ -2025,8 +2025,6 @@ overwrite:
trans->base.b.usage = usage;
if (usage & PIPE_MAP_WRITE)
util_range_add(&res->base.b, &res->valid_buffer_range, box->x, box->x + box->width);
if ((usage & PIPE_MAP_PERSISTENT) && !(usage & PIPE_MAP_COHERENT))
res->obj->persistent_maps++;
success:
/* ensure the copy context gets unlocked */
@ -2157,8 +2155,6 @@ zink_image_map(struct pipe_context *pctx,
if (sizeof(void*) == 4)
trans->base.b.usage |= ZINK_MAP_TEMPORARY;
if ((usage & PIPE_MAP_PERSISTENT) && !(usage & PIPE_MAP_COHERENT))
res->obj->persistent_maps++;
*transfer = &trans->base.b;
return ptr;
@ -2437,7 +2433,6 @@ static void
transfer_unmap(struct pipe_context *pctx, struct pipe_transfer *ptrans)
{
struct zink_context *ctx = zink_context(pctx);
struct zink_resource *res = zink_resource(ptrans->resource);
struct zink_transfer *trans = (struct zink_transfer *)ptrans;
if (!(trans->base.b.usage & (PIPE_MAP_FLUSH_EXPLICIT | PIPE_MAP_COHERENT))) {
@ -2447,9 +2442,6 @@ transfer_unmap(struct pipe_context *pctx, struct pipe_transfer *ptrans)
zink_transfer_flush_region(pctx, ptrans, &box);
}
if ((trans->base.b.usage & PIPE_MAP_PERSISTENT) && !(trans->base.b.usage & PIPE_MAP_COHERENT))
res->obj->persistent_maps--;
if (trans->staging_res)
pipe_resource_reference(&trans->staging_res, NULL);
pipe_resource_reference(&trans->base.b.resource, NULL);

View file

@ -174,11 +174,7 @@ zink_resource_object_usage_unset(struct zink_resource_object *obj, struct zink_b
static inline void
zink_batch_resource_usage_set(struct zink_batch *batch, struct zink_resource *res, bool write, bool is_buffer)
{
if (is_buffer) {
/* multiple array entries are fine */
if (!res->obj->coherent && res->obj->persistent_maps)
util_dynarray_append(&batch->state->persistent_resources, struct zink_resource_object*, res->obj);
} else {
if (!is_buffer) {
if (res->obj->dt) {
VkSemaphore acquire = zink_kopper_acquire_submit(zink_screen(batch->state->ctx->base.screen), res);
if (acquire)

View file

@ -593,7 +593,6 @@ struct zink_batch_state {
struct util_dynarray unref_resources;
struct util_dynarray bindless_releases[2];
struct util_dynarray persistent_resources;
struct util_dynarray zombie_samplers;
struct util_dynarray dead_framebuffers;
@ -1180,7 +1179,6 @@ struct zink_resource_object {
bool copies_valid;
bool copies_need_reset; //for use with batch state resets
unsigned persistent_maps; //if nonzero, requires vkFlushMappedMemoryRanges during batch use
struct util_dynarray copies[16]; //regions being copied to; for barrier omission
VkBuffer storage_buffer;