diff --git a/.version b/.version
index 72e193a6..c47852f3 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-1.3.299
\ No newline at end of file
+1.3.300
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkMemoryPropertyFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkMemoryPropertyFlagBits.cs
index 151a2176..5260df6b 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkMemoryPropertyFlagBits.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkMemoryPropertyFlagBits.cs
@@ -68,8 +68,20 @@ public enum VkMemoryPropertyFlagBits
VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x20,
///
- /// VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD bit specifies that device accesses to allocations of this memory
- /// type are automatically made available and visible.
+ /// VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD bit specifies that device accesses to allocations of this memory type
+ /// are automatically made
+ ///
+ /// available
+ /// and visible
+ ///
+ /// on the device. If paired with VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
+ ///
+ /// memory
+ /// domain operations
+ ///
+ /// are also performed automatically between host and device.
///
VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x40,
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
index 2445b711..16e3fb15 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
@@ -5647,6 +5647,24 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
+
+ ///
+ /// VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,
+
///
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES
/// 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_mesh_shader/VkPhysicalDeviceMeshShaderFeaturesEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_mesh_shader/VkPhysicalDeviceMeshShaderFeaturesEXT.cs
index e4c63e81..56d26b84 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_mesh_shader/VkPhysicalDeviceMeshShaderFeaturesEXT.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_mesh_shader/VkPhysicalDeviceMeshShaderFeaturesEXT.cs
@@ -54,7 +54,7 @@ public unsafe struct VkPhysicalDeviceMeshShaderFeaturesEXT
public VkBool32 meshShader;
///
- /// multiviewMeshShader specifies whether the implementation supports multiviewrendering within a render pass,
+ /// multiviewMeshShader specifies whether the implementation supports multiview rendering within a render pass,
/// with mesh shaders. If this feature is not enabled, then a pipeline compiled against a subpass with a non-zero view
/// mask must not include a mesh shader.
///
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkExtOpacityMicromap.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkExtOpacityMicromap.cs
index 78312cd2..0aeefdf8 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkExtOpacityMicromap.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkExtOpacityMicromap.cs
@@ -285,7 +285,7 @@ public static readonly delegate*<
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyMemoryToMicromapEXT.html
///
/// commandBuffer is the command buffer into which the command will be recorded.
- /// pInfo is a pointer to a VkCopyMicromapToMemoryInfoEXTstructure defining the copy operation.
+ /// pInfo is a pointer to a VkCopyMemoryToMicromapInfoEXTstructure defining the copy operation.
public static readonly delegate*<
VkCommandBuffer /*commandBuffer*/,
VkCopyMemoryToMicromapInfoEXT* /*pInfo*/,
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.cs
new file mode 100644
index 00000000..597d2e70
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.cs
@@ -0,0 +1,87 @@
+#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;
+
+///
+/// VkCooperativeMatrixFlexibleDimensionsPropertiesNV - Structure specifying cooperative matrix properties -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.html
+///
+///
+///
+///
+/// -
+/// returnedonlytrue
+///
+///
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV;
+
+ /// 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;
+
+ ///
+ /// MGranularity is the granularity of the number of rows in matrices A, C, and Result. The rows must be an
+ /// integer multiple of this value.
+ ///
+ public uint MGranularity;
+
+ ///
+ /// NGranularity is the granularity of columns in matrices B, C, Result. The columns must be an integer multiple
+ /// of this value.
+ ///
+ public uint NGranularity;
+
+ ///
+ /// KGranularity is the granularity of columns in matrix A and rows in matrix B. The columns/rows must be an
+ /// integer multiple of this value.
+ ///
+ public uint KGranularity;
+
+ /// AType is the component type of matrix A, of type VkComponentTypeKHR.
+ public VkComponentTypeKHR AType;
+
+ /// BType is the component type of matrix B, of type VkComponentTypeKHR.
+ public VkComponentTypeKHR BType;
+
+ /// CType is the component type of matrix C, of type VkComponentTypeKHR.
+ public VkComponentTypeKHR CType;
+
+ /// ResultType is the component type of matrix Result, of type VkComponentTypeKHR.
+ public VkComponentTypeKHR ResultType;
+
+ ///
+ /// saturatingAccumulation indicates whether the SaturatingAccumulation operand to
+ /// OpCooperativeMatrixMulAddKHRmust be present or not. If it is VK_TRUE, the SaturatingAccumulation operand must be
+ /// present. If it is VK_FALSE, the SaturatingAccumulation operand mustnot be present.
+ ///
+ public VkBool32 saturatingAccumulation;
+
+ /// scope is the scope of all the matrix types, of type VkScopeKHR.
+ public VkScopeKHR scope;
+
+ ///
+ /// workgroupInvocations is the number of invocations in the local workgroup when this combination of values is
+ /// supported.
+ ///
+ public uint workgroupInvocations;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkNvCooperativeMatrix2.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkNvCooperativeMatrix2.cs
new file mode 100644
index 00000000..27032955
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkNvCooperativeMatrix2.cs
@@ -0,0 +1,104 @@
+#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.VkNvCooperativeMatrix2;
+
+#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_NV_cooperative_matrix2 - device extension (nr. 594) - author 'NV' [platform '' | contact 'Jeff Bolz
+/// @jeffbolznv']
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_NV_cooperative_matrix2.html
+///
+[VkDepends("VK_KHR_cooperative_matrix")]
+[VkDeviceExt]
+public static unsafe class VkNvCooperativeMatrix2
+{
+ /// The spec version.
+ public const uint VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION = 1;
+
+ /// The extension name.
+ public const string VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME = "VK_NV_cooperative_matrix2";
+
+ ///
+ /// An UTF8 null terminated version of represented by an
+ /// UTF16 string.
+ ///
+ ///
+ /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_NV_COOPERATIVE_MATRIX_2_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_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME_UTF8_NT =
+ "\u4b56\u4e5f\u5f56\u4f43\u504f\u5245\u5441\u5649\u5f45\u414d\u5254\u5849\u325f\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045";
+
+ ///
+ /// vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV - Returns properties describing what cooperative
+ /// matrix types are supported -
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.html
+ ///
+ ///
+ /// physicalDevice is the physical device.
+ ///
+ /// pPropertyCount is a pointer to an integer related to the number of cooperative matrix
+ /// properties available or queried.
+ ///
+ ///
+ /// pProperties is either NULL or a pointer to an array of
+ /// VkCooperativeMatrixFlexibleDimensionsPropertiesNV structures.
+ ///
+ ///
+ ///
+ /// -
+ /// successcodesVK_SUCCESS,VK_INCOMPLETE
+ ///
+ /// -
+ /// errorcodesVK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY
+ ///
+ ///
+ ///
+ public static readonly delegate*<
+ VkPhysicalDevice /*physicalDevice*/,
+ uint* /*pPropertyCount*/,
+ VkCooperativeMatrixFlexibleDimensionsPropertiesNV* /*pProperties*/,
+ VkResult> vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = null;
+
+ /// Loads all function pointer based on the instance for this extension. (see remarks!)
+ /// The instance that the function pointers will be compatible with.
+ ///
+ /// This load method makes the following function pointers available:
+ ///
+ /// -
+ /// vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV
+ ///
+ ///
+ ///
+ public static void Load(VkInstance instance)
+ {
+ fixed (delegate** pvkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV =
+ &vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)
+ {
+ *pvkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = (delegate*)GetVkFunction(
+ instance,
+ "\u6b76\u6547\u5074\u7968\u6973\u6163\u446c\u7665\u6369\u4365\u6f6f\u6570\u6172\u6974\u6576\u614d\u7274\u7869\u6c46\u7865\u6269\u656c\u6944\u656d\u736e\u6f69\u736e\u7250\u706f\u7265\u6974\u7365\u564e\u0000");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.cs
new file mode 100644
index 00000000..a72b0048
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.cs
@@ -0,0 +1,87 @@
+#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;
+
+///
+/// VkPhysicalDeviceCooperativeMatrix2FeaturesNV - Structure describing cooperative matrix features that can be
+/// supported by an implementation -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV;
+
+ /// 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;
+
+ ///
+ /// cooperativeMatrixWorkgroupScope indicates that the implementation supports workgroup scope cooperative
+ /// matrices.
+ ///
+ public VkBool32 cooperativeMatrixWorkgroupScope;
+
+ ///
+ /// cooperativeMatrixFlexibleDimensions indicates that the implementation supports cooperative matrix sizes that
+ /// are a multiple of the granularity advertised in VkCooperativeMatrixFlexibleDimensionsPropertiesNV.
+ ///
+ public VkBool32 cooperativeMatrixFlexibleDimensions;
+
+ ///
+ /// cooperativeMatrixReductions indicates that the implementation supports the CooperativeMatrixReductionsNV
+ /// SPIR-V capability. This allows performing (row, column, 2x2, or all element) reductions on matrices.
+ ///
+ public VkBool32 cooperativeMatrixReductions;
+
+ ///
+ /// cooperativeMatrixConversions indicates that the implementation supports the CooperativeMatrixConversionsNV
+ /// SPIR-V capability. This allows converting accumulator matrices to A or B matrices.
+ ///
+ public VkBool32 cooperativeMatrixConversions;
+
+ ///
+ /// cooperativeMatrixPerElementOperations indicates that the implementation supports the
+ /// CooperativeMatrixPerElementOperationsNVSPIR-V capability. This allows performing element-wise operations on matrix
+ /// elements using a callback function.
+ ///
+ public VkBool32 cooperativeMatrixPerElementOperations;
+
+ ///
+ /// cooperativeMatrixTensorAddressing indicates that the implementation supports the TensorAddressingNV and
+ /// CooperativeMatrixTensorAddressingNV SPIR-V capabilities. This allows using tensor layout and tensor view types for
+ /// matrix loads and stores.
+ ///
+ public VkBool32 cooperativeMatrixTensorAddressing;
+
+ ///
+ /// cooperativeMatrixBlockLoads indicates that the implementation supports the CooperativeMatrixBlockLoadsNV
+ /// SPIR-V capability. This allows setting block size for loads and using a callback function to decode block elements.
+ ///
+ public VkBool32 cooperativeMatrixBlockLoads;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.cs
new file mode 100644
index 00000000..8fb3dc1f
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.cs
@@ -0,0 +1,64 @@
+#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;
+
+///
+/// VkPhysicalDeviceCooperativeMatrix2PropertiesNV - Structure describing cooperative matrix properties supported by an
+/// implementation -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceProperties2
+///
+/// -
+/// returnedonlytrue
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceProperties2")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV;
+
+ /// 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;
+
+ ///
+ /// cooperativeMatrixWorkgroupScopeMaxWorkgroupSize is the maximum number of invocations in a workgroup when the
+ /// module uses OpTypeCooperativeMatrixKHR with Scope equal to Workgroup.
+ ///
+ public uint cooperativeMatrixWorkgroupScopeMaxWorkgroupSize;
+
+ ///
+ /// cooperativeMatrixFlexibleDimensionsMaxDimension is the maximum supported dimension for cooperative matrix
+ /// types when cooperativeMatrixFlexibleDimensionsis enabled.
+ ///
+ public uint cooperativeMatrixFlexibleDimensionsMaxDimension;
+
+ ///
+ /// cooperativeMatrixWorkgroupScopeReservedSharedMemory is the number of bytes of shared memory reserved for the
+ /// implementation when the module uses OpTypeCooperativeMatrixKHR with Scope equal to Workgroup.
+ ///
+ public uint cooperativeMatrixWorkgroupScopeReservedSharedMemory;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk.1.0.cs b/src/Exomia.Vulkan.Api.Core/vk.1.0.cs
index 5202a767..0635605c 100644
--- a/src/Exomia.Vulkan.Api.Core/vk.1.0.cs
+++ b/src/Exomia.Vulkan.Api.Core/vk.1.0.cs
@@ -729,7 +729,7 @@ public static extern unsafe void vkFreeMemory(
///
///
/// ppData is a pointer to a void* variable in which a host-accessible pointer to the beginning of the
- /// mapped range is returned. This pointer minus offset must be aligned to at least
+ /// mapped range is returned. The value of the returned pointer minus offset must be aligned to
/// VkPhysicalDeviceLimits::minMemoryMapAlignment.
///
///