[1/9] wined3d: Make the card selection for binary drivers depend only on gl_renderer like it already is for the mesa drivers and remove the gl_info parameter from the select_card callback.
Andrei Slăvoiu
andrei.slavoiu at gmail.com
Thu Jul 3 17:40:10 CDT 2014
---
dlls/wined3d/directx.c | 567 +++++++++++++++++++++++--------------------------
1 file changed, 269 insertions(+), 298 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index d6bb3836..6124162 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1674,203 +1674,186 @@ static UINT d3d_level_from_gl_info(const struct wined3d_gl_info *gl_info)
return level;
}
-static enum wined3d_pci_device select_card_nvidia_binary(const struct wined3d_gl_info *gl_info,
- const char *gl_renderer)
+static enum wined3d_pci_device select_card_nvidia_binary(const char *gl_renderer)
{
- UINT d3d_level = d3d_level_from_gl_info(gl_info);
unsigned int i;
- if (d3d_level >= 10)
+ static const struct
{
- static const struct
- {
- const char *renderer;
- enum wined3d_pci_device id;
- }
- cards[] =
- {
- {"GTX 780 Ti", CARD_NVIDIA_GEFORCE_GTX780TI}, /* Geforce 700 - highend */
- {"GTX 780", CARD_NVIDIA_GEFORCE_GTX780}, /* Geforce 700 - highend */
- {"GTX 770M", CARD_NVIDIA_GEFORCE_GTX770M}, /* Geforce 700 - midend high mobile */
- {"GTX 770", CARD_NVIDIA_GEFORCE_GTX770}, /* Geforce 700 - highend */
- {"GTX 765M", CARD_NVIDIA_GEFORCE_GTX765M}, /* Geforce 700 - midend high mobile */
- {"GTX 760", CARD_NVIDIA_GEFORCE_GTX760}, /* Geforce 700 - midend high */
- {"GTX 750 Ti", CARD_NVIDIA_GEFORCE_GTX750TI}, /* Geforce 700 - midend */
- {"GTX 750", CARD_NVIDIA_GEFORCE_GTX750}, /* Geforce 700 - midend */
- {"GTX 680", CARD_NVIDIA_GEFORCE_GTX680}, /* Geforce 600 - highend */
- {"GTX 670MX", CARD_NVIDIA_GEFORCE_GTX670MX}, /* Geforce 600 - highend */
- {"GTX 670", CARD_NVIDIA_GEFORCE_GTX670}, /* Geforce 600 - midend high */
- {"GTX 660 Ti", CARD_NVIDIA_GEFORCE_GTX660TI}, /* Geforce 600 - midend high */
- {"GTX 660M", CARD_NVIDIA_GEFORCE_GTX660M}, /* Geforce 600 - midend high mobile */
- {"GTX 660", CARD_NVIDIA_GEFORCE_GTX660}, /* Geforce 600 - midend high */
- {"GTX 650 Ti", CARD_NVIDIA_GEFORCE_GTX650TI}, /* Geforce 600 - lowend */
- {"GTX 650", CARD_NVIDIA_GEFORCE_GTX650}, /* Geforce 600 - lowend */
- {"GT 650M", CARD_NVIDIA_GEFORCE_GT650M}, /* Geforce 600 - midend mobile */
- {"GT 640M", CARD_NVIDIA_GEFORCE_GT640M}, /* Geforce 600 - midend mobile */
- {"GT 630M", CARD_NVIDIA_GEFORCE_GT630M}, /* Geforce 600 - midend mobile */
- {"GT 630", CARD_NVIDIA_GEFORCE_GT630}, /* Geforce 600 - lowend */
- {"GT 610", CARD_NVIDIA_GEFORCE_GT610}, /* Geforce 600 - lowend */
- {"GTX 580", CARD_NVIDIA_GEFORCE_GTX580}, /* Geforce 500 - highend */
- {"GTX 570", CARD_NVIDIA_GEFORCE_GTX570}, /* Geforce 500 - midend high */
- {"GTX 560 Ti", CARD_NVIDIA_GEFORCE_GTX560TI}, /* Geforce 500 - midend */
- {"GTX 560", CARD_NVIDIA_GEFORCE_GTX560}, /* Geforce 500 - midend */
- {"GT 555M", CARD_NVIDIA_GEFORCE_GT555M}, /* Geforce 500 - midend mobile */
- {"GTX 550 Ti", CARD_NVIDIA_GEFORCE_GTX550}, /* Geforce 500 - midend */
- {"GT 540M", CARD_NVIDIA_GEFORCE_GT540M}, /* Geforce 500 - midend mobile */
- {"GT 520", CARD_NVIDIA_GEFORCE_GT520}, /* Geforce 500 - lowend */
- {"GTX 480", CARD_NVIDIA_GEFORCE_GTX480}, /* Geforce 400 - highend */
- {"GTX 470", CARD_NVIDIA_GEFORCE_GTX470}, /* Geforce 400 - midend high */
- {"GTX 465", CARD_NVIDIA_GEFORCE_GTX465}, /* Geforce 400 - midend */
- {"GTX 460M", CARD_NVIDIA_GEFORCE_GTX460M}, /* Geforce 400 - highend mobile */
- {"GTX 460", CARD_NVIDIA_GEFORCE_GTX460}, /* Geforce 400 - midend */
- {"GTS 450", CARD_NVIDIA_GEFORCE_GTS450}, /* Geforce 400 - midend low */
- {"GT 440", CARD_NVIDIA_GEFORCE_GT440}, /* Geforce 400 - lowend */
- {"GT 430", CARD_NVIDIA_GEFORCE_GT430}, /* Geforce 400 - lowend */
- {"GT 420", CARD_NVIDIA_GEFORCE_GT420}, /* Geforce 400 - lowend */
- {"410M", CARD_NVIDIA_GEFORCE_410M}, /* Geforce 400 - lowend mobile */
- {"GT 330", CARD_NVIDIA_GEFORCE_GT330}, /* Geforce 300 - highend */
- {"GTS 360M", CARD_NVIDIA_GEFORCE_GTS350M}, /* Geforce 300 - highend mobile */
- {"GTS 350M", CARD_NVIDIA_GEFORCE_GTS350M}, /* Geforce 300 - highend mobile */
- {"GT 330M", CARD_NVIDIA_GEFORCE_GT325M}, /* Geforce 300 - midend mobile */
- {"GT 325M", CARD_NVIDIA_GEFORCE_GT325M}, /* Geforce 300 - midend mobile */
- {"GT 320M", CARD_NVIDIA_GEFORCE_GT320M}, /* Geforce 300 - midend mobile */
- {"320M", CARD_NVIDIA_GEFORCE_320M}, /* Geforce 300 - midend mobile */
- {"315M", CARD_NVIDIA_GEFORCE_315M}, /* Geforce 300 - midend mobile */
- {"GTX 295", CARD_NVIDIA_GEFORCE_GTX280}, /* Geforce 200 - highend */
- {"GTX 285", CARD_NVIDIA_GEFORCE_GTX280}, /* Geforce 200 - highend */
- {"GTX 280", CARD_NVIDIA_GEFORCE_GTX280}, /* Geforce 200 - highend */
- {"GTX 275", CARD_NVIDIA_GEFORCE_GTX275}, /* Geforce 200 - midend high */
- {"GTX 260", CARD_NVIDIA_GEFORCE_GTX260}, /* Geforce 200 - midend */
- {"GT 240", CARD_NVIDIA_GEFORCE_GT240}, /* Geforce 200 - midend */
- {"GT 220", CARD_NVIDIA_GEFORCE_GT220}, /* Geforce 200 - lowend */
- {"Geforce 310", CARD_NVIDIA_GEFORCE_210}, /* Geforce 200 - lowend */
- {"Geforce 305", CARD_NVIDIA_GEFORCE_210}, /* Geforce 200 - lowend */
- {"Geforce 210", CARD_NVIDIA_GEFORCE_210}, /* Geforce 200 - lowend */
- {"G 210", CARD_NVIDIA_GEFORCE_210}, /* Geforce 200 - lowend */
- {"GTS 250", CARD_NVIDIA_GEFORCE_9800GT}, /* Geforce 9 - highend / Geforce 200 - midend */
- {"GTS 150", CARD_NVIDIA_GEFORCE_9800GT}, /* Geforce 9 - highend / Geforce 200 - midend */
- {"9800", CARD_NVIDIA_GEFORCE_9800GT}, /* Geforce 9 - highend / Geforce 200 - midend */
- {"GT 140", CARD_NVIDIA_GEFORCE_9600GT}, /* Geforce 9 - midend */
- {"9600", CARD_NVIDIA_GEFORCE_9600GT}, /* Geforce 9 - midend */
- {"GT 130", CARD_NVIDIA_GEFORCE_9500GT}, /* Geforce 9 - midend low / Geforce 200 - low */
- {"GT 120", CARD_NVIDIA_GEFORCE_9500GT}, /* Geforce 9 - midend low / Geforce 200 - low */
- {"9500", CARD_NVIDIA_GEFORCE_9500GT}, /* Geforce 9 - midend low / Geforce 200 - low */
- {"9400M", CARD_NVIDIA_GEFORCE_9400M}, /* Geforce 9 - lowend */
- {"9400", CARD_NVIDIA_GEFORCE_9400GT}, /* Geforce 9 - lowend */
- {"9300", CARD_NVIDIA_GEFORCE_9300}, /* Geforce 9 - lowend low */
- {"9200", CARD_NVIDIA_GEFORCE_9200}, /* Geforce 9 - lowend low */
- {"9100", CARD_NVIDIA_GEFORCE_9200}, /* Geforce 9 - lowend low */
- {"G 100", CARD_NVIDIA_GEFORCE_9200}, /* Geforce 9 - lowend low */
- {"8800 GTX", CARD_NVIDIA_GEFORCE_8800GTX}, /* Geforce 8 - highend high */
- {"8800", CARD_NVIDIA_GEFORCE_8800GTS}, /* Geforce 8 - highend */
- {"8600M", CARD_NVIDIA_GEFORCE_8600MGT}, /* Geforce 8 - midend mobile */
- {"8600 M", CARD_NVIDIA_GEFORCE_8600MGT}, /* Geforce 8 - midend mobile */
- {"8700", CARD_NVIDIA_GEFORCE_8600GT}, /* Geforce 8 - midend */
- {"8600", CARD_NVIDIA_GEFORCE_8600GT}, /* Geforce 8 - midend */
- {"8500", CARD_NVIDIA_GEFORCE_8400GS}, /* Geforce 8 - mid-lowend */
- {"8400", CARD_NVIDIA_GEFORCE_8400GS}, /* Geforce 8 - mid-lowend */
- {"8300", CARD_NVIDIA_GEFORCE_8300GS}, /* Geforce 8 - lowend */
- {"8200", CARD_NVIDIA_GEFORCE_8300GS}, /* Geforce 8 - lowend */
- {"8100", CARD_NVIDIA_GEFORCE_8300GS}, /* Geforce 8 - lowend */
- };
-
- for (i = 0; i < sizeof(cards) / sizeof(*cards); ++i)
- {
- if (strstr(gl_renderer, cards[i].renderer))
- return cards[i].id;
- }
- return PCI_DEVICE_NONE;
+ const char *renderer;
+ enum wined3d_pci_device id;
}
+ cards[] =
+ {
+ /*Direct 3D 11*/
+ {"GTX 780 Ti", CARD_NVIDIA_GEFORCE_GTX780TI}, /* Geforce 700 - highend */
+ {"GTX 780", CARD_NVIDIA_GEFORCE_GTX780}, /* Geforce 700 - highend */
+ {"GTX 770M", CARD_NVIDIA_GEFORCE_GTX770M}, /* Geforce 700 - midend high mobile */
+ {"GTX 770", CARD_NVIDIA_GEFORCE_GTX770}, /* Geforce 700 - highend */
+ {"GTX 765M", CARD_NVIDIA_GEFORCE_GTX765M}, /* Geforce 700 - midend high mobile */
+ {"GTX 760", CARD_NVIDIA_GEFORCE_GTX760}, /* Geforce 700 - midend high */
+ {"GTX 750 Ti", CARD_NVIDIA_GEFORCE_GTX750TI}, /* Geforce 700 - midend */
+ {"GTX 750", CARD_NVIDIA_GEFORCE_GTX750}, /* Geforce 700 - midend */
+ {"GTX 680", CARD_NVIDIA_GEFORCE_GTX680}, /* Geforce 600 - highend */
+ {"GTX 670MX", CARD_NVIDIA_GEFORCE_GTX670MX}, /* Geforce 600 - highend */
+ {"GTX 670", CARD_NVIDIA_GEFORCE_GTX670}, /* Geforce 600 - midend high */
+ {"GTX 660 Ti", CARD_NVIDIA_GEFORCE_GTX660TI}, /* Geforce 600 - midend high */
+ {"GTX 660M", CARD_NVIDIA_GEFORCE_GTX660M}, /* Geforce 600 - midend high mobile */
+ {"GTX 660", CARD_NVIDIA_GEFORCE_GTX660}, /* Geforce 600 - midend high */
+ {"GTX 650 Ti", CARD_NVIDIA_GEFORCE_GTX650TI}, /* Geforce 600 - lowend */
+ {"GTX 650", CARD_NVIDIA_GEFORCE_GTX650}, /* Geforce 600 - lowend */
+ {"GT 650M", CARD_NVIDIA_GEFORCE_GT650M}, /* Geforce 600 - midend mobile */
+ {"GT 640M", CARD_NVIDIA_GEFORCE_GT640M}, /* Geforce 600 - midend mobile */
+ {"GT 630M", CARD_NVIDIA_GEFORCE_GT630M}, /* Geforce 600 - midend mobile */
+ {"GT 630", CARD_NVIDIA_GEFORCE_GT630}, /* Geforce 600 - lowend */
+ {"GT 610", CARD_NVIDIA_GEFORCE_GT610}, /* Geforce 600 - lowend */
+ {"GTX 580", CARD_NVIDIA_GEFORCE_GTX580}, /* Geforce 500 - highend */
+ {"GTX 570", CARD_NVIDIA_GEFORCE_GTX570}, /* Geforce 500 - midend high */
+ {"GTX 560 Ti", CARD_NVIDIA_GEFORCE_GTX560TI}, /* Geforce 500 - midend */
+ {"GTX 560", CARD_NVIDIA_GEFORCE_GTX560}, /* Geforce 500 - midend */
+ {"GT 555M", CARD_NVIDIA_GEFORCE_GT555M}, /* Geforce 500 - midend mobile */
+ {"GTX 550 Ti", CARD_NVIDIA_GEFORCE_GTX550}, /* Geforce 500 - midend */
+ {"GT 540M", CARD_NVIDIA_GEFORCE_GT540M}, /* Geforce 500 - midend mobile */
+ {"GT 520", CARD_NVIDIA_GEFORCE_GT520}, /* Geforce 500 - lowend */
+ {"GTX 480", CARD_NVIDIA_GEFORCE_GTX480}, /* Geforce 400 - highend */
+ {"GTX 470", CARD_NVIDIA_GEFORCE_GTX470}, /* Geforce 400 - midend high */
+ /*Direct 3D 10*/
+ {"GTX 465", CARD_NVIDIA_GEFORCE_GTX465}, /* Geforce 400 - midend */
+ {"GTX 460M", CARD_NVIDIA_GEFORCE_GTX460M}, /* Geforce 400 - highend mobile */
+ {"GTX 460", CARD_NVIDIA_GEFORCE_GTX460}, /* Geforce 400 - midend */
+ {"GTS 450", CARD_NVIDIA_GEFORCE_GTS450}, /* Geforce 400 - midend low */
+ {"GT 440", CARD_NVIDIA_GEFORCE_GT440}, /* Geforce 400 - lowend */
+ {"GT 430", CARD_NVIDIA_GEFORCE_GT430}, /* Geforce 400 - lowend */
+ {"GT 420", CARD_NVIDIA_GEFORCE_GT420}, /* Geforce 400 - lowend */
+ {"410M", CARD_NVIDIA_GEFORCE_410M}, /* Geforce 400 - lowend mobile */
+ {"GT 330", CARD_NVIDIA_GEFORCE_GT330}, /* Geforce 300 - highend */
+ {"GTS 360M", CARD_NVIDIA_GEFORCE_GTS350M}, /* Geforce 300 - highend mobile */
+ {"GTS 350M", CARD_NVIDIA_GEFORCE_GTS350M}, /* Geforce 300 - highend mobile */
+ {"GT 330M", CARD_NVIDIA_GEFORCE_GT325M}, /* Geforce 300 - midend mobile */
+ {"GT 325M", CARD_NVIDIA_GEFORCE_GT325M}, /* Geforce 300 - midend mobile */
+ {"GT 320M", CARD_NVIDIA_GEFORCE_GT320M}, /* Geforce 300 - midend mobile */
+ {"320M", CARD_NVIDIA_GEFORCE_320M}, /* Geforce 300 - midend mobile */
+ {"315M", CARD_NVIDIA_GEFORCE_315M}, /* Geforce 300 - midend mobile */
+ {"GTX 295", CARD_NVIDIA_GEFORCE_GTX280}, /* Geforce 200 - highend */
+ {"GTX 285", CARD_NVIDIA_GEFORCE_GTX280}, /* Geforce 200 - highend */
+ {"GTX 280", CARD_NVIDIA_GEFORCE_GTX280}, /* Geforce 200 - highend */
+ {"GTX 275", CARD_NVIDIA_GEFORCE_GTX275}, /* Geforce 200 - midend high */
+ {"GTX 260", CARD_NVIDIA_GEFORCE_GTX260}, /* Geforce 200 - midend */
+ {"GT 240", CARD_NVIDIA_GEFORCE_GT240}, /* Geforce 200 - midend */
+ {"GT 220", CARD_NVIDIA_GEFORCE_GT220}, /* Geforce 200 - lowend */
+ {"Geforce 310", CARD_NVIDIA_GEFORCE_210}, /* Geforce 200 - lowend */
+ {"Geforce 305", CARD_NVIDIA_GEFORCE_210}, /* Geforce 200 - lowend */
+ {"Geforce 210", CARD_NVIDIA_GEFORCE_210}, /* Geforce 200 - lowend */
+ {"G 210", CARD_NVIDIA_GEFORCE_210}, /* Geforce 200 - lowend */
+ {"GTS 250", CARD_NVIDIA_GEFORCE_9800GT}, /* Geforce 9 - highend / Geforce 200 - midend */
+ {"GTS 150", CARD_NVIDIA_GEFORCE_9800GT}, /* Geforce 9 - highend / Geforce 200 - midend */
+ {"9800", CARD_NVIDIA_GEFORCE_9800GT}, /* Geforce 9 - highend / Geforce 200 - midend */
+ {"GT 140", CARD_NVIDIA_GEFORCE_9600GT}, /* Geforce 9 - midend */
+ {"9600", CARD_NVIDIA_GEFORCE_9600GT}, /* Geforce 9 - midend */
+ {"GT 130", CARD_NVIDIA_GEFORCE_9500GT}, /* Geforce 9 - midend low / Geforce 200 - low */
+ {"GT 120", CARD_NVIDIA_GEFORCE_9500GT}, /* Geforce 9 - midend low / Geforce 200 - low */
+ {"9500", CARD_NVIDIA_GEFORCE_9500GT}, /* Geforce 9 - midend low / Geforce 200 - low */
+ {"9400M", CARD_NVIDIA_GEFORCE_9400M}, /* Geforce 9 - lowend */
+ {"9400", CARD_NVIDIA_GEFORCE_9400GT}, /* Geforce 9 - lowend */
+ {"9300", CARD_NVIDIA_GEFORCE_9300}, /* Geforce 9 - lowend low */
+ {"9200", CARD_NVIDIA_GEFORCE_9200}, /* Geforce 9 - lowend low */
+ {"9100", CARD_NVIDIA_GEFORCE_9200}, /* Geforce 9 - lowend low */
+ {"G 100", CARD_NVIDIA_GEFORCE_9200}, /* Geforce 9 - lowend low */
+ {"8800 GTX", CARD_NVIDIA_GEFORCE_8800GTX}, /* Geforce 8 - highend high */
+ {"8800", CARD_NVIDIA_GEFORCE_8800GTS}, /* Geforce 8 - highend */
+ {"8600M", CARD_NVIDIA_GEFORCE_8600MGT}, /* Geforce 8 - midend mobile */
+ {"8600 M", CARD_NVIDIA_GEFORCE_8600MGT}, /* Geforce 8 - midend mobile */
+ {"8700", CARD_NVIDIA_GEFORCE_8600GT}, /* Geforce 8 - midend */
+ {"8600", CARD_NVIDIA_GEFORCE_8600GT}, /* Geforce 8 - midend */
+ {"8500", CARD_NVIDIA_GEFORCE_8400GS}, /* Geforce 8 - mid-lowend */
+ {"8400", CARD_NVIDIA_GEFORCE_8400GS}, /* Geforce 8 - mid-lowend */
+ {"8300", CARD_NVIDIA_GEFORCE_8300GS}, /* Geforce 8 - lowend */
+ {"8200", CARD_NVIDIA_GEFORCE_8300GS}, /* Geforce 8 - lowend */
+ {"8100", CARD_NVIDIA_GEFORCE_8300GS}, /* Geforce 8 - lowend */
+ /*Direct 3D 9 SM3*/
+ {"Quadro FX 5", CARD_NVIDIA_GEFORCE_7800GT}, /* Geforce 7 - highend */
+ {"Quadro FX 4", CARD_NVIDIA_GEFORCE_7800GT}, /* Geforce 7 - highend */
+ {"7950", CARD_NVIDIA_GEFORCE_7800GT}, /* Geforce 7 - highend */
+ {"7900", CARD_NVIDIA_GEFORCE_7800GT}, /* Geforce 7 - highend */
+ {"7800", CARD_NVIDIA_GEFORCE_7800GT}, /* Geforce 7 - highend */
+ {"7700", CARD_NVIDIA_GEFORCE_7600}, /* Geforce 7 - midend */
+ {"7600", CARD_NVIDIA_GEFORCE_7600}, /* Geforce 7 - midend */
+ {"7400", CARD_NVIDIA_GEFORCE_7400}, /* Geforce 7 - lower medium */
+ {"7300", CARD_NVIDIA_GEFORCE_7300}, /* Geforce 7 - lowend */
+ {"6800", CARD_NVIDIA_GEFORCE_6800}, /* Geforce 6 - highend */
+ {"6700", CARD_NVIDIA_GEFORCE_6600GT}, /* Geforce 6 - midend */
+ {"6610", CARD_NVIDIA_GEFORCE_6600GT}, /* Geforce 6 - midend */
+ {"6600", CARD_NVIDIA_GEFORCE_6600GT}, /* Geforce 6 - midend */
+ };
- /* Both the GeforceFX, 6xxx and 7xxx series support D3D9. The last two types have more
- * shader capabilities, so we use the shader capabilities to distinguish between FX and 6xxx/7xxx.
- */
- if (d3d_level >= 9 && gl_info->supported[NV_VERTEX_PROGRAM3])
+ for (i = 0; i < sizeof(cards) / sizeof(*cards); ++i)
{
- static const struct
- {
- const char *renderer;
- enum wined3d_pci_device id;
- }
- cards[] =
- {
- {"Quadro FX 5", CARD_NVIDIA_GEFORCE_7800GT}, /* Geforce 7 - highend */
- {"Quadro FX 4", CARD_NVIDIA_GEFORCE_7800GT}, /* Geforce 7 - highend */
- {"7950", CARD_NVIDIA_GEFORCE_7800GT}, /* Geforce 7 - highend */
- {"7900", CARD_NVIDIA_GEFORCE_7800GT}, /* Geforce 7 - highend */
- {"7800", CARD_NVIDIA_GEFORCE_7800GT}, /* Geforce 7 - highend */
- {"7700", CARD_NVIDIA_GEFORCE_7600}, /* Geforce 7 - midend */
- {"7600", CARD_NVIDIA_GEFORCE_7600}, /* Geforce 7 - midend */
- {"7400", CARD_NVIDIA_GEFORCE_7400}, /* Geforce 7 - lower medium */
- {"7300", CARD_NVIDIA_GEFORCE_7300}, /* Geforce 7 - lowend */
- {"6800", CARD_NVIDIA_GEFORCE_6800}, /* Geforce 6 - highend */
- {"6700", CARD_NVIDIA_GEFORCE_6600GT}, /* Geforce 6 - midend */
- {"6610", CARD_NVIDIA_GEFORCE_6600GT}, /* Geforce 6 - midend */
- {"6600", CARD_NVIDIA_GEFORCE_6600GT}, /* Geforce 6 - midend */
- };
-
- for (i = 0; i < sizeof(cards) / sizeof(*cards); ++i)
- {
- if (strstr(gl_renderer, cards[i].renderer))
- return cards[i].id;
- }
- return PCI_DEVICE_NONE;
+ if (strstr(gl_renderer, cards[i].renderer))
+ return cards[i].id;
}
- if (d3d_level >= 9)
+ /*Direct 3D 9 SM2*/
+ /* GeforceFX - highend */
+ if (strstr(gl_renderer, "5800")
+ || strstr(gl_renderer, "5900")
+ || strstr(gl_renderer, "5950")
+ || strstr(gl_renderer, "Quadro FX"))
{
- /* 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;
- }
+ 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 - 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 */
+ /* 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 */
}
- if (d3d_level >= 8)
+ /*Direct 3D 8*/
+ if (strstr(gl_renderer, "GeForce4 Ti") || strstr(gl_renderer, "Quadro4"))
{
- if (strstr(gl_renderer, "GeForce4 Ti") || strstr(gl_renderer, "Quadro4"))
- {
- return CARD_NVIDIA_GEFORCE4_TI4200; /* Geforce4 Ti4200/Ti4400/Ti4600/Ti4800, 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 */
}
- if (d3d_level >= 7)
+ /*Direct 3D 7*/
+ if (strstr(gl_renderer, "GeForce4 MX"))
{
- if (strstr(gl_renderer, "GeForce4 MX"))
- {
- return CARD_NVIDIA_GEFORCE4_MX; /* MX420/MX440/MX460/MX4000 */
- }
+ 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 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, "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 */
@@ -1879,141 +1862,131 @@ static enum wined3d_pci_device select_card_nvidia_binary(const struct wined3d_gl
return CARD_NVIDIA_RIVA_TNT; /* Riva TNT, Vanta */
}
-static enum wined3d_pci_device select_card_amd_binary(const struct wined3d_gl_info *gl_info,
- const char *gl_renderer)
+static enum wined3d_pci_device select_card_amd_binary(const char *gl_renderer)
{
- UINT d3d_level = d3d_level_from_gl_info(gl_info);
-
/* 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 cards, even for RV790 based ones. */
- if (d3d_level >= 10)
- {
- unsigned int i;
+ unsigned int i;
- static const struct
- {
- const char *renderer;
- enum wined3d_pci_device id;
- }
- cards[] =
- {
- /* Southern Islands */
- {"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},
- /* 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 */
- /* 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 */
- /* 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},
- /* 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 */
- };
-
- for (i = 0; i < sizeof(cards) / sizeof(*cards); ++i)
- {
- if (strstr(gl_renderer, cards[i].renderer))
- return cards[i].id;
- }
- return PCI_DEVICE_NONE;
+ static const struct
+ {
+ const char *renderer;
+ enum wined3d_pci_device id;
}
+ cards[] =
+ {
+ /* Southern Islands */
+ {"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},
+ /* 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 */
+ /* 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 */
+ /* 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},
+ /* 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 */
+ };
- if (d3d_level >= 9)
+ for (i = 0; i < sizeof(cards) / sizeof(*cards); ++i)
{
- /* 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;
- }
+ 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 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;
- }
+ /* 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;
}
-static enum wined3d_pci_device select_card_intel(const struct wined3d_gl_info *gl_info,
- const char *gl_renderer)
+static enum wined3d_pci_device select_card_intel(const char *gl_renderer)
{
unsigned int i;
@@ -2082,8 +2055,7 @@ static enum wined3d_pci_device select_card_intel(const struct wined3d_gl_info *g
return PCI_DEVICE_NONE;
}
-static enum wined3d_pci_device select_card_amd_mesa(const struct wined3d_gl_info *gl_info,
- const char *gl_renderer)
+static enum wined3d_pci_device select_card_amd_mesa(const char *gl_renderer)
{
unsigned int i;
@@ -2272,7 +2244,7 @@ static enum wined3d_pci_device select_card_nvidia_mesa(const struct wined3d_gl_i
return PCI_DEVICE_NONE;
}
-static enum wined3d_pci_device select_card_vmware(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static enum wined3d_pci_device select_card_vmware(const char *gl_renderer)
{
if (strstr(gl_renderer, "SVGA3D"))
return CARD_VMWARE_SVGA3D;
@@ -2284,7 +2256,7 @@ static const struct gl_vendor_selection
{
enum wined3d_gl_vendor gl_vendor;
const char *description; /* Description of the card selector i.e. Apple OS/X Intel */
- enum wined3d_pci_device (*select_card)(const struct wined3d_gl_info *gl_info, const char *gl_renderer);
+ enum wined3d_pci_device (*select_card)(const char *gl_renderer);
}
amd_gl_vendor_table[] =
{
@@ -2349,8 +2321,7 @@ static enum wined3d_pci_device select_card_fallback_intel(const struct wined3d_g
}
static enum wined3d_pci_device select_card_handler(const struct gl_vendor_selection *table,
- unsigned int table_size, enum wined3d_gl_vendor gl_vendor,
- const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+ unsigned int table_size, enum wined3d_gl_vendor gl_vendor, const char *gl_renderer)
{
unsigned int i;
@@ -2360,7 +2331,7 @@ static enum wined3d_pci_device select_card_handler(const struct gl_vendor_select
continue;
TRACE("Applying card selector \"%s\".\n", table[i].description);
- return table[i].select_card(gl_info, gl_renderer);
+ return table[i].select_card(gl_renderer);
}
FIXME("Couldn't find a suitable card selector for GL vendor %04x (using GL_RENDERER %s)\n",
gl_vendor, debugstr_a(gl_renderer));
@@ -2456,7 +2427,7 @@ static enum wined3d_pci_device wined3d_guess_card(const struct wined3d_gl_info *
TRACE("Applying card selector \"%s\".\n", card_vendor_table[i].description);
device = select_card_handler(card_vendor_table[i].gl_vendor_selection,
- card_vendor_table[i].gl_vendor_count, *gl_vendor, gl_info, gl_renderer);
+ card_vendor_table[i].gl_vendor_count, *gl_vendor, gl_renderer);
if (device != PCI_DEVICE_NONE)
return device;
--
2.0.0
More information about the wine-patches
mailing list