diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h
index 4eb7e96..792d02a 100644
--- a/include/vulkan/vulkan.h
+++ b/include/vulkan/vulkan.h
@@ -1340,7 +1340,7 @@
     const void*                                 pNext;
     VkDeviceQueueCreateFlags                    flags;
     uint32_t                                    queueFamilyIndex;
-    uint32_t                                    queuePriorityCount;
+    uint32_t                                    queueCount;
     const float*                                pQueuePriorities;
 } VkDeviceQueueCreateInfo;
 
@@ -1348,8 +1348,8 @@
     VkStructureType                             sType;
     const void*                                 pNext;
     VkDeviceCreateFlags                         flags;
-    uint32_t                                    requestedQueueCount;
-    const VkDeviceQueueCreateInfo*              pRequestedQueues;
+    uint32_t                                    queueCreateInfoCount;
+    const VkDeviceQueueCreateInfo*              pQueueCreateInfos;
     uint32_t                                    enabledLayerNameCount;
     const char*const*                           ppEnabledLayerNames;
     uint32_t                                    enabledExtensionNameCount;
@@ -1841,7 +1841,7 @@
 typedef struct VkDescriptorSetLayoutBinding {
     uint32_t                                    binding;
     VkDescriptorType                            descriptorType;
-    uint32_t                                    arraySize;
+    uint32_t                                    descriptorCount;
     VkShaderStageFlags                          stageFlags;
     const VkSampler*                            pImmutableSamplers;
 } VkDescriptorSetLayoutBinding;
diff --git a/layers/device_limits.cpp b/layers/device_limits.cpp
index c54bf23..a08fb26 100644
--- a/layers/device_limits.cpp
+++ b/layers/device_limits.cpp
@@ -403,14 +403,14 @@
             "Invalid call to vkCreateDevice() w/o first calling vkGetPhysicalDeviceQueueFamilyProperties().");
     } else {
         // Check that the requested queue properties are valid
-        for (uint32_t i=0; i<pCreateInfo->requestedQueueCount; i++) {
-            uint32_t requestedIndex = pCreateInfo->pRequestedQueues[i].queueFamilyIndex;
+        for (uint32_t i=0; i<pCreateInfo->queueCreateInfoCount; i++) {
+            uint32_t requestedIndex = pCreateInfo->pQueueCreateInfos[i].queueFamilyIndex;
             if (phy_dev_data->queueFamilyProperties.size() <= requestedIndex) { // requested index is out of bounds for this physical device
                 skipCall |= log_msg(phy_dev_data->report_data, VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_PHYSICAL_DEVICE, 0, 0, DEVLIMITS_INVALID_QUEUE_CREATE_REQUEST, "DL",
                     "Invalid queue create request in vkCreateDevice(). Invalid queueFamilyIndex %u requested.", requestedIndex);
-            } else if (pCreateInfo->pRequestedQueues[i].queuePriorityCount > phy_dev_data->queueFamilyProperties[requestedIndex]->queueCount) {
+            } else if (pCreateInfo->pQueueCreateInfos[i].queueCount > phy_dev_data->queueFamilyProperties[requestedIndex]->queueCount) {
                 skipCall |= log_msg(phy_dev_data->report_data, VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_PHYSICAL_DEVICE, 0, 0, DEVLIMITS_INVALID_QUEUE_CREATE_REQUEST, "DL",
-                    "Invalid queue create request in vkCreateDevice(). QueueFamilyIndex %u only has %u queues, but requested queuePriorityCount is %u.", requestedIndex, phy_dev_data->queueFamilyProperties[requestedIndex]->queueCount, pCreateInfo->pRequestedQueues[i].queuePriorityCount);
+                    "Invalid queue create request in vkCreateDevice(). QueueFamilyIndex %u only has %u queues, but requested queueCount is %u.", requestedIndex, phy_dev_data->queueFamilyProperties[requestedIndex]->queueCount, pCreateInfo->pQueueCreateInfos[i].queueCount);
             }
         }
     }
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index f824566..fa1cbfa 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -710,7 +710,7 @@
     for (uint32_t i = 0; i < pLayout->createInfo.bindingCount; i++) {
         if (pLayout->createInfo.pBinding[i].binding == binding)
             break;
-        offsetIndex += pLayout->createInfo.pBinding[i].arraySize;
+        offsetIndex += pLayout->createInfo.pBinding[i].descriptorCount;
     }
     return offsetIndex;
 }
@@ -719,7 +719,7 @@
 {
     uint32_t offsetIndex = 0;
     for (uint32_t i = 0; i <  pLayout->createInfo.bindingCount; i++) {
-        offsetIndex += pLayout->createInfo.pBinding[i].arraySize;
+        offsetIndex += pLayout->createInfo.pBinding[i].descriptorCount;
         if (pLayout->createInfo.pBinding[i].binding == binding)
             break;
     }
@@ -1145,7 +1145,7 @@
             uint32_t typeIndex = 0, poolSizeCount = 0;
             for (j=0; j<pLayout->createInfo.bindingCount; ++j) {
                 typeIndex = static_cast<uint32_t>(pLayout->createInfo.pBinding[j].descriptorType);
-                poolSizeCount = pLayout->createInfo.pBinding[j].arraySize;
+                poolSizeCount = pLayout->createInfo.pBinding[j].descriptorCount;
                 if (poolSizeCount > pPoolNode->availableDescriptorTypeCount[typeIndex]) {
                     skipCall |= log_msg(dev_data->report_data, VK_DBG_REPORT_ERROR_BIT, VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, (uint64_t) pLayout->layout, 0, DRAWSTATE_DESCRIPTOR_POOL_EMPTY, "DS",
                         "Unable to allocate %u descriptors of type %s from pool %#" PRIxLEAST64 ". This pool only has %u descriptors of this type remaining.",
@@ -2139,11 +2139,11 @@
                     return VK_ERROR_VALIDATION_FAILED;
             }
 
-            totalCount += pCreateInfo->pBinding[i].arraySize;
+            totalCount += pCreateInfo->pBinding[i].descriptorCount;
             if (pCreateInfo->pBinding[i].pImmutableSamplers) {
                 VkSampler** ppIS = (VkSampler**)&pNewNode->createInfo.pBinding[i].pImmutableSamplers;
-                *ppIS = new VkSampler[pCreateInfo->pBinding[i].arraySize];
-                memcpy(*ppIS, pCreateInfo->pBinding[i].pImmutableSamplers, pCreateInfo->pBinding[i].arraySize*sizeof(VkSampler));
+                *ppIS = new VkSampler[pCreateInfo->pBinding[i].descriptorCount];
+                memcpy(*ppIS, pCreateInfo->pBinding[i].pImmutableSamplers, pCreateInfo->pBinding[i].descriptorCount*sizeof(VkSampler));
             }
         }
         if (totalCount > 0) {
@@ -2154,7 +2154,7 @@
             VkDescriptorType dType;
             for (uint32_t i=0; i<pCreateInfo->bindingCount; i++) {
                 dType = pCreateInfo->pBinding[i].descriptorType;
-                for (j = 0; j < pCreateInfo->pBinding[i].arraySize; j++) {
+                for (j = 0; j < pCreateInfo->pBinding[i].descriptorCount; j++) {
                     pNewNode->descriptorTypes[offset + j] = dType;
                     pNewNode->stageFlags[offset + j] = pCreateInfo->pBinding[i].stageFlags;
                     if ((dType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC) ||
@@ -2314,7 +2314,7 @@
             uint32_t typeIndex = 0, poolSizeCount = 0;
             for (uint32_t j=0; j<pLayout->createInfo.bindingCount; ++j) {
                 typeIndex = static_cast<uint32_t>(pLayout->createInfo.pBinding[j].descriptorType);
-                poolSizeCount = pLayout->createInfo.pBinding[j].arraySize;
+                poolSizeCount = pLayout->createInfo.pBinding[j].descriptorCount;
                 pPoolNode->availableDescriptorTypeCount[typeIndex] += poolSizeCount;
             }
         }
diff --git a/loader/loader.c b/loader/loader.c
index e8a1210..459f0e1 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -2966,7 +2966,7 @@
     char **filtered_extension_names = NULL;
     VkResult res;
 
-    assert(pCreateInfo->requestedQueueCount >= 1);
+    assert(pCreateInfo->queueCreateInfoCount >= 1);
 
     if (!icd)
         return VK_ERROR_INITIALIZATION_FAILED;
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 6d73c8b..a1dd22e 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -900,7 +900,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -1310,7 +1310,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -1411,7 +1411,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -1473,7 +1473,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -1589,7 +1589,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -1671,7 +1671,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -1927,7 +1927,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -2027,7 +2027,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -2152,7 +2152,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
 
     VkDescriptorSetLayoutCreateInfo ds_layout_ci = {};
@@ -2258,7 +2258,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
 
     VkDescriptorSetLayoutCreateInfo ds_layout_ci = {};
@@ -2363,7 +2363,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
 
     VkDescriptorSetLayoutCreateInfo ds_layout_ci = {};
@@ -2521,7 +2521,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
 
     VkDescriptorSetLayoutCreateInfo ds_layout_ci = {};
@@ -2962,7 +2962,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -3059,7 +3059,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -3157,7 +3157,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -3253,7 +3253,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -3350,7 +3350,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -3425,7 +3425,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -3526,12 +3526,12 @@
     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].descriptorCount = 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].descriptorCount = 1;
         dsl_binding[1].stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding[1].pImmutableSamplers = NULL;
 
@@ -3672,7 +3672,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
     dsl_binding.binding = 0;
     dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-    dsl_binding.arraySize = 1;
+    dsl_binding.descriptorCount = 1;
     dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
     dsl_binding.pImmutableSamplers = NULL;
 
@@ -3764,7 +3764,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -3870,7 +3870,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
@@ -5583,7 +5583,7 @@
     VkDescriptorSetLayoutBinding dsl_binding = {};
         dsl_binding.binding = 0;
         dsl_binding.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
-        dsl_binding.arraySize = 1;
+        dsl_binding.descriptorCount = 1;
         dsl_binding.stageFlags = VK_SHADER_STAGE_ALL;
         dsl_binding.pImmutableSamplers = NULL;
 
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index a19304e..8b147c2 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -503,7 +503,7 @@
     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].descriptorCount = m_type_counts[i].descriptorCount;
         bindings[i].stageFlags = VK_SHADER_STAGE_ALL;
         bindings[i].pImmutableSamplers = NULL;
     }
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index 191ae66..5c478a6 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -276,8 +276,8 @@
         qi.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
         qi.pNext = NULL;
         qi.queueFamilyIndex = i;
-        qi.queuePriorityCount = queue_props[i].queueCount;
-        std::vector<float> queue_priorities (qi.queuePriorityCount, 0.0);
+        qi.queueCount = queue_props[i].queueCount;
+        std::vector<float> queue_priorities (qi.queueCount, 0.0);
         qi.pQueuePriorities = queue_priorities.data();
         if (queue_props[i].queueFlags & VK_QUEUE_GRAPHICS_BIT) {
             graphics_queue_node_index_ = i;
@@ -288,8 +288,8 @@
     VkDeviceCreateInfo dev_info = {};
     dev_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
     dev_info.pNext = NULL;
-    dev_info.requestedQueueCount = queue_info.size();
-    dev_info.pRequestedQueues = queue_info.data();
+    dev_info.queueCreateInfoCount = queue_info.size();
+    dev_info.pQueueCreateInfos = queue_info.data();
     dev_info.enabledLayerNameCount = layers.size();
     dev_info.ppEnabledLayerNames = layers.data();
     dev_info.enabledExtensionNameCount = extensions.size();
