diff --git a/.version b/.version
index a006ba70..64f75c23 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-1.3.276
\ No newline at end of file
+1.3.277
\ No newline at end of file
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 65acc433..fb8fe9a7 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -3,7 +3,7 @@
- net6.0;net7.0
+ net6.0;net7.0;net8.0
AnyCPU;x64
diff --git a/src/Exomia.Vulkan.Api.Core/Custom/VkArray8.cs b/src/Exomia.Vulkan.Api.Core/Custom/VkArray8.cs
new file mode 100644
index 00000000..03f6f77e
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Custom/VkArray8.cs
@@ -0,0 +1,88 @@
+#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 once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// Used instead of public fixed T[8].
+///
+/// Generic type parameter.
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkArray8
+ where T : unmanaged
+{
+ ///
+ /// The length of .
+ ///
+ public const uint LENGTH = 8;
+
+ ///
+ /// Indexer to get or set items within this collection using array index syntax.
+ ///
+ /// Zero-based index of the entry to access.
+ ///
+ /// The indexed item.
+ ///
+ public T this[uint index]
+ {
+ get
+ {
+#if DEBUG
+ if (index >= LENGTH) { throw new ArgumentOutOfRangeException(nameof(index)); }
+#endif
+ return *((T*)Unsafe.AsPointer(ref this) + index);
+ }
+ set
+ {
+#if DEBUG
+ if (index >= LENGTH) { throw new ArgumentOutOfRangeException(nameof(index)); }
+#endif
+ *((T*)Unsafe.AsPointer(ref this) + index) = value;
+ }
+ }
+
+ ///
+ /// Indexer to get or set items within this collection using array index syntax.
+ ///
+ /// Zero-based index of the entry to access.
+ ///
+ /// The indexed item.
+ ///
+ public T this[int index]
+ {
+ get
+ {
+#if DEBUG
+ if (index >= LENGTH || index < 0) { throw new ArgumentOutOfRangeException(nameof(index)); }
+#endif
+ return *((T*)Unsafe.AsPointer(ref this) + index);
+ }
+ set
+ {
+#if DEBUG
+ if (index >= LENGTH || index < 0) { throw new ArgumentOutOfRangeException(nameof(index)); }
+#endif
+ *((T*)Unsafe.AsPointer(ref this) + index) = value;
+ }
+ }
+
+#pragma warning disable 1591 //Missing XML comment for publicly visible type or member
+ public T M01;
+ public T M02;
+ public T M03;
+ public T M04;
+ public T M05;
+ public T M06;
+ public T M07;
+ public T M08;
+#pragma warning restore 1591 //Missing XML comment for publicly visible type or member
+}
\ 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 2914c9d3..caa30352 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
@@ -5083,6 +5083,36 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
+ ///
+ /// VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
+
+ ///
+ /// VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
+
+ ///
+ /// VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
+
+ ///
+ /// VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
+
+ ///
+ /// VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
+
///
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkSubgroupFeatureFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkSubgroupFeatureFlagBits.cs
index 6e3dc4ae..f5195ff7 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkSubgroupFeatureFlagBits.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkSubgroupFeatureFlagBits.cs
@@ -72,5 +72,17 @@ public enum VkSubgroupFeatureFlagBits
/// VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkSubgroupFeatureFlagBits
///
- VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x100
+ VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x100,
+
+ ///
+ /// VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkSubgroupFeatureFlagBits
+ ///
+ VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = 0x200,
+
+ ///
+ /// VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkSubgroupFeatureFlagBits
+ ///
+ VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = 0x400
}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_line_rasterization/VkExtLineRasterization.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_line_rasterization/VkExtLineRasterization.cs
index 3c0e8b5d..3f6c94fb 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_line_rasterization/VkExtLineRasterization.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_line_rasterization/VkExtLineRasterization.cs
@@ -29,6 +29,7 @@ namespace Exomia.Vulkan.Api.Core;
[VkDepends("VK_KHR_get_physical_device_properties2,VK_VERSION_1_1")]
[VkSpecialuse("cadsupport")]
[VkDeviceExt]
+[Obsolete("promoted to VK_KHR_line_rasterization", false, UrlFormat = "https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_EXT_line_rasterization.html#_deprecation_state")]
public static unsafe class VkExtLineRasterization
{
/// The spec version.
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_shader_subgroup_rotate/VkKhrShaderSubgroupRotate.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_shader_subgroup_rotate/VkKhrShaderSubgroupRotate.cs
index 740fa7dc..3877b2f8 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_shader_subgroup_rotate/VkKhrShaderSubgroupRotate.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_shader_subgroup_rotate/VkKhrShaderSubgroupRotate.cs
@@ -27,7 +27,7 @@ namespace Exomia.Vulkan.Api.Core;
public static class VkKhrShaderSubgroupRotate
{
/// The spec version.
- public const uint VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION = 1;
+ public const uint VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION = 2;
/// The extension name.
public const string VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME = "VK_KHR_shader_subgroup_rotate";
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkKhrVideoDecodeAv1.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkKhrVideoDecodeAv1.cs
new file mode 100644
index 00000000..8de0432c
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkKhrVideoDecodeAv1.cs
@@ -0,0 +1,51 @@
+#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.VkKhrVideoDecodeAv1;
+
+#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_video_decode_av1 - device extension (nr. 513) - author 'KHR' [platform '' | contact 'Daniel Rakos @aqnuep']
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_decode_av1.html
+///
+[VkDepends("VK_KHR_video_decode_queue")]
+[VkDeviceExt]
+public static class VkKhrVideoDecodeAv1
+{
+ /// The spec version.
+ public const uint VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION = 1;
+
+ /// The extension name.
+ public const string VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME = "VK_KHR_video_decode_av1";
+
+ ///
+ /// An UTF8 null terminated version of represented by an
+ /// UTF16 string.
+ ///
+ ///
+ /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_KHR_VIDEO_DECODE_AV1_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_VIDEO_DECODE_AV1_EXTENSION_NAME_UTF8_NT = "\u4b56\u4b5f\u5248\u565f\u4449\u4f45\u445f\u4345\u444f\u5f45\u5641\u5f31\u5845\u4554\u534e\u4f49\u5f4e\u414e\u454d\u0000";
+
+ public const uint VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR = 7;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1CapabilitiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1CapabilitiesKHR.cs
new file mode 100644
index 00000000..da7597de
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1CapabilitiesKHR.cs
@@ -0,0 +1,51 @@
+#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;
+
+///
+/// VkVideoDecodeAV1CapabilitiesKHR - Structure describing AV1 decode capabilities -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoDecodeAV1CapabilitiesKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkVideoCapabilitiesKHR
+///
+/// -
+/// returnedonlytrue
+///
+///
+///
+[VkStructExtends("VkVideoCapabilitiesKHR")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkVideoDecodeAV1CapabilitiesKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_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;
+
+ ///
+ /// maxLevel is a StdVideoAV1Level value specifying the maximum AV1 level supported by the profile, as defined in
+ /// section A.3 of the AV1 Specification.
+ ///
+ public StdVideoAV1Level maxLevel;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1DpbSlotInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1DpbSlotInfoKHR.cs
new file mode 100644
index 00000000..45027f89
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1DpbSlotInfoKHR.cs
@@ -0,0 +1,45 @@
+#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;
+
+///
+/// VkVideoDecodeAV1DpbSlotInfoKHR - Structure specifies AV1 DPB information when decoding a frame -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoDecodeAV1DpbSlotInfoKHR.html
+///
+///
+///
+/// -
+/// structextendsVkVideoReferenceSlotInfoKHR
+///
+///
+///
+[VkStructExtends("VkVideoReferenceSlotInfoKHR")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkVideoDecodeAV1DpbSlotInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_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;
+
+ ///
+ /// pStdReferenceInfo is a pointer to a StdVideoDecodeAV1ReferenceInfo structure specifying AV1 reference
+ /// information.
+ ///
+ public StdVideoDecodeAV1ReferenceInfo* pStdReferenceInfo;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1PictureInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1PictureInfoKHR.cs
new file mode 100644
index 00000000..7714a19a
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1PictureInfoKHR.cs
@@ -0,0 +1,72 @@
+#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;
+
+///
+/// VkVideoDecodeAV1PictureInfoKHR - Structure specifies AV1 picture information when decoding a frame -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoDecodeAV1PictureInfoKHR.html
+///
+///
+///
+/// -
+/// structextendsVkVideoDecodeInfoKHR
+///
+///
+///
+[VkStructExtends("VkVideoDecodeInfoKHR")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkVideoDecodeAV1PictureInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_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;
+
+ /// pStdPictureInfo is a pointer to a StdVideoDecodeAV1PictureInfo structure specifying AV1 picture information.
+ public StdVideoDecodeAV1PictureInfo* pStdPictureInfo;
+
+ ///
+ /// referenceNameSlotIndices is an array of seven (VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR, which is equal to
+ /// the Video Std definition STD_VIDEO_AV1_REFS_PER_FRAME) signed integer values specifying the index of the DPB slot
+ /// or a negative integer value for each AV1 reference nameused for inter coding. In particular, the DPB slot index for
+ /// the AV1 reference name frameis specified in referenceNameSlotIndices[frame -
+ /// STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME].
+ ///
+ public fixed int referenceNameSlotIndices[(int)VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
+
+ ///
+ /// frameHeaderOffset is the byte offset of the AV1 frame header OBU, as defined in section 5.9 of the AV1
+ /// Specification, within the video bitstream buffer range specified in VkVideoDecodeInfoKHR.
+ ///
+ public uint frameHeaderOffset;
+
+ /// tileCount is the number of elements in pTileOffsets and pTileSizes.
+ public uint tileCount;
+
+ ///
+ /// pTileOffsets is a pointer to an array of tileCount integers specifying the byte offset of the tiles of the
+ /// picture within the video bitstream buffer range specified in VkVideoDecodeInfoKHR.
+ ///
+ public uint* pTileOffsets;
+
+ ///
+ /// pTileSizes is a pointer to an array of tileCount integers specifying the byte size of the tiles of the picture
+ /// within the video bitstream buffer range specified in VkVideoDecodeInfoKHR.
+ ///
+ public uint* pTileSizes;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1ProfileInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1ProfileInfoKHR.cs
new file mode 100644
index 00000000..28faca90
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1ProfileInfoKHR.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;
+
+///
+/// VkVideoDecodeAV1ProfileInfoKHR - Structure specifying AV1 decode profile -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoDecodeAV1ProfileInfoKHR.html
+///
+///
+///
+/// -
+/// structextendsVkVideoProfileInfoKHR,VkQueryPoolCreateInfo
+///
+///
+///
+[VkStructExtends("VkVideoProfileInfoKHR,VkQueryPoolCreateInfo")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkVideoDecodeAV1ProfileInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_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;
+
+ ///
+ /// stdProfile is a StdVideoAV1Profile value specifying the AV1 codec profile, as defined in section A.2 of the
+ /// AV1 Specification.
+ ///
+ public StdVideoAV1Profile stdProfile;
+
+ ///
+ /// filmGrainSupport specifies whether AV1 film grain, as defined in section 7.8.3 of the AV1 Specification, can
+ /// be used with the video profile. When this member is set to VK_TRUE, video session objects created against the video
+ /// profile will be able to decode pictures that have film grain enabled.
+ ///
+ public VkBool32 filmGrainSupport;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1SessionParametersCreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1SessionParametersCreateInfoKHR.cs
new file mode 100644
index 00000000..8359dcc9
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkVideoDecodeAV1SessionParametersCreateInfoKHR.cs
@@ -0,0 +1,48 @@
+#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;
+
+///
+/// VkVideoDecodeAV1SessionParametersCreateInfoKHR - Structure specifies AV1 decoder parameter set information -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoDecodeAV1SessionParametersCreateInfoKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkVideoSessionParametersCreateInfoKHR
+///
+///
+///
+[VkStructExtends("VkVideoSessionParametersCreateInfoKHR")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkVideoDecodeAV1SessionParametersCreateInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_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;
+
+ ///
+ /// pStdSequenceHeader is a pointer to a StdVideoAV1SequenceHeader structure describing the AV1 sequence header
+ /// entry to store in the created object.
+ ///
+ public StdVideoAV1SequenceHeader* pStdSequenceHeader;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodecOperationFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodecOperationFlagBitsKHR.cs
index b15bd315..0fbcbb79 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodecOperationFlagBitsKHR.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodecOperationFlagBitsKHR.cs
@@ -64,5 +64,15 @@ public enum VkVideoCodecOperationFlagBitsKHR
///
/// .
///
- VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x2
+ VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x2,
+
+ ///
+ /// VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR specifies support for
+ ///
+ /// AV1 decode
+ /// operations
+ ///
+ /// .
+ ///
+ VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x4
}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1CDEF.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1CDEF.cs
new file mode 100644
index 00000000..8de029d2
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1CDEF.cs
@@ -0,0 +1,33 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct StdVideoAV1CDEF
+{
+ public byte cdef_damping_minus_3;
+
+ public byte cdef_bits;
+
+ public fixed byte cdef_y_pri_strength[(int)STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
+
+ public fixed byte cdef_y_sec_strength[(int)STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
+
+ public fixed byte cdef_uv_pri_strength[(int)STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
+
+ public fixed byte cdef_uv_sec_strength[(int)STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ChromaSamplePosition.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ChromaSamplePosition.cs
new file mode 100644
index 00000000..67ea254a
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ChromaSamplePosition.cs
@@ -0,0 +1,26 @@
+#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
+
+#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;
+
+public enum StdVideoAV1ChromaSamplePosition
+{
+ STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN = 0,
+ STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL = 1,
+ STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED = 2,
+ STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED = 3,
+ STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID = 0x7FFFFFFF
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorConfig.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorConfig.cs
new file mode 100644
index 00000000..de1a447b
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorConfig.cs
@@ -0,0 +1,39 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoAV1ColorConfig
+{
+ public StdVideoAV1ColorConfigFlags flags;
+
+ public byte BitDepth;
+
+ public byte subsampling_x;
+
+ public byte subsampling_y;
+
+ public byte reserved1;
+
+ public StdVideoAV1ColorPrimaries color_primaries;
+
+ public StdVideoAV1TransferCharacteristics transfer_characteristics;
+
+ public StdVideoAV1MatrixCoefficients matrix_coefficients;
+
+ public StdVideoAV1ChromaSamplePosition chroma_sample_position;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorConfigFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorConfigFlags.cs
new file mode 100644
index 00000000..2b0d0bb4
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorConfigFlags.cs
@@ -0,0 +1,53 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoAV1ColorConfigFlags
+{
+ private uint _bitfield1;
+
+ public uint mono_chrome
+ {
+ get { return (uint)((_bitfield1 >> 0) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); }
+ }
+
+ public uint color_range
+ {
+ get { return (uint)((_bitfield1 >> 1) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFD) | (((uint)value & 0x00000001) << 1); }
+ }
+
+ public uint separate_uv_delta_q
+ {
+ get { return (uint)((_bitfield1 >> 2) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFB) | (((uint)value & 0x00000001) << 2); }
+ }
+
+ public uint color_description_present_flag
+ {
+ get { return (uint)((_bitfield1 >> 3) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFF7) | (((uint)value & 0x00000001) << 3); }
+ }
+
+ public uint reserved
+ {
+ get { return (uint)((_bitfield1 >> 4) & 0x0FFFFFFF); }
+ set { _bitfield1 = (_bitfield1 & 0x0000000F) | (((uint)value & 0x0FFFFFFF) << 4); }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorPrimaries.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorPrimaries.cs
new file mode 100644
index 00000000..0c52ba58
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorPrimaries.cs
@@ -0,0 +1,34 @@
+#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
+
+#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;
+
+public enum StdVideoAV1ColorPrimaries
+{
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = 2,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240 = 7,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM = 8,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020 = 9,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ = 10,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431 = 11,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22,
+ STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FilmGrain.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FilmGrain.cs
new file mode 100644
index 00000000..b63c989e
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FilmGrain.cs
@@ -0,0 +1,71 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct StdVideoAV1FilmGrain
+{
+ public StdVideoAV1FilmGrainFlags flags;
+
+ public byte grain_scaling_minus_8;
+
+ public byte ar_coeff_lag;
+
+ public byte ar_coeff_shift_minus_6;
+
+ public byte grain_scale_shift;
+
+ public ushort grain_seed;
+
+ public byte film_grain_params_ref_idx;
+
+ public byte num_y_points;
+
+ public fixed byte point_y_value[(int)STD_VIDEO_AV1_MAX_NUM_Y_POINTS];
+
+ public fixed byte point_y_scaling[(int)STD_VIDEO_AV1_MAX_NUM_Y_POINTS];
+
+ public byte num_cb_points;
+
+ public fixed byte point_cb_value[(int)STD_VIDEO_AV1_MAX_NUM_CB_POINTS];
+
+ public fixed byte point_cb_scaling[(int)STD_VIDEO_AV1_MAX_NUM_CB_POINTS];
+
+ public byte num_cr_points;
+
+ public fixed byte point_cr_value[(int)STD_VIDEO_AV1_MAX_NUM_CR_POINTS];
+
+ public fixed byte point_cr_scaling[(int)STD_VIDEO_AV1_MAX_NUM_CR_POINTS];
+
+ public fixed sbyte ar_coeffs_y_plus_128[(int)STD_VIDEO_AV1_MAX_NUM_POS_LUMA];
+
+ public fixed sbyte ar_coeffs_cb_plus_128[(int)STD_VIDEO_AV1_MAX_NUM_POS_CHROMA];
+
+ public fixed sbyte ar_coeffs_cr_plus_128[(int)STD_VIDEO_AV1_MAX_NUM_POS_CHROMA];
+
+ public byte cb_mult;
+
+ public byte cb_luma_mult;
+
+ public ushort cb_offset;
+
+ public byte cr_mult;
+
+ public byte cr_luma_mult;
+
+ public ushort cr_offset;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FilmGrainFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FilmGrainFlags.cs
new file mode 100644
index 00000000..d6d18b5b
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FilmGrainFlags.cs
@@ -0,0 +1,53 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoAV1FilmGrainFlags
+{
+ private uint _bitfield1;
+
+ public uint chroma_scaling_from_luma
+ {
+ get { return (uint)((_bitfield1 >> 0) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); }
+ }
+
+ public uint overlap_flag
+ {
+ get { return (uint)((_bitfield1 >> 1) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFD) | (((uint)value & 0x00000001) << 1); }
+ }
+
+ public uint clip_to_restricted_range
+ {
+ get { return (uint)((_bitfield1 >> 2) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFB) | (((uint)value & 0x00000001) << 2); }
+ }
+
+ public uint update_grain
+ {
+ get { return (uint)((_bitfield1 >> 3) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFF7) | (((uint)value & 0x00000001) << 3); }
+ }
+
+ public uint reserved
+ {
+ get { return (uint)((_bitfield1 >> 4) & 0x0FFFFFFF); }
+ set { _bitfield1 = (_bitfield1 & 0x0000000F) | (((uint)value & 0x0FFFFFFF) << 4); }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FrameRestorationType.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FrameRestorationType.cs
new file mode 100644
index 00000000..275602e4
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FrameRestorationType.cs
@@ -0,0 +1,26 @@
+#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
+
+#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;
+
+public enum StdVideoAV1FrameRestorationType
+{
+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE = 0,
+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER = 1,
+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ = 2,
+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE = 3,
+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID = 0x7FFFFFFF
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FrameType.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FrameType.cs
new file mode 100644
index 00000000..31a85fa3
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1FrameType.cs
@@ -0,0 +1,26 @@
+#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
+
+#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;
+
+public enum StdVideoAV1FrameType
+{
+ STD_VIDEO_AV1_FRAME_TYPE_KEY = 0,
+ STD_VIDEO_AV1_FRAME_TYPE_INTER = 1,
+ STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY = 2,
+ STD_VIDEO_AV1_FRAME_TYPE_SWITCH = 3,
+ STD_VIDEO_AV1_FRAME_TYPE_INVALID = 0x7FFFFFFF
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1GlobalMotion.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1GlobalMotion.cs
new file mode 100644
index 00000000..b5a49644
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1GlobalMotion.cs
@@ -0,0 +1,25 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct StdVideoAV1GlobalMotion
+{
+ public fixed byte GmType[(int)STD_VIDEO_AV1_NUM_REF_FRAMES];
+
+ public VkArray8> gm_params;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1InterpolationFilter.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1InterpolationFilter.cs
new file mode 100644
index 00000000..26aae611
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1InterpolationFilter.cs
@@ -0,0 +1,27 @@
+#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
+
+#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;
+
+public enum StdVideoAV1InterpolationFilter
+{
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP = 0,
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1,
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2,
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR = 3,
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE = 4,
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Level.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Level.cs
new file mode 100644
index 00000000..fad76dd5
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Level.cs
@@ -0,0 +1,46 @@
+#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
+
+#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;
+
+public enum StdVideoAV1Level
+{
+ STD_VIDEO_AV1_LEVEL_2_0 = 0,
+ STD_VIDEO_AV1_LEVEL_2_1 = 1,
+ STD_VIDEO_AV1_LEVEL_2_2 = 2,
+ STD_VIDEO_AV1_LEVEL_2_3 = 3,
+ STD_VIDEO_AV1_LEVEL_3_0 = 4,
+ STD_VIDEO_AV1_LEVEL_3_1 = 5,
+ STD_VIDEO_AV1_LEVEL_3_2 = 6,
+ STD_VIDEO_AV1_LEVEL_3_3 = 7,
+ STD_VIDEO_AV1_LEVEL_4_0 = 8,
+ STD_VIDEO_AV1_LEVEL_4_1 = 9,
+ STD_VIDEO_AV1_LEVEL_4_2 = 10,
+ STD_VIDEO_AV1_LEVEL_4_3 = 11,
+ STD_VIDEO_AV1_LEVEL_5_0 = 12,
+ STD_VIDEO_AV1_LEVEL_5_1 = 13,
+ STD_VIDEO_AV1_LEVEL_5_2 = 14,
+ STD_VIDEO_AV1_LEVEL_5_3 = 15,
+ STD_VIDEO_AV1_LEVEL_6_0 = 16,
+ STD_VIDEO_AV1_LEVEL_6_1 = 17,
+ STD_VIDEO_AV1_LEVEL_6_2 = 18,
+ STD_VIDEO_AV1_LEVEL_6_3 = 19,
+ STD_VIDEO_AV1_LEVEL_7_0 = 20,
+ STD_VIDEO_AV1_LEVEL_7_1 = 21,
+ STD_VIDEO_AV1_LEVEL_7_2 = 22,
+ STD_VIDEO_AV1_LEVEL_7_3 = 23,
+ STD_VIDEO_AV1_LEVEL_INVALID = 0x7FFFFFFF
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1LoopFilter.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1LoopFilter.cs
new file mode 100644
index 00000000..8f41fe8b
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1LoopFilter.cs
@@ -0,0 +1,35 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct StdVideoAV1LoopFilter
+{
+ public StdVideoAV1LoopFilterFlags flags;
+
+ public fixed byte loop_filter_level[(int)STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS];
+
+ public byte loop_filter_sharpness;
+
+ public byte update_ref_delta;
+
+ public fixed sbyte loop_filter_ref_deltas[(int)STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME];
+
+ public byte update_mode_delta;
+
+ public fixed sbyte loop_filter_mode_deltas[(int)STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS];
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1LoopFilterFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1LoopFilterFlags.cs
new file mode 100644
index 00000000..e7a56fb0
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1LoopFilterFlags.cs
@@ -0,0 +1,41 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoAV1LoopFilterFlags
+{
+ private uint _bitfield1;
+
+ public uint loop_filter_delta_enabled
+ {
+ get { return (uint)((_bitfield1 >> 0) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); }
+ }
+
+ public uint loop_filter_delta_update
+ {
+ get { return (uint)((_bitfield1 >> 1) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFD) | (((uint)value & 0x00000001) << 1); }
+ }
+
+ public uint reserved
+ {
+ get { return (uint)((_bitfield1 >> 2) & 0x3FFFFFFF); }
+ set { _bitfield1 = (_bitfield1 & 0x00000003) | (((uint)value & 0x3FFFFFFF) << 2); }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1LoopRestoration.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1LoopRestoration.cs
new file mode 100644
index 00000000..644ae99a
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1LoopRestoration.cs
@@ -0,0 +1,25 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoAV1LoopRestoration
+{
+ public VkArray3 FrameRestorationType;
+
+ public VkArray3 LoopRestorationSize;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1MatrixCoefficients.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1MatrixCoefficients.cs
new file mode 100644
index 00000000..36e2207a
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1MatrixCoefficients.cs
@@ -0,0 +1,37 @@
+#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
+
+#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;
+
+public enum StdVideoAV1MatrixCoefficients
+{
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY = 0,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709 = 1,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED = 2,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3 = 3,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC = 4,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G = 5,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601 = 6,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240 = 7,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO = 8,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL = 9,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL = 10,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085 = 11,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL = 12,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL = 13,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP = 14,
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID = 0x7FFFFFFF
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Profile.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Profile.cs
new file mode 100644
index 00000000..7003229b
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Profile.cs
@@ -0,0 +1,25 @@
+#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
+
+#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;
+
+public enum StdVideoAV1Profile
+{
+ STD_VIDEO_AV1_PROFILE_MAIN = 0,
+ STD_VIDEO_AV1_PROFILE_HIGH = 1,
+ STD_VIDEO_AV1_PROFILE_PROFESSIONAL = 2,
+ STD_VIDEO_AV1_PROFILE_INVALID = 0x7FFFFFFF
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Quantization.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Quantization.cs
new file mode 100644
index 00000000..a537eecb
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Quantization.cs
@@ -0,0 +1,41 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoAV1Quantization
+{
+ public StdVideoAV1QuantizationFlags flags;
+
+ public byte base_q_idx;
+
+ public sbyte DeltaQYDc;
+
+ public sbyte DeltaQUDc;
+
+ public sbyte DeltaQUAc;
+
+ public sbyte DeltaQVDc;
+
+ public sbyte DeltaQVAc;
+
+ public byte qm_y;
+
+ public byte qm_u;
+
+ public byte qm_v;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1QuantizationFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1QuantizationFlags.cs
new file mode 100644
index 00000000..a57c13e2
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1QuantizationFlags.cs
@@ -0,0 +1,41 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoAV1QuantizationFlags
+{
+ private uint _bitfield1;
+
+ public uint using_qmatrix
+ {
+ get { return (uint)((_bitfield1 >> 0) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); }
+ }
+
+ public uint diff_uv_delta
+ {
+ get { return (uint)((_bitfield1 >> 1) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFD) | (((uint)value & 0x00000001) << 1); }
+ }
+
+ public uint reserved
+ {
+ get { return (uint)((_bitfield1 >> 2) & 0x3FFFFFFF); }
+ set { _bitfield1 = (_bitfield1 & 0x00000003) | (((uint)value & 0x3FFFFFFF) << 2); }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ReferenceName.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ReferenceName.cs
new file mode 100644
index 00000000..0f322659
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ReferenceName.cs
@@ -0,0 +1,30 @@
+#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
+
+#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;
+
+public enum StdVideoAV1ReferenceName
+{
+ STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME = 0,
+ STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME = 1,
+ STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME = 2,
+ STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME = 3,
+ STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME = 4,
+ STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME = 5,
+ STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME = 6,
+ STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME = 7,
+ STD_VIDEO_AV1_REFERENCE_NAME_INVALID = 0x7FFFFFFF
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Segmentation.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Segmentation.cs
new file mode 100644
index 00000000..055850d7
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1Segmentation.cs
@@ -0,0 +1,25 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct StdVideoAV1Segmentation
+{
+ public fixed byte FeatureEnabled[(int)STD_VIDEO_AV1_MAX_SEGMENTS];
+
+ public VkArray8> FeatureData;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1SequenceHeader.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1SequenceHeader.cs
new file mode 100644
index 00000000..f4779c73
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1SequenceHeader.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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct StdVideoAV1SequenceHeader
+{
+ public StdVideoAV1SequenceHeaderFlags flags;
+
+ public StdVideoAV1Profile seq_profile;
+
+ public byte frame_width_bits_minus_1;
+
+ public byte frame_height_bits_minus_1;
+
+ public ushort max_frame_width_minus_1;
+
+ public ushort max_frame_height_minus_1;
+
+ public byte delta_frame_id_length_minus_2;
+
+ public byte additional_frame_id_length_minus_1;
+
+ public byte order_hint_bits_minus_1;
+
+ public byte seq_force_integer_mv;
+
+ public byte seq_force_screen_content_tools;
+
+ public fixed byte reserved1[5];
+
+ public StdVideoAV1ColorConfig* pColorConfig;
+
+ public StdVideoAV1TimingInfo* pTimingInfo;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1SequenceHeaderFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1SequenceHeaderFlags.cs
new file mode 100644
index 00000000..294fa4ba
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1SequenceHeaderFlags.cs
@@ -0,0 +1,143 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoAV1SequenceHeaderFlags
+{
+ private uint _bitfield1;
+
+ public uint still_picture
+ {
+ get { return (uint)((_bitfield1 >> 0) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); }
+ }
+
+ public uint reduced_still_picture_header
+ {
+ get { return (uint)((_bitfield1 >> 1) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFD) | (((uint)value & 0x00000001) << 1); }
+ }
+
+ public uint use_128x128_superblock
+ {
+ get { return (uint)((_bitfield1 >> 2) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFB) | (((uint)value & 0x00000001) << 2); }
+ }
+
+ public uint enable_filter_intra
+ {
+ get { return (uint)((_bitfield1 >> 3) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFF7) | (((uint)value & 0x00000001) << 3); }
+ }
+
+ public uint enable_intra_edge_filter
+ {
+ get { return (uint)((_bitfield1 >> 4) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFEF) | (((uint)value & 0x00000001) << 4); }
+ }
+
+ public uint enable_interintra_compound
+ {
+ get { return (uint)((_bitfield1 >> 5) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFDF) | (((uint)value & 0x00000001) << 5); }
+ }
+
+ public uint enable_masked_compound
+ {
+ get { return (uint)((_bitfield1 >> 6) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFBF) | (((uint)value & 0x00000001) << 6); }
+ }
+
+ public uint enable_warped_motion
+ {
+ get { return (uint)((_bitfield1 >> 7) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFF7F) | (((uint)value & 0x00000001) << 7); }
+ }
+
+ public uint enable_dual_filter
+ {
+ get { return (uint)((_bitfield1 >> 8) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFEFF) | (((uint)value & 0x00000001) << 8); }
+ }
+
+ public uint enable_order_hint
+ {
+ get { return (uint)((_bitfield1 >> 9) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFDFF) | (((uint)value & 0x00000001) << 9); }
+ }
+
+ public uint enable_jnt_comp
+ {
+ get { return (uint)((_bitfield1 >> 10) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFBFF) | (((uint)value & 0x00000001) << 10); }
+ }
+
+ public uint enable_ref_frame_mvs
+ {
+ get { return (uint)((_bitfield1 >> 11) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFF7FF) | (((uint)value & 0x00000001) << 11); }
+ }
+
+ public uint frame_id_numbers_present_flag
+ {
+ get { return (uint)((_bitfield1 >> 12) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFEFFF) | (((uint)value & 0x00000001) << 12); }
+ }
+
+ public uint enable_superres
+ {
+ get { return (uint)((_bitfield1 >> 13) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFDFFF) | (((uint)value & 0x00000001) << 13); }
+ }
+
+ public uint enable_cdef
+ {
+ get { return (uint)((_bitfield1 >> 14) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFBFFF) | (((uint)value & 0x00000001) << 14); }
+ }
+
+ public uint enable_restoration
+ {
+ get { return (uint)((_bitfield1 >> 15) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFF7FFF) | (((uint)value & 0x00000001) << 15); }
+ }
+
+ public uint film_grain_params_present
+ {
+ get { return (uint)((_bitfield1 >> 16) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFEFFFF) | (((uint)value & 0x00000001) << 16); }
+ }
+
+ public uint timing_info_present_flag
+ {
+ get { return (uint)((_bitfield1 >> 17) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFDFFFF) | (((uint)value & 0x00000001) << 17); }
+ }
+
+ public uint initial_display_delay_present_flag
+ {
+ get { return (uint)((_bitfield1 >> 18) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFBFFFF) | (((uint)value & 0x00000001) << 18); }
+ }
+
+ public uint reserved
+ {
+ get { return (uint)((_bitfield1 >> 19) & 0x00001FFF); }
+ set { _bitfield1 = (_bitfield1 & 0x0007FFFF) | (((uint)value & 0x00001FFF) << 19); }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TileInfo.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TileInfo.cs
new file mode 100644
index 00000000..a29f8be7
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TileInfo.cs
@@ -0,0 +1,41 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct StdVideoAV1TileInfo
+{
+ public StdVideoAV1TileInfoFlags flags;
+
+ public byte TileCols;
+
+ public byte TileRows;
+
+ public ushort context_update_tile_id;
+
+ public byte tile_size_bytes_minus_1;
+
+ public fixed byte reserved1[7];
+
+ public ushort* pMiColStarts;
+
+ public ushort* pMiRowStarts;
+
+ public ushort* pWidthInSbsMinus1;
+
+ public ushort* pHeightInSbsMinus1;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TileInfoFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TileInfoFlags.cs
new file mode 100644
index 00000000..e693acba
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TileInfoFlags.cs
@@ -0,0 +1,35 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoAV1TileInfoFlags
+{
+ private uint _bitfield1;
+
+ public uint uniform_tile_spacing_flag
+ {
+ get { return (uint)((_bitfield1 >> 0) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); }
+ }
+
+ public uint reserved
+ {
+ get { return (uint)((_bitfield1 >> 1) & 0x7FFFFFFF); }
+ set { _bitfield1 = (_bitfield1 & 0x00000001) | (((uint)value & 0x7FFFFFFF) << 1); }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TimingInfo.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TimingInfo.cs
new file mode 100644
index 00000000..193e86e9
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TimingInfo.cs
@@ -0,0 +1,29 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoAV1TimingInfo
+{
+ public StdVideoAV1TimingInfoFlags flags;
+
+ public uint num_units_in_display_tick;
+
+ public uint time_scale;
+
+ public uint num_ticks_per_picture_minus_1;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TimingInfoFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TimingInfoFlags.cs
new file mode 100644
index 00000000..9d226188
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TimingInfoFlags.cs
@@ -0,0 +1,35 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoAV1TimingInfoFlags
+{
+ private uint _bitfield1;
+
+ public uint equal_picture_interval
+ {
+ get { return (uint)((_bitfield1 >> 0) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); }
+ }
+
+ public uint reserved
+ {
+ get { return (uint)((_bitfield1 >> 1) & 0x7FFFFFFF); }
+ set { _bitfield1 = (_bitfield1 & 0x00000001) | (((uint)value & 0x7FFFFFFF) << 1); }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TransferCharacteristics.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TransferCharacteristics.cs
new file mode 100644
index 00000000..dd606092
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TransferCharacteristics.cs
@@ -0,0 +1,41 @@
+#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
+
+#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;
+
+public enum StdVideoAV1TransferCharacteristics
+{
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0 = 0,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709 = 1,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3 = 3,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M = 4,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G = 5,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601 = 6,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240 = 7,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR = 8,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100 = 9,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 = 10,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966 = 11,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361 = 12,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB = 13,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT = 14,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT = 15,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084 = 16,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428 = 17,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG = 18,
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID = 0x7FFFFFFF
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TxMode.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TxMode.cs
new file mode 100644
index 00000000..a5cc66d6
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1TxMode.cs
@@ -0,0 +1,25 @@
+#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
+
+#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;
+
+public enum StdVideoAV1TxMode
+{
+ STD_VIDEO_AV1_TX_MODE_ONLY_4X4 = 0,
+ STD_VIDEO_AV1_TX_MODE_LARGEST = 1,
+ STD_VIDEO_AV1_TX_MODE_SELECT = 2,
+ STD_VIDEO_AV1_TX_MODE_INVALID = 0x7FFFFFFF
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/VulkanVideoCodecAv1std.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/VulkanVideoCodecAv1std.cs
new file mode 100644
index 00000000..380c6c2a
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/VulkanVideoCodecAv1std.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
+
+global using static Exomia.Vulkan.Api.Core.VulkanVideoCodecAv1std;
+
+#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;
+
+public static class VulkanVideoCodecAv1std
+{
+ public const int STD_VIDEO_AV1_NUM_REF_FRAMES = 8;
+
+ public const int STD_VIDEO_AV1_REFS_PER_FRAME = 7;
+
+ public const int STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME = 8;
+
+ public const int STD_VIDEO_AV1_MAX_TILE_COLS = 64;
+
+ public const int STD_VIDEO_AV1_MAX_TILE_ROWS = 64;
+
+ public const int STD_VIDEO_AV1_MAX_SEGMENTS = 8;
+
+ public const int STD_VIDEO_AV1_SEG_LVL_MAX = 8;
+
+ public const int STD_VIDEO_AV1_PRIMARY_REF_NONE = 7;
+
+ public const int STD_VIDEO_AV1_SELECT_INTEGER_MV = 2;
+
+ public const int STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS = 2;
+
+ public const int STD_VIDEO_AV1_SKIP_MODE_FRAMES = 2;
+
+ public const int STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS = 4;
+
+ public const int STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS = 2;
+
+ public const int STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS = 8;
+
+ public const int STD_VIDEO_AV1_MAX_NUM_PLANES = 3;
+
+ public const int STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS = 6;
+
+ public const int STD_VIDEO_AV1_MAX_NUM_Y_POINTS = 14;
+
+ public const int STD_VIDEO_AV1_MAX_NUM_CB_POINTS = 10;
+
+ public const int STD_VIDEO_AV1_MAX_NUM_CR_POINTS = 10;
+
+ public const int STD_VIDEO_AV1_MAX_NUM_POS_LUMA = 24;
+
+ public const int STD_VIDEO_AV1_MAX_NUM_POS_CHROMA = 25;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1PictureInfo.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1PictureInfo.cs
new file mode 100644
index 00000000..7cb0d31e
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1PictureInfo.cs
@@ -0,0 +1,69 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct StdVideoDecodeAV1PictureInfo
+{
+ public StdVideoDecodeAV1PictureInfoFlags flags;
+
+ public StdVideoAV1FrameType frame_type;
+
+ public uint current_frame_id;
+
+ public byte OrderHint;
+
+ public byte primary_ref_frame;
+
+ public byte refresh_frame_flags;
+
+ public byte reserved1;
+
+ public StdVideoAV1InterpolationFilter interpolation_filter;
+
+ public StdVideoAV1TxMode TxMode;
+
+ public byte delta_q_res;
+
+ public byte delta_lf_res;
+
+ public fixed byte SkipModeFrame[(int)STD_VIDEO_AV1_SKIP_MODE_FRAMES];
+
+ public byte coded_denom;
+
+ public VkArray3 reserved2;
+
+ public fixed byte OrderHints[(int)STD_VIDEO_AV1_NUM_REF_FRAMES];
+
+ public fixed uint expectedFrameId[(int)STD_VIDEO_AV1_NUM_REF_FRAMES];
+
+ public StdVideoAV1TileInfo* pTileInfo;
+
+ public StdVideoAV1Quantization* pQuantization;
+
+ public StdVideoAV1Segmentation* pSegmentation;
+
+ public StdVideoAV1LoopFilter* pLoopFilter;
+
+ public StdVideoAV1CDEF* pCDEF;
+
+ public StdVideoAV1LoopRestoration* pLoopRestoration;
+
+ public StdVideoAV1GlobalMotion* pGlobalMotion;
+
+ public StdVideoAV1FilmGrain* pFilmGrain;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1PictureInfoFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1PictureInfoFlags.cs
new file mode 100644
index 00000000..15d6c0e7
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1PictureInfoFlags.cs
@@ -0,0 +1,203 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoDecodeAV1PictureInfoFlags
+{
+ private uint _bitfield1;
+
+ public uint error_resilient_mode
+ {
+ get { return (uint)((_bitfield1 >> 0) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); }
+ }
+
+ public uint disable_cdf_update
+ {
+ get { return (uint)((_bitfield1 >> 1) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFD) | (((uint)value & 0x00000001) << 1); }
+ }
+
+ public uint use_superres
+ {
+ get { return (uint)((_bitfield1 >> 2) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFB) | (((uint)value & 0x00000001) << 2); }
+ }
+
+ public uint render_and_frame_size_different
+ {
+ get { return (uint)((_bitfield1 >> 3) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFF7) | (((uint)value & 0x00000001) << 3); }
+ }
+
+ public uint allow_screen_content_tools
+ {
+ get { return (uint)((_bitfield1 >> 4) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFEF) | (((uint)value & 0x00000001) << 4); }
+ }
+
+ public uint is_filter_switchable
+ {
+ get { return (uint)((_bitfield1 >> 5) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFDF) | (((uint)value & 0x00000001) << 5); }
+ }
+
+ public uint force_integer_mv
+ {
+ get { return (uint)((_bitfield1 >> 6) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFBF) | (((uint)value & 0x00000001) << 6); }
+ }
+
+ public uint frame_size_override_flag
+ {
+ get { return (uint)((_bitfield1 >> 7) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFF7F) | (((uint)value & 0x00000001) << 7); }
+ }
+
+ public uint buffer_removal_time_present_flag
+ {
+ get { return (uint)((_bitfield1 >> 8) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFEFF) | (((uint)value & 0x00000001) << 8); }
+ }
+
+ public uint allow_intrabc
+ {
+ get { return (uint)((_bitfield1 >> 9) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFDFF) | (((uint)value & 0x00000001) << 9); }
+ }
+
+ public uint frame_refs_short_signaling
+ {
+ get { return (uint)((_bitfield1 >> 10) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFBFF) | (((uint)value & 0x00000001) << 10); }
+ }
+
+ public uint allow_high_precision_mv
+ {
+ get { return (uint)((_bitfield1 >> 11) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFF7FF) | (((uint)value & 0x00000001) << 11); }
+ }
+
+ public uint is_motion_mode_switchable
+ {
+ get { return (uint)((_bitfield1 >> 12) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFEFFF) | (((uint)value & 0x00000001) << 12); }
+ }
+
+ public uint use_ref_frame_mvs
+ {
+ get { return (uint)((_bitfield1 >> 13) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFDFFF) | (((uint)value & 0x00000001) << 13); }
+ }
+
+ public uint disable_frame_end_update_cdf
+ {
+ get { return (uint)((_bitfield1 >> 14) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFBFFF) | (((uint)value & 0x00000001) << 14); }
+ }
+
+ public uint allow_warped_motion
+ {
+ get { return (uint)((_bitfield1 >> 15) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFF7FFF) | (((uint)value & 0x00000001) << 15); }
+ }
+
+ public uint reduced_tx_set
+ {
+ get { return (uint)((_bitfield1 >> 16) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFEFFFF) | (((uint)value & 0x00000001) << 16); }
+ }
+
+ public uint reference_select
+ {
+ get { return (uint)((_bitfield1 >> 17) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFDFFFF) | (((uint)value & 0x00000001) << 17); }
+ }
+
+ public uint skip_mode_present
+ {
+ get { return (uint)((_bitfield1 >> 18) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFBFFFF) | (((uint)value & 0x00000001) << 18); }
+ }
+
+ public uint delta_q_present
+ {
+ get { return (uint)((_bitfield1 >> 19) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFF7FFFF) | (((uint)value & 0x00000001) << 19); }
+ }
+
+ public uint delta_lf_present
+ {
+ get { return (uint)((_bitfield1 >> 20) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFEFFFFF) | (((uint)value & 0x00000001) << 20); }
+ }
+
+ public uint delta_lf_multi
+ {
+ get { return (uint)((_bitfield1 >> 21) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFDFFFFF) | (((uint)value & 0x00000001) << 21); }
+ }
+
+ public uint segmentation_enabled
+ {
+ get { return (uint)((_bitfield1 >> 22) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFBFFFFF) | (((uint)value & 0x00000001) << 22); }
+ }
+
+ public uint segmentation_update_map
+ {
+ get { return (uint)((_bitfield1 >> 23) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFF7FFFFF) | (((uint)value & 0x00000001) << 23); }
+ }
+
+ public uint segmentation_temporal_update
+ {
+ get { return (uint)((_bitfield1 >> 24) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFEFFFFFF) | (((uint)value & 0x00000001) << 24); }
+ }
+
+ public uint segmentation_update_data
+ {
+ get { return (uint)((_bitfield1 >> 25) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFDFFFFFF) | (((uint)value & 0x00000001) << 25); }
+ }
+
+ public uint UsesLr
+ {
+ get { return (uint)((_bitfield1 >> 26) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFBFFFFFF) | (((uint)value & 0x00000001) << 26); }
+ }
+
+ public uint usesChromaLr
+ {
+ get { return (uint)((_bitfield1 >> 27) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xF7FFFFFF) | (((uint)value & 0x00000001) << 27); }
+ }
+
+ public uint apply_grain
+ {
+ get { return (uint)((_bitfield1 >> 28) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xEFFFFFFF) | (((uint)value & 0x00000001) << 28); }
+ }
+
+ public uint reserved
+ {
+ get { return (uint)((_bitfield1 >> 29) & 0x00000007); }
+ set { _bitfield1 = (_bitfield1 & 0x1FFFFFFF) | (((uint)value & 0x00000007) << 29); }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1ReferenceInfo.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1ReferenceInfo.cs
new file mode 100644
index 00000000..6f056a00
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1ReferenceInfo.cs
@@ -0,0 +1,31 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct StdVideoDecodeAV1ReferenceInfo
+{
+ public StdVideoDecodeAV1ReferenceInfoFlags flags;
+
+ public byte frame_type;
+
+ public byte RefFrameSignBias;
+
+ public byte OrderHint;
+
+ public fixed byte SavedOrderHints[(int)STD_VIDEO_AV1_NUM_REF_FRAMES];
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1ReferenceInfoFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1ReferenceInfoFlags.cs
new file mode 100644
index 00000000..3aade6db
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/StdVideoDecodeAV1ReferenceInfoFlags.cs
@@ -0,0 +1,41 @@
+#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
+
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct StdVideoDecodeAV1ReferenceInfoFlags
+{
+ private uint _bitfield1;
+
+ public uint disable_frame_end_update_cdf
+ {
+ get { return (uint)((_bitfield1 >> 0) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); }
+ }
+
+ public uint segmentation_enabled
+ {
+ get { return (uint)((_bitfield1 >> 1) & 0x00000001); }
+ set { _bitfield1 = (_bitfield1 & 0xFFFFFFFD) | (((uint)value & 0x00000001) << 1); }
+ }
+
+ public uint reserved
+ {
+ get { return (uint)((_bitfield1 >> 2) & 0x3FFFFFFF); }
+ set { _bitfield1 = (_bitfield1 & 0x00000003) | (((uint)value & 0x3FFFFFFF) << 2); }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/VulkanVideoCodecAv1stdDecode.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/VulkanVideoCodecAv1stdDecode.cs
new file mode 100644
index 00000000..8e6a338d
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/VulkanVideoCodecAv1stdDecode.cs
@@ -0,0 +1,43 @@
+#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.VulkanVideoCodecAv1stdDecode;
+
+#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;
+
+public static class VulkanVideoCodecAv1stdDecode
+{
+ /// The spec version.
+ public const uint VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0;
+
+ /// The extension name.
+ public const string VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_av1_decode";
+
+ ///
+ /// An UTF8 null terminated version of
+ /// represented by an UTF16 string.
+ ///
+ ///
+ /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_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_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_EXTENSION_NAME_UTF8_NT =
+ "\u4b56\u535f\u4454\u565f\u4c55\u414b\u5f4e\u4956\u4544\u5f4f\u4f43\u4544\u5f43\u5641\u5f31\u4544\u4f43\u4544\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045";
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/VulkanVideoCodecAv1stdDecode.defines.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/VulkanVideoCodecAv1stdDecode.defines.cs
new file mode 100644
index 00000000..483fc462
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_decode/VulkanVideoCodecAv1stdDecode.defines.cs
@@ -0,0 +1,21 @@
+#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.VulkanVideoCodecAv1stdDecodeDefines;
+
+// ReSharper disable ShiftExpressionZeroLeftOperand
+namespace Exomia.Vulkan.Api.Core;
+
+/// The VulkanVideoCodecAv1stdDecodeDefines class.
+public static class VulkanVideoCodecAv1stdDecodeDefines
+{
+ /// The VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0.
+ public const uint VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0 = (1 << 22) | (0 << 12) | 0;
+}
\ No newline at end of file