1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-20 14:56:55 +00:00
mpv/video
Philip Langdale b70ed35ba4 vo_gpu: hwdec_vaapi: Add Vulkan interop
This change introduces a vulkan interop path for the vaapi hwdec.
The basic principles are mostly the same as for EGL, with the
exported dma_buf being imported by Vukan. The biggest difference
is that we cannot reuse the texture as we do with OpenGL - there's
no way to rebind a VkImage to a different piece of memory, as far
as I can see. So, a new texture is created on each map call.

I did not bother implementing a code path for the old libva API as
I think it's safe to assume any system with a working vulkan driver
will have access to a newer libva.

Note that we are using separate layers for the vaapi surface, just
as is done for EGL. This is because libplacebo doesn't support
multiplane images.

This change does not include format negotiation because no driver
implements the vk_ext_image_drm_format_modifier extension that
would be required to do that. In practice, the two formats we care
about (nv12, p010) work correctly, so we are not blocked. A separate
change had to be made in libplacebo to filter out non-fatal validation
errors related to surface sizes due to the lack of format negotiation.
2019-07-08 01:57:02 +02:00
..
decode Merge branch 'master' into pr6360 2019-03-11 01:00:27 +02:00
filter vf_vapoursynth: allow multithreaded writing of source frames 2019-07-08 01:53:22 +02:00
out vo_gpu: hwdec_vaapi: Add Vulkan interop 2019-07-08 01:57:02 +02:00
csputils.c csputils: Add support for Display P3 primaries 2017-12-14 23:31:09 +02:00
csputils.h csputils: Add support for Display P3 primaries 2017-12-14 23:31:09 +02:00
d3d.c video: rewrite filtering glue code 2018-01-30 03:10:27 -08:00
d3d.h video: move d3d.c out of decode sub directory 2017-12-01 17:58:56 +01:00
fmt-conversion.c vo/gpu: hwdec_vdpau: Support direct mode for 4:4:4 content 2019-07-08 01:11:27 +02:00
fmt-conversion.h
hwdec.c video: rewrite filtering glue code 2018-01-30 03:10:27 -08:00
hwdec.h video: rewrite filtering glue code 2018-01-30 03:10:27 -08:00
image_loader.c
image_loader.h
image_writer.c vo_gpu: make screenshots use the GL renderer 2018-02-11 17:45:51 -08:00
image_writer.h vo_gpu: make screenshots use the GL renderer 2018-02-11 17:45:51 -08:00
img_format.c video: remove libavutil PSEUDOPAL stuff 2018-04-03 20:08:15 +03:00
img_format.h vo/gpu: hwdec_vdpau: Support direct mode for 4:4:4 content 2019-07-08 01:11:27 +02:00
mp_image_pool.c mp_image_pool: add helper functions for FFmpeg hw frames pools 2018-01-18 00:59:07 -08:00
mp_image_pool.h mp_image_pool: add helper functions for FFmpeg hw frames pools 2018-01-18 00:59:07 -08:00
mp_image.c mp_image: align stride to multiple of texel size 2019-04-21 23:55:22 +03:00
mp_image.h video: remove internal stereo_out flag 2018-04-29 02:21:32 +03:00
sws_utils.c sws_utils: don't force callers to provide option struct 2018-01-18 00:59:07 -08:00
sws_utils.h sws_utils: don't force callers to provide option struct 2018-01-18 00:59:07 -08:00
vaapi.c vaapi: add option to select a non-default device path 2018-03-30 14:16:07 -07:00
vaapi.h video: refactor hw device creation for hwdec copy modes 2017-12-01 08:05:16 +01:00
vdpau_functions.inc
vdpau_mixer.c video: redo video equalizer option handling 2017-08-22 17:01:35 +02:00
vdpau_mixer.h video: redo video equalizer option handling 2017-08-22 17:01:35 +02:00
vdpau.c hwdec: remove unused fields 2017-12-21 19:31:36 +01:00
vdpau.h vd_lavc, vdpau, vaapi: restore emulated API avoidance 2017-12-02 04:53:51 +01:00