diff --git a/.version b/.version
index 7806c2e2..d33c9a0a 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-1.3.259
\ No newline at end of file
+1.3.260
\ No newline at end of file
diff --git a/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/EXT/VK_EXT_host_image_copy/VkExtHostImageCopy.global-alias.cs b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/EXT/VK_EXT_host_image_copy/VkExtHostImageCopy.global-alias.cs
new file mode 100644
index 00000000..7abdef0c
--- /dev/null
+++ b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/EXT/VK_EXT_host_image_copy/VkExtHostImageCopy.global-alias.cs
@@ -0,0 +1,2 @@
+global using VkSubresourceLayout2EXT = Exomia.Vulkan.Api.Core.VkSubresourceLayout2KHR;
+global using VkImageSubresource2EXT = Exomia.Vulkan.Api.Core.VkImageSubresource2KHR;
diff --git a/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_maintenance5/VkKhrMaintenance5.bitmasks.cs b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_maintenance5/VkKhrMaintenance5.bitmasks.cs
new file mode 100644
index 00000000..be01e7f3
--- /dev/null
+++ b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_maintenance5/VkKhrMaintenance5.bitmasks.cs
@@ -0,0 +1,2 @@
+global using VkPipelineCreateFlags2KHR = Exomia.Vulkan.Api.Core.VkPipelineCreateFlagBits2KHR;
+global using VkBufferUsageFlags2KHR = Exomia.Vulkan.Api.Core.VkBufferUsageFlagBits2KHR;
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkAccessFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkAccessFlagBits.cs
index bcb65cbc..df4155de 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkAccessFlagBits.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkAccessFlagBits.cs
@@ -28,10 +28,12 @@ public enum VkAccessFlagBits
VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x1,
///
- /// VK_ACCESS_INDEX_READ_BIT specifies read access to an index buffer as part of an indexed drawing command, bound
- /// by
+ /// VK_ACCESS_INDEX_READ_BIT specifies read access to an index buffer as part of an indexed drawing command,
+ /// bound by
+ /// vkCmdBindIndexBuffer2KHR
+ /// and
/// vkCmdBindIndexBuffer
- /// . Such access occurs in the VK_PIPELINE_STAGE_VERTEX_INPUT_BITpipeline stage.
+ /// . Such access occurs in the VK_PIPELINE_STAGE_VERTEX_INPUT_BIT pipeline stage.
///
VK_ACCESS_INDEX_READ_BIT = 0x2,
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkAccessFlagBits2.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkAccessFlagBits2.cs
index ef6b125d..4bd4a9e5 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkAccessFlagBits2.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkAccessFlagBits2.cs
@@ -31,10 +31,12 @@ public enum VkAccessFlagBits2 : ulong
VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x1,
///
- /// VK_ACCESS_2_INDEX_READ_BIT specifies read access to an index buffer as part of an indexed drawing command,
+ /// VK_ACCESS_2_INDEX_READ_BIT specifies read access to an index buffer as part of an indexed drawing command,
/// bound by
+ /// vkCmdBindIndexBuffer2KHR
+ /// and
/// vkCmdBindIndexBuffer
- /// . Such access occurs in the VK_PIPELINE_STAGE_2_INDEX_INPUT_BITpipeline stage.
+ /// . Such access occurs in the VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT pipeline stage.
///
VK_ACCESS_2_INDEX_READ_BIT = 0x2,
@@ -496,10 +498,12 @@ public enum VkAccessFlagBits2 : ulong
VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,
///
- /// VK_ACCESS_2_INDEX_READ_BIT specifies read access to an index buffer as part of an indexed drawing command,
+ /// VK_ACCESS_2_INDEX_READ_BIT specifies read access to an index buffer as part of an indexed drawing command,
/// bound by
+ /// vkCmdBindIndexBuffer2KHR
+ /// and
/// vkCmdBindIndexBuffer
- /// . Such access occurs in the VK_PIPELINE_STAGE_2_INDEX_INPUT_BITpipeline stage.
+ /// . Such access occurs in the VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT pipeline stage.
///
VK_ACCESS_2_INDEX_READ_BIT_KHR = VK_ACCESS_2_INDEX_READ_BIT,
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkBufferUsageFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkBufferUsageFlagBits.cs
index 86d56371..354cf8fc 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkBufferUsageFlagBits.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkBufferUsageFlagBits.cs
@@ -64,7 +64,10 @@ public enum VkBufferUsageFlagBits
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x20,
///
- /// VK_BUFFER_USAGE_INDEX_BUFFER_BIT specifies that the buffer is suitable for passing as the buffer parameter to
+ /// VK_BUFFER_USAGE_INDEX_BUFFER_BIT specifies that the buffer is suitable for passing as the buffer parameter
+ /// to
+ /// vkCmdBindIndexBuffer2KHR
+ /// and
/// vkCmdBindIndexBuffer
/// .
///
@@ -154,6 +157,16 @@ public enum VkBufferUsageFlagBits
///
VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x200,
+ ///
+ /// VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX specifies that the buffer can be used for as scratch memory for
+ ///
+ /// execution graph
+ /// dispatch
+ ///
+ /// .
+ ///
+ VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x2000000,
+
///
/// VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHRspecifies that the buffer is suitable for use
/// as a read-only input to an
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkFormat.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkFormat.cs
index 0b2b7b05..45e6664d 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkFormat.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkFormat.cs
@@ -1814,6 +1814,19 @@ public enum VkFormat
///
VK_FORMAT_R16G16_S10_5_NV = 1000464000,
+ ///
+ /// VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR specifies a four-component, 16-bit packed unsigned normalized format that
+ /// has a 1-bit A component in bit 15, a 5-bit B component in bits 10..14, a 5-bit G component in bits 5..9, and a
+ /// 5-bit R component in bits 0..4.
+ ///
+ VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = 1000470000,
+
+ ///
+ /// VK_FORMAT_A8_UNORM_KHR specifies a one-component, 8-bit unsigned normalized format that has a single 8-bit A
+ /// component.
+ ///
+ VK_FORMAT_A8_UNORM_KHR = 1000470001,
+
///
/// VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK specifies a four-component, ASTC compressed format where each 128-bit
/// compressed texel block encodes a 4×4 rectangle of signed floating-point RGBA texel data.
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineBindPoint.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineBindPoint.cs
index 435823e1..8425c137 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineBindPoint.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineBindPoint.cs
@@ -25,6 +25,16 @@ public enum VkPipelineBindPoint
/// VK_PIPELINE_BIND_POINT_COMPUTE specifies binding as a compute pipeline.
VK_PIPELINE_BIND_POINT_COMPUTE = 1,
+ ///
+ /// VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX specifies binding as an
+ ///
+ /// execution graph
+ /// pipeline
+ ///
+ /// .
+ ///
+ VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
+
/// VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR specifies binding as a ray tracing pipeline.
VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
index 875444b7..00cf030b 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
@@ -2365,6 +2365,36 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
+
+ ///
+ /// VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
+
+ ///
+ /// VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
+
///
/// VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
@@ -3955,18 +3985,6 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
- ///
- /// VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT
- /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
- ///
- VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002,
-
- ///
- /// VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT
- /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
- ///
- VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003,
-
///
/// VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
@@ -4687,6 +4705,54 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000,
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = 1000470000,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = 1000470001,
+
+ ///
+ /// VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = 1000470003,
+
+ ///
+ /// VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = 1000470004,
+
+ ///
+ /// VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = 1000338002,
+
+ ///
+ /// VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = 1000338003,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = 1000470005,
+
+ ///
+ /// VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = 1000470006,
+
///
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
@@ -5827,6 +5893,18 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
+ ///
+ /// VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR,
+
+ ///
+ /// VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR,
+
///
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/AMD/VK_AMD_pipeline_compiler_control/VkPipelineCompilerControlCreateInfoAMD.cs b/src/Exomia.Vulkan.Api.Core/Extensions/AMD/VK_AMD_pipeline_compiler_control/VkPipelineCompilerControlCreateInfoAMD.cs
index 2d47a1ff..602fe747 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/AMD/VK_AMD_pipeline_compiler_control/VkPipelineCompilerControlCreateInfoAMD.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/AMD/VK_AMD_pipeline_compiler_control/VkPipelineCompilerControlCreateInfoAMD.cs
@@ -24,11 +24,11 @@ namespace Exomia.Vulkan.Api.Core;
///
/// -
/// structextends
-/// VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo
+/// VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkExecutionGraphPipelineCreateInfoAMDX
///
///
///
-[VkStructExtends("VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo")]
+[VkStructExtends("VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkExecutionGraphPipelineCreateInfoAMDX")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkPipelineCompilerControlCreateInfoAMD
{
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_descriptor_buffer/VkDescriptorBufferBindingInfoEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_descriptor_buffer/VkDescriptorBufferBindingInfoEXT.cs
index b132229b..2076f59d 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_descriptor_buffer/VkDescriptorBufferBindingInfoEXT.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_descriptor_buffer/VkDescriptorBufferBindingInfoEXT.cs
@@ -26,39 +26,18 @@ public unsafe struct VkDescriptorBufferBindingInfoEXT
/// The stype of this structure.
public const VkStructureType STYPE = VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT;
- ///
- /// sType
- ///
- /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkDescriptorBufferBindingInfoEXT
- ///
- ///
+ /// sType is a VkStructureType value identifying this structure.
public VkStructureType sType;
- ///
- /// pNext
- ///
- /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkDescriptorBufferBindingInfoEXT
- ///
- ///
+ /// pNext is NULL or a pointer to a structure extending this structure.
public void* pNext;
- ///
- /// address
- ///
- /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkDescriptorBufferBindingInfoEXT
- ///
- ///
+ /// address is a VkDeviceAddress specifying the device address defining the descriptor buffer to be bound.
public VkDeviceAddress address;
///
- /// usage
- ///
- /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkDescriptorBufferBindingInfoEXT
- ///
+ /// usage is a bitmask of VkBufferUsageFlagBits specifying the VkBufferCreateInfo::usage for the buffer from which
+ /// address was queried.
///
public VkBufferUsageFlags usage;
}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkExtHostImageCopy.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkExtHostImageCopy.cs
index 16bb7f77..383079fd 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkExtHostImageCopy.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkExtHostImageCopy.cs
@@ -148,25 +148,19 @@ public static readonly delegate*<
VkHostImageLayoutTransitionInfoEXT* /*pTransitions*/,
VkResult> vkTransitionImageLayoutEXT = null;
+ /// vkGetImageSubresourceLayout2EXT alias for vkGetImageSubresourceLayout2KHR
///
- /// vkGetImageSubresourceLayout2EXT - Retrieve information about an image subresource -
+ /// vkGetImageSubresourceLayout2KHR - Retrieve information about an image subresource -
///
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageSubresourceLayout2EXT.html
///
///
- /// device is the logical device that owns the image.
- /// image is the image whose layout is being queried.
- ///
- /// pSubresource is a pointer to a VkImageSubresource2EXTstructure selecting a specific image
- /// for the image subresource.
- ///
- /// pLayout is a pointer to a VkSubresourceLayout2EXT structure in which the layout is returned.
public static readonly delegate*<
VkDevice /*device*/,
VkImage /*image*/,
- VkImageSubresource2EXT* /*pSubresource*/,
- VkSubresourceLayout2EXT* /*pLayout*/,
+ VkImageSubresource2KHR* /*pSubresource*/,
+ VkSubresourceLayout2KHR* /*pLayout*/,
void> vkGetImageSubresourceLayout2EXT = null;
/// Loads all function pointer based on the device for this extension. (see remarks!)
@@ -214,9 +208,9 @@ public static void Load(VkDevice device)
device, "\u6b76\u7254\u6e61\u6973\u6974\u6e6f\u6d49\u6761\u4c65\u7961\u756f\u4574\u5458\u0000");
}
- fixed (delegate** pvkGetImageSubresourceLayout2EXT = &vkGetImageSubresourceLayout2EXT)
+ fixed (delegate** pvkGetImageSubresourceLayout2EXT = &vkGetImageSubresourceLayout2EXT)
{
- *pvkGetImageSubresourceLayout2EXT = (delegate*)GetVkFunction(
+ *pvkGetImageSubresourceLayout2EXT = (delegate*)GetVkFunction(
device, "\u6b76\u6547\u4974\u616d\u6567\u7553\u7262\u7365\u756f\u6372\u4c65\u7961\u756f\u3274\u5845\u0054");
}
}
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkSubresourceHostMemcpySizeEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkSubresourceHostMemcpySizeEXT.cs
index d1324b6c..57f5b8f2 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkSubresourceHostMemcpySizeEXT.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkSubresourceHostMemcpySizeEXT.cs
@@ -21,14 +21,14 @@ namespace Exomia.Vulkan.Api.Core;
///
///
/// -
-/// structextendsVkSubresourceLayout2EXT
+/// structextendsVkSubresourceLayout2KHR
///
/// -
/// returnedonlytrue
///
///
///
-[VkStructExtends("VkSubresourceLayout2EXT")]
+[VkStructExtends("VkSubresourceLayout2KHR")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkSubresourceHostMemcpySizeEXT
{
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_image_compression_control/VkExtImageCompressionControl.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_image_compression_control/VkExtImageCompressionControl.cs
index 3c654086..d5e05c46 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_image_compression_control/VkExtImageCompressionControl.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_image_compression_control/VkExtImageCompressionControl.cs
@@ -50,25 +50,19 @@ public static unsafe class VkExtImageCompressionControl
public const string VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME_UTF8_NT =
"\u4b56\u455f\u5458\u495f\u414d\u4547\u435f\u4d4f\u5250\u5345\u4953\u4e4f\u435f\u4e4f\u5254\u4c4f\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045";
+ /// vkGetImageSubresourceLayout2EXT alias for vkGetImageSubresourceLayout2KHR
///
- /// vkGetImageSubresourceLayout2EXT - Retrieve information about an image subresource -
+ /// vkGetImageSubresourceLayout2KHR - Retrieve information about an image subresource -
///
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageSubresourceLayout2EXT.html
///
///
- /// device is the logical device that owns the image.
- /// image is the image whose layout is being queried.
- ///
- /// pSubresource is a pointer to a VkImageSubresource2EXTstructure selecting a specific image
- /// for the image subresource.
- ///
- /// pLayout is a pointer to a VkSubresourceLayout2EXT structure in which the layout is returned.
public static readonly delegate*<
VkDevice /*device*/,
VkImage /*image*/,
- VkImageSubresource2EXT* /*pSubresource*/,
- VkSubresourceLayout2EXT* /*pLayout*/,
+ VkImageSubresource2KHR* /*pSubresource*/,
+ VkSubresourceLayout2KHR* /*pLayout*/,
void> vkGetImageSubresourceLayout2EXT = null;
/// Loads all function pointer based on the device for this extension. (see remarks!)
@@ -83,9 +77,9 @@ public static readonly delegate*<
///
public static void Load(VkDevice device)
{
- fixed (delegate** pvkGetImageSubresourceLayout2EXT = &vkGetImageSubresourceLayout2EXT)
+ fixed (delegate** pvkGetImageSubresourceLayout2EXT = &vkGetImageSubresourceLayout2EXT)
{
- *pvkGetImageSubresourceLayout2EXT = (delegate*)GetVkFunction(
+ *pvkGetImageSubresourceLayout2EXT = (delegate*)GetVkFunction(
device, "\u6b76\u6547\u4974\u616d\u6567\u7553\u7262\u7365\u756f\u6372\u4c65\u7961\u756f\u3274\u5845\u0054");
}
}
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_image_compression_control/VkImageCompressionPropertiesEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_image_compression_control/VkImageCompressionPropertiesEXT.cs
index 1688f27d..9b9cd787 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_image_compression_control/VkImageCompressionPropertiesEXT.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_image_compression_control/VkImageCompressionPropertiesEXT.cs
@@ -24,14 +24,14 @@ namespace Exomia.Vulkan.Api.Core;
///
/// -
/// structextends
-/// VkImageFormatProperties2,VkSurfaceFormat2KHR,VkSubresourceLayout2EXT
+/// VkImageFormatProperties2,VkSurfaceFormat2KHR,VkSubresourceLayout2KHR
///
/// -
/// returnedonlytrue
///
///
///
-[VkStructExtends("VkImageFormatProperties2,VkSurfaceFormat2KHR,VkSubresourceLayout2EXT")]
+[VkStructExtends("VkImageFormatProperties2,VkSurfaceFormat2KHR,VkSubresourceLayout2KHR")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkImageCompressionPropertiesEXT
{
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_index_type_uint8/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_index_type_uint8/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.cs
index 5364b69f..de301896 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_index_type_uint8/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_index_type_uint8/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.cs
@@ -40,6 +40,9 @@ public unsafe struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT
/// pNext is NULL or a pointer to a structure extending this structure.
public void* pNext;
- /// indexTypeUint8 indicates that VK_INDEX_TYPE_UINT8_EXT can be used with vkCmdBindIndexBuffer.
+ ///
+ /// indexTypeUint8 indicates that VK_INDEX_TYPE_UINT8_EXT can be used with vkCmdBindIndexBuffer2KHR and
+ /// vkCmdBindIndexBuffer.
+ ///
public VkBool32 indexTypeUint8;
}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkBufferUsageFlagBits2KHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkBufferUsageFlagBits2KHR.cs
new file mode 100644
index 00000000..f0a72d57
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkBufferUsageFlagBits2KHR.cs
@@ -0,0 +1,253 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkBufferUsageFlagBits2KHR - Bitmask controlling how a pipeline is created -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits2KHR.html
+///
+[Flags]
+public enum VkBufferUsageFlagBits2KHR : ulong
+{
+ ///
+ /// VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR specifies that the buffer can be used as the source of a transfer command
+ /// (see the definition of
+ ///
+ /// VK_PIPELINE_STAGE_TRANSFER_BIT
+ ///
+ /// ).
+ ///
+ VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x1,
+
+ ///
+ /// VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR specifies that the buffer can be used as the destination of a transfer
+ /// command.
+ ///
+ VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x2,
+
+ ///
+ /// VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR specifies that the buffer can be used to create a VkBufferView
+ /// suitable for occupying a VkDescriptorSet slot of type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER.
+ ///
+ VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x4,
+
+ ///
+ /// VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR specifies that the buffer can be used to create a VkBufferView
+ /// suitable for occupying a VkDescriptorSet slot of type VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER.
+ ///
+ VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x8,
+
+ ///
+ /// VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR specifies that the buffer can be used in a VkDescriptorBufferInfo
+ /// suitable for occupying a VkDescriptorSet slot either of type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
+ /// VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC.
+ ///
+ VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x10,
+
+ ///
+ /// VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR specifies that the buffer can be used in a VkDescriptorBufferInfo
+ /// suitable for occupying a VkDescriptorSet slot either of type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
+ /// VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC.
+ ///
+ VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x20,
+
+ ///
+ /// VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR specifies that the buffer is suitable for passing as the buffer
+ /// parameter to
+ /// vkCmdBindIndexBuffer2KHR
+ /// and
+ /// vkCmdBindIndexBuffer
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x40,
+
+ ///
+ /// VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR specifies that the buffer is suitable for passing as an element of the
+ /// pBuffers array to
+ /// vkCmdBindVertexBuffers
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x80,
+
+ ///
+ /// VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR specifies that the buffer is suitable for passing as the buffer
+ /// parameter to
+ /// vkCmdDrawIndirect
+ /// ,
+ /// vkCmdDrawIndexedIndirect
+ /// ,
+ /// vkCmdDrawMeshTasksIndirectNV
+ /// ,
+ ///
+ /// vkCmdDrawMeshTasksIndirectCountNV
+ ///
+ /// , vkCmdDrawMeshTasksIndirectEXT, vkCmdDrawMeshTasksIndirectCountEXT,
+ /// vkCmdDrawClusterIndirectHUAWEI
+ /// , or
+ /// vkCmdDispatchIndirect
+ /// . It is also suitable for passing as the buffer member of VkIndirectCommandsStreamNV, or sequencesCountBuffer or
+ /// sequencesIndexBuffer or preprocessedBuffer member of VkGeneratedCommandsInfoNV
+ ///
+ VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x100,
+
+ ///
+ /// VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX specifies that the buffer can be used for as scratch memory for
+ ///
+ /// execution graph
+ /// dispatch
+ ///
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x2000000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_KHR specifies that the buffer is suitable for passing as the
+ /// buffer parameter to
+ ///
+ /// vkCmdBeginConditionalRenderingEXT
+ ///
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_KHR = 0x200,
+
+ ///
+ /// VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR specifies that the buffer is suitable for use as a
+ ///
+ /// Shader
+ /// Binding Table
+ ///
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x400,
+
+ ///
+ /// VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_KHR specifies that the buffer is suitable for using for binding as
+ /// a transform feedback buffer with
+ ///
+ /// vkCmdBindTransformFeedbackBuffersEXT
+ ///
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_KHR = 0x800,
+
+ ///
+ /// VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_KHRspecifies that the buffer is suitable for using as
+ /// a counter buffer with
+ /// vkCmdBeginTransformFeedbackEXT
+ /// and
+ /// vkCmdEndTransformFeedbackEXT
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_KHR = 0x1000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR specifies that the buffer can be used as the source video bitstream
+ /// buffer in a
+ ///
+ /// video
+ /// decode operation
+ ///
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x2000,
+
+ /// VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR is reserved for future use.
+ VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x4000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR specifies that the buffer can be used as the destination video bitstream
+ /// buffer in a
+ ///
+ /// video
+ /// encode operation
+ ///
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x8000,
+
+ /// VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR is reserved for future use.
+ VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x10000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR specifies that the buffer can be used to retrieve a buffer
+ /// device address via
+ /// vkGetBufferDeviceAddress
+ /// and use that address to access the buffer’s memory from a shader.
+ ///
+ VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x20000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHRspecifies that the buffer is suitable for use
+ /// as a read-only input to an
+ ///
+ /// acceleration
+ /// structure build
+ ///
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x80000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR specifies that the buffer is suitable for storage
+ /// space for a
+ /// VkAccelerationStructureKHR
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x100000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_KHR specifies that the buffer is suitable to contain sampler
+ /// and combined image sampler descriptors when bound as a descriptor buffer. Buffers containing combined image sampler
+ /// descriptors must also specify VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_KHR.
+ ///
+ VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_KHR = 0x200000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_KHR specifies that the buffer is suitable to contain resource
+ /// descriptors when bound as a descriptor buffer.
+ ///
+ VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_KHR = 0x400000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_KHRspecifies that the buffer, when bound, can be used
+ /// by the implementation to support push descriptors when using descriptor buffers.
+ ///
+ VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_KHR = 0x4000000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkBufferUsageFlagBits2KHR
+ ///
+ VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x800000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkBufferUsageFlagBits2KHR
+ ///
+ VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_KHR = 0x1000000,
+
+ ///
+ /// VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR specifies that the buffer is suitable for use as a
+ ///
+ /// Shader
+ /// Binding Table
+ ///
+ /// .
+ ///
+ VK_BUFFER_USAGE_2_RAY_TRACING_BIT_KHR = VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkBufferUsageFlags2CreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkBufferUsageFlags2CreateInfoKHR.cs
new file mode 100644
index 00000000..1efaa4ce
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkBufferUsageFlags2CreateInfoKHR.cs
@@ -0,0 +1,46 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkBufferUsageFlags2CreateInfoKHR - Extended buffer usage flags -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlags2CreateInfoKHR.html
+///
+///
+///
+///
+/// -
+/// structextends
+/// VkBufferViewCreateInfo,VkBufferCreateInfo,VkPhysicalDeviceExternalBufferInfo,VkDescriptorBufferBindingInfoEXT
+///
+///
+///
+[VkStructExtends("VkBufferViewCreateInfo,VkBufferCreateInfo,VkPhysicalDeviceExternalBufferInfo,VkDescriptorBufferBindingInfoEXT")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkBufferUsageFlags2CreateInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_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;
+
+ /// usage is a bitmask of VkBufferUsageFlagBits2KHR specifying how a pipeline will be generated.
+ public VkBufferUsageFlags2KHR usage;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkDeviceImageSubresourceInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkDeviceImageSubresourceInfoKHR.cs
new file mode 100644
index 00000000..1faa71e8
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkDeviceImageSubresourceInfoKHR.cs
@@ -0,0 +1,46 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkDeviceImageSubresourceInfoKHR - Image creation information for querying subresource layout -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceImageSubresourceInfoKHR.html
+///
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkDeviceImageSubresourceInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_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;
+
+ ///
+ /// pCreateInfo is a pointer to a VkImageCreateInfo structure containing parameters affecting creation of the
+ /// image to query.
+ ///
+ public VkImageCreateInfo* pCreateInfo;
+
+ ///
+ /// pSubresource pSubresource is a pointer to a VkImageSubresource2KHR structure selecting a specific image
+ /// subresource for the query.
+ ///
+ public VkImageSubresource2KHR* pSubresource;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkImageSubresource2EXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkImageSubresource2KHR.cs
similarity index 83%
rename from src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkImageSubresource2EXT.cs
rename to src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkImageSubresource2KHR.cs
index 0ab1538b..e791a606 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkImageSubresource2EXT.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkImageSubresource2KHR.cs
@@ -14,14 +14,14 @@
namespace Exomia.Vulkan.Api.Core;
///
-/// VkImageSubresource2EXT - Structure specifying an image subresource -
-/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageSubresource2EXT.html
+/// VkImageSubresource2KHR - Structure specifying an image subresource -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageSubresource2KHR.html
///
[StructLayout(LayoutKind.Sequential)]
-public unsafe struct VkImageSubresource2EXT
+public unsafe struct VkImageSubresource2KHR
{
/// The stype of this structure.
- public const VkStructureType STYPE = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT;
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR;
/// sType is a VkStructureType value identifying this structure.
public VkStructureType sType;
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkKhrMaintenance5.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkKhrMaintenance5.cs
new file mode 100644
index 00000000..8a352a25
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkKhrMaintenance5.cs
@@ -0,0 +1,169 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+global using static Exomia.Vulkan.Api.Core.VkKhrMaintenance5;
+
+#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_maintenance5 - device extension (nr. 471) - author 'KHR' [platform '' | contact 'Stu Smith @stu-s']
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance5.html
+///
+[VkDepends("VK_VERSION_1_1+VK_KHR_dynamic_rendering")]
+public static unsafe class VkKhrMaintenance5
+{
+ /// The spec version.
+ public const uint VK_KHR_MAINTENANCE_5_SPEC_VERSION = 1;
+
+ /// The extension name.
+ public const string VK_KHR_MAINTENANCE_5_EXTENSION_NAME = "VK_KHR_maintenance5";
+
+ ///
+ /// An UTF8 null terminated version of represented by an UTF16
+ /// string.
+ ///
+ ///
+ /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_KHR_MAINTENANCE_5_EXTENSION_NAME_UTF8_NT) {
+ /// sbyte* utf8NtPtr = (sbyte*)ptr; // utf8NtPtr - can now be passed and used directly as a utf8_nt string for
+ /// unmanaged code.
+ /// }
+ ///
+ public const string VK_KHR_MAINTENANCE_5_EXTENSION_NAME_UTF8_NT = "\u4b56\u4b5f\u5248\u4d5f\u4941\u544e\u4e45\u4e41\u4543\u355f\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045";
+
+ ///
+ /// vkCmdBindIndexBuffer2KHR - Bind an index buffer to a command buffer -
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdBindIndexBuffer2KHR.html
+ ///
+ /// commandBuffer is the command buffer into which the command is recorded.
+ /// buffer is the buffer being bound.
+ /// offset is the starting offset in bytes within buffer used in index buffer address calculations.
+ /// size is the size in bytes of index data bound from buffer.
+ /// indexType is a VkIndexType value specifying the size of the indices.
+ public static readonly delegate*<
+ VkCommandBuffer /*commandBuffer*/,
+ VkBuffer /*buffer*/,
+ VkDeviceSize /*offset*/,
+ VkDeviceSize /*size*/,
+ VkIndexType /*indexType*/,
+ void> vkCmdBindIndexBuffer2KHR = null;
+
+ ///
+ /// vkGetRenderingAreaGranularityKHR - Returns the granularity for dynamic rendering optimal render area -
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetRenderingAreaGranularityKHR.html
+ ///
+ ///
+ /// device is the logical device that owns the render pass instance.
+ ///
+ /// pRenderingAreaInfo is a pointer to a VkRenderingAreaInfoKHRstructure specifying
+ /// details of the render pass instance to query the render area granularity for.
+ ///
+ /// pGranularity is a pointer to a VkExtent2D structure in which the granularity is returned.
+ public static readonly delegate*<
+ VkDevice /*device*/,
+ VkRenderingAreaInfoKHR* /*pRenderingAreaInfo*/,
+ VkExtent2D* /*pGranularity*/,
+ void> vkGetRenderingAreaGranularityKHR = null;
+
+ ///
+ /// vkGetDeviceImageSubresourceLayoutKHR - Retrieve information about an image subresource without an image object -
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDeviceImageSubresourceLayoutKHR.html
+ ///
+ ///
+ /// device is the logical device that owns the image.
+ ///
+ /// pInfo is a pointer to a VkDeviceImageSubresourceInfoKHRstructure containing parameters required for
+ /// the subresource layout query.
+ ///
+ /// pLayout is a pointer to a VkSubresourceLayout2KHR structure in which the layout is returned.
+ public static readonly delegate*<
+ VkDevice /*device*/,
+ VkDeviceImageSubresourceInfoKHR* /*pInfo*/,
+ VkSubresourceLayout2KHR* /*pLayout*/,
+ void> vkGetDeviceImageSubresourceLayoutKHR = null;
+
+ ///
+ /// vkGetImageSubresourceLayout2KHR - Retrieve information about an image subresource -
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageSubresourceLayout2KHR.html
+ ///
+ ///
+ /// device is the logical device that owns the image.
+ /// image is the image whose layout is being queried.
+ ///
+ /// pSubresource is a pointer to a VkImageSubresource2KHRstructure selecting a specific image
+ /// for the image subresource.
+ ///
+ /// pLayout is a pointer to a VkSubresourceLayout2KHR structure in which the layout is returned.
+ public static readonly delegate*<
+ VkDevice /*device*/,
+ VkImage /*image*/,
+ VkImageSubresource2KHR* /*pSubresource*/,
+ VkSubresourceLayout2KHR* /*pLayout*/,
+ void> vkGetImageSubresourceLayout2KHR = 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:
+ ///
+ /// -
+ /// vkCmdBindIndexBuffer2KHR
+ ///
+ /// -
+ /// vkGetRenderingAreaGranularityKHR
+ ///
+ /// -
+ /// vkGetDeviceImageSubresourceLayoutKHR
+ ///
+ /// -
+ /// vkGetImageSubresourceLayout2KHR
+ ///
+ ///
+ ///
+ public static void Load(VkDevice device)
+ {
+ fixed (delegate** pvkCmdBindIndexBuffer2KHR = &vkCmdBindIndexBuffer2KHR)
+ {
+ *pvkCmdBindIndexBuffer2KHR = (delegate*)GetVkFunction(
+ device, "\u6b76\u6d43\u4264\u6e69\u4964\u646e\u7865\u7542\u6666\u7265\u4b32\u5248\u0000");
+ }
+
+ fixed (delegate** pvkGetRenderingAreaGranularityKHR = &vkGetRenderingAreaGranularityKHR)
+ {
+ *pvkGetRenderingAreaGranularityKHR = (delegate*)GetVkFunction(
+ device, "\u6b76\u6547\u5274\u6e65\u6564\u6972\u676e\u7241\u6165\u7247\u6e61\u6c75\u7261\u7469\u4b79\u5248\u0000");
+ }
+
+ fixed (delegate** pvkGetDeviceImageSubresourceLayoutKHR = &vkGetDeviceImageSubresourceLayoutKHR)
+ {
+ *pvkGetDeviceImageSubresourceLayoutKHR = (delegate*)GetVkFunction(
+ device, "\u6b76\u6547\u4474\u7665\u6369\u4965\u616d\u6567\u7553\u7262\u7365\u756f\u6372\u4c65\u7961\u756f\u4b74\u5248\u0000");
+ }
+
+ fixed (delegate** pvkGetImageSubresourceLayout2KHR = &vkGetImageSubresourceLayout2KHR)
+ {
+ *pvkGetImageSubresourceLayout2KHR = (delegate*)GetVkFunction(
+ device, "\u6b76\u6547\u4974\u616d\u6567\u7553\u7262\u7365\u756f\u6372\u4c65\u7961\u756f\u3274\u484b\u0052");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPhysicalDeviceMaintenance5FeaturesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPhysicalDeviceMaintenance5FeaturesKHR.cs
new file mode 100644
index 00000000..ebd86e05
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPhysicalDeviceMaintenance5FeaturesKHR.cs
@@ -0,0 +1,67 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPhysicalDeviceMaintenance5FeaturesKHR - Structure describing whether the implementation supports maintenance5
+/// functionality -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance5FeaturesKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceMaintenance5FeaturesKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_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;
+
+ ///
+ /// maintenance5 indicates that the implementation supports the following:The ability to expose support for the
+ /// optional format VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR.The ability to expose support for the optional format
+ /// VK_FORMAT_A8_UNORM_KHR.A property to indicate that multisample coverage operations are performed after sample
+ /// counting in EarlyFragmentTests mode.Creating a VkBufferView with a subset of the associated VkBuffer usage using
+ /// VkBufferUsageFlags2CreateInfoKHR.A new function vkCmdBindIndexBuffer2KHR, allowing a range of memory to be bound as
+ /// an index buffer.vkGetDeviceProcAddr will return NULL for function pointers of core functions for versions higher
+ /// than the version requested by the application.vkCmdBindVertexBuffers2 supports using VK_WHOLE_SIZE in the pSizes
+ /// parameter.If PointSize is not written, a default value of 1.0 is used for the size of
+ /// points.VkShaderModuleCreateInfo can be added as a chained structure to pipeline creation via
+ /// VkPipelineShaderStageCreateInfo, rather than having to create a shader module.A function
+ /// vkGetRenderingAreaGranularityKHR to query the optimal render area for a dynamic rendering instance.A property to
+ /// indicate that depth/stencil texturing operations with VK_COMPONENT_SWIZZLE_ONE have defined
+ /// behavior.vkGetDeviceImageSubresourceLayoutKHR allows an application to perform a vkGetImageSubresourceLayout query
+ /// without having to create an image.VK_REMAINING_ARRAY_LAYERS as the layerCount member of VkImageSubresourceLayers.A
+ /// property to indicate whether PointSize controls the final rasterization of polygons if polygon mode is
+ /// VK_POLYGON_MODE_POINT.Two properties to indicate the non-strict line rasterization algorithm used.Two new flags
+ /// words VkPipelineCreateFlagBits2KHR and VkBufferUsageFlagBits2KHR.Physical-device-level functions can now be called
+ /// with any value in the valid range for a type beyond the defined enumerants, such that applications can avoid
+ /// checking individual features, extensions, or versions before querying supported properties of a particular
+ /// enumerant.Copies between images of any type are allowed, with 1D images treated as 2D images with a height of 1.
+ ///
+ public VkBool32 maintenance5;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPhysicalDeviceMaintenance5PropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPhysicalDeviceMaintenance5PropertiesKHR.cs
new file mode 100644
index 00000000..717e059c
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPhysicalDeviceMaintenance5PropertiesKHR.cs
@@ -0,0 +1,83 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPhysicalDeviceMaintenance5PropertiesKHR - Structure describing various implementation-defined properties
+/// introduced with VK_KHR_maintenance5 -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance5PropertiesKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceProperties2
+///
+/// -
+/// returnedonlytrue
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceProperties2")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceMaintenance5PropertiesKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_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;
+
+ ///
+ /// earlyFragmentMultisampleCoverageAfterSampleCounting is a boolean value indicating whether the fragment shading
+ /// and multisample coverage operations are performed after sample counting for fragment shaders with
+ /// EarlyFragmentTests execution mode.
+ ///
+ public VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
+
+ ///
+ /// earlyFragmentSampleMaskTestBeforeSampleCounting is a boolean value indicating whether the sample mask test
+ /// operation is performed before sample counting for fragment shaders using the EarlyFragmentTestsexecution mode.
+ ///
+ public VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
+
+ ///
+ /// depthStencilSwizzleOneSupport is a boolean indicating that depth/stencil texturing operations with
+ /// enum:VK_COMPONENT_SWIZZLE_ONE have defined behavior.
+ ///
+ public VkBool32 depthStencilSwizzleOneSupport;
+
+ ///
+ /// polygonModePointSize is a boolean value indicating whether the point size of the final rasterization of
+ /// polygons with VK_POLYGON_MODE_POINT is controlled by PointSize.
+ ///
+ public VkBool32 polygonModePointSize;
+
+ ///
+ /// [[{anchor-prefix}fragops]]nonStrictSinglePixelWideLinesUseParallelogramis a boolean value indicating whether
+ /// non-strict lines with a width of 1.0 are rasterized as parallelograms or using Bresenham’s algorithm.
+ ///
+ public VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
+
+ ///
+ /// [[{anchor-prefix}fragops]]nonStrictWideLinesUseParallelogram is a boolean value indicating whether non-strict
+ /// lines with a width greater than 1.0 are rasterized as parallelograms or using Bresenham’s algorithm.
+ ///
+ public VkBool32 nonStrictWideLinesUseParallelogram;
+}
\ No newline at end of file
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
new file mode 100644
index 00000000..236237d8
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlagBits2KHR.cs
@@ -0,0 +1,256 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPipelineCreateFlagBits2KHR - Bitmask controlling how a pipeline is created -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCreateFlagBits2KHR.html
+///
+[Flags]
+public enum VkPipelineCreateFlagBits2KHR : ulong
+{
+ ///
+ /// VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR specifies that the created pipeline will not be optimized.
+ /// Using this flag may reduce the time taken to create the pipeline.
+ ///
+ VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x1,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR specifies that the pipeline to be created is allowed to be the
+ /// parent of a pipeline that will be created in a subsequent pipeline creation call.
+ ///
+ VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x2,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR specifies that the pipeline to be created will be a child of a
+ /// previously created parent pipeline.
+ ///
+ VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x4,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RESERVED_BIT_28_NV
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkPipelineCreateFlagBits2KHR
+ ///
+ ///
+ VK_PIPELINE_CREATE_2_RESERVED_BIT_28_NV = 0x10000000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHRspecifies that any shader input variables decorated
+ /// as ViewIndexwill be assigned values as if they were decorated as DeviceIndex.
+ ///
+ VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x8,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR specifies that a compute pipeline can be used with
+ /// vkCmdDispatchBase
+ /// with a non-zero base workgroup.
+ ///
+ VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x10,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_KHR specifies that a pipeline is created with all shaders in the
+ /// deferred state. Before using the pipeline the application must call
+ /// vkCompileDeferredNV
+ /// exactly once on each shader in the pipeline before using the pipeline.
+ ///
+ VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_KHR = 0x20,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR specifies that the shader compiler should capture statistics for
+ /// the pipeline executables produced by the compile process which can later be retrieved by calling
+ ///
+ /// vkGetPipelineExecutableStatisticsKHR
+ ///
+ /// . Enabling this flag must not affect the final compiled pipeline but maydisable pipeline caching or otherwise
+ /// affect pipeline creation time.
+ ///
+ VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x40,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHRspecifies that the shader compiler should capture the
+ /// internal representations of pipeline executables produced by the compile process which can later be retrieved by
+ /// calling
+ ///
+ /// vkGetPipelineExecutableInternalRepresentationsKHR
+ ///
+ /// . Enabling this flag must not affect the final compiled pipeline but maydisable pipeline caching or otherwise
+ /// affect pipeline creation time. When capturing IR from pipelines created with pipeline libraries, there is no
+ /// guarantee that IR from libraries can be retrieved from the linked pipeline. Applications should retrieve IR from
+ /// each library, and any linked pipelines, separately.
+ ///
+ VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x80,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHRspecifies that pipeline creation will fail if a
+ /// compile is required for creation of a valid
+ /// VkPipeline
+ /// object; VK_PIPELINE_COMPILE_REQUIRED will be returned by pipeline creation, and the
+ /// VkPipeline will
+ /// be set to
+ /// VK_NULL_HANDLE
+ /// .
+ ///
+ VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x100,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkPipelineCreateFlagBits2KHR
+ ///
+ ///
+ VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x200,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_KHR specifies that pipeline libraries being linked into this
+ /// library should have link time optimizations applied. If this bit is omitted, implementations should instead perform
+ /// linking as rapidly as possible.
+ ///
+ VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_KHR = 0x400,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_KHRspecifies that pipeline libraries should retain
+ /// any information necessary to later perform an optimal link with
+ /// VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_KHR.
+ ///
+ VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_KHR = 0x800000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR specifies that the pipeline cannot be used directly, and instead
+ /// defines a pipeline library that can be combined with other pipelines using the
+ /// VkPipelineLibraryCreateInfoKHR
+ /// structure. This is available in ray tracing and graphics pipelines.
+ ///
+ VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x800,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR specifies that triangle primitives will be skipped
+ /// during traversal using OpTraceRayKHR.
+ ///
+ VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x1000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR specifies that AABB primitives will be skipped during
+ /// traversal using OpTraceRayKHR.
+ ///
+ VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x2000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHRspecifies that an any-hit shader will always
+ /// be present when an any-hit shader would be executed. A NULL any-hit shader is an any-hit shader which is
+ /// effectively VK_SHADER_UNUSED_KHR, such as from a shader group consisting entirely of zeros.
+ ///
+ VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x4000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHRspecifies that a closest hit shader will
+ /// always be present when a closest hit shader would be executed. A NULL closest hit shader is a closest hit shader
+ /// which is effectively VK_SHADER_UNUSED_KHR, such as from a shader group consisting entirely of zeros.
+ ///
+ VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x8000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHRspecifies that a miss shader will always be
+ /// present when a miss shader would be executed. A NULL miss shader is a miss shader which is effectively
+ /// VK_SHADER_UNUSED_KHR, such as from a shader group consisting entirely of zeros.
+ ///
+ VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x10000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHRspecifies that an intersection shader
+ /// will always be present when an intersection shader would be executed. A NULL intersection shader is an intersection
+ /// shader which is effectively VK_SHADER_UNUSED_KHR, such as from a shader group consisting entirely of zeros.
+ ///
+ VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x20000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHRspecifies that the shader group
+ /// handles can be saved and reused on a subsequent run (e.g. for trace capture and replay).
+ ///
+ VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x80000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_KHR specifies that the pipeline can be used in combination with
+ ///
+ /// https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands
+ ///
+ /// .
+ ///
+ VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_KHR = 0x40000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_KHR specifies that the pipeline is allowed to use
+ /// OpTraceRayMotionNV.
+ ///
+ VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_KHR = 0x100000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRspecifies that the pipeline will be
+ /// used with a fragment shading rate attachment.
+ ///
+ VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x200000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_KHRspecifies that the pipeline will be used
+ /// with a fragment density map attachment.
+ ///
+ VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_KHR = 0x400000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_KHRspecifies that the pipeline can be used with
+ /// acceleration structures which reference an opacity micromap array.
+ ///
+ VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_KHR = 0x1000000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_KHRspecifies that the pipeline may be used with an
+ /// attachment feedback loop including color attachments.
+ ///
+ VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_KHR = 0x2000000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_KHRspecifies that the pipeline may be used
+ /// with an attachment feedback loop including depth-stencil attachments.
+ ///
+ VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_KHR = 0x4000000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_KHR specifies that the pipeline must not be bound to a protected
+ /// command buffer.
+ ///
+ VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_KHR = 0x8000000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_KHR specifies that the pipeline must not be bound to an
+ /// unprotected command buffer.
+ ///
+ VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_KHR = 0x40000000,
+
+ ///
+ /// VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_KHR specifies that a pipeline will be used with
+ ///
+ /// descriptor
+ /// buffers
+ ///
+ /// , rather than
+ /// descriptor sets
+ /// .
+ ///
+ VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_KHR = 0x20000000
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlags2CreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlags2CreateInfoKHR.cs
new file mode 100644
index 00000000..8a017297
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlags2CreateInfoKHR.cs
@@ -0,0 +1,46 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPipelineCreateFlags2CreateInfoKHR - Extended pipeline create flags -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCreateFlags2CreateInfoKHR.html
+///
+///
+///
+///
+/// -
+/// structextends
+/// VkComputePipelineCreateInfo,VkGraphicsPipelineCreateInfo,VkRayTracingPipelineCreateInfoNV,VkRayTracingPipelineCreateInfoKHR
+///
+///
+///
+[VkStructExtends("VkComputePipelineCreateInfo,VkGraphicsPipelineCreateInfo,VkRayTracingPipelineCreateInfoNV,VkRayTracingPipelineCreateInfoKHR")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPipelineCreateFlags2CreateInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_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;
+
+ /// flags is a bitmask of VkPipelineCreateFlagBits2KHRspecifying how a pipeline will be generated.
+ public VkPipelineCreateFlags2KHR flags;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkRenderingAreaInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkRenderingAreaInfoKHR.cs
new file mode 100644
index 00000000..c5463dfb
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkRenderingAreaInfoKHR.cs
@@ -0,0 +1,55 @@
+#region License
+
+// Copyright (c) 2018-2023, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkRenderingAreaInfoKHR - Structure describing rendering area granularity query info -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRenderingAreaInfoKHR.html
+///
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkRenderingAreaInfoKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_RENDERING_AREA_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;
+
+ /// viewMask is the viewMask used for rendering.
+ public uint viewMask;
+
+ /// colorAttachmentCount is the number of entries in pColorAttachmentFormats
+ public uint colorAttachmentCount;
+
+ ///
+ /// pColorAttachmentFormats is a pointer to an array of VkFormatvalues defining the format of color attachments
+ /// used in the render pass instance.
+ ///
+ public VkFormat* pColorAttachmentFormats;
+
+ ///
+ /// depthAttachmentFormat is a VkFormat value defining the format of the depth attachment used in the render pass
+ /// instance.
+ ///
+ public VkFormat depthAttachmentFormat;
+
+ ///
+ /// stencilAttachmentFormat is a VkFormat value defining the format of the stencil attachment used in the render
+ /// pass instance.
+ ///
+ public VkFormat stencilAttachmentFormat;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkSubresourceLayout2EXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkSubresourceLayout2KHR.cs
similarity index 85%
rename from src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkSubresourceLayout2EXT.cs
rename to src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkSubresourceLayout2KHR.cs
index fe03e664..f4375237 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_host_image_copy/VkSubresourceLayout2EXT.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkSubresourceLayout2KHR.cs
@@ -14,8 +14,8 @@
namespace Exomia.Vulkan.Api.Core;
///
-/// VkSubresourceLayout2EXT - Structure specifying subresource layout -
-/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubresourceLayout2EXT.html
+/// VkSubresourceLayout2KHR - Structure specifying subresource layout -
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubresourceLayout2KHR.html
///
///
///
@@ -25,10 +25,10 @@ namespace Exomia.Vulkan.Api.Core;
///
///
[StructLayout(LayoutKind.Sequential)]
-public unsafe struct VkSubresourceLayout2EXT
+public unsafe struct VkSubresourceLayout2KHR
{
/// The stype of this structure.
- public const VkStructureType STYPE = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT;
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR;
/// sType is a VkStructureType value identifying this structure.
public VkStructureType sType;
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineCreationFeedbackCreateInfo.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineCreationFeedbackCreateInfo.cs
index 2cab4065..951e954c 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineCreationFeedbackCreateInfo.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineCreationFeedbackCreateInfo.cs
@@ -24,11 +24,11 @@ namespace Exomia.Vulkan.Api.Core;
///
/// -
/// structextends
-/// VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoNV,VkRayTracingPipelineCreateInfoKHR
+/// VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoNV,VkRayTracingPipelineCreateInfoKHR,VkExecutionGraphPipelineCreateInfoAMDX
///
///
///
-[VkStructExtends("VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoNV,VkRayTracingPipelineCreateInfoKHR")]
+[VkStructExtends("VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoNV,VkRayTracingPipelineCreateInfoKHR,VkExecutionGraphPipelineCreateInfoAMDX")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkPipelineCreationFeedbackCreateInfo
{
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineInputAssemblyStateCreateInfo.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineInputAssemblyStateCreateInfo.cs
index ac158844..540d4346 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineInputAssemblyStateCreateInfo.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineInputAssemblyStateCreateInfo.cs
@@ -40,13 +40,14 @@ public unsafe struct VkPipelineInputAssemblyStateCreateInfo
public VkPrimitiveTopology topology;
///
- /// primitiveRestartEnable controls whether a special vertex index value is treated as restarting the assembly of
- /// primitives. This enable only applies to indexed draws (vkCmdDrawIndexed, vkCmdDrawMultiIndexedEXT, and
- /// vkCmdDrawIndexedIndirect), and the special index value is either 0xFFFFFFFF when the indexType parameter of
- /// vkCmdBindIndexBuffer is equal to VK_INDEX_TYPE_UINT32, 0xFF when indexType is equal to VK_INDEX_TYPE_UINT8_EXT, or
- /// 0xFFFF when indexType is equal to VK_INDEX_TYPE_UINT16. Primitive restart is not allowed for “list”
- /// topologies, unless one of the features primitiveTopologyPatchListRestart (for VK_PRIMITIVE_TOPOLOGY_PATCH_LIST) or
- /// primitiveTopologyListRestart (for all other list topologies) is enabled.
+ /// primitiveRestartEnable controls whether a special vertex index value is treated as restarting the assembly
+ /// of primitives. This enable only applies to indexed draws (vkCmdDrawIndexed, vkCmdDrawMultiIndexedEXT,
+ /// and vkCmdDrawIndexedIndirect), and the special index value is either 0xFFFFFFFF when the indexType parameter of
+ /// vkCmdBindIndexBuffer2KHR or vkCmdBindIndexBuffer is equal to VK_INDEX_TYPE_UINT32, 0xFF when indexType is
+ /// equal to VK_INDEX_TYPE_UINT8_EXT, or 0xFFFF when indexType is equal to VK_INDEX_TYPE_UINT16. Primitive
+ /// restart is not allowed for “list” topologies, unless one of the features
+ /// primitiveTopologyPatchListRestart (for VK_PRIMITIVE_TOPOLOGY_PATCH_LIST) or primitiveTopologyListRestart
+ /// (for all other list topologies) is enabled.
///
public VkBool32 primitiveRestartEnable;
}
\ No newline at end of file