diff --git a/.version b/.version
index 982ae5fa..0168d648 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-1.3.293
\ No newline at end of file
+1.3.294
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkObjectType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkObjectType.cs
index aa67a610..6e83f692 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkObjectType.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkObjectType.cs
@@ -466,6 +466,12 @@ public enum VkObjectType
///
VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
+ ///
+ /// VK_OBJECT_TYPE_PIPELINE_BINARY_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkObjectType
+ ///
+ VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
+
///
///
/// -
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkResult.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkResult.cs
index 72b79652..756c9fd3 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkResult.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkResult.cs
@@ -250,6 +250,15 @@ public enum VkResult
/// VK_INCOMPATIBLE_SHADER_BINARY_EXT The provided binary shader code is not compatible with this device.
VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
+ ///
+ /// VK_PIPELINE_BINARY_MISSING_KHR The application attempted to create a pipeline binary by querying an internal
+ /// cache, but the internal cache entry did not exist.
+ ///
+ VK_PIPELINE_BINARY_MISSING_KHR = 1000483000,
+
+ /// VK_ERROR_NOT_ENOUGH_SPACE_KHR The application did not provide enough space to return all the required data.
+ VK_ERROR_NOT_ENOUGH_SPACE_KHR = -1000483000,
+
///
/// VK_ERROR_OUT_OF_POOL_MEMORY A pool memory allocation has failed. This must only be returned if no attempt to
/// allocate host or device memory was made to accommodate the new allocation. If the failure was definitely due to
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
index d08067e7..8d4ce9a0 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
@@ -4939,6 +4939,66 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004,
+
+ ///
+ /// VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007,
+
+ ///
+ /// VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009,
+
///
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlagBits2KHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlagBits2KHR.cs
index f754433a..17caa403 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlagBits2KHR.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlagBits2KHR.cs
@@ -265,5 +265,22 @@ public enum VkPipelineCreateFlagBits2KHR : ulong
/// descriptor sets
/// .
///
- VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000
+ VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR specifies that VkPipelineBinaryKHR objects can be created from the
+ /// pipeline. If VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR is used, implementations should not store pipeline data to
+ /// an internal cache, if such a cache exists as stated by
+ ///
+ /// pipelineBinaryInternalCache
+ ///
+ /// . If
+ ///
+ /// pipelineBinaryPrefersInternalCache
+ ///
+ /// is VK_TRUE, applications should not use VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR.
+ ///
+ VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000
}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkDevicePipelineBinaryInternalCacheControlKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkDevicePipelineBinaryInternalCacheControlKHR.cs
new file mode 100644
index 00000000..14de734b
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkDevicePipelineBinaryInternalCacheControlKHR.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
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkDevicePipelineBinaryInternalCacheControlKHR - Structure specifying parameter to disable the internal pipeline
+/// cache -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDevicePipelineBinaryInternalCacheControlKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkDeviceCreateInfo
+///
+///
+///
+[VkStructExtends("VkDeviceCreateInfo")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkDevicePipelineBinaryInternalCacheControlKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_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;
+
+ /// disableInternalCache specifies whether or not to disable the implementation’s internal pipeline cache.
+ public VkBool32 disableInternalCache;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkKhrPipelineBinary.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkKhrPipelineBinary.cs
new file mode 100644
index 00000000..21055274
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkKhrPipelineBinary.cs
@@ -0,0 +1,237 @@
+#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.VkKhrPipelineBinary;
+
+#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_pipeline_binary - device extension (nr. 484) - author 'KHR' [platform '' | contact 'Stu Smith @stu-s']
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_pipeline_binary.html
+///
+[VkDepends("VK_KHR_maintenance5")]
+[VkDeviceExt]
+public static unsafe class VkKhrPipelineBinary
+{
+ /// The spec version.
+ public const uint VK_KHR_PIPELINE_BINARY_SPEC_VERSION = 1;
+
+ /// The extension name.
+ public const string VK_KHR_PIPELINE_BINARY_EXTENSION_NAME = "VK_KHR_pipeline_binary";
+
+ ///
+ /// An UTF8 null terminated version of represented by an
+ /// UTF16 string.
+ ///
+ ///
+ /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_KHR_PIPELINE_BINARY_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_PIPELINE_BINARY_EXTENSION_NAME_UTF8_NT = "\u4b56\u4b5f\u5248\u505f\u5049\u4c45\u4e49\u5f45\u4942\u414e\u5952\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045";
+
+ ///
+ /// vkCreatePipelineBinariesKHR - Create pipeline binaries from a pipeline or previously retrieved data -
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreatePipelineBinariesKHR.html
+ ///
+ /// device is the logical device that creates the pipeline binary objects.
+ ///
+ /// pCreateInfo is a pointer to a VkPipelineBinaryCreateInfoKHRstructure that contains the data
+ /// to create the pipeline binaries from.
+ ///
+ /// pAllocator controls host memory allocation as described in the Memory Allocation chapter.
+ ///
+ /// pBinaries is a pointer to a VkPipelineBinaryHandlesInfoKHRstructure in which the resulting
+ /// pipeline binaries are returned.
+ ///
+ ///
+ ///
+ /// -
+ /// successcodesVK_SUCCESS,VK_INCOMPLETE,VK_PIPELINE_BINARY_MISSING_KHR
+ ///
+ /// -
+ /// errorcodes
+ /// VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED
+ ///
+ ///
+ ///
+ public static readonly delegate*<
+ VkDevice /*device*/,
+ VkPipelineBinaryCreateInfoKHR* /*pCreateInfo*/,
+ VkAllocationCallbacks* /*pAllocator*/,
+ VkPipelineBinaryHandlesInfoKHR* /*pBinaries*/,
+ VkResult> vkCreatePipelineBinariesKHR = null;
+
+ ///
+ /// vkDestroyPipelineBinaryKHR - Destroy a pipeline binary -
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyPipelineBinaryKHR.html
+ ///
+ /// device is the logical device that created the pipeline binary object.
+ /// pipelineBinary is the handle of the pipeline binary object to destroy.
+ /// pAllocator controls host memory allocation as described in the Memory Allocation chapter.
+ public static readonly delegate*<
+ VkDevice /*device*/,
+ VkPipelineBinaryKHR /*pipelineBinary*/,
+ VkAllocationCallbacks* /*pAllocator*/,
+ void> vkDestroyPipelineBinaryKHR = null;
+
+ ///
+ /// vkGetPipelineKeyKHR - Generate the pipeline key from pipeline creation info -
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPipelineKeyKHR.html
+ ///
+ /// device is the logical device that creates the pipeline object.
+ /// pPipelineCreateInfo is NULL or a pointer to a VkPipelineCreateInfoKHR structure.
+ ///
+ /// pPipelineKey is a pointer to a VkPipelineBinaryKeyKHRstructure in which the resulting key is
+ /// returned.
+ ///
+ ///
+ ///
+ /// -
+ /// successcodesVK_SUCCESS
+ ///
+ /// -
+ /// errorcodesVK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY
+ ///
+ ///
+ ///
+ public static readonly delegate*<
+ VkDevice /*device*/,
+ VkPipelineCreateInfoKHR* /*pPipelineCreateInfo*/,
+ VkPipelineBinaryKeyKHR* /*pPipelineKey*/,
+ VkResult> vkGetPipelineKeyKHR = null;
+
+ ///
+ /// vkGetPipelineBinaryDataKHR - Get the data store from a pipeline binary -
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPipelineBinaryDataKHR.html
+ ///
+ /// device is the logical device that created the pipeline binary.
+ ///
+ /// pInfo is a pointer to a VkPipelineBinaryDataInfoKHRstructure which describes the pipeline binary to
+ /// get data from.
+ ///
+ ///
+ /// pPipelineBinaryKey is a pointer to a VkPipelineBinaryKeyKHRstructure where the key for
+ /// this binary will be written.
+ ///
+ ///
+ /// pPipelineBinaryDataSize is a pointer to a size_t value related to the amount of
+ /// data in the pipeline binary, as described below.
+ ///
+ /// pPipelineBinaryData is either NULL or a pointer to a buffer.
+ ///
+ ///
+ /// -
+ /// successcodesVK_SUCCESS
+ ///
+ /// -
+ /// errorcodes
+ /// VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NOT_ENOUGH_SPACE_KHR
+ ///
+ ///
+ ///
+ public static readonly delegate*<
+ VkDevice /*device*/,
+ VkPipelineBinaryDataInfoKHR* /*pInfo*/,
+ VkPipelineBinaryKeyKHR* /*pPipelineBinaryKey*/,
+ nuint* /*pPipelineBinaryDataSize*/,
+ void* /*pPipelineBinaryData*/,
+ VkResult> vkGetPipelineBinaryDataKHR = null;
+
+ ///
+ /// vkReleaseCapturedPipelineDataKHR - Release captured pipeline binary data -
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkReleaseCapturedPipelineDataKHR.html
+ ///
+ ///
+ /// device is the logical device that created the pipeline object.
+ ///
+ /// pInfo is a pointer to a VkReleaseCapturedPipelineDataInfoKHRstructure which describes the pipeline
+ /// to release the data from.
+ ///
+ /// pAllocator controls host memory allocation as described in the Memory Allocation chapter.
+ ///
+ ///
+ /// -
+ /// successcodesVK_SUCCESS
+ ///
+ ///
+ ///
+ public static readonly delegate*<
+ VkDevice /*device*/,
+ VkReleaseCapturedPipelineDataInfoKHR* /*pInfo*/,
+ VkAllocationCallbacks* /*pAllocator*/,
+ VkResult> vkReleaseCapturedPipelineDataKHR = null;
+
+ /// Loads all function pointer based on the device for this extension. (see remarks!)
+ /// The device that the function pointers will be compatible with.
+ ///
+ /// This load method makes the following function pointers available:
+ ///
+ /// -
+ /// vkCreatePipelineBinariesKHR
+ ///
+ /// -
+ /// vkDestroyPipelineBinaryKHR
+ ///
+ /// -
+ /// vkGetPipelineKeyKHR
+ ///
+ /// -
+ /// vkGetPipelineBinaryDataKHR
+ ///
+ /// -
+ /// vkReleaseCapturedPipelineDataKHR
+ ///
+ ///
+ ///
+ public static void Load(VkDevice device)
+ {
+ fixed (delegate** pvkCreatePipelineBinariesKHR = &vkCreatePipelineBinariesKHR)
+ {
+ *pvkCreatePipelineBinariesKHR = (delegate*)GetVkFunction(
+ device, "\u6b76\u7243\u6165\u6574\u6950\u6570\u696c\u656e\u6942\u616e\u6972\u7365\u484b\u0052");
+ }
+
+ fixed (delegate** pvkDestroyPipelineBinaryKHR = &vkDestroyPipelineBinaryKHR)
+ {
+ *pvkDestroyPipelineBinaryKHR = (delegate*)GetVkFunction(
+ device, "\u6b76\u6544\u7473\u6f72\u5079\u7069\u6c65\u6e69\u4265\u6e69\u7261\u4b79\u5248\u0000");
+ }
+
+ fixed (delegate** pvkGetPipelineKeyKHR = &vkGetPipelineKeyKHR)
+ {
+ *pvkGetPipelineKeyKHR =
+ (delegate*)GetVkFunction(device, "\u6b76\u6547\u5074\u7069\u6c65\u6e69\u4b65\u7965\u484b\u0052");
+ }
+
+ fixed (delegate** pvkGetPipelineBinaryDataKHR = &vkGetPipelineBinaryDataKHR)
+ {
+ *pvkGetPipelineBinaryDataKHR = (delegate*)GetVkFunction(
+ device, "\u6b76\u6547\u5074\u7069\u6c65\u6e69\u4265\u6e69\u7261\u4479\u7461\u4b61\u5248\u0000");
+ }
+
+ fixed (delegate** pvkReleaseCapturedPipelineDataKHR = &vkReleaseCapturedPipelineDataKHR)
+ {
+ *pvkReleaseCapturedPipelineDataKHR = (delegate*)GetVkFunction(
+ device, "\u6b76\u6552\u656c\u7361\u4365\u7061\u7574\u6572\u5064\u7069\u6c65\u6e69\u4465\u7461\u4b61\u5248\u0000");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryFeaturesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryFeaturesKHR.cs
new file mode 100644
index 00000000..da6fb13d
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryFeaturesKHR.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;
+
+///
+/// VkPhysicalDevicePipelineBinaryFeaturesKHR - Structure describing support for pipeline binaries -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePipelineBinaryFeaturesKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDevicePipelineBinaryFeaturesKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR;
+
+ /// sType is a VkStructureType value identifying this structure.
+ public VkStructureType sType;
+
+ /// pNext is NULL or a pointer to a structure extending this structure.
+ public void* pNext;
+
+ ///
+ /// pipelineBinaries indicates that the implementation supports
+ /// https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-binaries.
+ ///
+ public VkBool32 pipelineBinaries;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryPropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryPropertiesKHR.cs
new file mode 100644
index 00000000..d8f169f0
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryPropertiesKHR.cs
@@ -0,0 +1,80 @@
+#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;
+
+///
+/// VkPhysicalDevicePipelineBinaryPropertiesKHR - Structure describing properties about the pipeline binary
+/// implementation -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePipelineBinaryPropertiesKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceProperties2
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceProperties2")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDevicePipelineBinaryPropertiesKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR;
+
+ /// sType is a VkStructureType value identifying this structure.
+ public VkStructureType sType;
+
+ /// pNext is NULL or a pointer to a structure extending this structure.
+ public void* pNext;
+
+ ///
+ /// pipelineBinaryInternalCachespecifies that the implementation maintains a pipeline cache internal to the
+ /// implementation. If this is VK_TRUE, applications can create pipeline binaries with only a pipeline create info, and
+ /// in this case, an implementation may be able to create a pipeline binary directly without application needing to
+ /// capture the binary itself.
+ ///
+ public VkBool32 pipelineBinaryInternalCache;
+
+ ///
+ /// pipelineBinaryInternalCacheControl specifies whether the driver’s internal cache can be disabled. If
+ /// this property is VK_TRUEVkDevicePipelineBinaryInternalCacheControlKHR::disableInternalCachecan be used to disable
+ /// the driver’s internal cache, allowing an application to take full control of both memory and disk usage.
+ ///
+ public VkBool32 pipelineBinaryInternalCacheControl;
+
+ ///
+ /// pipelineBinaryPrefersInternalCache specifies that the implementation prefers to maintain an internal cache,
+ /// and applications should not store pipeline binaries in their own on-disk caches to avoid increased on-disk storage
+ /// requirements. Applications are encouraged to only store pipeline keys instead, and aim to create pipeline binaries
+ /// from key alone on subsequent runs of the application.
+ ///
+ public VkBool32 pipelineBinaryPrefersInternalCache;
+
+ ///
+ /// pipelineBinaryPrecompiledInternalCache specifies that the implementation may have pipeline binaries in its
+ /// internal cache, which is populated without the application ever having generated that pipeline itself. Applications
+ /// can attempt to create binaries without extracting pipeline binary data from the pipeline prior for a set of
+ /// pipeline keys, including from previous runs of the application.
+ ///
+ public VkBool32 pipelineBinaryPrecompiledInternalCache;
+
+ ///
+ /// pipelineBinaryCompressedData specifies that the binary data is already compressed and so applications should
+ /// not attempt to compress it.
+ ///
+ public VkBool32 pipelineBinaryCompressedData;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryCreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryCreateInfoKHR.cs
new file mode 100644
index 00000000..592d7722
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryCreateInfoKHR.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
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPipelineBinaryCreateInfoKHR - Structure specifying where to retrieve data for pipeline binary creation -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryCreateInfoKHR.html
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPipelineBinaryCreateInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_BINARY_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;
+
+ ///
+ /// pKeysAndDataInfo is NULL or a pointer to a VkPipelineBinaryKeysAndDataKHR structure that contains keys and
+ /// data to create the pipeline binaries from.
+ ///
+ public VkPipelineBinaryKeysAndDataKHR* pKeysAndDataInfo;
+
+ /// pipeline is VK_NULL_HANDLE or a VkPipeline that contains data to create the pipeline binaries from.
+ public VkPipeline pipeline;
+
+ ///
+ /// pPipelineCreateInfo is NULL or a pointer to a VkPipelineCreateInfoKHR structure with the pipeline creation
+ /// info. This is used to probe the implementation’s internal cache for pipeline binaries.
+ ///
+ public VkPipelineCreateInfoKHR* pPipelineCreateInfo;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataInfoKHR.cs
new file mode 100644
index 00000000..082a16e3
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataInfoKHR.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
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPipelineBinaryDataInfoKHR - Structure specifying a pipeline binary to retrieve binary data from -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryDataInfoKHR.html
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPipelineBinaryDataInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_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;
+
+ /// pipelineBinary is the pipeline binary to get data from.
+ public VkPipelineBinaryKHR pipelineBinary;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataKHR.cs
new file mode 100644
index 00000000..f4f3601d
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataKHR.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
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPipelineBinaryDataKHR - Structure specifying data and length of a pipeline binary -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryDataKHR.html
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPipelineBinaryDataKHR
+{
+ /// dataSize is the size of the pData buffer in bytes.
+ public nuint dataSize;
+
+ ///
+ /// pData is a pointer to a buffer of size bytes that contains pipeline binary data obtained from
+ /// vkGetPipelineBinaryDataKHR.
+ ///
+ public void* pData;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryHandlesInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryHandlesInfoKHR.cs
new file mode 100644
index 00000000..b2eb0b01
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryHandlesInfoKHR.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
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPipelineBinaryHandlesInfoKHR - Structure containing newly created pipeline binaries -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryHandlesInfoKHR.html
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPipelineBinaryHandlesInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_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;
+
+ ///
+ /// pipelineBinaryCount is the number of binaries associated with this pipeline or the number of entries in the
+ /// pPipelineBinaries array.
+ ///
+ public uint pipelineBinaryCount;
+
+ ///
+ /// pPipelineBinaries is NULL or a pointer to an array of VkPipelineBinaryKHR handles in which the resulting
+ /// pipeline binaries are returned.
+ ///
+ public VkPipelineBinaryKHR* pPipelineBinaries;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryInfoKHR.cs
new file mode 100644
index 00000000..954aa457
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryInfoKHR.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
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPipelineBinaryInfoKHR - Structure specifying pipeline binaries to use during pipeline creation -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryInfoKHR.html
+///
+///
+///
+/// -
+/// structextends
+/// VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoKHR
+///
+///
+///
+[VkStructExtends("VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoKHR")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPipelineBinaryInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_BINARY_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;
+
+ /// binaryCount is the number of elements in the pPipelineBinaries array.
+ public uint binaryCount;
+
+ /// pPipelineBinaries is a pointer to an array of VkPipelineBinaryKHR handles.
+ public VkPipelineBinaryKHR* pPipelineBinaries;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKHR.cs
new file mode 100644
index 00000000..c4dc4037
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKHR.cs
@@ -0,0 +1,85 @@
+#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;
+
+///
+/// VkPipelineBinaryKHR - Opaque handle to a pipeline binary object -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryKHR.html
+///
+public readonly unsafe struct VkPipelineBinaryKHR
+{
+ /// The null value.
+ public static readonly VkPipelineBinaryKHR Null = (VkPipelineBinaryKHR)null;
+#pragma warning disable 649
+ private readonly void* _ptr;
+#pragma warning restore 649
+
+ /// Returns a hash code for this object.
+ /// A hash code for this object.
+ public override int GetHashCode()
+ {
+ return ((IntPtr)_ptr).GetHashCode();
+ }
+
+ /// Tests if this in VkPipelineBinaryKHR is considered equal to this instance.
+ /// The in VkPipelineBinaryKHR to compare to this instance.
+ /// True if the objects are considered equal, false if they are not.
+ public bool Equals(in VkPipelineBinaryKHR obj)
+ {
+ return obj._ptr == _ptr;
+ }
+
+ /// Tests if the object is considered equal to this instance.
+ /// The object to compare to this instance.
+ /// True if the objects are considered equal, false if they are not.
+ public override bool Equals(object? obj)
+ {
+ return obj is VkPipelineBinaryKHR vkPipelineBinaryKHR && Equals(in vkPipelineBinaryKHR);
+ }
+
+ /// Explicit cast that converts the given void* to a VkPipelineBinaryKHR.
+ /// [in,out] If non-null, the pointer.
+ /// The result of the operation.
+ public static explicit operator VkPipelineBinaryKHR(void* ptr)
+ {
+ VkPipelineBinaryKHR value;
+ *(void**)&value = ptr;
+ return value;
+ }
+
+ /// Equality operator.
+ /// The left.
+ /// The right.
+ /// The result of the operation.
+ public static bool operator ==(VkPipelineBinaryKHR left, VkPipelineBinaryKHR right)
+ {
+ return left._ptr == right._ptr;
+ }
+
+ /// Inequality operator.
+ /// The left.
+ /// The right.
+ /// The result of the operation.
+ public static bool operator !=(VkPipelineBinaryKHR left, VkPipelineBinaryKHR right)
+ {
+ return left._ptr != right._ptr;
+ }
+
+ /// Explicit cast that converts the given VkPipelineBinaryKHR to a void*.
+ /// The value.
+ /// The result of the operation.
+ public static explicit operator void*(VkPipelineBinaryKHR value)
+ {
+ return value._ptr;
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeyKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeyKHR.cs
new file mode 100644
index 00000000..ffabf3b9
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeyKHR.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
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPipelineBinaryKeyKHR - Structure specifying a key to a pipeline binary -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryKeyKHR.html
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPipelineBinaryKeyKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_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;
+
+ /// keySize is the size, in bytes, of valid data returned in key.
+ public uint keySize;
+
+ /// key is a buffer of opaque data specifying a pipeline binary key.
+ public fixed byte key[(int)VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR];
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeysAndDataKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeysAndDataKHR.cs
new file mode 100644
index 00000000..20034681
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeysAndDataKHR.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
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPipelineBinaryKeysAndDataKHR - Structure specifying arrays of key and data pairs -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryKeysAndDataKHR.html
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPipelineBinaryKeysAndDataKHR
+{
+ /// binaryCount is the size of the pPipelineBinaryKeys and pPipelineBinaryData arrays
+ public uint binaryCount;
+
+ ///
+ /// pPipelineBinaryKeys is a pointer to an array of VkPipelineBinaryKeyKHR structures containing the pipeline
+ /// binary keys
+ ///
+ public VkPipelineBinaryKeyKHR* pPipelineBinaryKeys;
+
+ ///
+ /// pPipelineBinaryData is a pointer to an array of VkPipelineBinaryDataKHR structures containing the pipeline
+ /// binary data
+ ///
+ public VkPipelineBinaryDataKHR* pPipelineBinaryData;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineCreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineCreateInfoKHR.cs
new file mode 100644
index 00000000..92f40abe
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineCreateInfoKHR.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
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPipelineCreateInfoKHR - Structure specifying a pipeline createinfo chain -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCreateInfoKHR.html
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPipelineCreateInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR;
+
+ /// sType is a VkStructureType value identifying this structure.
+ public VkStructureType sType;
+
+ /// pNext is a pointer to a structure extending this structure.
+ public void* pNext;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkReleaseCapturedPipelineDataInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkReleaseCapturedPipelineDataInfoKHR.cs
new file mode 100644
index 00000000..d020b078
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkReleaseCapturedPipelineDataInfoKHR.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
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkReleaseCapturedPipelineDataInfoKHR - Structure specifying a pipeline whose captured data is to be released -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkReleaseCapturedPipelineDataInfoKHR.html
+///
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkReleaseCapturedPipelineDataInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_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;
+
+ /// pipeline the handle of the pipeline object to release the data from.
+ public VkPipeline pipeline;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingPipelineCreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingPipelineCreateInfoKHR.cs
index bd7ea3ca..d9f92dde 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingPipelineCreateInfoKHR.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingPipelineCreateInfoKHR.cs
@@ -20,6 +20,14 @@ namespace Exomia.Vulkan.Api.Core;
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRayTracingPipelineCreateInfoKHR.html
///
///
+///
+///
+/// -
+/// structextendsVkPipelineCreateInfoKHR
+///
+///
+///
+[VkStructExtends("VkPipelineCreateInfoKHR")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkRayTracingPipelineCreateInfoKHR
{
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencySubmissionPresentIdNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencySubmissionPresentIdNV.cs
index 6329ce41..039e1ee5 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencySubmissionPresentIdNV.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencySubmissionPresentIdNV.cs
@@ -38,7 +38,7 @@ public unsafe struct VkLatencySubmissionPresentIdNV
public void* pNext;
///
- /// presentId is used to associate the vkQueueSubmit with the presentId used for a given vkQueuePresentKHR via
+ /// presentID is used to associate the vkQueueSubmit with the presentId used for a given vkQueuePresentKHR via
/// VkPresentIdKHR::pPresentIds.
///
public ulong presentID;
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencyTimingsFrameReportNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencyTimingsFrameReportNV.cs
index 18e2ee94..3efefa12 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencyTimingsFrameReportNV.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencyTimingsFrameReportNV.cs
@@ -43,7 +43,7 @@ public unsafe struct VkLatencyTimingsFrameReportNV
public void* pNext;
///
- /// presentId is the application provided value that is used to associate the timestamp with a vkQueuePresentKHR
+ /// presentID is the application provided value that is used to associate the timestamp with a vkQueuePresentKHR
/// command using VkPresentIdKHR::pPresentIds for a given present.
///
public ulong presentID;
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSetLatencyMarkerInfoNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSetLatencyMarkerInfoNV.cs
index cd27dd81..51b51a24 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSetLatencyMarkerInfoNV.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSetLatencyMarkerInfoNV.cs
@@ -30,7 +30,7 @@ public unsafe struct VkSetLatencyMarkerInfoNV
public void* pNext;
///
- /// presentId is an application provided value that is used to associate the timestamp with a vkQueuePresentKHR
+ /// presentID is an application provided value that is used to associate the timestamp with a vkQueuePresentKHR
/// command using VkPresentIdKHR::pPresentIds for a given present.
///
public ulong presentID;
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing/VkRayTracingPipelineCreateInfoNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing/VkRayTracingPipelineCreateInfoNV.cs
index 60bbddc6..2bf2e159 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing/VkRayTracingPipelineCreateInfoNV.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing/VkRayTracingPipelineCreateInfoNV.cs
@@ -20,6 +20,14 @@ namespace Exomia.Vulkan.Api.Core;
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRayTracingPipelineCreateInfoNV.html
///
///
+///
+///
+/// -
+/// structextendsVkPipelineCreateInfoKHR
+///
+///
+///
+[VkStructExtends("VkPipelineCreateInfoKHR")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkRayTracingPipelineCreateInfoNV
{
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_multiview_per_view_viewports/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.cs b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_multiview_per_view_viewports/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.cs
index e43088a7..ef4b64f0 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_multiview_per_view_viewports/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_multiview_per_view_viewports/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.cs
@@ -47,6 +47,6 @@ public unsafe struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
/// pNext is NULL or a pointer to a structure extending this structure.
public void* pNext;
- /// multiviewPerViewViewports indicates that the implementation supports multiview per-view viewports.
+ /// multiviewPerViewViewportsindicates that the implementation supports multiview per-view viewports.
public VkBool32 multiviewPerViewViewports;
}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs
index 95589e05..431f677d 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs
@@ -17,6 +17,14 @@ namespace Exomia.Vulkan.Api.Core;
/// VkComputePipelineCreateInfo - Structure specifying parameters of a newly created compute pipeline -
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkComputePipelineCreateInfo.html
///
+///
+///
+/// -
+/// structextendsVkPipelineCreateInfoKHR
+///
+///
+///
+[VkStructExtends("VkPipelineCreateInfoKHR")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkComputePipelineCreateInfo
{
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs
index 54866345..8fd9c5c4 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs
@@ -17,6 +17,14 @@ namespace Exomia.Vulkan.Api.Core;
/// VkGraphicsPipelineCreateInfo - Structure specifying parameters of a newly created graphics pipeline -
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineCreateInfo.html
///
+///
+///
+/// -
+/// structextendsVkPipelineCreateInfoKHR
+///
+///
+///
+[VkStructExtends("VkPipelineCreateInfoKHR")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkGraphicsPipelineCreateInfo
{
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingFeatures.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingFeatures.cs
index 0a2bd220..eb4d3b39 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingFeatures.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingFeatures.cs
@@ -43,28 +43,28 @@ public unsafe struct VkPhysicalDeviceDescriptorIndexingFeatures
///
/// shaderInputAttachmentArrayDynamicIndexing indicates whether arrays of input attachments can be indexed by
- /// dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor
- /// type of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must be indexed only by constant integral expressions when aggregated
- /// into arrays in shader code. This also indicates whether shader modules can declare the
- /// InputAttachmentArrayDynamicIndexing capability.
+ /// integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader code.
+ /// If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must be
+ /// indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates
+ /// whether shader modules can declare the InputAttachmentArrayDynamicIndexing capability.
///
public VkBool32 shaderInputAttachmentArrayDynamicIndexing;
///
/// shaderUniformTexelBufferArrayDynamicIndexing indicates whether arrays of uniform texel buffers can be indexed
- /// by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a
- /// descriptor type of VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must be indexed only by constant integral expressions
- /// when aggregated into arrays in shader code. This also indicates whether shader modules can declare the
- /// UniformTexelBufferArrayDynamicIndexing capability.
+ /// by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader
+ /// code. If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
+ /// must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also
+ /// indicates whether shader modules can declare the UniformTexelBufferArrayDynamicIndexing capability.
///
public VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
///
/// shaderStorageTexelBufferArrayDynamicIndexing indicates whether arrays of storage texel buffers can be indexed
- /// by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a
- /// descriptor type of VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must be indexed only by constant integral expressions
- /// when aggregated into arrays in shader code. This also indicates whether shader modules can declare the
- /// StorageTexelBufferArrayDynamicIndexing capability.
+ /// by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader
+ /// code. If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
+ /// must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also
+ /// indicates whether shader modules can declare the StorageTexelBufferArrayDynamicIndexing capability.
///
public VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingProperties.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingProperties.cs
index d3d7c138..87ab5f75 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingProperties.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingProperties.cs
@@ -54,40 +54,40 @@ public unsafe struct VkPhysicalDeviceDescriptorIndexingProperties
///
/// shaderUniformBufferArrayNonUniformIndexingNative is a boolean value indicating whether uniform buffer
- /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an
- /// instruction that nonuniformly indexes an array of uniform buffers mayexecute multiple times in order to access all
+ /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an
+ /// instruction that non-uniformly indexes an array of uniform buffers mayexecute multiple times in order to access all
/// the descriptors.
///
public VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
///
/// shaderSampledImageArrayNonUniformIndexingNative is a boolean value indicating whether sampler and image
- /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an
- /// instruction that nonuniformly indexes an array of samplers or images may execute multiple times in order to access
+ /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an
+ /// instruction that non-uniformly indexes an array of samplers or images may execute multiple times in order to access
/// all the descriptors.
///
public VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
///
/// shaderStorageBufferArrayNonUniformIndexingNative is a boolean value indicating whether storage buffer
- /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an
- /// instruction that nonuniformly indexes an array of storage buffers mayexecute multiple times in order to access all
+ /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an
+ /// instruction that non-uniformly indexes an array of storage buffers mayexecute multiple times in order to access all
/// the descriptors.
///
public VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
///
/// shaderStorageImageArrayNonUniformIndexingNative is a boolean value indicating whether storage image
- /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an
- /// instruction that nonuniformly indexes an array of storage images mayexecute multiple times in order to access all
+ /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an
+ /// instruction that non-uniformly indexes an array of storage images mayexecute multiple times in order to access all
/// the descriptors.
///
public VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
///
/// shaderInputAttachmentArrayNonUniformIndexingNative is a boolean value indicating whether input attachment
- /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an
- /// instruction that nonuniformly indexes an array of input attachments mayexecute multiple times in order to access
+ /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an
+ /// instruction that non-uniformly indexes an array of input attachments may execute multiple times in order to access
/// all the descriptors.
///
public VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs
index 1788c1d3..520da1f3 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs
@@ -117,28 +117,28 @@ public unsafe struct VkPhysicalDeviceVulkan12Features
///
/// shaderInputAttachmentArrayDynamicIndexing indicates whether arrays of input attachments can be indexed by
- /// dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor
- /// type of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must be indexed only by constant integral expressions when aggregated
- /// into arrays in shader code. This also indicates whether shader modules can declare the
- /// InputAttachmentArrayDynamicIndexing capability.
+ /// integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader code.
+ /// If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must be
+ /// indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates
+ /// whether shader modules can declare the InputAttachmentArrayDynamicIndexing capability.
///
public VkBool32 shaderInputAttachmentArrayDynamicIndexing;
///
/// shaderUniformTexelBufferArrayDynamicIndexing indicates whether arrays of uniform texel buffers can be indexed
- /// by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a
- /// descriptor type of VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must be indexed only by constant integral expressions
- /// when aggregated into arrays in shader code. This also indicates whether shader modules can declare the
- /// UniformTexelBufferArrayDynamicIndexing capability.
+ /// by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader
+ /// code. If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
+ /// must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also
+ /// indicates whether shader modules can declare the UniformTexelBufferArrayDynamicIndexing capability.
///
public VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
///
/// shaderStorageTexelBufferArrayDynamicIndexing indicates whether arrays of storage texel buffers can be indexed
- /// by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a
- /// descriptor type of VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must be indexed only by constant integral expressions
- /// when aggregated into arrays in shader code. This also indicates whether shader modules can declare the
- /// StorageTexelBufferArrayDynamicIndexing capability.
+ /// by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader
+ /// code. If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
+ /// must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also
+ /// indicates whether shader modules can declare the StorageTexelBufferArrayDynamicIndexing capability.
///
public VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Properties.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Properties.cs
index df7ab8e4..d553e0b6 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Properties.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Properties.cs
@@ -192,40 +192,40 @@ public unsafe struct VkPhysicalDeviceVulkan12Properties
///
/// shaderUniformBufferArrayNonUniformIndexingNative is a boolean value indicating whether uniform buffer
- /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an
- /// instruction that nonuniformly indexes an array of uniform buffers mayexecute multiple times in order to access all
+ /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an
+ /// instruction that non-uniformly indexes an array of uniform buffers mayexecute multiple times in order to access all
/// the descriptors.
///
public VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
///
/// shaderSampledImageArrayNonUniformIndexingNative is a boolean value indicating whether sampler and image
- /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an
- /// instruction that nonuniformly indexes an array of samplers or images may execute multiple times in order to access
+ /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an
+ /// instruction that non-uniformly indexes an array of samplers or images may execute multiple times in order to access
/// all the descriptors.
///
public VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
///
/// shaderStorageBufferArrayNonUniformIndexingNative is a boolean value indicating whether storage buffer
- /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an
- /// instruction that nonuniformly indexes an array of storage buffers mayexecute multiple times in order to access all
+ /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an
+ /// instruction that non-uniformly indexes an array of storage buffers mayexecute multiple times in order to access all
/// the descriptors.
///
public VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
///
/// shaderStorageImageArrayNonUniformIndexingNative is a boolean value indicating whether storage image
- /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an
- /// instruction that nonuniformly indexes an array of storage images mayexecute multiple times in order to access all
+ /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an
+ /// instruction that non-uniformly indexes an array of storage images mayexecute multiple times in order to access all
/// the descriptors.
///
public VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
///
/// shaderInputAttachmentArrayNonUniformIndexingNative is a boolean value indicating whether input attachment
- /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an
- /// instruction that nonuniformly indexes an array of input attachments mayexecute multiple times in order to access
+ /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an
+ /// instruction that non-uniformly indexes an array of input attachments may execute multiple times in order to access
/// all the descriptors.
///
public VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;