aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Forbes <chrisf@ijw.co.nz>2015-07-11 19:11:39 +1200
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-07-17 10:05:20 -0600
commitc90f440043f62e47b9ae94c506cff9a6396bf7c4 (patch)
treebf6a3ace4ddc19a1d42208f258f00cbc3a20302b /include
parent2dff5df7c4be2cebbf896e0093e391de2f926d17 (diff)
downloadusermoji-c90f440043f62e47b9ae94c506cff9a6396bf7c4.tar.xz
vulkan.h: API changes for #13744 - sharing across queues
The ICD doesn't do anything differently interesting yet, but this is enough that the API works. V2: Fix testbinding. Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Diffstat (limited to 'include')
-rw-r--r--include/vulkan.h26
1 files changed, 24 insertions, 2 deletions
diff --git a/include/vulkan.h b/include/vulkan.h
index bd8de375..bcca89f9 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -33,7 +33,7 @@
#include "vk_platform.h"
// Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 132, 1)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 138, 1)
#ifdef __cplusplus
extern "C"
@@ -127,6 +127,8 @@ VK_DEFINE_NONDISP_HANDLE(VkCmdPool)
#define VK_NULL_HANDLE 0
+#define VK_QUEUE_FAMILY_IGNORED UINT32_MAX
+
// This macro defines INT_MAX in enumerations to force compilers to use 32 bits
// to represent them. This may or may not be necessary on some compilers. The
// option to compile it out may allow compilers that warn about missing enumerants
@@ -220,6 +222,14 @@ typedef enum VkImageAspect_
VK_ENUM_RANGE(IMAGE_ASPECT, COLOR, METADATA)
} VkImageAspect;
+typedef enum VkSharingMode_
+{
+ VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
+ VK_SHARING_MODE_CONCURRENT = 0x00000001,
+
+ VK_ENUM_RANGE(SHARING_MODE, EXCLUSIVE, CONCURRENT)
+} VkSharingMode;
+
typedef enum VkBufferViewType_
{
VK_BUFFER_VIEW_TYPE_RAW = 0x00000000, // Raw buffer without special structure (UBO, SSBO)
@@ -1447,7 +1457,7 @@ typedef struct VkAllocCallbacks_
typedef struct VkDeviceQueueCreateInfo_
{
- uint32_t queueNodeIndex;
+ uint32_t queueFamilyIndex;
uint32_t queueCount;
} VkDeviceQueueCreateInfo;
@@ -1613,6 +1623,9 @@ typedef struct VkBufferCreateInfo_
VkDeviceSize size; // Specified in bytes
VkBufferUsageFlags usage; // Buffer usage flags
VkBufferCreateFlags flags; // Buffer creation flags
+ VkSharingMode sharingMode;
+ uint32_t queueFamilyCount;
+ const uint32_t* pQueueFamilyIndices;
} VkBufferCreateInfo;
typedef struct VkBufferViewCreateInfo_
@@ -1652,6 +1665,9 @@ typedef struct VkBufferMemoryBarrier_
VkMemoryOutputFlags outputMask; // Outputs the barrier should sync
VkMemoryInputFlags inputMask; // Inputs the barrier should sync to
+ uint32_t srcQueueFamilyIndex;
+ uint32_t destQueueFamilyIndex;
+
VkBuffer buffer; // Buffer to sync
VkDeviceSize offset; // Offset within the buffer to sync
@@ -1666,6 +1682,9 @@ typedef struct VkImageMemoryBarrier_
VkMemoryOutputFlags outputMask; // Outputs the barrier should sync
VkMemoryInputFlags inputMask; // Inputs the barrier should sync to
+ uint32_t srcQueueFamilyIndex;
+ uint32_t destQueueFamilyIndex;
+
VkImageLayout oldLayout; // Current layout of the image
VkImageLayout newLayout; // New layout to transition the image to
@@ -1687,6 +1706,9 @@ typedef struct VkImageCreateInfo_
VkImageTiling tiling;
VkImageUsageFlags usage; // Image usage flags
VkImageCreateFlags flags; // Image creation flags
+ VkSharingMode sharingMode;
+ uint32_t queueFamilyCount;
+ const uint32_t* pQueueFamilyIndices;
} VkImageCreateInfo;
typedef struct VkSubresourceLayout_