lavapipe: adopt common vk_device_memory

Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36252>
This commit is contained in:
Yiwei Zhang 2025-07-20 22:12:56 -07:00 committed by Marge Bot
parent 44e6f0abaa
commit 7cd8510240
2 changed files with 8 additions and 11 deletions

View file

@ -2022,14 +2022,11 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_AllocateMemory(
} }
#endif #endif
mem = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*mem), 8, mem = vk_device_memory_create(&device->vk, pAllocateInfo, pAllocator,
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); sizeof(*mem));
if (mem == NULL) if (mem == NULL)
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY); 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->memory_type = LVP_DEVICE_MEMORY_TYPE_DEFAULT;
mem->backed_fd = -1; mem->backed_fd = -1;
mem->size = pAllocateInfo->allocationSize; mem->size = pAllocateInfo->allocationSize;
@ -2118,8 +2115,7 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_AllocateMemory(
return VK_SUCCESS; return VK_SUCCESS;
fail: fail:
vk_object_base_finish(&mem->base); vk_device_memory_destroy(&device->vk, pAllocator, &mem->vk);
vk_free2(&device->vk.alloc, pAllocator, mem);
return vk_error(device, error); return vk_error(device, error);
} }
@ -2158,9 +2154,8 @@ VKAPI_ATTR void VKAPI_CALL lvp_FreeMemory(
default: default:
break; 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( VKAPI_ATTR VkResult VKAPI_CALL lvp_MapMemory2KHR(

View file

@ -70,6 +70,7 @@ typedef uint32_t xcb_window_t;
#include "vk_buffer_view.h" #include "vk_buffer_view.h"
#include "vk_device.h" #include "vk_device.h"
#include "vk_device_generated_commands.h" #include "vk_device_generated_commands.h"
#include "vk_device_memory.h"
#include "vk_instance.h" #include "vk_instance.h"
#include "vk_image.h" #include "vk_image.h"
#include "vk_log.h" #include "vk_log.h"
@ -242,7 +243,8 @@ enum lvp_device_memory_type {
}; };
struct lvp_device_memory { struct lvp_device_memory {
struct vk_object_base base; struct vk_device_memory vk;
struct pipe_memory_allocation *pmem; struct pipe_memory_allocation *pmem;
struct llvmpipe_memory_allocation mem_alloc; struct llvmpipe_memory_allocation mem_alloc;
uint32_t type_index; uint32_t type_index;
@ -687,7 +689,7 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_set, base, VkDescriptorSet,
VK_OBJECT_TYPE_DESCRIPTOR_SET) VK_OBJECT_TYPE_DESCRIPTOR_SET)
VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_set_layout, vk.base, VkDescriptorSetLayout, VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_set_layout, vk.base, VkDescriptorSetLayout,
VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT) 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_OBJECT_TYPE_DEVICE_MEMORY)
VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_event, base, VkEvent, VK_OBJECT_TYPE_EVENT) 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) VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_image, vk.base, VkImage, VK_OBJECT_TYPE_IMAGE)