diff --git a/src/gallium/drivers/zink/zink_batch.c b/src/gallium/drivers/zink/zink_batch.c index a8e279b5fa0..c7299ab3f31 100644 --- a/src/gallium/drivers/zink/zink_batch.c +++ b/src/gallium/drivers/zink/zink_batch.c @@ -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) { diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index b8644cfce1b..7dfcc168374 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -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); diff --git a/src/gallium/drivers/zink/zink_resource.h b/src/gallium/drivers/zink/zink_resource.h index ce42d866c49..9dab3dbca2b 100644 --- a/src/gallium/drivers/zink/zink_resource.h +++ b/src/gallium/drivers/zink/zink_resource.h @@ -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) diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index e5610cdc214..fe25a9b471b 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -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;