Module: wine
Branch: master
Commit: 2929a3a056e29fcf89c80acc5df1623f9aff83d8
URL: https://source.winehq.org/git/wine.git/?a=commit;h=2929a3a056e29fcf89c80acc…
Author: Chip Davis <cdavis(a)codeweavers.com>
Date: Fri Apr 10 21:51:50 2020 +0430
wined3d: Use GL_APPLE_flush_render and GL_APPLE_rgb_422 to detect Apple OpenGL.
In addition to the existing GL_APPLE_ycbcr_422. Core contexts on Mac OS don't
advertise GL_APPLE_fence or GL_APPLE_ycbcr_422... but they do have
GL_APPLE_flush_render and GL_APPLE_rgb_422. So, go back to using
GL_APPLE_flush_render in our OS X detection, and accept GL_APPLE_rgb_422 in
addition to GL_APPLE_ycbcr_422.
Signed-off-by: Chip Davis <cdavis(a)codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/wined3d/adapter_gl.c | 5 ++++-
dlls/wined3d/wined3d_gl.h | 2 ++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c
index 77fe4ca720..a1170fa12d 100644
--- a/dlls/wined3d/adapter_gl.c
+++ b/dlls/wined3d/adapter_gl.c
@@ -53,6 +53,8 @@ static const struct wined3d_extension_map gl_extension_map[] =
{"GL_APPLE_fence", APPLE_FENCE },
{"GL_APPLE_float_pixels", APPLE_FLOAT_PIXELS },
{"GL_APPLE_flush_buffer_range", APPLE_FLUSH_BUFFER_RANGE },
+ {"GL_APPLE_flush_render", APPLE_FLUSH_RENDER },
+ {"GL_APPLE_rgb_422", APPLE_RGB_422 },
{"GL_APPLE_ycbcr_422", APPLE_YCBCR_422 },
/* ARB */
@@ -1225,7 +1227,8 @@ static enum wined3d_gl_vendor wined3d_guess_gl_vendor(const struct wined3d_gl_in
* is specific to the Mac OS X window management, and GL_APPLE_ycbcr_422 is QuickTime specific. So
* the chance that other implementations support them is rather small since Win32 QuickTime uses
* DirectDraw, not OpenGL. */
- if (gl_info->supported[APPLE_FENCE] && gl_info->supported[APPLE_YCBCR_422])
+ if (gl_info->supported[APPLE_FLUSH_RENDER]
+ && (gl_info->supported[APPLE_YCBCR_422] || gl_info->supported[APPLE_RGB_422]))
return GL_VENDOR_APPLE;
if (strstr(gl_vendor_string, "NVIDIA"))
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h
index 6b1c99e6da..2dbc56ab79 100644
--- a/dlls/wined3d/wined3d_gl.h
+++ b/dlls/wined3d/wined3d_gl.h
@@ -37,6 +37,8 @@ enum wined3d_gl_extension
APPLE_FENCE,
APPLE_FLOAT_PIXELS,
APPLE_FLUSH_BUFFER_RANGE,
+ APPLE_FLUSH_RENDER,
+ APPLE_RGB_422,
APPLE_YCBCR_422,
/* ARB */
ARB_BASE_INSTANCE,