Paul Andrew Panon : wined3d: Adjust the quirks to use the new GL_VENDOR codes.

Alexandre Julliard julliard at winehq.org
Wed Mar 3 11:15:48 CST 2010


Module: wine
Branch: master
Commit: 1735b4ee92514c23a644de77135e5b99baebcb2b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1735b4ee92514c23a644de77135e5b99baebcb2b

Author: Paul Andrew Panon <ppanon at shaw.ca>
Date:   Tue Mar  2 23:16:28 2010 -0800

wined3d: Adjust the quirks to use the new GL_VENDOR codes.

---

 dlls/wined3d/directx.c |   37 ++++++++++++++++++-------------------
 1 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index d3404ad..759e74c 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -483,7 +483,6 @@ static BOOL match_apple(const struct wined3d_gl_info *gl_info, const char *gl_re
     return FALSE;
 }
 
-
 /* Context activation is done by the caller. */
 static void test_pbo_functionality(struct wined3d_gl_info *gl_info)
 {
@@ -556,13 +555,13 @@ static void test_pbo_functionality(struct wined3d_gl_info *gl_info)
 static BOOL match_apple_intel(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 card_vendor == HW_VENDOR_INTEL && match_apple(gl_info, gl_renderer, gl_vendor, card_vendor, device);
+    return (card_vendor == HW_VENDOR_INTEL) && (gl_vendor == GL_VENDOR_APPLE);
 }
 
 static BOOL match_apple_nonr500ati(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)
 {
-    if (!match_apple(gl_info, gl_renderer, gl_vendor, card_vendor, device)) return FALSE;
+    if (gl_vendor != GL_VENDOR_APPLE) return FALSE;
     if (card_vendor != HW_VENDOR_ATI) return FALSE;
     if (device == CARD_ATI_RADEON_X1600) return FALSE;
     return TRUE;
@@ -571,10 +570,8 @@ static BOOL match_apple_nonr500ati(const struct wined3d_gl_info *gl_info, const
 static BOOL match_fglrx(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)
 {
-    if (card_vendor != HW_VENDOR_ATI) return FALSE;
-    if (match_apple(gl_info, gl_renderer, gl_vendor, card_vendor, device)) return FALSE;
-    if (strstr(gl_renderer, "DRI")) return FALSE; /* Filter out Mesa DRI drivers. */
-    return TRUE;
+    return (gl_vendor == GL_VENDOR_ATI);
+
 }
 
 static BOOL match_dx10_capable(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
@@ -907,7 +904,7 @@ static const struct driver_quirk quirk_table[] =
  */
 struct driver_version_information
 {
-    WORD card_vendor;                    /* reported PCI card vendor ID  */
+    WORD vendor;                    /* reported PCI card vendor ID  */
     WORD card;                      /* reported PCI card device ID  */
     const char *description;        /* Description of the card e.g. NVIDIA RIVA TNT */
     WORD d3d_level;                 /* driver hiword to report      */
@@ -972,7 +969,7 @@ static const struct driver_version_information driver_version_table[] =
 };
 
 static void init_driver_info(struct wined3d_driver_info *driver_info,
-        enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
     OSVERSIONINFOW os_version;
     WORD driver_os_version;
@@ -981,9 +978,9 @@ static void init_driver_info(struct wined3d_driver_info *driver_info,
     if (wined3d_settings.pci_vendor_id != PCI_VENDOR_NONE)
     {
         TRACE_(d3d_caps)("Overriding PCI vendor ID with: %04x\n", wined3d_settings.pci_vendor_id);
-        card_vendor = wined3d_settings.pci_vendor_id;
+        vendor = wined3d_settings.pci_vendor_id;
     }
-    driver_info->vendor = card_vendor;
+    driver_info->vendor = vendor;
 
     if (wined3d_settings.pci_device_id != PCI_DEVICE_NONE)
     {
@@ -992,7 +989,7 @@ static void init_driver_info(struct wined3d_driver_info *driver_info,
     }
     driver_info->device = device;
 
-    switch (card_vendor)
+    switch (vendor)
     {
         case HW_VENDOR_ATI:
             driver_info->name = "ati2dvag.dll";
@@ -1002,8 +999,9 @@ static void init_driver_info(struct wined3d_driver_info *driver_info,
             driver_info->name = "nv4_disp.dll";
             break;
 
+        case HW_VENDOR_INTEL:
         default:
-            FIXME_(d3d_caps)("Unhandled card vendor %04x.\n", card_vendor);
+            FIXME_(d3d_caps)("Unhandled vendor %04x.\n", vendor);
             driver_info->name = "Display";
             break;
     }
@@ -1058,9 +1056,9 @@ static void init_driver_info(struct wined3d_driver_info *driver_info,
 
     for (i = 0; i < (sizeof(driver_version_table) / sizeof(driver_version_table[0])); ++i)
     {
-        if (card_vendor == driver_version_table[i].card_vendor && device == driver_version_table[i].card)
+        if (vendor == driver_version_table[i].vendor && device == driver_version_table[i].card)
         {
-            TRACE_(d3d_caps)("Found card %04x:%04x in driver DB.\n", card_vendor, device);
+            TRACE_(d3d_caps)("Found card %04x:%04x in driver DB.\n", vendor, device);
 
             driver_info->description = driver_version_table[i].description;
             driver_info->version_high = MAKEDWORD_VERSION(driver_os_version, driver_version_table[i].d3d_level);
@@ -1171,13 +1169,14 @@ static enum wined3d_pci_vendor wined3d_guess_card_vendor(const char *gl_vendor_s
             || strstr(gl_vendor_string, "VMware, Inc."))
         return HW_VENDOR_WINE;
 
-    FIXME_(d3d_caps)("Received unrecognized GL_VENDOR %s. Returning HW_VENDOR_WINE.\n", debugstr_a(gl_vendor_string));
+    FIXME_(d3d_caps)("Received unrecognized GL_VENDOR %s. Returning HW_VENDOR_NVIDIA.\n", debugstr_a(gl_vendor_string));
 
-    return HW_VENDOR_WINE;
+    return HW_VENDOR_NVIDIA;
 }
 
+
 static enum wined3d_pci_device wined3d_guess_card(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
-        enum wined3d_pci_vendor *card_vendor, unsigned int *vidmem)
+        enum wined3d_gl_vendor *gl_vendor, enum wined3d_pci_vendor *card_vendor, unsigned int *vidmem)
 {
     /* Below is a list of Nvidia and ATI GPUs. Both vendors have dozens of
      * different GPUs with roughly the same features. In most cases GPUs from a
@@ -2213,7 +2212,7 @@ static BOOL IWineD3DImpl_FillGLCaps(struct wined3d_adapter *adapter)
     card_vendor = wined3d_guess_card_vendor(gl_string, gl_renderer);
     TRACE_(d3d_caps)("found GL_VENDOR (%s)->(0x%04x/0x%04x)\n", debugstr_a(gl_string), gl_vendor, card_vendor);
 
-    device = wined3d_guess_card(gl_info, gl_renderer, &card_vendor, &vidmem);
+    device = wined3d_guess_card(gl_info, gl_renderer, &gl_vendor, &card_vendor, &vidmem);
     TRACE_(d3d_caps)("FOUND (fake) card: 0x%x (vendor id), 0x%x (device id)\n", card_vendor, device);
 
     /* If we have an estimate use it, else default to 64MB;  */




More information about the wine-cvs mailing list