wined3d: Added ATI Radeon HD 5xxx detection.

Aaron rnbrznr at googlemail.com
Mon Dec 28 06:52:51 CST 2009


This patch is to add detection for the new 5000 series of ATI cards. Without
this the card is reported as a ATI Radeon 9500 card.

I have tested this patch on Ubuntu 9.10 using a ATI 5770 graphics and it
works as expected (The correct card is reported).
The program used in the test was steam (
http://store.steampowered.com/about/ ) .
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20091228/9c0e3465/attachment.htm>
-------------- next part --------------
From 6d163bf11a49510ae51150fadea12caae6301a11 Mon Sep 17 00:00:00 2001
From: Aaron Brazener <rnbrznr at gmail.com>
Date: Mon, 28 Dec 2009 12:00:48 +0000
Subject: wined3d: Added ATI Radeon HD 5xxx detection.

---
 dlls/wined3d/directx.c         |   20 ++++++++++++++++++++
 dlls/wined3d/wined3d_private.h |    6 ++++++
 2 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index d0e6d3d..db07cc4 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -966,6 +966,8 @@ static const struct driver_version_information driver_version_table[] =
     {VENDOR_ATI,        CARD_ATI_RADEON_HD4600,         "ATI Radeon HD 4600 Series",        14, 10, 6764    },
     {VENDOR_ATI,        CARD_ATI_RADEON_HD4700,         "ATI Radeon HD 4700 Series",        14, 10, 6764    },
     {VENDOR_ATI,        CARD_ATI_RADEON_HD4800,         "ATI Radeon HD 4800 Series",        14, 10, 6764    },
+    {VENDOR_ATI,        CARD_ATI_RADEON_HD5700,         "ATI Radeon HD 5700 Series",        14, 10, 8681    },    
+    {VENDOR_ATI,        CARD_ATI_RADEON_HD5800,         "ATI Radeon HD 5800 Series",        14, 10, 8681    },
 
     /* TODO: Add information about legacy ATI hardware, Intel and other cards. */
 };
@@ -1430,6 +1432,24 @@ static enum wined3d_pci_device wined3d_guess_card(const struct wined3d_gl_info *
              * eg HD 4800 is returned for multiple cards, even for RV790 based ones. */
             if (WINE_D3D9_CAPABLE(gl_info))
             {
+                /* Radeon EG CYPRESS XT / PRO HD5800 - highend */
+                if (strstr(gl_renderer, "HD 5800")          /* Radeon EG CYPRESS HD58xx generic renderer string */
+                        || strstr(gl_renderer, "HD 5850")   /* Radeon EG CYPRESS XT */
+                        || strstr(gl_renderer, "HD 5870"))  /* Radeon EG CYPRESS PRO */
+                {
+                    *vidmem = 1024; /* note: HD58xx cards use 1024MB  */
+                    return CARD_ATI_RADEON_HD5800;
+                }
+
+                /* Radeon EG JUNIPER XT / LE HD5700 - midend */
+                if (strstr(gl_renderer, "HD 5700")          /* Radeon EG JUNIPER HD57xx generic renderer string */
+                        || strstr(gl_renderer, "HD 5750")   /* Radeon EG JUNIPER LE */
+                        || strstr(gl_renderer, "HD 5770"))  /* Radeon EG JUNIPER XT */
+                {
+                    *vidmem = 512; /* note: HD5770 cards use 1024MB and HD5750 cards use 512MB or 1024MB  */
+                    return CARD_ATI_RADEON_HD5700;
+                }
+
                 /* Radeon R7xx HD4800 - highend */
                 if (strstr(gl_renderer, "HD 4800")          /* Radeon RV7xx HD48xx generic renderer string */
                         || strstr(gl_renderer, "HD 4830")   /* Radeon RV770 */
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 489137c..ad85b30 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1271,6 +1271,12 @@ enum wined3d_pci_device
     CARD_ATI_RADEON_HD4850          = 0x9442,
     CARD_ATI_RADEON_HD4870          = 0x9440,
     CARD_ATI_RADEON_HD4890          = 0x9460,
+    CARD_ATI_RADEON_HD5700          = 0x68BE, /* Picked HD5750 */
+    CARD_ATI_RADEON_HD5750          = 0x68BE,
+    CARD_ATI_RADEON_HD5770          = 0x68B8,
+    CARD_ATI_RADEON_HD5800          = 0x6898, /* Picked HD5850 */
+    CARD_ATI_RADEON_HD5850          = 0x6898,
+    CARD_ATI_RADEON_HD5870          = 0x6899,
 
     CARD_NVIDIA_RIVA_128            = 0x0018,
     CARD_NVIDIA_RIVA_TNT            = 0x0020,
-- 
1.6.3.3


More information about the wine-patches mailing list