vulkan: Update from version 0.221.0 to 1.0!

Change-Id: I9453454cc47046ad9f64a72a812a4e5da694c223
(cherry picked from commit 3fc8ed14c5d6890348400bf3e6dab2870b3fbbc5)
diff --git a/vulkan/api/vulkan.api b/vulkan/api/vulkan.api
index 25ed560..b74062f 100644
--- a/vulkan/api/vulkan.api
+++ b/vulkan/api/vulkan.api
@@ -26,8 +26,8 @@
 ///////////////
 
 // API version (major.minor.patch)
-define VERSION_MAJOR 0
-define VERSION_MINOR 221
+define VERSION_MAJOR 1
+define VERSION_MINOR 0
 define VERSION_PATCH 0
 
 // API limits
@@ -252,7 +252,6 @@
 }
 
 enum VkSamplerMipmapMode {
-    VK_SAMPLER_MIPMAP_MODE_BASE                             = 0x00000000,   /// Always choose base level
     VK_SAMPLER_MIPMAP_MODE_NEAREST                          = 0x00000001,   /// Choose nearest mip level
     VK_SAMPLER_MIPMAP_MODE_LINEAR                           = 0x00000002,   /// Linear filter between mip levels
 }
@@ -604,13 +603,14 @@
     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                   = 38,
     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                  = 39,
     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO              = 40,
-    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                 = 41,
-    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                    = 42,
-    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                     = 43,
-    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                      = 44,
-    VK_STRUCTURE_TYPE_MEMORY_BARRIER                            = 45,
-    VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO               = 46,
-    VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                 = 47,
+    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO           = 41,
+    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                 = 42,
+    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                    = 43,
+    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                     = 44,
+    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                      = 45,
+    VK_STRUCTURE_TYPE_MEMORY_BARRIER                            = 46,
+    VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO               = 47,
+    VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                 = 48,
 
     //@extension("VK_KHR_swapchain")
     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                 = 1000001000,
@@ -1266,14 +1266,14 @@
 }
 
 class VkExtent2D {
-    s32                                         width
-    s32                                         height
+    u32                                         width
+    u32                                         height
 }
 
 class VkExtent3D {
-    s32                                         width
-    s32                                         height
-    s32                                         depth
+    u32                                         width
+    u32                                         height
+    u32                                         depth
 }
 
 class VkViewport {
@@ -1373,9 +1373,9 @@
     VkDeviceCreateFlags                         flags
     u32                                         queueCreateInfoCount
     const VkDeviceQueueCreateInfo*              pQueueCreateInfos
-    u32                                         enabledLayerNameCount
+    u32                                         enabledLayerCount
     const char* const*                          ppEnabledLayerNames        /// Ordered list of layer names to be enabled
-    u32                                         enabledExtensionNameCount
+    u32                                         enabledExtensionCount
     const char* const*                          ppEnabledExtensionNames
     const VkPhysicalDeviceFeatures*             pEnabledFeatures
 }
@@ -1385,9 +1385,9 @@
     const void*                                 pNext                      /// Pointer to next structure
     VkInstanceCreateFlags                       flags
     const VkApplicationInfo*                    pApplicationInfo
-    u32                                         enabledLayerNameCount
+    u32                                         enabledLayerCount
     const char* const*                          ppEnabledLayerNames        /// Ordered list of layer names to be enabled
-    u32                                         enabledExtensionNameCount
+    u32                                         enabledExtensionCount
     const char* const*                          ppEnabledExtensionNames    /// Extension names to be enabled
 }
 
@@ -1678,11 +1678,9 @@
 
 class VkImageBlit {
     VkImageSubresourceLayers                    srcSubresource
-    VkOffset3D                                  srcOffset              /// Specified in pixels for both compressed and uncompressed images
-    VkExtent3D                                  srcExtent              /// Specified in pixels for both compressed and uncompressed images
+    VkOffset3D[2]                               srcOffsets
     VkImageSubresourceLayers                    dstSubresource
-    VkOffset3D                                  dstOffset              /// Specified in pixels for both compressed and uncompressed images
-    VkExtent3D                                  dstExtent              /// Specified in pixels for both compressed and uncompressed images
+    VkOffset3D[2]                               dstOffsets
 }
 
 class VkBufferImageCopy {
@@ -1952,7 +1950,7 @@
     VkStructureType                             sType                   /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
     const void*                                 pNext                   /// Pointer to next structure
     VkPipelineLayoutCreateFlags                 flags
-    u32                                         setLayoutCount          /// Number of descriptor sets interfaced by the pipeline
+    u32                                         descriptorSetCount      /// Number of descriptor sets interfaced by the pipeline
     const VkDescriptorSetLayout*                pSetLayouts             /// Array of <setCount> number of descriptor set layout objects defining the layout of the
     u32                                         pushConstantRangeCount  /// Number of push-constant ranges used by the pipeline
     const VkPushConstantRange*                  pPushConstantRanges     /// Array of pushConstantRangeCount number of ranges used by various shader stages
@@ -1991,13 +1989,12 @@
     const void*                                 pNext      /// Pointer to next structure
     VkCommandPool                               commandPool
     VkCommandBufferLevel                        level
-    u32                                         bufferCount
+    u32                                         commandBufferCount
 }
 
-class VkCommandBufferBeginInfo {
-    VkStructureType                             sType       /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
+class VkCommandBufferInheritanceInfo {
+    VkStructureType                             sType       /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
     const void*                                 pNext       /// Pointer to next structure
-    VkCommandBufferUsageFlags                   flags       /// Command buffer usage flags
     VkRenderPass                                renderPass  /// Render pass for secondary command buffers
     u32                                         subpass
     VkFramebuffer                               framebuffer /// Framebuffer for secondary command buffers
@@ -2006,6 +2003,13 @@
     VkQueryPipelineStatisticFlags               pipelineStatistics
 }
 
+class VkCommandBufferBeginInfo {
+    VkStructureType                             sType       /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
+    const void*                                 pNext       /// Pointer to next structure
+    VkCommandBufferUsageFlags                   flags       /// Command buffer usage flags
+    const VkCommandBufferInheritanceInfo*       pInheritanceInfo
+}
+
 class VkRenderPassBeginInfo {
     VkStructureType                             sType       /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
     const void*                                 pNext       /// Pointer to next structure
@@ -2069,7 +2073,7 @@
     const VkAttachmentReference*                pResolveAttachments
     const VkAttachmentReference*                pDepthStencilAttachment
     u32                                         preserveAttachmentCount
-    const VkAttachmentReference*                pPreserveAttachments
+    const u32*                                  pPreserveAttachments
 }
 
 class VkSubpassDependency {
@@ -2313,7 +2317,7 @@
     const void*                                 pNext              /// Pointer to next structure
     VkQueryPoolCreateFlags                      flags
     VkQueryType                                 queryType
-    u32                                         entryCount
+    u32                                         queryCount
     VkQueryPipelineStatisticFlags               pipelineStatistics /// Optional
 }
 
@@ -2595,8 +2599,8 @@
     pInstance[0] = instance
     State.Instances[instance] = new!InstanceObject()
 
-    layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerNameCount]
-    extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionNameCount]
+    layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
+    extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
 
     return ?
 }
@@ -3959,7 +3963,7 @@
         VkCommandBuffer*                            pCommandBuffers) {
     assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
 
-    count := pAllocateInfo[0].bufferCount
+    count := pAllocateInfo[0].commandBufferCount
     commandBuffers := pCommandBuffers[0:count]
     for i in (0 .. count) {
         commandBuffer := ?
@@ -4548,7 +4552,11 @@
         VkPipelineStageFlags                        srcStageMask,
         VkPipelineStageFlags                        dstStageMask,
         u32                                         memoryBarrierCount,
-        const void* const*                          ppMemoryBarriers) {
+        const VkMemoryBarrier*                      pMemoryBarriers,
+        u32                                         bufferMemoryBarrierCount,
+        const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
+        u32                                         imageMemoryBarrierCount,
+        const VkImageMemoryBarrier*                 pImageMemoryBarriers) {
     commandBufferObject := GetCommandBuffer(commandBuffer)
 
     events := pEvents[0:eventCount]
@@ -4558,23 +4566,21 @@
         assert(commandBufferObject.device == eventObject.device)
     }
 
-    pMemoryBarriers := ppMemoryBarriers[0:memoryBarrierCount]
+    memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
     for i in (0 .. memoryBarrierCount) {
-        switch as!VkMemoryBarrier const*(pMemoryBarriers[i])[0].sType {
-            case VK_STRUCTURE_TYPE_MEMORY_BARRIER: {
-                memoryBarrier := as!VkMemoryBarrier const*(pMemoryBarriers[i])[0]
-            }
-            case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: {
-                imageMemoryBarrier := as!VkImageMemoryBarrier const*(pMemoryBarriers[i])[0]
-                imageObject := GetImage(imageMemoryBarrier.image)
-                assert(imageObject.device == commandBufferObject.device)
-            }
-            case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: {
-                bufferMemoryBarrier := as!VkBufferMemoryBarrier const*(pMemoryBarriers[i])[0]
-                bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
-                assert(bufferObject.device == commandBufferObject.device)
-            }
-        }
+        memoryBarrier := memoryBarriers[i]
+    }
+    bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
+    for i in (0 .. bufferMemoryBarrierCount) {
+        bufferMemoryBarrier := bufferMemoryBarriers[i]
+        bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
+        assert(bufferObject.device == commandBufferObject.device)
+    }
+    imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
+    for i in (0 .. imageMemoryBarrierCount) {
+        imageMemoryBarrier := imageMemoryBarriers[i]
+        imageObject := GetImage(imageMemoryBarrier.image)
+        assert(imageObject.device == commandBufferObject.device)
     }
 }
 
@@ -4585,26 +4591,28 @@
         VkPipelineStageFlags                        dstStageMask,
         VkDependencyFlags                           dependencyFlags,
         u32                                         memoryBarrierCount,
-        const void* const*                          ppMemoryBarriers) {
+        const VkMemoryBarrier*                      pMemoryBarriers,
+        u32                                         bufferMemoryBarrierCount,
+        const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
+        u32                                         imageMemoryBarrierCount,
+        const VkImageMemoryBarrier*                 pImageMemoryBarriers) {
     commandBufferObject := GetCommandBuffer(commandBuffer)
 
-    pMemoryBarriers := ppMemoryBarriers[0:memoryBarrierCount]
+    memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
     for i in (0 .. memoryBarrierCount) {
-        switch as!VkMemoryBarrier const*(pMemoryBarriers[i])[0].sType {
-            case VK_STRUCTURE_TYPE_MEMORY_BARRIER: {
-                memoryBarrier := as!VkMemoryBarrier const*(pMemoryBarriers[i])[0]
-            }
-            case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: {
-                imageMemoryBarrier := as!VkImageMemoryBarrier const*(pMemoryBarriers[i])[0]
-                imageObject := GetImage(imageMemoryBarrier.image)
-                assert(imageObject.device == commandBufferObject.device)
-            }
-            case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: {
-                bufferMemoryBarrier := as!VkBufferMemoryBarrier const*(pMemoryBarriers[i])[0]
-                bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
-                assert(bufferObject.device == commandBufferObject.device)
-            }
-        }
+        memoryBarrier := memoryBarriers[i]
+    }
+    bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
+    for i in (0 .. bufferMemoryBarrierCount) {
+        bufferMemoryBarrier := bufferMemoryBarriers[i]
+        bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
+        assert(bufferObject.device == commandBufferObject.device)
+    }
+    imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
+    for i in (0 .. imageMemoryBarrierCount) {
+        imageMemoryBarrier := imageMemoryBarriers[i]
+        imageObject := GetImage(imageMemoryBarrier.image)
+        assert(imageObject.device == commandBufferObject.device)
     }
 }
 
@@ -4612,7 +4620,7 @@
 cmd void vkCmdBeginQuery(
         VkCommandBuffer                             commandBuffer,
         VkQueryPool                                 queryPool,
-        u32                                         entry,
+        u32                                         query,
         VkQueryControlFlags                         flags) {
     commandBufferObject := GetCommandBuffer(commandBuffer)
     queryPoolObject := GetQueryPool(queryPool)
@@ -4623,7 +4631,7 @@
 cmd void vkCmdEndQuery(
         VkCommandBuffer                             commandBuffer,
         VkQueryPool                                 queryPool,
-        u32                                         entry) {
+        u32                                         query) {
     commandBufferObject := GetCommandBuffer(commandBuffer)
     queryPoolObject := GetQueryPool(queryPool)
     assert(commandBufferObject.device == queryPoolObject.device)
@@ -4645,7 +4653,7 @@
         VkCommandBuffer                             commandBuffer,
         VkPipelineStageFlagBits                     pipelineStage,
         VkQueryPool                                 queryPool,
-        u32                                         entry) {
+        u32                                         query) {
     commandBufferObject := GetCommandBuffer(commandBuffer)
     queryPoolObject := GetQueryPool(queryPool)
     assert(commandBufferObject.device == queryPoolObject.device)
@@ -4710,12 +4718,12 @@
 
 cmd void vkCmdExecuteCommands(
         VkCommandBuffer                             commandBuffer,
-        u32                                         commandBuffersCount,
+        u32                                         commandBufferCount,
         const VkCommandBuffer*                      pCommandBuffers) {
     commandBufferObject := GetCommandBuffer(commandBuffer)
 
-    commandBuffers := pCommandBuffers[0:commandBuffersCount]
-    for i in (0 .. commandBuffersCount) {
+    commandBuffers := pCommandBuffers[0:commandBufferCount]
+    for i in (0 .. commandBufferCount) {
         secondaryCommandBuffer := commandBuffers[i]
         secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
         assert(commandBufferObject.device == secondaryCommandBufferObject.device)
@@ -4897,6 +4905,7 @@
 @extension("VK_KHR_display")
 cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
         VkPhysicalDevice                        physicalDevice,
+        u32                                     planeIndex,
         u32*                                    pDisplayCount,
         VkDisplayKHR*                           pDisplays) {
     physicalDeviceObject := GetPhysicalDevice(physicalDevice)