From: Dave Airlie <[email protected]> Buffers should report dedicated flags as well, so report the same information for them as for images.
(alternately we can turn dedicated off for buffers maybe?) Fixes CTS dEQP-VK.api.external.memory.opaque_fd.dedicated.buffer.info Fixes: b70829708a (radv: Implement VK_KHR_external_memory) Signed-off-by: Dave Airlie <[email protected]> --- src/amd/vulkan/radv_device.c | 5 ++++- src/amd/vulkan/radv_private.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 40b2f34..4b11a4f 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -2389,12 +2389,13 @@ void radv_GetBufferMemoryRequirements2KHR( radv_GetBufferMemoryRequirements(device, pInfo->buffer, &pMemoryRequirements->memoryRequirements); + RADV_FROM_HANDLE(radv_buffer, buffer, pInfo->buffer); 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->requiresDedicatedAllocation = buffer->shareable; req->prefersDedicatedAllocation = req->requiresDedicatedAllocation; break; } @@ -2878,6 +2879,8 @@ VkResult radv_CreateBuffer( buffer->offset = 0; buffer->flags = pCreateInfo->flags; + buffer->shareable = vk_find_struct_const(pCreateInfo->pNext, + EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR) != NULL; if (pCreateInfo->flags & VK_BUFFER_CREATE_SPARSE_BINDING_BIT) { buffer->bo = device->ws->buffer_create(device->ws, align64(buffer->size, 4096), diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index 8cd5ec0..ffb2490 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -637,6 +637,7 @@ struct radv_buffer { VkBufferUsageFlags usage; VkBufferCreateFlags flags; + bool shareable; /* Set when bound */ struct radeon_winsys_bo * bo; VkDeviceSize offset; -- 2.9.4 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
