1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-07 23:51:49 +00:00
mpv/video/out/opengl
Philip Langdale 4005cda614 vo_gpu: hwdec_cuda: Implement interop for placebo
This change updates the vulkan interop code to work with the
libplacebo based ra_vk, but also introduces direct VkImage
sharing to avoid the use of the intermediate buffer.

It is also necessary and desirable to introduce explicit
semaphore bsed synchronisation for operations on the shared
images.

Synchronisation means we can safely reuse the same VkImage for every
mapped frame, by ensuring the frame is copied to the VkImage before
mapping the next frame.

This functionality requires a 417.xx or newer nvidia driver, due to
bugs in the VkImage interop in the earlier 411 and 415 drivers.

It's definitely worth the effort, as the raw throughput is about
twice that of implementation using an intermediate buffer.
2019-04-21 23:55:22 +03:00
..
angle_dynamic.c
angle_dynamic.h
common.c opengl: Support GL_ARB_sync style fences on OpenGL ES 3.0 2019-02-25 01:25:25 +01:00
common.h client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
context_android.c
context_angle.c vo_gpu: d3d11: implement tex_download() 2018-02-13 21:25:15 +11:00
context_cocoa.c cocoa: change deprecation warning from opengl-cb to libmpv 2018-04-29 15:03:47 +03:00
context_drm_egl.c context_drm_egl: implement n-buffering 2019-02-25 01:25:25 +01:00
context_dxinterop.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
context_glx.c vo, vo_gpu, glx: correct GLX_OML_sync_control usage 2018-12-06 10:32:27 +01:00
context_mali_fbdev.c
context_rpi.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
context_vdpau.c
context_wayland.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
context_win.c
context_x11egl.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
context.c vo: use a struct for vsync feedback stuff 2018-12-06 10:30:25 +01:00
context.h vo: use a struct for vsync feedback stuff 2018-12-06 10:30:25 +01:00
egl_helpers.c egl_helpers: change minimum framebuffer size to 8 bit per component 2018-04-29 02:21:32 +03:00
egl_helpers.h egl_helpers: mpegl_cb can now signal an error condition 2018-02-26 23:56:13 -08:00
formats.c
formats.h
gl_headers.h
hwdec_cuda.c vo_gpu: hwdec_cuda: Implement interop for placebo 2019-04-21 23:55:22 +03:00
hwdec_d3d11egl.c
hwdec_d3d11eglrgb.c
hwdec_drmprime_drm.c drm: rename plane options to better, invariant, names 2018-12-01 15:42:20 +02:00
hwdec_dxva2egl.c
hwdec_dxva2gldx.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
hwdec_ios.m hwdec_ios: fix crash after mapper_init failure 2018-04-17 01:06:29 +03:00
hwdec_osx.c
hwdec_rpi.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
hwdec_vaegl.c hwdec_vaegl: Fix VAAPI EGL interop used with gpu-context=drm 2018-07-09 02:33:35 +03:00
hwdec_vdpau.c
libmpv_gl.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
ra_gl.c vo_gpu: index desc namespaces by ra 2019-04-21 23:55:22 +03:00
ra_gl.h
utils.c
utils.h