[2/9] wined3d: Make the card selection for binary drivers use arrays only
Andrei Slăvoiu
andrei.slavoiu at gmail.com
Thu Jul 3 17:40:14 CDT 2014
---
dlls/wined3d/directx.c | 267 ++++++++++++++++++++-----------------------------
1 file changed, 108 insertions(+), 159 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 6124162..bc7af65 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 */
+ /*Direct 3D 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 */
+ /*Direct 3D 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 */
+ /*Direct 3D 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 */
+ /*Direct 3D 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;
}
- /*Direct 3D 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 */
- }
-
- /*Direct 3D 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 */
- }
-
- /*Direct 3D 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 */
- }
-
- /*Direct 3D 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 */
}
@@ -1878,70 +1840,90 @@ static enum wined3d_pci_device select_card_amd_binary(const char *gl_renderer)
cards[] =
{
/* Southern Islands */
- {"HD 7900", CARD_AMD_RADEON_HD7900},
- {"HD 7800", CARD_AMD_RADEON_HD7800},
- {"HD 7700", CARD_AMD_RADEON_HD7700},
+ {"HD 7900", CARD_AMD_RADEON_HD7900},
+ {"HD 7800", CARD_AMD_RADEON_HD7800},
+ {"HD 7700", CARD_AMD_RADEON_HD7700},
/* Northern Islands */
- {"HD 6970", CARD_AMD_RADEON_HD6900},
- {"HD 6900", CARD_AMD_RADEON_HD6900},
- {"HD 6800", CARD_AMD_RADEON_HD6800},
- {"HD 6770M",CARD_AMD_RADEON_HD6600M},
- {"HD 6750M",CARD_AMD_RADEON_HD6600M},
- {"HD 6700", CARD_AMD_RADEON_HD6700},
- {"HD 6670", CARD_AMD_RADEON_HD6600},
- {"HD 6630M",CARD_AMD_RADEON_HD6600M},
- {"HD 6600M",CARD_AMD_RADEON_HD6600M},
- {"HD 6600", CARD_AMD_RADEON_HD6600},
- {"HD 6570", CARD_AMD_RADEON_HD6600},
- {"HD 6500M",CARD_AMD_RADEON_HD6600M},
- {"HD 6500", CARD_AMD_RADEON_HD6600},
- {"HD 6400", CARD_AMD_RADEON_HD6400},
- {"HD 6300", CARD_AMD_RADEON_HD6300},
- {"HD 6200", CARD_AMD_RADEON_HD6300},
+ {"HD 6970", CARD_AMD_RADEON_HD6900},
+ {"HD 6900", CARD_AMD_RADEON_HD6900},
+ {"HD 6800", CARD_AMD_RADEON_HD6800},
+ {"HD 6770M", CARD_AMD_RADEON_HD6600M},
+ {"HD 6750M", CARD_AMD_RADEON_HD6600M},
+ {"HD 6700", CARD_AMD_RADEON_HD6700},
+ {"HD 6670", CARD_AMD_RADEON_HD6600},
+ {"HD 6630M", CARD_AMD_RADEON_HD6600M},
+ {"HD 6600M", CARD_AMD_RADEON_HD6600M},
+ {"HD 6600", CARD_AMD_RADEON_HD6600},
+ {"HD 6570", CARD_AMD_RADEON_HD6600},
+ {"HD 6500M", CARD_AMD_RADEON_HD6600M},
+ {"HD 6500", CARD_AMD_RADEON_HD6600},
+ {"HD 6400", CARD_AMD_RADEON_HD6400},
+ {"HD 6300", CARD_AMD_RADEON_HD6300},
+ {"HD 6200", CARD_AMD_RADEON_HD6300},
/* Evergreen */
- {"HD 5870", CARD_AMD_RADEON_HD5800}, /* Radeon EG CYPRESS PRO */
- {"HD 5850", CARD_AMD_RADEON_HD5800}, /* Radeon EG CYPRESS XT */
- {"HD 5800", CARD_AMD_RADEON_HD5800}, /* Radeon EG CYPRESS HD58xx generic renderer string */
- {"HD 5770", CARD_AMD_RADEON_HD5700}, /* Radeon EG JUNIPER XT */
- {"HD 5750", CARD_AMD_RADEON_HD5700}, /* Radeon EG JUNIPER LE */
- {"HD 5700", CARD_AMD_RADEON_HD5700}, /* Radeon EG JUNIPER HD57xx generic renderer string */
- {"HD 5670", CARD_AMD_RADEON_HD5600}, /* Radeon EG REDWOOD XT */
- {"HD 5570", CARD_AMD_RADEON_HD5600}, /* Radeon EG REDWOOD PRO mapped to HD5600 series */
- {"HD 5550", CARD_AMD_RADEON_HD5600}, /* Radeon EG REDWOOD LE mapped to HD5600 series */
- {"HD 5450", CARD_AMD_RADEON_HD5400}, /* Radeon EG CEDAR PRO */
- {"HD 5000", CARD_AMD_RADEON_HD5600}, /* Defaulting to HD 5600 */
+ {"HD 5870", CARD_AMD_RADEON_HD5800}, /* Radeon EG CYPRESS PRO */
+ {"HD 5850", CARD_AMD_RADEON_HD5800}, /* Radeon EG CYPRESS XT */
+ {"HD 5800", CARD_AMD_RADEON_HD5800}, /* Radeon EG CYPRESS HD58xx generic renderer string */
+ {"HD 5770", CARD_AMD_RADEON_HD5700}, /* Radeon EG JUNIPER XT */
+ {"HD 5750", CARD_AMD_RADEON_HD5700}, /* Radeon EG JUNIPER LE */
+ {"HD 5700", CARD_AMD_RADEON_HD5700}, /* Radeon EG JUNIPER HD57xx generic renderer string */
+ {"HD 5670", CARD_AMD_RADEON_HD5600}, /* Radeon EG REDWOOD XT */
+ {"HD 5570", CARD_AMD_RADEON_HD5600}, /* Radeon EG REDWOOD PRO mapped to HD5600 series */
+ {"HD 5550", CARD_AMD_RADEON_HD5600}, /* Radeon EG REDWOOD LE mapped to HD5600 series */
+ {"HD 5450", CARD_AMD_RADEON_HD5400}, /* Radeon EG CEDAR PRO */
+ {"HD 5000", CARD_AMD_RADEON_HD5600}, /* Defaulting to HD 5600 */
/* R700 */
- {"HD 4890", CARD_AMD_RADEON_HD4800}, /* Radeon RV790 */
- {"HD 4870", CARD_AMD_RADEON_HD4800}, /* Radeon RV770 */
- {"HD 4850", CARD_AMD_RADEON_HD4800}, /* Radeon RV770 */
- {"HD 4830", CARD_AMD_RADEON_HD4800}, /* Radeon RV770 */
- {"HD 4800", CARD_AMD_RADEON_HD4800}, /* Radeon RV7xx HD48xx generic renderer string */
- {"HD 4770", CARD_AMD_RADEON_HD4700}, /* Radeon RV740 */
- {"HD 4700", CARD_AMD_RADEON_HD4700}, /* Radeon RV7xx HD47xx generic renderer string */
- {"HD 4670", CARD_AMD_RADEON_HD4600}, /* Radeon RV730 */
- {"HD 4650", CARD_AMD_RADEON_HD4600}, /* Radeon RV730 */
- {"HD 4600", CARD_AMD_RADEON_HD4600}, /* Radeon RV730 */
- {"HD 4550", CARD_AMD_RADEON_HD4350}, /* Radeon RV710 */
- {"HD 4350", CARD_AMD_RADEON_HD4350}, /* Radeon RV710 */
+ {"HD 4890", CARD_AMD_RADEON_HD4800}, /* Radeon RV790 */
+ {"HD 4870", CARD_AMD_RADEON_HD4800}, /* Radeon RV770 */
+ {"HD 4850", CARD_AMD_RADEON_HD4800}, /* Radeon RV770 */
+ {"HD 4830", CARD_AMD_RADEON_HD4800}, /* Radeon RV770 */
+ {"HD 4800", CARD_AMD_RADEON_HD4800}, /* Radeon RV7xx HD48xx generic renderer string */
+ {"HD 4770", CARD_AMD_RADEON_HD4700}, /* Radeon RV740 */
+ {"HD 4700", CARD_AMD_RADEON_HD4700}, /* Radeon RV7xx HD47xx generic renderer string */
+ {"HD 4670", CARD_AMD_RADEON_HD4600}, /* Radeon RV730 */
+ {"HD 4650", CARD_AMD_RADEON_HD4600}, /* Radeon RV730 */
+ {"HD 4600", CARD_AMD_RADEON_HD4600}, /* Radeon RV730 */
+ {"HD 4550", CARD_AMD_RADEON_HD4350}, /* Radeon RV710 */
+ {"HD 4350", CARD_AMD_RADEON_HD4350}, /* Radeon RV710 */
/* R600/R700 integrated */
- {"HD 4200M", CARD_AMD_RADEON_HD4200M},
- {"HD 3300", CARD_AMD_RADEON_HD3200},
- {"HD 3200", CARD_AMD_RADEON_HD3200},
- {"HD 3100", CARD_AMD_RADEON_HD3200},
+ {"HD 4200M", CARD_AMD_RADEON_HD4200M},
+ {"HD 3300", CARD_AMD_RADEON_HD3200},
+ {"HD 3200", CARD_AMD_RADEON_HD3200},
+ {"HD 3100", CARD_AMD_RADEON_HD3200},
/* R600 */
- {"HD 3870", CARD_AMD_RADEON_HD2900}, /* HD2900/HD3800 - highend */
- {"HD 3850", CARD_AMD_RADEON_HD2900}, /* HD2900/HD3800 - highend */
- {"HD 2900", CARD_AMD_RADEON_HD2900}, /* HD2900/HD3800 - highend */
- {"HD 3830", CARD_AMD_RADEON_HD2600}, /* China-only midend */
- {"HD 3690", CARD_AMD_RADEON_HD2600}, /* HD2600/HD3600 - midend */
- {"HD 3650", CARD_AMD_RADEON_HD2600}, /* HD2600/HD3600 - midend */
- {"HD 2600", CARD_AMD_RADEON_HD2600}, /* HD2600/HD3600 - midend */
- {"HD 3470", CARD_AMD_RADEON_HD2350}, /* HD2350/HD2400/HD3400 - lowend */
- {"HD 3450", CARD_AMD_RADEON_HD2350}, /* HD2350/HD2400/HD3400 - lowend */
- {"HD 3430", CARD_AMD_RADEON_HD2350}, /* HD2350/HD2400/HD3400 - lowend */
- {"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 */
+ {"HD 3870", CARD_AMD_RADEON_HD2900}, /* HD2900/HD3800 - highend */
+ {"HD 3850", CARD_AMD_RADEON_HD2900}, /* HD2900/HD3800 - highend */
+ {"HD 2900", CARD_AMD_RADEON_HD2900}, /* HD2900/HD3800 - highend */
+ {"HD 3830", CARD_AMD_RADEON_HD2600}, /* China-only midend */
+ {"HD 3690", CARD_AMD_RADEON_HD2600}, /* HD2600/HD3600 - midend */
+ {"HD 3650", CARD_AMD_RADEON_HD2600}, /* HD2600/HD3600 - midend */
+ {"HD 2600", CARD_AMD_RADEON_HD2600}, /* HD2600/HD3600 - midend */
+ {"HD 3470", CARD_AMD_RADEON_HD2350}, /* HD2350/HD2400/HD3400 - lowend */
+ {"HD 3450", CARD_AMD_RADEON_HD2350}, /* HD2350/HD2400/HD3400 - lowend */
+ {"HD 3430", CARD_AMD_RADEON_HD2350}, /* HD2350/HD2400/HD3400 - lowend */
+ {"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)
@@ -1949,39 +1931,6 @@ static enum wined3d_pci_device select_card_amd_binary(const char *gl_renderer)
if (strstr(gl_renderer, cards[i].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
More information about the wine-patches
mailing list