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