vulkan: Update from version 0.174.0 to 0.177.0

Change-Id: I4b837c0bdb4fd6120688e8389ab8591178d370fb
(cherry picked from commit 5804cbcdb3c6444c7bb6904578ed339d9339de83)
diff --git a/vulkan/api/templates/vulkan_h.tmpl b/vulkan/api/templates/vulkan_h.tmpl
index 2dee541..c55107d 100644
--- a/vulkan/api/templates/vulkan_h.tmpl
+++ b/vulkan/api/templates/vulkan_h.tmpl
@@ -53,7 +53,7 @@
 #define VK_API_VERSION \
     VK_MAKE_VERSION({{Global "VERSION_MAJOR"}}, {{Global "VERSION_MINOR"}}, {{Global "VERSION_PATCH"}})

-#if defined(__cplusplus) && (_MSC_VER >= 1800 || __cplusplus >= 201103L)
+#if defined(__cplusplus) && ((defined(_MSC_VER) && _MSC_VER >= 1800 || __cplusplus >= 201103L)
     #define VK_NULL_HANDLE nullptr
 #else
     #define VK_NULL_HANDLE 0
diff --git a/vulkan/api/vulkan.api b/vulkan/api/vulkan.api
index 7ab0e86..2b499fd 100644
--- a/vulkan/api/vulkan.api
+++ b/vulkan/api/vulkan.api
@@ -27,7 +27,7 @@
 
 // API version (major.minor.patch)
 define VERSION_MAJOR 0
-define VERSION_MINOR 174
+define VERSION_MINOR 177
 define VERSION_PATCH 0
 
 // API limits
@@ -695,8 +695,7 @@
     VK_MEMORY_PROPERTY_HOST_NON_COHERENT_BIT                = 0x00000002,    /// Memory may not have i/o coherency so vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges must be used flush/invalidate host cache
                                                                              /// vkInvalidateMappedMemoryRanges must be used flush/invalidate host cache
     VK_MEMORY_PROPERTY_HOST_UNCACHED_BIT                    = 0x00000004,    /// Memory should not be cached by the host
-    VK_MEMORY_PROPERTY_HOST_WRITE_COMBINED_BIT              = 0x00000008,    /// Memory should support host write combining
-    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT                 = 0x00000010,    /// Memory may be allocated by the driver when it is required
+    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT                 = 0x00000008,    /// Memory may be allocated by the driver when it is required
 }
 
 /// Memory heap flags
@@ -932,7 +931,6 @@
 
 /// Subpass description flags
 bitfield VkSubpassDescriptionFlags {
-    VK_SUBPASS_DESCRIPTION_NO_OVERDRAW_BIT                  = 0x00000001,
 }
 
 /// Command pool creation flags
@@ -1108,7 +1106,7 @@
 class VkQueueFamilyProperties {
     VkQueueFlags                                queueFlags                 /// Queue flags
     u32                                         queueCount
-    VkBool32                                    supportsTimestamps
+    u32                                         timestampValidBits
 }
 
 class VkPhysicalDeviceMemoryProperties {
@@ -1522,6 +1520,8 @@
     VkBool32                                    sampleShadingEnable        /// optional (GL45)
     f32                                         minSampleShading           /// optional (GL45)
     const VkSampleMask*                         pSampleMask
+    VkBool32                                    alphaToCoverageEnable
+    VkBool32                                    alphaToOneEnable
 }
 
 class VkPipelineColorBlendAttachmentState {
@@ -1538,8 +1538,6 @@
 class VkPipelineColorBlendStateCreateInfo {
     VkStructureType                             sType      /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
     const void*                                 pNext      /// Pointer to next structure
-    VkBool32                                    alphaToCoverageEnable
-    VkBool32                                    alphaToOneEnable
     VkBool32                                    logicOpEnable
     VkLogicOp                                   logicOp
     u32                                         attachmentCount    /// # of pAttachments