[PATCH] wined3d: Add quirk for Nvidia viewport subpixel bits bug.
Józef Kucia
jkucia at codeweavers.com
Sun Feb 26 12:55:36 CST 2017
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
dlls/wined3d/directx.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 5b1605d..ab3b103 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -899,6 +899,12 @@ static BOOL match_broken_arb_fog(const struct wined3d_gl_info *gl_info, const ch
return data[0] != 0x00ff0000 || data[3] != 0x0000ff00;
}
+static BOOL match_nvidia_viewport_subpixel_bits(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+ enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
+{
+ return gl_vendor == GL_VENDOR_NVIDIA && gl_info->supported[ARB_VIEWPORT_ARRAY];
+}
+
static void quirk_apple_glsl_constants(struct wined3d_gl_info *gl_info)
{
/* MacOS needs uniforms for relative addressing offsets. This can accumulate to quite a few uniforms.
@@ -1027,6 +1033,17 @@ static void quirk_broken_arb_fog(struct wined3d_gl_info *gl_info)
gl_info->quirks |= WINED3D_QUIRK_BROKEN_ARB_FOG;
}
+static void quirk_broken_viewport_subpixel_bits(struct wined3d_gl_info *gl_info)
+{
+ TRACE("Disabling ARB_viewport_array.\n");
+ gl_info->supported[ARB_VIEWPORT_ARRAY] = FALSE;
+ if (gl_info->supported[ARB_CLIP_CONTROL])
+ {
+ TRACE("Disabling ARB_clip_control because ARB_viewport_array is not supported.\n");
+ gl_info->supported[ARB_CLIP_CONTROL] = FALSE;
+ }
+}
+
struct driver_quirk
{
BOOL (*match)(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
@@ -1117,6 +1134,11 @@ static const struct driver_quirk quirk_table[] =
quirk_broken_arb_fog,
"ARBfp fogstart == fogend workaround"
},
+ {
+ match_nvidia_viewport_subpixel_bits,
+ quirk_broken_viewport_subpixel_bits,
+ "Nvidia viewport subpixel bits bug",
+ }
};
/* Certain applications (Steam) complain if we report an outdated driver version. In general,
--
2.10.2
More information about the wine-patches
mailing list