aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Northrop <cody@lunarg.com>2015-08-03 12:47:29 -0600
committerCody Northrop <cody@lunarg.com>2015-08-04 17:37:03 -0600
commit15954693fd35d905b650bef4ec01c2dd216bde90 (patch)
tree999e5a0c6820c56e7a33b9db50d36279f909e0c9
parent33467cf073a664161edb1d27a87b3611d3b289ec (diff)
downloadusermoji-15954693fd35d905b650bef4ec01c2dd216bde90.tar.xz
v139: Bug 14257 - Remove pCount parameter from vkAllocDescriptorSets
-rw-r--r--demos/cube.c5
-rw-r--r--demos/tri.c5
-rw-r--r--icd/nulldrv/nulldrv.c6
-rw-r--r--include/vulkan.h7
-rw-r--r--layers/draw_state.cpp12
-rw-r--r--layers/object_track.h7
-rw-r--r--layers/param_checker.cpp12
-rw-r--r--loader/trampoline.c4
-rwxr-xr-xvk-layer-generate.py4
-rwxr-xr-xvulkan.py3
10 files changed, 26 insertions, 39 deletions
diff --git a/demos/cube.c b/demos/cube.c
index 6b41aff4..5ec96832 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -1736,14 +1736,13 @@ static void demo_prepare_descriptor_set(struct demo *demo)
VkDescriptorInfo tex_descs[DEMO_TEXTURE_COUNT];
VkWriteDescriptorSet writes[2];
VkResult U_ASSERT_ONLY err;
- uint32_t count;
uint32_t i;
err = vkAllocDescriptorSets(demo->device, demo->desc_pool,
VK_DESCRIPTOR_SET_USAGE_STATIC,
1, &demo->desc_layout,
- &demo->desc_set, &count);
- assert(!err && count == 1);
+ &demo->desc_set);
+ assert(!err);
memset(&tex_descs, 0, sizeof(tex_descs));
for (i = 0; i < DEMO_TEXTURE_COUNT; i++) {
diff --git a/demos/tri.c b/demos/tri.c
index 7b3dfb60..397febf6 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -1366,14 +1366,13 @@ static void demo_prepare_descriptor_set(struct demo *demo)
VkDescriptorInfo tex_descs[DEMO_TEXTURE_COUNT];
VkWriteDescriptorSet write;
VkResult U_ASSERT_ONLY err;
- uint32_t count;
uint32_t i;
err = vkAllocDescriptorSets(demo->device, demo->desc_pool,
VK_DESCRIPTOR_SET_USAGE_STATIC,
1, &demo->desc_layout,
- &demo->desc_set, &count);
- assert(!err && count == 1);
+ &demo->desc_set);
+ assert(!err);
memset(&tex_descs, 0, sizeof(tex_descs));
for (i = 0; i < DEMO_TEXTURE_COUNT; i++) {
diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c
index 7292af62..9111dcd4 100644
--- a/icd/nulldrv/nulldrv.c
+++ b/icd/nulldrv/nulldrv.c
@@ -2264,8 +2264,7 @@ ICD_EXPORT VkResult VKAPI vkAllocDescriptorSets(
VkDescriptorSetUsage setUsage,
uint32_t count,
const VkDescriptorSetLayout* pSetLayouts,
- VkDescriptorSet* pDescriptorSets,
- uint32_t* pCount)
+ VkDescriptorSet* pDescriptorSets)
{
NULLDRV_LOG_FUNC;
struct nulldrv_desc_pool *pool = nulldrv_desc_pool(descriptorPool);
@@ -2283,9 +2282,6 @@ ICD_EXPORT VkResult VKAPI vkAllocDescriptorSets(
break;
}
- if (pCount)
- *pCount = i;
-
return ret;
}
diff --git a/include/vulkan.h b/include/vulkan.h
index 9877233b..9c5e1f7a 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, 138, 2)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 139, 0)
#define VK_DEFINE_HANDLE(obj) typedef struct obj##_T* obj;
@@ -2167,7 +2167,7 @@ typedef VkResult (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDe
typedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, VkDescriptorPoolUsage poolUsage, uint32_t maxSets, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
typedef VkResult (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, uint32_t* pCount);
+typedef VkResult (VKAPI *PFN_vkAllocDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSetUsage setUsage, uint32_t count, const VkDescriptorSetLayout* pSetLayouts, VkDescriptorSet* pDescriptorSets);
typedef VkResult (VKAPI *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets);
typedef VkResult (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies);
typedef VkResult (VKAPI *PFN_vkCreateDynamicViewportState)(VkDevice device, const VkDynamicViewportStateCreateInfo* pCreateInfo, VkDynamicViewportState* pState);
@@ -2669,8 +2669,7 @@ VkResult VKAPI vkAllocDescriptorSets(
VkDescriptorSetUsage setUsage,
uint32_t count,
const VkDescriptorSetLayout* pSetLayouts,
- VkDescriptorSet* pDescriptorSets,
- uint32_t* pCount);
+ VkDescriptorSet* pDescriptorSets);
VkResult VKAPI vkFreeDescriptorSets(
VkDevice device,
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index a9affafd..e17a36e4 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -1864,16 +1864,20 @@ VK_LAYER_EXPORT VkResult VKAPI vkResetDescriptorPool(VkDevice device, VkDescript
return result;
}
-VK_LAYER_EXPORT VkResult VKAPI vkAllocDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSetUsage setUsage, uint32_t count, const VkDescriptorSetLayout* pSetLayouts, VkDescriptorSet* pDescriptorSets, uint32_t* pCount)
+VK_LAYER_EXPORT VkResult VKAPI vkAllocDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSetUsage setUsage, uint32_t count, const VkDescriptorSetLayout* pSetLayouts, VkDescriptorSet* pDescriptorSets)
{
- VkResult result = get_dispatch_table(draw_state_device_table_map, device)->AllocDescriptorSets(device, descriptorPool, setUsage, count, pSetLayouts, pDescriptorSets, pCount);
- if ((VK_SUCCESS == result) || (*pCount > 0)) {
+ VkResult result = get_dispatch_table(draw_state_device_table_map, device)->AllocDescriptorSets(device, descriptorPool, setUsage, count, pSetLayouts, pDescriptorSets);
+ if (VK_SUCCESS == result) {
POOL_NODE *pPoolNode = getPoolNode(descriptorPool);
if (!pPoolNode) {
log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_DESCRIPTOR_POOL, descriptorPool.handle, 0, DRAWSTATE_INVALID_POOL, "DS",
"Unable to find pool node for pool %#" PRIxLEAST64 " specified in vkAllocDescriptorSets() call", descriptorPool.handle);
} else {
- for (uint32_t i = 0; i < *pCount; i++) {
+ if (count == 0) {
+ log_msg(mdd(device), VK_DBG_REPORT_INFO_BIT, VK_OBJECT_TYPE_DESCRIPTOR_SET, count, 0, DRAWSTATE_NONE, "DS",
+ "AllocDescriptorSets called with 0 count");
+ }
+ for (uint32_t i = 0; i < count; i++) {
log_msg(mdd(device), VK_DBG_REPORT_INFO_BIT, VK_OBJECT_TYPE_DESCRIPTOR_SET, pDescriptorSets[i].handle, 0, DRAWSTATE_NONE, "DS",
"Created Descriptor Set %#" PRIxLEAST64, pDescriptorSets[i].handle);
// Create new set node and add to head of pool nodes
diff --git a/layers/object_track.h b/layers/object_track.h
index ac9c6c1b..d9eba5af 100644
--- a/layers/object_track.h
+++ b/layers/object_track.h
@@ -663,8 +663,7 @@ explicit_AllocDescriptorSets(
VkDescriptorSetUsage setUsage,
uint32_t count,
const VkDescriptorSetLayout *pSetLayouts,
- VkDescriptorSet *pDescriptorSets,
- uint32_t *pCount)
+ VkDescriptorSet *pDescriptorSets)
{
loader_platform_thread_lock_mutex(&objLock);
validate_object(device, device);
@@ -672,10 +671,10 @@ explicit_AllocDescriptorSets(
loader_platform_thread_unlock_mutex(&objLock);
VkResult result = get_dispatch_table(ObjectTracker_device_table_map, device)->AllocDescriptorSets(
- device, descriptorPool, setUsage, count, pSetLayouts, pDescriptorSets, pCount);
+ device, descriptorPool, setUsage, count, pSetLayouts, pDescriptorSets);
loader_platform_thread_lock_mutex(&objLock);
- for (uint32_t i = 0; i < *pCount; i++) {
+ for (uint32_t i = 0; i < count; i++) {
create_obj(device, pDescriptorSets[i], VK_OBJECT_TYPE_DESCRIPTOR_SET);
}
loader_platform_thread_unlock_mutex(&objLock);
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 8bb52878..3a7c1e6e 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -5657,7 +5657,6 @@ bool PostAllocDescriptorSets(
VkDescriptorSetUsage setUsage,
uint32_t count,
VkDescriptorSet* pDescriptorSets,
- uint32_t* pCount,
VkResult result)
{
@@ -5675,10 +5674,6 @@ bool PostAllocDescriptorSets(
{
}
- if(pCount != nullptr)
- {
- }
-
if(result < VK_SUCCESS)
{
std::string reason = "vkAllocDescriptorSets parameter, VkResult result, is " + EnumeratorString(result);
@@ -5695,14 +5690,13 @@ VK_LAYER_EXPORT VkResult VKAPI vkAllocDescriptorSets(
VkDescriptorSetUsage setUsage,
uint32_t count,
const VkDescriptorSetLayout* pSetLayouts,
- VkDescriptorSet* pDescriptorSets,
- uint32_t* pCount)
+ VkDescriptorSet* pDescriptorSets)
{
PreAllocDescriptorSets(device, pSetLayouts);
- VkResult result = get_dispatch_table(pc_device_table_map, device)->AllocDescriptorSets(device, descriptorPool, setUsage, count, pSetLayouts, pDescriptorSets, pCount);
+ VkResult result = get_dispatch_table(pc_device_table_map, device)->AllocDescriptorSets(device, descriptorPool, setUsage, count, pSetLayouts, pDescriptorSets);
- PostAllocDescriptorSets(device, descriptorPool, setUsage, count, pDescriptorSets, pCount, result);
+ PostAllocDescriptorSets(device, descriptorPool, setUsage, count, pDescriptorSets, result);
return result;
}
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 2224ce2e..2a236e42 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -960,13 +960,13 @@ LOADER_EXPORT VkResult VKAPI vkResetDescriptorPool(VkDevice device, VkDescriptor
return disp->ResetDescriptorPool(device, descriptorPool);
}
-LOADER_EXPORT VkResult VKAPI vkAllocDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSetUsage setUsage, uint32_t count, const VkDescriptorSetLayout* pSetLayouts, VkDescriptorSet* pDescriptorSets, uint32_t* pCount)
+LOADER_EXPORT VkResult VKAPI vkAllocDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSetUsage setUsage, uint32_t count, const VkDescriptorSetLayout* pSetLayouts, VkDescriptorSet* pDescriptorSets)
{
const VkLayerDispatchTable *disp;
disp = loader_get_dispatch(device);
- return disp->AllocDescriptorSets(device, descriptorPool, setUsage, count, pSetLayouts, pDescriptorSets, pCount);
+ return disp->AllocDescriptorSets(device, descriptorPool, setUsage, count, pSetLayouts, pDescriptorSets);
}
LOADER_EXPORT VkResult VKAPI vkFreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets)
diff --git a/vk-layer-generate.py b/vk-layer-generate.py
index 899cad96..042da7ca 100755
--- a/vk-layer-generate.py
+++ b/vk-layer-generate.py
@@ -867,7 +867,7 @@ class APIDumpSubcommand(Subcommand):
sp_param_dict = {} # Store 'index' for struct param to print, or an name of binding "Count" param for array to print
create_params = 0 # Num of params at end of function that are created and returned as output values
if 'AllocDescriptorSets' in proto.name:
- create_params = -2
+ create_params = -1
elif 'Create' in proto.name or 'Alloc' in proto.name or 'MapMemory' in proto.name:
create_params = -1
if proto.ret != "void":
@@ -902,8 +902,6 @@ class APIDumpSubcommand(Subcommand):
if prev_count_name != '' and (prev_count_name.replace('Count', '')[1:] in p.name):
sp_param_dict[pindex] = prev_count_name
prev_count_name = ''
- elif 'pDescriptorSets' == p.name and proto.params[-1].name == 'pCount':
- sp_param_dict[pindex] = '*pCount'
elif vk_helper.is_type(p.ty.strip('*').replace('const ', ''), 'struct'):
sp_param_dict[pindex] = 'index'
if p.name.endswith('Count'):
diff --git a/vulkan.py b/vulkan.py
index 71cbe84f..ef1b66b6 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -652,8 +652,7 @@ core = Extension(
Param("VkDescriptorSetUsage", "setUsage"),
Param("uint32_t", "count"),
Param("const VkDescriptorSetLayout*", "pSetLayouts"),
- Param("VkDescriptorSet*", "pDescriptorSets"),
- Param("uint32_t*", "pCount")]),
+ Param("VkDescriptorSet*", "pDescriptorSets")]),
Proto("VkResult", "FreeDescriptorSets",
[Param("VkDevice", "device"),