diff options
| author | Cody Northrop <cody@lunarg.com> | 2015-07-09 18:08:05 -0600 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-07-17 10:05:20 -0600 |
| commit | e91de3b255afc4a84b5bd7a6815278646beee60d (patch) | |
| tree | 1e64e33616e2a78f4e35aaa22828220e41e8e58a /include | |
| parent | 860c33b07f995910cf266993a126f67ec641aab1 (diff) | |
| download | usermoji-e91de3b255afc4a84b5bd7a6815278646beee60d.tar.xz | |
icd: Support for command pools
Diffstat (limited to 'include')
| -rw-r--r-- | include/vk_debug_report_lunarg.h | 5 | ||||
| -rw-r--r-- | include/vk_layer.h | 3 | ||||
| -rw-r--r-- | include/vulkan.h | 51 |
3 files changed, 53 insertions, 6 deletions
diff --git a/include/vk_debug_report_lunarg.h b/include/vk_debug_report_lunarg.h index 89dd02e6..eef78364 100644 --- a/include/vk_debug_report_lunarg.h +++ b/include/vk_debug_report_lunarg.h @@ -78,9 +78,10 @@ typedef enum { VK_OBJECT_TYPE_RENDER_PASS = 29, VK_OBJECT_TYPE_PIPELINE_CACHE = 30, VK_OBJECT_TYPE_SWAP_CHAIN_WSI = 31, + VK_OBJECT_TYPE_CMD_POOL = 32, VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_INSTANCE, - VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_SWAP_CHAIN_WSI, - VK_OBJECT_TYPE_NUM = (VK_OBJECT_TYPE_SWAP_CHAIN_WSI - VK_OBJECT_TYPE_INSTANCE + 1), + VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_CMD_POOL, + VK_OBJECT_TYPE_NUM = (VK_OBJECT_TYPE_CMD_POOL - VK_OBJECT_TYPE_INSTANCE + 1), VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF } VkDbgObjectType; diff --git a/include/vk_layer.h b/include/vk_layer.h index 6d1945bf..25c30e22 100644 --- a/include/vk_layer.h +++ b/include/vk_layer.h @@ -110,6 +110,9 @@ typedef struct VkLayerDispatchTable_ PFN_vkDestroyDynamicColorBlendState DestroyDynamicColorBlendState; PFN_vkCreateDynamicDepthStencilState CreateDynamicDepthStencilState; PFN_vkDestroyDynamicDepthStencilState DestroyDynamicDepthStencilState; + PFN_vkCreateCommandPool CreateCommandPool; + PFN_vkDestroyCommandPool DestroyCommandPool; + PFN_vkResetCommandPool ResetCommandPool; PFN_vkCreateCommandBuffer CreateCommandBuffer; PFN_vkDestroyCommandBuffer DestroyCommandBuffer; PFN_vkBeginCommandBuffer BeginCommandBuffer; diff --git a/include/vulkan.h b/include/vulkan.h index 62049412..bd8de375 100644 --- a/include/vulkan.h +++ b/include/vulkan.h @@ -106,6 +106,7 @@ VK_DEFINE_NONDISP_HANDLE(VkDynamicColorBlendState) VK_DEFINE_NONDISP_HANDLE(VkDynamicDepthStencilState) VK_DEFINE_NONDISP_HANDLE(VkRenderPass) VK_DEFINE_NONDISP_HANDLE(VkFramebuffer) +VK_DEFINE_NONDISP_HANDLE(VkCmdPool) #define VK_MAX_PHYSICAL_DEVICE_NAME 256 #define VK_MAX_EXTENSION_NAME 256 @@ -793,8 +794,9 @@ typedef enum VkStructureType_ VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION = 48, VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY = 49, VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 50, + VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO = 51, - VK_ENUM_RANGE(STRUCTURE_TYPE, APPLICATION_INFO, RENDER_PASS_BEGIN_INFO) + VK_ENUM_RANGE(STRUCTURE_TYPE, APPLICATION_INFO, CMD_POOL_CREATE_INFO) } VkStructureType; // ------------------------------------------------------------------------------------------------ @@ -906,6 +908,17 @@ typedef enum VkMemoryInputFlagBits_ VK_MEMORY_INPUT_TRANSFER_BIT = VK_BIT(9), // Controls input coherency of transfer operations } VkMemoryInputFlagBits; +typedef enum { + VK_CMD_POOL_CREATE_TRANSIENT_BIT = 0x00000001, + VK_CMD_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, +} VkCmdPoolCreateFlagBits; +typedef VkFlags VkCmdPoolCreateFlags; + +typedef enum { + VK_CMD_POOL_RESET_RELEASE_RESOURCES = 0x00000001, +} VkCmdPoolResetFlagBits; +typedef VkFlags VkCmdPoolResetFlags; + // Buffer usage flags typedef VkFlags VkBufferUsageFlags; typedef enum VkBufferUsageFlagBits_ @@ -1120,6 +1133,11 @@ typedef enum VkCmdBufferOptimizeFlagBits_ VK_CMD_BUFFER_OPTIMIZE_NO_SIMULTANEOUS_USE_BIT = 0x00000010, } VkCmdBufferOptimizeFlagBits; +typedef enum { + VK_CMD_BUFFER_RESET_RELEASE_RESOURCES = 0x00000001, +} VkCmdBufferResetFlagBits; +typedef VkFlags VkCmdBufferResetFlags; + // Pipeline statistics flags typedef VkFlags VkQueryPipelineStatisticFlags; typedef enum VkQueryPipelineStatisticFlagBits_ { @@ -2066,11 +2084,18 @@ typedef struct VkDynamicDepthStencilStateCreateInfo_ uint32_t stencilBackRef; } VkDynamicDepthStencilStateCreateInfo; +typedef struct { + VkStructureType sType; + const void* pNext; + uint32_t queueFamilyIndex; + VkCmdPoolCreateFlags flags; +} VkCmdPoolCreateInfo; + typedef struct VkCmdBufferCreateInfo_ { VkStructureType sType; // Must be VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO const void* pNext; // Pointer to next structure - uint32_t queueNodeIndex; + VkCmdPool cmdPool; VkCmdBufferLevel level; VkCmdBufferCreateFlags flags; // Command buffer creation flags } VkCmdBufferCreateInfo; @@ -2357,11 +2382,14 @@ typedef VkResult (VKAPI *PFN_vkCreateDynamicColorBlendState)(VkDevice device, co typedef VkResult (VKAPI *PFN_vkDestroyDynamicColorBlendState)(VkDevice device, VkDynamicColorBlendState dynamicColorBlendState); typedef VkResult (VKAPI *PFN_vkCreateDynamicDepthStencilState)(VkDevice device, const VkDynamicDepthStencilStateCreateInfo* pCreateInfo, VkDynamicDepthStencilState* pState); typedef VkResult (VKAPI *PFN_vkDestroyDynamicDepthStencilState)(VkDevice device, VkDynamicDepthStencilState dynamicDepthStencilState); +typedef VkResult (VKAPI *PFN_vkCreateCommandPool)(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, VkCmdPool* pCmdPool); +typedef VkResult (VKAPI *PFN_vkDestroyCommandPool)(VkDevice device, VkCmdPool cmdPool); +typedef VkResult (VKAPI *PFN_vkResetCommandPool)(VkDevice device, VkCmdPool cmdPool, VkCmdPoolResetFlags flags); typedef VkResult (VKAPI *PFN_vkCreateCommandBuffer)(VkDevice device, const VkCmdBufferCreateInfo* pCreateInfo, VkCmdBuffer* pCmdBuffer); typedef VkResult (VKAPI *PFN_vkDestroyCommandBuffer)(VkDevice device, VkCmdBuffer commandBuffer); typedef VkResult (VKAPI *PFN_vkBeginCommandBuffer)(VkCmdBuffer cmdBuffer, const VkCmdBufferBeginInfo* pBeginInfo); typedef VkResult (VKAPI *PFN_vkEndCommandBuffer)(VkCmdBuffer cmdBuffer); -typedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCmdBuffer cmdBuffer); +typedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCmdBuffer cmdBuffer, VkCmdBufferResetFlags flags); typedef void (VKAPI *PFN_vkCmdBindPipeline)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline); typedef void (VKAPI *PFN_vkCmdBindDynamicViewportState)(VkCmdBuffer cmdBuffer, VkDynamicViewportState dynamicViewportState); typedef void (VKAPI *PFN_vkCmdBindDynamicRasterState)(VkCmdBuffer cmdBuffer, VkDynamicRasterState dynamicRasterState); @@ -2933,6 +2961,20 @@ VkResult VKAPI vkDestroyDynamicDepthStencilState( // Command buffer functions +VkResult VKAPI vkCreateCommandPool( + VkDevice device, + const VkCmdPoolCreateInfo* pCreateInfo, + VkCmdPool* pCmdPool); + +VkResult VKAPI vkDestroyCommandPool( + VkDevice device, + VkCmdPool cmdPool); + +VkResult VKAPI vkResetCommandPool( + VkDevice device, + VkCmdPool cmdPool, + VkCmdPoolResetFlags flags); + VkResult VKAPI vkCreateCommandBuffer( VkDevice device, const VkCmdBufferCreateInfo* pCreateInfo, @@ -2950,7 +2992,8 @@ VkResult VKAPI vkEndCommandBuffer( VkCmdBuffer cmdBuffer); VkResult VKAPI vkResetCommandBuffer( - VkCmdBuffer cmdBuffer); + VkCmdBuffer cmdBuffer, + VkCmdBufferResetFlags flags); // Command buffer building functions |
