From 7cd85102404dfd3a7f510c32ca959ca2f3e1ec33 Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Sun, 20 Jul 2025 22:12:56 -0700 Subject: [PATCH] lavapipe: adopt common vk_device_memory Reviewed-by: Konstantin Seurer Part-of: --- src/gallium/frontends/lavapipe/lvp_device.c | 13 ++++--------- src/gallium/frontends/lavapipe/lvp_private.h | 6 ++++-- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/gallium/frontends/lavapipe/lvp_device.c b/src/gallium/frontends/lavapipe/lvp_device.c index 6fbda424851..43b6dbf24c6 100644 --- a/src/gallium/frontends/lavapipe/lvp_device.c +++ b/src/gallium/frontends/lavapipe/lvp_device.c @@ -2022,14 +2022,11 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_AllocateMemory( } #endif - mem = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*mem), 8, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); + mem = vk_device_memory_create(&device->vk, pAllocateInfo, pAllocator, + sizeof(*mem)); if (mem == NULL) return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &mem->base, - VK_OBJECT_TYPE_DEVICE_MEMORY); - mem->memory_type = LVP_DEVICE_MEMORY_TYPE_DEFAULT; mem->backed_fd = -1; mem->size = pAllocateInfo->allocationSize; @@ -2118,8 +2115,7 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_AllocateMemory( return VK_SUCCESS; fail: - vk_object_base_finish(&mem->base); - vk_free2(&device->vk.alloc, pAllocator, mem); + vk_device_memory_destroy(&device->vk, pAllocator, &mem->vk); return vk_error(device, error); } @@ -2158,9 +2154,8 @@ VKAPI_ATTR void VKAPI_CALL lvp_FreeMemory( default: break; } - vk_object_base_finish(&mem->base); - vk_free2(&device->vk.alloc, pAllocator, mem); + vk_device_memory_destroy(&device->vk, pAllocator, &mem->vk); } VKAPI_ATTR VkResult VKAPI_CALL lvp_MapMemory2KHR( diff --git a/src/gallium/frontends/lavapipe/lvp_private.h b/src/gallium/frontends/lavapipe/lvp_private.h index a4db4b0152c..5dc9c349dc5 100644 --- a/src/gallium/frontends/lavapipe/lvp_private.h +++ b/src/gallium/frontends/lavapipe/lvp_private.h @@ -70,6 +70,7 @@ typedef uint32_t xcb_window_t; #include "vk_buffer_view.h" #include "vk_device.h" #include "vk_device_generated_commands.h" +#include "vk_device_memory.h" #include "vk_instance.h" #include "vk_image.h" #include "vk_log.h" @@ -242,7 +243,8 @@ enum lvp_device_memory_type { }; struct lvp_device_memory { - struct vk_object_base base; + struct vk_device_memory vk; + struct pipe_memory_allocation *pmem; struct llvmpipe_memory_allocation mem_alloc; uint32_t type_index; @@ -687,7 +689,7 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_set, base, VkDescriptorSet, VK_OBJECT_TYPE_DESCRIPTOR_SET) VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_set_layout, vk.base, VkDescriptorSetLayout, VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT) -VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_device_memory, base, VkDeviceMemory, +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_device_memory, vk.base, VkDeviceMemory, VK_OBJECT_TYPE_DEVICE_MEMORY) VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_event, base, VkEvent, VK_OBJECT_TYPE_EVENT) VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_image, vk.base, VkImage, VK_OBJECT_TYPE_IMAGE)