From: Andrei Slăvoiu Subject: [2/9] wined3d: Make the card selection for binary drivers use arrays only (try2) Message-Id: <1474033.uKUK51ILIy@kaveri> Date: Fri, 11 Jul 2014 21:44:14 +0300 --- dlls/wined3d/directx.c | 149 ++++++++++++++++--------------------------------- 1 file changed, 49 insertions(+), 100 deletions(-) diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index b778391..bc5c299 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -1784,6 +1784,35 @@ static enum wined3d_pci_device select_card_nvidia_binary(const char *gl_renderer {"6700", CARD_NVIDIA_GEFORCE_6600GT}, /* Geforce 6 - midend */ {"6610", CARD_NVIDIA_GEFORCE_6600GT}, /* Geforce 6 - midend */ {"6600", CARD_NVIDIA_GEFORCE_6600GT}, /* Geforce 6 - midend */ + /* Direct3D 9 SM2 */ + {"Quadro FX", CARD_NVIDIA_GEFORCEFX_5800}, /* GeforceFX - highend */ + {"5950", CARD_NVIDIA_GEFORCEFX_5800}, /* GeforceFX - highend */ + {"5900", CARD_NVIDIA_GEFORCEFX_5800}, /* GeforceFX - highend */ + {"5800", CARD_NVIDIA_GEFORCEFX_5800}, /* GeforceFX - highend */ + {"5750", CARD_NVIDIA_GEFORCEFX_5600}, /* GeforceFX - midend */ + {"5700", CARD_NVIDIA_GEFORCEFX_5600}, /* GeforceFX - midend */ + {"5650", CARD_NVIDIA_GEFORCEFX_5600}, /* GeforceFX - midend */ + {"5600", CARD_NVIDIA_GEFORCEFX_5600}, /* GeforceFX - midend */ + {"5500", CARD_NVIDIA_GEFORCEFX_5200}, /* GeforceFX - lowend */ + {"5300", CARD_NVIDIA_GEFORCEFX_5200}, /* GeforceFX - lowend */ + {"5250", CARD_NVIDIA_GEFORCEFX_5200}, /* GeforceFX - lowend */ + {"5200", CARD_NVIDIA_GEFORCEFX_5200}, /* GeforceFX - lowend */ + {"5100", CARD_NVIDIA_GEFORCEFX_5200}, /* GeforceFX - lowend */ + /* Direct3D 8 */ + {"Quadro4", CARD_NVIDIA_GEFORCE4_TI4200}, + {"GeForce4 Ti", CARD_NVIDIA_GEFORCE4_TI4200}, /* Geforce4 Ti4200/Ti4400/Ti4600/Ti4800 */ + {"Quadro DCC", CARD_NVIDIA_GEFORCE3}, + {"GeForce3", CARD_NVIDIA_GEFORCE3}, /* Geforce3 standard/Ti200/Ti500 */ + /* Direct3D 7 */ + {"GeForce4 MX", CARD_NVIDIA_GEFORCE4_MX}, /* MX420/MX440/MX460/MX4000 */ + {"Quadro2 MXR", CARD_NVIDIA_GEFORCE2_MX}, + {"GeForce2 MX", CARD_NVIDIA_GEFORCE2_MX}, /* Geforce2 standard/MX100/MX200/MX400 */ + {"Quadro2", CARD_NVIDIA_GEFORCE2}, + {"GeForce2", CARD_NVIDIA_GEFORCE2}, /* Geforce2 GTS/Pro/Ti/Ultra */ + {"Quadro", CARD_NVIDIA_GEFORCE}, + {"GeForce", CARD_NVIDIA_GEFORCE}, /* Geforce 256/DDR */ + /* Direct3D 6 */ + {"TNT2", CARD_NVIDIA_RIVA_TNT2}, /* Riva TNT2 standard/M64/Pro/Ultra */ }; for (i = 0; i < sizeof(cards) / sizeof(*cards); ++i) @@ -1792,73 +1821,6 @@ static enum wined3d_pci_device select_card_nvidia_binary(const char *gl_renderer return cards[i].id; } - /* Direct3D 9 SM2 */ - /* GeforceFX - highend */ - if (strstr(gl_renderer, "5800") - || strstr(gl_renderer, "5900") - || strstr(gl_renderer, "5950") - || strstr(gl_renderer, "Quadro FX")) - { - return CARD_NVIDIA_GEFORCEFX_5800; - } - - /* GeforceFX - midend */ - if (strstr(gl_renderer, "5600") - || strstr(gl_renderer, "5650") - || strstr(gl_renderer, "5700") - || strstr(gl_renderer, "5750")) - { - return CARD_NVIDIA_GEFORCEFX_5600; - } - - /* GeforceFX - lowend */ - if (strstr(gl_renderer, "5100") - || strstr(gl_renderer, "5200") - || strstr(gl_renderer, "5250") - || strstr(gl_renderer, "5300") - || strstr(gl_renderer, "5500")) - { - return CARD_NVIDIA_GEFORCEFX_5200; /* GeforceFX 5100/5200/5250/5300/5500 */ - } - - /* Direct3D 8 */ - if (strstr(gl_renderer, "GeForce4 Ti") || strstr(gl_renderer, "Quadro4")) - { - return CARD_NVIDIA_GEFORCE4_TI4200; /* Geforce4 Ti4200/Ti4400/Ti4600/Ti4800, Quadro4 */ - } - - if (strstr(gl_renderer, "GeForce3") || strstr(gl_renderer, "Quadro DCC")) - { - return CARD_NVIDIA_GEFORCE3; /* Geforce3 standard/Ti200/Ti500, Quadro DCC */ - } - - /* Direct3D 7 */ - if (strstr(gl_renderer, "GeForce4 MX")) - { - return CARD_NVIDIA_GEFORCE4_MX; /* MX420/MX440/MX460/MX4000 */ - } - - if (strstr(gl_renderer, "GeForce2 MX") || strstr(gl_renderer, "Quadro2 MXR")) - { - return CARD_NVIDIA_GEFORCE2_MX; /* Geforce2 standard/MX100/MX200/MX400, Quadro2 MXR */ - } - - if (strstr(gl_renderer, "GeForce2") || strstr(gl_renderer, "Quadro2")) - { - return CARD_NVIDIA_GEFORCE2; /* Geforce2 GTS/Pro/Ti/Ultra, Quadro2 */ - } - - if (strstr(gl_renderer, "GeForce") || strstr(gl_renderer, "Quadro")) - { - return CARD_NVIDIA_GEFORCE; /* Geforce 256/DDR, Quadro */ - } - - /* Direct3D 6 */ - if (strstr(gl_renderer, "TNT2")) - { - return CARD_NVIDIA_RIVA_TNT2; /* Riva TNT2 standard/M64/Pro/Ultra */ - } - return CARD_NVIDIA_RIVA_TNT; /* Riva TNT, Vanta */ } @@ -1942,6 +1904,26 @@ static enum wined3d_pci_device select_card_amd_binary(const char *gl_renderer) {"HD 3400", CARD_AMD_RADEON_HD2350}, /* HD2350/HD2400/HD3400 - lowend */ {"HD 2400", CARD_AMD_RADEON_HD2350}, /* HD2350/HD2400/HD3400 - lowend */ {"HD 2350", CARD_AMD_RADEON_HD2350}, /* HD2350/HD2400/HD3400 - lowend */ + /* Radeon R5xx */ + {"X1950", CARD_AMD_RADEON_X1600}, + {"X1900", CARD_AMD_RADEON_X1600}, + {"X1800", CARD_AMD_RADEON_X1600}, + {"X1650", CARD_AMD_RADEON_X1600}, + {"X1600", CARD_AMD_RADEON_X1600}, + /* Radeon R4xx + X1300/X1400/X1450/X1550/X2300/X2500/HD2300 (lowend R5xx) + * Note X2300/X2500/HD2300 are R5xx GPUs with a 2xxx naming but they are still DX9-only */ + {"HD 2300", CARD_AMD_RADEON_X700}, + {"X2500", CARD_AMD_RADEON_X700}, + {"X2300", CARD_AMD_RADEON_X700}, + {"X1550", CARD_AMD_RADEON_X700}, + {"X1450", CARD_AMD_RADEON_X700}, + {"X1400", CARD_AMD_RADEON_X700}, + {"X1300", CARD_AMD_RADEON_X700}, + {"X850", CARD_AMD_RADEON_X700}, + {"X800", CARD_AMD_RADEON_X700}, + {"X700", CARD_AMD_RADEON_X700}, + /* Radeon Xpress Series - onboard, DX9b, Shader 2.0, 300-400 MHz */ + {"Radeon Xpress", CARD_AMD_RADEON_XPRESS_200M}, }; for (i = 0; i < sizeof(cards) / sizeof(*cards); ++i) @@ -1950,39 +1932,6 @@ static enum wined3d_pci_device select_card_amd_binary(const char *gl_renderer) return cards[i].id; } - /* Radeon R5xx */ - if (strstr(gl_renderer, "X1600") - || strstr(gl_renderer, "X1650") - || strstr(gl_renderer, "X1800") - || strstr(gl_renderer, "X1900") - || strstr(gl_renderer, "X1950")) - { - return CARD_AMD_RADEON_X1600; - } - - /* Radeon R4xx + X1300/X1400/X1450/X1550/X2300/X2500/HD2300 (lowend R5xx) - * Note X2300/X2500/HD2300 are R5xx GPUs with a 2xxx naming but they are still DX9-only */ - if (strstr(gl_renderer, "X700") - || strstr(gl_renderer, "X800") - || strstr(gl_renderer, "X850") - || strstr(gl_renderer, "X1300") - || strstr(gl_renderer, "X1400") - || strstr(gl_renderer, "X1450") - || strstr(gl_renderer, "X1550") - || strstr(gl_renderer, "X2300") - || strstr(gl_renderer, "X2500") - || strstr(gl_renderer, "HD 2300") - ) - { - return CARD_AMD_RADEON_X700; - } - - /* Radeon Xpress Series - onboard, DX9b, Shader 2.0, 300-400 MHz */ - if (strstr(gl_renderer, "Radeon Xpress")) - { - return CARD_AMD_RADEON_XPRESS_200M; - } - return PCI_DEVICE_NONE; } -- 2.0.0