Path: blob/21.2-virgl/include/vulkan/vulkan_beta.h
4545 views
#ifndef VULKAN_BETA_H_1#define VULKAN_BETA_H_ 123/*4** Copyright 2015-2021 The Khronos Group Inc.5**6** SPDX-License-Identifier: Apache-2.07*/89/*10** This header is generated from the Khronos Vulkan XML API Registry.11**12*/131415#ifdef __cplusplus16extern "C" {17#endif18192021#define VK_KHR_video_queue 122VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)23VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)24#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 125#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"2627typedef enum VkQueryResultStatusKHR {28VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,29VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,30VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,31VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF32} VkQueryResultStatusKHR;3334typedef enum VkVideoCodecOperationFlagBitsKHR {35VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR = 0,36#ifdef VK_ENABLE_BETA_EXTENSIONS37VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0x00010000,38#endif39#ifdef VK_ENABLE_BETA_EXTENSIONS40VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT = 0x00000001,41#endif42#ifdef VK_ENABLE_BETA_EXTENSIONS43VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT = 0x00000002,44#endif45VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF46} VkVideoCodecOperationFlagBitsKHR;47typedef VkFlags VkVideoCodecOperationFlagsKHR;4849typedef enum VkVideoChromaSubsamplingFlagBitsKHR {50VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR = 0,51VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,52VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,53VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,54VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,55VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF56} VkVideoChromaSubsamplingFlagBitsKHR;57typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;5859typedef enum VkVideoComponentBitDepthFlagBitsKHR {60VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,61VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,62VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,63VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,64VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF65} VkVideoComponentBitDepthFlagBitsKHR;66typedef VkFlags VkVideoComponentBitDepthFlagsKHR;6768typedef enum VkVideoCapabilitiesFlagBitsKHR {69VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR = 0x00000001,70VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,71VK_VIDEO_CAPABILITIES_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF72} VkVideoCapabilitiesFlagBitsKHR;73typedef VkFlags VkVideoCapabilitiesFlagsKHR;7475typedef enum VkVideoSessionCreateFlagBitsKHR {76VK_VIDEO_SESSION_CREATE_DEFAULT_KHR = 0,77VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,78VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF79} VkVideoSessionCreateFlagBitsKHR;80typedef VkFlags VkVideoSessionCreateFlagsKHR;81typedef VkFlags VkVideoBeginCodingFlagsKHR;82typedef VkFlags VkVideoEndCodingFlagsKHR;8384typedef enum VkVideoCodingControlFlagBitsKHR {85VK_VIDEO_CODING_CONTROL_DEFAULT_KHR = 0,86VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,87VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF88} VkVideoCodingControlFlagBitsKHR;89typedef VkFlags VkVideoCodingControlFlagsKHR;9091typedef enum VkVideoCodingQualityPresetFlagBitsKHR {92VK_VIDEO_CODING_QUALITY_PRESET_DEFAULT_BIT_KHR = 0,93VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR = 0x00000001,94VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR = 0x00000002,95VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR = 0x00000004,96VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF97} VkVideoCodingQualityPresetFlagBitsKHR;98typedef VkFlags VkVideoCodingQualityPresetFlagsKHR;99typedef struct VkVideoQueueFamilyProperties2KHR {100VkStructureType sType;101void* pNext;102VkVideoCodecOperationFlagsKHR videoCodecOperations;103} VkVideoQueueFamilyProperties2KHR;104105typedef struct VkVideoProfileKHR {106VkStructureType sType;107void* pNext;108VkVideoCodecOperationFlagBitsKHR videoCodecOperation;109VkVideoChromaSubsamplingFlagsKHR chromaSubsampling;110VkVideoComponentBitDepthFlagsKHR lumaBitDepth;111VkVideoComponentBitDepthFlagsKHR chromaBitDepth;112} VkVideoProfileKHR;113114typedef struct VkVideoProfilesKHR {115VkStructureType sType;116void* pNext;117uint32_t profileCount;118const VkVideoProfileKHR* pProfiles;119} VkVideoProfilesKHR;120121typedef struct VkVideoCapabilitiesKHR {122VkStructureType sType;123void* pNext;124VkVideoCapabilitiesFlagsKHR capabilityFlags;125VkDeviceSize minBitstreamBufferOffsetAlignment;126VkDeviceSize minBitstreamBufferSizeAlignment;127VkExtent2D videoPictureExtentGranularity;128VkExtent2D minExtent;129VkExtent2D maxExtent;130uint32_t maxReferencePicturesSlotsCount;131uint32_t maxReferencePicturesActiveCount;132} VkVideoCapabilitiesKHR;133134typedef struct VkPhysicalDeviceVideoFormatInfoKHR {135VkStructureType sType;136const void* pNext;137VkImageUsageFlags imageUsage;138const VkVideoProfilesKHR* pVideoProfiles;139} VkPhysicalDeviceVideoFormatInfoKHR;140141typedef struct VkVideoFormatPropertiesKHR {142VkStructureType sType;143void* pNext;144VkFormat format;145} VkVideoFormatPropertiesKHR;146147typedef struct VkVideoPictureResourceKHR {148VkStructureType sType;149const void* pNext;150VkOffset2D codedOffset;151VkExtent2D codedExtent;152uint32_t baseArrayLayer;153VkImageView imageViewBinding;154} VkVideoPictureResourceKHR;155156typedef struct VkVideoReferenceSlotKHR {157VkStructureType sType;158const void* pNext;159int8_t slotIndex;160const VkVideoPictureResourceKHR* pPictureResource;161} VkVideoReferenceSlotKHR;162163typedef struct VkVideoGetMemoryPropertiesKHR {164VkStructureType sType;165const void* pNext;166uint32_t memoryBindIndex;167VkMemoryRequirements2* pMemoryRequirements;168} VkVideoGetMemoryPropertiesKHR;169170typedef struct VkVideoBindMemoryKHR {171VkStructureType sType;172const void* pNext;173uint32_t memoryBindIndex;174VkDeviceMemory memory;175VkDeviceSize memoryOffset;176VkDeviceSize memorySize;177} VkVideoBindMemoryKHR;178179typedef struct VkVideoSessionCreateInfoKHR {180VkStructureType sType;181const void* pNext;182uint32_t queueFamilyIndex;183VkVideoSessionCreateFlagsKHR flags;184const VkVideoProfileKHR* pVideoProfile;185VkFormat pictureFormat;186VkExtent2D maxCodedExtent;187VkFormat referencePicturesFormat;188uint32_t maxReferencePicturesSlotsCount;189uint32_t maxReferencePicturesActiveCount;190} VkVideoSessionCreateInfoKHR;191192typedef struct VkVideoSessionParametersCreateInfoKHR {193VkStructureType sType;194const void* pNext;195VkVideoSessionParametersKHR videoSessionParametersTemplate;196VkVideoSessionKHR videoSession;197} VkVideoSessionParametersCreateInfoKHR;198199typedef struct VkVideoSessionParametersUpdateInfoKHR {200VkStructureType sType;201const void* pNext;202uint32_t updateSequenceCount;203} VkVideoSessionParametersUpdateInfoKHR;204205typedef struct VkVideoBeginCodingInfoKHR {206VkStructureType sType;207const void* pNext;208VkVideoBeginCodingFlagsKHR flags;209VkVideoCodingQualityPresetFlagsKHR codecQualityPreset;210VkVideoSessionKHR videoSession;211VkVideoSessionParametersKHR videoSessionParameters;212uint32_t referenceSlotCount;213const VkVideoReferenceSlotKHR* pReferenceSlots;214} VkVideoBeginCodingInfoKHR;215216typedef struct VkVideoEndCodingInfoKHR {217VkStructureType sType;218const void* pNext;219VkVideoEndCodingFlagsKHR flags;220} VkVideoEndCodingInfoKHR;221222typedef struct VkVideoCodingControlInfoKHR {223VkStructureType sType;224const void* pNext;225VkVideoCodingControlFlagsKHR flags;226} VkVideoCodingControlInfoKHR;227228typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);229typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);230typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);231typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);232typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements);233typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories);234typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);235typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);236typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);237typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);238typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);239typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);240241#ifndef VK_NO_PROTOTYPES242VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(243VkPhysicalDevice physicalDevice,244const VkVideoProfileKHR* pVideoProfile,245VkVideoCapabilitiesKHR* pCapabilities);246247VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(248VkPhysicalDevice physicalDevice,249const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,250uint32_t* pVideoFormatPropertyCount,251VkVideoFormatPropertiesKHR* pVideoFormatProperties);252253VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(254VkDevice device,255const VkVideoSessionCreateInfoKHR* pCreateInfo,256const VkAllocationCallbacks* pAllocator,257VkVideoSessionKHR* pVideoSession);258259VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(260VkDevice device,261VkVideoSessionKHR videoSession,262const VkAllocationCallbacks* pAllocator);263264VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(265VkDevice device,266VkVideoSessionKHR videoSession,267uint32_t* pVideoSessionMemoryRequirementsCount,268VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements);269270VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(271VkDevice device,272VkVideoSessionKHR videoSession,273uint32_t videoSessionBindMemoryCount,274const VkVideoBindMemoryKHR* pVideoSessionBindMemories);275276VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(277VkDevice device,278const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,279const VkAllocationCallbacks* pAllocator,280VkVideoSessionParametersKHR* pVideoSessionParameters);281282VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(283VkDevice device,284VkVideoSessionParametersKHR videoSessionParameters,285const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);286287VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(288VkDevice device,289VkVideoSessionParametersKHR videoSessionParameters,290const VkAllocationCallbacks* pAllocator);291292VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(293VkCommandBuffer commandBuffer,294const VkVideoBeginCodingInfoKHR* pBeginInfo);295296VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(297VkCommandBuffer commandBuffer,298const VkVideoEndCodingInfoKHR* pEndCodingInfo);299300VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(301VkCommandBuffer commandBuffer,302const VkVideoCodingControlInfoKHR* pCodingControlInfo);303#endif304305306#define VK_KHR_video_decode_queue 1307#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 1308#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"309310typedef enum VkVideoDecodeFlagBitsKHR {311VK_VIDEO_DECODE_DEFAULT_KHR = 0,312VK_VIDEO_DECODE_RESERVED_0_BIT_KHR = 0x00000001,313VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF314} VkVideoDecodeFlagBitsKHR;315typedef VkFlags VkVideoDecodeFlagsKHR;316typedef struct VkVideoDecodeInfoKHR {317VkStructureType sType;318const void* pNext;319VkVideoDecodeFlagsKHR flags;320VkOffset2D codedOffset;321VkExtent2D codedExtent;322VkBuffer srcBuffer;323VkDeviceSize srcBufferOffset;324VkDeviceSize srcBufferRange;325VkVideoPictureResourceKHR dstPictureResource;326const VkVideoReferenceSlotKHR* pSetupReferenceSlot;327uint32_t referenceSlotCount;328const VkVideoReferenceSlotKHR* pReferenceSlots;329} VkVideoDecodeInfoKHR;330331typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo);332333#ifndef VK_NO_PROTOTYPES334VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(335VkCommandBuffer commandBuffer,336const VkVideoDecodeInfoKHR* pFrameInfo);337#endif338339340#define VK_KHR_portability_subset 1341#define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1342#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset"343typedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR {344VkStructureType sType;345void* pNext;346VkBool32 constantAlphaColorBlendFactors;347VkBool32 events;348VkBool32 imageViewFormatReinterpretation;349VkBool32 imageViewFormatSwizzle;350VkBool32 imageView2DOn3DImage;351VkBool32 multisampleArrayImage;352VkBool32 mutableComparisonSamplers;353VkBool32 pointPolygons;354VkBool32 samplerMipLodBias;355VkBool32 separateStencilMaskRef;356VkBool32 shaderSampleRateInterpolationFunctions;357VkBool32 tessellationIsolines;358VkBool32 tessellationPointMode;359VkBool32 triangleFans;360VkBool32 vertexAttributeAccessBeyondStride;361} VkPhysicalDevicePortabilitySubsetFeaturesKHR;362363typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR {364VkStructureType sType;365void* pNext;366uint32_t minVertexInputBindingStrideAlignment;367} VkPhysicalDevicePortabilitySubsetPropertiesKHR;368369370371#define VK_KHR_video_encode_queue 1372#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 2373#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"374375typedef enum VkVideoEncodeFlagBitsKHR {376VK_VIDEO_ENCODE_DEFAULT_KHR = 0,377VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR = 0x00000001,378VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF379} VkVideoEncodeFlagBitsKHR;380typedef VkFlags VkVideoEncodeFlagsKHR;381382typedef enum VkVideoEncodeRateControlFlagBitsKHR {383VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR = 0,384VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR = 0x00000001,385VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF386} VkVideoEncodeRateControlFlagBitsKHR;387typedef VkFlags VkVideoEncodeRateControlFlagsKHR;388389typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {390VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0,391VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 1,392VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 2,393VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF394} VkVideoEncodeRateControlModeFlagBitsKHR;395typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;396typedef struct VkVideoEncodeInfoKHR {397VkStructureType sType;398const void* pNext;399VkVideoEncodeFlagsKHR flags;400uint32_t qualityLevel;401VkExtent2D codedExtent;402VkBuffer dstBitstreamBuffer;403VkDeviceSize dstBitstreamBufferOffset;404VkDeviceSize dstBitstreamBufferMaxRange;405VkVideoPictureResourceKHR srcPictureResource;406const VkVideoReferenceSlotKHR* pSetupReferenceSlot;407uint32_t referenceSlotCount;408const VkVideoReferenceSlotKHR* pReferenceSlots;409} VkVideoEncodeInfoKHR;410411typedef struct VkVideoEncodeRateControlInfoKHR {412VkStructureType sType;413const void* pNext;414VkVideoEncodeRateControlFlagsKHR flags;415VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;416uint32_t averageBitrate;417uint16_t peakToAverageBitrateRatio;418uint16_t frameRateNumerator;419uint16_t frameRateDenominator;420uint32_t virtualBufferSizeInMs;421} VkVideoEncodeRateControlInfoKHR;422423typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);424425#ifndef VK_NO_PROTOTYPES426VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(427VkCommandBuffer commandBuffer,428const VkVideoEncodeInfoKHR* pEncodeInfo);429#endif430431432#define VK_EXT_video_encode_h264 1433#include "vk_video/vulkan_video_codec_h264std.h"434#include "vk_video/vulkan_video_codec_h264std_encode.h"435#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 1436#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264"437438typedef enum VkVideoEncodeH264CapabilitiesFlagBitsEXT {439VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00000001,440VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00000002,441VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT = 0x00000004,442VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00000008,443VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000010,444VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000020,445VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00000040,446VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00000080,447VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00000100,448VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00000200,449VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT = 0x00000400,450VK_VIDEO_ENCODE_H264_CAPABILITIES_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF451} VkVideoEncodeH264CapabilitiesFlagBitsEXT;452typedef VkFlags VkVideoEncodeH264CapabilitiesFlagsEXT;453454typedef enum VkVideoEncodeH264InputModeFlagBitsEXT {455VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0x00000001,456VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0x00000002,457VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,458VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF459} VkVideoEncodeH264InputModeFlagBitsEXT;460typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT;461462typedef enum VkVideoEncodeH264OutputModeFlagBitsEXT {463VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001,464VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0x00000002,465VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,466VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF467} VkVideoEncodeH264OutputModeFlagBitsEXT;468typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT;469470typedef enum VkVideoEncodeH264CreateFlagBitsEXT {471VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT = 0,472VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT = 0x00000001,473VK_VIDEO_ENCODE_H264_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF474} VkVideoEncodeH264CreateFlagBitsEXT;475typedef VkFlags VkVideoEncodeH264CreateFlagsEXT;476typedef struct VkVideoEncodeH264CapabilitiesEXT {477VkStructureType sType;478const void* pNext;479VkVideoEncodeH264CapabilitiesFlagsEXT flags;480VkVideoEncodeH264InputModeFlagsEXT inputModeFlags;481VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags;482VkExtent2D minPictureSizeInMbs;483VkExtent2D maxPictureSizeInMbs;484VkExtent2D inputImageDataAlignment;485uint8_t maxNumL0ReferenceForP;486uint8_t maxNumL0ReferenceForB;487uint8_t maxNumL1Reference;488uint8_t qualityLevelCount;489VkExtensionProperties stdExtensionVersion;490} VkVideoEncodeH264CapabilitiesEXT;491492typedef struct VkVideoEncodeH264SessionCreateInfoEXT {493VkStructureType sType;494const void* pNext;495VkVideoEncodeH264CreateFlagsEXT flags;496VkExtent2D maxPictureSizeInMbs;497const VkExtensionProperties* pStdExtensionVersion;498} VkVideoEncodeH264SessionCreateInfoEXT;499500typedef struct VkVideoEncodeH264SessionParametersAddInfoEXT {501VkStructureType sType;502const void* pNext;503uint32_t spsStdCount;504const StdVideoH264SequenceParameterSet* pSpsStd;505uint32_t ppsStdCount;506const StdVideoH264PictureParameterSet* pPpsStd;507} VkVideoEncodeH264SessionParametersAddInfoEXT;508509typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT {510VkStructureType sType;511const void* pNext;512uint32_t maxSpsStdCount;513uint32_t maxPpsStdCount;514const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo;515} VkVideoEncodeH264SessionParametersCreateInfoEXT;516517typedef struct VkVideoEncodeH264DpbSlotInfoEXT {518VkStructureType sType;519const void* pNext;520int8_t slotIndex;521const StdVideoEncodeH264PictureInfo* pStdPictureInfo;522} VkVideoEncodeH264DpbSlotInfoEXT;523524typedef struct VkVideoEncodeH264NaluSliceEXT {525VkStructureType sType;526const void* pNext;527const StdVideoEncodeH264SliceHeader* pSliceHeaderStd;528uint32_t mbCount;529uint8_t refFinalList0EntryCount;530const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList0Entries;531uint8_t refFinalList1EntryCount;532const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList1Entries;533uint32_t precedingNaluBytes;534uint8_t minQp;535uint8_t maxQp;536} VkVideoEncodeH264NaluSliceEXT;537538typedef struct VkVideoEncodeH264VclFrameInfoEXT {539VkStructureType sType;540const void* pNext;541uint8_t refDefaultFinalList0EntryCount;542const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList0Entries;543uint8_t refDefaultFinalList1EntryCount;544const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList1Entries;545uint32_t naluSliceEntryCount;546const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries;547const VkVideoEncodeH264DpbSlotInfoEXT* pCurrentPictureInfo;548} VkVideoEncodeH264VclFrameInfoEXT;549550typedef struct VkVideoEncodeH264EmitPictureParametersEXT {551VkStructureType sType;552const void* pNext;553uint8_t spsId;554VkBool32 emitSpsEnable;555uint32_t ppsIdEntryCount;556const uint8_t* ppsIdEntries;557} VkVideoEncodeH264EmitPictureParametersEXT;558559typedef struct VkVideoEncodeH264ProfileEXT {560VkStructureType sType;561const void* pNext;562StdVideoH264ProfileIdc stdProfileIdc;563} VkVideoEncodeH264ProfileEXT;564565566567#define VK_EXT_video_decode_h264 1568#include "vk_video/vulkan_video_codec_h264std_decode.h"569#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 1570#define VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME "VK_EXT_video_decode_h264"571572typedef enum VkVideoDecodeH264FieldLayoutFlagBitsEXT {573VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT = 0,574VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT = 0x00000001,575VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT = 0x00000002,576VK_VIDEO_DECODE_H264_FIELD_LAYOUT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF577} VkVideoDecodeH264FieldLayoutFlagBitsEXT;578typedef VkFlags VkVideoDecodeH264FieldLayoutFlagsEXT;579typedef VkFlags VkVideoDecodeH264CreateFlagsEXT;580typedef struct VkVideoDecodeH264ProfileEXT {581VkStructureType sType;582const void* pNext;583StdVideoH264ProfileIdc stdProfileIdc;584VkVideoDecodeH264FieldLayoutFlagsEXT fieldLayout;585} VkVideoDecodeH264ProfileEXT;586587typedef struct VkVideoDecodeH264CapabilitiesEXT {588VkStructureType sType;589void* pNext;590uint32_t maxLevel;591VkOffset2D fieldOffsetGranularity;592VkExtensionProperties stdExtensionVersion;593} VkVideoDecodeH264CapabilitiesEXT;594595typedef struct VkVideoDecodeH264SessionCreateInfoEXT {596VkStructureType sType;597const void* pNext;598VkVideoDecodeH264CreateFlagsEXT flags;599const VkExtensionProperties* pStdExtensionVersion;600} VkVideoDecodeH264SessionCreateInfoEXT;601602typedef struct VkVideoDecodeH264SessionParametersAddInfoEXT {603VkStructureType sType;604const void* pNext;605uint32_t spsStdCount;606const StdVideoH264SequenceParameterSet* pSpsStd;607uint32_t ppsStdCount;608const StdVideoH264PictureParameterSet* pPpsStd;609} VkVideoDecodeH264SessionParametersAddInfoEXT;610611typedef struct VkVideoDecodeH264SessionParametersCreateInfoEXT {612VkStructureType sType;613const void* pNext;614uint32_t maxSpsStdCount;615uint32_t maxPpsStdCount;616const VkVideoDecodeH264SessionParametersAddInfoEXT* pParametersAddInfo;617} VkVideoDecodeH264SessionParametersCreateInfoEXT;618619typedef struct VkVideoDecodeH264PictureInfoEXT {620VkStructureType sType;621const void* pNext;622const StdVideoDecodeH264PictureInfo* pStdPictureInfo;623uint32_t slicesCount;624const uint32_t* pSlicesDataOffsets;625} VkVideoDecodeH264PictureInfoEXT;626627typedef struct VkVideoDecodeH264MvcEXT {628VkStructureType sType;629const void* pNext;630const StdVideoDecodeH264Mvc* pStdMvc;631} VkVideoDecodeH264MvcEXT;632633typedef struct VkVideoDecodeH264DpbSlotInfoEXT {634VkStructureType sType;635const void* pNext;636const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo;637} VkVideoDecodeH264DpbSlotInfoEXT;638639640641#define VK_EXT_video_decode_h265 1642#include "vk_video/vulkan_video_codec_h265std.h"643#include "vk_video/vulkan_video_codec_h265std_decode.h"644#define VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION 1645#define VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME "VK_EXT_video_decode_h265"646typedef VkFlags VkVideoDecodeH265CreateFlagsEXT;647typedef struct VkVideoDecodeH265ProfileEXT {648VkStructureType sType;649const void* pNext;650StdVideoH265ProfileIdc stdProfileIdc;651} VkVideoDecodeH265ProfileEXT;652653typedef struct VkVideoDecodeH265CapabilitiesEXT {654VkStructureType sType;655void* pNext;656uint32_t maxLevel;657VkExtensionProperties stdExtensionVersion;658} VkVideoDecodeH265CapabilitiesEXT;659660typedef struct VkVideoDecodeH265SessionCreateInfoEXT {661VkStructureType sType;662const void* pNext;663VkVideoDecodeH265CreateFlagsEXT flags;664const VkExtensionProperties* pStdExtensionVersion;665} VkVideoDecodeH265SessionCreateInfoEXT;666667typedef struct VkVideoDecodeH265SessionParametersAddInfoEXT {668VkStructureType sType;669const void* pNext;670uint32_t spsStdCount;671const StdVideoH265SequenceParameterSet* pSpsStd;672uint32_t ppsStdCount;673const StdVideoH265PictureParameterSet* pPpsStd;674} VkVideoDecodeH265SessionParametersAddInfoEXT;675676typedef struct VkVideoDecodeH265SessionParametersCreateInfoEXT {677VkStructureType sType;678const void* pNext;679uint32_t maxSpsStdCount;680uint32_t maxPpsStdCount;681const VkVideoDecodeH265SessionParametersAddInfoEXT* pParametersAddInfo;682} VkVideoDecodeH265SessionParametersCreateInfoEXT;683684typedef struct VkVideoDecodeH265PictureInfoEXT {685VkStructureType sType;686const void* pNext;687StdVideoDecodeH265PictureInfo* pStdPictureInfo;688uint32_t slicesCount;689const uint32_t* pSlicesDataOffsets;690} VkVideoDecodeH265PictureInfoEXT;691692typedef struct VkVideoDecodeH265DpbSlotInfoEXT {693VkStructureType sType;694const void* pNext;695const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo;696} VkVideoDecodeH265DpbSlotInfoEXT;697698699#ifdef __cplusplus700}701#endif702703#endif704705706