(try2)Fix ATI HD4800 being reported as ATI 9500

Robert Key hpestilence at gmail.com
Thu May 14 19:29:07 CDT 2009


Changelog:
* Added support for the ATI HD 4800 series (should be all of them).
   Used a HD4830 device id for HD4800 cards in wined3d_gl.h.
-------------- next part --------------
From 8034f52551451a8db2440ac4908ff325bae7b04d Mon Sep 17 00:00:00 2001
From: Robert Key <hpestilence at gmail.com>
Date: Thu, 14 May 2009 19:14:02 -0400
Subject: Fix ATI HD4800 being reported as ATI 9500

---
 dlls/wined3d/directx.c    |   17 ++++++++++++++---
 dlls/wined3d/wined3d_gl.h |    1 +
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 8e3c807..ad192c0 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1271,10 +1271,20 @@ static BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info *gl_info) {
             break;
         case VENDOR_ATI:
             if(WINE_D3D9_CAPABLE(gl_info)) {
+                /* Radeon R7xx HD4800 - highend */
+                if (strstr(gl_info->gl_renderer, "HD 4800") ||
+                    strstr(gl_info->gl_renderer, "HD 4830") ||
+                    strstr(gl_info->gl_renderer, "HD 4850") ||
+                    strstr(gl_info->gl_renderer, "HD 4870") ||
+                    strstr(gl_info->gl_renderer, "HD 4890"))
+                {
+                    gl_info->gl_card = CARD_ATI_RADEON_HD4800;
+                    vidmem = 512; /* HD4800 cards use 512-1024MB, up to 2048MB for X2 version */
+                }
                 /* Radeon R6xx HD2900/HD3800 - highend */
-                if (strstr(gl_info->gl_renderer, "HD 2900") ||
-                    strstr(gl_info->gl_renderer, "HD 3870") ||
-                    strstr(gl_info->gl_renderer, "HD 3850"))
+                else if (strstr(gl_info->gl_renderer, "HD 2900") ||
+                         strstr(gl_info->gl_renderer, "HD 3870") ||
+                         strstr(gl_info->gl_renderer, "HD 3850"))
                 {
                     gl_info->gl_card = CARD_ATI_RADEON_HD2900;
                     vidmem = 512; /* HD2900/HD3800 uses 256-1024MB */
@@ -4007,6 +4017,7 @@ static const struct driver_version_information driver_version_table[] = {
     {VENDOR_ATI,        CARD_ATI_RADEON_HD2300,         "ATI Mobility Radeon HD 2300",      6,  14, 10, 6764    },
     {VENDOR_ATI,        CARD_ATI_RADEON_HD2600,         "ATI Mobility Radeon HD 2600",      6,  14, 10, 6764    },
     {VENDOR_ATI,        CARD_ATI_RADEON_HD2900,         "ATI Radeon HD 2900 XT",            6,  14, 10, 6764    },
+    {VENDOR_ATI,        CARD_ATI_RADEON_HD4800,         "ATI Radeon HD 4800 Series",        6,  14, 10, 6764    },
 
     /* TODO: Add information about legacy ATI hardware, Intel and other cards */
 };
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h
index 1a9c925..615d914 100644
--- a/dlls/wined3d/wined3d_gl.h
+++ b/dlls/wined3d/wined3d_gl.h
@@ -3302,6 +3302,7 @@ typedef enum _GL_Cards {
   CARD_ATI_RADEON_HD2600          = 0x9581,
   CARD_ATI_RADEON_HD2900          = 0x9400,
   CARD_ATI_RADEON_HD3200          = 0x9620,
+  CARD_ATI_RADEON_HD4800          = 0x944c,
 
   CARD_NVIDIA_RIVA_128            = 0x0018,
   CARD_NVIDIA_RIVA_TNT            = 0x0020,
-- 
1.6.3



More information about the wine-patches mailing list