[PATCH] wined3d: correctly guess_card_vendor() for gallium r600 drivers

Brian Paterni bpaterni at gmail.com
Sun Nov 7 16:08:04 CST 2010


Hello, I've been receiving a couple "unrecognized GL_VENDOR" fixme's lately and
decided to poke around wine's source. I've found that wined3d_guess_card_vendor
does not return the correct enum for people running mesa's r600g driver, and now
that r600g returns "AMD <gpu chip>" as part of openGL's renderer string, we can
easily use that to check for AMD (ATI) hardware:

---
 dlls/wined3d/directx.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 32d2431..3908c5f 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1373,11 +1373,10 @@ static enum wined3d_pci_vendor wined3d_guess_card_vendor(const char *gl_vendor_s
     if (strstr(gl_vendor_string, "ATI")
             || strstr(gl_vendor_string, "Advanced Micro Devices, Inc.")
             || strstr(gl_vendor_string, "X.Org R300 Project")
+			|| (strstr(gl_vendor_string, "X.Org") && strstr(gl_renderer, "AMD"))
             || strstr(gl_renderer, "R100")
             || strstr(gl_renderer, "R200")
-            || strstr(gl_renderer, "R300")
-            || strstr(gl_renderer, "R600")
-            || strstr(gl_renderer, "R700"))
+            || strstr(gl_renderer, "R300"))
         return HW_VENDOR_ATI;
 
     if (strstr(gl_vendor_string, "Intel(R)")
-- 
1.7.2.3




More information about the wine-patches mailing list