diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp
index 92b2b5f..e159da0 100644
--- a/include/vulkan/vulkan.hpp
+++ b/include/vulkan/vulkan.hpp
@@ -56,7 +56,7 @@
 # define VULKAN_HPP_ASSERT   assert
 #endif
 
-static_assert( VK_HEADER_VERSION ==  99 , "Wrong VK_HEADER_VERSION!" );
+static_assert( VK_HEADER_VERSION ==  100 , "Wrong VK_HEADER_VERSION!" );
 
 // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
 // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
@@ -3230,7 +3230,8 @@
   {
     eNearest = VK_FILTER_NEAREST,
     eLinear = VK_FILTER_LINEAR,
-    eCubicExt = VK_FILTER_CUBIC_EXT
+    eCubicIMG = VK_FILTER_CUBIC_IMG,
+    eCubicEXT = VK_FILTER_CUBIC_EXT
   };
 
   VULKAN_HPP_INLINE std::string to_string( Filter value )
@@ -3239,7 +3240,7 @@
     {
       case Filter::eNearest : return "Nearest";
       case Filter::eLinear : return "Linear";
-      case Filter::eCubicExt : return "CubicExt";
+      case Filter::eCubicIMG : return "CubicIMG";
       default: return "invalid";
     }
   }
@@ -5652,6 +5653,7 @@
     if ( value & AccessFlagBits::eAccelerationStructureReadNV ) result += "AccelerationStructureReadNV | ";
     if ( value & AccessFlagBits::eAccelerationStructureWriteNV ) result += "AccelerationStructureWriteNV | ";
     if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) result += "FragmentDensityMapReadEXT";
+    return result;
   }
 
 #ifdef VK_USE_PLATFORM_ANDROID_KHR
@@ -5711,6 +5713,7 @@
     std::string result;
 
     if ( value & AttachmentDescriptionFlagBits::eMayAlias ) result += "MayAlias";
+    return result;
   }
 
   enum class BufferCreateFlagBits
@@ -5765,6 +5768,7 @@
     if ( value & BufferCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
     if ( value & BufferCreateFlagBits::eProtected ) result += "Protected | ";
     if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplayEXT ) result += "DeviceAddressCaptureReplayEXT";
+    return result;
   }
 
   enum class BufferUsageFlagBits
@@ -5846,6 +5850,7 @@
     if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
     if ( value & BufferUsageFlagBits::eRayTracingNV ) result += "RayTracingNV | ";
     if ( value & BufferUsageFlagBits::eShaderDeviceAddressEXT ) result += "ShaderDeviceAddressEXT";
+    return result;
   }
 
   enum class BufferViewCreateFlagBits
@@ -5915,6 +5920,7 @@
     if ( value & BuildAccelerationStructureFlagBitsNV::ePreferFastTrace ) result += "PreferFastTrace | ";
     if ( value & BuildAccelerationStructureFlagBitsNV::ePreferFastBuild ) result += "PreferFastBuild | ";
     if ( value & BuildAccelerationStructureFlagBitsNV::eLowMemory ) result += "LowMemory";
+    return result;
   }
 
   enum class ColorComponentFlagBits
@@ -5966,6 +5972,7 @@
     if ( value & ColorComponentFlagBits::eG ) result += "G | ";
     if ( value & ColorComponentFlagBits::eB ) result += "B | ";
     if ( value & ColorComponentFlagBits::eA ) result += "A";
+    return result;
   }
 
   enum class CommandBufferResetFlagBits
@@ -6008,6 +6015,7 @@
     std::string result;
 
     if ( value & CommandBufferResetFlagBits::eReleaseResources ) result += "ReleaseResources";
+    return result;
   }
 
   enum class CommandBufferUsageFlagBits
@@ -6056,6 +6064,7 @@
     if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) result += "OneTimeSubmit | ";
     if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) result += "RenderPassContinue | ";
     if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) result += "SimultaneousUse";
+    return result;
   }
 
   enum class CommandPoolCreateFlagBits
@@ -6104,6 +6113,7 @@
     if ( value & CommandPoolCreateFlagBits::eTransient ) result += "Transient | ";
     if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) result += "ResetCommandBuffer | ";
     if ( value & CommandPoolCreateFlagBits::eProtected ) result += "Protected";
+    return result;
   }
 
   enum class CommandPoolResetFlagBits
@@ -6146,6 +6156,7 @@
     std::string result;
 
     if ( value & CommandPoolResetFlagBits::eReleaseResources ) result += "ReleaseResources";
+    return result;
   }
 
   enum class CommandPoolTrimFlagBits
@@ -6214,6 +6225,7 @@
     if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) result += "PreMultiplied | ";
     if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) result += "PostMultiplied | ";
     if ( value & CompositeAlphaFlagBitsKHR::eInherit ) result += "Inherit";
+    return result;
   }
 
   enum class ConditionalRenderingFlagBitsEXT
@@ -6256,6 +6268,7 @@
     std::string result;
 
     if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) result += "Inverted";
+    return result;
   }
 
   enum class CullModeFlagBits
@@ -6307,6 +6320,7 @@
     if ( value & CullModeFlagBits::eFront ) result += "Front | ";
     if ( value & CullModeFlagBits::eBack ) result += "Back | ";
     if ( value & CullModeFlagBits::eFrontAndBack ) result += "FrontAndBack";
+    return result;
   }
 
   enum class DebugReportFlagBitsEXT
@@ -6361,6 +6375,7 @@
     if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) result += "PerformanceWarning | ";
     if ( value & DebugReportFlagBitsEXT::eError ) result += "Error | ";
     if ( value & DebugReportFlagBitsEXT::eDebug ) result += "Debug";
+    return result;
   }
 
   enum class DebugUtilsMessageSeverityFlagBitsEXT
@@ -6412,6 +6427,7 @@
     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) result += "Info | ";
     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) result += "Warning | ";
     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) result += "Error";
+    return result;
   }
 
   enum class DebugUtilsMessageTypeFlagBitsEXT
@@ -6460,6 +6476,7 @@
     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) result += "General | ";
     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) result += "Validation | ";
     if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) result += "Performance";
+    return result;
   }
 
   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT
@@ -6540,6 +6557,7 @@
     if ( value & DependencyFlagBits::eByRegion ) result += "ByRegion | ";
     if ( value & DependencyFlagBits::eDeviceGroup ) result += "DeviceGroup | ";
     if ( value & DependencyFlagBits::eViewLocal ) result += "ViewLocal";
+    return result;
   }
 
   enum class DescriptorBindingFlagBitsEXT
@@ -6591,6 +6609,7 @@
     if ( value & DescriptorBindingFlagBitsEXT::eUpdateUnusedWhilePending ) result += "UpdateUnusedWhilePending | ";
     if ( value & DescriptorBindingFlagBitsEXT::ePartiallyBound ) result += "PartiallyBound | ";
     if ( value & DescriptorBindingFlagBitsEXT::eVariableDescriptorCount ) result += "VariableDescriptorCount";
+    return result;
   }
 
   enum class DescriptorPoolCreateFlagBits
@@ -6636,6 +6655,7 @@
 
     if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) result += "FreeDescriptorSet | ";
     if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBindEXT ) result += "UpdateAfterBindEXT";
+    return result;
   }
 
   enum class DescriptorPoolResetFlagBits
@@ -6696,6 +6716,7 @@
 
     if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) result += "PushDescriptorKHR | ";
     if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPoolEXT ) result += "UpdateAfterBindPoolEXT";
+    return result;
   }
 
   enum class DescriptorUpdateTemplateCreateFlagBits
@@ -6779,6 +6800,7 @@
     if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) result += "Remote | ";
     if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) result += "Sum | ";
     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) result += "LocalMultiDevice";
+    return result;
   }
 
   enum class DeviceQueueCreateFlagBits
@@ -6821,6 +6843,7 @@
     std::string result;
 
     if ( value & DeviceQueueCreateFlagBits::eProtected ) result += "Protected";
+    return result;
   }
 
   enum class DisplayModeCreateFlagBitsKHR
@@ -6887,6 +6910,7 @@
     if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) result += "Global | ";
     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) result += "PerPixel | ";
     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) result += "PerPixelPremultiplied";
+    return result;
   }
 
   enum class DisplaySurfaceCreateFlagBitsKHR
@@ -6966,6 +6990,7 @@
 
     if ( value & ExternalFenceFeatureFlagBits::eExportable ) result += "Exportable | ";
     if ( value & ExternalFenceFeatureFlagBits::eImportable ) result += "Importable";
+    return result;
   }
 
   enum class ExternalFenceHandleTypeFlagBits
@@ -7023,6 +7048,7 @@
     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
     if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) result += "SyncFd";
+    return result;
   }
 
   enum class ExternalMemoryFeatureFlagBits
@@ -7076,6 +7102,7 @@
     if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) result += "DedicatedOnly | ";
     if ( value & ExternalMemoryFeatureFlagBits::eExportable ) result += "Exportable | ";
     if ( value & ExternalMemoryFeatureFlagBits::eImportable ) result += "Importable";
+    return result;
   }
 
   enum class ExternalMemoryFeatureFlagBitsNV
@@ -7124,6 +7151,7 @@
     if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) result += "DedicatedOnly | ";
     if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) result += "Exportable | ";
     if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) result += "Importable";
+    return result;
   }
 
   enum class ExternalMemoryHandleTypeFlagBits
@@ -7205,6 +7233,7 @@
     if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) result += "AndroidHardwareBufferANDROID | ";
     if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) result += "HostAllocationEXT | ";
     if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) result += "HostMappedForeignMemoryEXT";
+    return result;
   }
 
   enum class ExternalMemoryHandleTypeFlagBitsNV
@@ -7256,6 +7285,7 @@
     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) result += "D3D11Image | ";
     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) result += "D3D11ImageKmt";
+    return result;
   }
 
   enum class ExternalSemaphoreFeatureFlagBits
@@ -7305,6 +7335,7 @@
 
     if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) result += "Exportable | ";
     if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) result += "Importable";
+    return result;
   }
 
   enum class ExternalSemaphoreHandleTypeFlagBits
@@ -7366,6 +7397,7 @@
     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
     if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) result += "D3D12Fence | ";
     if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) result += "SyncFd";
+    return result;
   }
 
   enum class FenceCreateFlagBits
@@ -7408,6 +7440,7 @@
     std::string result;
 
     if ( value & FenceCreateFlagBits::eSignaled ) result += "Signaled";
+    return result;
   }
 
   enum class FenceImportFlagBits
@@ -7453,6 +7486,7 @@
     std::string result;
 
     if ( value & FenceImportFlagBits::eTemporary ) result += "Temporary";
+    return result;
   }
 
   enum class FormatFeatureFlagBits
@@ -7479,7 +7513,7 @@
     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
     eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT,
     eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
-    eSampledImageFilterCubicExt = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
+    eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
     eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
     eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
     eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,
@@ -7490,7 +7524,8 @@
     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
     eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
-    eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR
+    eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
+    eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
   };
 
   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value )
@@ -7519,7 +7554,7 @@
       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable : return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
       case FormatFeatureFlagBits::eDisjoint : return "Disjoint";
       case FormatFeatureFlagBits::eCositedChromaSamples : return "CositedChromaSamples";
-      case FormatFeatureFlagBits::eSampledImageFilterCubicExt : return "SampledImageFilterCubicExt";
+      case FormatFeatureFlagBits::eSampledImageFilterCubicIMG : return "SampledImageFilterCubicIMG";
       case FormatFeatureFlagBits::eSampledImageFilterMinmaxEXT : return "SampledImageFilterMinmaxEXT";
       case FormatFeatureFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
       default: return "invalid";
@@ -7542,7 +7577,7 @@
   {
     enum
     {
-      allFlags = VkFlags(FormatFeatureFlagBits::eSampledImage) | VkFlags(FormatFeatureFlagBits::eStorageImage) | VkFlags(FormatFeatureFlagBits::eStorageImageAtomic) | VkFlags(FormatFeatureFlagBits::eUniformTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBufferAtomic) | VkFlags(FormatFeatureFlagBits::eVertexBuffer) | VkFlags(FormatFeatureFlagBits::eColorAttachment) | VkFlags(FormatFeatureFlagBits::eColorAttachmentBlend) | VkFlags(FormatFeatureFlagBits::eDepthStencilAttachment) | VkFlags(FormatFeatureFlagBits::eBlitSrc) | VkFlags(FormatFeatureFlagBits::eBlitDst) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterLinear) | VkFlags(FormatFeatureFlagBits::eTransferSrc) | VkFlags(FormatFeatureFlagBits::eTransferDst) | VkFlags(FormatFeatureFlagBits::eMidpointChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable) | VkFlags(FormatFeatureFlagBits::eDisjoint) | VkFlags(FormatFeatureFlagBits::eCositedChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterCubicExt) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterMinmaxEXT) | VkFlags(FormatFeatureFlagBits::eFragmentDensityMapEXT)
+      allFlags = VkFlags(FormatFeatureFlagBits::eSampledImage) | VkFlags(FormatFeatureFlagBits::eStorageImage) | VkFlags(FormatFeatureFlagBits::eStorageImageAtomic) | VkFlags(FormatFeatureFlagBits::eUniformTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBufferAtomic) | VkFlags(FormatFeatureFlagBits::eVertexBuffer) | VkFlags(FormatFeatureFlagBits::eColorAttachment) | VkFlags(FormatFeatureFlagBits::eColorAttachmentBlend) | VkFlags(FormatFeatureFlagBits::eDepthStencilAttachment) | VkFlags(FormatFeatureFlagBits::eBlitSrc) | VkFlags(FormatFeatureFlagBits::eBlitDst) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterLinear) | VkFlags(FormatFeatureFlagBits::eTransferSrc) | VkFlags(FormatFeatureFlagBits::eTransferDst) | VkFlags(FormatFeatureFlagBits::eMidpointChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable) | VkFlags(FormatFeatureFlagBits::eDisjoint) | VkFlags(FormatFeatureFlagBits::eCositedChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterCubicIMG) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterMinmaxEXT) | VkFlags(FormatFeatureFlagBits::eFragmentDensityMapEXT)
     };
   };
 
@@ -7573,9 +7608,10 @@
     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
     if ( value & FormatFeatureFlagBits::eDisjoint ) result += "Disjoint | ";
     if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) result += "CositedChromaSamples | ";
-    if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicExt ) result += "SampledImageFilterCubicExt | ";
+    if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) result += "SampledImageFilterCubicIMG | ";
     if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmaxEXT ) result += "SampledImageFilterMinmaxEXT | ";
     if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT";
+    return result;
   }
 
   enum class FramebufferCreateFlagBits
@@ -7636,6 +7672,7 @@
 
     if ( value & GeometryFlagBitsNV::eOpaque ) result += "Opaque | ";
     if ( value & GeometryFlagBitsNV::eNoDuplicateAnyHitInvocation ) result += "NoDuplicateAnyHitInvocation";
+    return result;
   }
 
   enum class GeometryInstanceFlagBitsNV
@@ -7687,6 +7724,7 @@
     if ( value & GeometryInstanceFlagBitsNV::eTriangleFrontCounterclockwise ) result += "TriangleFrontCounterclockwise | ";
     if ( value & GeometryInstanceFlagBitsNV::eForceOpaque ) result += "ForceOpaque | ";
     if ( value & GeometryInstanceFlagBitsNV::eForceNoOpaque ) result += "ForceNoOpaque";
+    return result;
   }
 
 #ifdef VK_USE_PLATFORM_IOS_MVK
@@ -7779,6 +7817,7 @@
     if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) result += "MemoryPlane1EXT | ";
     if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) result += "MemoryPlane2EXT | ";
     if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) result += "MemoryPlane3EXT";
+    return result;
   }
 
   enum class ImageCreateFlagBits
@@ -7869,6 +7908,7 @@
     if ( value & ImageCreateFlagBits::eCornerSampledNV ) result += "CornerSampledNV | ";
     if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) result += "SampleLocationsCompatibleDepthEXT | ";
     if ( value & ImageCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT";
+    return result;
   }
 
 #ifdef VK_USE_PLATFORM_FUCHSIA
@@ -7955,6 +7995,7 @@
     if ( value & ImageUsageFlagBits::eInputAttachment ) result += "InputAttachment | ";
     if ( value & ImageUsageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
     if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT";
+    return result;
   }
 
   enum class ImageViewCreateFlagBits
@@ -7997,6 +8038,7 @@
     std::string result;
 
     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) result += "FragmentDensityMapDynamicEXT";
+    return result;
   }
 
   enum class IndirectCommandsLayoutUsageFlagBitsNVX
@@ -8048,6 +8090,7 @@
     if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eSparseSequences ) result += "SparseSequences | ";
     if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eEmptyExecutions ) result += "EmptyExecutions | ";
     if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eIndexedSequences ) result += "IndexedSequences";
+    return result;
   }
 
   enum class InstanceCreateFlagBits
@@ -8125,6 +8168,7 @@
     std::string result;
 
     if ( value & MemoryAllocateFlagBits::eDeviceMask ) result += "DeviceMask";
+    return result;
   }
 
   enum class MemoryHeapFlagBits
@@ -8171,6 +8215,7 @@
 
     if ( value & MemoryHeapFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
     if ( value & MemoryHeapFlagBits::eMultiInstance ) result += "MultiInstance";
+    return result;
   }
 
   enum class MemoryMapFlagBits
@@ -8243,6 +8288,7 @@
     if ( value & MemoryPropertyFlagBits::eHostCached ) result += "HostCached | ";
     if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) result += "LazilyAllocated | ";
     if ( value & MemoryPropertyFlagBits::eProtected ) result += "Protected";
+    return result;
   }
 
   enum class ObjectEntryUsageFlagBitsNVX
@@ -8288,6 +8334,7 @@
 
     if ( value & ObjectEntryUsageFlagBitsNVX::eGraphics ) result += "Graphics | ";
     if ( value & ObjectEntryUsageFlagBitsNVX::eCompute ) result += "Compute";
+    return result;
   }
 
   enum class PeerMemoryFeatureFlagBits
@@ -8345,6 +8392,7 @@
     if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) result += "CopyDst | ";
     if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) result += "GenericSrc | ";
     if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) result += "GenericDst";
+    return result;
   }
 
   enum class PipelineCacheCreateFlagBits
@@ -8464,6 +8512,7 @@
     if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) result += "ViewIndexFromDeviceIndex | ";
     if ( value & PipelineCreateFlagBits::eDispatchBase ) result += "DispatchBase | ";
     if ( value & PipelineCreateFlagBits::eDeferCompileNV ) result += "DeferCompileNV";
+    return result;
   }
 
   enum class PipelineDepthStencilStateCreateFlagBits
@@ -8731,6 +8780,7 @@
     if ( value & PipelineStageFlagBits::eTaskShaderNV ) result += "TaskShaderNV | ";
     if ( value & PipelineStageFlagBits::eMeshShaderNV ) result += "MeshShaderNV | ";
     if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) result += "FragmentDensityProcessEXT";
+    return result;
   }
 
   enum class PipelineTessellationStateCreateFlagBits
@@ -8833,6 +8883,7 @@
     std::string result;
 
     if ( value & QueryControlFlagBits::ePrecise ) result += "Precise";
+    return result;
   }
 
   enum class QueryPipelineStatisticFlagBits
@@ -8905,6 +8956,7 @@
     if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) result += "TessellationControlShaderPatches | ";
     if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) result += "TessellationEvaluationShaderInvocations | ";
     if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) result += "ComputeShaderInvocations";
+    return result;
   }
 
   enum class QueryPoolCreateFlagBits
@@ -8971,6 +9023,7 @@
     if ( value & QueryResultFlagBits::eWait ) result += "Wait | ";
     if ( value & QueryResultFlagBits::eWithAvailability ) result += "WithAvailability | ";
     if ( value & QueryResultFlagBits::ePartial ) result += "Partial";
+    return result;
   }
 
   enum class QueueFlagBits
@@ -9025,6 +9078,7 @@
     if ( value & QueueFlagBits::eTransfer ) result += "Transfer | ";
     if ( value & QueueFlagBits::eSparseBinding ) result += "SparseBinding | ";
     if ( value & QueueFlagBits::eProtected ) result += "Protected";
+    return result;
   }
 
   enum class RenderPassCreateFlagBits
@@ -9094,6 +9148,7 @@
     if ( value & ResolveModeFlagBitsKHR::eAverage ) result += "Average | ";
     if ( value & ResolveModeFlagBitsKHR::eMin ) result += "Min | ";
     if ( value & ResolveModeFlagBitsKHR::eMax ) result += "Max";
+    return result;
   }
 
   enum class SampleCountFlagBits
@@ -9154,6 +9209,7 @@
     if ( value & SampleCountFlagBits::e16 ) result += "16 | ";
     if ( value & SampleCountFlagBits::e32 ) result += "32 | ";
     if ( value & SampleCountFlagBits::e64 ) result += "64";
+    return result;
   }
 
   enum class SamplerCreateFlagBits
@@ -9199,6 +9255,7 @@
 
     if ( value & SamplerCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
     if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) result += "SubsampledCoarseReconstructionEXT";
+    return result;
   }
 
   enum class SemaphoreCreateFlagBits
@@ -9259,6 +9316,7 @@
     std::string result;
 
     if ( value & SemaphoreImportFlagBits::eTemporary ) result += "Temporary";
+    return result;
   }
 
   enum class ShaderModuleCreateFlagBits
@@ -9361,6 +9419,7 @@
     if ( value & ShaderStageFlagBits::eCallableNV ) result += "CallableNV | ";
     if ( value & ShaderStageFlagBits::eTaskNV ) result += "TaskNV | ";
     if ( value & ShaderStageFlagBits::eMeshNV ) result += "MeshNV";
+    return result;
   }
 
   enum class SparseImageFormatFlagBits
@@ -9409,6 +9468,7 @@
     if ( value & SparseImageFormatFlagBits::eSingleMiptail ) result += "SingleMiptail | ";
     if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) result += "AlignedMipSize | ";
     if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) result += "NonstandardBlockSize";
+    return result;
   }
 
   enum class SparseMemoryBindFlagBits
@@ -9451,6 +9511,7 @@
     std::string result;
 
     if ( value & SparseMemoryBindFlagBits::eMetadata ) result += "Metadata";
+    return result;
   }
 
   enum class StencilFaceFlagBits
@@ -9499,6 +9560,7 @@
     if ( value & StencilFaceFlagBits::eFront ) result += "Front | ";
     if ( value & StencilFaceFlagBits::eBack ) result += "Back | ";
     if ( value & StencilFaceFlagBits::eVkStencilFrontAndBack ) result += "VkStencilFrontAndBack";
+    return result;
   }
 
   enum class SubgroupFeatureFlagBits
@@ -9565,6 +9627,7 @@
     if ( value & SubgroupFeatureFlagBits::eClustered ) result += "Clustered | ";
     if ( value & SubgroupFeatureFlagBits::eQuad ) result += "Quad | ";
     if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) result += "PartitionedNV";
+    return result;
   }
 
   enum class SubpassDescriptionFlagBits
@@ -9610,6 +9673,7 @@
 
     if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) result += "PerViewAttributesNVX | ";
     if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) result += "PerViewPositionXOnlyNVX";
+    return result;
   }
 
   enum class SurfaceCounterFlagBitsEXT
@@ -9652,6 +9716,7 @@
     std::string result;
 
     if ( value & SurfaceCounterFlagBitsEXT::eVblank ) result += "Vblank";
+    return result;
   }
 
   enum class SurfaceTransformFlagBitsKHR
@@ -9718,6 +9783,7 @@
     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) result += "HorizontalMirrorRotate180 | ";
     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) result += "HorizontalMirrorRotate270 | ";
     if ( value & SurfaceTransformFlagBitsKHR::eInherit ) result += "Inherit";
+    return result;
   }
 
   enum class SwapchainCreateFlagBitsKHR
@@ -9766,6 +9832,7 @@
     if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
     if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += "Protected | ";
     if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += "MutableFormat";
+    return result;
   }
 
   enum class ValidationCacheCreateFlagBitsEXT
diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h
index b16863b..eb0dd3d 100644
--- a/include/vulkan/vulkan_core.h
+++ b/include/vulkan/vulkan_core.h
@@ -43,7 +43,7 @@
 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
 // Version of this file
-#define VK_HEADER_VERSION 99
+#define VK_HEADER_VERSION 100
 
 
 #define VK_NULL_HANDLE 0
@@ -1143,7 +1143,8 @@
 typedef enum VkFilter {
     VK_FILTER_NEAREST = 0,
     VK_FILTER_LINEAR = 1,
-    VK_FILTER_CUBIC_EXT = 1000015000,
+    VK_FILTER_CUBIC_IMG = 1000015000,
+    VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG,
     VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
     VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
     VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
@@ -1343,7 +1344,7 @@
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
-    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
+    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
@@ -1355,6 +1356,7 @@
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
+    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkFormatFeatureFlagBits;
 typedef VkFlags VkFormatFeatureFlags;
@@ -6385,10 +6387,6 @@
 #define VK_IMG_filter_cubic 1
 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
-#define VK_FILTER_CUBIC_EXT               1000015000
-#define VK_FILTER_CUBIC_IMG               VK_FILTER_CUBIC_EXT
-#define VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT 0x00002000
-#define VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
 
 
 #define VK_AMD_rasterization_order 1
diff --git a/registry/validusage.json b/registry/validusage.json
index 4ae85db..ed087fa 100644
--- a/registry/validusage.json
+++ b/registry/validusage.json
@@ -1,9 +1,9 @@
 {
   "version info": {
     "schema version": 2,
-    "api version": "1.1.99",
-    "comment": "from git branch: master commit: b59ec03ee3f44086ebc3e4c556952afe9e743655",
-    "date": "2019-02-04 16:55:13Z"
+    "api version": "1.1.100",
+    "comment": "from git branch: master commit: fcf5980cf6acc620334f55b0cf2d162b05e0487a",
+    "date": "2019-02-14 21:15:17Z"
   },
   "validation": {
     "vkGetInstanceProcAddr": {
@@ -2583,14 +2583,6 @@
           "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, <code>bufferMemoryBarrierCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
         },
         {
-          "vuid": "VUID-vkCmdPipelineBarrier-image-01179",
-          "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>image</code> member of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal to one of the elements of <code>pAttachments</code> that the current <code>framebuffer</code> was created with, that is also referred to by one of the elements of the <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code> members of the <code>VkSubpassDescription</code> instance"
-        },
-        {
-          "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-01180",
-          "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal to the <code>layout</code> member of an element of the <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code> members of the <code>VkSubpassDescription</code> instance"
-        },
-        {
           "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-01181",
           "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of an element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal"
         },
@@ -2655,6 +2647,26 @@
           "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
         }
       ],
+      "(VK_KHR_depth_stencil_resolve)": [
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-image-02635",
+          "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>image</code> member of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal to one of the elements of <code>pAttachments</code> that the current <code>framebuffer</code> was created with, that is also referred to by one of the elements of the <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code> members of the <code>VkSubpassDescription</code> instance or by the <code>pDepthStencilResolveAttachment</code> member of the <code>VkSubpassDescriptionDepthStencilResolveKHR</code> structure that the current subpass was created with"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-02636",
+          "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal to the <code>layout</code> member of an element of the <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code> members of the <code>VkSubpassDescription</code> instance or by the <code>pDepthStencilResolveAttachment</code> member of the <code>VkSubpassDescriptionDepthStencilResolveKHR</code> structure that the current subpass was created with, that refers to the same <code>image</code>"
+        }
+      ],
+      "!(VK_KHR_depth_stencil_resolve)": [
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-image-02637",
+          "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>image</code> member of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal to one of the elements of <code>pAttachments</code> that the current <code>framebuffer</code> was created with, that is also referred to by one of the elements of the <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code> members of the <code>VkSubpassDescription</code> instance that the current subpass was created with"
+        },
+        {
+          "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-02638",
+          "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal to the <code>layout</code> member of an element of the <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code> members of the <code>VkSubpassDescription</code> instance that the current subpass was created with, that refers to the same <code>image</code>"
+        }
+      ],
       "(VK_VERSION_1_1,VK_KHR_multiview)": [
         {
           "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-01186",
@@ -4025,8 +4037,8 @@
           "text": " Each element of <code>pAttachments</code> that is used as a color attachment or resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
         },
         {
-          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02603",
-          "text": " Each element of <code>pAttachments</code> that is used as a depth/stencil"
+          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02633",
+          "text": " Each element of <code>pAttachments</code> that is used as a depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
         },
         {
           "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00879",
@@ -4097,6 +4109,12 @@
           "text": " Both of <code>renderPass</code>, and the elements of <code>pAttachments</code> that are valid handles <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>"
         }
       ],
+      "(VK_KHR_depth_stencil_resolve)": [
+        {
+          "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02634",
+          "text": " Each element of <code>pAttachments</code> that is used as a depth/stencil resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
+        }
+      ],
       "(VK_EXT_fragment_density_map)": [
         {
           "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02552",
@@ -11249,6 +11267,10 @@
           "text": " The sum of <code>dstArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding specified by <code>dstBinding</code>, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
         },
         {
+          "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02632",
+          "text": " The type of <code>dstBinding</code> within <code>dstSet</code> <strong class=\"purple\">must</strong> be equal to the type of <code>srcBinding</code> within <code>srcSet</code>"
+        },
+        {
           "vuid": "VUID-VkCopyDescriptorSet-srcSet-00349",
           "text": " If <code>srcSet</code> is equal to <code>dstSet</code>, then the source and destination ranges of descriptors <strong class=\"purple\">must</strong> not overlap, where the ranges <strong class=\"purple\">may</strong> include array elements from consecutive bindings as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
         },
diff --git a/registry/vk.xml b/registry/vk.xml
index 45c6b4d..10ac9b7 100644
--- a/registry/vk.xml
+++ b/registry/vk.xml
@@ -146,7 +146,7 @@
         <type category="define">// Vulkan 1.1 version number
 #define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type>
         <type category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 99</type>
+#define <name>VK_HEADER_VERSION</name> 100</type>
 
         <type category="define">
 #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@@ -7883,10 +7883,8 @@
             <require>
                 <enum value="1"                                                 name="VK_IMG_FILTER_CUBIC_SPEC_VERSION"/>
                 <enum value="&quot;VK_IMG_filter_cubic&quot;"                   name="VK_IMG_FILTER_CUBIC_EXTENSION_NAME"/>
-                <enum offset="0" extends="VkFilter"                             name="VK_FILTER_CUBIC_EXT"/>
-                <enum bitpos="13" extends="VkFormatFeatureFlagBits"             name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" comment="Format can be filtered with VK_FILTER_CUBIC_EXT when being sampled"/>
-                <enum name="VK_FILTER_CUBIC_IMG" alias="VK_FILTER_CUBIC_EXT"/>
-                <enum name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG" alias="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"/>
+                <enum offset="0" extends="VkFilter"                             name="VK_FILTER_CUBIC_IMG"/>
+                <enum bitpos="13" extends="VkFormatFeatureFlagBits"             name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG" comment="Format can be filtered with VK_FILTER_CUBIC_IMG when being sampled"/>
         </require>
         </extension>
         <extension name="VK_AMD_extension_17" number="17" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
@@ -9781,6 +9779,8 @@
             <require>
                 <enum value="1"                                             name="VK_EXT_FILTER_CUBIC_SPEC_VERSION"/>
                 <enum value="&quot;VK_EXT_filter_cubic&quot;"               name="VK_EXT_FILTER_CUBIC_EXTENSION_NAME"/>
+                <enum extends="VkFilter"                                    name="VK_FILTER_CUBIC_EXT" alias="VK_FILTER_CUBIC_IMG"/>
+                <enum extends="VkFormatFeatureFlagBits"                     name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" alias="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"/>
                 <enum offset="0" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"/>
                 <enum offset="1" extends="VkStructureType"                  name="VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"/>
                 <type name="VkPhysicalDeviceImageViewImageFormatInfoEXT"/>
