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;