[FFmpeg-devel] [PATCH 0/14] Vulkan fixes and improvements

Lynne dev at lynne.ee
Wed Nov 10 09:20:14 EET 2021


I've extensively fixed and improved our Vulkan codebase, and it's
now up to standard. Since it's a 14-part patchset, I've uploaded
my branch for review here:
https://github.com/cyanreg/FFmpeg/tree/vulkan

The implementation now follows modern Vulkan API usage practices,
fully takes advantage of all the hardware has to offer, it's faster,
much easier to compile, static linking is possible and most importantly,
it's bug-free and extendable.

Of interest to anyone who's only interested in public API changes
are patches 2/14 and 6/14. The changes made are backwards compatible,
and will not break API users.

I've collaborated with Niklas Haas to make our APIs compatible, and
we've both improved our codebases in the process. He'll be submitting
a long-requested vf_libplacebo filter for review as soon as this gets merged.

I'm also working on a Vulkan hwaccel using the new decode API,
the branch for which can be found here:
https://github.com/cyanreg/FFmpeg/commits/vulkan_decode
Notably, libavfilter/vulkan.c will be moved into libavcodec/vulkan.h,
and will be used to handle both filtering and decoding/encoding.
No API changes will be required for it.

I've also attached the patchset here.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-hwcontext_vulkan-bump-required-Vulkan-loader-version.patch
Type: text/x-patch
Size: 2524 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-hwcontext_vulkan-switch-to-using-timeline-semaphores.patch
Type: text/x-patch
Size: 11923 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-hwcontext_vulkan-fix-mapping-from-VAAPI-frames.patch
Type: text/x-patch
Size: 17155 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-hwcontext_vulkan-port-CUDA-interop-to-use-timeline-s.patch
Type: text/x-patch
Size: 4529 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-lavfi-vulkan-port-to-using-timeline-semaphores.patch
Type: text/x-patch
Size: 3774 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0004.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-vulkan-add-support-for-encode-and-decode-queues-and-.patch
Type: text/x-patch
Size: 23553 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0005.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0007-hwcontext_vulkan-report-device-that-s-used.patch
Type: text/x-patch
Size: 1054 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0006.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0008-hwcontext_vulkan-host-wait-on-semaphores-before-free.patch
Type: text/x-patch
Size: 1752 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0007.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0009-hwcontext_vulkan-clean-up-extensions-code-and-add-ad.patch
Type: text/x-patch
Size: 4374 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0008.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0010-lavu-move-hwcontext_vulkan-s-function-loader-into-se.patch
Type: text/x-patch
Size: 51856 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0009.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0011-lavfi-vulkan-use-libavutil-s-vulkan-loader.patch
Type: text/x-patch
Size: 37060 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0010.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0012-lavfi-glslang-migrate-to-the-C-API-and-robustify-lib.patch
Type: text/x-patch
Size: 35021 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0011.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0013-lavfi-vulkan-refactor-fix-and-fully-implement-multip.patch
Type: text/x-patch
Size: 50821 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0012.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0014-doc-APIchanges-update-for-Vulkan-API-changes.patch
Type: text/x-patch
Size: 1284 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20211110/3864eaf0/attachment-0013.bin>


More information about the ffmpeg-devel mailing list