From b3c801bba7f6f85843f4c70187cb69867616b483 Mon Sep 17 00:00:00 2001 From: exomia-bot Date: Wed, 27 Nov 2024 09:06:51 +0000 Subject: [PATCH] v1.3.302 --- .version | 2 +- .../VkKhrVideoEncodeAv1.bitmasks.cs | 4 + .../VkKhrVideoEncodeQueue.bitmasks.cs | 2 +- .../VkKhrVideoQueue.bitmasks.cs | 2 +- .../Enums/VkBorderColor.cs | 4 +- .../Enums/VkDescriptorBindingFlagBits.cs | 16 +- .../Enums/VkFormatFeatureFlagBits2.cs | 32 +++ .../Enums/VkImageLayout.cs | 19 +- .../Enums/VkImageTiling.cs | 2 +- .../Enums/VkImageUsageFlagBits.cs | 30 +++ .../VkPipelineCreationFeedbackFlagBits.cs | 12 +- .../Enums/VkResolveModeFlagBits.cs | 22 +- .../Enums/VkSamplerAddressMode.cs | 8 +- .../Enums/VkStructureType.cs | 150 +++++++++++++ .../Enums/VkVideoEncodeFlagBitsKHR.cs | 37 +++- ...icalDeviceSchedulingControlsFlagBitsARM.cs | 2 +- ...icalDeviceDescriptorBufferPropertiesEXT.cs | 13 +- .../VkIndirectCommandsInputModeFlagBitsEXT.cs | 4 +- .../VkBuildMicromapFlagBitsEXT.cs | 4 +- .../VkOpacityMicromapFormatEXT.cs | 4 +- .../VkPipelineRobustnessBufferBehaviorEXT.cs | 2 +- ...VkPipelineColorBlendStateCreateFlagBits.cs | 4 +- ...PipelineDepthStencilStateCreateFlagBits.cs | 8 +- .../VkRenderPassSubpassFeedbackInfoEXT.cs | 2 +- .../VkSubpassMergeStatusEXT.cs | 51 ++--- .../VkExtVertexAttributeRobustness.cs | 52 +++++ ...iceVertexAttributeRobustnessFeaturesEXT.cs | 49 +++++ ...VkBuildAccelerationStructureFlagBitsKHR.cs | 30 +-- .../VkGeometryFlagBitsKHR.cs | 8 +- .../VkGeometryInstanceFlagBitsKHR.cs | 4 +- .../VkRayTracingShaderGroupTypeKHR.cs | 20 +- .../VkKhrVideoDecodeAv1.cs | 2 - .../VkKhrVideoEncodeAv1.cs | 51 +++++ ...PhysicalDeviceVideoEncodeAV1FeaturesKHR.cs | 46 ++++ .../VkVideoEncodeAV1CapabilitiesKHR.cs | 169 +++++++++++++++ .../VkVideoEncodeAV1CapabilityFlagBitsKHR.cs | 102 +++++++++ .../VkVideoEncodeAV1DpbSlotInfoKHR.cs | 45 ++++ .../VkVideoEncodeAV1FrameSizeKHR.cs | 40 ++++ ...kVideoEncodeAV1GopRemainingFrameInfoKHR.cs | 72 +++++++ .../VkVideoEncodeAV1PictureInfoKHR.cs | 80 +++++++ .../VkVideoEncodeAV1PredictionModeKHR.cs | 114 ++++++++++ .../VkVideoEncodeAV1ProfileInfoKHR.cs | 45 ++++ .../VkVideoEncodeAV1QIndexKHR.cs | 40 ++++ ...VideoEncodeAV1QualityLevelPropertiesKHR.cs | 139 ++++++++++++ .../VkVideoEncodeAV1RateControlFlagBitsKHR.cs | 71 ++++++ .../VkVideoEncodeAV1RateControlGroupKHR.cs | 43 ++++ .../VkVideoEncodeAV1RateControlInfoKHR.cs | 69 ++++++ ...VkVideoEncodeAV1RateControlLayerInfoKHR.cs | 78 +++++++ .../VkVideoEncodeAV1SessionCreateInfoKHR.cs | 56 +++++ ...EncodeAV1SessionParametersCreateInfoKHR.cs | 65 ++++++ .../VkVideoEncodeAV1StdFlagBitsKHR.cs | 58 +++++ ...VideoEncodeAV1SuperblockSizeFlagBitsKHR.cs | 31 +++ .../VkVideoEncodeH264CapabilityFlagBitsKHR.cs | 29 ++- .../VkVideoEncodeH264StdFlagBitsKHR.cs | 40 ++-- .../VkVideoEncodeH265CapabilityFlagBitsKHR.cs | 37 ++-- .../VkVideoEncodeH265StdFlagBitsKHR.cs | 42 ++-- .../VkKhrVideoEncodeQuantizationMap.cs | 53 +++++ ...ceVideoEncodeQuantizationMapFeaturesKHR.cs | 51 +++++ ...EncodeAV1QuantizationMapCapabilitiesKHR.cs | 51 +++++ ...ncodeH264QuantizationMapCapabilitiesKHR.cs | 51 +++++ ...ncodeH265QuantizationMapCapabilitiesKHR.cs | 51 +++++ ...deoEncodeQuantizationMapCapabilitiesKHR.cs | 49 +++++ .../VkVideoEncodeQuantizationMapInfoKHR.cs | 52 +++++ ...zationMapSessionParametersCreateInfoKHR.cs | 49 +++++ ...eoFormatAV1QuantizationMapPropertiesKHR.cs | 56 +++++ ...oFormatH265QuantizationMapPropertiesKHR.cs | 56 +++++ ...VideoFormatQuantizationMapPropertiesKHR.cs | 51 +++++ ...VideoSessionParametersCreateFlagBitsKHR.cs | 36 ++++ .../VkVideoEncodeCapabilityFlagBitsKHR.cs | 24 ++- .../VkVideoEncodeInfoKHR.cs | 2 +- ...VkVideoEncodeRateControlModeFlagBitsKHR.cs | 2 + .../VkQueryResultStatusKHR.cs | 8 +- .../VkVideoCapabilityFlagBitsKHR.cs | 2 +- .../VkVideoCodecOperationFlagBitsKHR.cs | 14 +- .../VkVideoCodingControlFlagBitsKHR.cs | 6 +- .../VkVideoSessionCreateFlagBitsKHR.cs | 24 ++- .../VkVideoSessionParametersCreateInfoKHR.cs | 2 +- ...calDeviceCooperativeMatrix2PropertiesNV.cs | 2 +- .../VkDisplayModeStereoPropertiesNV.cs | 51 +++++ .../VkDisplaySurfaceStereoCreateInfoNV.cs | 49 +++++ .../VkDisplaySurfaceStereoTypeNV.cs | 51 +++++ .../VK_NV_display_stereo/VkNvDisplayStereo.cs | 49 +++++ .../VkOutOfBandQueueTypeNV.cs | 4 +- .../VkSwapchainLatencyCreateInfoNV.cs | 8 +- .../VkRayTracingInvocationReorderModeNV.cs | 4 +- .../VkCuModuleTexturingModeCreateInfoNVX.cs | 63 ++++++ .../VK_NVX_binary_import/VkNvxBinaryImport.cs | 2 +- .../VkNvxImageViewHandle.cs | 22 +- .../Structs/VkClearAttachment.cs | 2 +- .../Structs/VkGraphicsPipelineCreateInfo.cs | 4 +- .../Structs/VkPhysicalDeviceLimits.cs | 12 +- .../VkPhysicalDeviceVulkan12Features.cs | 6 +- .../VkPipelineColorBlendStateCreateInfo.cs | 4 +- .../StdVideoAV1ColorPrimaries.cs | 5 +- .../StdVideoEncodeAV1DecoderModelInfo.cs | 31 +++ .../StdVideoEncodeAV1ExtensionHeader.cs | 25 +++ .../StdVideoEncodeAV1OperatingPointInfo.cs | 35 +++ ...tdVideoEncodeAV1OperatingPointInfoFlags.cs | 47 ++++ .../StdVideoEncodeAV1PictureInfo.cs | 75 +++++++ .../StdVideoEncodeAV1PictureInfoFlags.cs | 203 ++++++++++++++++++ .../StdVideoEncodeAV1ReferenceInfo.cs | 33 +++ .../StdVideoEncodeAV1ReferenceInfoFlags.cs | 41 ++++ .../VulkanVideoCodecAv1stdEncode.cs | 43 ++++ .../VulkanVideoCodecAv1stdEncode.defines.cs | 21 ++ .../VkExportMetalObjectTypeFlagBitsEXT.cs | 15 +- .../VkExportMetalTextureInfoEXT.cs | 2 +- .../VkImportMetalTextureInfoEXT.cs | 2 +- .../VkFullScreenExclusiveEXT.cs | 20 +- 108 files changed, 3537 insertions(+), 247 deletions(-) create mode 100644 analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_encode_av1/VkKhrVideoEncodeAv1.bitmasks.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_vertex_attribute_robustness/VkExtVertexAttributeRobustness.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_vertex_attribute_robustness/VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkKhrVideoEncodeAv1.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkPhysicalDeviceVideoEncodeAV1FeaturesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1CapabilitiesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1CapabilityFlagBitsKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1DpbSlotInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1FrameSizeKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1GopRemainingFrameInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1PictureInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1PredictionModeKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1ProfileInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1QIndexKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1QualityLevelPropertiesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlFlagBitsKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlGroupKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlLayerInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SessionCreateInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SessionParametersCreateInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1StdFlagBitsKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SuperblockSizeFlagBitsKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkKhrVideoEncodeQuantizationMap.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeAV1QuantizationMapCapabilitiesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeH264QuantizationMapCapabilitiesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeH265QuantizationMapCapabilitiesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapCapabilitiesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatAV1QuantizationMapPropertiesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatH265QuantizationMapPropertiesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatQuantizationMapPropertiesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoSessionParametersCreateFlagBitsKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplayModeStereoPropertiesNV.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplaySurfaceStereoCreateInfoNV.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplaySurfaceStereoTypeNV.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkNvDisplayStereo.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_binary_import/VkCuModuleTexturingModeCreateInfoNVX.cs create mode 100644 src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1DecoderModelInfo.cs create mode 100644 src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ExtensionHeader.cs create mode 100644 src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1OperatingPointInfo.cs create mode 100644 src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1OperatingPointInfoFlags.cs create mode 100644 src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1PictureInfo.cs create mode 100644 src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1PictureInfoFlags.cs create mode 100644 src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ReferenceInfo.cs create mode 100644 src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ReferenceInfoFlags.cs create mode 100644 src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/VulkanVideoCodecAv1stdEncode.cs create mode 100644 src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/VulkanVideoCodecAv1stdEncode.defines.cs diff --git a/.version b/.version index f21c8c12..bc604a91 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -1.3.301 \ No newline at end of file +1.3.302 \ No newline at end of file diff --git a/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_encode_av1/VkKhrVideoEncodeAv1.bitmasks.cs b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_encode_av1/VkKhrVideoEncodeAv1.bitmasks.cs new file mode 100644 index 00000000..ab238af9 --- /dev/null +++ b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_encode_av1/VkKhrVideoEncodeAv1.bitmasks.cs @@ -0,0 +1,4 @@ +global using VkVideoEncodeAV1CapabilityFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoEncodeAV1CapabilityFlagBitsKHR; +global using VkVideoEncodeAV1StdFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoEncodeAV1StdFlagBitsKHR; +global using VkVideoEncodeAV1SuperblockSizeFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoEncodeAV1SuperblockSizeFlagBitsKHR; +global using VkVideoEncodeAV1RateControlFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoEncodeAV1RateControlFlagBitsKHR; diff --git a/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_encode_queue/VkKhrVideoEncodeQueue.bitmasks.cs b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_encode_queue/VkKhrVideoEncodeQueue.bitmasks.cs index 84d787da..eb2879c0 100644 --- a/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_encode_queue/VkKhrVideoEncodeQueue.bitmasks.cs +++ b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_encode_queue/VkKhrVideoEncodeQueue.bitmasks.cs @@ -1,4 +1,4 @@ -global using VkVideoEncodeFlagsKHR = Exomia.Vulkan.Api.Core.FutureUse32; +global using VkVideoEncodeFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoEncodeFlagBitsKHR; global using VkVideoEncodeCapabilityFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoEncodeCapabilityFlagBitsKHR; global using VkVideoEncodeFeedbackFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoEncodeFeedbackFlagBitsKHR; global using VkVideoEncodeUsageFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoEncodeUsageFlagBitsKHR; diff --git a/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_queue/VkKhrVideoQueue.bitmasks.cs b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_queue/VkKhrVideoQueue.bitmasks.cs index aff625fa..6a85ef3c 100644 --- a/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_queue/VkKhrVideoQueue.bitmasks.cs +++ b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/KHR/VK_KHR_video_queue/VkKhrVideoQueue.bitmasks.cs @@ -3,7 +3,7 @@ global using VkVideoComponentBitDepthFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoComponentBitDepthFlagBitsKHR; global using VkVideoCapabilityFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoCapabilityFlagBitsKHR; global using VkVideoSessionCreateFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoSessionCreateFlagBitsKHR; -global using VkVideoSessionParametersCreateFlagsKHR = Exomia.Vulkan.Api.Core.FutureUse32; +global using VkVideoSessionParametersCreateFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoSessionParametersCreateFlagBitsKHR; global using VkVideoBeginCodingFlagsKHR = Exomia.Vulkan.Api.Core.FutureUse32; global using VkVideoEndCodingFlagsKHR = Exomia.Vulkan.Api.Core.FutureUse32; global using VkVideoCodingControlFlagsKHR = Exomia.Vulkan.Api.Core.VkVideoCodingControlFlagBitsKHR; diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkBorderColor.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkBorderColor.cs index d7fc97ac..43d1d224 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkBorderColor.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkBorderColor.cs @@ -38,7 +38,7 @@ public enum VkBorderColor VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5, /// - /// VK_BORDER_COLOR_FLOAT_CUSTOM_EXT indicates that a + /// VK_BORDER_COLOR_FLOAT_CUSTOM_EXT specifies that a /// /// VkSamplerCustomBorderColorCreateInfoEXT @@ -50,7 +50,7 @@ public enum VkBorderColor VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003, /// - /// VK_BORDER_COLOR_INT_CUSTOM_EXT indicates that a + /// VK_BORDER_COLOR_INT_CUSTOM_EXT specifies that a /// /// VkSamplerCustomBorderColorCreateInfoEXT diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkDescriptorBindingFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkDescriptorBindingFlagBits.cs index 9720cced..ce65b2ad 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkDescriptorBindingFlagBits.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkDescriptorBindingFlagBits.cs @@ -21,7 +21,7 @@ namespace Exomia.Vulkan.Api.Core; public enum VkDescriptorBindingFlagBits { /// - /// VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT indicates that if descriptors in this binding are updated between when + /// VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT specifies that if descriptors in this binding are updated between when /// the descriptor set is bound in a command buffer and when that command buffer is submitted to a queue, then the /// submission will use the most recently set descriptors for this binding and the updates do not invalidate the /// command buffer. Descriptor bindings created with this flag are also partially exempt from the external @@ -40,7 +40,7 @@ public enum VkDescriptorBindingFlagBits VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x1, /// - /// VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT indicates that descriptors in this binding can be updated + /// VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT specifies that descriptors in this binding can be updated /// after a command buffer has bound this descriptor set, or while a command buffer that uses this descriptor set is /// pending execution, as long as the descriptors that are updated are not used by those command buffers. Descriptor /// bindings created with this flag are also partially exempt from the external synchronization requirement in @@ -58,7 +58,7 @@ public enum VkDescriptorBindingFlagBits VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x2, /// - /// VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT indicates that descriptors in this binding that are not dynamically + /// VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT specifies that descriptors in this binding that are not dynamically /// used need not contain valid descriptors at the time the descriptors are consumed. A descriptor is dynamically used /// if any shader invocation executes an instruction that performs any memory access using the descriptor. If a /// descriptor is not dynamically used, any resource referenced by the descriptor is not considered to be referenced @@ -67,7 +67,7 @@ public enum VkDescriptorBindingFlagBits VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x4, /// - /// VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT indicates that this is a variable-sized descriptor binding + /// VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT specifies that this is a variable-sized descriptor binding /// whose size will be specified when a descriptor set is allocated using this layout. The value of /// descriptorCount is treated as an upper bound on the size of the binding. This must only be used for the /// last binding in the descriptor set layout (i.e. the binding with the largest value of binding). For the @@ -94,7 +94,7 @@ public enum VkDescriptorBindingFlagBits VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x8, /// - /// VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT indicates that if descriptors in this binding are updated between when + /// VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT specifies that if descriptors in this binding are updated between when /// the descriptor set is bound in a command buffer and when that command buffer is submitted to a queue, then the /// submission will use the most recently set descriptors for this binding and the updates do not invalidate the /// command buffer. Descriptor bindings created with this flag are also partially exempt from the external @@ -113,7 +113,7 @@ public enum VkDescriptorBindingFlagBits VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, /// - /// VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT indicates that descriptors in this binding can be updated + /// VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT specifies that descriptors in this binding can be updated /// after a command buffer has bound this descriptor set, or while a command buffer that uses this descriptor set is /// pending execution, as long as the descriptors that are updated are not used by those command buffers. Descriptor /// bindings created with this flag are also partially exempt from the external synchronization requirement in @@ -131,7 +131,7 @@ public enum VkDescriptorBindingFlagBits VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, /// - /// VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT indicates that descriptors in this binding that are not dynamically + /// VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT specifies that descriptors in this binding that are not dynamically /// used need not contain valid descriptors at the time the descriptors are consumed. A descriptor is dynamically used /// if any shader invocation executes an instruction that performs any memory access using the descriptor. If a /// descriptor is not dynamically used, any resource referenced by the descriptor is not considered to be referenced @@ -140,7 +140,7 @@ public enum VkDescriptorBindingFlagBits VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT, /// - /// VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT indicates that this is a variable-sized descriptor binding + /// VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT specifies that this is a variable-sized descriptor binding /// whose size will be specified when a descriptor set is allocated using this layout. The value of /// descriptorCount is treated as an upper bound on the size of the binding. This must only be used for the /// last binding in the descriptor set layout (i.e. the binding with the largest value of binding). For the diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkFormatFeatureFlagBits2.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkFormatFeatureFlagBits2.cs index 47f1f502..3f1f9ae8 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkFormatFeatureFlagBits2.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkFormatFeatureFlagBits2.cs @@ -485,6 +485,38 @@ public enum VkFormatFeatureFlagBits2 : ulong /// VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000, + /// + /// VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRspecifies that an image view with this format can be + /// used as a + /// + /// quantization + /// delta map + /// + /// in + /// + /// video + /// encode operations + /// + /// . + /// + VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000, + + /// + /// VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR specifies that an image view with this format can be used as + /// an + /// + /// emphasis + /// map + /// + /// in + /// + /// video + /// encode operations + /// + /// . + /// + VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000, + /// /// VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT specifies that an image view can be /// diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkImageLayout.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkImageLayout.cs index 320ec870..29725f96 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkImageLayout.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkImageLayout.cs @@ -28,7 +28,7 @@ public enum VkImageLayout /// VK_IMAGE_LAYOUT_UNDEFINED = 0, - /// VK_IMAGE_LAYOUT_GENERAL supports all types of device access. + /// VK_IMAGE_LAYOUT_GENERAL supports all types of device access, unless specified otherwise. VK_IMAGE_LAYOUT_GENERAL = 1, /// @@ -277,6 +277,23 @@ public enum VkImageLayout /// VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000, + /// + /// VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR must only be used as a + /// + /// quantization + /// map + /// + /// in a + /// + /// video + /// encode operation + /// + /// . This layout is valid only for image subresources of images created with the + /// VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR or VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR + /// usage bit enabled. + /// + VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000, + /// /// VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMALspecifies a layout for depth/stencil format images /// allowing read and write access to the stencil aspect as a stencil attachment, and read only access to the depth diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkImageTiling.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkImageTiling.cs index 1691f3b5..389700ca 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkImageTiling.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkImageTiling.cs @@ -32,7 +32,7 @@ public enum VkImageTiling VK_IMAGE_TILING_LINEAR = 1, /// - /// VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT indicates that the image’s tiling is defined by a + /// VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT specifies that the image’s tiling is defined by a /// /// Linux /// DRM format modifier diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkImageUsageFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkImageUsageFlagBits.cs index 30625e49..3e2acd99 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkImageUsageFlagBits.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkImageUsageFlagBits.cs @@ -202,6 +202,36 @@ public enum VkImageUsageFlagBits /// VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x200000, + /// + /// VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRspecifies that the image can be used as a + /// + /// quantization + /// delta map + /// + /// in a + /// + /// video + /// encode operation + /// + /// . + /// + VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000, + + /// + /// VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR specifies that the image can be used as an + /// + /// emphasis + /// map + /// + /// in a + /// + /// video + /// encode operation + /// + /// . + /// + VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000, + /// /// VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR specifies that the image can be used to create a /// VkImageView suitable for use as a diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineCreationFeedbackFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineCreationFeedbackFlagBits.cs index e092e3e7..1c6ea7b7 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineCreationFeedbackFlagBits.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineCreationFeedbackFlagBits.cs @@ -23,33 +23,33 @@ namespace Exomia.Vulkan.Api.Core; [Flags] public enum VkPipelineCreationFeedbackFlagBits { - /// VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT indicates that the feedback information is valid. + /// VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT specifies that the feedback information is valid. VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x1, /// - /// VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BITindicates that a readily usable pipeline or + /// VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BITspecifies that a readily usable pipeline or /// pipeline stage was found in the pipelineCache specified by the application in the pipeline creation command. /// VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x2, /// - /// VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BITindicates that the base pipeline specified by the + /// VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BITspecifies that the base pipeline specified by the /// basePipelineHandle or basePipelineIndex member of the Vk*PipelineCreateInfo structure was used to accelerate the /// creation of the pipeline. /// VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x4, - /// VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT indicates that the feedback information is valid. + /// VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT specifies that the feedback information is valid. VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT, /// - /// VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BITindicates that a readily usable pipeline or + /// VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BITspecifies that a readily usable pipeline or /// pipeline stage was found in the pipelineCache specified by the application in the pipeline creation command. /// VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT, /// - /// VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BITindicates that the base pipeline specified by the + /// VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BITspecifies that the base pipeline specified by the /// basePipelineHandle or basePipelineIndex member of the Vk*PipelineCreateInfo structure was used to accelerate the /// creation of the pipeline. /// diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkResolveModeFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkResolveModeFlagBits.cs index fc9eabe3..d32fe60f 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkResolveModeFlagBits.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkResolveModeFlagBits.cs @@ -20,29 +20,29 @@ namespace Exomia.Vulkan.Api.Core; [Flags] public enum VkResolveModeFlagBits { - /// VK_RESOLVE_MODE_NONE indicates that no resolve operation is done. + /// VK_RESOLVE_MODE_NONE specifies that no resolve operation is done. VK_RESOLVE_MODE_NONE = 0, /// - /// VK_RESOLVE_MODE_SAMPLE_ZERO_BIT indicates that result of the resolve operation is equal to the value of sample + /// VK_RESOLVE_MODE_SAMPLE_ZERO_BIT specifies that result of the resolve operation is equal to the value of sample /// 0. /// VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x1, /// - /// VK_RESOLVE_MODE_AVERAGE_BIT indicates that result of the resolve operation is the average of the sample + /// VK_RESOLVE_MODE_AVERAGE_BIT specifies that result of the resolve operation is the average of the sample /// values. /// VK_RESOLVE_MODE_AVERAGE_BIT = 0x2, - /// VK_RESOLVE_MODE_MIN_BIT indicates that result of the resolve operation is the minimum of the sample values. + /// VK_RESOLVE_MODE_MIN_BIT specifies that result of the resolve operation is the minimum of the sample values. VK_RESOLVE_MODE_MIN_BIT = 0x4, - /// VK_RESOLVE_MODE_MAX_BIT indicates that result of the resolve operation is the maximum of the sample values. + /// VK_RESOLVE_MODE_MAX_BIT specifies that result of the resolve operation is the maximum of the sample values. VK_RESOLVE_MODE_MAX_BIT = 0x8, /// - /// VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID indicates that rather than a multisample resolve, a single + /// VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID specifies that rather than a multisample resolve, a single /// sampled color attachment will be downsampled into a Y′CBCR format image specified by an external Android format. /// Unlike other resolve modes, implementations can resolve multiple times during rendering, or even bypass writing to /// the color attachment altogether, as long as the final value is resolved to the resolve attachment. Values in the G, @@ -62,24 +62,24 @@ public enum VkResolveModeFlagBits /// VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x10, - /// VK_RESOLVE_MODE_NONE indicates that no resolve operation is done. + /// VK_RESOLVE_MODE_NONE specifies that no resolve operation is done. VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE, /// - /// VK_RESOLVE_MODE_SAMPLE_ZERO_BIT indicates that result of the resolve operation is equal to the value of sample + /// VK_RESOLVE_MODE_SAMPLE_ZERO_BIT specifies that result of the resolve operation is equal to the value of sample /// 0. /// VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, /// - /// VK_RESOLVE_MODE_AVERAGE_BIT indicates that result of the resolve operation is the average of the sample + /// VK_RESOLVE_MODE_AVERAGE_BIT specifies that result of the resolve operation is the average of the sample /// values. /// VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT, - /// VK_RESOLVE_MODE_MIN_BIT indicates that result of the resolve operation is the minimum of the sample values. + /// VK_RESOLVE_MODE_MIN_BIT specifies that result of the resolve operation is the minimum of the sample values. VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT, - /// VK_RESOLVE_MODE_MAX_BIT indicates that result of the resolve operation is the maximum of the sample values. + /// VK_RESOLVE_MODE_MAX_BIT specifies that result of the resolve operation is the maximum of the sample values. VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkSamplerAddressMode.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkSamplerAddressMode.cs index 64ae78c6..ed5d7a87 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkSamplerAddressMode.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkSamplerAddressMode.cs @@ -33,23 +33,23 @@ public enum VkSamplerAddressMode /// /// VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE specifies that the mirror clamp to edge wrap mode will be used. - /// This is only valid if + /// This is only valid if the /// /// samplerMirrorClampToEdge /// - /// is enabled, or if the VK_KHR_sampler_mirror_clamp_to_edge extension is enabled. + /// feature is enabled, or if the VK_KHR_sampler_mirror_clamp_to_edge extension is enabled. /// VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, /// /// VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE specifies that the mirror clamp to edge wrap mode will be used. - /// This is only valid if + /// This is only valid if the /// /// samplerMirrorClampToEdge /// - /// is enabled, or if the VK_KHR_sampler_mirror_clamp_to_edge extension is enabled. + /// feature is enabled, or if the VK_KHR_sampler_mirror_clamp_to_edge extension is enabled. /// VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs index e1b4d2b0..b43f2c49 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs @@ -1615,6 +1615,12 @@ public enum VkStructureType /// VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002, + /// + /// VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX = 1000029004, + /// /// VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType @@ -5233,6 +5239,72 @@ public enum VkStructureType ///
VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005, + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR = 1000513000, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000513001, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR = 1000513002, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR = 1000513003, + + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR = 1000513004, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR = 1000513005, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR = 1000513006, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR = 1000513007, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR = 1000513008, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR = 1000513009, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR = 1000513010, + /// /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType @@ -5467,6 +5539,78 @@ public enum VkStructureType ///
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000, + /// + /// VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV = 1000551000, + + /// + /// VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV = 1000551001, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553000, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553001, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR = 1000553002, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000553005, + + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR = 1000553009, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553003, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553004, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553006, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553007, + + /// + /// VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553008, + /// /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType @@ -5677,6 +5821,12 @@ public enum VkStructureType ///
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002, + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000, + /// /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkVideoEncodeFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkVideoEncodeFlagBitsKHR.cs index 7df90c12..1e082c1a 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkVideoEncodeFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkVideoEncodeFlagBitsKHR.cs @@ -13,5 +13,40 @@ // ReSharper disable once CheckNamespace namespace Exomia.Vulkan.Api.Core; +/// +/// VkVideoEncodeFlagBitsKHR - Video encode flags - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeFlagBitsKHR.html +/// [Flags] -public enum VkVideoEncodeFlagBitsKHR { } \ No newline at end of file +public enum VkVideoEncodeFlagBitsKHR +{ + /// + /// VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR specifies the use of a + /// + /// quantization + /// delta map + /// + /// in the issued + /// + /// video + /// encode operations + /// + /// . + /// + VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x1, + + /// + /// VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR specifies the use of an + /// + /// emphasis + /// map + /// + /// in the issued + /// + /// video + /// encode operations + /// + /// . + /// + VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR = 0x2 +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/ARM/VK_ARM_scheduling_controls/VkPhysicalDeviceSchedulingControlsFlagBitsARM.cs b/src/Exomia.Vulkan.Api.Core/Extensions/ARM/VK_ARM_scheduling_controls/VkPhysicalDeviceSchedulingControlsFlagBitsARM.cs index 3b1a110e..1fc870a2 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/ARM/VK_ARM_scheduling_controls/VkPhysicalDeviceSchedulingControlsFlagBitsARM.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/ARM/VK_ARM_scheduling_controls/VkPhysicalDeviceSchedulingControlsFlagBitsARM.cs @@ -25,7 +25,7 @@ namespace Exomia.Vulkan.Api.Core; public enum VkPhysicalDeviceSchedulingControlsFlagBitsARM : ulong { /// - /// VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARMindicates that a + /// VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARMspecifies that a /// /// VkDeviceQueueShaderCoreControlCreateInfoARM diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_descriptor_buffer/VkPhysicalDeviceDescriptorBufferPropertiesEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_descriptor_buffer/VkPhysicalDeviceDescriptorBufferPropertiesEXT.cs index eeea9194..c1dc85e3 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_descriptor_buffer/VkPhysicalDeviceDescriptorBufferPropertiesEXT.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_descriptor_buffer/VkPhysicalDeviceDescriptorBufferPropertiesEXT.cs @@ -72,21 +72,18 @@ public unsafe struct VkPhysicalDeviceDescriptorBufferPropertiesEXT /// public VkDeviceSize descriptorBufferOffsetAlignment; - /// - /// maxDescriptorBufferBindingsindicates the maximum sum total number of descriptor buffers and embedded - /// immutable sampler sets that can be bound. - /// + /// maxDescriptorBufferBindingsindicates the maximum number of descriptor buffer bindings. public uint maxDescriptorBufferBindings; /// - /// maxResourceDescriptorBufferBindings indicates the maximum number of resource descriptor buffers that can be - /// bound. + /// maxResourceDescriptorBufferBindings indicates the maximum number of descriptor buffer bindings with + /// VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT that can be used. /// public uint maxResourceDescriptorBufferBindings; /// - /// maxSamplerDescriptorBufferBindings indicates the maximum number of sampler descriptor buffers that can be - /// bound. + /// maxSamplerDescriptorBufferBindings indicates the maximum number of descriptor buffer bindings with + /// VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT that can be used. /// public uint maxSamplerDescriptorBufferBindings; diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_device_generated_commands/VkIndirectCommandsInputModeFlagBitsEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_device_generated_commands/VkIndirectCommandsInputModeFlagBitsEXT.cs index 01a54213..6862c6e6 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_device_generated_commands/VkIndirectCommandsInputModeFlagBitsEXT.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_device_generated_commands/VkIndirectCommandsInputModeFlagBitsEXT.cs @@ -24,7 +24,7 @@ namespace Exomia.Vulkan.Api.Core; public enum VkIndirectCommandsInputModeFlagBitsEXT { /// - /// VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT indicates that the indirect buffer contains + /// VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT specifies that the indirect buffer contains /// /// VkBindIndexBufferIndirectCommandEXT @@ -34,7 +34,7 @@ public enum VkIndirectCommandsInputModeFlagBitsEXT VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = 0x1, /// - /// VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT indicates that the indirect buffer contains + /// VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT specifies that the indirect buffer contains /// D3D12_INDEX_BUFFER_VIEW. /// VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = 0x2 diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkBuildMicromapFlagBitsEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkBuildMicromapFlagBitsEXT.cs index 64582a56..d852cfdc 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkBuildMicromapFlagBitsEXT.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkBuildMicromapFlagBitsEXT.cs @@ -21,13 +21,13 @@ namespace Exomia.Vulkan.Api.Core; public enum VkBuildMicromapFlagBitsEXT { /// - /// VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT indicates that the given micromap build should prioritize trace + /// VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT specifies that the given micromap build should prioritize trace /// performance over build time. /// VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x1, /// - /// VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT indicates that the given micromap build should prioritize build + /// VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT specifies that the given micromap build should prioritize build /// time over trace performance. /// VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x2, diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkOpacityMicromapFormatEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkOpacityMicromapFormatEXT.cs index 72d785a5..ba76fbcf 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkOpacityMicromapFormatEXT.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_opacity_micromap/VkOpacityMicromapFormatEXT.cs @@ -20,13 +20,13 @@ namespace Exomia.Vulkan.Api.Core; public enum VkOpacityMicromapFormatEXT { /// - /// VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT indicates that the given micromap format has one bit per subtriangle + /// VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT specifies that the given micromap format has one bit per subtriangle /// encoding either fully opaque or fully transparent. /// VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1, /// - /// VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT indicates that the given micromap format has two bits per subtriangle + /// VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT specifies that the given micromap format has two bits per subtriangle /// encoding four modes which can be interpreted as described in /// /// ray diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_pipeline_robustness/VkPipelineRobustnessBufferBehaviorEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_pipeline_robustness/VkPipelineRobustnessBufferBehaviorEXT.cs index ea7f2f16..3a67a3a3 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_pipeline_robustness/VkPipelineRobustnessBufferBehaviorEXT.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_pipeline_robustness/VkPipelineRobustnessBufferBehaviorEXT.cs @@ -24,7 +24,7 @@ public enum VkPipelineRobustnessBufferBehaviorEXT { /// /// VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXTspecifies that this pipeline stage follows the - /// behavior of robustness features that are enabled on the device that created this pipeline + /// behavior of robustness features that are enabled that created this pipeline /// VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0, diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_rasterization_order_attachment_access/VkPipelineColorBlendStateCreateFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_rasterization_order_attachment_access/VkPipelineColorBlendStateCreateFlagBits.cs index 0d16b63d..29c9c0b1 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_rasterization_order_attachment_access/VkPipelineColorBlendStateCreateFlagBits.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_rasterization_order_attachment_access/VkPipelineColorBlendStateCreateFlagBits.cs @@ -24,14 +24,14 @@ namespace Exomia.Vulkan.Api.Core; public enum VkPipelineColorBlendStateCreateFlagBits { /// - /// VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXTindicates that access to + /// VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXTspecifies that access to /// color and input attachments will have implicit framebuffer-local memory dependencies, allowing applications to /// express custom blending operations in a fragment shader. /// VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x1, /// - /// VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXTindicates that access to + /// VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXTspecifies that access to /// color and input attachments will have implicit framebuffer-local memory dependencies, allowing applications to /// express custom blending operations in a fragment shader. /// diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_rasterization_order_attachment_access/VkPipelineDepthStencilStateCreateFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_rasterization_order_attachment_access/VkPipelineDepthStencilStateCreateFlagBits.cs index 93842e66..d85336cb 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_rasterization_order_attachment_access/VkPipelineDepthStencilStateCreateFlagBits.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_rasterization_order_attachment_access/VkPipelineDepthStencilStateCreateFlagBits.cs @@ -24,28 +24,28 @@ namespace Exomia.Vulkan.Api.Core; public enum VkPipelineDepthStencilStateCreateFlagBits { /// - /// VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXTindicates that + /// VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXTspecifies that /// access to the depth aspects of depth/stencil and input attachments will have implicit framebuffer-local memory /// dependencies. /// VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x1, /// - /// VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXTindicates that + /// VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXTspecifies that /// access to the stencil aspects of depth/stencil and input attachments will have implicit framebuffer-local memory /// dependencies. /// VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x2, /// - /// VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXTindicates that + /// VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXTspecifies that /// access to the depth aspects of depth/stencil and input attachments will have implicit framebuffer-local memory /// dependencies. /// VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, /// - /// VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXTindicates that + /// VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXTspecifies that /// access to the stencil aspects of depth/stencil and input attachments will have implicit framebuffer-local memory /// dependencies. /// diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_subpass_merge_feedback/VkRenderPassSubpassFeedbackInfoEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_subpass_merge_feedback/VkRenderPassSubpassFeedbackInfoEXT.cs index e55dd011..4887c5ed 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_subpass_merge_feedback/VkRenderPassSubpassFeedbackInfoEXT.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_subpass_merge_feedback/VkRenderPassSubpassFeedbackInfoEXT.cs @@ -32,7 +32,7 @@ public unsafe struct VkRenderPassSubpassFeedbackInfoEXT { /// /// subpassMergeStatus is a VkSubpassMergeStatusEXT value specifying information about whether the subpass is - /// merged with previous subpass and the reason why it is not merged. + /// merged with the previous subpass and the reason why it is not merged. /// public VkSubpassMergeStatusEXT subpassMergeStatus; diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_subpass_merge_feedback/VkSubpassMergeStatusEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_subpass_merge_feedback/VkSubpassMergeStatusEXT.cs index e1890ba8..d50245c2 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_subpass_merge_feedback/VkSubpassMergeStatusEXT.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_subpass_merge_feedback/VkSubpassMergeStatusEXT.cs @@ -19,86 +19,87 @@ namespace Exomia.Vulkan.Api.Core; /// public enum VkSubpassMergeStatusEXT { - /// VK_SUBPASS_MERGE_STATUS_MERGED_EXT specifies the subpass is merged with a previous subpass. + /// VK_SUBPASS_MERGE_STATUS_MERGED_EXT specifies that the subpass is merged with a previous subpass. VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0, /// - /// VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT specifies the subpass is disallowed to merge with previous subpass. If - /// the render pass does not allow subpass merging, then all subpass statuses are set to this value. If a subpass + /// VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT specifies that the subpass is not merged because merging was disabled + /// using + /// VkRenderPassCreationControlEXT + /// . If the render pass does not allow subpass merging, then all subpass statuses are set to this value. If a subpass /// description does not allow subpass merging, then only that subpass’s status is set to this value. /// VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT specifies the subpass is not merged because it contains - /// side effects. + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT specifies that the subpass is not merged because it + /// contains side effects. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT specifies the subpass is not merged because sample - /// count is not compatible with previous subpass. + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT specifies that the subpass is not merged because + /// sample count is not compatible with the previous subpass. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT specifies the subpass is not merged because view masks - /// do not match with previous subpass. + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT specifies that the subpass is not merged because view + /// masks do not match with previous subpass. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT specifies the subpass is not merged because of attachments - /// aliasing between them. + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT specifies that the subpass is not merged because of + /// attachments aliasing between them. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT specifies the subpass is not merged because subpass + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT specifies that the subpass is not merged because subpass /// dependencies do not allow merging. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXTspecifies the subpass is not merged + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXTspecifies that the subpass is not merged /// because input attachment is not a color attachment from previous subpass or the formats are incompatible. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXTspecifies the subpass is not merged because of too - /// many attachments. + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXTspecifies that the subpass is not merged because of + /// too many attachments. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXTspecifies the subpass is not merged because of + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXTspecifies that the subpass is not merged because of /// insufficient memory. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXTspecifies the subpass is not merged because of too - /// many depth/stencil attachments. + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXTspecifies that the subpass is not merged because of + /// too many depth/stencil attachments. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXTspecifies the subpass is not merged because a - /// resolve attachment is reused as an input attachment in a subsequent subpass. + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXTspecifies that the subpass is not merged + /// because a resolve attachment is reused as an input attachment in a subsequent subpass. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT specifies the subpass is not merged because the render - /// pass has only one subpass. + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT specifies that the subpass is not merged because the + /// render pass has only one subpass. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12, /// - /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT specifies other reasons why subpass is not merged. It is - /// also the recommended default value that should be reported when a subpass is not merged and when no other value is - /// appropriate. + /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT specifies that the subpass is not merged for unspecified + /// reasons. Implementations should return this value when no other VkSubpassMergeStatusEXT value is appropriate. /// VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_vertex_attribute_robustness/VkExtVertexAttributeRobustness.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_vertex_attribute_robustness/VkExtVertexAttributeRobustness.cs new file mode 100644 index 00000000..c142a090 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_vertex_attribute_robustness/VkExtVertexAttributeRobustness.cs @@ -0,0 +1,52 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +global using static Exomia.Vulkan.Api.Core.VkExtVertexAttributeRobustness; + +#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_EXT_vertex_attribute_robustness - device extension (nr. 609) - author 'EXT' [platform '' | contact 'Piers +/// Daniell @pdaniell-nv']
+/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_EXT_vertex_attribute_robustness.html +/// +///
+[VkDeviceExt] +public static class VkExtVertexAttributeRobustness +{ + /// The spec version. + public const uint VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION = 1; + + /// The extension name. + public const string VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_vertex_attribute_robustness"; + + /// + /// An UTF8 null terminated version of + /// represented by an UTF16 string. + /// + /// + /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_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_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME_UTF8_NT = + "\u4b56\u455f\u5458\u565f\u5245\u4554\u5f58\u5441\u5254\u4249\u5455\u5f45\u4f52\u5542\u5453\u454e\u5353\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045"; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_vertex_attribute_robustness/VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_vertex_attribute_robustness/VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT.cs new file mode 100644 index 00000000..ba6035be --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_vertex_attribute_robustness/VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT.cs @@ -0,0 +1,49 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT - Structure describing whether the vertex attribute robustness +/// feature is supported by an implementation - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT.html +/// +/// +/// +/// +/// +/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo +/// +/// +/// +[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT; + + /// 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; + + /// + /// vertexAttributeRobustnessindicates that vertex shaders can read vertex attribute locations that have no + /// vertex attribute description and the value returned is (0,0,0,0) or (0,0,0,1). + /// + public VkBool32 vertexAttributeRobustness; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkBuildAccelerationStructureFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkBuildAccelerationStructureFlagBitsKHR.cs index b90463cb..8511778f 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkBuildAccelerationStructureFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkBuildAccelerationStructureFlagBitsKHR.cs @@ -25,7 +25,7 @@ namespace Exomia.Vulkan.Api.Core; public enum VkBuildAccelerationStructureFlagBitsKHR { /// - /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR indicates that the specified acceleration structure can be + /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR specifies that the specified acceleration structure can be /// updated with a mode of VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR in /// @@ -41,26 +41,26 @@ public enum VkBuildAccelerationStructureFlagBitsKHR VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x1, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR indicates that the specified acceleration structure + /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR specifies that the specified acceleration structure /// can act as the source for a copy acceleration structure command with mode of /// VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR to produce a compacted acceleration structure. /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x2, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHRindicates that the given acceleration structure build + /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHRspecifies that the given acceleration structure build /// should prioritize trace performance over build time. /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x4, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHRindicates that the given acceleration structure build + /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHRspecifies that the given acceleration structure build /// should prioritize build time over trace performance. /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x8, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR indicates that this acceleration structure should minimize + /// VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR specifies that this acceleration structure should minimize /// the size of the scratch memory and the final result acceleration structure, potentially at the expense of build /// time or trace performance. /// @@ -76,37 +76,37 @@ public enum VkBuildAccelerationStructureFlagBitsKHR VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x20, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXTindicates that the opacity micromaps + /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXTspecifies that the opacity micromaps /// associated with the specified acceleration structure may change with an acceleration structure update. /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x40, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXTindicates that the specified acceleration + /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXTspecifies that the specified acceleration /// structure may be referenced in an instance with VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT set. /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x80, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXTindicates that the data of the opacity + /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXTspecifies that the data of the opacity /// micromaps associated with the specified acceleration structure may change with an acceleration structure update. /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x100, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NVindicates that the displacement micromaps + /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NVspecifies that the displacement micromaps /// associated with the specified acceleration structure may change with an acceleration structure update. /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 0x200, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR indicates that the specified acceleration structure can + /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR specifies that the specified acceleration structure can /// be used when fetching the vertex positions of a hit triangle. /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = 0x800, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR indicates that the specified acceleration structure can be + /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR specifies that the specified acceleration structure can be /// updated with a mode of VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR in /// @@ -122,26 +122,26 @@ public enum VkBuildAccelerationStructureFlagBitsKHR VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR indicates that the specified acceleration structure + /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR specifies that the specified acceleration structure /// can act as the source for a copy acceleration structure command with mode of /// VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR to produce a compacted acceleration structure. /// VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHRindicates that the given acceleration structure build + /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHRspecifies that the given acceleration structure build /// should prioritize trace performance over build time. /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHRindicates that the given acceleration structure build + /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHRspecifies that the given acceleration structure build /// should prioritize build time over trace performance. /// VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, /// - /// VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR indicates that this acceleration structure should minimize + /// VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR specifies that this acceleration structure should minimize /// the size of the scratch memory and the final result acceleration structure, potentially at the expense of build /// time or trace performance. /// diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkGeometryFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkGeometryFlagBitsKHR.cs index 9659baa7..b48a48b2 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkGeometryFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkGeometryFlagBitsKHR.cs @@ -21,26 +21,26 @@ namespace Exomia.Vulkan.Api.Core; public enum VkGeometryFlagBitsKHR { /// - /// VK_GEOMETRY_OPAQUE_BIT_KHR indicates that this geometry does not invoke the any-hit shaders even if present in + /// VK_GEOMETRY_OPAQUE_BIT_KHR specifies that this geometry does not invoke the any-hit shaders even if present in /// a hit group. /// VK_GEOMETRY_OPAQUE_BIT_KHR = 0x1, /// - /// VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR indicates that the implementation must only call the + /// VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR specifies that the implementation must only call the /// any-hit shader a single time for each primitive in this geometry. If this bit is absent an implementation may /// invoke the any-hit shader more than once for this geometry. /// VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x2, /// - /// VK_GEOMETRY_OPAQUE_BIT_KHR indicates that this geometry does not invoke the any-hit shaders even if present in + /// VK_GEOMETRY_OPAQUE_BIT_KHR specifies that this geometry does not invoke the any-hit shaders even if present in /// a hit group. /// VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR, /// - /// VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR indicates that the implementation must only call the + /// VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR specifies that the implementation must only call the /// any-hit shader a single time for each primitive in this geometry. If this bit is absent an implementation may /// invoke the any-hit shader more than once for this geometry. /// diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkGeometryInstanceFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkGeometryInstanceFlagBitsKHR.cs index bbbb605e..aa83578d 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkGeometryInstanceFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_acceleration_structure/VkGeometryInstanceFlagBitsKHR.cs @@ -24,7 +24,7 @@ public enum VkGeometryInstanceFlagBitsKHR VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x1, /// - /// VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR indicates that the + /// VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR specifies that the /// /// facing /// determination @@ -67,7 +67,7 @@ public enum VkGeometryInstanceFlagBitsKHR VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x20, /// - /// VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR indicates that the + /// VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR specifies that the /// /// facing /// determination diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingShaderGroupTypeKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingShaderGroupTypeKHR.cs index 3cbca2bd..8a7fc991 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingShaderGroupTypeKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingShaderGroupTypeKHR.cs @@ -20,38 +20,38 @@ namespace Exomia.Vulkan.Api.Core; public enum VkRayTracingShaderGroupTypeKHR { /// - /// VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR indicates a shader group with a single + /// VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR specifies that a shader group with a single /// VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR shader in it. /// VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0, /// - /// VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR specifies a shader group that only hits triangles and - /// must not contain an intersection shader, only closest hit and any-hit shaders. + /// VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR specifies that a shader group that only hits + /// triangles and must not contain an intersection shader, only closest hit and any-hit shaders. /// VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1, /// - /// VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHRspecifies a shader group that only intersects with - /// custom geometry and must contain an intersection shader and may contain closest hit and any-hit shaders. + /// VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHRspecifies that a shader group that only intersects + /// with custom geometry and must contain an intersection shader and may contain closest hit and any-hit shaders. /// VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2, /// - /// VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR indicates a shader group with a single + /// VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR specifies that a shader group with a single /// VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR shader in it. /// VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR, /// - /// VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR specifies a shader group that only hits triangles and - /// must not contain an intersection shader, only closest hit and any-hit shaders. + /// VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR specifies that a shader group that only hits + /// triangles and must not contain an intersection shader, only closest hit and any-hit shaders. /// VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR, /// - /// VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHRspecifies a shader group that only intersects with - /// custom geometry and must contain an intersection shader and may contain closest hit and any-hit shaders. + /// VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHRspecifies that a shader group that only intersects + /// with custom geometry and must contain an intersection shader and may contain closest hit and any-hit shaders. /// VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkKhrVideoDecodeAv1.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkKhrVideoDecodeAv1.cs index 8de0432c..97bdf951 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkKhrVideoDecodeAv1.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_decode_av1/VkKhrVideoDecodeAv1.cs @@ -46,6 +46,4 @@ public static class VkKhrVideoDecodeAv1 /// } /// public const string VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME_UTF8_NT = "\u4b56\u4b5f\u5248\u565f\u4449\u4f45\u445f\u4345\u444f\u5f45\u5641\u5f31\u5845\u4554\u534e\u4f49\u5f4e\u414e\u454d\u0000"; - - public const uint VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR = 7; } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkKhrVideoEncodeAv1.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkKhrVideoEncodeAv1.cs new file mode 100644 index 00000000..d1aa9df5 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkKhrVideoEncodeAv1.cs @@ -0,0 +1,51 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +global using static Exomia.Vulkan.Api.Core.VkKhrVideoEncodeAv1; + +#pragma warning disable CA2211 // Non-constant fields should not be visible +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VK_KHR_video_encode_av1 - device extension (nr. 514) - author 'KHR' [platform '' | contact 'Daniel Rakos @aqnuep'] +///
+///
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_encode_av1.html +///
+[VkDepends("VK_KHR_video_encode_queue")] +[VkDeviceExt] +public static class VkKhrVideoEncodeAv1 +{ + /// The spec version. + public const uint VK_KHR_VIDEO_ENCODE_AV1_SPEC_VERSION = 1; + + /// The extension name. + public const string VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME = "VK_KHR_video_encode_av1"; + + /// + /// An UTF8 null terminated version of represented by an + /// UTF16 string. + /// + /// + /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME_UTF8_NT) {
+ /// sbyte* utf8NtPtr = (sbyte*)ptr; // utf8NtPtr - can now be passed and used directly as a utf8_nt string for + /// unmanaged code.
+ /// } + ///
+ public const string VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME_UTF8_NT = "\u4b56\u4b5f\u5248\u565f\u4449\u4f45\u455f\u434e\u444f\u5f45\u5641\u5f31\u5845\u4554\u534e\u4f49\u5f4e\u414e\u454d\u0000"; + + public const uint VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR = 7; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkPhysicalDeviceVideoEncodeAV1FeaturesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkPhysicalDeviceVideoEncodeAV1FeaturesKHR.cs new file mode 100644 index 00000000..b88acf76 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkPhysicalDeviceVideoEncodeAV1FeaturesKHR.cs @@ -0,0 +1,46 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkPhysicalDeviceVideoEncodeAV1FeaturesKHR - Structure describing the video encode AV1 features that can be +/// supported by an implementation - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVideoEncodeAV1FeaturesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo +/// +/// +/// +[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_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; + + /// videoEncodeAV1 indicates that the implementation supports AV1 encode operations. + public VkBool32 videoEncodeAV1; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1CapabilitiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1CapabilitiesKHR.cs new file mode 100644 index 00000000..8bdb9792 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1CapabilitiesKHR.cs @@ -0,0 +1,169 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1CapabilitiesKHR - Structure describing AV1 encode capabilities - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1CapabilitiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoCapabilitiesKHR +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkVideoCapabilitiesKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeAV1CapabilitiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// flags is a bitmask of VkVideoEncodeAV1CapabilityFlagBitsKHRindicating supported AV1 encoding capabilities. + public VkVideoEncodeAV1CapabilityFlagsKHR flags; + + /// + /// maxLevel is a StdVideoAV1Level value indicating the maximum AV1 level supported by the profile, as defined in + /// section A.3 of the AV1 Specification. + /// + public StdVideoAV1Level maxLevel; + + /// + /// codedPictureAlignment indicates the alignment at which the implementation will code pictures. This capability + /// does not impose any valid usage constraints on the application. However, depending on the codedExtent of the encode + /// input picture resource, this capability may result in a change of the resolution of the encoded picture, as + /// described in more detail below. + /// + public VkExtent2D codedPictureAlignment; + + /// maxTiles indicates the maximum number of AV1 tile columns and rows the implementation supports. + public VkExtent2D maxTiles; + + /// minTileSize indicates the minimum extent of individual AV1 tiles the implementation supports. + public VkExtent2D minTileSize; + + /// maxTileSize indicates the maximum extent of individual AV1 tiles the implementation supports. + public VkExtent2D maxTileSize; + + /// + /// superblockSizes is a bitmask of VkVideoEncodeAV1SuperblockSizeFlagBitsKHR values indicating the supported AV1 + /// superblock sizes. + /// + public VkVideoEncodeAV1SuperblockSizeFlagsKHR superblockSizes; + + /// + /// maxSingleReferenceCount indicates the maximum number of reference pictures the implementation supports when + /// using single reference prediction mode. + /// + public uint maxSingleReferenceCount; + + /// + /// singleReferenceNameMask is a bitmask of supported AV1 reference names when using single reference prediction + /// mode. + /// + public uint singleReferenceNameMask; + + /// + /// maxUnidirectionalCompoundReferenceCount indicates the maximum number of reference pictures the implementation + /// supports when using unidirectional compound prediction mode. + /// + public uint maxUnidirectionalCompoundReferenceCount; + + /// + /// maxUnidirectionalCompoundGroup1ReferenceCount indicates the maximum number of reference pictures the + /// implementation supports when using unidirectional compound prediction mode from reference frame group 1, as defined + /// in section 6.10.24 of the AV1 Specification. + /// + public uint maxUnidirectionalCompoundGroup1ReferenceCount; + + /// + /// unidirectionalCompoundReferenceNameMask is a bitmask of supported AV1 reference names when using + /// unidirectional compound prediction mode. + /// + public uint unidirectionalCompoundReferenceNameMask; + + /// + /// maxBidirectionalCompoundReferenceCount indicates the maximum number of reference pictures the implementation + /// supports when using bidirectional compound prediction mode. + /// + public uint maxBidirectionalCompoundReferenceCount; + + /// + /// maxBidirectionalCompoundGroup1ReferenceCount indicates the maximum number of reference pictures the + /// implementation supports when using bidirectional compound prediction modefrom reference frame group 1, as defined + /// in section 6.10.24 of the AV1 Specification. + /// + public uint maxBidirectionalCompoundGroup1ReferenceCount; + + /// + /// maxBidirectionalCompoundGroup2ReferenceCount indicates the maximum number of reference pictures the + /// implementation supports when using bidirectional compound prediction modefrom reference frame group 2, as defined + /// in section 6.10.24 of the AV1 Specification. + /// + public uint maxBidirectionalCompoundGroup2ReferenceCount; + + /// + /// bidirectionalCompoundReferenceNameMask is a bitmask of supported AV1 reference names when using bidirectional + /// compound prediction mode. + /// + public uint bidirectionalCompoundReferenceNameMask; + + /// maxTemporalLayerCount indicates the maximum number of AV1 temporal layers supported by the implementation. + public uint maxTemporalLayerCount; + + /// maxSpatialLayerCount indicates the maximum number of AV1 spatial layers supported by the implementation. + public uint maxSpatialLayerCount; + + /// maxOperatingPoints indicates the maximum number of AV1 operating points supported by the implementation. + public uint maxOperatingPoints; + + /// minQIndex indicates the minimum quantizer index value supported. + public uint minQIndex; + + /// maxQIndex indicates the maximum quantizer index value supported. + public uint maxQIndex; + + /// + /// prefersGopRemainingFrames indicates that the implementation’s rate control algorithm prefers the + /// application to specify the number of frames in each AV1 rate control groupremaining in the current group of + /// pictures when beginning a video coding scope. + /// + public VkBool32 prefersGopRemainingFrames; + + /// + /// requiresGopRemainingFrames indicates that the implementation’s rate control algorithm requires the + /// application to specify the number of frames in each AV1 rate control groupremaining in the current group of + /// pictures when beginning a video coding scope. + /// + public VkBool32 requiresGopRemainingFrames; + + /// + /// stdSyntaxFlags is a bitmask of VkVideoEncodeAV1StdFlagBitsKHR indicating capabilities related to AV1 syntax + /// elements. + /// + public VkVideoEncodeAV1StdFlagsKHR stdSyntaxFlags; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1CapabilityFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1CapabilityFlagBitsKHR.cs new file mode 100644 index 00000000..3df28505 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1CapabilityFlagBitsKHR.cs @@ -0,0 +1,102 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1CapabilityFlagBitsKHR - AV1 encode capability flags - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1CapabilityFlagBitsKHR.html +/// +/// +[Flags] +public enum VkVideoEncodeAV1CapabilityFlagBitsKHR +{ + /// + /// VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHRindicates support for specifying + /// different quantizer index values in the members of + /// VkVideoEncodeAV1QIndexKHR + /// . + /// + VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR = 0x1, + + /// + /// VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHRindicates support for generating OBU + /// extension headers, as defined in section 5.3.3 of the + /// AV1 Specification + /// . + /// + VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR = 0x2, + + /// + /// VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHRindicates support for using the primary reference + /// frame indicated by the value of StdVideoEncodeAV1PictureInfo::primary_ref_frame in the + /// + /// AV1 + /// picture information + /// + /// only for CDF data reference, as defined in section 6.8.2 of the + /// AV1 Specification + /// . + /// + VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR = 0x4, + + /// + /// VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHRindicates support for encoding a picture with a frame + /// size different from the maximum frame size defined in the + /// + /// active + /// AV1 sequence header + /// + /// . If this capability is not supported, then frame_size_override_flagmust not be set in + /// the + /// + /// AV1 + /// picture information + /// + /// of the encoded frame and the coded extent of the + /// + /// encode + /// input picture + /// + /// must match the maximum coded extent allowed by the + /// + /// active + /// AV1 sequence header + /// + /// , i.e. (max_frame_width_minus_1 + 1, max_frame_height_minus_1 + 1). + /// + VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR = 0x8, + + /// + /// VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHRindicates support for motion vector scaling, as defined + /// in section 7.11.3.3 of the + /// AV1 Specification + /// . If this capability is not supported, then the coded extent of all + /// + /// active + /// reference pictures + /// + /// must match the coded extent of the + /// + /// encode + /// input picture + /// + /// . This capability may only be supported by a video profile when + /// VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR is also supported. + /// + VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR = 0x10 +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1DpbSlotInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1DpbSlotInfoKHR.cs new file mode 100644 index 00000000..e5c4ea30 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1DpbSlotInfoKHR.cs @@ -0,0 +1,45 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1DpbSlotInfoKHR - Structure specifies AV1 encode DPB picture information - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1DpbSlotInfoKHR.html +/// +/// +/// +/// +/// structextendsVkVideoReferenceSlotInfoKHR +/// +/// +/// +[VkStructExtends("VkVideoReferenceSlotInfoKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeAV1DpbSlotInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// + /// pStdReferenceInfo is a pointer to a StdVideoEncodeAV1ReferenceInfo structure specifying AV1 reference + /// information. + /// + public StdVideoEncodeAV1ReferenceInfo* pStdReferenceInfo; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1FrameSizeKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1FrameSizeKHR.cs new file mode 100644 index 00000000..4ccda644 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1FrameSizeKHR.cs @@ -0,0 +1,40 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1FrameSizeKHR - Structure describing frame size values per AV1 prediction mode - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1FrameSizeKHR.html +/// +[StructLayout(LayoutKind.Sequential)] +public struct VkVideoEncodeAV1FrameSizeKHR +{ + /// + /// intraFrameSize is the size in bytes to be used for frames encoded with + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR. + /// + public uint intraFrameSize; + + /// + /// predictiveFrameSize is the size in bytes to be used for frames encoded with + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR. + /// + public uint predictiveFrameSize; + + /// + /// bipredictiveFrameSize is the size in bytes to be used for frames encoded with + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR. + /// + public uint bipredictiveFrameSize; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1GopRemainingFrameInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1GopRemainingFrameInfoKHR.cs new file mode 100644 index 00000000..2a805347 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1GopRemainingFrameInfoKHR.cs @@ -0,0 +1,72 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1GopRemainingFrameInfoKHR - Structure specifying AV1 encode rate control GOP remaining frame counts +/// - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1GopRemainingFrameInfoKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoBeginCodingInfoKHR +/// +/// +/// +[VkStructExtends("VkVideoBeginCodingInfoKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeAV1GopRemainingFrameInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_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; + + /// + /// useGopRemainingFrames indicates whether the implementation’s rate control algorithm should use the + /// values specified in gopRemainingIntra, gopRemainingPredictive, and gopRemainingBipredictive. If + /// useGopRemainingFrames is VK_FALSE, then the values of gopRemainingIntra, gopRemainingPredictive, and + /// gopRemainingBipredictive are ignored. + /// + public VkBool32 useGopRemainingFrames; + + /// + /// gopRemainingIntra specifies the number of frames encoded with VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR + /// the implementation’s rate control algorithm should assume to be remaining in the GOP prior to executing the + /// next video encode operation. + /// + public uint gopRemainingIntra; + + /// + /// gopRemainingPredictive specifies the number of frames encoded with + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR the implementation’s rate control algorithm should + /// assume to be remaining in the GOP prior to executing the next video encode operation. + /// + public uint gopRemainingPredictive; + + /// + /// gopRemainingBipredictive specifies the number of frames encoded with + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR the implementation’s rate control algorithm should + /// assume to be remaining in the GOP prior to executing the next video encode operation. + /// + public uint gopRemainingBipredictive; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1PictureInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1PictureInfoKHR.cs new file mode 100644 index 00000000..69b60eaf --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1PictureInfoKHR.cs @@ -0,0 +1,80 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1PictureInfoKHR - Structure specifies AV1 encode frame parameters - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1PictureInfoKHR.html +/// +/// +/// +/// +/// structextendsVkVideoEncodeInfoKHR +/// +/// +/// +[VkStructExtends("VkVideoEncodeInfoKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeAV1PictureInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// predictionMode specifies the AV1 prediction mode to use for the encoded frame. + public VkVideoEncodeAV1PredictionModeKHR predictionMode; + + /// + /// rateControlGroup specifies the AV1 rate control group to use for the encoded frame when the current rate + /// control mode is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR. Otherwise it is ignored. + /// + public VkVideoEncodeAV1RateControlGroupKHR rateControlGroup; + + /// + /// constantQIndex is the quantizer index to use for the encoded frame if the current rate control modeconfigured + /// for the video session is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR. + /// + public uint constantQIndex; + + /// pStdPictureInfo is a pointer to a StdVideoEncodeAV1PictureInfo structure specifying AV1 picture information. + public StdVideoEncodeAV1PictureInfo* pStdPictureInfo; + + /// + /// referenceNameSlotIndices is an array of seven (VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR, which is equal to + /// the Video Std definition STD_VIDEO_AV1_REFS_PER_FRAME) signed integer values specifying the index of the DPB slot + /// or a negative integer value for each AV1 reference nameused for inter coding. In particular, the DPB slot index for + /// the AV1 reference name frameis specified in referenceNameSlotIndices[frame - + /// STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME]. + /// + public fixed int referenceNameSlotIndices[(int)VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR]; + + /// + /// primaryReferenceCdfOnly controls whether the primary reference frame indicated by the value of + /// pStdPictureInfo->primary_ref_frameis used only for CDF data reference, as defined in sections 6.8.2 of the AV1 + /// Specification. If set to VK_TRUE, then the primary reference frame’s picture data will not be used for sample + /// prediction. + /// + public VkBool32 primaryReferenceCdfOnly; + + /// + /// generateObuExtensionHeader controls whether OBU extension headers are generated into the target bitstream, as + /// defined in sections 5.3.1, 5.3.2, and 5.3.3 of the AV1 Specification. + /// + public VkBool32 generateObuExtensionHeader; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1PredictionModeKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1PredictionModeKHR.cs new file mode 100644 index 00000000..8457249d --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1PredictionModeKHR.cs @@ -0,0 +1,114 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1PredictionModeKHR - AV1 encode prediction mode - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1PredictionModeKHR.html +/// +/// +public enum VkVideoEncodeAV1PredictionModeKHR +{ + /// + /// VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR specifies the use of intra-only prediction mode, used when + /// encoding AV1 frames of type STD_VIDEO_AV1_FRAME_TYPE_KEY or STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY. + /// + VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR = 0, + + /// + /// VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR specifies the use of single reference prediction mode, + /// used when encoding AV1 frames of type STD_VIDEO_AV1_FRAME_TYPE_INTER or STD_VIDEO_AV1_FRAME_TYPE_SWITCH with + /// reference_select, as defined in section 6.8.23 of the + /// AV1 Specification + /// , equal to 0. When using this prediction mode, the application must specify a reference picture for at least one + /// + /// AV1 + /// reference name + /// + /// in + /// VkVideoEncodeAV1PictureInfoKHR + /// ::referenceNameSlotIndicesthat is supported by the implementation, as reported in + /// + /// VkVideoEncodeAV1CapabilitiesKHR + /// + /// ::singleReferenceNameMask. + /// + VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR = 1, + + /// + /// VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHRspecifies the use of unidirectional compound + /// prediction mode, used when encoding AV1 frames of type STD_VIDEO_AV1_FRAME_TYPE_INTER or + /// STD_VIDEO_AV1_FRAME_TYPE_SWITCH with reference_select, as defined in section 6.8.23 of the + /// AV1 Specification + /// , equal to 1, and both + /// + /// reference + /// names + /// + /// used for prediction are from the same reference frame group, as defined in section 6.10.24 of the + /// AV1 Specification + /// . When using this prediction mode, the application must specify a reference picture for at least two + /// + /// AV1 + /// reference names + /// + /// in + /// VkVideoEncodeAV1PictureInfoKHR + /// ::referenceNameSlotIndicesthat is supported by the implementation, as reported in + /// + /// VkVideoEncodeAV1CapabilitiesKHR + /// + /// ::unidirectionalCompoundReferenceNameMask, where those two reference names are one of the allowed pairs of + /// reference names, as defined in section 5.11.25 of the + /// AV1 Specification + /// , listed below:
+ /// LAST_FRAME and LAST2_FRAME,
+ /// LAST_FRAME and LAST3_FRAME,
+ /// LAST_FRAME and GOLDEN_FRAME, or
+ /// BWDREF_FRAME and ALTREF_FRAME.
+ ///
+ VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR = 2, + + /// + /// VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHRspecifies the use of bidirectional compound + /// prediction mode, used when encoding AV1 frames of type STD_VIDEO_AV1_FRAME_TYPE_INTER or + /// STD_VIDEO_AV1_FRAME_TYPE_SWITCH with reference_select, as defined in section 6.8.23 of the + /// AV1 Specification + /// , equal to 1, and the two + /// + /// reference + /// names + /// + /// used for prediction are from different reference frame groups, as defined in section 6.10.24 of the + /// AV1 Specification + /// . When using this prediction mode, the application must specify a reference picture for at least one + /// + /// AV1 + /// reference name + /// + /// from each reference frame group in + /// VkVideoEncodeAV1PictureInfoKHR + /// ::referenceNameSlotIndicesthat is supported by the implementation, as reported in + /// + /// VkVideoEncodeAV1CapabilitiesKHR + /// + /// ::bidirectionalCompoundReferenceNameMask. + /// + VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR = 3 +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1ProfileInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1ProfileInfoKHR.cs new file mode 100644 index 00000000..7612091c --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1ProfileInfoKHR.cs @@ -0,0 +1,45 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1ProfileInfoKHR - Structure specifying AV1 encode-specific video profile parameters - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1ProfileInfoKHR.html +/// +/// +/// +/// +/// structextendsVkVideoProfileInfoKHR,VkQueryPoolCreateInfo +/// +/// +/// +[VkStructExtends("VkVideoProfileInfoKHR,VkQueryPoolCreateInfo")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeAV1ProfileInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// + /// stdProfile is a StdVideoAV1Profile value specifying the AV1 codec profile, as defined in section A.2 of the + /// AV1 Specification. + /// + public StdVideoAV1Profile stdProfile; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1QIndexKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1QIndexKHR.cs new file mode 100644 index 00000000..5e708a1d --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1QIndexKHR.cs @@ -0,0 +1,40 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1QIndexKHR - Structure describing AV1 quantizer index values per prediction mode - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1QIndexKHR.html +/// +[StructLayout(LayoutKind.Sequential)] +public struct VkVideoEncodeAV1QIndexKHR +{ + /// + /// intraQIndex is the quantizer index to be used for frames encoded with + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR. + /// + public uint intraQIndex; + + /// + /// predictiveQIndex is the quantizer index to be used for frames encoded with + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR. + /// + public uint predictiveQIndex; + + /// + /// bipredictiveQIndex is the quantizer index to be used for frames encoded with + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR. + /// + public uint bipredictiveQIndex; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1QualityLevelPropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1QualityLevelPropertiesKHR.cs new file mode 100644 index 00000000..3f7ee8e3 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1QualityLevelPropertiesKHR.cs @@ -0,0 +1,139 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1QualityLevelPropertiesKHR - Structure describing the AV1 encode quality level properties - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1QualityLevelPropertiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoEncodeQualityLevelPropertiesKHR +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkVideoEncodeQualityLevelPropertiesKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeAV1QualityLevelPropertiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_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; + + /// + /// preferredRateControlFlags is a bitmask of VkVideoEncodeAV1RateControlFlagBitsKHR values indicating the + /// preferred flags to use for VkVideoEncodeAV1RateControlInfoKHR::flags. + /// + public VkVideoEncodeAV1RateControlFlagsKHR preferredRateControlFlags; + + /// + /// preferredGopFrameCount indicates the preferred value to use for + /// VkVideoEncodeAV1RateControlInfoKHR::gopFrameCount. + /// + public uint preferredGopFrameCount; + + /// + /// preferredKeyFramePeriod indicates the preferred value to use for + /// VkVideoEncodeAV1RateControlInfoKHR::keyFramePeriod. + /// + public uint preferredKeyFramePeriod; + + /// + /// preferredConsecutiveBipredictiveFrameCount indicates the preferred value to use for + /// VkVideoEncodeAV1RateControlInfoKHR::consecutiveBipredictiveFrameCount. + /// + public uint preferredConsecutiveBipredictiveFrameCount; + + /// + /// preferredTemporalLayerCount indicates the preferred value to use for + /// VkVideoEncodeAV1RateControlInfoKHR::temporalLayerCount. + /// + public uint preferredTemporalLayerCount; + + /// + /// preferredConstantQIndex indicates the preferred value to use for + /// VkVideoEncodeAV1PictureInfoKHR::constantQIndex when using rate control + /// modeVK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR. + /// + public VkVideoEncodeAV1QIndexKHR preferredConstantQIndex; + + /// + /// preferredMaxSingleReferenceCount indicates the preferred maximum number of reference pictures to use with + /// single reference prediction mode. + /// + public uint preferredMaxSingleReferenceCount; + + /// + /// preferredSingleReferenceNameMask is a bitmask of preferred AV1 reference names when using single reference + /// prediction mode. + /// + public uint preferredSingleReferenceNameMask; + + /// + /// preferredMaxUnidirectionalCompoundReferenceCount indicates the preferred maximum number of reference pictures + /// to use with unidirectional compound prediction mode. + /// + public uint preferredMaxUnidirectionalCompoundReferenceCount; + + /// + /// preferredMaxUnidirectionalCompoundGroup1ReferenceCount indicates the preferred maximum number of reference + /// pictures to use with unidirectional compound prediction modefrom reference frame group 1, as defined in section + /// 6.10.24 of the AV1 Specification. + /// + public uint preferredMaxUnidirectionalCompoundGroup1ReferenceCount; + + /// + /// preferredUnidirectionalCompoundReferenceNameMask is a bitmask of preferred AV1 reference names when using + /// unidirectional compound prediction mode. + /// + public uint preferredUnidirectionalCompoundReferenceNameMask; + + /// + /// preferredMaxBidirectionalCompoundReferenceCount indicates the preferred maximum number of reference pictures + /// to use with bidirectional compound prediction mode. + /// + public uint preferredMaxBidirectionalCompoundReferenceCount; + + /// + /// preferredMaxBidirectionalCompoundGroup1ReferenceCount indicates the preferred maximum number of reference + /// pictures to use with bidirectional compound prediction modefrom reference frame group 1, as defined in section + /// 6.10.24 of the AV1 Specification. + /// + public uint preferredMaxBidirectionalCompoundGroup1ReferenceCount; + + /// + /// preferredMaxBidirectionalCompoundGroup2ReferenceCount indicates the preferred maximum number of reference + /// pictures to use with bidirectional compound prediction modefrom reference frame group 2, as defined in section + /// 6.10.24 of the AV1 Specification. + /// + public uint preferredMaxBidirectionalCompoundGroup2ReferenceCount; + + /// + /// preferredBidirectionalCompoundReferenceNameMask is a bitmask of preferred AV1 reference names when using + /// bidirectional compound prediction mode. + /// + public uint preferredBidirectionalCompoundReferenceNameMask; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlFlagBitsKHR.cs new file mode 100644 index 00000000..fff1f3ed --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlFlagBitsKHR.cs @@ -0,0 +1,71 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1RateControlFlagBitsKHR - AV1 encode rate control bits - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1RateControlFlagBitsKHR.html +/// +/// +[Flags] +public enum VkVideoEncodeAV1RateControlFlagBitsKHR +{ + /// + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR specifies that the application intends to use a + /// + /// regular + /// GOP structure + /// + /// according to the parameters specified in the gopFrameCount and keyFramePeriod members of the + /// + /// VkVideoEncodeAV1RateControlInfoKHR + /// + /// structure. + /// + VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x1, + + /// + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHRspecifies that the application intends to + /// follow a + /// + /// dyadic + /// temporal layer pattern + /// + /// . + /// + VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x2, + + /// + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHRspecifies that the application intends to follow a + /// + /// flat + /// reference pattern + /// + /// in the GOP. + /// + VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x4, + + /// + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHRspecifies that the application intends to follow a + /// + /// dyadic + /// reference pattern + /// + /// in the GOP. + /// + VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x8 +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlGroupKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlGroupKHR.cs new file mode 100644 index 00000000..f9387b68 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlGroupKHR.cs @@ -0,0 +1,43 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1RateControlGroupKHR - AV1 encode rate control group - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1RateControlGroupKHR.html +/// +/// +public enum VkVideoEncodeAV1RateControlGroupKHR +{ + /// + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR should be specified when encoding AV1 frames that use + /// intra-only prediction (e.g. when encoding AV1 frames of type STD_VIDEO_AV1_FRAME_TYPE_KEY or + /// STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY). + /// + VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR = 0, + + /// + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR should be specified when encoding AV1 frames that only + /// have forward references in display order. + /// + VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR = 1, + + /// + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR should be specified when encoding AV1 frames that have + /// backward references in display order. + /// + VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR = 2 +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlInfoKHR.cs new file mode 100644 index 00000000..b6e957b4 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlInfoKHR.cs @@ -0,0 +1,69 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1RateControlInfoKHR - Structure describing AV1 stream rate control parameters - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1RateControlInfoKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoCodingControlInfoKHR,VkVideoBeginCodingInfoKHR +/// +/// +/// +[VkStructExtends("VkVideoCodingControlInfoKHR,VkVideoBeginCodingInfoKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeAV1RateControlInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_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 VkVideoEncodeAV1RateControlFlagBitsKHRspecifying AV1 rate control flags. + public VkVideoEncodeAV1RateControlFlagsKHR flags; + + /// + /// gopFrameCount is the number of frames within a group of pictures (GOP) intended to be used by the application. + /// If it is set to 0, the rate control algorithm may assume an implementation-dependent GOP length. If it is set to + /// UINT32_MAX, the GOP length is treated as infinite. + /// + public uint gopFrameCount; + + /// + /// keyFramePeriod is the interval, in terms of number of frames, between two frames with the AV1 frame type + /// STD_VIDEO_AV1_FRAME_TYPE_KEY (see key frame period). If it is set to 0, the rate control algorithm may assume an + /// implementation-dependent key frame period. If it is set to UINT32_MAX, the key frame period is treated as infinite. + /// + public uint keyFramePeriod; + + /// + /// consecutiveBipredictiveFrameCount is the number of consecutive frames encoded with + /// VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR between frames encoded with other rate control groups + /// within the GOP. + /// + public uint consecutiveBipredictiveFrameCount; + + /// temporalLayerCount specifies the number of AV1 temporal layers that the application intends to use. + public uint temporalLayerCount; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlLayerInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlLayerInfoKHR.cs new file mode 100644 index 00000000..50365cc6 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1RateControlLayerInfoKHR.cs @@ -0,0 +1,78 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1RateControlLayerInfoKHR - Structure describing AV1 per-layer rate control parameters - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1RateControlLayerInfoKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoEncodeRateControlLayerInfoKHR +/// +/// +/// +[VkStructExtends("VkVideoEncodeRateControlLayerInfoKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeAV1RateControlLayerInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_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; + + /// + /// useMinQIndex indicates whether the quantizer index values determined by rate control will be clamped to the + /// lower bounds on the quantizer index values specified in minQIndex. + /// + public VkBool32 useMinQIndex; + + /// + /// minQIndex specifies the lower bounds on the quantizer index values, for each rate control group, that the + /// implementation’s rate control algorithm will use when useMinQIndex is set to VK_TRUE. + /// + public VkVideoEncodeAV1QIndexKHR minQIndex; + + /// + /// useMaxQIndex indicates whether the quantizer index values determined by rate control will be clamped to the + /// upper bounds on the quantizer index values specified in maxQIndex. + /// + public VkBool32 useMaxQIndex; + + /// + /// maxQIndex specifies the upper bounds on the quantizer index values, for each rate control group, that the + /// implementation’s rate control algorithm will use when useMaxQIndex is set to VK_TRUE. + /// + public VkVideoEncodeAV1QIndexKHR maxQIndex; + + /// + /// useMaxFrameSize indicates whether the implementation’s rate control algorithm should use the values + /// specified in maxFrameSizeas the upper bounds on the encoded frame size for each rate control group. + /// + public VkBool32 useMaxFrameSize; + + /// + /// maxFrameSize specifies the upper bounds on the encoded frame size, for each rate control group, when + /// useMaxFrameSize is set to VK_TRUE. + /// + public VkVideoEncodeAV1FrameSizeKHR maxFrameSize; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SessionCreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SessionCreateInfoKHR.cs new file mode 100644 index 00000000..72f8e335 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SessionCreateInfoKHR.cs @@ -0,0 +1,56 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1SessionCreateInfoKHR - Structure specifies AV1 encode session parameters - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1SessionCreateInfoKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoSessionCreateInfoKHR +/// +/// +/// +[VkStructExtends("VkVideoSessionCreateInfoKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeAV1SessionCreateInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_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; + + /// + /// useMaxLevel indicates whether the value of maxLevel should be used by the implementation. When it is set to + /// VK_FALSE, the implementation ignores the value of maxLevel and uses the value of + /// VkVideoEncodeAV1CapabilitiesKHR::maxLevel, as reported by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video + /// profile. + /// + public VkBool32 useMaxLevel; + + /// + /// maxLevel is a StdVideoAV1Level value specifying the upper bound on the AV1 level for the video bitstreams + /// produced by the created video session. + /// + public StdVideoAV1Level maxLevel; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SessionParametersCreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SessionParametersCreateInfoKHR.cs new file mode 100644 index 00000000..f647734c --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SessionParametersCreateInfoKHR.cs @@ -0,0 +1,65 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1SessionParametersCreateInfoKHR - Structure specifies AV1 encoder parameter set information - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1SessionParametersCreateInfoKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoSessionParametersCreateInfoKHR +/// +/// +/// +[VkStructExtends("VkVideoSessionParametersCreateInfoKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeAV1SessionParametersCreateInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// + /// pStdSequenceHeader is a pointer to a StdVideoAV1SequenceHeader structure describing parameters of the AV1 + /// sequence header entry to store in the created object. + /// + public StdVideoAV1SequenceHeader* pStdSequenceHeader; + + /// + /// pStdDecoderModelInfo is NULL or a pointer to a StdVideoEncodeAV1DecoderModelInfo structure specifying the AV1 + /// decoder model information to store in the created object. + /// + public StdVideoEncodeAV1DecoderModelInfo* pStdDecoderModelInfo; + + /// stdOperatingPointCount is the number of elements in the pStdOperatingPoints array. + public uint stdOperatingPointCount; + + /// + /// pStdOperatingPoints is NULL or a pointer to an array of stdOperatingPointCount number of + /// StdVideoEncodeAV1OperatingPointInfo structures specifying the AV1 operating point information to store in the + /// created object. Each element i specifies the parameter values corresponding to element i of the syntax elements + /// defined in section 6.4 of the AV1 Specification. + /// + public StdVideoEncodeAV1OperatingPointInfo* pStdOperatingPoints; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1StdFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1StdFlagBitsKHR.cs new file mode 100644 index 00000000..881e5fe3 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1StdFlagBitsKHR.cs @@ -0,0 +1,58 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1StdFlagBitsKHR - Video encode AV1 syntax capability flags - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1StdFlagBitsKHR.html +/// +[Flags] +public enum VkVideoEncodeAV1StdFlagBitsKHR +{ + /// + /// VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHRindicates whether the implementation supports using + /// the application-provided value for StdVideoAV1TileInfoFlags::uniform_tile_spacing_flag in the + /// + /// AV1 tile + /// parameters + /// + /// when that value is 1, indifferent of the coded extent of the + /// + /// encode + /// input picture + /// + /// and the number of tile columns and rows requested in the TileCols and TileRows members of + /// StdVideoAV1TileInfo. + /// + VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR = 0x1, + + /// + /// VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR specifies whether the implementation supports using + /// the application-provided value for StdVideoEncodeAV1PictureInfoFlags::skip_mode_present when that value is 0. + /// + VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR = 0x2, + + /// + /// VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR specifies whether the implementation supports using the + /// application-provided value for StdVideoEncodeAV1PictureInfo::primary_ref_frame. + /// + VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR = 0x4, + + /// + /// VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR specifies whether the implementation supports using the + /// application-provided values for the DeltaQYDc, DeltaQUDc, DeltaQUAc, DeltaQVDc, and DeltaQVAc members of + /// StdVideoAV1Quantization. + /// + VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR = 0x8 +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SuperblockSizeFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SuperblockSizeFlagBitsKHR.cs new file mode 100644 index 00000000..95be51c9 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_av1/VkVideoEncodeAV1SuperblockSizeFlagBitsKHR.cs @@ -0,0 +1,31 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1SuperblockSizeFlagBitsKHR - Supported superblock sizes for AV1 video encode - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1SuperblockSizeFlagBitsKHR.html +/// +/// +[Flags] +public enum VkVideoEncodeAV1SuperblockSizeFlagBitsKHR +{ + /// VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR specifies that a superblock size of 64x64 is supported. + VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR = 0x1, + + /// VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR specifies that a superblock size of 128x128 is supported. + VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR = 0x2 +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h264/VkVideoEncodeH264CapabilityFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h264/VkVideoEncodeH264CapabilityFlagBitsKHR.cs index 2cf50796..61bdd0bd 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h264/VkVideoEncodeH264CapabilityFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h264/VkVideoEncodeH264CapabilityFlagBitsKHR.cs @@ -24,7 +24,7 @@ namespace Exomia.Vulkan.Api.Core; public enum VkVideoEncodeH264CapabilityFlagBitsKHR { /// - /// VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR indicates whether the implementation may be able to + /// VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR specifies whether the implementation may be able to /// generate HRD compliant bitstreams if any of the nal_hrd_parameters_present_flag or vcl_hrd_parameters_present_flag /// members of StdVideoH264SpsVuiFlags are set to 1 in the /// @@ -36,7 +36,7 @@ public enum VkVideoEncodeH264CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x1, /// - /// VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHRindicates that if + /// VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHRspecifies that if /// StdVideoH264PpsFlags::weighted_pred_flag is set to 1 or StdVideoH264PictureParameterSet::weighted_bipred_idc is set /// to STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT in the /// @@ -63,14 +63,14 @@ public enum VkVideoEncodeH264CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x2, /// - /// VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHRindicates that each slice in a frame with multiple + /// VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHRspecifies that each slice in a frame with multiple /// slices may begin or finish at any offset in a macroblock row. If not supported, all slices in the frame must begin /// at the start of a macroblock row (and hence each slice must finish at the end of a macroblock row). /// VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x4, /// - /// VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHRindicates that when a frame is encoded with multiple + /// VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHRspecifies that when a frame is encoded with multiple /// slices, the implementation allows encoding each slice with a different StdVideoEncodeH264SliceHeader::slice_type /// specified in the /// @@ -83,7 +83,7 @@ public enum VkVideoEncodeH264CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x8, /// - /// VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHRindicates support for using a + /// VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHRspecifies support for using a /// B frame /// as L0 reference, as specified in StdVideoEncodeH264ReferenceListsInfo::RefPicList0 in the /// @@ -95,7 +95,7 @@ public enum VkVideoEncodeH264CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x10, /// - /// VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHRindicates support for using a + /// VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHRspecifies support for using a /// B frame /// as L1 reference, as specified in StdVideoEncodeH264ReferenceListsInfo::RefPicList1 in the /// @@ -107,7 +107,7 @@ public enum VkVideoEncodeH264CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x20, /// - /// VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHRindicates support for specifying different + /// VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHRspecifies support for specifying different /// QP values in the members of /// VkVideoEncodeH264QpKHR /// . @@ -115,13 +115,13 @@ public enum VkVideoEncodeH264CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x40, /// - /// VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHRindicates support for specifying different + /// VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHRspecifies support for specifying different /// constant QP values for each slice. /// VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x80, /// - /// VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHRindicates support for generating prefix NAL units + /// VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHRspecifies support for generating prefix NAL units /// by setting /// @@ -129,5 +129,14 @@ public enum VkVideoEncodeH264CapabilityFlagBitsKHR /// /// ::generatePrefixNalu to VK_TRUE. /// - VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x100 + VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x100, + + /// + /// VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR
+ /// + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkVideoEncodeH264CapabilityFlagBitsKHR + /// + ///
+ VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR = 0x200 } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h264/VkVideoEncodeH264StdFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h264/VkVideoEncodeH264StdFlagBitsKHR.cs index cd8b075c..35b408ee 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h264/VkVideoEncodeH264StdFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h264/VkVideoEncodeH264StdFlagBitsKHR.cs @@ -24,7 +24,7 @@ namespace Exomia.Vulkan.Api.Core; public enum VkVideoEncodeH264StdFlagBitsKHR { /// - /// VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoH264SpsFlags::separate_colour_plane_flag in the /// SPS when /// that value is 1. @@ -32,7 +32,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x1, /// - /// VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHRindicates whether the implementation + /// VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHRspecifies whether the implementation /// supports using the application-provided value for StdVideoH264SpsFlags::qpprime_y_zero_transform_bypass_flag in the /// SPS when /// that value is 1. @@ -40,7 +40,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x2, /// - /// VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHRspecifies whether the implementation supports /// using the application-provided values for StdVideoH264SpsFlags::seq_scaling_matrix_present_flag in the /// SPS and /// StdVideoH264PpsFlags::pic_scaling_matrix_present_flag in the @@ -50,7 +50,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x4, /// - /// VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR indicates whether the implementation supports using + /// VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR specifies whether the implementation supports using /// the application-provided value for StdVideoH264PictureParameterSet::chroma_qp_index_offset in the /// PPS when /// that value is non-zero. @@ -58,7 +58,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x8, /// - /// VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoH264PictureParameterSet::second_chroma_qp_index_offsetin the /// PPS when /// that value is non-zero. @@ -66,7 +66,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x10, /// - /// VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR indicates whether the implementation supports using the + /// VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR specifies whether the implementation supports using the /// application-provided value for StdVideoH264PictureParameterSet::pic_init_qp_minus26 in the /// PPS when /// that value is non-zero. @@ -74,7 +74,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x20, /// - /// VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR indicates whether the implementation supports using + /// VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR specifies whether the implementation supports using /// the application-provided value for StdVideoH264PpsFlags::weighted_pred_flag in the /// PPS when /// that value is 1. @@ -82,7 +82,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x40, /// - /// VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoH264PictureParameterSet::weighted_bipred_idc in the /// PPS when /// that value is STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT. @@ -90,7 +90,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x80, /// - /// VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoH264PictureParameterSet::weighted_bipred_idc in the /// PPS when /// that value is STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT. @@ -98,7 +98,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x100, /// - /// VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoH264PpsFlags::transform_8x8_mode_flag in the /// PPS when /// that value is 1. @@ -106,7 +106,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x200, /// - /// VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoEncodeH264SliceHeaderFlags::direct_spatial_mv_pred_flagin the /// /// H.264 @@ -117,7 +117,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x400, /// - /// VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHRindicates whether the implementation supports CAVLC + /// VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHRspecifies whether the implementation supports CAVLC /// entropy coding, as defined in section 9.2 of the /// /// ITU-T H.264 @@ -131,7 +131,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x800, /// - /// VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHRindicates whether the implementation supports CABAC + /// VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHRspecifies whether the implementation supports CABAC /// entropy coding, as defined in section 9.3 of the /// /// ITU-T H.264 @@ -145,7 +145,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x1000, /// - /// VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoH264SpsFlags::direct_8x8_inference_flag in the /// SPS when /// that value is 0. @@ -153,7 +153,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x2000, /// - /// VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoH264PpsFlags::constrained_intra_pred_flag in the /// PPS when /// that value is 1. @@ -161,7 +161,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x4000, /// - /// VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHRindicates whether the implementation supports using the + /// VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHRspecifies whether the implementation supports using the /// application-provided value for StdVideoEncodeH264SliceHeader::disable_deblocking_filter_idcin the /// /// H.264 @@ -172,7 +172,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x8000, /// - /// VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHRindicates whether the implementation supports using the + /// VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHRspecifies whether the implementation supports using the /// application-provided value for StdVideoEncodeH264SliceHeader::disable_deblocking_filter_idcin the /// /// H.264 @@ -183,7 +183,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x10000, /// - /// VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHRindicates whether the implementation supports using the + /// VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHRspecifies whether the implementation supports using the /// application-provided value for StdVideoEncodeH264SliceHeader::disable_deblocking_filter_idcin the /// /// H.264 @@ -194,7 +194,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x20000, /// - /// VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR indicates whether the implementation supports using the + /// VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR specifies whether the implementation supports using the /// application-provided value for StdVideoEncodeH264SliceHeader::slice_qp_delta in the /// /// H.264 @@ -205,7 +205,7 @@ public enum VkVideoEncodeH264StdFlagBitsKHR VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x80000, /// - /// VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHRindicates whether the implementation supports using the + /// VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHRspecifies whether the implementation supports using the /// application-provided value for StdVideoEncodeH264SliceHeader::slice_qp_delta in the /// /// H.264 diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265CapabilityFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265CapabilityFlagBitsKHR.cs index f52b06b0..c6234f89 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265CapabilityFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265CapabilityFlagBitsKHR.cs @@ -24,9 +24,9 @@ namespace Exomia.Vulkan.Api.Core; public enum VkVideoEncodeH265CapabilityFlagBitsKHR { /// - /// VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR indicates if the implementation may be able to generate - /// HRD compliant bitstreams if any of the nal_hrd_parameters_present_flag, vcl_hrd_parameters_present_flag, or - /// sub_pic_hrd_params_present_flag members of StdVideoH265HrdFlags are set to 1 in the HRD parameters of the + /// VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR specifies whether the implementation may be able to + /// generate HRD compliant bitstreams if any of the nal_hrd_parameters_present_flag, vcl_hrd_parameters_present_flag, + /// or sub_pic_hrd_params_present_flag members of StdVideoH265HrdFlags are set to 1 in the HRD parameters of the /// /// active /// VPS @@ -46,7 +46,7 @@ public enum VkVideoEncodeH265CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x1, /// - /// VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHRindicates that if the weighted_pred_flag + /// VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHRspecifies that if the weighted_pred_flag /// or the weighted_bipred_flag member of StdVideoH265PpsFlags is set to 1 in the /// /// active @@ -73,7 +73,7 @@ public enum VkVideoEncodeH265CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x2, /// - /// VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHRindicates that each slice segment in a + /// VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHRspecifies that each slice segment in a /// frame with a single or multiple tiles per slice may begin or finish at any offset in a CTB row. If not supported, /// all slice segments in such a frame must begin at the start of a CTB row (and hence each slice segment must finish /// at the end of a CTB row). Also indicates that each slice segment in a frame with multiple slices per tile may begin @@ -84,7 +84,7 @@ public enum VkVideoEncodeH265CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x4, /// - /// VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHRindicates that when a frame is encoded with + /// VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHRspecifies that when a frame is encoded with /// multiple slice segments, the implementation allows encoding each slice segment with a different /// StdVideoEncodeH265SliceSegmentHeader::slice_type specified in the /// - /// VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHRindicates support for using a + /// VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHRspecifies support for using a /// B frame /// as L0 reference, as specified in StdVideoEncodeH265ReferenceListsInfo::RefPicList0 in the /// @@ -110,7 +110,7 @@ public enum VkVideoEncodeH265CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x10, /// - /// VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHRindicates support for using a + /// VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHRspecifies support for using a /// B frame /// as L1 reference, as specified in StdVideoEncodeH265ReferenceListsInfo::RefPicList1 in the /// @@ -122,7 +122,7 @@ public enum VkVideoEncodeH265CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x20, /// - /// VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHRindicates support for specifying different + /// VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHRspecifies support for specifying different /// QP values in the members of /// VkVideoEncodeH265QpKHR /// . @@ -130,14 +130,14 @@ public enum VkVideoEncodeH265CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x40, /// - /// VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHRindicates support for specifying + /// VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHRspecifies support for specifying /// different constant QP values for each slice segment. /// VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x80, /// - /// VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHRindicates if encoding multiple tiles per - /// slice segment, as defined in section 6.3.1 of the + /// VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHRspecifies whether encoding multiple tiles + /// per slice segment, as defined in section 6.3.1 of the /// /// ITU-T H.265 /// Specification @@ -148,7 +148,7 @@ public enum VkVideoEncodeH265CapabilityFlagBitsKHR VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x100, /// - /// VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHRindicates if encoding multiple slice + /// VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHRspecifies whether encoding multiple slice /// segments per tile, as defined in section 6.3.1 of the /// /// ITU-T H.265 @@ -157,5 +157,14 @@ public enum VkVideoEncodeH265CapabilityFlagBitsKHR /// , is supported. If this capability flag is not present, then the implementation is only able /// to encode a single slice segment for each tile. /// - VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x200 + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x200, + + /// + /// VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkVideoEncodeH265CapabilityFlagBitsKHR + /// + ///
+ VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR = 0x400 } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265StdFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265StdFlagBitsKHR.cs index b34ca433..7b8c387c 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265StdFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265StdFlagBitsKHR.cs @@ -24,7 +24,7 @@ namespace Exomia.Vulkan.Api.Core; public enum VkVideoEncodeH265StdFlagBitsKHR { /// - /// VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoH265SpsFlags::separate_colour_plane_flag in the /// SPS when /// that value is 1. @@ -32,7 +32,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x1, /// - /// VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHRindicates whether the implementation + /// VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHRspecifies whether the implementation /// supports using the application-provided value for StdVideoH265SpsFlags::sample_adaptive_offset_enabled_flag in the /// SPS when /// that value is 1. @@ -40,7 +40,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x2, /// - /// VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHRindicates whether the implementation + /// VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHRspecifies whether the implementation /// supports using the application-provided value for the scaling_list_enabled_flag and /// sps_scaling_list_data_present_flag members of StdVideoH265SpsFlags in the /// SPS, and @@ -51,7 +51,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x4, /// - /// VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR indicates whether the implementation supports using the + /// VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR specifies whether the implementation supports using the /// application-provided value for StdVideoH265SpsFlags::pcm_enable_flag in the /// SPS when /// that value is 1. @@ -59,7 +59,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x8, /// - /// VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHRindicates whether the implementation + /// VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHRspecifies whether the implementation /// supports using the application-provided value for StdVideoH265SpsFlags::sps_temporal_mvp_enabled_flag in the /// SPS when /// that value is 1. @@ -67,7 +67,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x10, /// - /// VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR indicates whether the implementation supports using the + /// VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR specifies whether the implementation supports using the /// application-provided value for StdVideoH265PictureParameterSet::init_qp_minus26 in the /// PPS when /// that value is non-zero. @@ -75,7 +75,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x20, /// - /// VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR indicates whether the implementation supports using + /// VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR specifies whether the implementation supports using /// the application-provided value for StdVideoH265PpsFlags::weighted_pred_flag in the /// PPS when /// that value is 1. @@ -83,7 +83,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x40, /// - /// VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHRindicates whether the implementation supports using + /// VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHRspecifies whether the implementation supports using /// the application-provided value for StdVideoH265PpsFlags::weighted_bipred_flag in the /// PPS when /// that value is 1. @@ -91,7 +91,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x80, /// - /// VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoH265PictureParameterSet::log2_parallel_merge_level_minus2in the /// PPS when /// that value is non-zero. @@ -99,7 +99,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x100, /// - /// VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHRindicates whether the implementation + /// VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHRspecifies whether the implementation /// supports using the application-provided value for StdVideoH265PpsFlags::sign_data_hiding_enabled_flag in the /// PPS when /// that value is 1. @@ -107,7 +107,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x200, /// - /// VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoH265PpsFlags::transform_skip_enabled_flag in the /// PPS when /// that value is 1. @@ -115,7 +115,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x400, /// - /// VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHRindicates whether the implementation + /// VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHRspecifies whether the implementation /// supports using the application-provided value for StdVideoH265PpsFlags::transform_skip_enabled_flag in the /// PPS when /// that value is 0. @@ -123,7 +123,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x800, /// - /// VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHRindicates whether the + /// VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHRspecifies whether the /// implementation supports using the application-provided value for /// StdVideoH265PpsFlags::pps_slice_chroma_qp_offsets_present_flagin the /// PPS when @@ -132,7 +132,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x1000, /// - /// VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHRindicates whether the implementation + /// VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHRspecifies whether the implementation /// supports using the application-provided value for StdVideoH265PpsFlags::transquant_bypass_enabled_flag in the /// PPS when /// that value is 1. @@ -140,7 +140,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x2000, /// - /// VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoH265PpsFlags::constrained_intra_pred_flag in the /// PPS when /// that value is 1. @@ -148,7 +148,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x4000, /// - /// VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHRindicates whether the implementation + /// VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHRspecifies whether the implementation /// supports using the application-provided value for StdVideoH265PpsFlags::entropy_coding_sync_enabled_flag in the /// PPS when /// that value is 1. @@ -156,7 +156,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x8000, /// - /// VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHRindicates whether the + /// VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHRspecifies whether the /// implementation supports using the application-provided value for /// StdVideoH265PpsFlags::deblocking_filter_override_enabled_flagin the /// PPS when @@ -165,7 +165,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x10000, /// - /// VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHRindicates whether the implementation + /// VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHRspecifies whether the implementation /// supports using the application-provided value for StdVideoH265PpsFlags::dependent_slice_segments_enabled_flag in /// the PPS /// when that value is 1. @@ -173,7 +173,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x20000, /// - /// VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHRindicates whether the implementation supports + /// VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHRspecifies whether the implementation supports /// using the application-provided value for StdVideoEncodeH265SliceSegmentHeader::dependent_slice_segment_flagin the /// @@ -185,7 +185,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x40000, /// - /// VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR indicates whether the implementation supports using the + /// VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR specifies whether the implementation supports using the /// application-provided value for StdVideoEncodeH265SliceSegmentHeader::slice_qp_delta in the /// @@ -198,7 +198,7 @@ public enum VkVideoEncodeH265StdFlagBitsKHR VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x80000, /// - /// VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHRindicates whether the implementation supports using the + /// VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHRspecifies whether the implementation supports using the /// application-provided value for StdVideoEncodeH265SliceSegmentHeader::slice_qp_delta in the /// diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkKhrVideoEncodeQuantizationMap.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkKhrVideoEncodeQuantizationMap.cs new file mode 100644 index 00000000..6e7a0c04 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkKhrVideoEncodeQuantizationMap.cs @@ -0,0 +1,53 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +global using static Exomia.Vulkan.Api.Core.VkKhrVideoEncodeQuantizationMap; + +#pragma warning disable CA2211 // Non-constant fields should not be visible +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VK_KHR_video_encode_quantization_map - device extension (nr. 554) - author 'KHR' [platform '' | contact 'Ahmed +/// Abdelkhalek @aabdelkh']
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_encode_quantization_map.html +/// +///
+[VkDepends("VK_KHR_video_encode_queue+VK_KHR_format_feature_flags2")] +[VkDeviceExt] +public static class VkKhrVideoEncodeQuantizationMap +{ + /// The spec version. + public const uint VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION = 2; + + /// The extension name. + public const string VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME = "VK_KHR_video_encode_quantization_map"; + + /// + /// An UTF8 null terminated version of + /// represented by an UTF16 string. + /// + /// + /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME_UTF8_NT) {
+ /// sbyte* utf8NtPtr = (sbyte*)ptr; // utf8NtPtr - can now be passed and used directly as a utf8_nt string for + /// unmanaged code.
+ /// } + ///
+ public const string VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME_UTF8_NT = + "\u4b56\u4b5f\u5248\u565f\u4449\u4f45\u455f\u434e\u444f\u5f45\u5551\u4e41\u4954\u415a\u4954\u4e4f\u4d5f\u5041\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045"; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR.cs new file mode 100644 index 00000000..e74951ab --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR.cs @@ -0,0 +1,51 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR - Structure describing the video encode quantization map +/// features that can be supported by an implementation - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo +/// +/// +/// +[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_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; + + /// + /// videoEncodeQuantizationMapindicates that the implementation supports video encode quantization + /// maps.NoteSupport for videoEncodeQuantizationMap does not indicate that all video encode profiles support + /// quantization maps. Support for quantization maps for any specific video encode profile is subject to + /// video-profile-specific capabilities. + /// + public VkBool32 videoEncodeQuantizationMap; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeAV1QuantizationMapCapabilitiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeAV1QuantizationMapCapabilitiesKHR.cs new file mode 100644 index 00000000..36d68e00 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeAV1QuantizationMapCapabilitiesKHR.cs @@ -0,0 +1,51 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeAV1QuantizationMapCapabilitiesKHR - Structure describing AV1 encode quantization map capabilities - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1QuantizationMapCapabilitiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoCapabilitiesKHR +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkVideoCapabilitiesKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeAV1QuantizationMapCapabilitiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// minQIndexDelta indicates the minimum quantizer index delta value supported for AV1 quantizer index delta maps. + public int minQIndexDelta; + + /// maxQIndexDelta indicates the maximum quantizer index delta value supported for AV1 quantizer index delta maps. + public int maxQIndexDelta; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeH264QuantizationMapCapabilitiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeH264QuantizationMapCapabilitiesKHR.cs new file mode 100644 index 00000000..fdac266d --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeH264QuantizationMapCapabilitiesKHR.cs @@ -0,0 +1,51 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeH264QuantizationMapCapabilitiesKHR - Structure describing H.264 encode quantization map capabilities - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH264QuantizationMapCapabilitiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoCapabilitiesKHR +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkVideoCapabilitiesKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeH264QuantizationMapCapabilitiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// minQpDelta indicates the minimum QP delta value supported for H.264 QP delta maps. + public int minQpDelta; + + /// maxQpDelta indicates the maximum QP delta value supported for H.264 QP delta maps. + public int maxQpDelta; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeH265QuantizationMapCapabilitiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeH265QuantizationMapCapabilitiesKHR.cs new file mode 100644 index 00000000..f5073533 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeH265QuantizationMapCapabilitiesKHR.cs @@ -0,0 +1,51 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeH265QuantizationMapCapabilitiesKHR - Structure describing H.265 encode quantization map capabilities - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH265QuantizationMapCapabilitiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoCapabilitiesKHR +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkVideoCapabilitiesKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeH265QuantizationMapCapabilitiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// minQpDelta indicates the minimum QP delta value supported for H.265 QP delta maps. + public int minQpDelta; + + /// maxQpDelta indicates the maximum QP delta value supported for H.265 QP delta maps. + public int maxQpDelta; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapCapabilitiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapCapabilitiesKHR.cs new file mode 100644 index 00000000..1496d03e --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapCapabilitiesKHR.cs @@ -0,0 +1,49 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeQuantizationMapCapabilitiesKHR - Structure describing video encode quantization map capabilities for a +/// video profile - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeQuantizationMapCapabilitiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoCapabilitiesKHR +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkVideoCapabilitiesKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeQuantizationMapCapabilitiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// maxQuantizationMapExtent indicates the maximum supported width and height of quantization maps. + public VkExtent2D maxQuantizationMapExtent; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapInfoKHR.cs new file mode 100644 index 00000000..1be7ccad --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapInfoKHR.cs @@ -0,0 +1,52 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeQuantizationMapInfoKHR - Structure specifying quantization map information to use for video encode +/// operations - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeQuantizationMapInfoKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoEncodeInfoKHR +/// +/// +/// +[VkStructExtends("VkVideoEncodeInfoKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeQuantizationMapInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_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; + + /// quantizationMap specifies the image view to use as the quantization map. + public VkImageView quantizationMap; + + /// + /// quantizationMapExtent specifies the extent of the image subregion of quantizationMap to use as the + /// quantization map starting at offset (0,0). + /// + public VkExtent2D quantizationMapExtent; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR.cs new file mode 100644 index 00000000..54c35b5d --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR.cs @@ -0,0 +1,49 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR - Structure specifying quantization map texel size for +/// video session parameters - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoSessionParametersCreateInfoKHR +/// +/// +/// +[VkStructExtends("VkVideoSessionParametersCreateInfoKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// + /// quantizationMapTexelSize specifies the quantization map texel size a video session parameters object created + /// with VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHRis compatible with. + /// + public VkExtent2D quantizationMapTexelSize; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatAV1QuantizationMapPropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatAV1QuantizationMapPropertiesKHR.cs new file mode 100644 index 00000000..b4504df4 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatAV1QuantizationMapPropertiesKHR.cs @@ -0,0 +1,56 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoFormatAV1QuantizationMapPropertiesKHR - Structure describing AV1 quantization map properties - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoFormatAV1QuantizationMapPropertiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoFormatPropertiesKHR +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkVideoFormatPropertiesKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoFormatAV1QuantizationMapPropertiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_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; + + /// + /// compatibleSuperblockSizes is a bitmask of VkVideoEncodeAV1SuperblockSizeFlagBitsKHR indicating the AV1 + /// superblock sizes that quantization maps using this video format are compatible with.NoteThe value of + /// compatibleSuperblockSizes does not limit the use of the specific quantization map format, but does limit the + /// implementation in being able to encode pictures with superblock sizes not included in compatibleSuperblockSizes but + /// otherwise supported by the used video profile, as indicated by VkVideoEncodeAV1CapabilitiesKHR::superblockSizes. In + /// particular, using smaller quantization map texel sizes may prevent implementations from encoding with larger + /// superblock sizes which may have a negative impact on the efficiency of the encoder. + /// + public VkVideoEncodeAV1SuperblockSizeFlagsKHR compatibleSuperblockSizes; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatH265QuantizationMapPropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatH265QuantizationMapPropertiesKHR.cs new file mode 100644 index 00000000..125fdb05 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatH265QuantizationMapPropertiesKHR.cs @@ -0,0 +1,56 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoFormatH265QuantizationMapPropertiesKHR - Structure describing H.265 quantization map properties - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoFormatH265QuantizationMapPropertiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoFormatPropertiesKHR +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkVideoFormatPropertiesKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoFormatH265QuantizationMapPropertiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_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; + + /// + /// compatibleCtbSizes is a bitmask of VkVideoEncodeH265CtbSizeFlagBitsKHR indicating the CTB sizes that + /// quantization maps using this video format are compatible with.NoteThe value of compatibleCtbSizes does not limit + /// the use of the specific quantization map format, but does limit the implementation in being able to encode pictures + /// with CTB sizes not included in compatibleCtbSizes but otherwise supported by the used video profile, as indicated + /// by VkVideoEncodeH265CapabilitiesKHR::ctbSizes. In particular, using smaller quantization map texel sizes may + /// prevent implementations from encoding with larger CTB sizes which may have a negative impact on the efficiency of + /// the encoder. + /// + public VkVideoEncodeH265CtbSizeFlagsKHR compatibleCtbSizes; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatQuantizationMapPropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatQuantizationMapPropertiesKHR.cs new file mode 100644 index 00000000..7d6512d7 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoFormatQuantizationMapPropertiesKHR.cs @@ -0,0 +1,51 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoFormatQuantizationMapPropertiesKHR - Structure describing quantization map properties - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoFormatQuantizationMapPropertiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkVideoFormatPropertiesKHR +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkVideoFormatPropertiesKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkVideoFormatQuantizationMapPropertiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_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; + + /// + /// quantizationMapTexelSize indicates the quantization map texel size of the video format, i.e. the number of + /// pixels corresponding to each quantization map texel. + /// + public VkExtent2D quantizationMapTexelSize; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoSessionParametersCreateFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoSessionParametersCreateFlagBitsKHR.cs new file mode 100644 index 00000000..ad91a036 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_quantization_map/VkVideoSessionParametersCreateFlagBitsKHR.cs @@ -0,0 +1,36 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkVideoSessionParametersCreateFlagBitsKHR - Video session parameters creation flags - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoSessionParametersCreateFlagBitsKHR.html +/// +/// +[Flags] +public enum VkVideoSessionParametersCreateFlagBitsKHR +{ + /// + /// VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHRspecifies that the created video session + /// parameters object can be used with + /// + /// quantization + /// maps + /// + /// . + /// + VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR = 0x1 +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeCapabilityFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeCapabilityFlagBitsKHR.cs index c92438c0..48fe9308 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeCapabilityFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeCapabilityFlagBitsKHR.cs @@ -24,7 +24,7 @@ namespace Exomia.Vulkan.Api.Core; public enum VkVideoEncodeCapabilityFlagBitsKHR { /// - /// VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHRindicates that the implementation + /// VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHRspecifies that the implementation /// supports the use of /// VkVideoEncodeInfoKHR /// ::precedingExternallyEncodedBytes. @@ -32,7 +32,7 @@ public enum VkVideoEncodeCapabilityFlagBitsKHR VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x1, /// - /// VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHRindicates that the implementation + /// VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHRspecifies that the implementation /// is able to detect and report when the destination video bitstream buffer range provided by the application is not /// sufficiently large to fit the encoded bitstream data produced by a video encode operation by reporting the /// VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR @@ -42,5 +42,23 @@ public enum VkVideoEncodeCapabilityFlagBitsKHR /// /// . /// - VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x2 + VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x2, + + /// + /// VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR
+ /// + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkVideoEncodeCapabilityFlagBitsKHR + /// + ///
+ VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x4, + + /// + /// VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR
+ /// + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkVideoEncodeCapabilityFlagBitsKHR + /// + ///
+ VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR = 0x8 } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeInfoKHR.cs index 6a565e7c..20636409 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeInfoKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeInfoKHR.cs @@ -29,7 +29,7 @@ public unsafe struct VkVideoEncodeInfoKHR /// pNext is a pointer to a structure extending this structure. public void* pNext; - /// flags is reserved for future use. + /// flags is a bitmask of VkVideoEncodeFlagBitsKHR indicating video encode command flags. public VkVideoEncodeFlagsKHR flags; /// dstBuffer is the destination video bitstream buffer to write the encoded bitstream to. diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeRateControlModeFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeRateControlModeFlagBitsKHR.cs index eb04c05c..54a1f9cc 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeRateControlModeFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_queue/VkVideoEncodeRateControlModeFlagBitsKHR.cs @@ -34,6 +34,8 @@ public enum VkVideoEncodeRateControlModeFlagBitsKHR /// VkVideoEncodeH264NaluSliceInfoKHR::constantQp to control the quality of the encoded picture.
/// When using an H.265 encode profile, implementations will use the QP value specified in /// VkVideoEncodeH265NaluSliceSegmentInfoKHR::constantQp to control the quality of the encoded picture.
+ /// When using an AV1 encode profile, implementations will use the quantizer index value specified in + /// VkVideoEncodeAV1PictureInfoKHR::constantQIndex to control the quality of the encoded picture.
///
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x1, diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkQueryResultStatusKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkQueryResultStatusKHR.cs index 43e031ae..1e48f3da 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkQueryResultStatusKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkQueryResultStatusKHR.cs @@ -19,20 +19,20 @@ namespace Exomia.Vulkan.Api.Core; ///
public enum VkQueryResultStatusKHR { - /// VK_QUERY_RESULT_STATUS_ERROR_KHR indicates that operations did not complete successfully. + /// VK_QUERY_RESULT_STATUS_ERROR_KHR specifies that operations did not complete successfully. VK_QUERY_RESULT_STATUS_ERROR_KHR = -1, - /// VK_QUERY_RESULT_STATUS_NOT_READY_KHR indicates that the query result is not yet available. + /// VK_QUERY_RESULT_STATUS_NOT_READY_KHR specifies that the query result is not yet available. VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0, /// - /// VK_QUERY_RESULT_STATUS_COMPLETE_KHR indicates that operations completed successfully and the query result is + /// VK_QUERY_RESULT_STATUS_COMPLETE_KHR specifies that operations completed successfully and the query result is /// available. /// VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1, /// - /// VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHRindicates that a video encode operation did not + /// VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHRspecifies that a video encode operation did not /// complete successfully due to the destination video bitstream buffer range not being sufficiently large to fit the /// encoded bitstream data. /// diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCapabilityFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCapabilityFlagBitsKHR.cs index add21cd9..a4979898 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCapabilityFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCapabilityFlagBitsKHR.cs @@ -21,7 +21,7 @@ namespace Exomia.Vulkan.Api.Core; public enum VkVideoCapabilityFlagBitsKHR { /// - /// VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR indicates that video sessions support producing and consuming + /// VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR specifies that video sessions support producing and consuming /// protected content. /// VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x1, diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodecOperationFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodecOperationFlagBitsKHR.cs index 0fbcbb79..8c5c3d61 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodecOperationFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodecOperationFlagBitsKHR.cs @@ -23,7 +23,7 @@ namespace Exomia.Vulkan.Api.Core; [Flags] public enum VkVideoCodecOperationFlagBitsKHR { - /// VK_VIDEO_CODEC_OPERATION_NONE_KHR indicates no support for any video codec operations. + /// VK_VIDEO_CODEC_OPERATION_NONE_KHR specifies that no video codec operations are supported. VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0, /// @@ -74,5 +74,15 @@ public enum VkVideoCodecOperationFlagBitsKHR /// /// . /// - VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x4 + VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x4, + + /// + /// VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR specifies support for + /// + /// AV1 encode + /// operations + /// + /// . + /// + VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR = 0x40000 } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodingControlFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodingControlFlagBitsKHR.cs index 8d92aeef..ba40b7a3 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodingControlFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoCodingControlFlagBitsKHR.cs @@ -24,13 +24,13 @@ namespace Exomia.Vulkan.Api.Core; public enum VkVideoCodingControlFlagBitsKHR { /// - /// VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR indicates a request for the bound video session to be reset before other + /// VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR specifies a request for the bound video session to be reset before other /// coding control parameters are applied. /// VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x1, /// - /// VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR indicates that the coding control parameters include video + /// VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR specifies that the coding control parameters include video /// encode rate control parameters (see /// @@ -41,7 +41,7 @@ public enum VkVideoCodingControlFlagBitsKHR VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x2, /// - /// VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR indicates that the coding control parameters include + /// VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR specifies that the coding control parameters include /// video encode quality level parameters (see /// diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoSessionCreateFlagBitsKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoSessionCreateFlagBitsKHR.cs index b8b493da..ac464d15 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoSessionCreateFlagBitsKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoSessionCreateFlagBitsKHR.cs @@ -47,5 +47,27 @@ public enum VkVideoSessionCreateFlagBitsKHR /// /// with video coding operations. /// - VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x4 + VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x4, + + /// + /// VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRspecifies that the video session can be used to + /// encode pictures with + /// + /// quantization + /// delta maps + /// + /// . + /// + VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x8, + + /// + /// VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHRspecifies that the video session can be used to + /// encode pictures with + /// + /// emphasis + /// maps + /// + /// . + /// + VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x10 } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoSessionParametersCreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoSessionParametersCreateInfoKHR.cs index b1e4b33a..a62e9ce2 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoSessionParametersCreateInfoKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_queue/VkVideoSessionParametersCreateInfoKHR.cs @@ -33,7 +33,7 @@ public unsafe struct VkVideoSessionParametersCreateInfoKHR /// pNext is NULL or a pointer to a structure extending this structure. public void* pNext; - /// flags is reserved for future use. + /// flags is a bitmask of VkVideoSessionParametersCreateFlagBitsKHR specifying create flags. public VkVideoSessionParametersCreateFlagsKHR flags; /// diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.cs index 8fb3dc1f..0d06774b 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.cs @@ -52,7 +52,7 @@ public unsafe struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV /// /// cooperativeMatrixFlexibleDimensionsMaxDimension is the maximum supported dimension for cooperative matrix - /// types when cooperativeMatrixFlexibleDimensionsis enabled. + /// types when the cooperativeMatrixFlexibleDimensionsfeature is enabled. /// public uint cooperativeMatrixFlexibleDimensionsMaxDimension; diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplayModeStereoPropertiesNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplayModeStereoPropertiesNV.cs new file mode 100644 index 00000000..9f4cd508 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplayModeStereoPropertiesNV.cs @@ -0,0 +1,51 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkDisplayModeStereoPropertiesNV - Structure describing the stereo properties of a display mode - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayModeStereoPropertiesNV.html +/// +/// +/// +/// +/// +/// structextendsVkDisplayModeProperties2KHR +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkDisplayModeProperties2KHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkDisplayModeStereoPropertiesNV +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// + /// hdmi3DSupported indicates whether this display mode can be used for a display surface configured for + /// VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV. + /// + public VkBool32 hdmi3DSupported; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplaySurfaceStereoCreateInfoNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplaySurfaceStereoCreateInfoNV.cs new file mode 100644 index 00000000..a03eafb5 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplaySurfaceStereoCreateInfoNV.cs @@ -0,0 +1,49 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkDisplaySurfaceStereoCreateInfoNV - Structure specifying stereo parameters of a newly created display plane +/// surface object - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplaySurfaceStereoCreateInfoNV.html +/// +/// +/// +/// +/// +/// structextendsVkDisplaySurfaceCreateInfoKHR +/// +/// +/// +[VkStructExtends("VkDisplaySurfaceCreateInfoKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkDisplaySurfaceStereoCreateInfoNV +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// + /// stereoType is a VkDisplaySurfaceStereoTypeNV value specifying the type of 3D stereo presentation the display + /// will be configured for. + /// + public VkDisplaySurfaceStereoTypeNV stereoType; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplaySurfaceStereoTypeNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplaySurfaceStereoTypeNV.cs new file mode 100644 index 00000000..bf1bf05d --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkDisplaySurfaceStereoTypeNV.cs @@ -0,0 +1,51 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkDisplaySurfaceStereoTypeNV - 3D Stereo type - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplaySurfaceStereoTypeNV.html +/// +public enum VkDisplaySurfaceStereoTypeNV +{ + /// + /// VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV specifies no configuration for stereo presentation. This is the default + /// behavior if + /// + /// VkDisplaySurfaceStereoCreateInfoNV + /// + /// is not provided. + /// + VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV = 0, + + /// + /// VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV specifies configuration for glasses that connect via a DIN + /// connector on the back of the graphics card. + /// + VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV = 1, + + /// + /// VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV specifies configuration for HDMI 3D compatible display devices with + /// their own stereo emitters. This is also known as HDMI Frame Packed Stereo, where the left and right eye images are + /// stacked into a single frame with a doubled pixel clock and refresh rate. + /// + VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV = 2, + + /// + /// VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV specifies configuration for DisplayPort display devices + /// with in-band stereo signaling and emitters. + /// + VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV = 3 +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkNvDisplayStereo.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkNvDisplayStereo.cs new file mode 100644 index 00000000..b0d38afe --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_display_stereo/VkNvDisplayStereo.cs @@ -0,0 +1,49 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +global using static Exomia.Vulkan.Api.Core.VkNvDisplayStereo; + +#pragma warning disable CA2211 // Non-constant fields should not be visible +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VK_NV_display_stereo - instance extension (nr. 552) - author 'NV' [platform '' | contact 'Russell Chou +/// @russellcnv']
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_NV_display_stereo.html +///
+[VkDepends("VK_KHR_display+VK_KHR_get_display_properties2")] +[VkInstanceExt] +public static class VkNvDisplayStereo +{ + /// The spec version. + public const uint VK_NV_DISPLAY_STEREO_SPEC_VERSION = 1; + + /// The extension name. + public const string VK_NV_DISPLAY_STEREO_EXTENSION_NAME = "VK_NV_display_stereo"; + + /// + /// An UTF8 null terminated version of represented by an UTF16 + /// string. + /// + /// + /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_NV_DISPLAY_STEREO_EXTENSION_NAME_UTF8_NT) {
+ /// sbyte* utf8NtPtr = (sbyte*)ptr; // utf8NtPtr - can now be passed and used directly as a utf8_nt string for + /// unmanaged code.
+ /// } + ///
+ public const string VK_NV_DISPLAY_STEREO_EXTENSION_NAME_UTF8_NT = "\u4b56\u4e5f\u5f56\u4944\u5053\u414c\u5f59\u5453\u5245\u4f45\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045"; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkOutOfBandQueueTypeNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkOutOfBandQueueTypeNV.cs index 42384b30..72b3b318 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkOutOfBandQueueTypeNV.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkOutOfBandQueueTypeNV.cs @@ -19,9 +19,9 @@ namespace Exomia.Vulkan.Api.Core; ///
public enum VkOutOfBandQueueTypeNV { - /// VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV indicates that work will be submitted to this queue. + /// VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV specifies that work will be submitted to this queue. VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0, - /// VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV indicates that this queue will be presented from. + /// VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV specifies that this queue will be presented from. VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1 } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSwapchainLatencyCreateInfoNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSwapchainLatencyCreateInfoNV.cs index 5b26aa3c..3e8e78fa 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSwapchainLatencyCreateInfoNV.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSwapchainLatencyCreateInfoNV.cs @@ -37,12 +37,6 @@ public unsafe struct VkSwapchainLatencyCreateInfoNV /// pNext is NULL or a pointer to a structure extending this structure. public void* pNext; - /// - /// latencyModeEnable
- /// - /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkSwapchainLatencyCreateInfoNV - /// - ///
+ /// latencyModeEnable is VK_TRUE if the created swapchain will utilize low latency mode, VK_FALSE otherwise. public VkBool32 latencyModeEnable; } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing_invocation_reorder/VkRayTracingInvocationReorderModeNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing_invocation_reorder/VkRayTracingInvocationReorderModeNV.cs index d21aa462..21b21872 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing_invocation_reorder/VkRayTracingInvocationReorderModeNV.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing_invocation_reorder/VkRayTracingInvocationReorderModeNV.cs @@ -23,13 +23,13 @@ namespace Exomia.Vulkan.Api.Core; public enum VkRayTracingInvocationReorderModeNV { /// - /// VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV indicates that the implementation is likely to not reorder at + /// VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV specifies that the implementation is likely to not reorder at /// reorder calls. /// VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0, /// - /// VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV indicates that the implementation is likely to reorder at + /// VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV specifies that the implementation is likely to reorder at /// reorder calls. /// VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_binary_import/VkCuModuleTexturingModeCreateInfoNVX.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_binary_import/VkCuModuleTexturingModeCreateInfoNVX.cs new file mode 100644 index 00000000..a4c8b93f --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_binary_import/VkCuModuleTexturingModeCreateInfoNVX.cs @@ -0,0 +1,63 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkCuModuleTexturingModeCreateInfoNVX - Stub description of VkCuModuleTexturingModeCreateInfoNVX - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCuModuleTexturingModeCreateInfoNVX.html +/// +/// +/// +/// +/// +/// structextendsVkCuModuleCreateInfoNVX +/// +/// +/// +[VkStructExtends("VkCuModuleCreateInfoNVX")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkCuModuleTexturingModeCreateInfoNVX +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX; + + /// + /// sType
+ /// + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkCuModuleTexturingModeCreateInfoNVX + /// + ///
+ public VkStructureType sType; + + /// + /// pNext
+ /// + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkCuModuleTexturingModeCreateInfoNVX + /// + ///
+ public void* pNext; + + /// + /// use64bitTexturing
+ /// + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkCuModuleTexturingModeCreateInfoNVX + /// + ///
+ public VkBool32 use64bitTexturing; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_binary_import/VkNvxBinaryImport.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_binary_import/VkNvxBinaryImport.cs index c19086aa..12817443 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_binary_import/VkNvxBinaryImport.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_binary_import/VkNvxBinaryImport.cs @@ -27,7 +27,7 @@ namespace Exomia.Vulkan.Api.Core; public static unsafe class VkNvxBinaryImport { /// The spec version. - public const uint VK_NVX_BINARY_IMPORT_SPEC_VERSION = 1; + public const uint VK_NVX_BINARY_IMPORT_SPEC_VERSION = 2; /// The extension name. public const string VK_NVX_BINARY_IMPORT_EXTENSION_NAME = "VK_NVX_binary_import"; diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_image_view_handle/VkNvxImageViewHandle.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_image_view_handle/VkNvxImageViewHandle.cs index 4e51591a..4ec0d957 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_image_view_handle/VkNvxImageViewHandle.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NVX/VK_NVX_image_view_handle/VkNvxImageViewHandle.cs @@ -27,7 +27,7 @@ namespace Exomia.Vulkan.Api.Core; public static unsafe class VkNvxImageViewHandle { /// The spec version. - public const uint VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION = 2; + public const uint VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION = 3; /// The extension name. public const string VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME = "VK_NVX_image_view_handle"; @@ -57,6 +57,17 @@ public static readonly delegate*< VkImageViewHandleInfoNVX* /*pInfo*/, uint> vkGetImageViewHandleNVX = null; + /// + /// vkGetImageViewHandle64NVX - Get the 64-bit handle for an image view for a specific descriptor type - + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageViewHandle64NVX.html + /// + /// device is the logical device that owns the image view. + /// pInfo describes the image view to query and type of handle. + public static readonly delegate*< + VkDevice /*device*/, + VkImageViewHandleInfoNVX* /*pInfo*/, + ulong> vkGetImageViewHandle64NVX = null; + /// /// vkGetImageViewAddressNVX - Get the device address of an image view - /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetImageViewAddressNVX.html @@ -89,6 +100,9 @@ public static readonly delegate*< /// vkGetImageViewHandleNVX /// /// + /// vkGetImageViewHandle64NVX + /// + /// /// vkGetImageViewAddressNVX /// /// @@ -100,6 +114,12 @@ public static void Load(VkDevice device) *pvkGetImageViewHandleNVX = (delegate*)GetVkFunction(device, "\u6b76\u6547\u4974\u616d\u6567\u6956\u7765\u6148\u646e\u656c\u564e\u0058"); } + fixed (delegate** pvkGetImageViewHandle64NVX = &vkGetImageViewHandle64NVX) + { + *pvkGetImageViewHandle64NVX = (delegate*)GetVkFunction( + device, "\u6b76\u6547\u4974\u616d\u6567\u6956\u7765\u6148\u646e\u656c\u3436\u564e\u0058"); + } + fixed (delegate** pvkGetImageViewAddressNVX = &vkGetImageViewAddressNVX) { *pvkGetImageViewAddressNVX = (delegate*)GetVkFunction( diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkClearAttachment.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkClearAttachment.cs index 740e8b1a..60797613 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkClearAttachment.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkClearAttachment.cs @@ -25,7 +25,7 @@ public struct VkClearAttachment /// /// colorAttachment is only meaningful if VK_IMAGE_ASPECT_COLOR_BIT is set in aspectMask, in which case it is an - /// index into the currently bound color attachments. + /// index into the bound color attachments. /// public uint colorAttachment; diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs index 54866345..f8629c12 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs @@ -85,8 +85,8 @@ public unsafe struct VkGraphicsPipelineCreateInfo /// pMultisampleState is a pointer to a VkPipelineMultisampleStateCreateInfo structure defining multisample state /// used when rasterization is enabled. If the VK_EXT_extended_dynamic_state3 extension is enabled, it can be NULL if /// the pipeline is created with all of VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, - /// and VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states set, and either alphaToOne is disabled on the - /// device or VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is set, in which case + /// and VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states set, and either the alphaToOne feature is not + /// enabled or VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is set, in which case /// VkPipelineMultisampleStateCreateInfo::sampleShadingEnable is assumed to be VK_FALSE. /// public VkPipelineMultisampleStateCreateInfo* pMultisampleState; diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceLimits.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceLimits.cs index 4f66d8ce..495a7843 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceLimits.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceLimits.cs @@ -555,12 +555,12 @@ public struct VkPhysicalDeviceLimits /// /// minTexelBufferOffsetAlignment is the minimum required alignment, in bytes, for the offset member of the - /// VkBufferViewCreateInfo structure for texel buffers. The value must be a power of two. If texelBufferAlignment is - /// enabled, this limit is equivalent to the maximum of the uniformTexelBufferOffsetAlignmentBytes and - /// storageTexelBufferOffsetAlignmentBytes members of VkPhysicalDeviceTexelBufferAlignmentProperties, but smaller - /// alignment is optionally allowed by storageTexelBufferOffsetSingleTexelAlignment and - /// uniformTexelBufferOffsetSingleTexelAlignment. If texelBufferAlignment is not enabled, - /// VkBufferViewCreateInfo::offset must be a multiple of this value. + /// VkBufferViewCreateInfo structure for texel buffers. The value must be a power of two. If the + /// texelBufferAlignmentfeature is enabled, this limit is equivalent to the maximum of the + /// uniformTexelBufferOffsetAlignmentBytes and storageTexelBufferOffsetAlignmentBytes members of + /// VkPhysicalDeviceTexelBufferAlignmentProperties, but smaller alignment is optionally allowed by + /// storageTexelBufferOffsetSingleTexelAlignment and uniformTexelBufferOffsetSingleTexelAlignment. If the + /// texelBufferAlignmentfeature is not enabled, VkBufferViewCreateInfo::offset must be a multiple of this value. /// public VkDeviceSize minTexelBufferOffsetAlignment; diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs index 520da1f3..8fd86113 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs @@ -109,9 +109,9 @@ public unsafe struct VkPhysicalDeviceVulkan12Features /// /// descriptorIndexing indicates whether the implementation supports the minimum set of descriptor indexing - /// features as described in the Feature Requirements section. Enabling the descriptorIndexing member when - /// vkCreateDeviceis called does not imply the other minimum descriptor indexing features are also enabled. Those other - /// descriptor indexing features must be enabled individually as needed by the application. + /// features as described in the Feature Requirements section. Enabling this feature when vkCreateDevice is called does + /// not imply the other minimum descriptor indexing features are also enabled. Those other descriptor indexing features + /// must be enabled individually as needed by the application. /// public VkBool32 descriptorIndexing; diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineColorBlendStateCreateInfo.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineColorBlendStateCreateInfo.cs index ba0f854c..3674dd80 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineColorBlendStateCreateInfo.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineColorBlendStateCreateInfo.cs @@ -49,7 +49,7 @@ public unsafe struct VkPipelineColorBlendStateCreateInfo /// attachmentCount is the number of VkPipelineColorBlendAttachmentState elements in pAttachments. It is ignored /// if the pipeline is created with VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, /// and VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic states set, and either VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT - /// set or advancedBlendCoherentOperationsis not enabled on the device. + /// set or the advancedBlendCoherentOperationsfeature is not enabled. ///
public uint attachmentCount; @@ -57,7 +57,7 @@ public unsafe struct VkPipelineColorBlendStateCreateInfo /// pAttachments is a pointer to an array of VkPipelineColorBlendAttachmentState structures defining blend state /// for each color attachment. It is ignored if the pipeline is created with VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, /// VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, and VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic states set, and either - /// VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT set or advancedBlendCoherentOperationsis not enabled on the device. + /// VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT set or the advancedBlendCoherentOperationsfeature is not enabled. ///
public VkPipelineColorBlendAttachmentState* pAttachments; diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorPrimaries.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorPrimaries.cs index 0c52ba58..c37f5958 100644 --- a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorPrimaries.cs +++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std/StdVideoAV1ColorPrimaries.cs @@ -19,7 +19,7 @@ namespace Exomia.Vulkan.Api.Core; public enum StdVideoAV1ColorPrimaries { STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1, - STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = 2, + STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED = 2, STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4, STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5, STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6, @@ -30,5 +30,6 @@ public enum StdVideoAV1ColorPrimaries STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431 = 11, STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12, STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22, - STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF + STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1DecoderModelInfo.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1DecoderModelInfo.cs new file mode 100644 index 00000000..ab8cef8e --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1DecoderModelInfo.cs @@ -0,0 +1,31 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable IdentifierTypo +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +[StructLayout(LayoutKind.Sequential)] +public struct StdVideoEncodeAV1DecoderModelInfo +{ + public byte buffer_delay_length_minus_1; + + public byte buffer_removal_time_length_minus_1; + + public byte frame_presentation_time_length_minus_1; + + public byte reserved1; + + public uint num_units_in_decoding_tick; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ExtensionHeader.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ExtensionHeader.cs new file mode 100644 index 00000000..fc58b8fb --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ExtensionHeader.cs @@ -0,0 +1,25 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable IdentifierTypo +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +[StructLayout(LayoutKind.Sequential)] +public struct StdVideoEncodeAV1ExtensionHeader +{ + public byte temporal_id; + + public byte spatial_id; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1OperatingPointInfo.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1OperatingPointInfo.cs new file mode 100644 index 00000000..5eb408bf --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1OperatingPointInfo.cs @@ -0,0 +1,35 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable IdentifierTypo +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +[StructLayout(LayoutKind.Sequential)] +public struct StdVideoEncodeAV1OperatingPointInfo +{ + public StdVideoEncodeAV1OperatingPointInfoFlags flags; + + public ushort operating_point_idc; + + public byte seq_level_idx; + + public byte seq_tier; + + public uint decoder_buffer_delay; + + public uint encoder_buffer_delay; + + public byte initial_display_delay_minus_1; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1OperatingPointInfoFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1OperatingPointInfoFlags.cs new file mode 100644 index 00000000..7f2c54e1 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1OperatingPointInfoFlags.cs @@ -0,0 +1,47 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable IdentifierTypo +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +[StructLayout(LayoutKind.Sequential)] +public struct StdVideoEncodeAV1OperatingPointInfoFlags +{ + private uint _bitfield1; + + public uint decoder_model_present_for_this_op + { + get { return (uint)((_bitfield1 >> 0) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); } + } + + public uint low_delay_mode_flag + { + get { return (uint)((_bitfield1 >> 1) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFFD) | (((uint)value & 0x00000001) << 1); } + } + + public uint initial_display_delay_present_for_this_op + { + get { return (uint)((_bitfield1 >> 2) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFFB) | (((uint)value & 0x00000001) << 2); } + } + + public uint reserved + { + get { return (uint)((_bitfield1 >> 3) & 0x1FFFFFFF); } + set { _bitfield1 = (_bitfield1 & 0x00000007) | (((uint)value & 0x1FFFFFFF) << 3); } + } +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1PictureInfo.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1PictureInfo.cs new file mode 100644 index 00000000..41d22c4f --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1PictureInfo.cs @@ -0,0 +1,75 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable IdentifierTypo +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +[StructLayout(LayoutKind.Sequential)] +public unsafe struct StdVideoEncodeAV1PictureInfo +{ + public StdVideoEncodeAV1PictureInfoFlags flags; + + public StdVideoAV1FrameType frame_type; + + public uint frame_presentation_time; + + public uint current_frame_id; + + public byte order_hint; + + public byte primary_ref_frame; + + public byte refresh_frame_flags; + + public byte coded_denom; + + public ushort render_width_minus_1; + + public ushort render_height_minus_1; + + public StdVideoAV1InterpolationFilter interpolation_filter; + + public StdVideoAV1TxMode TxMode; + + public byte delta_q_res; + + public byte delta_lf_res; + + public fixed byte ref_order_hint[(int)STD_VIDEO_AV1_NUM_REF_FRAMES]; + + public fixed sbyte ref_frame_idx[(int)STD_VIDEO_AV1_REFS_PER_FRAME]; + + public VkArray3 reserved1; + + public fixed uint delta_frame_id_minus_1[(int)STD_VIDEO_AV1_REFS_PER_FRAME]; + + public StdVideoAV1TileInfo* pTileInfo; + + public StdVideoAV1Quantization* pQuantization; + + public StdVideoAV1Segmentation* pSegmentation; + + public StdVideoAV1LoopFilter* pLoopFilter; + + public StdVideoAV1CDEF* pCDEF; + + public StdVideoAV1LoopRestoration* pLoopRestoration; + + public StdVideoAV1GlobalMotion* pGlobalMotion; + + public StdVideoEncodeAV1ExtensionHeader* pExtensionHeader; + + public uint* pBufferRemovalTimes; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1PictureInfoFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1PictureInfoFlags.cs new file mode 100644 index 00000000..74499116 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1PictureInfoFlags.cs @@ -0,0 +1,203 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable IdentifierTypo +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +[StructLayout(LayoutKind.Sequential)] +public struct StdVideoEncodeAV1PictureInfoFlags +{ + private uint _bitfield1; + + public uint error_resilient_mode + { + get { return (uint)((_bitfield1 >> 0) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); } + } + + public uint disable_cdf_update + { + get { return (uint)((_bitfield1 >> 1) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFFD) | (((uint)value & 0x00000001) << 1); } + } + + public uint use_superres + { + get { return (uint)((_bitfield1 >> 2) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFFB) | (((uint)value & 0x00000001) << 2); } + } + + public uint render_and_frame_size_different + { + get { return (uint)((_bitfield1 >> 3) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFF7) | (((uint)value & 0x00000001) << 3); } + } + + public uint allow_screen_content_tools + { + get { return (uint)((_bitfield1 >> 4) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFEF) | (((uint)value & 0x00000001) << 4); } + } + + public uint is_filter_switchable + { + get { return (uint)((_bitfield1 >> 5) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFDF) | (((uint)value & 0x00000001) << 5); } + } + + public uint force_integer_mv + { + get { return (uint)((_bitfield1 >> 6) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFBF) | (((uint)value & 0x00000001) << 6); } + } + + public uint frame_size_override_flag + { + get { return (uint)((_bitfield1 >> 7) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFF7F) | (((uint)value & 0x00000001) << 7); } + } + + public uint buffer_removal_time_present_flag + { + get { return (uint)((_bitfield1 >> 8) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFEFF) | (((uint)value & 0x00000001) << 8); } + } + + public uint allow_intrabc + { + get { return (uint)((_bitfield1 >> 9) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFDFF) | (((uint)value & 0x00000001) << 9); } + } + + public uint frame_refs_short_signaling + { + get { return (uint)((_bitfield1 >> 10) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFBFF) | (((uint)value & 0x00000001) << 10); } + } + + public uint allow_high_precision_mv + { + get { return (uint)((_bitfield1 >> 11) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFF7FF) | (((uint)value & 0x00000001) << 11); } + } + + public uint is_motion_mode_switchable + { + get { return (uint)((_bitfield1 >> 12) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFEFFF) | (((uint)value & 0x00000001) << 12); } + } + + public uint use_ref_frame_mvs + { + get { return (uint)((_bitfield1 >> 13) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFDFFF) | (((uint)value & 0x00000001) << 13); } + } + + public uint disable_frame_end_update_cdf + { + get { return (uint)((_bitfield1 >> 14) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFBFFF) | (((uint)value & 0x00000001) << 14); } + } + + public uint allow_warped_motion + { + get { return (uint)((_bitfield1 >> 15) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFF7FFF) | (((uint)value & 0x00000001) << 15); } + } + + public uint reduced_tx_set + { + get { return (uint)((_bitfield1 >> 16) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFEFFFF) | (((uint)value & 0x00000001) << 16); } + } + + public uint skip_mode_present + { + get { return (uint)((_bitfield1 >> 17) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFDFFFF) | (((uint)value & 0x00000001) << 17); } + } + + public uint delta_q_present + { + get { return (uint)((_bitfield1 >> 18) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFBFFFF) | (((uint)value & 0x00000001) << 18); } + } + + public uint delta_lf_present + { + get { return (uint)((_bitfield1 >> 19) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFF7FFFF) | (((uint)value & 0x00000001) << 19); } + } + + public uint delta_lf_multi + { + get { return (uint)((_bitfield1 >> 20) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFEFFFFF) | (((uint)value & 0x00000001) << 20); } + } + + public uint segmentation_enabled + { + get { return (uint)((_bitfield1 >> 21) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFDFFFFF) | (((uint)value & 0x00000001) << 21); } + } + + public uint segmentation_update_map + { + get { return (uint)((_bitfield1 >> 22) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFBFFFFF) | (((uint)value & 0x00000001) << 22); } + } + + public uint segmentation_temporal_update + { + get { return (uint)((_bitfield1 >> 23) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFF7FFFFF) | (((uint)value & 0x00000001) << 23); } + } + + public uint segmentation_update_data + { + get { return (uint)((_bitfield1 >> 24) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFEFFFFFF) | (((uint)value & 0x00000001) << 24); } + } + + public uint UsesLr + { + get { return (uint)((_bitfield1 >> 25) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFDFFFFFF) | (((uint)value & 0x00000001) << 25); } + } + + public uint usesChromaLr + { + get { return (uint)((_bitfield1 >> 26) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFBFFFFFF) | (((uint)value & 0x00000001) << 26); } + } + + public uint show_frame + { + get { return (uint)((_bitfield1 >> 27) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xF7FFFFFF) | (((uint)value & 0x00000001) << 27); } + } + + public uint showable_frame + { + get { return (uint)((_bitfield1 >> 28) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xEFFFFFFF) | (((uint)value & 0x00000001) << 28); } + } + + public uint reserved + { + get { return (uint)((_bitfield1 >> 29) & 0x00000007); } + set { _bitfield1 = (_bitfield1 & 0x1FFFFFFF) | (((uint)value & 0x00000007) << 29); } + } +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ReferenceInfo.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ReferenceInfo.cs new file mode 100644 index 00000000..966a1a18 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ReferenceInfo.cs @@ -0,0 +1,33 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable IdentifierTypo +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +[StructLayout(LayoutKind.Sequential)] +public unsafe struct StdVideoEncodeAV1ReferenceInfo +{ + public StdVideoEncodeAV1ReferenceInfoFlags flags; + + public uint RefFrameId; + + public StdVideoAV1FrameType frame_type; + + public byte OrderHint; + + public VkArray3 reserved1; + + public StdVideoEncodeAV1ExtensionHeader* pExtensionHeader; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ReferenceInfoFlags.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ReferenceInfoFlags.cs new file mode 100644 index 00000000..de79ba7f --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/StdVideoEncodeAV1ReferenceInfoFlags.cs @@ -0,0 +1,41 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable IdentifierTypo +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +[StructLayout(LayoutKind.Sequential)] +public struct StdVideoEncodeAV1ReferenceInfoFlags +{ + private uint _bitfield1; + + public uint disable_frame_end_update_cdf + { + get { return (uint)((_bitfield1 >> 0) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFFE) | (((uint)value & 0x00000001) << 0); } + } + + public uint segmentation_enabled + { + get { return (uint)((_bitfield1 >> 1) & 0x00000001); } + set { _bitfield1 = (_bitfield1 & 0xFFFFFFFD) | (((uint)value & 0x00000001) << 1); } + } + + public uint reserved + { + get { return (uint)((_bitfield1 >> 2) & 0x3FFFFFFF); } + set { _bitfield1 = (_bitfield1 & 0x00000003) | (((uint)value & 0x3FFFFFFF) << 2); } + } +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/VulkanVideoCodecAv1stdEncode.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/VulkanVideoCodecAv1stdEncode.cs new file mode 100644 index 00000000..e88dfa55 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/VulkanVideoCodecAv1stdEncode.cs @@ -0,0 +1,43 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +global using static Exomia.Vulkan.Api.Core.VulkanVideoCodecAv1stdEncode; + +#pragma warning disable CA2211 // Non-constant fields should not be visible +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +public static class VulkanVideoCodecAv1stdEncode +{ + /// The spec version. + public const uint VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0; + + /// The extension name. + public const string VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_av1_encode"; + + /// + /// An UTF8 null terminated version of + /// represented by an UTF16 string. + /// + /// + /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_EXTENSION_NAME_UTF8_NT) {
+ /// sbyte* utf8NtPtr = (sbyte*)ptr; // utf8NtPtr - can now be passed and used directly as a utf8_nt string for + /// unmanaged code.
+ /// } + ///
+ public const string VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_EXTENSION_NAME_UTF8_NT = + "\u4b56\u535f\u4454\u565f\u4c55\u414b\u5f4e\u4956\u4544\u5f4f\u4f43\u4544\u5f43\u5641\u5f31\u4e45\u4f43\u4544\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045"; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/VulkanVideoCodecAv1stdEncode.defines.cs b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/VulkanVideoCodecAv1stdEncode.defines.cs new file mode 100644 index 00000000..6b1a15c8 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/vk_video/vulkan_video_codec_av1std_encode/VulkanVideoCodecAv1stdEncode.defines.cs @@ -0,0 +1,21 @@ +#region License + +// Copyright (c) 2018-2024, exomia +// All rights reserved. +// +// This source code is licensed under the BSD-style license found in the +// LICENSE file in the root directory of this source tree. + +#endregion + +global using static Exomia.Vulkan.Api.Core.VulkanVideoCodecAv1stdEncodeDefines; + +// ReSharper disable ShiftExpressionZeroLeftOperand +namespace Exomia.Vulkan.Api.Core; + +/// The VulkanVideoCodecAv1stdEncodeDefines class. +public static class VulkanVideoCodecAv1stdEncodeDefines +{ + /// The VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0. + public const uint VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0 = (1 << 22) | (0 << 12) | 0; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkExportMetalObjectTypeFlagBitsEXT.cs b/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkExportMetalObjectTypeFlagBitsEXT.cs index 4fcb128f..ec3b2421 100644 --- a/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkExportMetalObjectTypeFlagBitsEXT.cs +++ b/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkExportMetalObjectTypeFlagBitsEXT.cs @@ -24,21 +24,24 @@ namespace Exomia.Vulkan.Api.Metal; [Flags] public enum VkExportMetalObjectTypeFlagBitsEXT { - /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT indicates a Metal MTLDevice may be exported. + /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT specifies that a Metal MTLDevice may be exported. VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 0x1, - /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT indicates a Metal MTLCommandQueue may be exported. + /// + /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT specifies that a Metal MTLCommandQueue may be + /// exported. + /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 0x2, - /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT indicates a Metal MTLBuffer may be exported. + /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT specifies that a Metal MTLBuffer may be exported. VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 0x4, - /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT indicates a Metal MTLTexture may be exported. + /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT specifies that a Metal MTLTexture may be exported. VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 0x8, - /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT indicates a Metal IOSurface may be exported. + /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT specifies that a Metal IOSurface may be exported. VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = 0x10, - /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT indicates a Metal MTLSharedEvent may be exported. + /// VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT specifies that a Metal MTLSharedEvent may be exported. VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = 0x20 } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkExportMetalTextureInfoEXT.cs b/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkExportMetalTextureInfoEXT.cs index 6de3705a..914e9e31 100644 --- a/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkExportMetalTextureInfoEXT.cs +++ b/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkExportMetalTextureInfoEXT.cs @@ -47,7 +47,7 @@ public unsafe struct VkExportMetalTextureInfoEXT /// bufferView is VK_NULL_HANDLE or a VkBufferView. public VkBufferView bufferView; - /// plane indicates the plane of a multi-planar VkImage or VkImageView. + /// plane specifies the plane of a multi-planar VkImage or VkImageView. public VkImageAspectFlagBits plane; /// diff --git a/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkImportMetalTextureInfoEXT.cs b/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkImportMetalTextureInfoEXT.cs index 15bb174c..2f9c57b9 100644 --- a/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkImportMetalTextureInfoEXT.cs +++ b/src/Exomia.Vulkan.Api.Metal/Extensions/EXT/VK_EXT_metal_objects/VkImportMetalTextureInfoEXT.cs @@ -38,7 +38,7 @@ public unsafe struct VkImportMetalTextureInfoEXT /// pNext is NULL or a pointer to a structure extending this structure. public void* pNext; - /// plane indicates the plane of the VkImage that the id<MTLTexture> object should be attached to. + /// plane specifies the plane of the VkImage that the id<MTLTexture> object should be attached to. public VkImageAspectFlagBits plane; /// mtlTexture is a the Metal id<MTLTexture> object that is to underlie the VkImage plane. diff --git a/src/Exomia.Vulkan.Api.Win32/Extensions/EXT/VK_EXT_full_screen_exclusive/VkFullScreenExclusiveEXT.cs b/src/Exomia.Vulkan.Api.Win32/Extensions/EXT/VK_EXT_full_screen_exclusive/VkFullScreenExclusiveEXT.cs index e2f34be3..421e3395 100644 --- a/src/Exomia.Vulkan.Api.Win32/Extensions/EXT/VK_EXT_full_screen_exclusive/VkFullScreenExclusiveEXT.cs +++ b/src/Exomia.Vulkan.Api.Win32/Extensions/EXT/VK_EXT_full_screen_exclusive/VkFullScreenExclusiveEXT.cs @@ -20,28 +20,28 @@ namespace Exomia.Vulkan.Api.Win32; public enum VkFullScreenExclusiveEXT { /// - /// VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT indicates the implementation should determine the appropriate full-screen - /// method by whatever means it deems appropriate. + /// VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT specifies that the implementation should determine the appropriate + /// full-screen method by whatever means it deems appropriate. /// VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0, /// - /// VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT indicates the implementation may use full-screen exclusive mechanisms - /// when available. Such mechanisms may result in better performance and/or the availability of different presentation - /// capabilities, but may require a more disruptive transition during swapchain initialization, first presentation - /// and/or destruction. + /// VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT specifies that the implementation may use full-screen exclusive + /// mechanisms when available. Such mechanisms may result in better performance and/or the availability of different + /// presentation capabilities, but may require a more disruptive transition during swapchain initialization, first + /// presentation and/or destruction. /// VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1, /// - /// VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT indicates the implementation should avoid using full-screen mechanisms - /// which rely on disruptive transitions. + /// VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT specifies that the implementation should avoid using full-screen + /// mechanisms which rely on disruptive transitions. /// VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2, /// - /// VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT indicates the application will manage full-screen exclusive - /// mode by using the + /// VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT specifies that the application will manage full-screen + /// exclusive mode by using the /// /// vkAcquireFullScreenExclusiveModeEXT