Update for VulkanSC-Docs 1.0.12 - updated
diff --git a/include/vulkan/vulkan_sc_core.h b/include/vulkan/vulkan_sc_core.h
index df4ed64..a4b577e 100644
--- a/include/vulkan/vulkan_sc_core.h
+++ b/include/vulkan/vulkan_sc_core.h
@@ -59,13 +59,13 @@
 #endif
 
 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
-    ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
+    ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
 
 // Vulkan 1.0 version number
 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
 
 // Version of this file
-#define VK_HEADER_VERSION 11
+#define VK_HEADER_VERSION 12
 
 // Vulkan SC variant number
 #define VKSC_API_VARIANT 1
@@ -73,9 +73,9 @@
 // Complete version of this file
 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, VK_HEADER_VERSION)
 
-#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29)
-#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU)
-#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
+#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
+#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
+#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
 #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
 typedef uint32_t VkBool32;
 typedef uint64_t VkDeviceAddress;
@@ -478,7 +478,7 @@
     VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV = 1000374001,
     VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV = 1000374002,
     VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV = 1000374003,
-    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_BUF_FEATURES_NV = 1000374004,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV = 1000374004,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
     VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
@@ -487,6 +487,7 @@
     VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV = 1000489001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV = 1000489002,
     VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV = 1000489003,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_BUF_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV,
     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkStructureType;
 
@@ -547,9 +548,7 @@
     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
-#ifdef VK_USE_PLATFORM_SCI
     VK_OBJECT_TYPE_SEMAPHORE_SCI_SYNC_POOL_NV = 1000489000,
-#endif
     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkObjectType;
 
diff --git a/include/vulkan/vulkan_sc_core.hpp b/include/vulkan/vulkan_sc_core.hpp
index 7d716d1..6425585 100644
--- a/include/vulkan/vulkan_sc_core.hpp
+++ b/include/vulkan/vulkan_sc_core.hpp
@@ -59,13 +59,13 @@
 #endif
 
 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
-    (((static_cast<uint32_t>(variant)) << 29) | ((static_cast<uint32_t>(major)) << 22) | ((static_cast<uint32_t>(minor)) << 12) | (static_cast<uint32_t>(patch)))
+    (((static_cast<uint32_t>(variant)) << 29U) | ((static_cast<uint32_t>(major)) << 22U) | ((static_cast<uint32_t>(minor)) << 12U) | (static_cast<uint32_t>(patch)))
 
 // Vulkan 1.0 version number
 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
 
 // Version of this file
-#define VK_HEADER_VERSION 11
+#define VK_HEADER_VERSION 12
 
 // Vulkan SC variant number
 #define VKSC_API_VARIANT 1
@@ -73,9 +73,9 @@
 // Complete version of this file
 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, VK_HEADER_VERSION)
 
-#define VK_API_VERSION_VARIANT(version) (static_cast<uint32_t>(version) >> 29)
-#define VK_API_VERSION_MAJOR(version) ((static_cast<uint32_t>(version) >> 22) & 0x7FU)
-#define VK_API_VERSION_MINOR(version) ((static_cast<uint32_t>(version) >> 12) & 0x3FFU)
+#define VK_API_VERSION_VARIANT(version) (static_cast<uint32_t>(version) >> 29U)
+#define VK_API_VERSION_MAJOR(version) ((static_cast<uint32_t>(version) >> 22U) & 0x7FU)
+#define VK_API_VERSION_MINOR(version) ((static_cast<uint32_t>(version) >> 12U) & 0x3FFU)
 #define VK_API_VERSION_PATCH(version) (static_cast<uint32_t>(version) & 0xFFFU)
 typedef uint32_t VkBool32;
 typedef uint64_t VkDeviceAddress;
@@ -478,7 +478,7 @@
     VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV = 1000374001,
     VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV = 1000374002,
     VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV = 1000374003,
-    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_BUF_FEATURES_NV = 1000374004,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV = 1000374004,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
     VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
@@ -487,6 +487,7 @@
     VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV = 1000489001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV = 1000489002,
     VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV = 1000489003,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_BUF_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV,
     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkStructureType;
 
@@ -547,9 +548,7 @@
     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
-#ifdef VK_USE_PLATFORM_SCI
     VK_OBJECT_TYPE_SEMAPHORE_SCI_SYNC_POOL_NV = 1000489000,
-#endif
     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkObjectType;
 
diff --git a/include/vulkan/vulkan_sci.h b/include/vulkan/vulkan_sci.h
index 73e48c4..ed66d86 100644
--- a/include/vulkan/vulkan_sci.h
+++ b/include/vulkan/vulkan_sci.h
@@ -137,7 +137,7 @@
 
 
 #define VK_NV_external_memory_sci_buf 1
-#define VK_NV_EXTERNAL_MEMORY_SCI_BUF_SPEC_VERSION 1
+#define VK_NV_EXTERNAL_MEMORY_SCI_BUF_SPEC_VERSION 2
 #define VK_NV_EXTERNAL_MEMORY_SCI_BUF_EXTENSION_NAME "VK_NV_external_memory_sci_buf"
 typedef struct VkExportMemorySciBufInfoNV {
     VkStructureType     sType;
@@ -165,12 +165,14 @@
     uint32_t           memoryTypeBits;
 } VkMemorySciBufPropertiesNV;
 
-typedef struct VkPhysicalDeviceExternalSciBufFeaturesNV {
+typedef struct VkPhysicalDeviceExternalMemorySciBufFeaturesNV {
     VkStructureType    sType;
-    const void*        pNext;
+    void*              pNext;
     VkBool32           sciBufImport;
     VkBool32           sciBufExport;
-} VkPhysicalDeviceExternalSciBufFeaturesNV;
+} VkPhysicalDeviceExternalMemorySciBufFeaturesNV;
+
+typedef VkPhysicalDeviceExternalMemorySciBufFeaturesNV VkPhysicalDeviceExternalSciBufFeaturesNV;
 
 typedef VkResult (VKAPI_PTR *PFN_vkGetMemorySciBufNV)(VkDevice device, const VkMemoryGetSciBufInfoNV* pGetSciBufInfo, NvSciBufObj* pHandle);
 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV)(VkPhysicalDevice physicalDevice, VkExternalMemoryHandleTypeFlagBits handleType, NvSciBufObj handle, VkMemorySciBufPropertiesNV* pMemorySciBufProperties);
@@ -227,7 +229,6 @@
 } VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV;
 
 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphoreSciSyncPoolNV)(VkDevice device, const VkSemaphoreSciSyncPoolCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphoreSciSyncPoolNV* pSemaphorePool);
-typedef void (VKAPI_PTR *PFN_vkDestroySemaphoreSciSyncPoolNV)(VkDevice device, VkSemaphoreSciSyncPoolNV semaphorePool, const VkAllocationCallbacks* pAllocator);
 
 #ifndef VK_NO_PROTOTYPES
 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphoreSciSyncPoolNV(
@@ -235,11 +236,6 @@
     const VkSemaphoreSciSyncPoolCreateInfoNV*   pCreateInfo,
     const VkAllocationCallbacks*                pAllocator,
     VkSemaphoreSciSyncPoolNV*                   pSemaphorePool);
-
-VKAPI_ATTR void VKAPI_CALL vkDestroySemaphoreSciSyncPoolNV(
-    VkDevice                                    device,
-    VkSemaphoreSciSyncPoolNV                    semaphorePool,
-    const VkAllocationCallbacks*                pAllocator);
 #endif
 
 #ifdef __cplusplus
diff --git a/registry/genvk.py b/registry/genvk.py
index a0f0f70..53c6d46 100755
--- a/registry/genvk.py
+++ b/registry/genvk.py
@@ -595,10 +595,10 @@
                 profile           = None,
                 versions          = featuresPat,
                 emitversions      = featuresPat,
-                defaultExtensions = defaultExtensions,
+                defaultExtensions = None,
                 addExtensions     = addExtensionsPat,
-                removeExtensions  = removeExtensionsPat,
-                emitExtensions    = emitExtensionsPat,
+                removeExtensions  = None,
+                emitExtensions    = None,
                 vulkanLayer       = vulkanLayer,
                 prefixText        = prefixStrings + vkPrefixStrings,
                 genFuncPointers   = True,
@@ -640,6 +640,11 @@
             alignFuncParam    = 48)
         ]
 
+    # keep any relevant platform extensions for the following generators
+    # (needed for e.g. the vulkan_sci extensions)
+    explicitRemoveExtensionsPat = makeREstring(
+        removeExtensions, None, strings_are_regex=True)
+
     # Raw C header file generator.
     genOpts['vulkan_json_gen.h'] = [
           JSONHeaderOutputGenerator,
@@ -653,7 +658,7 @@
             emitversions      = scVersions,
             defaultExtensions = 'vulkansc',
             addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
+            removeExtensions  = explicitRemoveExtensionsPat,
             emitExtensions    = emitExtensionsPat,
             prefixText        = prefixStrings + vkPrefixStrings,
             genFuncPointers   = True,
@@ -680,7 +685,7 @@
             emitversions      = scVersions,
             defaultExtensions = 'vulkansc',
             addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
+            removeExtensions  = explicitRemoveExtensionsPat,
             emitExtensions    = emitExtensionsPat,
             prefixText        = prefixStrings + vkPrefixStrings,
             genFuncPointers   = True,
@@ -706,7 +711,7 @@
             emitversions      = scVersions,
             defaultExtensions = 'vulkansc',
             addExtensions     = addExtensionsPat,
-            removeExtensions  = removeExtensionsPat,
+            removeExtensions  = explicitRemoveExtensionsPat,
             emitExtensions    = emitExtensionsPat,
             prefixText        = prefixStrings + vkPrefixStrings,
             genFuncPointers   = True,
diff --git a/registry/validusage.json b/registry/validusage.json
index d872d24..d3be3df 100644
--- a/registry/validusage.json
+++ b/registry/validusage.json
@@ -1,9 +1,9 @@
 {
   "version info": {
     "schema version": 2,
-    "api version": "1.0.11",
-    "comment": "from git branch: github-sc_main commit: 0caf3f1da2ce143a0f500d7f4083fe2899a31f30",
-    "date": "2022-09-13 03:42:50Z"
+    "api version": "1.0.12",
+    "comment": "from git branch: github-sc_main commit: 1e1d007aa441c1df2f2f35d7aef7dc9731fafd48",
+    "date": "2023-01-25 05:30:01Z"
   },
   "validation": {
     "vkGetInstanceProcAddr": {
@@ -136,7 +136,7 @@
       "(VKSC_VERSION_1_0)": [
         {
           "vuid": "VUID-VkApplicationInfo-apiVersion-05021",
-          "text": " If <code>apiVersion</code> is not <code>0</code>, then it <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#VKSC_API_VERSION_1_0\">VKSC_API_VERSION_1_0</a>"
+          "text": " If <code>apiVersion</code> is not <code>0</code> and its variant is <code>VKSC_API_VARIANT</code>, then it <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#VKSC_API_VERSION_1_0\">VKSC_API_VERSION_1_0</a>"
         }
       ],
       "(VK_EXT_application_parameters)": [
@@ -626,7 +626,7 @@
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pNext-pNext",
-          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkApplicationParametersEXT\">VkApplicationParametersEXT</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceObjectReservationCreateInfo\">VkDeviceObjectReservationCreateInfo</a>, <a href=\"#VkFaultCallbackInfo\">VkFaultCallbackInfo</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExternalSciBufFeaturesNV\">VkPhysicalDeviceExternalSciBufFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalSciSync2FeaturesNV\">VkPhysicalDeviceExternalSciSync2FeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalSciSyncFeaturesNV\">VkPhysicalDeviceExternalSciSyncFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeaturesEXT\">VkPhysicalDeviceImageRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesEXT\">VkPhysicalDeviceIndexTypeUint8FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesEXT\">VkPhysicalDeviceLineRasterizationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR\">VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeaturesEXT\">VkPhysicalDeviceSubgroupSizeControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2FeaturesKHR\">VkPhysicalDeviceSynchronization2FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT\">VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceVulkanSC10Features\">VkPhysicalDeviceVulkanSC10Features</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>"
+          "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkApplicationParametersEXT\">VkApplicationParametersEXT</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceObjectReservationCreateInfo\">VkDeviceObjectReservationCreateInfo</a>, <a href=\"#VkFaultCallbackInfo\">VkFaultCallbackInfo</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExternalMemorySciBufFeaturesNV\">VkPhysicalDeviceExternalMemorySciBufFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalSciSync2FeaturesNV\">VkPhysicalDeviceExternalSciSync2FeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalSciSyncFeaturesNV\">VkPhysicalDeviceExternalSciSyncFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeaturesEXT\">VkPhysicalDeviceImageRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesEXT\">VkPhysicalDeviceIndexTypeUint8FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesEXT\">VkPhysicalDeviceLineRasterizationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR\">VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeaturesEXT\">VkPhysicalDeviceSubgroupSizeControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2FeaturesKHR\">VkPhysicalDeviceSynchronization2FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT\">VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceVulkanSC10Features\">VkPhysicalDeviceVulkanSC10Features</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>"
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-sType-unique",
@@ -750,7 +750,7 @@
       "(VKSC_VERSION_1_0)": [
         {
           "vuid": "VUID-vkDestroyDevice-device-05137",
-          "text": " All child objects created on <code>device</code> except query pools, descriptor pools, command pools, and device memory <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>device</code>"
+          "text": " All child objects created on <code>device</code>, except those with no explicit <a href=\"#fundamentals-objectmodel-no-destroy\">free or destroy command</a>, <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>device</code>"
         }
       ],
       "!(VKSC_VERSION_1_0)": [
@@ -1885,10 +1885,6 @@
           "text": " If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid combinations of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
         },
         {
-          "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-requiredbitmask",
-          "text": " Each element of <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
-        },
-        {
           "vuid": "VUID-VkSubmitInfo-pCommandBuffers-parameter",
           "text": " If <code>commandBufferCount</code> is not <code>0</code>, <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handles"
         },
@@ -3397,7 +3393,7 @@
       ]
     },
     "vkDestroySemaphoreSciSyncPoolNV": {
-      "(VK_NV_external_sci_sync2)": [
+      "(VK_NV_external_sci_sync2)+!(VKSC_VERSION_1_0)": [
         {
           "vuid": "VUID-vkDestroySemaphoreSciSyncPoolNV-semaphorePool-05153",
           "text": " All submitted batches that refer to a semaphore created from <code>semaphorePool</code> <strong class=\"purple\">must</strong> have completed execution"
@@ -3405,22 +3401,6 @@
         {
           "vuid": "VUID-vkDestroySemaphoreSciSyncPoolNV-sciSyncSemaphore2-05154",
           "text": " The <a href=\"#features-sciSyncSemaphore2\"><a href=\"#VkPhysicalDeviceExternalSciSync2FeaturesNV\">VkPhysicalDeviceExternalSciSync2FeaturesNV</a>::<code>sciSyncSemaphore2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
-        },
-        {
-          "vuid": "VUID-vkDestroySemaphoreSciSyncPoolNV-device-parameter",
-          "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
-        },
-        {
-          "vuid": "VUID-vkDestroySemaphoreSciSyncPoolNV-semaphorePool-parameter",
-          "text": " If <code>semaphorePool</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphorePool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphoreSciSyncPoolNV\">VkSemaphoreSciSyncPoolNV</a> handle"
-        },
-        {
-          "vuid": "VUID-vkDestroySemaphoreSciSyncPoolNV-pAllocator-null",
-          "text": " <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
-        },
-        {
-          "vuid": "VUID-vkDestroySemaphoreSciSyncPoolNV-semaphorePool-parent",
-          "text": " If <code>semaphorePool</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
         }
       ]
     },
@@ -7161,11 +7141,11 @@
           "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <a href=\"#VkDeviceObjectReservationCreateInfo\">VkDeviceObjectReservationCreateInfo</a>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
         },
         {
-          "vuid": "VUID-vkCreateRenderPass-device-05089",
+          "vuid": "VUID-vkCreateRenderPass-subpasses-device-05089",
           "text": " The number of subpasses currently allocated from <code>device</code> across all slink:VkRenderPass objects plus pname:pCreateInfo-&gt;subpassCount <strong class=\"purple\">must</strong> be less than or equal to the total number of subpasses requested via <a href=\"#VkDeviceObjectReservationCreateInfo\">VkDeviceObjectReservationCreateInfo</a>::pname:subpassDescriptionRequestCount specified when <code>device</code> was created"
         },
         {
-          "vuid": "VUID-vkCreateRenderPass-device-05089",
+          "vuid": "VUID-vkCreateRenderPass-attachments-device-05089",
           "text": " The number of attachments currently allocated from <code>device</code> across all slink:VkRenderPass objects plus pname:pCreateInfo-&gt;attachmentCount <strong class=\"purple\">must</strong> be less than or equal to the total number of attachments requested via <a href=\"#VkDeviceObjectReservationCreateInfo\">VkDeviceObjectReservationCreateInfo</a>::pname:attachmentDescriptionRequestCount specified when <code>device</code> was created"
         }
       ],
@@ -7851,11 +7831,11 @@
           "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <a href=\"#VkDeviceObjectReservationCreateInfo\">VkDeviceObjectReservationCreateInfo</a>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
         },
         {
-          "vuid": "VUID-vkCreateRenderPass2-device-05089",
+          "vuid": "VUID-vkCreateRenderPass2-subpasses-device-05089",
           "text": " The number of subpasses currently allocated from <code>device</code> across all slink:VkRenderPass objects plus pname:pCreateInfo-&gt;subpassCount <strong class=\"purple\">must</strong> be less than or equal to the total number of subpasses requested via <a href=\"#VkDeviceObjectReservationCreateInfo\">VkDeviceObjectReservationCreateInfo</a>::pname:subpassDescriptionRequestCount specified when <code>device</code> was created"
         },
         {
-          "vuid": "VUID-vkCreateRenderPass2-device-05089",
+          "vuid": "VUID-vkCreateRenderPass2-attachments-device-05089",
           "text": " The number of attachments currently allocated from <code>device</code> across all slink:VkRenderPass objects plus pname:pCreateInfo-&gt;attachmentCount <strong class=\"purple\">must</strong> be less than or equal to the total number of attachments requested via <a href=\"#VkDeviceObjectReservationCreateInfo\">VkDeviceObjectReservationCreateInfo</a>::pname:attachmentDescriptionRequestCount specified when <code>device</code> was created"
         }
       ],
@@ -12502,11 +12482,11 @@
       "(VK_NV_external_memory_sci_buf)": [
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-05097",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMemorySciBufInfoNV\">VkExportMemorySciBufInfoNV</a> structure, <a href=\"#VkPhysicalDeviceExternalSciBufFeaturesNV\">VkPhysicalDeviceExternalSciBufFeaturesNV</a>::<code>sciBufExport</code> <strong class=\"purple\">must</strong> be enabled"
+          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMemorySciBufInfoNV\">VkExportMemorySciBufInfoNV</a> structure, <a href=\"#VkPhysicalDeviceExternalMemorySciBufFeaturesNV\">VkPhysicalDeviceExternalMemorySciBufFeaturesNV</a>::<code>sciBufExport</code> <strong class=\"purple\">must</strong> be enabled"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-pNext-05098",
-          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImportMemorySciBufInfoNV\">VkImportMemorySciBufInfoNV</a> structure, <a href=\"#VkPhysicalDeviceExternalSciBufFeaturesNV\">VkPhysicalDeviceExternalSciBufFeaturesNV</a>::<code>sciBufImport</code> <strong class=\"purple\">must</strong> be enabled"
+          "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImportMemorySciBufInfoNV\">VkImportMemorySciBufInfoNV</a> structure, <a href=\"#VkPhysicalDeviceExternalMemorySciBufFeaturesNV\">VkPhysicalDeviceExternalMemorySciBufFeaturesNV</a>::<code>sciBufImport</code> <strong class=\"purple\">must</strong> be enabled"
         },
         {
           "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-05099",
@@ -13134,7 +13114,7 @@
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV-sciBufImport-05105",
-          "text": " <a href=\"#VkPhysicalDeviceExternalSciBufFeaturesNV\">VkPhysicalDeviceExternalSciBufFeaturesNV</a>::<code>sciBufImport</code> <strong class=\"purple\">must</strong> be enabled"
+          "text": " <a href=\"#VkPhysicalDeviceExternalMemorySciBufFeaturesNV\">VkPhysicalDeviceExternalMemorySciBufFeaturesNV</a>::<code>sciBufImport</code> <strong class=\"purple\">must</strong> be enabled"
         },
         {
           "vuid": "VUID-vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV-physicalDevice-parameter",
@@ -17033,7 +17013,7 @@
           "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <a href=\"#VkDeviceObjectReservationCreateInfo\">VkDeviceObjectReservationCreateInfo</a>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
         },
         {
-          "vuid": "VUID-vkCreateDescriptorSetLayout-device-05089",
+          "vuid": "VUID-vkCreateDescriptorSetLayout-layoutbindings-device-05089",
           "text": " The number of descriptor set layout bindings currently allocated from <code>device</code> across all slink:VkDescriptorSetLayout objects plus pname:pCreateInfo-&gt;bindingCount <strong class=\"purple\">must</strong> be less than or equal to the total number of descriptor set layout bindings requested via <a href=\"#VkDeviceObjectReservationCreateInfo\">VkDeviceObjectReservationCreateInfo</a>::pname:descriptorSetLayoutBindingRequestCount specified when <code>device</code> was created"
         }
       ],
@@ -39412,11 +39392,11 @@
         }
       ]
     },
-    "VkPhysicalDeviceExternalSciBufFeaturesNV": {
+    "VkPhysicalDeviceExternalMemorySciBufFeaturesNV": {
       "(VK_NV_external_memory_sci_buf)": [
         {
-          "vuid": "VUID-VkPhysicalDeviceExternalSciBufFeaturesNV-sType-sType",
-          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_BUF_FEATURES_NV</code>"
+          "vuid": "VUID-VkPhysicalDeviceExternalMemorySciBufFeaturesNV-sType-sType",
+          "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV</code>"
         }
       ]
     },
@@ -40745,14 +40725,6 @@
         {
           "vuid": "VUID-VkFaultData-sType-sType",
           "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FAULT_DATA</code>"
-        },
-        {
-          "vuid": "VUID-VkFaultData-faultLevel-parameter",
-          "text": " <code>faultLevel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFaultLevel\">VkFaultLevel</a> value"
-        },
-        {
-          "vuid": "VUID-VkFaultData-faultType-parameter",
-          "text": " <code>faultType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFaultType\">VkFaultType</a> value"
         }
       ]
     },
diff --git a/registry/vk.xml b/registry/vk.xml
index 3c3a199..000f595 100644
--- a/registry/vk.xml
+++ b/registry/vk.xml
@@ -139,19 +139,19 @@
 
         <type category="define">// DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
 #define <name>VK_MAKE_VERSION</name>(major, minor, patch) \
-    ((((uint32_t)(major)) &lt;&lt; 22) | (((uint32_t)(minor)) &lt;&lt; 12) | ((uint32_t)(patch)))</type>
+    ((((uint32_t)(major)) &lt;&lt; 22U) | (((uint32_t)(minor)) &lt;&lt; 12U) | ((uint32_t)(patch)))</type>
         <type category="define">// DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
-#define <name>VK_VERSION_MAJOR</name>(version) ((uint32_t)(version) &gt;&gt; 22)</type>
+#define <name>VK_VERSION_MAJOR</name>(version) ((uint32_t)(version) &gt;&gt; 22U)</type>
         <type category="define">// DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
-#define <name>VK_VERSION_MINOR</name>(version) (((uint32_t)(version) &gt;&gt; 12) &amp; 0x3FFU)</type>
+#define <name>VK_VERSION_MINOR</name>(version) (((uint32_t)(version) &gt;&gt; 12U) &amp; 0x3FFU)</type>
         <type category="define">// DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
 #define <name>VK_VERSION_PATCH</name>(version) ((uint32_t)(version) &amp; 0xFFFU)</type>
 
         <type category="define">#define <name>VK_MAKE_API_VERSION</name>(variant, major, minor, patch) \
-    ((((uint32_t)(variant)) &lt;&lt; 29) | (((uint32_t)(major)) &lt;&lt; 22) | (((uint32_t)(minor)) &lt;&lt; 12) | ((uint32_t)(patch)))</type>
-        <type category="define">#define <name>VK_API_VERSION_VARIANT</name>(version) ((uint32_t)(version) &gt;&gt; 29)</type>
-        <type category="define">#define <name>VK_API_VERSION_MAJOR</name>(version) (((uint32_t)(version) &gt;&gt; 22) &amp; 0x7FU)</type>
-        <type category="define">#define <name>VK_API_VERSION_MINOR</name>(version) (((uint32_t)(version) &gt;&gt; 12) &amp; 0x3FFU)</type>
+    ((((uint32_t)(variant)) &lt;&lt; 29U) | (((uint32_t)(major)) &lt;&lt; 22U) | (((uint32_t)(minor)) &lt;&lt; 12U) | ((uint32_t)(patch)))</type>
+        <type category="define">#define <name>VK_API_VERSION_VARIANT</name>(version) ((uint32_t)(version) &gt;&gt; 29U)</type>
+        <type category="define">#define <name>VK_API_VERSION_MAJOR</name>(version) (((uint32_t)(version) &gt;&gt; 22U) &amp; 0x7FU)</type>
+        <type category="define">#define <name>VK_API_VERSION_MINOR</name>(version) (((uint32_t)(version) &gt;&gt; 12U) &amp; 0x3FFU)</type>
         <type category="define">#define <name>VK_API_VERSION_PATCH</name>(version) ((uint32_t)(version) &amp; 0xFFFU)</type>
 
         <type category="define" requires="VK_HEADER_VERSION">// Vulkan SC variant number
@@ -174,7 +174,7 @@
 #define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 2, VK_HEADER_VERSION)</type>
 
         <type api="vulkansc" category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 11</type>
+#define <name>VK_HEADER_VERSION</name> 12</type>
         <type api="vulkansc" category="define" requires="VKSC_API_VARIANT">// Complete version of this file
 #define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, VK_HEADER_VERSION)</type>
 
@@ -1865,7 +1865,7 @@
             <member optional="true">const <type>void</type>* <name>pNext</name></member>
             <member optional="true"><type>uint32_t</type>       <name>waitSemaphoreCount</name></member>
             <member len="waitSemaphoreCount">const <type>VkSemaphore</type>*     <name>pWaitSemaphores</name></member>
-            <member len="waitSemaphoreCount">const <type>VkPipelineStageFlags</type>*           <name>pWaitDstStageMask</name></member>
+            <member optional="false,true" len="waitSemaphoreCount">const <type>VkPipelineStageFlags</type>*           <name>pWaitDstStageMask</name></member>
             <member optional="true"><type>uint32_t</type>       <name>commandBufferCount</name></member>
             <member len="commandBufferCount">const <type>VkCommandBuffer</type>*     <name>pCommandBuffers</name></member>
             <member optional="true"><type>uint32_t</type>       <name>signalSemaphoreCount</name></member>
@@ -2164,12 +2164,13 @@
             <member optional="true">const <type>void</type>*            <name>pNext</name></member>
             <member><type>uint32_t</type>                               <name>memoryTypeBits</name></member>
         </type>
-        <type category="struct" name="VkPhysicalDeviceExternalSciBufFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
-            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_BUF_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
-            <member optional="true">const <type>void</type>*                 <name>pNext</name></member>
+        <type category="struct" name="VkPhysicalDeviceExternalMemorySciBufFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+            <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
+            <member optional="true"><type>void</type>*                       <name>pNext</name></member>
             <member><type>VkBool32</type>                                    <name>sciBufImport</name></member>
             <member><type>VkBool32</type>                                    <name>sciBufExport</name></member>
         </type>
+        <type category="struct" name="VkPhysicalDeviceExternalSciBufFeaturesNV"  alias="VkPhysicalDeviceExternalMemorySciBufFeaturesNV"/>
         <type category="struct" name="VkWin32KeyedMutexAcquireReleaseInfoNV" structextends="VkSubmitInfo,VkSubmitInfo2KHR">
             <member values="VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
             <member optional="true">const <type>void</type>*                      <name>pNext</name></member>
@@ -5177,7 +5178,7 @@
             <member optional="true"><type>void</type>*        <name>pNext</name></member>
             <member><type>VkBool32</type>                           <name>deviceCoherentMemory</name></member>
         </type>
-        <type category="struct" name="VkFaultData">
+        <type category="struct" name="VkFaultData" returnedonly="true">
             <member values="VK_STRUCTURE_TYPE_FAULT_DATA"><type>VkStructureType</type> <name>sType</name></member>
             <member noautovalidity="true" optional="true"><type>void</type>* <name>pNext</name></member>
             <member><type>VkFaultLevel</type>                    <name>faultLevel</name></member>
@@ -8645,12 +8646,19 @@
             <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
             <param optional="true" len="pPropertyCount"><type>VkExtensionProperties</type>* <name>pProperties</name></param>
         </command>
-        <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+        <command api="vulkan" successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
             <proto><type>VkResult</type> <name>vkEnumerateDeviceLayerProperties</name></proto>
             <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
             <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
             <param optional="true" len="pPropertyCount"><type>VkLayerProperties</type>* <name>pProperties</name></param>
         </command>
+        <command api="vulkansc" successcodes="VK_SUCCESS">
+            <proto><type>VkResult</type> <name>vkEnumerateDeviceLayerProperties</name></proto>
+            <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
+            <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
+            <param optional="true" len="pPropertyCount"><type>VkLayerProperties</type>* <name>pProperties</name></param>
+        </command>
+
         <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_LAYER_NOT_PRESENT">
             <proto><type>VkResult</type> <name>vkEnumerateDeviceExtensionProperties</name></proto>
             <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@@ -12931,6 +12939,8 @@
             <enum name="VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"/>
             <type name="VkDeviceGroupBindSparseInfo"/>
             <enum name="VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"/>
+
+            <command name="vkDestroySemaphoreSciSyncPoolNV"/>
         </remove>
     </feature>
 
@@ -17791,18 +17801,20 @@
         </extension>
         <extension name="VK_NV_external_memory_sci_buf" number="375" requiresCore="1.1" platform="sci" type="device" author="NV" contact="Kai Zhang @kazhang" supported="vulkansc">
             <require>
-                <enum value="1"                                         name="VK_NV_EXTERNAL_MEMORY_SCI_BUF_SPEC_VERSION"/>
+                <enum value="2"                                         name="VK_NV_EXTERNAL_MEMORY_SCI_BUF_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_external_memory_sci_buf&quot;" name="VK_NV_EXTERNAL_MEMORY_SCI_BUF_EXTENSION_NAME"/>
                 <enum offset="0" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_IMPORT_MEMORY_SCI_BUF_INFO_NV"/>
                 <enum offset="1" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV"/>
                 <enum offset="2" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV"/>
                 <enum offset="3" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV"/>
-                <enum offset="4" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_BUF_FEATURES_NV"/>
+                <enum offset="4" extends="VkStructureType"              name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV"/>
+                <enum extends="VkStructureType"                         name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_BUF_FEATURES_NV" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV"/>
                 <enum bitpos="13" extends="VkExternalMemoryHandleTypeFlagBits"  name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV"/>
                 <type name="VkExportMemorySciBufInfoNV"/>
                 <type name="VkImportMemorySciBufInfoNV"/>
                 <type name="VkMemoryGetSciBufInfoNV"/>
                 <type name="VkMemorySciBufPropertiesNV"/>
+                <type name="VkPhysicalDeviceExternalMemorySciBufFeaturesNV"/>
                 <type name="VkPhysicalDeviceExternalSciBufFeaturesNV"/>
                 <command name="vkGetMemorySciBufNV"/>
                 <command name="vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV"/>
@@ -18302,7 +18314,7 @@
             <require>
                 <enum value="1"                                         name="VK_NV_EXTERNAL_SCI_SYNC_2_SPEC_VERSION"/>
                 <enum value="&quot;VK_NV_external_sci_sync2&quot;"      name="VK_NV_EXTERNAL_SCI_SYNC_2_EXTENSION_NAME"/>
-                <enum offset="0"  extends="VkObjectType"                name="VK_OBJECT_TYPE_SEMAPHORE_SCI_SYNC_POOL_NV"   comment="VkSemaphoreSciSyncPoolNV" protect="VK_USE_PLATFORM_SCI"/>
+                <enum offset="0"  extends="VkObjectType"                name="VK_OBJECT_TYPE_SEMAPHORE_SCI_SYNC_POOL_NV"   comment="VkSemaphoreSciSyncPoolNV"/>
                 <enum offset="0"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV"/>
                 <enum offset="1"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV"/>
                 <enum offset="2"  extends="VkStructureType"             name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV"/>