diff options
| author | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-10-23 14:21:05 -0600 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-10-26 16:24:10 -0600 |
| commit | 014ded8f27412b0d3d29dc40352d938253a57368 (patch) | |
| tree | 2c7f67895d02b73a28aef86ff09193fcb1a3d344 /include | |
| parent | abd50880e9bee98cb77aec5186781d4098934e0c (diff) | |
| download | usermoji-014ded8f27412b0d3d29dc40352d938253a57368.tar.xz | |
bug-14258: Make descriptor pools and command pools more consistent
Diffstat (limited to 'include')
| -rw-r--r-- | include/vk_layer.h | 4 | ||||
| -rw-r--r-- | include/vulkan.h | 75 |
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, |
