| #ifndef VULKAN_BETA_H_ | |
| #define VULKAN_BETA_H_ 1 | |
| /* | |
| ** Copyright 2015-2022 The Khronos Group Inc. | |
| ** | |
| ** SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| /* | |
| ** This header is generated from the Khronos Vulkan XML API Registry. | |
| ** | |
| */ | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| #define VK_KHR_portability_subset 1 | |
| #define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1 | |
| #define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset" | |
| typedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR { | |
| VkStructureType sType; | |
| void* pNext; | |
| VkBool32 constantAlphaColorBlendFactors; | |
| VkBool32 events; | |
| VkBool32 imageViewFormatReinterpretation; | |
| VkBool32 imageViewFormatSwizzle; | |
| VkBool32 imageView2DOn3DImage; | |
| VkBool32 multisampleArrayImage; | |
| VkBool32 mutableComparisonSamplers; | |
| VkBool32 pointPolygons; | |
| VkBool32 samplerMipLodBias; | |
| VkBool32 separateStencilMaskRef; | |
| VkBool32 shaderSampleRateInterpolationFunctions; | |
| VkBool32 tessellationIsolines; | |
| VkBool32 tessellationPointMode; | |
| VkBool32 triangleFans; | |
| VkBool32 vertexAttributeAccessBeyondStride; | |
| } VkPhysicalDevicePortabilitySubsetFeaturesKHR; | |
| typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { | |
| VkStructureType sType; | |
| void* pNext; | |
| uint32_t minVertexInputBindingStrideAlignment; | |
| } VkPhysicalDevicePortabilitySubsetPropertiesKHR; | |
| #define VK_KHR_video_encode_queue 1 | |
| #define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 7 | |
| #define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue" | |
| typedef enum VkVideoEncodeTuningModeKHR { | |
| VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0, | |
| VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1, | |
| VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2, | |
| VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3, | |
| VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4, | |
| VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF | |
| } VkVideoEncodeTuningModeKHR; | |
| typedef VkFlags VkVideoEncodeFlagsKHR; | |
| typedef enum VkVideoEncodeCapabilityFlagBitsKHR { | |
| VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001, | |
| VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | |
| } VkVideoEncodeCapabilityFlagBitsKHR; | |
| typedef VkFlags VkVideoEncodeCapabilityFlagsKHR; | |
| typedef enum VkVideoEncodeRateControlModeFlagBitsKHR { | |
| VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0, | |
| VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 1, | |
| VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 2, | |
| VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | |
| } VkVideoEncodeRateControlModeFlagBitsKHR; | |
| typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; | |
| typedef enum VkVideoEncodeUsageFlagBitsKHR { | |
| VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0, | |
| VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001, | |
| VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002, | |
| VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004, | |
| VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008, | |
| VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | |
| } VkVideoEncodeUsageFlagBitsKHR; | |
| typedef VkFlags VkVideoEncodeUsageFlagsKHR; | |
| typedef enum VkVideoEncodeContentFlagBitsKHR { | |
| VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0, | |
| VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001, | |
| VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002, | |
| VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004, | |
| VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | |
| } VkVideoEncodeContentFlagBitsKHR; | |
| typedef VkFlags VkVideoEncodeContentFlagsKHR; | |
| typedef VkFlags VkVideoEncodeRateControlFlagsKHR; | |
| typedef struct VkVideoEncodeInfoKHR { | |
| VkStructureType sType; | |
| const void* pNext; | |
| VkVideoEncodeFlagsKHR flags; | |
| uint32_t qualityLevel; | |
| VkBuffer dstBitstreamBuffer; | |
| VkDeviceSize dstBitstreamBufferOffset; | |
| VkDeviceSize dstBitstreamBufferMaxRange; | |
| VkVideoPictureResourceInfoKHR srcPictureResource; | |
| const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot; | |
| uint32_t referenceSlotCount; | |
| const VkVideoReferenceSlotInfoKHR* pReferenceSlots; | |
| uint32_t precedingExternallyEncodedBytes; | |
| } VkVideoEncodeInfoKHR; | |
| typedef struct VkVideoEncodeCapabilitiesKHR { | |
| VkStructureType sType; | |
| void* pNext; | |
| VkVideoEncodeCapabilityFlagsKHR flags; | |
| VkVideoEncodeRateControlModeFlagsKHR rateControlModes; | |
| uint8_t rateControlLayerCount; | |
| uint8_t qualityLevelCount; | |
| VkExtent2D inputImageDataFillAlignment; | |
| } VkVideoEncodeCapabilitiesKHR; | |
| typedef struct VkVideoEncodeUsageInfoKHR { | |
| VkStructureType sType; | |
| const void* pNext; | |
| VkVideoEncodeUsageFlagsKHR videoUsageHints; | |
| VkVideoEncodeContentFlagsKHR videoContentHints; | |
| VkVideoEncodeTuningModeKHR tuningMode; | |
| } VkVideoEncodeUsageInfoKHR; | |
| typedef struct VkVideoEncodeRateControlLayerInfoKHR { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint32_t averageBitrate; | |
| uint32_t maxBitrate; | |
| uint32_t frameRateNumerator; | |
| uint32_t frameRateDenominator; | |
| uint32_t virtualBufferSizeInMs; | |
| uint32_t initialVirtualBufferSizeInMs; | |
| } VkVideoEncodeRateControlLayerInfoKHR; | |
| typedef struct VkVideoEncodeRateControlInfoKHR { | |
| VkStructureType sType; | |
| const void* pNext; | |
| VkVideoEncodeRateControlFlagsKHR flags; | |
| VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode; | |
| uint8_t layerCount; | |
| const VkVideoEncodeRateControlLayerInfoKHR* pLayerConfigs; | |
| } VkVideoEncodeRateControlInfoKHR; | |
| typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo); | |
| #ifndef VK_NO_PROTOTYPES | |
| VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR( | |
| VkCommandBuffer commandBuffer, | |
| const VkVideoEncodeInfoKHR* pEncodeInfo); | |
| #endif | |
| #define VK_EXT_video_encode_h264 1 | |
| #include "vk_video/vulkan_video_codec_h264std.h" | |
| #include "vk_video/vulkan_video_codec_h264std_encode.h" | |
| #define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 9 | |
| #define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264" | |
| typedef enum VkVideoEncodeH264RateControlStructureEXT { | |
| VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0, | |
| VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1, | |
| VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2, | |
| VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_MAX_ENUM_EXT = 0x7FFFFFFF | |
| } VkVideoEncodeH264RateControlStructureEXT; | |
| typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT { | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT = 0x00000001, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT = 0x00000002, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000004, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT = 0x00000008, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000010, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000020, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000040, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000080, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT = 0x00000100, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0x00000200, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT = 0x00000400, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT = 0x00000800, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0x00001000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00002000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00004000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00008000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00010000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00020000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00040000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT = 0x00080000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00100000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT = 0x00200000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = 0x00400000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x00800000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0x01000000, | |
| VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | |
| } VkVideoEncodeH264CapabilityFlagBitsEXT; | |
| typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT; | |
| typedef enum VkVideoEncodeH264InputModeFlagBitsEXT { | |
| VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0x00000001, | |
| VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0x00000002, | |
| VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, | |
| VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | |
| } VkVideoEncodeH264InputModeFlagBitsEXT; | |
| typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT; | |
| typedef enum VkVideoEncodeH264OutputModeFlagBitsEXT { | |
| VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001, | |
| VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0x00000002, | |
| VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, | |
| VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | |
| } VkVideoEncodeH264OutputModeFlagBitsEXT; | |
| typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT; | |
| typedef struct VkVideoEncodeH264CapabilitiesEXT { | |
| VkStructureType sType; | |
| void* pNext; | |
| VkVideoEncodeH264CapabilityFlagsEXT flags; | |
| VkVideoEncodeH264InputModeFlagsEXT inputModeFlags; | |
| VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags; | |
| uint8_t maxPPictureL0ReferenceCount; | |
| uint8_t maxBPictureL0ReferenceCount; | |
| uint8_t maxL1ReferenceCount; | |
| VkBool32 motionVectorsOverPicBoundariesFlag; | |
| uint32_t maxBytesPerPicDenom; | |
| uint32_t maxBitsPerMbDenom; | |
| uint32_t log2MaxMvLengthHorizontal; | |
| uint32_t log2MaxMvLengthVertical; | |
| } VkVideoEncodeH264CapabilitiesEXT; | |
| typedef struct VkVideoEncodeH264SessionParametersAddInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint32_t stdSPSCount; | |
| const StdVideoH264SequenceParameterSet* pStdSPSs; | |
| uint32_t stdPPSCount; | |
| const StdVideoH264PictureParameterSet* pStdPPSs; | |
| } VkVideoEncodeH264SessionParametersAddInfoEXT; | |
| typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint32_t maxStdSPSCount; | |
| uint32_t maxStdPPSCount; | |
| const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo; | |
| } VkVideoEncodeH264SessionParametersCreateInfoEXT; | |
| typedef struct VkVideoEncodeH264DpbSlotInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| int8_t slotIndex; | |
| const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo; | |
| } VkVideoEncodeH264DpbSlotInfoEXT; | |
| typedef struct VkVideoEncodeH264ReferenceListsInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint8_t referenceList0EntryCount; | |
| const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList0Entries; | |
| uint8_t referenceList1EntryCount; | |
| const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries; | |
| const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations; | |
| } VkVideoEncodeH264ReferenceListsInfoEXT; | |
| typedef struct VkVideoEncodeH264NaluSliceInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint32_t mbCount; | |
| const VkVideoEncodeH264ReferenceListsInfoEXT* pReferenceFinalLists; | |
| const StdVideoEncodeH264SliceHeader* pSliceHeaderStd; | |
| } VkVideoEncodeH264NaluSliceInfoEXT; | |
| typedef struct VkVideoEncodeH264VclFrameInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| const VkVideoEncodeH264ReferenceListsInfoEXT* pReferenceFinalLists; | |
| uint32_t naluSliceEntryCount; | |
| const VkVideoEncodeH264NaluSliceInfoEXT* pNaluSliceEntries; | |
| const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo; | |
| } VkVideoEncodeH264VclFrameInfoEXT; | |
| typedef struct VkVideoEncodeH264EmitPictureParametersInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint8_t spsId; | |
| VkBool32 emitSpsEnable; | |
| uint32_t ppsIdEntryCount; | |
| const uint8_t* ppsIdEntries; | |
| } VkVideoEncodeH264EmitPictureParametersInfoEXT; | |
| typedef struct VkVideoEncodeH264ProfileInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| StdVideoH264ProfileIdc stdProfileIdc; | |
| } VkVideoEncodeH264ProfileInfoEXT; | |
| typedef struct VkVideoEncodeH264RateControlInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint32_t gopFrameCount; | |
| uint32_t idrPeriod; | |
| uint32_t consecutiveBFrameCount; | |
| VkVideoEncodeH264RateControlStructureEXT rateControlStructure; | |
| uint8_t temporalLayerCount; | |
| } VkVideoEncodeH264RateControlInfoEXT; | |
| typedef struct VkVideoEncodeH264QpEXT { | |
| int32_t qpI; | |
| int32_t qpP; | |
| int32_t qpB; | |
| } VkVideoEncodeH264QpEXT; | |
| typedef struct VkVideoEncodeH264FrameSizeEXT { | |
| uint32_t frameISize; | |
| uint32_t framePSize; | |
| uint32_t frameBSize; | |
| } VkVideoEncodeH264FrameSizeEXT; | |
| typedef struct VkVideoEncodeH264RateControlLayerInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint8_t temporalLayerId; | |
| VkBool32 useInitialRcQp; | |
| VkVideoEncodeH264QpEXT initialRcQp; | |
| VkBool32 useMinQp; | |
| VkVideoEncodeH264QpEXT minQp; | |
| VkBool32 useMaxQp; | |
| VkVideoEncodeH264QpEXT maxQp; | |
| VkBool32 useMaxFrameSize; | |
| VkVideoEncodeH264FrameSizeEXT maxFrameSize; | |
| } VkVideoEncodeH264RateControlLayerInfoEXT; | |
| #define VK_EXT_video_encode_h265 1 | |
| #include "vk_video/vulkan_video_codec_h265std.h" | |
| #include "vk_video/vulkan_video_codec_h265std_encode.h" | |
| #define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 9 | |
| #define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265" | |
| typedef enum VkVideoEncodeH265RateControlStructureEXT { | |
| VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0, | |
| VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1, | |
| VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2, | |
| VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_MAX_ENUM_EXT = 0x7FFFFFFF | |
| } VkVideoEncodeH265RateControlStructureEXT; | |
| typedef enum VkVideoEncodeH265CapabilityFlagBitsEXT { | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000001, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000002, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT = 0x00000004, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT = 0x00000008, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT = 0x00000010, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000020, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT = 0x00000040, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT = 0x00000080, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT = 0x00000100, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT = 0x00000200, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT = 0x00000400, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT = 0x00000800, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0x00001000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT = 0x00002000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0x00004000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT = 0x00008000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT = 0x00010000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT = 0x00020000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT = 0x00040000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT = 0x00080000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT = 0x00100000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT = 0x00200000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT = 0x00400000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT = 0x00800000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x01000000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0x02000000, | |
| VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | |
| } VkVideoEncodeH265CapabilityFlagBitsEXT; | |
| typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT; | |
| typedef enum VkVideoEncodeH265InputModeFlagBitsEXT { | |
| VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0x00000001, | |
| VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002, | |
| VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, | |
| VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | |
| } VkVideoEncodeH265InputModeFlagBitsEXT; | |
| typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT; | |
| typedef enum VkVideoEncodeH265OutputModeFlagBitsEXT { | |
| VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001, | |
| VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002, | |
| VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, | |
| VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | |
| } VkVideoEncodeH265OutputModeFlagBitsEXT; | |
| typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT; | |
| typedef enum VkVideoEncodeH265CtbSizeFlagBitsEXT { | |
| VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0x00000001, | |
| VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0x00000002, | |
| VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT = 0x00000004, | |
| VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | |
| } VkVideoEncodeH265CtbSizeFlagBitsEXT; | |
| typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT; | |
| typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsEXT { | |
| VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT = 0x00000001, | |
| VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT = 0x00000002, | |
| VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT = 0x00000004, | |
| VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT = 0x00000008, | |
| VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | |
| } VkVideoEncodeH265TransformBlockSizeFlagBitsEXT; | |
| typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT; | |
| typedef struct VkVideoEncodeH265CapabilitiesEXT { | |
| VkStructureType sType; | |
| void* pNext; | |
| VkVideoEncodeH265CapabilityFlagsEXT flags; | |
| VkVideoEncodeH265InputModeFlagsEXT inputModeFlags; | |
| VkVideoEncodeH265OutputModeFlagsEXT outputModeFlags; | |
| VkVideoEncodeH265CtbSizeFlagsEXT ctbSizes; | |
| VkVideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes; | |
| uint8_t maxPPictureL0ReferenceCount; | |
| uint8_t maxBPictureL0ReferenceCount; | |
| uint8_t maxL1ReferenceCount; | |
| uint8_t maxSubLayersCount; | |
| uint8_t minLog2MinLumaCodingBlockSizeMinus3; | |
| uint8_t maxLog2MinLumaCodingBlockSizeMinus3; | |
| uint8_t minLog2MinLumaTransformBlockSizeMinus2; | |
| uint8_t maxLog2MinLumaTransformBlockSizeMinus2; | |
| uint8_t minMaxTransformHierarchyDepthInter; | |
| uint8_t maxMaxTransformHierarchyDepthInter; | |
| uint8_t minMaxTransformHierarchyDepthIntra; | |
| uint8_t maxMaxTransformHierarchyDepthIntra; | |
| uint8_t maxDiffCuQpDeltaDepth; | |
| uint8_t minMaxNumMergeCand; | |
| uint8_t maxMaxNumMergeCand; | |
| } VkVideoEncodeH265CapabilitiesEXT; | |
| typedef struct VkVideoEncodeH265SessionParametersAddInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint32_t stdVPSCount; | |
| const StdVideoH265VideoParameterSet* pStdVPSs; | |
| uint32_t stdSPSCount; | |
| const StdVideoH265SequenceParameterSet* pStdSPSs; | |
| uint32_t stdPPSCount; | |
| const StdVideoH265PictureParameterSet* pStdPPSs; | |
| } VkVideoEncodeH265SessionParametersAddInfoEXT; | |
| typedef struct VkVideoEncodeH265SessionParametersCreateInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint32_t maxStdVPSCount; | |
| uint32_t maxStdSPSCount; | |
| uint32_t maxStdPPSCount; | |
| const VkVideoEncodeH265SessionParametersAddInfoEXT* pParametersAddInfo; | |
| } VkVideoEncodeH265SessionParametersCreateInfoEXT; | |
| typedef struct VkVideoEncodeH265DpbSlotInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| int8_t slotIndex; | |
| const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo; | |
| } VkVideoEncodeH265DpbSlotInfoEXT; | |
| typedef struct VkVideoEncodeH265ReferenceListsInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint8_t referenceList0EntryCount; | |
| const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList0Entries; | |
| uint8_t referenceList1EntryCount; | |
| const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList1Entries; | |
| const StdVideoEncodeH265ReferenceModifications* pReferenceModifications; | |
| } VkVideoEncodeH265ReferenceListsInfoEXT; | |
| typedef struct VkVideoEncodeH265NaluSliceSegmentInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint32_t ctbCount; | |
| const VkVideoEncodeH265ReferenceListsInfoEXT* pReferenceFinalLists; | |
| const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd; | |
| } VkVideoEncodeH265NaluSliceSegmentInfoEXT; | |
| typedef struct VkVideoEncodeH265VclFrameInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| const VkVideoEncodeH265ReferenceListsInfoEXT* pReferenceFinalLists; | |
| uint32_t naluSliceSegmentEntryCount; | |
| const VkVideoEncodeH265NaluSliceSegmentInfoEXT* pNaluSliceSegmentEntries; | |
| const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo; | |
| } VkVideoEncodeH265VclFrameInfoEXT; | |
| typedef struct VkVideoEncodeH265EmitPictureParametersInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint8_t vpsId; | |
| uint8_t spsId; | |
| VkBool32 emitVpsEnable; | |
| VkBool32 emitSpsEnable; | |
| uint32_t ppsIdEntryCount; | |
| const uint8_t* ppsIdEntries; | |
| } VkVideoEncodeH265EmitPictureParametersInfoEXT; | |
| typedef struct VkVideoEncodeH265ProfileInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| StdVideoH265ProfileIdc stdProfileIdc; | |
| } VkVideoEncodeH265ProfileInfoEXT; | |
| typedef struct VkVideoEncodeH265RateControlInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint32_t gopFrameCount; | |
| uint32_t idrPeriod; | |
| uint32_t consecutiveBFrameCount; | |
| VkVideoEncodeH265RateControlStructureEXT rateControlStructure; | |
| uint8_t subLayerCount; | |
| } VkVideoEncodeH265RateControlInfoEXT; | |
| typedef struct VkVideoEncodeH265QpEXT { | |
| int32_t qpI; | |
| int32_t qpP; | |
| int32_t qpB; | |
| } VkVideoEncodeH265QpEXT; | |
| typedef struct VkVideoEncodeH265FrameSizeEXT { | |
| uint32_t frameISize; | |
| uint32_t framePSize; | |
| uint32_t frameBSize; | |
| } VkVideoEncodeH265FrameSizeEXT; | |
| typedef struct VkVideoEncodeH265RateControlLayerInfoEXT { | |
| VkStructureType sType; | |
| const void* pNext; | |
| uint8_t temporalId; | |
| VkBool32 useInitialRcQp; | |
| VkVideoEncodeH265QpEXT initialRcQp; | |
| VkBool32 useMinQp; | |
| VkVideoEncodeH265QpEXT minQp; | |
| VkBool32 useMaxQp; | |
| VkVideoEncodeH265QpEXT maxQp; | |
| VkBool32 useMaxFrameSize; | |
| VkVideoEncodeH265FrameSizeEXT maxFrameSize; | |
| } VkVideoEncodeH265RateControlLayerInfoEXT; | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif |