From 8a66578813f15b03b78e4e944f911eac67b50a28 Mon Sep 17 00:00:00 2001 From: "HuYingzhuo(hugo/hyzboy)" Date: Thu, 18 Aug 2022 19:00:33 +0800 Subject: [PATCH] added compute_family value in VKDeviceAttribute --- inc/hgl/graph/VKDeviceAttribute.h | 1 + src/SceneGraph/Vulkan/VKDeviceAttribute.cpp | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/inc/hgl/graph/VKDeviceAttribute.h b/inc/hgl/graph/VKDeviceAttribute.h index 275fab31..788f12aa 100644 --- a/inc/hgl/graph/VKDeviceAttribute.h +++ b/inc/hgl/graph/VKDeviceAttribute.h @@ -23,6 +23,7 @@ struct GPUDeviceAttribute uint32_t graphics_family =ERROR_FAMILY_INDEX; uint32_t present_family =ERROR_FAMILY_INDEX; + uint32_t compute_family =ERROR_FAMILY_INDEX; VkQueue graphics_queue =VK_NULL_HANDLE; VkQueue present_queue =VK_NULL_HANDLE; diff --git a/src/SceneGraph/Vulkan/VKDeviceAttribute.cpp b/src/SceneGraph/Vulkan/VKDeviceAttribute.cpp index 45a27aeb..70f95eff 100644 --- a/src/SceneGraph/Vulkan/VKDeviceAttribute.cpp +++ b/src/SceneGraph/Vulkan/VKDeviceAttribute.cpp @@ -158,6 +158,12 @@ void GPUDeviceAttribute::GetQueueFamily() VkBool32 *sp = supports_present.GetData(); for (uint32_t i = 0; i < family_count; i++) { + if(fp->queueFlags & VK_QUEUE_COMPUTE_BIT) + { + if(compute_family==ERROR_FAMILY_INDEX) + compute_family=i; + } + if (fp->queueFlags & VK_QUEUE_GRAPHICS_BIT) { if (graphics_family == ERROR_FAMILY_INDEX)