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