FFmpeg
Loading...
Searching...
No Matches
vulkan_functions.h File Reference
#include "hwcontext.h"
#include "hwcontext_vulkan.h"

Go to the source code of this file.

Data Structures

struct  FFVulkanFunctions
 

Macros

#define VK_NO_PROTOTYPES
 
#define VK_ENABLE_BETA_EXTENSIONS
 
#define FF_VK_EXT_EXTERNAL_DMABUF_MEMORY   (1ULL << 0) /* VK_EXT_external_memory_dma_buf */
 
#define FF_VK_EXT_DRM_MODIFIER_FLAGS   (1ULL << 1) /* VK_EXT_image_drm_format_modifier */
 
#define FF_VK_EXT_EXTERNAL_FD_MEMORY   (1ULL << 2) /* VK_KHR_external_memory_fd */
 
#define FF_VK_EXT_EXTERNAL_FD_SEM   (1ULL << 3) /* VK_KHR_external_semaphore_fd */
 
#define FF_VK_EXT_EXTERNAL_HOST_MEMORY   (1ULL << 4) /* VK_EXT_external_memory_host */
 
#define FF_VK_EXT_DEBUG_UTILS   (1ULL << 5) /* VK_EXT_debug_utils */
 
#define FF_VK_EXT_EXTERNAL_WIN32_MEMORY   (1ULL << 6) /* VK_KHR_external_memory_win32 */
 
#define FF_VK_EXT_EXTERNAL_WIN32_SEM   (1ULL << 7) /* VK_KHR_external_semaphore_win32 */
 
#define FF_VK_EXT_DEVICE_DRM   (1ULL << 9) /* VK_EXT_physical_device_drm */
 
#define FF_VK_EXT_ATOMIC_FLOAT   (1ULL << 10) /* VK_EXT_shader_atomic_float */
 
#define FF_VK_EXT_COOP_MATRIX   (1ULL << 11) /* VK_KHR_cooperative_matrix */
 
#define FF_VK_EXT_OPTICAL_FLOW   (1ULL << 12) /* VK_NV_optical_flow */
 
#define FF_VK_EXT_SHADER_OBJECT   (1ULL << 13) /* VK_EXT_shader_object */
 
#define FF_VK_EXT_PUSH_DESCRIPTOR   (1ULL << 14) /* VK_KHR_push_descriptor */
 
#define FF_VK_EXT_RELAXED_EXTENDED_INSTR   (1ULL << 15) /* VK_KHR_shader_relaxed_extended_instruction */
 
#define FF_VK_EXT_EXPECT_ASSUME   (1ULL << 16) /* VK_KHR_shader_expect_assume */
 
#define FF_VK_EXT_SUBGROUP_ROTATE   (1ULL << 17) /* VK_KHR_shader_subgroup_rotate */
 
#define FF_VK_EXT_HOST_IMAGE_COPY   (1ULL << 18) /* VK_EXT_host_image_copy */
 
#define FF_VK_EXT_ZERO_INITIALIZE   (1ULL << 19) /* VK_EXT_zero_initialize_device_memory */
 
#define FF_VK_EXT_EXPLICIT_MEM_LAYOUT   (1ULL << 20) /* VK_KHR_workgroup_memory_explicit_layout */
 
#define FF_VK_EXT_REPLICATED_COMPOSITES   (1ULL << 21) /* VK_EXT_shader_replicated_composites */
 
#define FF_VK_EXT_LONG_VECTOR   (1ULL << 22) /* VK_EXT_shader_long_vector */
 
#define FF_VK_EXT_INTERNAL_QUEUE_SYNC   (1ULL << 23) /* VK_KHR_internally_synchronized_queues */
 
#define FF_VK_EXT_MAXIMAL_RECONVERGENCE   (1ULL << 24) /* VK_KHR_shader_maximal_reconvergence */
 
#define FF_VK_EXT_MAINTENANCE_9   (1ULL << 25) /* VK_KHR_maintenance9 */
 
#define FF_VK_EXT_UNIFIED_IMAGE_LAYOUTS   (1ULL << 26) /* VK_KHR_unified_image_layouts */
 
#define FF_VK_EXT_VIDEO_QUEUE   (1ULL << 36) /* VK_KHR_video_queue */
 
#define FF_VK_EXT_VIDEO_MAINTENANCE_1   (1ULL << 37) /* VK_KHR_video_maintenance1 */
 
#define FF_VK_EXT_VIDEO_MAINTENANCE_2   (1ULL << 38) /* VK_KHR_video_maintenance2 */
 
#define FF_VK_EXT_VIDEO_DECODE_QUEUE   (1ULL << 40) /* VK_KHR_video_decode_queue */
 
#define FF_VK_EXT_VIDEO_DECODE_H264   (1ULL << 41) /* VK_KHR_video_decode_h264 */
 
#define FF_VK_EXT_VIDEO_DECODE_H265   (1ULL << 42) /* VK_KHR_video_decode_h265 */
 
#define FF_VK_EXT_VIDEO_DECODE_VP9   (1ULL << 43) /* VK_KHR_video_decode_vp9 */
 
#define FF_VK_EXT_VIDEO_DECODE_AV1   (1ULL << 44) /* VK_KHR_video_decode_av1 */
 
#define FF_VK_EXT_VIDEO_ENCODE_QUEUE   (1ULL << 50) /* VK_KHR_video_encode_queue */
 
#define FF_VK_EXT_VIDEO_ENCODE_H264   (1ULL << 51) /* VK_KHR_video_encode_h264 */
 
#define FF_VK_EXT_VIDEO_ENCODE_H265   (1ULL << 52) /* VK_KHR_video_encode_h265 */
 
#define FF_VK_EXT_VIDEO_ENCODE_AV1   (1ULL << 53) /* VK_KHR_video_encode_av1 */
 
#define FF_VK_EXT_PORTABILITY_SUBSET   (1ULL << 62)
 
#define FF_VK_EXT_NO_FLAG   (1ULL << 63)
 
#define FN_LIST(MACRO)
 
#define FN_LIST_WIN32(MACRO)
 
#define PFN_DEF(req_inst, req_dev, ext_flag, name)
 

Typedefs

typedef uint64_t FFVulkanExtensions
 

Macro Definition Documentation

◆ VK_NO_PROTOTYPES

#define VK_NO_PROTOTYPES

Definition at line 22 of file vulkan_functions.h.

◆ VK_ENABLE_BETA_EXTENSIONS

#define VK_ENABLE_BETA_EXTENSIONS

Definition at line 23 of file vulkan_functions.h.

◆ FF_VK_EXT_EXTERNAL_DMABUF_MEMORY

#define FF_VK_EXT_EXTERNAL_DMABUF_MEMORY   (1ULL << 0) /* VK_EXT_external_memory_dma_buf */

Definition at line 32 of file vulkan_functions.h.

Referenced by ff_vk_extensions_to_mask(), and vulkan_pool_alloc().

◆ FF_VK_EXT_DRM_MODIFIER_FLAGS

#define FF_VK_EXT_DRM_MODIFIER_FLAGS   (1ULL << 1) /* VK_EXT_image_drm_format_modifier */

◆ FF_VK_EXT_EXTERNAL_FD_MEMORY

#define FF_VK_EXT_EXTERNAL_FD_MEMORY   (1ULL << 2) /* VK_KHR_external_memory_fd */

◆ FF_VK_EXT_EXTERNAL_FD_SEM

#define FF_VK_EXT_EXTERNAL_FD_SEM   (1ULL << 3) /* VK_KHR_external_semaphore_fd */

◆ FF_VK_EXT_EXTERNAL_HOST_MEMORY

#define FF_VK_EXT_EXTERNAL_HOST_MEMORY   (1ULL << 4) /* VK_EXT_external_memory_host */

◆ FF_VK_EXT_DEBUG_UTILS

#define FF_VK_EXT_DEBUG_UTILS   (1ULL << 5) /* VK_EXT_debug_utils */

Definition at line 37 of file vulkan_functions.h.

Referenced by ff_vk_extensions_to_mask().

◆ FF_VK_EXT_EXTERNAL_WIN32_MEMORY

#define FF_VK_EXT_EXTERNAL_WIN32_MEMORY   (1ULL << 6) /* VK_KHR_external_memory_win32 */

◆ FF_VK_EXT_EXTERNAL_WIN32_SEM

#define FF_VK_EXT_EXTERNAL_WIN32_SEM   (1ULL << 7) /* VK_KHR_external_semaphore_win32 */

◆ FF_VK_EXT_DEVICE_DRM

#define FF_VK_EXT_DEVICE_DRM   (1ULL << 9) /* VK_EXT_physical_device_drm */

Definition at line 42 of file vulkan_functions.h.

Referenced by ff_vk_extensions_to_mask(), and find_device().

◆ FF_VK_EXT_ATOMIC_FLOAT

#define FF_VK_EXT_ATOMIC_FLOAT   (1ULL << 10) /* VK_EXT_shader_atomic_float */

◆ FF_VK_EXT_COOP_MATRIX

#define FF_VK_EXT_COOP_MATRIX   (1ULL << 11) /* VK_KHR_cooperative_matrix */

◆ FF_VK_EXT_OPTICAL_FLOW

#define FF_VK_EXT_OPTICAL_FLOW   (1ULL << 12) /* VK_NV_optical_flow */

Definition at line 45 of file vulkan_functions.h.

Referenced by ff_vk_extensions_to_mask(), and ff_vk_load_props().

◆ FF_VK_EXT_SHADER_OBJECT

#define FF_VK_EXT_SHADER_OBJECT   (1ULL << 13) /* VK_EXT_shader_object */

◆ FF_VK_EXT_PUSH_DESCRIPTOR

#define FF_VK_EXT_PUSH_DESCRIPTOR   (1ULL << 14) /* VK_KHR_push_descriptor */

Definition at line 47 of file vulkan_functions.h.

Referenced by ff_vk_extensions_to_mask(), ff_vk_load_props(), and init_descriptors().

◆ FF_VK_EXT_RELAXED_EXTENDED_INSTR

#define FF_VK_EXT_RELAXED_EXTENDED_INSTR   (1ULL << 15) /* VK_KHR_shader_relaxed_extended_instruction */

Definition at line 48 of file vulkan_functions.h.

Referenced by device_features_init(), and ff_vk_extensions_to_mask().

◆ FF_VK_EXT_EXPECT_ASSUME

#define FF_VK_EXT_EXPECT_ASSUME   (1ULL << 16) /* VK_KHR_shader_expect_assume */

Definition at line 49 of file vulkan_functions.h.

Referenced by device_features_init(), and ff_vk_extensions_to_mask().

◆ FF_VK_EXT_SUBGROUP_ROTATE

#define FF_VK_EXT_SUBGROUP_ROTATE   (1ULL << 17) /* VK_KHR_shader_subgroup_rotate */

Definition at line 50 of file vulkan_functions.h.

Referenced by device_features_init(), and ff_vk_extensions_to_mask().

◆ FF_VK_EXT_HOST_IMAGE_COPY

#define FF_VK_EXT_HOST_IMAGE_COPY   (1ULL << 18) /* VK_EXT_host_image_copy */

◆ FF_VK_EXT_ZERO_INITIALIZE

#define FF_VK_EXT_ZERO_INITIALIZE   (1ULL << 19) /* VK_EXT_zero_initialize_device_memory */

Definition at line 52 of file vulkan_functions.h.

Referenced by device_features_init(), and ff_vk_extensions_to_mask().

◆ FF_VK_EXT_EXPLICIT_MEM_LAYOUT

#define FF_VK_EXT_EXPLICIT_MEM_LAYOUT   (1ULL << 20) /* VK_KHR_workgroup_memory_explicit_layout */

Definition at line 53 of file vulkan_functions.h.

Referenced by device_features_init(), and ff_vk_extensions_to_mask().

◆ FF_VK_EXT_REPLICATED_COMPOSITES

#define FF_VK_EXT_REPLICATED_COMPOSITES   (1ULL << 21) /* VK_EXT_shader_replicated_composites */

Definition at line 54 of file vulkan_functions.h.

Referenced by device_features_init(), and ff_vk_extensions_to_mask().

◆ FF_VK_EXT_LONG_VECTOR

#define FF_VK_EXT_LONG_VECTOR   (1ULL << 22) /* VK_EXT_shader_long_vector */

◆ FF_VK_EXT_INTERNAL_QUEUE_SYNC

#define FF_VK_EXT_INTERNAL_QUEUE_SYNC   (1ULL << 23) /* VK_KHR_internally_synchronized_queues */

◆ FF_VK_EXT_MAXIMAL_RECONVERGENCE

#define FF_VK_EXT_MAXIMAL_RECONVERGENCE   (1ULL << 24) /* VK_KHR_shader_maximal_reconvergence */

Definition at line 57 of file vulkan_functions.h.

Referenced by device_features_init(), and ff_vk_extensions_to_mask().

◆ FF_VK_EXT_MAINTENANCE_9

#define FF_VK_EXT_MAINTENANCE_9   (1ULL << 25) /* VK_KHR_maintenance9 */

◆ FF_VK_EXT_UNIFIED_IMAGE_LAYOUTS

#define FF_VK_EXT_UNIFIED_IMAGE_LAYOUTS   (1ULL << 26) /* VK_KHR_unified_image_layouts */

◆ FF_VK_EXT_VIDEO_QUEUE

#define FF_VK_EXT_VIDEO_QUEUE   (1ULL << 36) /* VK_KHR_video_queue */

◆ FF_VK_EXT_VIDEO_MAINTENANCE_1

#define FF_VK_EXT_VIDEO_MAINTENANCE_1   (1ULL << 37) /* VK_KHR_video_maintenance1 */

◆ FF_VK_EXT_VIDEO_MAINTENANCE_2

#define FF_VK_EXT_VIDEO_MAINTENANCE_2   (1ULL << 38) /* VK_KHR_video_maintenance2 */

◆ FF_VK_EXT_VIDEO_DECODE_QUEUE

#define FF_VK_EXT_VIDEO_DECODE_QUEUE   (1ULL << 40) /* VK_KHR_video_decode_queue */

Definition at line 66 of file vulkan_functions.h.

Referenced by ff_vk_extensions_to_mask(), and vulkan_decode_bootstrap().

◆ FF_VK_EXT_VIDEO_DECODE_H264

#define FF_VK_EXT_VIDEO_DECODE_H264   (1ULL << 41) /* VK_KHR_video_decode_h264 */

Definition at line 67 of file vulkan_functions.h.

Referenced by ff_vk_extensions_to_mask().

◆ FF_VK_EXT_VIDEO_DECODE_H265

#define FF_VK_EXT_VIDEO_DECODE_H265   (1ULL << 42) /* VK_KHR_video_decode_h265 */

Definition at line 68 of file vulkan_functions.h.

Referenced by ff_vk_extensions_to_mask().

◆ FF_VK_EXT_VIDEO_DECODE_VP9

#define FF_VK_EXT_VIDEO_DECODE_VP9   (1ULL << 43) /* VK_KHR_video_decode_vp9 */

Definition at line 69 of file vulkan_functions.h.

Referenced by device_features_init(), and ff_vk_extensions_to_mask().

◆ FF_VK_EXT_VIDEO_DECODE_AV1

#define FF_VK_EXT_VIDEO_DECODE_AV1   (1ULL << 44) /* VK_KHR_video_decode_av1 */

Definition at line 70 of file vulkan_functions.h.

Referenced by ff_vk_extensions_to_mask().

◆ FF_VK_EXT_VIDEO_ENCODE_QUEUE

#define FF_VK_EXT_VIDEO_ENCODE_QUEUE   (1ULL << 50) /* VK_KHR_video_encode_queue */

◆ FF_VK_EXT_VIDEO_ENCODE_H264

#define FF_VK_EXT_VIDEO_ENCODE_H264   (1ULL << 51) /* VK_KHR_video_encode_h264 */

Definition at line 73 of file vulkan_functions.h.

Referenced by ff_vk_extensions_to_mask().

◆ FF_VK_EXT_VIDEO_ENCODE_H265

#define FF_VK_EXT_VIDEO_ENCODE_H265   (1ULL << 52) /* VK_KHR_video_encode_h265 */

Definition at line 74 of file vulkan_functions.h.

Referenced by ff_vk_extensions_to_mask().

◆ FF_VK_EXT_VIDEO_ENCODE_AV1

#define FF_VK_EXT_VIDEO_ENCODE_AV1   (1ULL << 53) /* VK_KHR_video_encode_av1 */

Definition at line 75 of file vulkan_functions.h.

Referenced by device_features_init(), and ff_vk_extensions_to_mask().

◆ FF_VK_EXT_PORTABILITY_SUBSET

#define FF_VK_EXT_PORTABILITY_SUBSET   (1ULL << 62)

Definition at line 77 of file vulkan_functions.h.

Referenced by device_features_init().

◆ FF_VK_EXT_NO_FLAG

#define FF_VK_EXT_NO_FLAG   (1ULL << 63)

Definition at line 78 of file vulkan_functions.h.

Referenced by device_features_init(), ff_vk_load_functions(), and ff_vk_load_props().

◆ FN_LIST

#define FN_LIST ( MACRO)

Definition at line 81 of file vulkan_functions.h.

Referenced by ff_vk_load_functions().

◆ FN_LIST_WIN32

#define FN_LIST_WIN32 ( MACRO)
Value:
MACRO(1, 1, FF_VK_EXT_EXTERNAL_WIN32_SEM, GetSemaphoreWin32HandleKHR) \
MACRO(1, 1, FF_VK_EXT_EXTERNAL_WIN32_MEMORY, GetMemoryWin32HandleKHR)
#define FF_VK_EXT_EXTERNAL_WIN32_SEM
#define FF_VK_EXT_EXTERNAL_WIN32_MEMORY

Definition at line 266 of file vulkan_functions.h.

Referenced by ff_vk_load_functions().

◆ PFN_DEF

#define PFN_DEF ( req_inst,
req_dev,
ext_flag,
name )
Value:
PFN_vk##name name;
const char * name
Definition qsvenc.c:142

Definition at line 271 of file vulkan_functions.h.

Typedef Documentation

◆ FFVulkanExtensions

typedef uint64_t FFVulkanExtensions

Definition at line 29 of file vulkan_functions.h.