From 381fa8931f95ad1dc7169459500e9331f66c2597 Mon Sep 17 00:00:00 2001 From: Aaron Brazener Date: Mon, 28 Dec 2009 12:00:48 +0000 Subject: [PATCH] wined3d: Added ATI Radeon HD 5xxx detection. --- dlls/wined3d/directx.c | 20 ++++++++++++++++++++ dlls/wined3d/wined3d_private.h | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 3ab1902ce92..713a349568b 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. */ }; @@ -1431,6 +1433,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 76d4aa5c183..b0c28041d7f 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,