From 8dacfb8520b7238bae200b5d9c4e47840e7bf689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Sun, 27 Sep 2009 19:08:48 +0200 Subject: [PATCH 1/5] WineD3D: Don't use GL_NV_texture_shader on OSX I have reported this bug with a simple testcase to Apple in January 2008, when MacOS 10.4.x was current. The bug still isn't fixed on 10.6.1, so I have little hope that it will ever be fixed. The texture operations themselves sort of work, but the pixel formats are broken. Since all Intel Macs have geforce 7 or newer cards, which have ARBfp and GLSL the pixelformats are all that is of interest to us. --- dlls/wined3d/directx.c | 23 ++++++++++++++++++++++- 1 files changed, 22 insertions(+), 1 deletions(-) diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index de9b6fb..eeb28e6 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -666,6 +666,12 @@ static BOOL match_allows_spec_alpha(const struct wined3d_gl_info *gl_info, const } } +static BOOL match_apple_nvts(const struct wined3d_gl_info *gl_info, const char *gl_renderer) +{ + if(!match_apple(gl_info, gl_renderer)) return FALSE; + return GL_SUPPORT(NV_TEXTURE_SHADER); +} + static void quirk_arb_constants(struct wined3d_gl_info *gl_info) { TRACE_(d3d_caps)("Using ARB vs constant limit(=%u) for GLSL.\n", gl_info->vs_arb_constantsF); @@ -783,6 +789,13 @@ static void quirk_allows_specular_alpha(struct wined3d_gl_info *gl_info) gl_info->quirks |= WINED3D_QUIRK_ALLOWS_SPECULAR_ALPHA; } +static void quirk_apple_nvts(struct wined3d_gl_info *gl_info) +{ + gl_info->supported[NV_TEXTURE_SHADER] = FALSE; + gl_info->supported[NV_TEXTURE_SHADER2] = FALSE; + gl_info->supported[NV_TEXTURE_SHADER3] = FALSE; +} + struct driver_quirk { BOOL (*match)(const struct wined3d_gl_info *gl_info, const char *gl_renderer); @@ -847,7 +860,15 @@ static const struct driver_quirk quirk_table[] = match_allows_spec_alpha, quirk_allows_specular_alpha, "Allow specular alpha quirk" - } + }, + { + /* The pixel formats provided by GL_NV_texture_shader are broken on OSX + * (rdar://5682521). + */ + match_apple_nvts, + quirk_apple_nvts, + "Apple NV_texture_shader disable" + }, }; /* Certain applications (Steam) complain if we report an outdated driver version. In general, -- 1.6.4.4