aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-10-23 14:21:05 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-10-26 16:24:10 -0600
commit014ded8f27412b0d3d29dc40352d938253a57368 (patch)
tree2c7f67895d02b73a28aef86ff09193fcb1a3d344 /include
parentabd50880e9bee98cb77aec5186781d4098934e0c (diff)
downloadusermoji-014ded8f27412b0d3d29dc40352d938253a57368.tar.xz
bug-14258: Make descriptor pools and command pools more consistent
Diffstat (limited to 'include')
-rw-r--r--include/vk_layer.h4
-rw-r--r--include/vulkan.h75
2 files changed, 38 insertions, 41 deletions
diff --git a/include/vk_layer.h b/include/vk_layer.h
index 9c6bcca9..692a2c0f 100644
--- a/include/vk_layer.h
+++ b/include/vk_layer.h
@@ -108,8 +108,8 @@ typedef struct VkLayerDispatchTable_
PFN_vkCreateCommandPool CreateCommandPool;
PFN_vkDestroyCommandPool DestroyCommandPool;
PFN_vkResetCommandPool ResetCommandPool;
- PFN_vkCreateCommandBuffer CreateCommandBuffer;
- PFN_vkDestroyCommandBuffer DestroyCommandBuffer;
+ PFN_vkAllocCommandBuffers AllocCommandBuffers;
+ PFN_vkFreeCommandBuffers FreeCommandBuffers;
PFN_vkBeginCommandBuffer BeginCommandBuffer;
PFN_vkEndCommandBuffer EndCommandBuffer;
PFN_vkResetCommandBuffer ResetCommandBuffer;
diff --git a/include/vulkan.h b/include/vulkan.h
index fda86fdd..206daed4 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -169,7 +169,7 @@ typedef enum {
VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 6,
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 7,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 8,
- VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO = 9,
+ VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO = 9,
VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 11,
VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 12,
@@ -207,9 +207,10 @@ typedef enum {
VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO = 44,
VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 45,
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 46,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 47,
VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
- VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
- VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
+ VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO,
+ VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
} VkStructureType;
@@ -725,24 +726,6 @@ typedef enum {
} VkDescriptorType;
typedef enum {
- VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT = 0,
- VK_DESCRIPTOR_POOL_USAGE_DYNAMIC = 1,
- VK_DESCRIPTOR_POOL_USAGE_BEGIN_RANGE = VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT,
- VK_DESCRIPTOR_POOL_USAGE_END_RANGE = VK_DESCRIPTOR_POOL_USAGE_DYNAMIC,
- VK_DESCRIPTOR_POOL_USAGE_NUM = (VK_DESCRIPTOR_POOL_USAGE_DYNAMIC - VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT + 1),
- VK_DESCRIPTOR_POOL_USAGE_MAX_ENUM = 0x7FFFFFFF
-} VkDescriptorPoolUsage;
-
-typedef enum {
- VK_DESCRIPTOR_SET_USAGE_ONE_SHOT = 0,
- VK_DESCRIPTOR_SET_USAGE_STATIC = 1,
- VK_DESCRIPTOR_SET_USAGE_BEGIN_RANGE = VK_DESCRIPTOR_SET_USAGE_ONE_SHOT,
- VK_DESCRIPTOR_SET_USAGE_END_RANGE = VK_DESCRIPTOR_SET_USAGE_STATIC,
- VK_DESCRIPTOR_SET_USAGE_NUM = (VK_DESCRIPTOR_SET_USAGE_STATIC - VK_DESCRIPTOR_SET_USAGE_ONE_SHOT + 1),
- VK_DESCRIPTOR_SET_USAGE_MAX_ENUM = 0x7FFFFFFF
-} VkDescriptorSetUsage;
-
-typedef enum {
VK_ATTACHMENT_LOAD_OP_LOAD = 0,
VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
@@ -985,6 +968,12 @@ typedef VkFlags VkPipelineCreateFlags;
typedef VkFlags VkShaderStageFlags;
typedef enum {
+ VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
+} VkDescriptorPoolCreateFlagBits;
+typedef VkFlags VkDescriptorPoolCreateFlags;
+typedef VkFlags VkDescriptorPoolResetFlags;
+
+typedef enum {
VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
} VkAttachmentDescriptionFlagBits;
typedef VkFlags VkAttachmentDescriptionFlags;
@@ -1043,7 +1032,6 @@ typedef enum {
VK_CMD_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
} VkCmdPoolResetFlagBits;
typedef VkFlags VkCmdPoolResetFlags;
-typedef VkFlags VkCmdBufferCreateFlags;
typedef enum {
VK_CMD_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
@@ -1809,13 +1797,21 @@ typedef struct {
typedef struct {
VkStructureType sType;
const void* pNext;
- VkDescriptorPoolUsage poolUsage;
+ VkDescriptorPoolCreateFlags flags;
uint32_t maxSets;
uint32_t count;
const VkDescriptorTypeCount* pTypeCount;
} VkDescriptorPoolCreateInfo;
typedef struct {
+ VkStructureType sType;
+ const void* pNext;
+ VkDescriptorPool descriptorPool;
+ uint32_t count;
+ const VkDescriptorSetLayout* pSetLayouts;
+} VkDescriptorSetAllocInfo;
+
+typedef struct {
VkSampler sampler;
VkImageView imageView;
VkImageLayout imageLayout;
@@ -1931,6 +1927,7 @@ typedef struct {
typedef struct {
VkStructureType sType;
const void* pNext;
+ uint32_t maxCommandBuffers;
uint32_t queueFamilyIndex;
VkCmdPoolCreateFlags flags;
} VkCmdPoolCreateInfo;
@@ -1940,8 +1937,8 @@ typedef struct {
const void* pNext;
VkCmdPool cmdPool;
VkCmdBufferLevel level;
- VkCmdBufferCreateFlags flags;
-} VkCmdBufferCreateInfo;
+ uint32_t count;
+} VkCmdBufferAllocInfo;
typedef struct {
VkStructureType sType;
@@ -2174,8 +2171,8 @@ typedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const
typedef void (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout);
typedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
typedef void (VKAPI *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool);
-typedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool);
-typedef VkResult (VKAPI *PFN_vkAllocDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSetUsage setUsage, uint32_t count, const VkDescriptorSetLayout* pSetLayouts, VkDescriptorSet* pDescriptorSets);
+typedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
+typedef VkResult (VKAPI *PFN_vkAllocDescriptorSets)(VkDevice device, const VkDescriptorSetAllocInfo* pAllocInfo, VkDescriptorSet* pDescriptorSets);
typedef VkResult (VKAPI *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets);
typedef void (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies);
typedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer);
@@ -2186,8 +2183,8 @@ typedef void (VKAPI *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPa
typedef VkResult (VKAPI *PFN_vkCreateCommandPool)(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, VkCmdPool* pCmdPool);
typedef void (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 void (VKAPI *PFN_vkDestroyCommandBuffer)(VkDevice device, VkCmdBuffer commandBuffer);
+typedef VkResult (VKAPI *PFN_vkAllocCommandBuffers)(VkDevice device, const VkCmdBufferAllocInfo* pAllocInfo, VkCmdBuffer* pCmdBuffers);
+typedef void (VKAPI *PFN_vkFreeCommandBuffers)(VkDevice device, VkCmdPool cmdPool, uint32_t count, const VkCmdBuffer* pCommandBuffers);
typedef VkResult (VKAPI *PFN_vkBeginCommandBuffer)(VkCmdBuffer cmdBuffer, const VkCmdBufferBeginInfo* pBeginInfo);
typedef VkResult (VKAPI *PFN_vkEndCommandBuffer)(VkCmdBuffer cmdBuffer);
typedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCmdBuffer cmdBuffer, VkCmdBufferResetFlags flags);
@@ -2648,14 +2645,12 @@ void VKAPI vkDestroyDescriptorPool(
VkResult VKAPI vkResetDescriptorPool(
VkDevice device,
- VkDescriptorPool descriptorPool);
+ VkDescriptorPool descriptorPool,
+ VkDescriptorPoolResetFlags flags);
VkResult VKAPI vkAllocDescriptorSets(
VkDevice device,
- VkDescriptorPool descriptorPool,
- VkDescriptorSetUsage setUsage,
- uint32_t count,
- const VkDescriptorSetLayout* pSetLayouts,
+ const VkDescriptorSetAllocInfo* pAllocInfo,
VkDescriptorSet* pDescriptorSets);
VkResult VKAPI vkFreeDescriptorSets(
@@ -2708,14 +2703,16 @@ VkResult VKAPI vkResetCommandPool(
VkCmdPool cmdPool,
VkCmdPoolResetFlags flags);
-VkResult VKAPI vkCreateCommandBuffer(
+VkResult VKAPI vkAllocCommandBuffers(
VkDevice device,
- const VkCmdBufferCreateInfo* pCreateInfo,
- VkCmdBuffer* pCmdBuffer);
+ const VkCmdBufferAllocInfo* pAllocInfo,
+ VkCmdBuffer* pCmdBuffers);
-void VKAPI vkDestroyCommandBuffer(
+void VKAPI vkFreeCommandBuffers(
VkDevice device,
- VkCmdBuffer commandBuffer);
+ VkCmdPool cmdPool,
+ uint32_t count,
+ const VkCmdBuffer* pCommandBuffers);
VkResult VKAPI vkBeginCommandBuffer(
VkCmdBuffer cmdBuffer,