vulkan_beta.h revision 7ec681f3
17ec681f3Smrg#ifndef VULKAN_BETA_H_ 27ec681f3Smrg#define VULKAN_BETA_H_ 1 37ec681f3Smrg 47ec681f3Smrg/* 57ec681f3Smrg** Copyright 2015-2021 The Khronos Group Inc. 67ec681f3Smrg** 77ec681f3Smrg** SPDX-License-Identifier: Apache-2.0 87ec681f3Smrg*/ 97ec681f3Smrg 107ec681f3Smrg/* 117ec681f3Smrg** This header is generated from the Khronos Vulkan XML API Registry. 127ec681f3Smrg** 137ec681f3Smrg*/ 147ec681f3Smrg 157ec681f3Smrg 167ec681f3Smrg#ifdef __cplusplus 177ec681f3Smrgextern "C" { 187ec681f3Smrg#endif 197ec681f3Smrg 207ec681f3Smrg 217ec681f3Smrg 227ec681f3Smrg#define VK_KHR_video_queue 1 237ec681f3SmrgVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR) 247ec681f3SmrgVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR) 257ec681f3Smrg#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 2 267ec681f3Smrg#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue" 277ec681f3Smrg 287ec681f3Smrgtypedef enum VkQueryResultStatusKHR { 297ec681f3Smrg VK_QUERY_RESULT_STATUS_ERROR_KHR = -1, 307ec681f3Smrg VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0, 317ec681f3Smrg VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1, 327ec681f3Smrg VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF 337ec681f3Smrg} VkQueryResultStatusKHR; 347ec681f3Smrg 357ec681f3Smrgtypedef enum VkVideoCodecOperationFlagBitsKHR { 367ec681f3Smrg VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR = 0, 377ec681f3Smrg#ifdef VK_ENABLE_BETA_EXTENSIONS 387ec681f3Smrg VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0x00010000, 397ec681f3Smrg#endif 407ec681f3Smrg#ifdef VK_ENABLE_BETA_EXTENSIONS 417ec681f3Smrg VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT = 0x00000001, 427ec681f3Smrg#endif 437ec681f3Smrg#ifdef VK_ENABLE_BETA_EXTENSIONS 447ec681f3Smrg VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT = 0x00000002, 457ec681f3Smrg#endif 467ec681f3Smrg VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 477ec681f3Smrg} VkVideoCodecOperationFlagBitsKHR; 487ec681f3Smrgtypedef VkFlags VkVideoCodecOperationFlagsKHR; 497ec681f3Smrg 507ec681f3Smrgtypedef enum VkVideoChromaSubsamplingFlagBitsKHR { 517ec681f3Smrg VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR = 0, 527ec681f3Smrg VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001, 537ec681f3Smrg VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002, 547ec681f3Smrg VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004, 557ec681f3Smrg VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008, 567ec681f3Smrg VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 577ec681f3Smrg} VkVideoChromaSubsamplingFlagBitsKHR; 587ec681f3Smrgtypedef VkFlags VkVideoChromaSubsamplingFlagsKHR; 597ec681f3Smrg 607ec681f3Smrgtypedef enum VkVideoComponentBitDepthFlagBitsKHR { 617ec681f3Smrg VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0, 627ec681f3Smrg VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001, 637ec681f3Smrg VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004, 647ec681f3Smrg VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010, 657ec681f3Smrg VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 667ec681f3Smrg} VkVideoComponentBitDepthFlagBitsKHR; 677ec681f3Smrgtypedef VkFlags VkVideoComponentBitDepthFlagsKHR; 687ec681f3Smrg 697ec681f3Smrgtypedef enum VkVideoCapabilityFlagBitsKHR { 707ec681f3Smrg VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001, 717ec681f3Smrg VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002, 727ec681f3Smrg VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 737ec681f3Smrg} VkVideoCapabilityFlagBitsKHR; 747ec681f3Smrgtypedef VkFlags VkVideoCapabilityFlagsKHR; 757ec681f3Smrg 767ec681f3Smrgtypedef enum VkVideoSessionCreateFlagBitsKHR { 777ec681f3Smrg VK_VIDEO_SESSION_CREATE_DEFAULT_KHR = 0, 787ec681f3Smrg VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001, 797ec681f3Smrg VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 807ec681f3Smrg} VkVideoSessionCreateFlagBitsKHR; 817ec681f3Smrgtypedef VkFlags VkVideoSessionCreateFlagsKHR; 827ec681f3Smrgtypedef VkFlags VkVideoBeginCodingFlagsKHR; 837ec681f3Smrgtypedef VkFlags VkVideoEndCodingFlagsKHR; 847ec681f3Smrg 857ec681f3Smrgtypedef enum VkVideoCodingControlFlagBitsKHR { 867ec681f3Smrg VK_VIDEO_CODING_CONTROL_DEFAULT_KHR = 0, 877ec681f3Smrg VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001, 887ec681f3Smrg VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 897ec681f3Smrg} VkVideoCodingControlFlagBitsKHR; 907ec681f3Smrgtypedef VkFlags VkVideoCodingControlFlagsKHR; 917ec681f3Smrg 927ec681f3Smrgtypedef enum VkVideoCodingQualityPresetFlagBitsKHR { 937ec681f3Smrg VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR = 0x00000001, 947ec681f3Smrg VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR = 0x00000002, 957ec681f3Smrg VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR = 0x00000004, 967ec681f3Smrg VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 977ec681f3Smrg} VkVideoCodingQualityPresetFlagBitsKHR; 987ec681f3Smrgtypedef VkFlags VkVideoCodingQualityPresetFlagsKHR; 997ec681f3Smrgtypedef struct VkVideoQueueFamilyProperties2KHR { 1007ec681f3Smrg VkStructureType sType; 1017ec681f3Smrg void* pNext; 1027ec681f3Smrg VkVideoCodecOperationFlagsKHR videoCodecOperations; 1037ec681f3Smrg} VkVideoQueueFamilyProperties2KHR; 1047ec681f3Smrg 1057ec681f3Smrgtypedef struct VkVideoProfileKHR { 1067ec681f3Smrg VkStructureType sType; 1077ec681f3Smrg void* pNext; 1087ec681f3Smrg VkVideoCodecOperationFlagBitsKHR videoCodecOperation; 1097ec681f3Smrg VkVideoChromaSubsamplingFlagsKHR chromaSubsampling; 1107ec681f3Smrg VkVideoComponentBitDepthFlagsKHR lumaBitDepth; 1117ec681f3Smrg VkVideoComponentBitDepthFlagsKHR chromaBitDepth; 1127ec681f3Smrg} VkVideoProfileKHR; 1137ec681f3Smrg 1147ec681f3Smrgtypedef struct VkVideoProfilesKHR { 1157ec681f3Smrg VkStructureType sType; 1167ec681f3Smrg void* pNext; 1177ec681f3Smrg uint32_t profileCount; 1187ec681f3Smrg const VkVideoProfileKHR* pProfiles; 1197ec681f3Smrg} VkVideoProfilesKHR; 1207ec681f3Smrg 1217ec681f3Smrgtypedef struct VkVideoCapabilitiesKHR { 1227ec681f3Smrg VkStructureType sType; 1237ec681f3Smrg void* pNext; 1247ec681f3Smrg VkVideoCapabilityFlagsKHR capabilityFlags; 1257ec681f3Smrg VkDeviceSize minBitstreamBufferOffsetAlignment; 1267ec681f3Smrg VkDeviceSize minBitstreamBufferSizeAlignment; 1277ec681f3Smrg VkExtent2D videoPictureExtentGranularity; 1287ec681f3Smrg VkExtent2D minExtent; 1297ec681f3Smrg VkExtent2D maxExtent; 1307ec681f3Smrg uint32_t maxReferencePicturesSlotsCount; 1317ec681f3Smrg uint32_t maxReferencePicturesActiveCount; 1327ec681f3Smrg} VkVideoCapabilitiesKHR; 1337ec681f3Smrg 1347ec681f3Smrgtypedef struct VkPhysicalDeviceVideoFormatInfoKHR { 1357ec681f3Smrg VkStructureType sType; 1367ec681f3Smrg void* pNext; 1377ec681f3Smrg VkImageUsageFlags imageUsage; 1387ec681f3Smrg const VkVideoProfilesKHR* pVideoProfiles; 1397ec681f3Smrg} VkPhysicalDeviceVideoFormatInfoKHR; 1407ec681f3Smrg 1417ec681f3Smrgtypedef struct VkVideoFormatPropertiesKHR { 1427ec681f3Smrg VkStructureType sType; 1437ec681f3Smrg void* pNext; 1447ec681f3Smrg VkFormat format; 1457ec681f3Smrg} VkVideoFormatPropertiesKHR; 1467ec681f3Smrg 1477ec681f3Smrgtypedef struct VkVideoPictureResourceKHR { 1487ec681f3Smrg VkStructureType sType; 1497ec681f3Smrg const void* pNext; 1507ec681f3Smrg VkOffset2D codedOffset; 1517ec681f3Smrg VkExtent2D codedExtent; 1527ec681f3Smrg uint32_t baseArrayLayer; 1537ec681f3Smrg VkImageView imageViewBinding; 1547ec681f3Smrg} VkVideoPictureResourceKHR; 1557ec681f3Smrg 1567ec681f3Smrgtypedef struct VkVideoReferenceSlotKHR { 1577ec681f3Smrg VkStructureType sType; 1587ec681f3Smrg const void* pNext; 1597ec681f3Smrg int8_t slotIndex; 1607ec681f3Smrg const VkVideoPictureResourceKHR* pPictureResource; 1617ec681f3Smrg} VkVideoReferenceSlotKHR; 1627ec681f3Smrg 1637ec681f3Smrgtypedef struct VkVideoGetMemoryPropertiesKHR { 1647ec681f3Smrg VkStructureType sType; 1657ec681f3Smrg const void* pNext; 1667ec681f3Smrg uint32_t memoryBindIndex; 1677ec681f3Smrg VkMemoryRequirements2* pMemoryRequirements; 1687ec681f3Smrg} VkVideoGetMemoryPropertiesKHR; 1697ec681f3Smrg 1707ec681f3Smrgtypedef struct VkVideoBindMemoryKHR { 1717ec681f3Smrg VkStructureType sType; 1727ec681f3Smrg const void* pNext; 1737ec681f3Smrg uint32_t memoryBindIndex; 1747ec681f3Smrg VkDeviceMemory memory; 1757ec681f3Smrg VkDeviceSize memoryOffset; 1767ec681f3Smrg VkDeviceSize memorySize; 1777ec681f3Smrg} VkVideoBindMemoryKHR; 1787ec681f3Smrg 1797ec681f3Smrgtypedef struct VkVideoSessionCreateInfoKHR { 1807ec681f3Smrg VkStructureType sType; 1817ec681f3Smrg const void* pNext; 1827ec681f3Smrg uint32_t queueFamilyIndex; 1837ec681f3Smrg VkVideoSessionCreateFlagsKHR flags; 1847ec681f3Smrg const VkVideoProfileKHR* pVideoProfile; 1857ec681f3Smrg VkFormat pictureFormat; 1867ec681f3Smrg VkExtent2D maxCodedExtent; 1877ec681f3Smrg VkFormat referencePicturesFormat; 1887ec681f3Smrg uint32_t maxReferencePicturesSlotsCount; 1897ec681f3Smrg uint32_t maxReferencePicturesActiveCount; 1907ec681f3Smrg} VkVideoSessionCreateInfoKHR; 1917ec681f3Smrg 1927ec681f3Smrgtypedef struct VkVideoSessionParametersCreateInfoKHR { 1937ec681f3Smrg VkStructureType sType; 1947ec681f3Smrg const void* pNext; 1957ec681f3Smrg VkVideoSessionParametersKHR videoSessionParametersTemplate; 1967ec681f3Smrg VkVideoSessionKHR videoSession; 1977ec681f3Smrg} VkVideoSessionParametersCreateInfoKHR; 1987ec681f3Smrg 1997ec681f3Smrgtypedef struct VkVideoSessionParametersUpdateInfoKHR { 2007ec681f3Smrg VkStructureType sType; 2017ec681f3Smrg const void* pNext; 2027ec681f3Smrg uint32_t updateSequenceCount; 2037ec681f3Smrg} VkVideoSessionParametersUpdateInfoKHR; 2047ec681f3Smrg 2057ec681f3Smrgtypedef struct VkVideoBeginCodingInfoKHR { 2067ec681f3Smrg VkStructureType sType; 2077ec681f3Smrg const void* pNext; 2087ec681f3Smrg VkVideoBeginCodingFlagsKHR flags; 2097ec681f3Smrg VkVideoCodingQualityPresetFlagsKHR codecQualityPreset; 2107ec681f3Smrg VkVideoSessionKHR videoSession; 2117ec681f3Smrg VkVideoSessionParametersKHR videoSessionParameters; 2127ec681f3Smrg uint32_t referenceSlotCount; 2137ec681f3Smrg const VkVideoReferenceSlotKHR* pReferenceSlots; 2147ec681f3Smrg} VkVideoBeginCodingInfoKHR; 2157ec681f3Smrg 2167ec681f3Smrgtypedef struct VkVideoEndCodingInfoKHR { 2177ec681f3Smrg VkStructureType sType; 2187ec681f3Smrg const void* pNext; 2197ec681f3Smrg VkVideoEndCodingFlagsKHR flags; 2207ec681f3Smrg} VkVideoEndCodingInfoKHR; 2217ec681f3Smrg 2227ec681f3Smrgtypedef struct VkVideoCodingControlInfoKHR { 2237ec681f3Smrg VkStructureType sType; 2247ec681f3Smrg const void* pNext; 2257ec681f3Smrg VkVideoCodingControlFlagsKHR flags; 2267ec681f3Smrg} VkVideoCodingControlInfoKHR; 2277ec681f3Smrg 2287ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities); 2297ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties); 2307ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession); 2317ec681f3Smrgtypedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator); 2327ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements); 2337ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories); 2347ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters); 2357ec681f3Smrgtypedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo); 2367ec681f3Smrgtypedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator); 2377ec681f3Smrgtypedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo); 2387ec681f3Smrgtypedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo); 2397ec681f3Smrgtypedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo); 2407ec681f3Smrg 2417ec681f3Smrg#ifndef VK_NO_PROTOTYPES 2427ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR( 2437ec681f3Smrg VkPhysicalDevice physicalDevice, 2447ec681f3Smrg const VkVideoProfileKHR* pVideoProfile, 2457ec681f3Smrg VkVideoCapabilitiesKHR* pCapabilities); 2467ec681f3Smrg 2477ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR( 2487ec681f3Smrg VkPhysicalDevice physicalDevice, 2497ec681f3Smrg const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, 2507ec681f3Smrg uint32_t* pVideoFormatPropertyCount, 2517ec681f3Smrg VkVideoFormatPropertiesKHR* pVideoFormatProperties); 2527ec681f3Smrg 2537ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR( 2547ec681f3Smrg VkDevice device, 2557ec681f3Smrg const VkVideoSessionCreateInfoKHR* pCreateInfo, 2567ec681f3Smrg const VkAllocationCallbacks* pAllocator, 2577ec681f3Smrg VkVideoSessionKHR* pVideoSession); 2587ec681f3Smrg 2597ec681f3SmrgVKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR( 2607ec681f3Smrg VkDevice device, 2617ec681f3Smrg VkVideoSessionKHR videoSession, 2627ec681f3Smrg const VkAllocationCallbacks* pAllocator); 2637ec681f3Smrg 2647ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR( 2657ec681f3Smrg VkDevice device, 2667ec681f3Smrg VkVideoSessionKHR videoSession, 2677ec681f3Smrg uint32_t* pVideoSessionMemoryRequirementsCount, 2687ec681f3Smrg VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements); 2697ec681f3Smrg 2707ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR( 2717ec681f3Smrg VkDevice device, 2727ec681f3Smrg VkVideoSessionKHR videoSession, 2737ec681f3Smrg uint32_t videoSessionBindMemoryCount, 2747ec681f3Smrg const VkVideoBindMemoryKHR* pVideoSessionBindMemories); 2757ec681f3Smrg 2767ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR( 2777ec681f3Smrg VkDevice device, 2787ec681f3Smrg const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, 2797ec681f3Smrg const VkAllocationCallbacks* pAllocator, 2807ec681f3Smrg VkVideoSessionParametersKHR* pVideoSessionParameters); 2817ec681f3Smrg 2827ec681f3SmrgVKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR( 2837ec681f3Smrg VkDevice device, 2847ec681f3Smrg VkVideoSessionParametersKHR videoSessionParameters, 2857ec681f3Smrg const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo); 2867ec681f3Smrg 2877ec681f3SmrgVKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR( 2887ec681f3Smrg VkDevice device, 2897ec681f3Smrg VkVideoSessionParametersKHR videoSessionParameters, 2907ec681f3Smrg const VkAllocationCallbacks* pAllocator); 2917ec681f3Smrg 2927ec681f3SmrgVKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR( 2937ec681f3Smrg VkCommandBuffer commandBuffer, 2947ec681f3Smrg const VkVideoBeginCodingInfoKHR* pBeginInfo); 2957ec681f3Smrg 2967ec681f3SmrgVKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR( 2977ec681f3Smrg VkCommandBuffer commandBuffer, 2987ec681f3Smrg const VkVideoEndCodingInfoKHR* pEndCodingInfo); 2997ec681f3Smrg 3007ec681f3SmrgVKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR( 3017ec681f3Smrg VkCommandBuffer commandBuffer, 3027ec681f3Smrg const VkVideoCodingControlInfoKHR* pCodingControlInfo); 3037ec681f3Smrg#endif 3047ec681f3Smrg 3057ec681f3Smrg 3067ec681f3Smrg#define VK_KHR_video_decode_queue 1 3077ec681f3Smrg#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 2 3087ec681f3Smrg#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue" 3097ec681f3Smrg 3107ec681f3Smrgtypedef enum VkVideoDecodeFlagBitsKHR { 3117ec681f3Smrg VK_VIDEO_DECODE_DEFAULT_KHR = 0, 3127ec681f3Smrg VK_VIDEO_DECODE_RESERVED_0_BIT_KHR = 0x00000001, 3137ec681f3Smrg VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 3147ec681f3Smrg} VkVideoDecodeFlagBitsKHR; 3157ec681f3Smrgtypedef VkFlags VkVideoDecodeFlagsKHR; 3167ec681f3Smrgtypedef struct VkVideoDecodeInfoKHR { 3177ec681f3Smrg VkStructureType sType; 3187ec681f3Smrg const void* pNext; 3197ec681f3Smrg VkVideoDecodeFlagsKHR flags; 3207ec681f3Smrg VkOffset2D codedOffset; 3217ec681f3Smrg VkExtent2D codedExtent; 3227ec681f3Smrg VkBuffer srcBuffer; 3237ec681f3Smrg VkDeviceSize srcBufferOffset; 3247ec681f3Smrg VkDeviceSize srcBufferRange; 3257ec681f3Smrg VkVideoPictureResourceKHR dstPictureResource; 3267ec681f3Smrg const VkVideoReferenceSlotKHR* pSetupReferenceSlot; 3277ec681f3Smrg uint32_t referenceSlotCount; 3287ec681f3Smrg const VkVideoReferenceSlotKHR* pReferenceSlots; 3297ec681f3Smrg} VkVideoDecodeInfoKHR; 3307ec681f3Smrg 3317ec681f3Smrgtypedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo); 3327ec681f3Smrg 3337ec681f3Smrg#ifndef VK_NO_PROTOTYPES 3347ec681f3SmrgVKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR( 3357ec681f3Smrg VkCommandBuffer commandBuffer, 3367ec681f3Smrg const VkVideoDecodeInfoKHR* pFrameInfo); 3377ec681f3Smrg#endif 3387ec681f3Smrg 3397ec681f3Smrg 3407ec681f3Smrg#define VK_KHR_portability_subset 1 3417ec681f3Smrg#define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1 3427ec681f3Smrg#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset" 3437ec681f3Smrgtypedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR { 3447ec681f3Smrg VkStructureType sType; 3457ec681f3Smrg void* pNext; 3467ec681f3Smrg VkBool32 constantAlphaColorBlendFactors; 3477ec681f3Smrg VkBool32 events; 3487ec681f3Smrg VkBool32 imageViewFormatReinterpretation; 3497ec681f3Smrg VkBool32 imageViewFormatSwizzle; 3507ec681f3Smrg VkBool32 imageView2DOn3DImage; 3517ec681f3Smrg VkBool32 multisampleArrayImage; 3527ec681f3Smrg VkBool32 mutableComparisonSamplers; 3537ec681f3Smrg VkBool32 pointPolygons; 3547ec681f3Smrg VkBool32 samplerMipLodBias; 3557ec681f3Smrg VkBool32 separateStencilMaskRef; 3567ec681f3Smrg VkBool32 shaderSampleRateInterpolationFunctions; 3577ec681f3Smrg VkBool32 tessellationIsolines; 3587ec681f3Smrg VkBool32 tessellationPointMode; 3597ec681f3Smrg VkBool32 triangleFans; 3607ec681f3Smrg VkBool32 vertexAttributeAccessBeyondStride; 3617ec681f3Smrg} VkPhysicalDevicePortabilitySubsetFeaturesKHR; 3627ec681f3Smrg 3637ec681f3Smrgtypedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { 3647ec681f3Smrg VkStructureType sType; 3657ec681f3Smrg void* pNext; 3667ec681f3Smrg uint32_t minVertexInputBindingStrideAlignment; 3677ec681f3Smrg} VkPhysicalDevicePortabilitySubsetPropertiesKHR; 3687ec681f3Smrg 3697ec681f3Smrg 3707ec681f3Smrg 3717ec681f3Smrg#define VK_KHR_video_encode_queue 1 3727ec681f3Smrg#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 3 3737ec681f3Smrg#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue" 3747ec681f3Smrg 3757ec681f3Smrgtypedef enum VkVideoEncodeFlagBitsKHR { 3767ec681f3Smrg VK_VIDEO_ENCODE_DEFAULT_KHR = 0, 3777ec681f3Smrg VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR = 0x00000001, 3787ec681f3Smrg VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 3797ec681f3Smrg} VkVideoEncodeFlagBitsKHR; 3807ec681f3Smrgtypedef VkFlags VkVideoEncodeFlagsKHR; 3817ec681f3Smrg 3827ec681f3Smrgtypedef enum VkVideoEncodeRateControlFlagBitsKHR { 3837ec681f3Smrg VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR = 0, 3847ec681f3Smrg VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR = 0x00000001, 3857ec681f3Smrg VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 3867ec681f3Smrg} VkVideoEncodeRateControlFlagBitsKHR; 3877ec681f3Smrgtypedef VkFlags VkVideoEncodeRateControlFlagsKHR; 3887ec681f3Smrg 3897ec681f3Smrgtypedef enum VkVideoEncodeRateControlModeFlagBitsKHR { 3907ec681f3Smrg VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0, 3917ec681f3Smrg VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 1, 3927ec681f3Smrg VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 2, 3937ec681f3Smrg VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 3947ec681f3Smrg} VkVideoEncodeRateControlModeFlagBitsKHR; 3957ec681f3Smrgtypedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; 3967ec681f3Smrgtypedef struct VkVideoEncodeInfoKHR { 3977ec681f3Smrg VkStructureType sType; 3987ec681f3Smrg const void* pNext; 3997ec681f3Smrg VkVideoEncodeFlagsKHR flags; 4007ec681f3Smrg uint32_t qualityLevel; 4017ec681f3Smrg VkExtent2D codedExtent; 4027ec681f3Smrg VkBuffer dstBitstreamBuffer; 4037ec681f3Smrg VkDeviceSize dstBitstreamBufferOffset; 4047ec681f3Smrg VkDeviceSize dstBitstreamBufferMaxRange; 4057ec681f3Smrg VkVideoPictureResourceKHR srcPictureResource; 4067ec681f3Smrg const VkVideoReferenceSlotKHR* pSetupReferenceSlot; 4077ec681f3Smrg uint32_t referenceSlotCount; 4087ec681f3Smrg const VkVideoReferenceSlotKHR* pReferenceSlots; 4097ec681f3Smrg} VkVideoEncodeInfoKHR; 4107ec681f3Smrg 4117ec681f3Smrgtypedef struct VkVideoEncodeRateControlInfoKHR { 4127ec681f3Smrg VkStructureType sType; 4137ec681f3Smrg const void* pNext; 4147ec681f3Smrg VkVideoEncodeRateControlFlagsKHR flags; 4157ec681f3Smrg VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode; 4167ec681f3Smrg uint32_t averageBitrate; 4177ec681f3Smrg uint16_t peakToAverageBitrateRatio; 4187ec681f3Smrg uint16_t frameRateNumerator; 4197ec681f3Smrg uint16_t frameRateDenominator; 4207ec681f3Smrg uint32_t virtualBufferSizeInMs; 4217ec681f3Smrg} VkVideoEncodeRateControlInfoKHR; 4227ec681f3Smrg 4237ec681f3Smrgtypedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo); 4247ec681f3Smrg 4257ec681f3Smrg#ifndef VK_NO_PROTOTYPES 4267ec681f3SmrgVKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR( 4277ec681f3Smrg VkCommandBuffer commandBuffer, 4287ec681f3Smrg const VkVideoEncodeInfoKHR* pEncodeInfo); 4297ec681f3Smrg#endif 4307ec681f3Smrg 4317ec681f3Smrg 4327ec681f3Smrg#define VK_EXT_video_encode_h264 1 4337ec681f3Smrg#include "vk_video/vulkan_video_codec_h264std.h" 4347ec681f3Smrg#include "vk_video/vulkan_video_codec_h264std_encode.h" 4357ec681f3Smrg#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 2 4367ec681f3Smrg#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264" 4377ec681f3Smrg 4387ec681f3Smrgtypedef enum VkVideoEncodeH264CapabilityFlagBitsEXT { 4397ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00000001, 4407ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00000002, 4417ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT = 0x00000004, 4427ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00000008, 4437ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000010, 4447ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000020, 4457ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00000040, 4467ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00000080, 4477ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00000100, 4487ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00000200, 4497ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT = 0x00000400, 4507ec681f3Smrg VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 4517ec681f3Smrg} VkVideoEncodeH264CapabilityFlagBitsEXT; 4527ec681f3Smrgtypedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT; 4537ec681f3Smrg 4547ec681f3Smrgtypedef enum VkVideoEncodeH264InputModeFlagBitsEXT { 4557ec681f3Smrg VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0x00000001, 4567ec681f3Smrg VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0x00000002, 4577ec681f3Smrg VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, 4587ec681f3Smrg VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 4597ec681f3Smrg} VkVideoEncodeH264InputModeFlagBitsEXT; 4607ec681f3Smrgtypedef VkFlags VkVideoEncodeH264InputModeFlagsEXT; 4617ec681f3Smrg 4627ec681f3Smrgtypedef enum VkVideoEncodeH264OutputModeFlagBitsEXT { 4637ec681f3Smrg VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001, 4647ec681f3Smrg VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0x00000002, 4657ec681f3Smrg VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, 4667ec681f3Smrg VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 4677ec681f3Smrg} VkVideoEncodeH264OutputModeFlagBitsEXT; 4687ec681f3Smrgtypedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT; 4697ec681f3Smrg 4707ec681f3Smrgtypedef enum VkVideoEncodeH264CreateFlagBitsEXT { 4717ec681f3Smrg VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT = 0, 4727ec681f3Smrg VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT = 0x00000001, 4737ec681f3Smrg VK_VIDEO_ENCODE_H264_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 4747ec681f3Smrg} VkVideoEncodeH264CreateFlagBitsEXT; 4757ec681f3Smrgtypedef VkFlags VkVideoEncodeH264CreateFlagsEXT; 4767ec681f3Smrgtypedef struct VkVideoEncodeH264CapabilitiesEXT { 4777ec681f3Smrg VkStructureType sType; 4787ec681f3Smrg const void* pNext; 4797ec681f3Smrg VkVideoEncodeH264CapabilityFlagsEXT flags; 4807ec681f3Smrg VkVideoEncodeH264InputModeFlagsEXT inputModeFlags; 4817ec681f3Smrg VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags; 4827ec681f3Smrg VkExtent2D minPictureSizeInMbs; 4837ec681f3Smrg VkExtent2D maxPictureSizeInMbs; 4847ec681f3Smrg VkExtent2D inputImageDataAlignment; 4857ec681f3Smrg uint8_t maxNumL0ReferenceForP; 4867ec681f3Smrg uint8_t maxNumL0ReferenceForB; 4877ec681f3Smrg uint8_t maxNumL1Reference; 4887ec681f3Smrg uint8_t qualityLevelCount; 4897ec681f3Smrg VkExtensionProperties stdExtensionVersion; 4907ec681f3Smrg} VkVideoEncodeH264CapabilitiesEXT; 4917ec681f3Smrg 4927ec681f3Smrgtypedef struct VkVideoEncodeH264SessionCreateInfoEXT { 4937ec681f3Smrg VkStructureType sType; 4947ec681f3Smrg const void* pNext; 4957ec681f3Smrg VkVideoEncodeH264CreateFlagsEXT flags; 4967ec681f3Smrg VkExtent2D maxPictureSizeInMbs; 4977ec681f3Smrg const VkExtensionProperties* pStdExtensionVersion; 4987ec681f3Smrg} VkVideoEncodeH264SessionCreateInfoEXT; 4997ec681f3Smrg 5007ec681f3Smrgtypedef struct VkVideoEncodeH264SessionParametersAddInfoEXT { 5017ec681f3Smrg VkStructureType sType; 5027ec681f3Smrg const void* pNext; 5037ec681f3Smrg uint32_t spsStdCount; 5047ec681f3Smrg const StdVideoH264SequenceParameterSet* pSpsStd; 5057ec681f3Smrg uint32_t ppsStdCount; 5067ec681f3Smrg const StdVideoH264PictureParameterSet* pPpsStd; 5077ec681f3Smrg} VkVideoEncodeH264SessionParametersAddInfoEXT; 5087ec681f3Smrg 5097ec681f3Smrgtypedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT { 5107ec681f3Smrg VkStructureType sType; 5117ec681f3Smrg const void* pNext; 5127ec681f3Smrg uint32_t maxSpsStdCount; 5137ec681f3Smrg uint32_t maxPpsStdCount; 5147ec681f3Smrg const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo; 5157ec681f3Smrg} VkVideoEncodeH264SessionParametersCreateInfoEXT; 5167ec681f3Smrg 5177ec681f3Smrgtypedef struct VkVideoEncodeH264DpbSlotInfoEXT { 5187ec681f3Smrg VkStructureType sType; 5197ec681f3Smrg const void* pNext; 5207ec681f3Smrg int8_t slotIndex; 5217ec681f3Smrg const StdVideoEncodeH264PictureInfo* pStdPictureInfo; 5227ec681f3Smrg} VkVideoEncodeH264DpbSlotInfoEXT; 5237ec681f3Smrg 5247ec681f3Smrgtypedef struct VkVideoEncodeH264NaluSliceEXT { 5257ec681f3Smrg VkStructureType sType; 5267ec681f3Smrg const void* pNext; 5277ec681f3Smrg const StdVideoEncodeH264SliceHeader* pSliceHeaderStd; 5287ec681f3Smrg uint32_t mbCount; 5297ec681f3Smrg uint8_t refFinalList0EntryCount; 5307ec681f3Smrg const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList0Entries; 5317ec681f3Smrg uint8_t refFinalList1EntryCount; 5327ec681f3Smrg const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList1Entries; 5337ec681f3Smrg uint32_t precedingNaluBytes; 5347ec681f3Smrg uint8_t minQp; 5357ec681f3Smrg uint8_t maxQp; 5367ec681f3Smrg} VkVideoEncodeH264NaluSliceEXT; 5377ec681f3Smrg 5387ec681f3Smrgtypedef struct VkVideoEncodeH264VclFrameInfoEXT { 5397ec681f3Smrg VkStructureType sType; 5407ec681f3Smrg const void* pNext; 5417ec681f3Smrg uint8_t refDefaultFinalList0EntryCount; 5427ec681f3Smrg const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList0Entries; 5437ec681f3Smrg uint8_t refDefaultFinalList1EntryCount; 5447ec681f3Smrg const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList1Entries; 5457ec681f3Smrg uint32_t naluSliceEntryCount; 5467ec681f3Smrg const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries; 5477ec681f3Smrg const VkVideoEncodeH264DpbSlotInfoEXT* pCurrentPictureInfo; 5487ec681f3Smrg} VkVideoEncodeH264VclFrameInfoEXT; 5497ec681f3Smrg 5507ec681f3Smrgtypedef struct VkVideoEncodeH264EmitPictureParametersEXT { 5517ec681f3Smrg VkStructureType sType; 5527ec681f3Smrg const void* pNext; 5537ec681f3Smrg uint8_t spsId; 5547ec681f3Smrg VkBool32 emitSpsEnable; 5557ec681f3Smrg uint32_t ppsIdEntryCount; 5567ec681f3Smrg const uint8_t* ppsIdEntries; 5577ec681f3Smrg} VkVideoEncodeH264EmitPictureParametersEXT; 5587ec681f3Smrg 5597ec681f3Smrgtypedef struct VkVideoEncodeH264ProfileEXT { 5607ec681f3Smrg VkStructureType sType; 5617ec681f3Smrg const void* pNext; 5627ec681f3Smrg StdVideoH264ProfileIdc stdProfileIdc; 5637ec681f3Smrg} VkVideoEncodeH264ProfileEXT; 5647ec681f3Smrg 5657ec681f3Smrg 5667ec681f3Smrg 5677ec681f3Smrg#define VK_EXT_video_decode_h264 1 5687ec681f3Smrg#include "vk_video/vulkan_video_codec_h264std_decode.h" 5697ec681f3Smrg#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 3 5707ec681f3Smrg#define VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME "VK_EXT_video_decode_h264" 5717ec681f3Smrg 5727ec681f3Smrgtypedef enum VkVideoDecodeH264PictureLayoutFlagBitsEXT { 5737ec681f3Smrg VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT = 0, 5747ec681f3Smrg VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT = 0x00000001, 5757ec681f3Smrg VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT = 0x00000002, 5767ec681f3Smrg VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 5777ec681f3Smrg} VkVideoDecodeH264PictureLayoutFlagBitsEXT; 5787ec681f3Smrgtypedef VkFlags VkVideoDecodeH264PictureLayoutFlagsEXT; 5797ec681f3Smrgtypedef VkFlags VkVideoDecodeH264CreateFlagsEXT; 5807ec681f3Smrgtypedef struct VkVideoDecodeH264ProfileEXT { 5817ec681f3Smrg VkStructureType sType; 5827ec681f3Smrg const void* pNext; 5837ec681f3Smrg StdVideoH264ProfileIdc stdProfileIdc; 5847ec681f3Smrg VkVideoDecodeH264PictureLayoutFlagsEXT pictureLayout; 5857ec681f3Smrg} VkVideoDecodeH264ProfileEXT; 5867ec681f3Smrg 5877ec681f3Smrgtypedef struct VkVideoDecodeH264CapabilitiesEXT { 5887ec681f3Smrg VkStructureType sType; 5897ec681f3Smrg void* pNext; 5907ec681f3Smrg uint32_t maxLevel; 5917ec681f3Smrg VkOffset2D fieldOffsetGranularity; 5927ec681f3Smrg VkExtensionProperties stdExtensionVersion; 5937ec681f3Smrg} VkVideoDecodeH264CapabilitiesEXT; 5947ec681f3Smrg 5957ec681f3Smrgtypedef struct VkVideoDecodeH264SessionCreateInfoEXT { 5967ec681f3Smrg VkStructureType sType; 5977ec681f3Smrg const void* pNext; 5987ec681f3Smrg VkVideoDecodeH264CreateFlagsEXT flags; 5997ec681f3Smrg const VkExtensionProperties* pStdExtensionVersion; 6007ec681f3Smrg} VkVideoDecodeH264SessionCreateInfoEXT; 6017ec681f3Smrg 6027ec681f3Smrgtypedef struct VkVideoDecodeH264SessionParametersAddInfoEXT { 6037ec681f3Smrg VkStructureType sType; 6047ec681f3Smrg const void* pNext; 6057ec681f3Smrg uint32_t spsStdCount; 6067ec681f3Smrg const StdVideoH264SequenceParameterSet* pSpsStd; 6077ec681f3Smrg uint32_t ppsStdCount; 6087ec681f3Smrg const StdVideoH264PictureParameterSet* pPpsStd; 6097ec681f3Smrg} VkVideoDecodeH264SessionParametersAddInfoEXT; 6107ec681f3Smrg 6117ec681f3Smrgtypedef struct VkVideoDecodeH264SessionParametersCreateInfoEXT { 6127ec681f3Smrg VkStructureType sType; 6137ec681f3Smrg const void* pNext; 6147ec681f3Smrg uint32_t maxSpsStdCount; 6157ec681f3Smrg uint32_t maxPpsStdCount; 6167ec681f3Smrg const VkVideoDecodeH264SessionParametersAddInfoEXT* pParametersAddInfo; 6177ec681f3Smrg} VkVideoDecodeH264SessionParametersCreateInfoEXT; 6187ec681f3Smrg 6197ec681f3Smrgtypedef struct VkVideoDecodeH264PictureInfoEXT { 6207ec681f3Smrg VkStructureType sType; 6217ec681f3Smrg const void* pNext; 6227ec681f3Smrg const StdVideoDecodeH264PictureInfo* pStdPictureInfo; 6237ec681f3Smrg uint32_t slicesCount; 6247ec681f3Smrg const uint32_t* pSlicesDataOffsets; 6257ec681f3Smrg} VkVideoDecodeH264PictureInfoEXT; 6267ec681f3Smrg 6277ec681f3Smrgtypedef struct VkVideoDecodeH264MvcEXT { 6287ec681f3Smrg VkStructureType sType; 6297ec681f3Smrg const void* pNext; 6307ec681f3Smrg const StdVideoDecodeH264Mvc* pStdMvc; 6317ec681f3Smrg} VkVideoDecodeH264MvcEXT; 6327ec681f3Smrg 6337ec681f3Smrgtypedef struct VkVideoDecodeH264DpbSlotInfoEXT { 6347ec681f3Smrg VkStructureType sType; 6357ec681f3Smrg const void* pNext; 6367ec681f3Smrg const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo; 6377ec681f3Smrg} VkVideoDecodeH264DpbSlotInfoEXT; 6387ec681f3Smrg 6397ec681f3Smrg 6407ec681f3Smrg 6417ec681f3Smrg#define VK_EXT_video_decode_h265 1 6427ec681f3Smrg#include "vk_video/vulkan_video_codec_h265std.h" 6437ec681f3Smrg#include "vk_video/vulkan_video_codec_h265std_decode.h" 6447ec681f3Smrg#define VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION 1 6457ec681f3Smrg#define VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME "VK_EXT_video_decode_h265" 6467ec681f3Smrgtypedef VkFlags VkVideoDecodeH265CreateFlagsEXT; 6477ec681f3Smrgtypedef struct VkVideoDecodeH265ProfileEXT { 6487ec681f3Smrg VkStructureType sType; 6497ec681f3Smrg const void* pNext; 6507ec681f3Smrg StdVideoH265ProfileIdc stdProfileIdc; 6517ec681f3Smrg} VkVideoDecodeH265ProfileEXT; 6527ec681f3Smrg 6537ec681f3Smrgtypedef struct VkVideoDecodeH265CapabilitiesEXT { 6547ec681f3Smrg VkStructureType sType; 6557ec681f3Smrg void* pNext; 6567ec681f3Smrg uint32_t maxLevel; 6577ec681f3Smrg VkExtensionProperties stdExtensionVersion; 6587ec681f3Smrg} VkVideoDecodeH265CapabilitiesEXT; 6597ec681f3Smrg 6607ec681f3Smrgtypedef struct VkVideoDecodeH265SessionCreateInfoEXT { 6617ec681f3Smrg VkStructureType sType; 6627ec681f3Smrg const void* pNext; 6637ec681f3Smrg VkVideoDecodeH265CreateFlagsEXT flags; 6647ec681f3Smrg const VkExtensionProperties* pStdExtensionVersion; 6657ec681f3Smrg} VkVideoDecodeH265SessionCreateInfoEXT; 6667ec681f3Smrg 6677ec681f3Smrgtypedef struct VkVideoDecodeH265SessionParametersAddInfoEXT { 6687ec681f3Smrg VkStructureType sType; 6697ec681f3Smrg const void* pNext; 6707ec681f3Smrg uint32_t spsStdCount; 6717ec681f3Smrg const StdVideoH265SequenceParameterSet* pSpsStd; 6727ec681f3Smrg uint32_t ppsStdCount; 6737ec681f3Smrg const StdVideoH265PictureParameterSet* pPpsStd; 6747ec681f3Smrg} VkVideoDecodeH265SessionParametersAddInfoEXT; 6757ec681f3Smrg 6767ec681f3Smrgtypedef struct VkVideoDecodeH265SessionParametersCreateInfoEXT { 6777ec681f3Smrg VkStructureType sType; 6787ec681f3Smrg const void* pNext; 6797ec681f3Smrg uint32_t maxSpsStdCount; 6807ec681f3Smrg uint32_t maxPpsStdCount; 6817ec681f3Smrg const VkVideoDecodeH265SessionParametersAddInfoEXT* pParametersAddInfo; 6827ec681f3Smrg} VkVideoDecodeH265SessionParametersCreateInfoEXT; 6837ec681f3Smrg 6847ec681f3Smrgtypedef struct VkVideoDecodeH265PictureInfoEXT { 6857ec681f3Smrg VkStructureType sType; 6867ec681f3Smrg const void* pNext; 6877ec681f3Smrg StdVideoDecodeH265PictureInfo* pStdPictureInfo; 6887ec681f3Smrg uint32_t slicesCount; 6897ec681f3Smrg const uint32_t* pSlicesDataOffsets; 6907ec681f3Smrg} VkVideoDecodeH265PictureInfoEXT; 6917ec681f3Smrg 6927ec681f3Smrgtypedef struct VkVideoDecodeH265DpbSlotInfoEXT { 6937ec681f3Smrg VkStructureType sType; 6947ec681f3Smrg const void* pNext; 6957ec681f3Smrg const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo; 6967ec681f3Smrg} VkVideoDecodeH265DpbSlotInfoEXT; 6977ec681f3Smrg 6987ec681f3Smrg 6997ec681f3Smrg#ifdef __cplusplus 7007ec681f3Smrg} 7017ec681f3Smrg#endif 7027ec681f3Smrg 7037ec681f3Smrg#endif 704