diff --git a/src/gallium/frontends/lavapipe/lvp_device.c b/src/gallium/frontends/lavapipe/lvp_device.c index c7d577471de..371f10202ba 100644 --- a/src/gallium/frontends/lavapipe/lvp_device.c +++ b/src/gallium/frontends/lavapipe/lvp_device.c @@ -2532,11 +2532,12 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_CreateSampler( memcpy(&state.border_color, &border_color, sizeof(border_color)); simple_mtx_lock(&device->queue.lock); - sampler->texture_handle = (void *)(uintptr_t)device->queue.ctx->create_texture_handle(device->queue.ctx, NULL, &state); + struct lp_texture_handle *texture_handle = (void *)(uintptr_t)device->queue.ctx->create_texture_handle(device->queue.ctx, NULL, &state); + sampler->desc.texture.sampler_index = texture_handle->sampler_index; + device->queue.ctx->delete_texture_handle(device->queue.ctx, (uint64_t)(uintptr_t)texture_handle); simple_mtx_unlock(&device->queue.lock); lp_jit_sampler_from_pipe(&sampler->desc.sampler, &state); - sampler->desc.texture.sampler_index = sampler->texture_handle->sampler_index; *pSampler = lvp_sampler_to_handle(sampler); @@ -2554,10 +2555,6 @@ VKAPI_ATTR void VKAPI_CALL lvp_DestroySampler( if (!_sampler) return; - simple_mtx_lock(&device->queue.lock); - device->queue.ctx->delete_texture_handle(device->queue.ctx, (uint64_t)(uintptr_t)sampler->texture_handle); - simple_mtx_unlock(&device->queue.lock); - vk_sampler_destroy(&device->vk, pAllocator, &sampler->vk); } diff --git a/src/gallium/frontends/lavapipe/lvp_private.h b/src/gallium/frontends/lavapipe/lvp_private.h index 3da2b5725ca..7ee1624c24b 100644 --- a/src/gallium/frontends/lavapipe/lvp_private.h +++ b/src/gallium/frontends/lavapipe/lvp_private.h @@ -312,8 +312,6 @@ struct lvp_image_view { struct lvp_sampler { struct vk_sampler vk; struct lp_descriptor desc; - - struct lp_texture_handle *texture_handle; }; struct lvp_descriptor_set_binding_layout {