diff --git a/src/gallium/drivers/zink/zink_bo.c b/src/gallium/drivers/zink/zink_bo.c index c9e35e8287e..04aa8cc3087 100644 --- a/src/gallium/drivers/zink/zink_bo.c +++ b/src/gallium/drivers/zink/zink_bo.c @@ -807,18 +807,16 @@ buffer_commit_single(struct zink_context *ctx, struct zink_resource *res, struct VkBindSparseInfo sparse = {0}; sparse.sType = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO; sparse.pNext = &timeline; - sparse.bufferBindCount = res->obj->storage_buffer ? 2 : 1; + sparse.bufferBindCount = 1; sparse.waitSemaphoreCount = !!wait; sparse.pWaitSemaphores = &wait; sparse.signalSemaphoreCount = 1; sparse.pSignalSemaphores = &sem; - VkSparseBufferMemoryBindInfo sparse_bind[2]; - sparse_bind[0].buffer = res->obj->buffer; - sparse_bind[1].buffer = res->obj->storage_buffer; - sparse_bind[0].bindCount = 1; - sparse_bind[1].bindCount = 1; - sparse.pBufferBinds = sparse_bind; + VkSparseBufferMemoryBindInfo sparse_bind; + sparse_bind.buffer = res->obj->buffer; + sparse_bind.bindCount = 1; + sparse.pBufferBinds = &sparse_bind; VkSparseMemoryBind mem_bind; mem_bind.resourceOffset = offset; @@ -826,8 +824,7 @@ buffer_commit_single(struct zink_context *ctx, struct zink_resource *res, struct mem_bind.memory = commit ? (bo->mem ? bo->mem : bo->u.slab.real->mem) : VK_NULL_HANDLE; mem_bind.memoryOffset = bo_offset * ZINK_SPARSE_BUFFER_PAGE_SIZE + (commit ? (bo->mem ? 0 : bo->offset) : 0); mem_bind.flags = 0; - sparse_bind[0].pBinds = &mem_bind; - sparse_bind[1].pBinds = &mem_bind; + sparse_bind.pBinds = &mem_bind; VkResult ret = VKSCR(QueueBindSparse)(screen->queue_sparse, 1, &sparse, VK_NULL_HANDLE); if (zink_screen_handle_vkresult(screen, ret)) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index dfc7ef20baa..51a2fddf78c 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -229,7 +229,6 @@ zink_destroy_resource_object(struct zink_screen *screen, struct zink_resource_ob util_dynarray_fini(&obj->copies[i]); if (obj->is_buffer) { VKSCR(DestroyBuffer)(screen->dev, obj->buffer, NULL); - VKSCR(DestroyBuffer)(screen->dev, obj->storage_buffer, NULL); } else if (obj->dt) { zink_kopper_displaytarget_destroy(screen, obj->dt); } else if (!obj->is_aux) { @@ -1205,15 +1204,6 @@ create_buffer(struct zink_screen *screen, struct zink_resource_object *obj, return roc_fail_and_free_object; } - if (!(templ->bind & (PIPE_BIND_SHADER_IMAGE | ZINK_BIND_DESCRIPTOR))) { - bci.usage |= VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT; - if (VKSCR(CreateBuffer)(screen->dev, &bci, NULL, &obj->storage_buffer) != VK_SUCCESS) { - mesa_loge("ZINK: vkCreateBuffer failed"); - VKSCR(DestroyBuffer)(screen->dev, obj->buffer, NULL); - return roc_fail_and_free_object; - } - } - assert(!modifiers_count); VKSCR(GetBufferMemoryRequirements)(screen->dev, obj->buffer, &reqs); @@ -1241,10 +1231,6 @@ create_buffer(struct zink_screen *screen, struct zink_resource_object *obj, mesa_loge("ZINK: vkBindBufferMemory failed"); return roc_fail_and_cleanup_all ; } - if (obj->storage_buffer && VKSCR(BindBufferMemory)(screen->dev, obj->storage_buffer, zink_bo_get_mem(obj->bo), obj->offset) != VK_SUCCESS) { - mesa_loge("ZINK: vkBindBufferMemory failed"); - return roc_fail_and_cleanup_all; - } } _mesa_set_init(&obj->surface_cache, NULL, NULL, equals_bufferview_key); return roc_success; @@ -1566,7 +1552,6 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t case roc_fail_and_cleanup_object: if (templ->target == PIPE_BUFFER) { VKSCR(DestroyBuffer)(screen->dev, obj->buffer, NULL); - VKSCR(DestroyBuffer)(screen->dev, obj->storage_buffer, NULL); } else VKSCR(DestroyImage)(screen->dev, obj->image, NULL); FALLTHROUGH; diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index 6adc5eb76a7..97b0b3aa1a5 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -1210,8 +1210,6 @@ struct zink_resource_object { struct u_rwlock copy_lock; struct util_dynarray copies[16]; //regions being copied to; for barrier omission - VkBuffer storage_buffer; - union { VkBuffer buffer; VkImage image;