diff --git a/.version b/.version
index 8ce23651..4fd638b5 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-1.3.288
\ No newline at end of file
+1.3.289
\ No newline at end of file
diff --git a/README.md b/README.md
index e7eee759..eafa3a5a 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ It is meant to be as close as possible to the original Vulkan API written in C.
![](https://img.shields.io/github/languages/top/exomia/vulkan-api.svg)
![](https://img.shields.io/github/languages/count/exomia/vulkan-api.svg)
![](https://img.shields.io/github/license/exomia/vulkan-api.svg)
-[![](https://img.shields.io/nuget/v/Exomia.Vulkan.Api.Core?logo=nuget)](https://www.nuget.org/packages/Exomia.Vulkan.Api.Core)
+
## Features
- Vulkan 1.0, 1.1, 1.2, 1.3, 0.0
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkRenderingFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkRenderingFlagBits.cs
index f55ce765..409e158a 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkRenderingFlagBits.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkRenderingFlagBits.cs
@@ -41,17 +41,6 @@ public enum VkRenderingFlagBits
///
VK_RENDERING_RESUMING_BIT = 0x4,
- ///
- /// VK_RENDERING_CONTENTS_INLINE_BIT_EXT specifies that draw calls for the render pass instance can be recorded inline
- /// within the current command buffer. When the
- ///
- /// nestedCommandBuffer
- ///
- /// feature is enabled this can be combined with the VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT bit to allow
- /// draw calls to be recorded both inline and in secondary command buffers.
- ///
- VK_RENDERING_CONTENTS_INLINE_BIT_EXT = 0x10,
-
///
/// VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT specifies that
///
@@ -62,6 +51,14 @@ public enum VkRenderingFlagBits
///
VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x8,
+ ///
+ /// VK_RENDERING_CONTENTS_INLINE_BIT_KHR specifies that draw calls for the render pass instance can be recorded
+ /// inline within the current command buffer. This can be combined with the
+ /// VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT bit to allow draw calls to be recorded both inline and in
+ /// secondary command buffers.
+ ///
+ VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x10,
+
///
/// VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT specifies that draw calls for the render pass instance will be
/// recorded in secondary command buffers. If the
@@ -81,5 +78,13 @@ public enum VkRenderingFlagBits
/// VK_RENDERING_RESUMING_BIT specifies that the render pass instance is resuming an earlier suspended render pass
/// instance.
///
- VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT
+ VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
+
+ ///
+ /// VK_RENDERING_CONTENTS_INLINE_BIT_KHR specifies that draw calls for the render pass instance can be recorded
+ /// inline within the current command buffer. This can be combined with the
+ /// VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT bit to allow draw calls to be recorded both inline and in
+ /// secondary command buffers.
+ ///
+ VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR
}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
index 123a3afb..422e87fb 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
@@ -5389,6 +5389,36 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000,
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
+
///
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkSubpassContents.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkSubpassContents.cs
index bca95968..0c204a79 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkSubpassContents.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkSubpassContents.cs
@@ -38,10 +38,18 @@ public enum VkSubpassContents
VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
///
- /// VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXTspecifies that the contents of the subpass can be
+ /// VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHRspecifies that the contents of the subpass can be
/// recorded both inline and in secondary command buffers executed from this command buffer with
/// vkCmdExecuteCommands
/// .
///
- VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = 1000451000
+ VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000,
+
+ ///
+ /// VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHRspecifies that the contents of the subpass can be
+ /// recorded both inline and in secondary command buffers executed from this command buffer with
+ /// vkCmdExecuteCommands
+ /// .
+ ///
+ VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR
}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkKhrMaintenance7.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkKhrMaintenance7.cs
new file mode 100644
index 00000000..95a53b3d
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkKhrMaintenance7.cs
@@ -0,0 +1,49 @@
+#region License
+
+// Copyright (c) 2018-2024, 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.VkKhrMaintenance7;
+
+#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_KHR_maintenance7 - device extension (nr. 563) - author 'KHR' [platform '' | contact 'Mike Blumenkrantz @zmike']
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance7.html
+///
+[VkDepends("VK_VERSION_1_1")]
+[VkDeviceExt]
+public static class VkKhrMaintenance7
+{
+ /// The spec version.
+ public const uint VK_KHR_MAINTENANCE_7_SPEC_VERSION = 1;
+
+ /// The extension name.
+ public const string VK_KHR_MAINTENANCE_7_EXTENSION_NAME = "VK_KHR_maintenance7";
+
+ ///
+ /// An UTF8 null terminated version of represented by an UTF16
+ /// string.
+ ///
+ ///
+ /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_KHR_MAINTENANCE_7_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_KHR_MAINTENANCE_7_EXTENSION_NAME_UTF8_NT = "\u4b56\u4b5f\u5248\u4d5f\u4941\u544e\u4e45\u4e41\u4543\u375f\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045";
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiKHR.cs
new file mode 100644
index 00000000..3a4b5712
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiKHR.cs
@@ -0,0 +1,36 @@
+#region License
+
+// Copyright (c) 2018-2024, 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;
+
+///
+/// VkPhysicalDeviceLayeredApiKHR - API implemented by the layered implementation -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLayeredApiKHR.html
+///
+public enum VkPhysicalDeviceLayeredApiKHR
+{
+ /// VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR - the device implements the Vulkan API.
+ VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0,
+
+ /// VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR - the device implements the D3D12 API.
+ VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1,
+
+ /// VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR - the device implements the Metal API.
+ VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2,
+
+ /// VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR - the device implements the OpenGL API.
+ VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3,
+
+ /// VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR - the device implements the OpenGL ES API.
+ VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesKHR.cs
new file mode 100644
index 00000000..53ad0e0a
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesKHR.cs
@@ -0,0 +1,57 @@
+#region License
+
+// Copyright (c) 2018-2024, 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;
+
+///
+/// VkPhysicalDeviceLayeredApiPropertiesKHR - Structure describing a single layered implementation underneath the
+/// Vulkan physical device -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLayeredApiPropertiesKHR.html
+///
+///
+///
+///
+/// -
+/// returnedonlytrue
+///
+///
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceLayeredApiPropertiesKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR;
+
+ /// 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;
+
+ /// vendorID is a unique identifier for the vendor of the layered implementation.
+ public uint vendorID;
+
+ /// deviceID is a unique identifier for the layered implementation among devices available from the vendor.
+ public uint deviceID;
+
+ /// layeredAPI is a VkPhysicalDeviceLayeredApiKHR specifying the API implemented by the layered implementation.
+ public VkPhysicalDeviceLayeredApiKHR layeredAPI;
+
+ ///
+ /// deviceName is an array of VK_MAX_PHYSICAL_DEVICE_NAME_SIZEchar containing a null-terminated UTF-8 string which
+ /// is the name of the device.
+ ///
+ public fixed byte deviceName[(int)VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesListKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesListKHR.cs
new file mode 100644
index 00000000..becaa70d
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesListKHR.cs
@@ -0,0 +1,55 @@
+#region License
+
+// Copyright (c) 2018-2024, 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;
+
+///
+/// VkPhysicalDeviceLayeredApiPropertiesListKHR - Structure describing layered implementations underneath the Vulkan
+/// physical device -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLayeredApiPropertiesListKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceProperties2
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceProperties2")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceLayeredApiPropertiesListKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR;
+
+ /// 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;
+
+ ///
+ /// layeredApiCount is an integer related to the number of layered implementations underneath the Vulkan physical
+ /// device, as described below.
+ ///
+ public uint layeredApiCount;
+
+ ///
+ /// pLayeredApis is a pointer to an array of VkPhysicalDeviceLayeredApiPropertiesKHR in which information
+ /// regarding the layered implementations underneath the Vulkan physical device are returned.
+ ///
+ public VkPhysicalDeviceLayeredApiPropertiesKHR* pLayeredApis;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiVulkanPropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiVulkanPropertiesKHR.cs
new file mode 100644
index 00000000..8f785880
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiVulkanPropertiesKHR.cs
@@ -0,0 +1,52 @@
+#region License
+
+// Copyright (c) 2018-2024, 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;
+
+///
+/// VkPhysicalDeviceLayeredApiVulkanPropertiesKHR - Structure describing physical device properties of a layered Vulkan
+/// implementation underneath the Vulkan physical device -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLayeredApiVulkanPropertiesKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceLayeredApiPropertiesKHR
+///
+/// -
+/// returnedonlytrue
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceLayeredApiPropertiesKHR")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR;
+
+ /// 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;
+
+ ///
+ /// properties is a VkPhysicalDeviceProperties2 in which properties of the underlying layered Vulkan
+ /// implementation are returned.
+ ///
+ public VkPhysicalDeviceProperties2 properties;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7FeaturesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7FeaturesKHR.cs
new file mode 100644
index 00000000..26bb067b
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7FeaturesKHR.cs
@@ -0,0 +1,58 @@
+#region License
+
+// Copyright (c) 2018-2024, 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;
+
+///
+/// VkPhysicalDeviceMaintenance7FeaturesKHR - Structure describing whether the implementation supports maintenance7
+/// functionality -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance7FeaturesKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceMaintenance7FeaturesKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR;
+
+ /// 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;
+
+ ///
+ /// maintenance7 indicates that the implementation supports the following:The
+ /// VK_RENDERING_CONTENTS_INLINE_BIT_KHR and VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHRflags can be
+ /// used to record commands in render pass instances both inline and in secondary command buffers executed with
+ /// vkCmdExecuteCommands for dynamic rendering and legacy render passes respectively.Querying information regarding the
+ /// underlying devices in environments where the Vulkan implementation is provided through layered implementations.
+ /// This is done by chaining VkPhysicalDeviceLayeredApiPropertiesListKHR to VkPhysicalDeviceProperties2.New limits
+ /// which indicate the maximum total count of dynamic uniform buffers and dynamic storage buffers that can be included
+ /// in a pipeline layout.32-bit timestamp queries must wrap on overflowA property that indicates whether a fragment
+ /// shading rate attachment can have a size that is too small to cover a specified render area.A property that
+ /// indicates support for writing to one aspect of a depth/stencil attachment without performing a read-modify-write
+ /// operation on the other aspect
+ ///
+ public VkBool32 maintenance7;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7PropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7PropertiesKHR.cs
new file mode 100644
index 00000000..6383129b
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7PropertiesKHR.cs
@@ -0,0 +1,115 @@
+#region License
+
+// Copyright (c) 2018-2024, 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;
+
+///
+/// VkPhysicalDeviceMaintenance7PropertiesKHR - Structure describing various implementation-defined properties
+/// introduced with VK_KHR_maintenance7 -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance7PropertiesKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceProperties2
+///
+/// -
+/// returnedonlytrue
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceProperties2")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceMaintenance7PropertiesKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR;
+
+ /// 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;
+
+ ///
+ /// robustFragmentShadingRateAttachmentAccess indicates whether the scaled size of a fragment shading rate
+ /// attachment can be less than the size of the render area. If robustFragmentShadingRateAttachmentAccess is VK_FALSE,
+ /// the size of the attachment multiplied by the texel size must be greater than or equal to the size of the render
+ /// area. If it is VK_TRUE and the fragment shading rate attachment was created with
+ /// VkImageSubresourceRange::baseMipLevel equal to 0, the scaled size can be smaller than the render area, and shading
+ /// rates for missing texels are defined by texel replacement for invalid texels.
+ ///
+ public VkBool32 robustFragmentShadingRateAttachmentAccess;
+
+ ///
+ /// separateDepthStencilAttachmentAccess indicates support for writing to one aspect of a depth/stencil attachment
+ /// without performing read-modify-write operations on the other aspect. If this property is VK_TRUE, writes to one
+ /// aspect must not result in read-modify-write operations on the other aspect. If VK_FALSE, writes to one aspect may
+ /// result in writes to the other aspect as defined by render pass load operations, render pass store operations and
+ /// render pass resolve operations.
+ ///
+ public VkBool32 separateDepthStencilAttachmentAccess;
+
+ ///
+ /// maxDescriptorSetTotalUniformBuffersDynamic is the maximum total count of dynamic uniform buffers that can be
+ /// included in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC count against
+ /// this limit. Only descriptors in descriptor set layouts created without the
+ /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set count against this limit. See
+ /// https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic.
+ ///
+ public uint maxDescriptorSetTotalUniformBuffersDynamic;
+
+ ///
+ /// maxDescriptorSetTotalStorageBuffersDynamic is the maximum total count of dynamic storage buffers that can be
+ /// included in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against
+ /// this limit. Only descriptors in descriptor set layouts created without the
+ /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set count against this limit. See
+ /// https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic.
+ ///
+ public uint maxDescriptorSetTotalStorageBuffersDynamic;
+
+ ///
+ /// maxDescriptorSetTotalBuffersDynamic is the maximum total count of dynamic uniform buffers and storage buffers
+ /// that can be included in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or
+ /// VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this limit. Only descriptors 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 maxDescriptorSetTotalBuffersDynamic;
+
+ ///
+ /// maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic is similar to
+ /// maxDescriptorSetTotalUniformBuffersDynamic but counts descriptors from descriptor sets created with or without the
+ /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set.
+ ///
+ public uint maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
+
+ ///
+ /// maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic is similar to
+ /// maxDescriptorSetTotalStorageBuffersDynamic but counts descriptors from descriptor sets created with or without the
+ /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set.
+ ///
+ public uint maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
+
+ ///
+ /// maxDescriptorSetUpdateAfterBindTotalBuffersDynamic is similar to maxDescriptorSetTotalBuffersDynamic but
+ /// counts descriptors from descriptor sets created with or without the
+ /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set. While an application can allocate dynamic
+ /// storage buffer descriptors from a pool created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
+ /// bindings for these descriptors must not be present in any descriptor set layout that includes bindings created with
+ /// VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT.
+ ///
+ public uint maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265RateControlInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265RateControlInfoKHR.cs
index fed9d528..2cb7e949 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265RateControlInfoKHR.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265RateControlInfoKHR.cs
@@ -60,12 +60,6 @@ public unsafe struct VkVideoEncodeH265RateControlInfoKHR
/// consecutiveBFrameCount is the number of consecutive B frames between I and/or P frames within the GOP.
public uint consecutiveBFrameCount;
- ///
- /// subLayerCount
- ///
- /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkVideoEncodeH265RateControlInfoKHR
- ///
- ///
+ /// subLayerCount specifies the number of H.265 sub-layers that the application intends to use.
public uint subLayerCount;
}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.cs b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.cs
index a501c8a0..9c5a1275 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.cs
@@ -41,12 +41,6 @@ public unsafe struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
/// pNext is NULL or a pointer to a structure extending this structure.
public void* pNext;
- ///
- /// fragmentDensityMapOffset
- ///
- /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
- ///
- ///
+ /// fragmentDensityMapOffsetspecifies whether the implementation supports fragment density map offsets
public VkBool32 fragmentDensityMapOffset;
}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkQcomFragmentDensityMapOffset.cs b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkQcomFragmentDensityMapOffset.cs
index 815d4d8b..7eab8117 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkQcomFragmentDensityMapOffset.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkQcomFragmentDensityMapOffset.cs
@@ -31,7 +31,7 @@ namespace Exomia.Vulkan.Api.Core;
public static class VkQcomFragmentDensityMapOffset
{
/// The spec version.
- public const uint VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1;
+ public const uint VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 2;
/// The extension name.
public const string VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset";