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
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(

View File

@@ -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)