1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-29 10:32:15 +00:00
mpv/video/out
wm4 670a4a85a9 gl_common: improve Mesa compatibility for GL3 context creation
Don't request CONTEXT_FORWARD_COMPATIBLE when creating a GL3 context on
X11. This improves compatibility with some Mesa drivers.

Setting this bit was originally intended to make the code compatible
to newer (future, possibly not yet existing) OpenGL implementations.
These implementations wouldn't have to support deprecated legacy GL
features, which we know that we don't use, and could return a context
with a higher OpenGL version than requested.

In practice, this didn't work out. CONTEXT_FORWARD_COMPATIBLE requires
the driver to explicitly disable deprecated functionality. If it doesn't
do that, it has to reject context creation with that flag set. And it
turns out there are Mesa drivers which suffer from this caveat. See [1].

This probably also means that a GL application with a fixed set of
required GL features (such as a subset of GL 3.2 core, like vo_opengl.c)
may need to probe several GL versions if drivers really start dropping
legacy GL.

On Windows, CONTEXT_FORWARD_COMPATIBLE is still set. It is not known
if this is ideal, but fortunately there is no Mesa on Windows.

CONTEXT_CORE_PROFILE is still always set. For requested GL versions
lower than 3.2, this flag is ignored. Should we requires higher versions
later, we want it to be set, so don't remove it.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=57241
2012-11-20 18:00:16 +01:00
..
aspect.c
aspect.h
bitmap_packer.c
bitmap_packer.h
cocoa_common.h
cocoa_common.m
d3d_shader_yuv_2ch.h
d3d_shader_yuv.h
d3d_shader_yuv.hlsl
filter_kernels.c
filter_kernels.h
geometry.c
geometry.h
gl_common.c gl_common: improve Mesa compatibility for GL3 context creation 2012-11-20 18:00:16 +01:00
gl_common.h
gl_header_fixes.h clang: fix all warnings except deprecations 2012-11-13 22:19:18 +01:00
gl_osd.c
gl_osd.h
osx_common.c
osx_common.h
pnm_loader.c
pnm_loader.h
vo_caca.c
vo_corevideo.h
vo_corevideo.m options, vo_x11: remove -zoom option, make it default 2012-11-16 21:21:14 +01:00
vo_direct3d.c options, vo_x11: remove -zoom option, make it default 2012-11-16 21:21:14 +01:00
vo_image.c options, vo_x11: remove -zoom option, make it default 2012-11-16 21:21:14 +01:00
vo_lavc.c Improve compatibility with Libav 0.8.4 and ffmpeg 0.11.2 2012-11-14 11:45:52 +01:00
vo_null.c
vo_opengl_old.c options, vo_x11: remove -zoom option, make it default 2012-11-16 21:21:14 +01:00
vo_opengl_shaders.glsl
vo_opengl.c vo_opengl: remove osdcolor suboption 2012-11-16 21:21:14 +01:00
vo_vdpau.c options, vo_x11: remove -zoom option, make it default 2012-11-16 21:21:14 +01:00
vo_x11.c options, vo_x11: remove -zoom option, make it default 2012-11-16 21:21:14 +01:00
vo_xv.c options, vo_x11: remove -zoom option, make it default 2012-11-16 21:21:14 +01:00
vo.c
vo.h options, vo_x11: remove -zoom option, make it default 2012-11-16 21:21:14 +01:00
w32_common.c win32: remove pointless get/release DC wrappers 2012-11-12 20:10:42 +01:00
w32_common.h win32: remove pointless get/release DC wrappers 2012-11-12 20:10:42 +01:00
x11_common.c options: remove --display 2012-11-16 21:21:15 +01:00
x11_common.h options: remove --display 2012-11-16 21:21:15 +01:00