diff --git a/.version b/.version
index f5c21ef4..4ab06e3b 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-1.3.263
\ No newline at end of file
+1.3.264
\ No newline at end of file
diff --git a/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/EXT/VK_EXT_frame_boundary/VkExtFrameBoundary.bitmasks.cs b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/EXT/VK_EXT_frame_boundary/VkExtFrameBoundary.bitmasks.cs
new file mode 100644
index 00000000..de861309
--- /dev/null
+++ b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/EXT/VK_EXT_frame_boundary/VkExtFrameBoundary.bitmasks.cs
@@ -0,0 +1 @@
+global using VkFrameBoundaryFlagsEXT = Exomia.Vulkan.Api.Core.VkFrameBoundaryFlagBitsEXT;
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
index 006f5c82..b0c025eb 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
@@ -4225,6 +4225,18 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
+
+ ///
+ /// VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
+
///
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
@@ -4975,6 +4987,12 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
+
///
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkExtFrameBoundary.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkExtFrameBoundary.cs
new file mode 100644
index 00000000..37f644a5
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkExtFrameBoundary.cs
@@ -0,0 +1,47 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+global using static Exomia.Vulkan.Api.Core.VkExtFrameBoundary;
+
+#pragma warning disable CA2211 // Non-constant fields should not be visible
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VK_EXT_frame_boundary - device extension (nr. 376) - author 'EXT' [platform '' | contact 'James Fitzpatrick
+/// @jamesfitzpatrick']
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_EXT_frame_boundary.html
+///
+public static class VkExtFrameBoundary
+{
+ /// The spec version.
+ public const uint VK_EXT_FRAME_BOUNDARY_SPEC_VERSION = 1;
+
+ /// The extension name.
+ public const string VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME = "VK_EXT_frame_boundary";
+
+ ///
+ /// An UTF8 null terminated version of represented by an
+ /// UTF16 string.
+ ///
+ ///
+ /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME_UTF8_NT) {
+ /// sbyte* utf8NtPtr = (sbyte*)ptr; // utf8NtPtr - can now be passed and used directly as a utf8_nt string for
+ /// unmanaged code.
+ /// }
+ ///
+ public const string VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME_UTF8_NT = "\u4b56\u455f\u5458\u465f\u4152\u454d\u425f\u554f\u444e\u5241\u5f59\u5845\u4554\u534e\u4f49\u5f4e\u414e\u454d\u0000";
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkFrameBoundaryEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkFrameBoundaryEXT.cs
new file mode 100644
index 00000000..f9722e86
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkFrameBoundaryEXT.cs
@@ -0,0 +1,67 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkFrameBoundaryEXT - Add frame boundary information to queue submissions -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFrameBoundaryEXT.html
+///
+///
+///
+/// -
+/// structextends
+/// VkSubmitInfo,VkSubmitInfo2,VkPresentInfoKHR,VkBindSparseInfo
+///
+///
+///
+[VkStructExtends("VkSubmitInfo,VkSubmitInfo2,VkPresentInfoKHR,VkBindSparseInfo")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkFrameBoundaryEXT
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT;
+
+ /// sType is a VkStructureType value identifying this structure.
+ public VkStructureType sType;
+
+ /// pNext is NULL or a pointer to a structure extending this structure.
+ public void* pNext;
+
+ /// flags is a bitmask of VkFrameBoundaryFlagBitsEXT that can flag the last submission of a frame identifier.
+ public VkFrameBoundaryFlagsEXT flags;
+
+ /// frameID is the frame identifier.
+ public ulong frameID;
+
+ /// imageCount is the number of images that store frame results.
+ public uint imageCount;
+
+ /// pImages is a pointer to an array of VkImage objects with imageCount entries.
+ public VkImage* pImages;
+
+ /// bufferCount is the number of buffers the store the frame results.
+ public uint bufferCount;
+
+ /// pBuffers is a pointer to an array of VkBuffer objects with bufferCount entries.
+ public VkBuffer* pBuffers;
+
+ /// tagName is a numerical identifier for tag data.
+ public ulong tagName;
+
+ /// tagSize is the number of bytes of tag data.
+ public nuint tagSize;
+
+ /// pTag is a pointer to an array of tagSize bytes containing tag data.
+ public void* pTag;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkFrameBoundaryFlagBitsEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkFrameBoundaryFlagBitsEXT.cs
new file mode 100644
index 00000000..53838478
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkFrameBoundaryFlagBitsEXT.cs
@@ -0,0 +1,29 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkFrameBoundaryFlagBitsEXT - Bitmask specifying whether a queue submission is the last one for a given frame
+/// -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFrameBoundaryFlagBitsEXT.html
+///
+[Flags]
+public enum VkFrameBoundaryFlagBitsEXT
+{
+ ///
+ /// VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT specifies that this queue submission is the last one for this frame, i.e.
+ /// once this queue submission has terminated, then the work for this frame is completed.
+ ///
+ VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x1
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkPhysicalDeviceFrameBoundaryFeaturesEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkPhysicalDeviceFrameBoundaryFeaturesEXT.cs
new file mode 100644
index 00000000..807278ad
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_frame_boundary/VkPhysicalDeviceFrameBoundaryFeaturesEXT.cs
@@ -0,0 +1,46 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPhysicalDeviceFrameBoundaryFeaturesEXT - Structure describing the frame boundary features that can be supported
+/// by an implementation -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFrameBoundaryFeaturesEXT.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceFrameBoundaryFeaturesEXT
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT;
+
+ /// sType is a VkStructureType value identifying this structure.
+ public VkStructureType sType;
+
+ /// pNext is NULL or a pointer to a structure extending this structure.
+ public void* pNext;
+
+ /// frameBoundary indicates whether the implementation supports frame boundary information.
+ public VkBool32 frameBoundary;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/MSFT/VK_MSFT_layered_driver/VkLayeredDriverUnderlyingApiMSFT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/MSFT/VK_MSFT_layered_driver/VkLayeredDriverUnderlyingApiMSFT.cs
new file mode 100644
index 00000000..c47f3893
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/MSFT/VK_MSFT_layered_driver/VkLayeredDriverUnderlyingApiMSFT.cs
@@ -0,0 +1,42 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkLayeredDriverUnderlyingApiMSFT - Layered driver underlying APIs -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkLayeredDriverUnderlyingApiMSFT.html
+///
+///
+public enum VkLayeredDriverUnderlyingApiMSFT
+{
+ ///
+ /// VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkLayeredDriverUnderlyingApiMSFT
+ ///
+ ///
+ VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
+
+ ///
+ /// VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkLayeredDriverUnderlyingApiMSFT
+ ///
+ ///
+ VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/MSFT/VK_MSFT_layered_driver/VkMsftLayeredDriver.cs b/src/Exomia.Vulkan.Api.Core/Extensions/MSFT/VK_MSFT_layered_driver/VkMsftLayeredDriver.cs
new file mode 100644
index 00000000..0a8f77c7
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/MSFT/VK_MSFT_layered_driver/VkMsftLayeredDriver.cs
@@ -0,0 +1,48 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+global using static Exomia.Vulkan.Api.Core.VkMsftLayeredDriver;
+
+#pragma warning disable CA2211 // Non-constant fields should not be visible
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VK_MSFT_layered_driver - device extension (nr. 531) - author 'MSFT' [platform '' | contact 'Jesse Natalie
+/// @jenatali']
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_MSFT_layered_driver.html
+///
+[VkDepends("VK_KHR_get_physical_device_properties2")]
+public static class VkMsftLayeredDriver
+{
+ /// The spec version.
+ public const uint VK_MSFT_LAYERED_DRIVER_SPEC_VERSION = 1;
+
+ /// The extension name.
+ public const string VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME = "VK_MSFT_layered_driver";
+
+ ///
+ /// An UTF8 null terminated version of represented by an
+ /// UTF16 string.
+ ///
+ ///
+ /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME_UTF8_NT) {
+ /// sbyte* utf8NtPtr = (sbyte*)ptr; // utf8NtPtr - can now be passed and used directly as a utf8_nt string for
+ /// unmanaged code.
+ /// }
+ ///
+ public const string VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME_UTF8_NT = "\u4b56\u4d5f\u4653\u5f54\u414c\u4559\u4552\u5f44\u5244\u5649\u5245\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045";
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/MSFT/VK_MSFT_layered_driver/VkPhysicalDeviceLayeredDriverPropertiesMSFT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/MSFT/VK_MSFT_layered_driver/VkPhysicalDeviceLayeredDriverPropertiesMSFT.cs
new file mode 100644
index 00000000..9c9db3a0
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/MSFT/VK_MSFT_layered_driver/VkPhysicalDeviceLayeredDriverPropertiesMSFT.cs
@@ -0,0 +1,52 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPhysicalDeviceLayeredDriverPropertiesMSFT - Structure containing information about driver layering for a physical
+/// device -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLayeredDriverPropertiesMSFT.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceProperties2
+///
+/// -
+/// returnedonlytrue
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceProperties2")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceLayeredDriverPropertiesMSFT
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT;
+
+ /// sType is a VkStructureType value identifying this structure.
+ public VkStructureType sType;
+
+ /// pNext is NULL or a pointer to a structure extending this structure.
+ public void* pNext;
+
+ ///
+ /// underlyingAPI is a VkLayeredDriverUnderlyingApiMSFT value indicating which underlying API is used to implement
+ /// the layered driver, or VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT if the driver is not layered.
+ ///
+ public VkLayeredDriverUnderlyingApiMSFT underlyingAPI;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceInlineUniformBlockProperties.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceInlineUniformBlockProperties.cs
index d1afb8d1..3463d53c 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceInlineUniformBlockProperties.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceInlineUniformBlockProperties.cs
@@ -48,9 +48,11 @@ public unsafe struct VkPhysicalDeviceInlineUniformBlockProperties
public uint maxInlineUniformBlockSize;
///
- /// maxPerStageDescriptorUpdateAfterBindInlineUniformBlocksis similar to maxPerStageDescriptorInlineUniformBlocks
- /// but counts descriptor bindings from descriptor sets created with or without the
- /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set.
+ /// maxPerStageDescriptorInlineUniformBlocks is the maximum number of inline uniform block bindings that can be
+ /// accessible to a single shader stage in a pipeline layout. Descriptor bindings with a descriptor type of
+ /// VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK count against this limit. Only descriptor bindings in descriptor set
+ /// layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set count against this
+ /// limit.
///
public uint maxPerStageDescriptorInlineUniformBlocks;
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan13Properties.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan13Properties.cs
index cfee1dc8..e7ce8813 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan13Properties.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan13Properties.cs
@@ -76,9 +76,11 @@ public unsafe struct VkPhysicalDeviceVulkan13Properties
public uint maxInlineUniformBlockSize;
///
- /// maxPerStageDescriptorUpdateAfterBindInlineUniformBlocksis similar to maxPerStageDescriptorInlineUniformBlocks
- /// but counts descriptor bindings from descriptor sets created with or without the
- /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set.
+ /// maxPerStageDescriptorInlineUniformBlocks is the maximum number of inline uniform block bindings that can be
+ /// accessible to a single shader stage in a pipeline layout. Descriptor bindings with a descriptor type of
+ /// VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK count against this limit. Only descriptor bindings in descriptor set
+ /// layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set count against this
+ /// limit.
///
public uint maxPerStageDescriptorInlineUniformBlocks;