bug 15022: Need a way to specify dummy descriptors for unused bindings (WIP)
Add binding to VkDescriptorSetLayoutBinding.
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15022
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 3cbb2c6..079981e 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -898,6 +898,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -1115,6 +1116,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -1376,6 +1378,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -1476,6 +1479,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -1537,6 +1541,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -1652,6 +1657,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -1817,6 +1823,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -1916,6 +1923,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -2040,6 +2048,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -2145,6 +2154,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -2249,6 +2259,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -2406,6 +2417,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -2846,6 +2858,7 @@
err = vkCreateDescriptorPool(m_device->device(), &ds_pool_ci, NULL, &ds_pool);
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -2942,6 +2955,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -3039,6 +3053,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -3134,6 +3149,7 @@
err = vkCreateDescriptorPool(m_device->device(), &ds_pool_ci, NULL, &ds_pool);
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -3230,6 +3246,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -3304,6 +3321,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -3404,10 +3422,12 @@
err = vkCreateDescriptorPool(m_device->device(), &ds_pool_ci, NULL, &ds_pool);
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding[2] = {};
+ dsl_binding[0].binding = 0;
dsl_binding[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding[0].arraySize = 1;
dsl_binding[0].stageFlags = VK_SHADER_STAGE_ALL;
dsl_binding[0].pImmutableSamplers = NULL;
+ dsl_binding[1].binding = 1;
dsl_binding[1].descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER;
dsl_binding[1].arraySize = 1;
dsl_binding[1].stageFlags = VK_SHADER_STAGE_ALL;
@@ -3548,6 +3568,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -3639,6 +3660,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -3744,6 +3766,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
@@ -5456,6 +5479,7 @@
ASSERT_VK_SUCCESS(err);
VkDescriptorSetLayoutBinding dsl_binding = {};
+ dsl_binding.binding = 0;
dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
dsl_binding.arraySize = 1;
dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 2fa1e61..1d003c9 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -501,6 +501,7 @@
vector<VkDescriptorSetLayoutBinding> bindings;
bindings.resize(m_type_counts.size());
for (int i = 0; i < m_type_counts.size(); i++) {
+ bindings[i].binding = i;
bindings[i].descriptorType = m_type_counts[i].type;
bindings[i].arraySize = m_type_counts[i].descriptorCount;
bindings[i].stageFlags = VK_SHADER_STAGE_ALL;