From ca7243b54e89dc89b15b619ddd1c84f1c5eeef34 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Tue, 14 Jul 2015 17:20:50 -0700 Subject: [PATCH] vk/vulkan.h: Add the stuff for cross-queue resource sharing We only have one queue, so this is currently a no-op on our implementation. --- include/vulkan/vulkan.h | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h index d5d699d559b..12c6b8db016 100644 --- a/include/vulkan/vulkan.h +++ b/include/vulkan/vulkan.h @@ -496,6 +496,15 @@ typedef enum { VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF } VkQueryType; +typedef enum { + VK_SHARING_MODE_EXCLUSIVE = 0, + VK_SHARING_MODE_CONCURRENT = 1, + VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE, + VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT, + VK_SHARING_MODE_NUM = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1), + VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF +} VkSharingMode; + typedef enum { VK_BUFFER_VIEW_TYPE_RAW = 0, VK_BUFFER_VIEW_TYPE_FORMATTED = 1, @@ -1329,7 +1338,7 @@ typedef struct { typedef void (VKAPI *PFN_vkVoidFunction)(void); typedef struct { - uint32_t queueNodeIndex; + uint32_t queueFamilyIndex; uint32_t queueCount; } VkDeviceQueueCreateInfo; @@ -1459,6 +1468,9 @@ typedef struct { VkDeviceSize size; VkBufferUsageFlags usage; VkBufferCreateFlags flags; + VkSharingMode sharingMode; + uint32_t queueFamilyCount; + const uint32_t* pQueueFamilyIndices; } VkBufferCreateInfo; typedef struct { @@ -1483,6 +1495,9 @@ typedef struct { VkImageTiling tiling; VkImageUsageFlags usage; VkImageCreateFlags flags; + VkSharingMode sharingMode; + uint32_t queueFamilyCount; + const uint32_t* pQueueFamilyIndices; } VkImageCreateInfo; typedef struct { @@ -1927,7 +1942,7 @@ typedef struct { typedef struct { VkStructureType sType; const void* pNext; - uint32_t queueNodeIndex; + uint32_t queueFamilyIndex; VkCmdBufferLevel level; VkCmdBufferCreateFlags flags; } VkCmdBufferCreateInfo; @@ -2016,6 +2031,8 @@ typedef struct { const void* pNext; VkMemoryOutputFlags outputMask; VkMemoryInputFlags inputMask; + uint32_t srcQueueFamilyIndex; + uint32_t destQueueFamilyIndex; VkBuffer buffer; VkDeviceSize offset; VkDeviceSize size; @@ -2049,6 +2066,8 @@ typedef struct { VkMemoryInputFlags inputMask; VkImageLayout oldLayout; VkImageLayout newLayout; + uint32_t srcQueueFamilyIndex; + uint32_t destQueueFamilyIndex; VkImage image; VkImageSubresourceRange subresourceRange; } VkImageMemoryBarrier; @@ -2080,7 +2099,7 @@ typedef VkResult (VKAPI *PFN_vkGetGlobalExtensionProperties)(const char* pLayerN typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties); typedef VkResult (VKAPI *PFN_vkGetGlobalLayerProperties)(uint32_t* pCount, VkLayerProperties* pProperties); typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkLayerProperties* pProperties); -typedef VkResult (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueNodeIndex, uint32_t queueIndex, VkQueue* pQueue); +typedef VkResult (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue); typedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t cmdBufferCount, const VkCmdBuffer* pCmdBuffers, VkFence fence); typedef VkResult (VKAPI *PFN_vkQueueWaitIdle)(VkQueue queue); typedef VkResult (VKAPI *PFN_vkDeviceWaitIdle)(VkDevice device); @@ -2300,7 +2319,7 @@ VkResult VKAPI vkGetPhysicalDeviceLayerProperties( VkResult VKAPI vkGetDeviceQueue( VkDevice device, - uint32_t queueNodeIndex, + uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue); -- 2.30.2