FFmpeg
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
Functions
Variables
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
c
d
g
h
i
o
q
r
s
v
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
a
d
e
f
h
i
j
l
m
n
p
r
s
v
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
l
m
o
p
q
r
s
t
u
v
w
x
y
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
libavutil
vulkan_functions.h
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#ifndef AVUTIL_VULKAN_FUNCTIONS_H
20
#define AVUTIL_VULKAN_FUNCTIONS_H
21
22
#define VK_NO_PROTOTYPES
23
#define VK_ENABLE_BETA_EXTENSIONS
24
25
#include "
hwcontext.h
"
26
#include "
hwcontext_vulkan.h
"
27
28
/* An enum of bitflags for every optional extension we need */
29
typedef
uint64_t
FFVulkanExtensions
;
30
31
/* NOTE: when adding new entries, make sure to update ff_vk_extensions_to_mask */
32
#define FF_VK_EXT_EXTERNAL_DMABUF_MEMORY (1ULL << 0)
/* VK_EXT_external_memory_dma_buf */
33
#define FF_VK_EXT_DRM_MODIFIER_FLAGS (1ULL << 1)
/* VK_EXT_image_drm_format_modifier */
34
#define FF_VK_EXT_EXTERNAL_FD_MEMORY (1ULL << 2)
/* VK_KHR_external_memory_fd */
35
#define FF_VK_EXT_EXTERNAL_FD_SEM (1ULL << 3)
/* VK_KHR_external_semaphore_fd */
36
#define FF_VK_EXT_EXTERNAL_HOST_MEMORY (1ULL << 4)
/* VK_EXT_external_memory_host */
37
#define FF_VK_EXT_DEBUG_UTILS (1ULL << 5)
/* VK_EXT_debug_utils */
38
39
#define FF_VK_EXT_EXTERNAL_WIN32_MEMORY (1ULL << 6)
/* VK_KHR_external_memory_win32 */
40
#define FF_VK_EXT_EXTERNAL_WIN32_SEM (1ULL << 7)
/* VK_KHR_external_semaphore_win32 */
41
42
#define FF_VK_EXT_DESCRIPTOR_BUFFER (1ULL << 8)
/* VK_EXT_descriptor_buffer */
43
#define FF_VK_EXT_DEVICE_DRM (1ULL << 9)
/* VK_EXT_physical_device_drm */
44
#define FF_VK_EXT_ATOMIC_FLOAT (1ULL << 10)
/* VK_EXT_shader_atomic_float */
45
#define FF_VK_EXT_COOP_MATRIX (1ULL << 11)
/* VK_KHR_cooperative_matrix */
46
#define FF_VK_EXT_OPTICAL_FLOW (1ULL << 12)
/* VK_NV_optical_flow */
47
#define FF_VK_EXT_SHADER_OBJECT (1ULL << 13)
/* VK_EXT_shader_object */
48
#define FF_VK_EXT_PUSH_DESCRIPTOR (1ULL << 14)
/* VK_KHR_push_descriptor */
49
#define FF_VK_EXT_RELAXED_EXTENDED_INSTR (1ULL << 15)
/* VK_KHR_shader_relaxed_extended_instruction */
50
#define FF_VK_EXT_EXPECT_ASSUME (1ULL << 16)
/* VK_KHR_shader_expect_assume */
51
#define FF_VK_EXT_SUBGROUP_ROTATE (1ULL << 17)
/* VK_KHR_shader_subgroup_rotate */
52
#define FF_VK_EXT_HOST_IMAGE_COPY (1ULL << 18)
/* VK_EXT_host_image_copy */
53
54
/* Video extensions */
55
#define FF_VK_EXT_VIDEO_QUEUE (1ULL << 36)
/* VK_KHR_video_queue */
56
#define FF_VK_EXT_VIDEO_MAINTENANCE_1 (1ULL << 37)
/* VK_KHR_video_maintenance1 */
57
#define FF_VK_EXT_VIDEO_MAINTENANCE_2 (1ULL << 38)
/* VK_KHR_video_maintenance2 */
58
59
#define FF_VK_EXT_VIDEO_DECODE_QUEUE (1ULL << 40)
/* VK_KHR_video_decode_queue */
60
#define FF_VK_EXT_VIDEO_DECODE_H264 (1ULL << 41)
/* VK_KHR_video_decode_h264 */
61
#define FF_VK_EXT_VIDEO_DECODE_H265 (1ULL << 42)
/* VK_KHR_video_decode_h265 */
62
#define FF_VK_EXT_VIDEO_DECODE_AV1 (1ULL << 43)
/* VK_KHR_video_decode_av1 */
63
64
#define FF_VK_EXT_VIDEO_ENCODE_QUEUE (1ULL << 50)
/* VK_KHR_video_encode_queue */
65
#define FF_VK_EXT_VIDEO_ENCODE_H264 (1ULL << 51)
/* VK_KHR_video_encode_h264 */
66
#define FF_VK_EXT_VIDEO_ENCODE_H265 (1ULL << 52)
/* VK_KHR_video_encode_h265 */
67
68
#define FF_VK_EXT_PORTABILITY_SUBSET (1ULL << 62)
69
#define FF_VK_EXT_NO_FLAG (1ULL << 63)
70
71
/* Macro containing every function that we utilize in our codebase */
72
#define FN_LIST(MACRO) \
73
/* Instance */
\
74
MACRO(0, 0, FF_VK_EXT_NO_FLAG, EnumerateInstanceExtensionProperties) \
75
MACRO(0, 0, FF_VK_EXT_NO_FLAG, EnumerateInstanceLayerProperties) \
76
MACRO(0, 0, FF_VK_EXT_NO_FLAG, CreateInstance) \
77
MACRO(1, 0, FF_VK_EXT_NO_FLAG, DestroyInstance) \
78
\
79
/* Debug */
\
80
MACRO(1, 0, FF_VK_EXT_NO_FLAG, CreateDebugUtilsMessengerEXT) \
81
MACRO(1, 0, FF_VK_EXT_NO_FLAG, DestroyDebugUtilsMessengerEXT) \
82
\
83
/* Device */
\
84
MACRO(1, 0, FF_VK_EXT_NO_FLAG, GetDeviceProcAddr) \
85
MACRO(1, 0, FF_VK_EXT_NO_FLAG, CreateDevice) \
86
MACRO(1, 0, FF_VK_EXT_NO_FLAG, GetPhysicalDeviceFeatures2) \
87
MACRO(1, 0, FF_VK_EXT_NO_FLAG, GetPhysicalDeviceProperties) \
88
MACRO(1, 0, FF_VK_EXT_NO_FLAG, GetPhysicalDeviceExternalSemaphoreProperties) \
89
MACRO(1, 0, FF_VK_EXT_VIDEO_QUEUE, GetPhysicalDeviceVideoCapabilitiesKHR) \
90
MACRO(1, 0, FF_VK_EXT_VIDEO_QUEUE, GetPhysicalDeviceVideoFormatPropertiesKHR) \
91
MACRO(1, 0, FF_VK_EXT_NO_FLAG, DeviceWaitIdle) \
92
MACRO(1, 0, FF_VK_EXT_NO_FLAG, DestroyDevice) \
93
\
94
MACRO(1, 0, FF_VK_EXT_NO_FLAG, EnumeratePhysicalDevices) \
95
MACRO(1, 0, FF_VK_EXT_NO_FLAG, EnumerateDeviceExtensionProperties) \
96
\
97
MACRO(1, 0, FF_VK_EXT_NO_FLAG, GetPhysicalDeviceProperties2) \
98
MACRO(1, 0, FF_VK_EXT_NO_FLAG, GetPhysicalDeviceMemoryProperties) \
99
MACRO(1, 0, FF_VK_EXT_NO_FLAG, GetPhysicalDeviceFormatProperties2) \
100
MACRO(1, 0, FF_VK_EXT_NO_FLAG, GetPhysicalDeviceImageFormatProperties2) \
101
MACRO(1, 0, FF_VK_EXT_NO_FLAG, GetPhysicalDeviceQueueFamilyProperties) \
102
MACRO(1, 0, FF_VK_EXT_NO_FLAG, GetPhysicalDeviceQueueFamilyProperties2) \
103
MACRO(1, 0, FF_VK_EXT_COOP_MATRIX, GetPhysicalDeviceCooperativeMatrixPropertiesKHR) \
104
\
105
/* Command pool */
\
106
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateCommandPool) \
107
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyCommandPool) \
108
\
109
/* Command buffer */
\
110
MACRO(1, 1, FF_VK_EXT_NO_FLAG, AllocateCommandBuffers) \
111
MACRO(1, 1, FF_VK_EXT_NO_FLAG, BeginCommandBuffer) \
112
MACRO(1, 1, FF_VK_EXT_NO_FLAG, EndCommandBuffer) \
113
MACRO(1, 1, FF_VK_EXT_NO_FLAG, FreeCommandBuffers) \
114
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdDispatch) \
115
\
116
/* Queue */
\
117
MACRO(1, 1, FF_VK_EXT_NO_FLAG, GetDeviceQueue) \
118
MACRO(1, 1, FF_VK_EXT_NO_FLAG, QueueSubmit) \
119
MACRO(1, 1, FF_VK_EXT_NO_FLAG, QueueSubmit2) \
120
\
121
/* Fences */
\
122
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateFence) \
123
MACRO(1, 1, FF_VK_EXT_NO_FLAG, WaitForFences) \
124
MACRO(1, 1, FF_VK_EXT_NO_FLAG, GetFenceStatus) \
125
MACRO(1, 1, FF_VK_EXT_NO_FLAG, ResetFences) \
126
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyFence) \
127
\
128
/* Semaphores */
\
129
MACRO(1, 1, FF_VK_EXT_EXTERNAL_FD_SEM, GetSemaphoreFdKHR) \
130
MACRO(1, 1, FF_VK_EXT_EXTERNAL_FD_SEM, ImportSemaphoreFdKHR) \
131
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateSemaphore) \
132
MACRO(1, 1, FF_VK_EXT_NO_FLAG, WaitSemaphores) \
133
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroySemaphore) \
134
\
135
/* Memory */
\
136
MACRO(1, 1, FF_VK_EXT_EXTERNAL_FD_MEMORY, GetMemoryFdKHR) \
137
MACRO(1, 1, FF_VK_EXT_NO_FLAG, GetMemoryFdPropertiesKHR) \
138
MACRO(1, 1, FF_VK_EXT_EXTERNAL_HOST_MEMORY, GetMemoryHostPointerPropertiesEXT) \
139
MACRO(1, 1, FF_VK_EXT_NO_FLAG, AllocateMemory) \
140
MACRO(1, 1, FF_VK_EXT_NO_FLAG, MapMemory) \
141
MACRO(1, 1, FF_VK_EXT_NO_FLAG, FlushMappedMemoryRanges) \
142
MACRO(1, 1, FF_VK_EXT_NO_FLAG, InvalidateMappedMemoryRanges) \
143
MACRO(1, 1, FF_VK_EXT_NO_FLAG, UnmapMemory) \
144
MACRO(1, 1, FF_VK_EXT_NO_FLAG, FreeMemory) \
145
\
146
/* Commands */
\
147
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdBindDescriptorSets) \
148
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdPushConstants) \
149
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdBindPipeline) \
150
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdPipelineBarrier) \
151
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdCopyBufferToImage) \
152
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdCopyImageToBuffer) \
153
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdClearColorImage) \
154
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdCopyBuffer) \
155
\
156
/* Buffer */
\
157
MACRO(1, 1, FF_VK_EXT_NO_FLAG, GetBufferMemoryRequirements2) \
158
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateBuffer) \
159
MACRO(1, 1, FF_VK_EXT_NO_FLAG, BindBufferMemory) \
160
MACRO(1, 1, FF_VK_EXT_NO_FLAG, GetBufferDeviceAddress) \
161
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdFillBuffer) \
162
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyBuffer) \
163
\
164
/* Image */
\
165
MACRO(1, 1, FF_VK_EXT_DRM_MODIFIER_FLAGS, GetImageDrmFormatModifierPropertiesEXT) \
166
MACRO(1, 1, FF_VK_EXT_NO_FLAG, GetImageMemoryRequirements2) \
167
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateImage) \
168
MACRO(1, 1, FF_VK_EXT_NO_FLAG, BindImageMemory2) \
169
MACRO(1, 1, FF_VK_EXT_NO_FLAG, GetImageSubresourceLayout) \
170
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyImage) \
171
\
172
/* ImageView */
\
173
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateImageView) \
174
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyImageView) \
175
\
176
/* DescriptorSet */
\
177
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateDescriptorSetLayout) \
178
MACRO(1, 1, FF_VK_EXT_NO_FLAG, AllocateDescriptorSets) \
179
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateDescriptorPool) \
180
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyDescriptorPool) \
181
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyDescriptorSetLayout) \
182
\
183
/* Descriptor buffers */
\
184
MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, GetDescriptorSetLayoutSizeEXT) \
185
MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, GetDescriptorSetLayoutBindingOffsetEXT) \
186
MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, GetDescriptorEXT) \
187
MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, CmdBindDescriptorBuffersEXT) \
188
MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, CmdSetDescriptorBufferOffsetsEXT) \
189
\
190
/* DescriptorUpdateTemplate */
\
191
MACRO(1, 1, FF_VK_EXT_NO_FLAG, UpdateDescriptorSetWithTemplate) \
192
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateDescriptorUpdateTemplate) \
193
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyDescriptorUpdateTemplate) \
194
\
195
/* Descriptors */
\
196
MACRO(1, 1, FF_VK_EXT_NO_FLAG, UpdateDescriptorSets) \
197
MACRO(1, 1, FF_VK_EXT_PUSH_DESCRIPTOR, CmdPushDescriptorSetKHR) \
198
\
199
/* Queries */
\
200
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateQueryPool) \
201
MACRO(1, 1, FF_VK_EXT_NO_FLAG, GetQueryPoolResults) \
202
MACRO(1, 1, FF_VK_EXT_NO_FLAG, ResetQueryPool) \
203
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdBeginQuery) \
204
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdEndQuery) \
205
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdResetQueryPool) \
206
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyQueryPool) \
207
\
208
/* sync2 */
\
209
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdPipelineBarrier2) \
210
\
211
/* Host image copy */
\
212
MACRO(1, 1, FF_VK_EXT_HOST_IMAGE_COPY, TransitionImageLayoutEXT) \
213
MACRO(1, 1, FF_VK_EXT_HOST_IMAGE_COPY, CopyMemoryToImageEXT) \
214
MACRO(1, 1, FF_VK_EXT_HOST_IMAGE_COPY, CopyImageToMemoryEXT) \
215
\
216
/* Video queue */
\
217
MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CreateVideoSessionKHR) \
218
MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CreateVideoSessionParametersKHR) \
219
MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, GetVideoSessionMemoryRequirementsKHR) \
220
MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, BindVideoSessionMemoryKHR) \
221
MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CmdBeginVideoCodingKHR) \
222
MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CmdControlVideoCodingKHR) \
223
MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CmdEndVideoCodingKHR) \
224
MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, DestroyVideoSessionParametersKHR) \
225
MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, DestroyVideoSessionKHR) \
226
\
227
/* Video decoding */
\
228
MACRO(1, 1, FF_VK_EXT_VIDEO_DECODE_QUEUE, CmdDecodeVideoKHR) \
229
\
230
/* Video encoding */
\
231
MACRO(1, 1, FF_VK_EXT_VIDEO_ENCODE_QUEUE, CmdEncodeVideoKHR) \
232
MACRO(1, 1, FF_VK_EXT_VIDEO_ENCODE_QUEUE, GetEncodedVideoSessionParametersKHR) \
233
MACRO(1, 0, FF_VK_EXT_VIDEO_ENCODE_QUEUE, GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) \
234
\
235
/* Pipeline */
\
236
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreatePipelineLayout) \
237
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyPipelineLayout) \
238
\
239
/* PipelineLayout */
\
240
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateComputePipelines) \
241
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyPipeline) \
242
\
243
/* Sampler */
\
244
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateSamplerYcbcrConversion) \
245
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroySamplerYcbcrConversion) \
246
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateSampler) \
247
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroySampler) \
248
\
249
/* Optical flow */
\
250
MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, BindOpticalFlowSessionImageNV) \
251
MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, CmdOpticalFlowExecuteNV) \
252
MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, CreateOpticalFlowSessionNV) \
253
MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, DestroyOpticalFlowSessionNV) \
254
MACRO(1, 0, FF_VK_EXT_OPTICAL_FLOW, GetPhysicalDeviceOpticalFlowImageFormatsNV)\
255
\
256
/* Shaders */
\
257
MACRO(1, 1, FF_VK_EXT_NO_FLAG, CreateShaderModule) \
258
MACRO(1, 1, FF_VK_EXT_NO_FLAG, DestroyShaderModule) \
259
MACRO(1, 1, FF_VK_EXT_SHADER_OBJECT, CmdBindShadersEXT) \
260
MACRO(1, 1, FF_VK_EXT_SHADER_OBJECT, CreateShadersEXT) \
261
MACRO(1, 1, FF_VK_EXT_SHADER_OBJECT, DestroyShaderEXT) \
262
MACRO(1, 1, FF_VK_EXT_SHADER_OBJECT, GetShaderBinaryDataEXT)
263
264
/* Macro containing every win32 specific function that we utilize in our codebase */
265
#define FN_LIST_WIN32(MACRO) \
266
MACRO(1, 1, FF_VK_EXT_EXTERNAL_WIN32_SEM, GetSemaphoreWin32HandleKHR) \
267
MACRO(1, 1, FF_VK_EXT_EXTERNAL_WIN32_MEMORY, GetMemoryWin32HandleKHR)
268
269
/* Macro to turn a function name into a definition */
270
#define PFN_DEF(req_inst, req_dev, ext_flag, name) \
271
PFN_vk##name name;
272
273
/* Structure with the definition of all listed functions */
274
typedef
struct
FFVulkanFunctions
{
275
FN_LIST
(
PFN_DEF
)
276
#ifdef _WIN32
277
FN_LIST_WIN32
(
PFN_DEF
)
278
#endif
279
}
FFVulkanFunctions
;
280
281
#endif
/* AVUTIL_VULKAN_FUNCTIONS_H */
FFVulkanExtensions
uint64_t FFVulkanExtensions
Definition:
vulkan_functions.h:29
FN_LIST_WIN32
#define FN_LIST_WIN32(MACRO)
Definition:
vulkan_functions.h:265
FN_LIST
#define FN_LIST(MACRO)
Definition:
vulkan_functions.h:72
hwcontext_vulkan.h
PFN_DEF
#define PFN_DEF(req_inst, req_dev, ext_flag, name)
Definition:
vulkan_functions.h:270
hwcontext.h
FFVulkanFunctions
Definition:
vulkan_functions.h:274
Generated on Mon Jun 23 2025 19:23:15 for FFmpeg by
1.8.17