aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCody Northrop <cody@lunarg.com>2015-07-09 18:08:05 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-07-17 10:05:20 -0600
commite91de3b255afc4a84b5bd7a6815278646beee60d (patch)
tree1e64e33616e2a78f4e35aaa22828220e41e8e58a /include
parent860c33b07f995910cf266993a126f67ec641aab1 (diff)
downloadusermoji-e91de3b255afc4a84b5bd7a6815278646beee60d.tar.xz
icd: Support for command pools
Diffstat (limited to 'include')
-rw-r--r--include/vk_debug_report_lunarg.h5
-rw-r--r--include/vk_layer.h3
-rw-r--r--include/vulkan.h51
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