mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 17:30:12 +01:00
radv: Add support for VK_KHR_dedicated_allocation.
Signed-off-by: Bas Nieuwenhuizen <basni@google.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Acked-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
97931f0297
commit
6ddc64b93e
2 changed files with 35 additions and 2 deletions
|
|
@ -141,6 +141,10 @@ static const VkExtensionProperties common_device_extensions[] = {
|
|||
.extensionName = VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME,
|
||||
.specVersion = 1,
|
||||
},
|
||||
{
|
||||
.extensionName = VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME,
|
||||
.specVersion = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static VkResult
|
||||
|
|
@ -2072,8 +2076,8 @@ VkResult radv_AllocateMemory(
|
|||
*pMem = VK_NULL_HANDLE;
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
const VkDedicatedAllocationMemoryAllocateInfoNV *dedicate_info =
|
||||
vk_find_struct_const(pAllocateInfo->pNext, DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV);
|
||||
const VkMemoryDedicatedAllocateInfoKHR *dedicate_info =
|
||||
vk_find_struct_const(pAllocateInfo->pNext, MEMORY_DEDICATED_ALLOCATE_INFO_KHR);
|
||||
|
||||
mem = vk_alloc2(&device->alloc, pAllocator, sizeof(*mem), 8,
|
||||
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||
|
|
@ -2217,6 +2221,20 @@ void radv_GetBufferMemoryRequirements2KHR(
|
|||
{
|
||||
radv_GetBufferMemoryRequirements(device, pInfo->buffer,
|
||||
&pMemoryRequirements->memoryRequirements);
|
||||
|
||||
vk_foreach_struct(ext, pMemoryRequirements->pNext) {
|
||||
switch (ext->sType) {
|
||||
case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR: {
|
||||
VkMemoryDedicatedRequirementsKHR *req =
|
||||
(VkMemoryDedicatedRequirementsKHR *) ext;
|
||||
req->requiresDedicatedAllocation = false;
|
||||
req->prefersDedicatedAllocation = req->requiresDedicatedAllocation;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void radv_GetImageMemoryRequirements(
|
||||
|
|
@ -2239,6 +2257,20 @@ void radv_GetImageMemoryRequirements2KHR(
|
|||
{
|
||||
radv_GetImageMemoryRequirements(device, pInfo->image,
|
||||
&pMemoryRequirements->memoryRequirements);
|
||||
|
||||
vk_foreach_struct(ext, pMemoryRequirements->pNext) {
|
||||
switch (ext->sType) {
|
||||
case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR: {
|
||||
VkMemoryDedicatedRequirementsKHR *req =
|
||||
(VkMemoryDedicatedRequirementsKHR *) ext;
|
||||
req->requiresDedicatedAllocation = false;
|
||||
req->prefersDedicatedAllocation = req->requiresDedicatedAllocation;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void radv_GetImageSparseMemoryRequirements(
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ supported_extensions = [
|
|||
'VK_KHR_xcb_surface',
|
||||
'VK_KHR_xlib_surface',
|
||||
'VK_KHR_get_memory_requirements2',
|
||||
'VK_KHR_dedicated_allocation',
|
||||
]
|
||||
|
||||
# We generate a static hash table for entry point lookup
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue