From c4ea4e026be777a91d34666a16204fc003ce6a14 Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Sun, 17 Jan 2021 13:37:50 +0100 Subject: [PATCH] radv: Add a trivial implementation of VK_KHR_deferred_host_operation Reviewed-by: Jason Ekstrand Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_device.c | 40 +++++++++++++++++++++++++++++++++++++++ src/amd/vulkan/radv_extensions.py | 1 + 2 files changed, 41 insertions(+) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 7c10d24..2344bb7 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -38,6 +38,7 @@ #include "radv_shader.h" #include "radv_cs.h" #include "util/disk_cache.h" +#include "vk_deferred_operation.h" #include "vk_util.h" #include #include @@ -8363,3 +8364,42 @@ void radv_GetPrivateDataEXT( vk_object_base_get_private_data(&device->vk, objectType, objectHandle, privateDataSlot, pData); } + +VkResult radv_CreateDeferredOperationKHR(VkDevice _device, + const VkAllocationCallbacks* pAllocator, + VkDeferredOperationKHR* pDeferredOperation) +{ + RADV_FROM_HANDLE(radv_device, device, _device); + return vk_create_deferred_operation(&device->vk, pAllocator, + pDeferredOperation); +} + +void radv_DestroyDeferredOperationKHR(VkDevice _device, + VkDeferredOperationKHR operation, + const VkAllocationCallbacks* pAllocator) +{ + RADV_FROM_HANDLE(radv_device, device, _device); + vk_destroy_deferred_operation(&device->vk, operation, pAllocator); +} + +uint32_t radv_GetDeferredOperationMaxConcurrencyKHR(VkDevice _device, + VkDeferredOperationKHR operation) +{ + RADV_FROM_HANDLE(radv_device, device, _device); + return vk_get_deferred_operation_max_concurrency(&device->vk, operation); +} + +VkResult radv_GetDeferredOperationResultKHR(VkDevice _device, + VkDeferredOperationKHR operation) +{ + RADV_FROM_HANDLE(radv_device, device, _device); + return vk_get_deferred_operation_result(&device->vk, operation); +} + +VkResult radv_DeferredOperationJoinKHR(VkDevice _device, + VkDeferredOperationKHR operation) +{ + RADV_FROM_HANDLE(radv_device, device, _device); + return vk_deferred_operation_join(&device->vk, operation); +} + diff --git a/src/amd/vulkan/radv_extensions.py b/src/amd/vulkan/radv_extensions.py index 8452935..30e88c2 100644 --- a/src/amd/vulkan/radv_extensions.py +++ b/src/amd/vulkan/radv_extensions.py @@ -62,6 +62,7 @@ EXTENSIONS = [ Extension('VK_KHR_copy_commands2', 1, True), Extension('VK_KHR_create_renderpass2', 1, True), Extension('VK_KHR_dedicated_allocation', 3, True), + Extension('VK_KHR_deferred_host_operations', 1, True), Extension('VK_KHR_depth_stencil_resolve', 1, True), Extension('VK_KHR_descriptor_update_template', 1, True), Extension('VK_KHR_device_group', 4, True), -- 2.7.4