diff options
| author | Chia-I Wu <olv@lunarg.com> | 2015-06-26 15:34:39 +0800 |
|---|---|---|
| committer | Chia-I Wu <olv@lunarg.com> | 2015-07-06 10:42:09 +0800 |
| commit | 57b23b4df68eb77e9a87057c396da571e9168a19 (patch) | |
| tree | cb0036edf9d4cd881d64d55c64d1c7d718ab343d /include | |
| parent | 77be7d98c5b4e0f390b5845a57ec020a4cdbe481 (diff) | |
| download | usermoji-57b23b4df68eb77e9a87057c396da571e9168a19.tar.xz | |
update vulkan.h for multi-level command buffers (V121)
With minimal changes to keep everything building and functioning.
Diffstat (limited to 'include')
| -rw-r--r-- | include/vkLayer.h | 1 | ||||
| -rw-r--r-- | include/vulkan.h | 43 |
2 files changed, 32 insertions, 12 deletions
diff --git a/include/vkLayer.h b/include/vkLayer.h index a1104db2..64673545 100644 --- a/include/vkLayer.h +++ b/include/vkLayer.h @@ -122,6 +122,7 @@ typedef struct VkLayerDispatchTable_ PFN_vkCreateRenderPass CreateRenderPass; PFN_vkCmdBeginRenderPass CmdBeginRenderPass; PFN_vkCmdEndRenderPass CmdEndRenderPass; + PFN_vkCmdExecuteCommands CmdExecuteCommands; PFN_vkCreateSwapChainWSI CreateSwapChainWSI; PFN_vkDestroySwapChainWSI DestroySwapChainWSI; PFN_vkGetSwapChainInfoWSI GetSwapChainInfoWSI; diff --git a/include/vulkan.h b/include/vulkan.h index 5444b1ff..f4644f5e 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, 120, 0) +#define VK_API_VERSION VK_MAKE_VERSION(0, 121, 0) #ifdef __cplusplus extern "C" @@ -277,6 +277,14 @@ typedef enum VkTimestampType_ VK_ENUM_RANGE(TIMESTAMP_TYPE, TOP, BOTTOM) } VkTimestampType; +typedef enum VkRenderPassContents_ +{ + VK_RENDER_PASS_CONTENTS_INLINE = 0x00000000, + VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS = 0x00000001, + + VK_ENUM_RANGE(RENDER_PASS_CONTENTS, INLINE, SECONDARY_CMD_BUFFERS) +} VkRenderPassContents; + typedef enum VkBorderColor_ { VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000, @@ -324,6 +332,14 @@ typedef enum VkPrimitiveTopology_ VK_ENUM_RANGE(PRIMITIVE_TOPOLOGY, POINT_LIST, PATCH) } VkPrimitiveTopology; +typedef enum VkCmdBufferLevel_ +{ + VK_CMD_BUFFER_LEVEL_PRIMARY = 0x00000000, + VK_CMD_BUFFER_LEVEL_SECONDARY = 0x00000001, + + VK_ENUM_RANGE(CMD_BUFFER_LEVEL, PRIMARY, SECONDARY) +} VkCmdBufferLevel; + typedef enum VkIndexType_ { VK_INDEX_TYPE_UINT16 = 0x00000000, @@ -760,7 +776,7 @@ typedef enum VkStructureType_ VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 32, VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 33, VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO = 34, - VK_STRUCTURE_TYPE_CMD_BUFFER_GRAPHICS_BEGIN_INFO = 35, + VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 36, VK_STRUCTURE_TYPE_MEMORY_BARRIER = 37, VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 38, @@ -1095,6 +1111,7 @@ typedef enum VkCmdBufferOptimizeFlagBits_ VK_CMD_BUFFER_OPTIMIZE_PIPELINE_SWITCH_BIT = VK_BIT(1), VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT = VK_BIT(2), VK_CMD_BUFFER_OPTIMIZE_DESCRIPTOR_SET_SWITCH_BIT = VK_BIT(3), + VK_CMD_BUFFER_OPTIMIZE_NO_SIMULTANEOUS_USE_BIT = 0x00000010, } VkCmdBufferOptimizeFlagBits; // Pipeline statistics flags @@ -1903,6 +1920,7 @@ typedef struct VkCmdBufferCreateInfo_ VkStructureType sType; // Must be VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO const void* pNext; // Pointer to next structure uint32_t queueNodeIndex; + VkCmdBufferLevel level; VkCmdBufferCreateFlags flags; // Command buffer creation flags } VkCmdBufferCreateInfo; @@ -1912,22 +1930,18 @@ typedef struct VkCmdBufferBeginInfo_ const void* pNext; // Pointer to next structure VkCmdBufferOptimizeFlags flags; // Command buffer optimization flags + + VkRenderPass renderPass; + VkFramebuffer framebuffer; } VkCmdBufferBeginInfo; typedef struct VkRenderPassBegin_ { VkRenderPass renderPass; VkFramebuffer framebuffer; + VkRenderPassContents contents; } VkRenderPassBegin; -typedef struct VkCmdBufferGraphicsBeginInfo_ -{ - VkStructureType sType; // Must be VK_STRUCTURE_TYPE_CMD_BUFFER_GRAPHICS_BEGIN_INFO - const void* pNext; // Pointer to next structure - - VkRenderPassBegin renderPassContinue; // Only needed when a render pass is split across two command buffers -} VkCmdBufferGraphicsBeginInfo; - // Union allowing specification of floating point or raw color data. Actual value selected is based on image being cleared. typedef union VkClearColorValue_ { @@ -2147,7 +2161,8 @@ typedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCmdBuffer cmdBuffer, V typedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer); typedef VkResult (VKAPI *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, VkRenderPass* pRenderPass); typedef void (VKAPI *PFN_vkCmdBeginRenderPass)(VkCmdBuffer cmdBuffer, const VkRenderPassBegin* pRenderPassBegin); -typedef void (VKAPI *PFN_vkCmdEndRenderPass)(VkCmdBuffer cmdBuffer, VkRenderPass renderPass); +typedef void (VKAPI *PFN_vkCmdEndRenderPass)(VkCmdBuffer cmdBuffer); +typedef void (VKAPI *PFN_vkCmdExecuteCommands)(VkCmdBuffer cmdBuffer, uint32_t cmdBuffersCount, const VkCmdBuffer* pCmdBuffers); #ifdef VK_PROTOTYPES @@ -2809,8 +2824,12 @@ void VKAPI vkCmdBeginRenderPass( const VkRenderPassBegin* pRenderPassBegin); void VKAPI vkCmdEndRenderPass( + VkCmdBuffer cmdBuffer); + +void VKAPI vkCmdExecuteCommands( VkCmdBuffer cmdBuffer, - VkRenderPass renderPass); + uint32_t cmdBuffersCount, + const VkCmdBuffer* pCmdBuffers); #endif // VK_PROTOTYPES |
