[FFmpeg-devel] [PATCH v2] avcodec/vc2enc: Initial vulkan VC2 encoder
Michael Niedermayer
michael at niedermayer.cc
Wed Oct 30 04:27:21 EET 2024
On Sun, Oct 27, 2024 at 04:28:27PM +0200, IndecisiveTurtle wrote:
> Implements a Vulkan based dirac encoder. Supports Haar and Legall wavelets and should work with all wavelet depths.
>
> Performance wise, encoding a 1080p 1-minute video is performed in about 2.5 minutes with the cpu encoder running on my Ryzen 5 4600H, while it takes about 30 seconds on my NVIDIA GTX 1650
>
> Haar shader has a subgroup optimized variant that applies when configured wavelet depth allows it
>
> lavapipe seems to be bugged for some reason, after a bunch of debugging I'm not quite sure if it's a bug here or in lavapipe. But people probably dont want to use this with a software implementation anyway.
> ---
> configure | 1 +
> libavcodec/Makefile | 5 +-
> libavcodec/allcodecs.c | 1 +
> libavcodec/vc2enc.c | 501 +--------------
> libavcodec/vc2enc_common.c | 368 +++++++++++
> libavcodec/vc2enc_common.h | 279 ++++++++
> libavcodec/vc2enc_vulkan.c | 781 +++++++++++++++++++++++
> libavcodec/vulkan/dwt_haar.comp | 76 +++
> libavcodec/vulkan/dwt_haar_subgroup.comp | 94 +++
> libavcodec/vulkan/dwt_hor_legall.comp | 61 ++
> libavcodec/vulkan/dwt_legall.comp | 74 +++
> libavcodec/vulkan/dwt_upload.comp | 45 ++
> libavcodec/vulkan/dwt_ver_legall.comp | 55 ++
> libavcodec/vulkan/encode.comp | 256 ++++++++
> libavcodec/vulkan/slice_sizes.comp | 184 ++++++
> 15 files changed, 2280 insertions(+), 501 deletions(-)
> create mode 100644 libavcodec/vc2enc_common.c
> create mode 100644 libavcodec/vc2enc_common.h
> create mode 100644 libavcodec/vc2enc_vulkan.c
> create mode 100644 libavcodec/vulkan/dwt_haar.comp
> create mode 100644 libavcodec/vulkan/dwt_haar_subgroup.comp
> create mode 100644 libavcodec/vulkan/dwt_hor_legall.comp
> create mode 100644 libavcodec/vulkan/dwt_legall.comp
> create mode 100644 libavcodec/vulkan/dwt_upload.comp
> create mode 100644 libavcodec/vulkan/dwt_ver_legall.comp
> create mode 100644 libavcodec/vulkan/encode.comp
> create mode 100644 libavcodec/vulkan/slice_sizes.comp
doesnt build: (ubuntu 20.04)
In file included from ./libavutil/vulkan_functions.h:26,
from ./libavutil/vulkan.h:30,
from libavcodec/vc2enc_common.h:31,
from libavcodec/vc2enc_common.c:22:
./libavutil/hwcontext_vulkan.h:44:5: error: unknown type name ‘VkVideoCodecOperationFlagBitsKHR’
44 | VkVideoCodecOperationFlagBitsKHR video_caps;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./libavutil/vulkan.h:30,
from libavcodec/vc2enc_common.h:31,
from libavcodec/vc2enc_common.c:22:
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:85:5: note: in expansion of macro ‘PFN_DEF’
85 | MACRO(1, 0, FF_VK_EXT_VIDEO_QUEUE, GetPhysicalDeviceVideoCapabilitiesKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:86:5: note: in expansion of macro ‘PFN_DEF’
86 | MACRO(1, 0, FF_VK_EXT_VIDEO_QUEUE, GetPhysicalDeviceVideoFormatPropertiesKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:99:5: note: in expansion of macro ‘PFN_DEF’
99 | MACRO(1, 0, FF_VK_EXT_COOP_MATRIX, GetPhysicalDeviceCooperativeMatrixPropertiesKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkQueueSubmit2’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:115:5: note: in expansion of macro ‘PFN_DEF’
115 | MACRO(1, 1, FF_VK_EXT_NO_FLAG, QueueSubmit2) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetDescriptorSetLayoutSizeEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:178:5: note: in expansion of macro ‘PFN_DEF’
178 | MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, GetDescriptorSetLayoutSizeEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetDescriptorSetLayoutBindingOffsetEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:179:5: note: in expansion of macro ‘PFN_DEF’
179 | MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, GetDescriptorSetLayoutBindingOffsetEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetDescriptorEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:180:5: note: in expansion of macro ‘PFN_DEF’
180 | MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, GetDescriptorEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdBindDescriptorBuffersEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:181:5: note: in expansion of macro ‘PFN_DEF’
181 | MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, CmdBindDescriptorBuffersEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdSetDescriptorBufferOffsetsEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:182:5: note: in expansion of macro ‘PFN_DEF’
182 | MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, CmdSetDescriptorBufferOffsetsEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdPipelineBarrier2’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:203:5: note: in expansion of macro ‘PFN_DEF’
203 | MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdPipelineBarrier2) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCreateVideoSessionKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:206:5: note: in expansion of macro ‘PFN_DEF’
206 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CreateVideoSessionKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCreateVideoSessionParametersKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:207:5: note: in expansion of macro ‘PFN_DEF’
207 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CreateVideoSessionParametersKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetVideoSessionMemoryRequirementsKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:208:5: note: in expansion of macro ‘PFN_DEF’
208 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, GetVideoSessionMemoryRequirementsKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkBindVideoSessionMemoryKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:209:5: note: in expansion of macro ‘PFN_DEF’
209 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, BindVideoSessionMemoryKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdBeginVideoCodingKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:210:5: note: in expansion of macro ‘PFN_DEF’
210 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CmdBeginVideoCodingKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdControlVideoCodingKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:211:5: note: in expansion of macro ‘PFN_DEF’
211 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CmdControlVideoCodingKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdEndVideoCodingKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:212:5: note: in expansion of macro ‘PFN_DEF’
212 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CmdEndVideoCodingKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkDestroyVideoSessionParametersKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:213:5: note: in expansion of macro ‘PFN_DEF’
213 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, DestroyVideoSessionParametersKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkDestroyVideoSessionKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:214:5: note: in expansion of macro ‘PFN_DEF’
214 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, DestroyVideoSessionKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdDecodeVideoKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:217:5: note: in expansion of macro ‘PFN_DEF’
217 | MACRO(1, 1, FF_VK_EXT_VIDEO_DECODE_QUEUE, CmdDecodeVideoKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdEncodeVideoKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:220:5: note: in expansion of macro ‘PFN_DEF’
220 | MACRO(1, 1, FF_VK_EXT_VIDEO_ENCODE_QUEUE, CmdEncodeVideoKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetEncodedVideoSessionParametersKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:221:5: note: in expansion of macro ‘PFN_DEF’
221 | MACRO(1, 1, FF_VK_EXT_VIDEO_ENCODE_QUEUE, GetEncodedVideoSessionParametersKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:222:5: note: in expansion of macro ‘PFN_DEF’
222 | MACRO(1, 0, FF_VK_EXT_VIDEO_ENCODE_QUEUE, GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkBindOpticalFlowSessionImageNV’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:239:5: note: in expansion of macro ‘PFN_DEF’
239 | MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, BindOpticalFlowSessionImageNV) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdOpticalFlowExecuteNV’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:240:5: note: in expansion of macro ‘PFN_DEF’
240 | MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, CmdOpticalFlowExecuteNV) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCreateOpticalFlowSessionNV’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:241:5: note: in expansion of macro ‘PFN_DEF’
241 | MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, CreateOpticalFlowSessionNV) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkDestroyOpticalFlowSessionNV’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:242:5: note: in expansion of macro ‘PFN_DEF’
242 | MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, DestroyOpticalFlowSessionNV) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:243:5: note: in expansion of macro ‘PFN_DEF’
243 | MACRO(1, 0, FF_VK_EXT_OPTICAL_FLOW, GetPhysicalDeviceOpticalFlowImageFormatsNV)\
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdBindShadersEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:248:5: note: in expansion of macro ‘PFN_DEF’
248 | MACRO(1, 1, FF_VK_EXT_SHADER_OBJECT, CmdBindShadersEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCreateShadersEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:249:5: note: in expansion of macro ‘PFN_DEF’
249 | MACRO(1, 1, FF_VK_EXT_SHADER_OBJECT, CreateShadersEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkDestroyShaderEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:250:5: note: in expansion of macro ‘PFN_DEF’
250 | MACRO(1, 1, FF_VK_EXT_SHADER_OBJECT, DestroyShaderEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetShaderBinaryDataEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:251:5: note: in expansion of macro ‘PFN_DEF’
251 | MACRO(1, 1, FF_VK_EXT_SHADER_OBJECT, GetShaderBinaryDataEXT)
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
In file included from libavcodec/vc2enc_common.h:31,
from libavcodec/vc2enc_common.c:22:
./libavutil/vulkan.h:95:5: error: unknown type name ‘VkPipelineStageFlags2’
95 | VkPipelineStageFlags2 stage;
| ^~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:96:5: error: unknown type name ‘VkAccessFlags2’
96 | VkAccessFlags2 access;
| ^~~~~~~~~~~~~~
./libavutil/vulkan.h:137:5: error: unknown type name ‘VkSemaphoreSubmitInfo’
137 | VkSemaphoreSubmitInfo *sem_wait;
| ^~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:141:5: error: unknown type name ‘VkSemaphoreSubmitInfo’
141 | VkSemaphoreSubmitInfo *sem_sig;
| ^~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:194:5: error: unknown type name ‘VkPipelineShaderStageRequiredSubgroupSizeCreateInfo’
194 | VkPipelineShaderStageRequiredSubgroupSizeCreateInfo subgroup_info;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:197:5: error: unknown type name ‘VkShaderEXT’
197 | VkShaderEXT object;
| ^~~~~~~~~~~
./libavutil/vulkan.h:234:5: error: unknown type name ‘VkDescriptorBufferBindingInfoEXT’
234 | VkDescriptorBufferBindingInfoEXT *desc_bind;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:273:5: error: unknown type name ‘VkPhysicalDeviceDescriptorBufferPropertiesEXT’
273 | VkPhysicalDeviceDescriptorBufferPropertiesEXT desc_buf_props;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:274:5: error: unknown type name ‘VkPhysicalDeviceSubgroupSizeControlProperties’
274 | VkPhysicalDeviceSubgroupSizeControlProperties subgroup_props;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:275:5: error: unknown type name ‘VkPhysicalDeviceCooperativeMatrixPropertiesKHR’
275 | VkPhysicalDeviceCooperativeMatrixPropertiesKHR coop_matrix_props;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:276:5: error: unknown type name ‘VkPhysicalDeviceOpticalFlowPropertiesNV’
276 | VkPhysicalDeviceOpticalFlowPropertiesNV optical_flow_props;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:277:5: error: unknown type name ‘VkQueueFamilyQueryResultStatusPropertiesKHR’
277 | VkQueueFamilyQueryResultStatusPropertiesKHR *query_props;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:278:5: error: unknown type name ‘VkQueueFamilyVideoPropertiesKHR’
278 | VkQueueFamilyVideoPropertiesKHR *video_props;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:282:5: error: unknown type name ‘VkCooperativeMatrixPropertiesKHR’
282 | VkCooperativeMatrixPropertiesKHR *coop_mat_props;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:285:5: error: unknown type name ‘VkPhysicalDeviceShaderAtomicFloatFeaturesEXT’
285 | VkPhysicalDeviceShaderAtomicFloatFeaturesEXT atomic_float_feats;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./libavutil/vulkan.h:433:33: error: unknown type name ‘VkPipelineStageFlagBits2’; did you mean ‘VkPipelineStageFlagBits’?
433 | VkPipelineStageFlagBits2 stage,
| ^~~~~~~~~~~~~~~~~~~~~~~~
| VkPipelineStageFlagBits
./libavutil/vulkan.h:436:30: error: unknown type name ‘VkPipelineStageFlagBits2’; did you mean ‘VkPipelineStageFlagBits’?
436 | VkPipelineStageFlagBits2 wait_stage,
| ^~~~~~~~~~~~~~~~~~~~~~~~
| VkPipelineStageFlagBits
./libavutil/vulkan.h:437:30: error: unknown type name ‘VkPipelineStageFlagBits2’; did you mean ‘VkPipelineStageFlagBits’?
437 | VkPipelineStageFlagBits2 signal_stage);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| VkPipelineStageFlagBits
./libavutil/vulkan.h:439:30: error: unknown type name ‘VkImageMemoryBarrier2’; did you mean ‘VkImageMemoryBarrier’?
439 | VkImageMemoryBarrier2 *bar, uint32_t *nb_img_bar);
| ^~~~~~~~~~~~~~~~~~~~~
| VkImageMemoryBarrier
./libavutil/vulkan.h:453:40: error: unknown type name ‘VkImageMemoryBarrier2’; did you mean ‘VkImageMemoryBarrier’?
453 | AVFrame *pic, VkImageMemoryBarrier2 *bar, int *nb_bar,
| ^~~~~~~~~~~~~~~~~~~~~
| VkImageMemoryBarrier
make: *** [ffbuild/common.mak:81: libavcodec/vc2enc_common.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from ./libavutil/vulkan_functions.h:26,
from ./libavutil/vulkan.h:30,
from libavcodec/vc2enc_common.h:31,
from libavcodec/vc2enc.c:32:
./libavutil/hwcontext_vulkan.h:44:5: error: unknown type name ‘VkVideoCodecOperationFlagBitsKHR’
44 | VkVideoCodecOperationFlagBitsKHR video_caps;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./libavutil/vulkan.h:30,
from libavcodec/vc2enc_common.h:31,
from libavcodec/vc2enc.c:32:
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:85:5: note: in expansion of macro ‘PFN_DEF’
85 | MACRO(1, 0, FF_VK_EXT_VIDEO_QUEUE, GetPhysicalDeviceVideoCapabilitiesKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:86:5: note: in expansion of macro ‘PFN_DEF’
86 | MACRO(1, 0, FF_VK_EXT_VIDEO_QUEUE, GetPhysicalDeviceVideoFormatPropertiesKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:99:5: note: in expansion of macro ‘PFN_DEF’
99 | MACRO(1, 0, FF_VK_EXT_COOP_MATRIX, GetPhysicalDeviceCooperativeMatrixPropertiesKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkQueueSubmit2’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:115:5: note: in expansion of macro ‘PFN_DEF’
115 | MACRO(1, 1, FF_VK_EXT_NO_FLAG, QueueSubmit2) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetDescriptorSetLayoutSizeEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:178:5: note: in expansion of macro ‘PFN_DEF’
178 | MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, GetDescriptorSetLayoutSizeEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetDescriptorSetLayoutBindingOffsetEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:179:5: note: in expansion of macro ‘PFN_DEF’
179 | MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, GetDescriptorSetLayoutBindingOffsetEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetDescriptorEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:180:5: note: in expansion of macro ‘PFN_DEF’
180 | MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, GetDescriptorEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdBindDescriptorBuffersEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:181:5: note: in expansion of macro ‘PFN_DEF’
181 | MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, CmdBindDescriptorBuffersEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdSetDescriptorBufferOffsetsEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:182:5: note: in expansion of macro ‘PFN_DEF’
182 | MACRO(1, 1, FF_VK_EXT_DESCRIPTOR_BUFFER, CmdSetDescriptorBufferOffsetsEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdPipelineBarrier2’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:203:5: note: in expansion of macro ‘PFN_DEF’
203 | MACRO(1, 1, FF_VK_EXT_NO_FLAG, CmdPipelineBarrier2) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCreateVideoSessionKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:206:5: note: in expansion of macro ‘PFN_DEF’
206 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CreateVideoSessionKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCreateVideoSessionParametersKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:207:5: note: in expansion of macro ‘PFN_DEF’
207 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CreateVideoSessionParametersKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetVideoSessionMemoryRequirementsKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:208:5: note: in expansion of macro ‘PFN_DEF’
208 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, GetVideoSessionMemoryRequirementsKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkBindVideoSessionMemoryKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:209:5: note: in expansion of macro ‘PFN_DEF’
209 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, BindVideoSessionMemoryKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdBeginVideoCodingKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:210:5: note: in expansion of macro ‘PFN_DEF’
210 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CmdBeginVideoCodingKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdControlVideoCodingKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:211:5: note: in expansion of macro ‘PFN_DEF’
211 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CmdControlVideoCodingKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdEndVideoCodingKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:212:5: note: in expansion of macro ‘PFN_DEF’
212 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, CmdEndVideoCodingKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkDestroyVideoSessionParametersKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:213:5: note: in expansion of macro ‘PFN_DEF’
213 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, DestroyVideoSessionParametersKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkDestroyVideoSessionKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:214:5: note: in expansion of macro ‘PFN_DEF’
214 | MACRO(1, 1, FF_VK_EXT_VIDEO_QUEUE, DestroyVideoSessionKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdDecodeVideoKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:217:5: note: in expansion of macro ‘PFN_DEF’
217 | MACRO(1, 1, FF_VK_EXT_VIDEO_DECODE_QUEUE, CmdDecodeVideoKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdEncodeVideoKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:220:5: note: in expansion of macro ‘PFN_DEF’
220 | MACRO(1, 1, FF_VK_EXT_VIDEO_ENCODE_QUEUE, CmdEncodeVideoKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetEncodedVideoSessionParametersKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:221:5: note: in expansion of macro ‘PFN_DEF’
221 | MACRO(1, 1, FF_VK_EXT_VIDEO_ENCODE_QUEUE, GetEncodedVideoSessionParametersKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:222:5: note: in expansion of macro ‘PFN_DEF’
222 | MACRO(1, 0, FF_VK_EXT_VIDEO_ENCODE_QUEUE, GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkBindOpticalFlowSessionImageNV’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:239:5: note: in expansion of macro ‘PFN_DEF’
239 | MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, BindOpticalFlowSessionImageNV) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdOpticalFlowExecuteNV’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:240:5: note: in expansion of macro ‘PFN_DEF’
240 | MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, CmdOpticalFlowExecuteNV) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCreateOpticalFlowSessionNV’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:241:5: note: in expansion of macro ‘PFN_DEF’
241 | MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, CreateOpticalFlowSessionNV) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkDestroyOpticalFlowSessionNV’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:242:5: note: in expansion of macro ‘PFN_DEF’
242 | MACRO(1, 1, FF_VK_EXT_OPTICAL_FLOW, DestroyOpticalFlowSessionNV) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:243:5: note: in expansion of macro ‘PFN_DEF’
243 | MACRO(1, 0, FF_VK_EXT_OPTICAL_FLOW, GetPhysicalDeviceOpticalFlowImageFormatsNV)\
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCmdBindShadersEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:248:5: note: in expansion of macro ‘PFN_DEF’
248 | MACRO(1, 1, FF_VK_EXT_SHADER_OBJECT, CmdBindShadersEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkCreateShadersEXT’
260 | PFN_vk##name name;
| ^~~~~~
./libavutil/vulkan_functions.h:249:5: note: in expansion of macro ‘PFN_DEF’
249 | MACRO(1, 1, FF_VK_EXT_SHADER_OBJECT, CreateShadersEXT) \
| ^~~~~
./libavutil/vulkan_functions.h:264:5: note: in expansion of macro ‘FN_LIST’
264 | FN_LIST(PFN_DEF)
| ^~~~~~~
./libavutil/vulkan_functions.h:260:5: error: unknown type name ‘PFN_vkDestroyShaderEXT’
...
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Everything should be made as simple as possible, but not simpler.
-- Albert Einstein
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20241030/6f8c1227/attachment.sig>
More information about the ffmpeg-devel
mailing list