[PATCH 2/2] wined3d: improved ATI Radeon HD 4xxx detection
Yann Droneaud
yann at droneaud.fr
Tue Jun 16 10:16:42 CDT 2009
Match mid- and low- range ATI Radeon HD 4xxx:
- 4350 / 4550
- 4600, 4650, 4670
- 4700, 4770
---
dlls/wined3d/directx.c | 42 ++++++++++++++++++++++++++++++++++++------
1 files changed, 36 insertions(+), 6 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 05443fc..3cbc1f1 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1272,16 +1272,43 @@ static BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info *gl_info) {
}
break;
case VENDOR_ATI:
+ /* See http://developer.amd.com/drivers/pc_vendor_id/Pages/default.aspx
+ *
+ * beware: renderer string do not match exact card model,
+ * eg HD 4800 is returned for multiple card, even for RV790 based one
+ */
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"))
+ if (strstr(gl_info->gl_renderer, "HD 4800") || /* Radeon RV7xx HD48xx generic renderer string */
+ strstr(gl_info->gl_renderer, "HD 4830") || /* Radeon RV770 */
+ strstr(gl_info->gl_renderer, "HD 4850") || /* Radeon RV770 */
+ strstr(gl_info->gl_renderer, "HD 4870") || /* Radeon RV770 */
+ strstr(gl_info->gl_renderer, "HD 4890")) /* Radeon RV790 */
{
gl_info->gl_card = CARD_ATI_RADEON_HD4800;
- vidmem = 512; /* HD4800 cards use 512-1024MB */
+ vidmem = 512; /* note: HD4890 cards use 1024MB */
+ }
+ /* Radeon R740 HD4700 - midend */
+ else if (strstr(gl_info->gl_renderer, "HD 4700") || /* Radeon RV770 */
+ strstr(gl_info->gl_renderer, "HD 4770")) /* Radeon RV740 */
+ {
+ gl_info->gl_card = CARD_ATI_RADEON_HD4700;
+ vidmem = 512;
+ }
+ /* Radeon R730 HD4600 - midend */
+ else if (strstr(gl_info->gl_renderer, "HD 4600") || /* Radeon RV730 */
+ strstr(gl_info->gl_renderer, "HD 4650") || /* Radeon RV730 */
+ strstr(gl_info->gl_renderer, "HD 4670")) /* Radeon RV730 */
+ {
+ gl_info->gl_card = CARD_ATI_RADEON_HD4600;
+ vidmem = 512;
+ }
+ /* Radeon R710 HD4500/HD4350 - lowend */
+ else if (strstr(gl_info->gl_renderer, "HD 4350") || /* Radeon RV710 */
+ strstr(gl_info->gl_renderer, "HD 4550")) /* Radeon RV710 */
+ {
+ gl_info->gl_card = CARD_ATI_RADEON_HD4350;
+ vidmem = 256;
}
/* Radeon R6xx HD2900/HD3800 - highend */
else if (strstr(gl_info->gl_renderer, "HD 2900") ||
@@ -4023,6 +4050,9 @@ 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_HD4350, "ATI Radeon HD 4350", 6, 14, 10, 6764 },
+ {VENDOR_ATI, CARD_ATI_RADEON_HD4600, "ATI Radeon HD 4600 Series", 6, 14, 10, 6764 },
+ {VENDOR_ATI, CARD_ATI_RADEON_HD4700, "ATI Radeon HD 4700 Series", 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 */
--
1.6.2.4
More information about the wine-patches
mailing list