aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-09-16 16:12:45 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-09-17 15:32:11 -0600
commitcf92aa46e0caf0ecf5f6ae0d5b88f55cfbc9bdc4 (patch)
tree5202db9f2103e04cef8c30436a8881142cb07847
parentd69e2407bdedd40bc2ac431749676f05d381c76d (diff)
downloadusermoji-cf92aa46e0caf0ecf5f6ae0d5b88f55cfbc9bdc4.tar.xz
Bug 14644 - add poolUsage/maxSets to VkDescriptorPoolCreateInfo
Bug 14644 - vkCreateDescriptorPool should have poolUsage/maxSets as part of VkDescriptorPoolCreateInfo merge request #342
-rw-r--r--demos/cube.c3
-rw-r--r--demos/tri.c3
-rw-r--r--icd/nulldrv/nulldrv.c12
-rw-r--r--include/vulkan.h8
-rw-r--r--layers/draw_state.cpp8
-rw-r--r--layers/param_checker.cpp7
-rw-r--r--loader/trampoline.c4
-rwxr-xr-xvulkan.py2
8 files changed, 21 insertions, 26 deletions
diff --git a/demos/cube.c b/demos/cube.c
index aa743355..49eb5835 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -1775,13 +1775,14 @@ static void demo_prepare_descriptor_pool(struct demo *demo)
const VkDescriptorPoolCreateInfo descriptor_pool = {
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
.pNext = NULL,
+ .poolUsage = VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT,
+ .maxSets = 1,
.count = 2,
.pTypeCount = type_counts,
};
VkResult U_ASSERT_ONLY err;
err = vkCreateDescriptorPool(demo->device,
- VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT, 1,
&descriptor_pool, &demo->desc_pool);
assert(!err);
}
diff --git a/demos/tri.c b/demos/tri.c
index 57661395..2f6b81e8 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -1415,13 +1415,14 @@ static void demo_prepare_descriptor_pool(struct demo *demo)
const VkDescriptorPoolCreateInfo descriptor_pool = {
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
.pNext = NULL,
+ .poolUsage = VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT,
+ .maxSets = 1,
.count = 1,
.pTypeCount = &type_count,
};
VkResult U_ASSERT_ONLY err;
err = vkCreateDescriptorPool(demo->device,
- VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT, 1,
&descriptor_pool, &demo->desc_pool);
assert(!err);
}
diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c
index bb67967b..12015e39 100644
--- a/icd/nulldrv/nulldrv.c
+++ b/icd/nulldrv/nulldrv.c
@@ -610,8 +610,6 @@ static VkResult nulldrv_cmd_create(struct nulldrv_dev *dev,
}
static VkResult nulldrv_desc_pool_create(struct nulldrv_dev *dev,
- VkDescriptorPoolUsage usage,
- uint32_t max_sets,
const VkDescriptorPoolCreateInfo *info,
struct nulldrv_desc_pool **pool_ret)
{
@@ -2273,16 +2271,14 @@ ICD_EXPORT void VKAPI vkDestroyPipelineLayout(
}
ICD_EXPORT VkResult VKAPI vkCreateDescriptorPool(
- VkDevice device,
- VkDescriptorPoolUsage poolUsage,
- uint32_t maxSets,
- const VkDescriptorPoolCreateInfo* pCreateInfo,
- VkDescriptorPool* pDescriptorPool)
+ VkDevice device,
+ const VkDescriptorPoolCreateInfo* pCreateInfo,
+ VkDescriptorPool* pDescriptorPool)
{
NULLDRV_LOG_FUNC;
struct nulldrv_dev *dev = nulldrv_dev(device);
- return nulldrv_desc_pool_create(dev, poolUsage, maxSets, pCreateInfo,
+ return nulldrv_desc_pool_create(dev, pCreateInfo,
(struct nulldrv_desc_pool **) pDescriptorPool);
}
diff --git a/include/vulkan.h b/include/vulkan.h
index 25d25eec..e63841fd 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -41,7 +41,7 @@ extern "C" {
((major << 22) | (minor << 12) | patch)
// Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 168, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 169, 0)
#if defined(__cplusplus) && (_MSC_VER >= 1800 || __cplusplus >= 201103L)
@@ -1763,6 +1763,8 @@ typedef struct {
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkDescriptorPoolUsage poolUsage;
+ uint32_t maxSets;
uint32_t count;
const VkDescriptorTypeCount* pTypeCount;
} VkDescriptorPoolCreateInfo;
@@ -2175,7 +2177,7 @@ typedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCr
typedef void (VKAPI *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler);
typedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayout* pSetLayout);
typedef void (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout);
-typedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, VkDescriptorPoolUsage poolUsage, uint32_t maxSets, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
+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);
@@ -2651,8 +2653,6 @@ void VKAPI vkDestroyDescriptorSetLayout(
VkResult VKAPI vkCreateDescriptorPool(
VkDevice device,
- VkDescriptorPoolUsage poolUsage,
- uint32_t maxSets,
const VkDescriptorPoolCreateInfo* pCreateInfo,
VkDescriptorPool* pDescriptorPool);
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 172260eb..78304fb4 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -1840,9 +1840,9 @@ VkResult VKAPI vkCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCre
return result;
}
-VK_LAYER_EXPORT VkResult VKAPI vkCreateDescriptorPool(VkDevice device, VkDescriptorPoolUsage poolUsage, uint32_t maxSets, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool)
+VK_LAYER_EXPORT VkResult VKAPI vkCreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool)
{
- VkResult result = get_dispatch_table(draw_state_device_table_map, device)->CreateDescriptorPool(device, poolUsage, maxSets, pCreateInfo, pDescriptorPool);
+ VkResult result = get_dispatch_table(draw_state_device_table_map, device)->CreateDescriptorPool(device, pCreateInfo, pDescriptorPool);
if (VK_SUCCESS == result) {
// Insert this pool into Global Pool LL at head
if (log_msg(mdd(device), VK_DBG_REPORT_INFO_BIT, VK_OBJECT_TYPE_DESCRIPTOR_POOL, (*pDescriptorPool).handle, 0, DRAWSTATE_OUT_OF_MEMORY, "DS",
@@ -1863,8 +1863,8 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateDescriptorPool(VkDevice device, VkDescrip
pNewNode->createInfo.pTypeCount = new VkDescriptorTypeCount[typeCountSize];
memcpy((void*)pNewNode->createInfo.pTypeCount, pCreateInfo->pTypeCount, typeCountSize);
}
- pNewNode->poolUsage = poolUsage;
- pNewNode->maxSets = maxSets;
+ pNewNode->poolUsage = pCreateInfo->poolUsage;
+ pNewNode->maxSets = pCreateInfo->maxSets;
pNewNode->pool = *pDescriptorPool;
poolMap[pDescriptorPool->handle] = pNewNode;
}
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 583363ae..3b3cc068 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -4741,6 +4741,7 @@ bool PostCreateDescriptorPool(
return false;
}
+ /* TODOVV: How do we validate maxSets? Probably belongs in the limits layer? */
if(pDescriptorPool != nullptr)
{
@@ -4758,16 +4759,14 @@ bool PostCreateDescriptorPool(
VK_LAYER_EXPORT VkResult VKAPI vkCreateDescriptorPool(
VkDevice device,
- VkDescriptorPoolUsage poolUsage,
- uint32_t maxSets,
const VkDescriptorPoolCreateInfo* pCreateInfo,
VkDescriptorPool* pDescriptorPool)
{
PreCreateDescriptorPool(device, pCreateInfo);
- VkResult result = get_dispatch_table(pc_device_table_map, device)->CreateDescriptorPool(device, poolUsage, maxSets, pCreateInfo, pDescriptorPool);
+ VkResult result = get_dispatch_table(pc_device_table_map, device)->CreateDescriptorPool(device, pCreateInfo, pDescriptorPool);
- PostCreateDescriptorPool(device, poolUsage, maxSets, pDescriptorPool, result);
+ PostCreateDescriptorPool(device, pCreateInfo->poolUsage, pCreateInfo->maxSets, pDescriptorPool, result);
return result;
}
diff --git a/loader/trampoline.c b/loader/trampoline.c
index b24e8225..ee0a4695 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -925,13 +925,13 @@ LOADER_EXPORT void VKAPI vkDestroyDescriptorSetLayout(VkDevice device, VkDescrip
disp->DestroyDescriptorSetLayout(device, descriptorSetLayout);
}
-LOADER_EXPORT VkResult VKAPI vkCreateDescriptorPool(VkDevice device, VkDescriptorPoolUsage poolUsage, uint32_t maxSets, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool)
+LOADER_EXPORT VkResult VKAPI vkCreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool)
{
const VkLayerDispatchTable *disp;
disp = loader_get_dispatch(device);
- return disp->CreateDescriptorPool(device, poolUsage, maxSets, pCreateInfo, pDescriptorPool);
+ return disp->CreateDescriptorPool(device, pCreateInfo, pDescriptorPool);
}
LOADER_EXPORT void VKAPI vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool)
diff --git a/vulkan.py b/vulkan.py
index d6479892..0e5292e2 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -618,8 +618,6 @@ core = Extension(
Proto("VkResult", "CreateDescriptorPool",
[Param("VkDevice", "device"),
- Param("VkDescriptorPoolUsage", "poolUsage"),
- Param("uint32_t", "maxSets"),
Param("const VkDescriptorPoolCreateInfo*", "pCreateInfo"),
Param("VkDescriptorPool*", "pDescriptorPool")]),