1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-19 13:51:14 +00:00
mpv/video
wm4 aacc1942fb x11: require EGL 1.5 and use eglGetPlatformDisplay()
eglGetPlatform() is a broken API, since it takes a windowing specific
argument, yet is supposed to work for multiple APIs at the same time. On
Linux, it can take both a X11 "Display" and a "wl_display". Obviously
there is no way to specify what kind of display the argument is (it's
just a void*).

Mesa has _eglNativePlatformDetectNativeDisplay, which does funny stuff
to try to guess the display type, including trying to call mincore() to
determine whether the pointer can be accessed at all. I guess this
recently accidentally broke (as a bug), but on the other hand, maybe
it's time to do this properly.

The fix is using eglGetPlaformDisplay(). This requires EGL 1.5, plus
Mesa needs to support the associated platform extension
(EGL_KHR_platform_x11).

Since I see no reasonable way to do this in a compatible way, just
require that EGL 1.5 is available. The problem is that EGL 1.4 seems to
require you to create a display to query EGL version and extension, and
you have a chicken-and-egg problem. It's very stupid. Maybe you could
jump through some more hoops to get something compatible, but fuck that.
Users on "too old" Mesa will fall back to GLX (which we keep around for
a regrettable company known by the name of Nvidia).

I think Wayland and GBM should do the same. They're sufficiently
bleeding-edge that you can expect them to have EGL 1.5. On the other
hand, the cursed RPI code will have to stay with a eglGetDisplay().

Speculative fix for #7154.

(Rant about EGL follows. Actually I deleted it.)
2019-11-16 20:55:03 +01:00
..
decode vd_lavc: don't keep packets for fallbacks if errors are tolerated 2019-11-02 23:00:49 +01:00
filter sws_utils, zimg: destroy vo_x11 and vo_drm performance 2019-10-31 16:51:12 +01:00
out x11: require EGL 1.5 and use eglGetPlatformDisplay() 2019-11-16 20:55:03 +01:00
csputils.c csputils: fix outdated comment 2019-10-20 16:00:32 +02:00
csputils.h video: add pure gamma TRC curves for 2.0, 2.4 and 2.6. 2019-09-27 13:21:41 +02:00
d3d.c video: remove mp_image_params.hw_flags field 2019-10-17 22:43:14 +02:00
d3d.h
fmt-conversion.c test: add dumping of img_format metadata 2019-11-08 21:22:49 +01:00
fmt-conversion.h
hwdec.c video: rewrite filtering glue code 2018-01-30 03:10:27 -08:00
hwdec.h video: remove mp_image_params.hw_flags field 2019-10-17 22:43:14 +02:00
image_loader.c screenshot, vo_image: use global swscale/zimg parameters 2019-10-31 15:44:09 +01:00
image_loader.h
image_writer.c screenshot, vo_image: use global swscale/zimg parameters 2019-10-31 15:44:09 +01:00
image_writer.h screenshot, vo_image: use global swscale/zimg parameters 2019-10-31 15:44:09 +01:00
img_format.c img_format: remove some unneeded alpha flag handling 2019-11-08 21:22:49 +01:00
img_format.h img_format: remove some unneeded alpha flag handling 2019-11-08 21:22:49 +01:00
mp_image_pool.c mp_image_pool: expose a function for reporting hw download format 2019-10-02 21:07:14 +02:00
mp_image_pool.h mp_image_pool: expose a function for reporting hw download format 2019-10-02 21:07:14 +02:00
mp_image.c mp_image: copy closed captions when copying attributes 2019-10-25 22:38:00 +02:00
mp_image.h video, demux: rip out unused spherical metadata code 2019-10-17 22:49:26 +02:00
sws_utils.c sws_utils: remove some unnecessary sws bug work around 2019-11-03 22:48:49 +01:00
sws_utils.h sws_utils, zimg: destroy vo_x11 and vo_drm performance 2019-10-31 16:51:12 +01:00
vaapi.c vaapi: remove hacks for pre-libva2 log callbacks 2019-10-18 15:37:16 +02:00
vaapi.h vo_gpu: hwdec_vaapi: Suppress format errors when probing 2019-07-08 01:57:02 +02:00
vdpau_functions.inc
vdpau_mixer.c
vdpau_mixer.h
vdpau.c
vdpau.h
zimg.c DOCS/contribute.md, zimg: remove 2 instances of an extraneous "s" 2019-11-07 22:53:13 +01:00
zimg.h sws_utils, zimg: destroy vo_x11 and vo_drm performance 2019-10-31 16:51:12 +01:00