xref: /aosp_15_r20/external/mesa3d/src/gallium/targets/d3dadapter9/description.c (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker  * Copyright 2015 Patrick Rudolph <[email protected]>
3*61046927SAndroid Build Coastguard Worker  * SPDX-License-Identifier: MIT
4*61046927SAndroid Build Coastguard Worker  */
5*61046927SAndroid Build Coastguard Worker 
6*61046927SAndroid Build Coastguard Worker #include <stdio.h>
7*61046927SAndroid Build Coastguard Worker #include <string.h>
8*61046927SAndroid Build Coastguard Worker #include "adapter9.h"
9*61046927SAndroid Build Coastguard Worker 
10*61046927SAndroid Build Coastguard Worker #define DBG_CHANNEL DBG_ADAPTER
11*61046927SAndroid Build Coastguard Worker 
12*61046927SAndroid Build Coastguard Worker /* prototypes */
13*61046927SAndroid Build Coastguard Worker void
14*61046927SAndroid Build Coastguard Worker d3d_match_vendor_id( D3DADAPTER_IDENTIFIER9* drvid,
15*61046927SAndroid Build Coastguard Worker         unsigned fallback_ven,
16*61046927SAndroid Build Coastguard Worker         unsigned fallback_dev,
17*61046927SAndroid Build Coastguard Worker         const char* fallback_name );
18*61046927SAndroid Build Coastguard Worker void d3d_fill_driver_version(D3DADAPTER_IDENTIFIER9* drvid);
19*61046927SAndroid Build Coastguard Worker void d3d_fill_cardname(D3DADAPTER_IDENTIFIER9* drvid);
20*61046927SAndroid Build Coastguard Worker 
21*61046927SAndroid Build Coastguard Worker enum d3d_vendor_id
22*61046927SAndroid Build Coastguard Worker {
23*61046927SAndroid Build Coastguard Worker     HW_VENDOR_SOFTWARE              = 0x0000,
24*61046927SAndroid Build Coastguard Worker     HW_VENDOR_AMD                   = 0x1002,
25*61046927SAndroid Build Coastguard Worker     HW_VENDOR_NVIDIA                = 0x10de,
26*61046927SAndroid Build Coastguard Worker     HW_VENDOR_VMWARE                = 0x15ad,
27*61046927SAndroid Build Coastguard Worker     HW_VENDOR_INTEL                 = 0x8086,
28*61046927SAndroid Build Coastguard Worker };
29*61046927SAndroid Build Coastguard Worker 
30*61046927SAndroid Build Coastguard Worker struct card_lookup_table {
31*61046927SAndroid Build Coastguard Worker     const char *mesaname;
32*61046927SAndroid Build Coastguard Worker     const char *d3d9name;
33*61046927SAndroid Build Coastguard Worker }
34*61046927SAndroid Build Coastguard Worker cards_amd[] = {
35*61046927SAndroid Build Coastguard Worker     {"HAWAII",                      "AMD Radeon R9 290"},
36*61046927SAndroid Build Coastguard Worker     {"KAVERI",                      "AMD Radeon(TM) R7 Graphics"},
37*61046927SAndroid Build Coastguard Worker     {"KABINI",                      "AMD Radeon HD 8400 / R3 Series"},
38*61046927SAndroid Build Coastguard Worker     {"BONAIRE",                     "AMD Radeon HD 8770"},
39*61046927SAndroid Build Coastguard Worker     {"OLAND",                       "AMD Radeon HD 8670"},
40*61046927SAndroid Build Coastguard Worker     {"HAINAN",                      "AMD Radeon HD 8600M Series"},
41*61046927SAndroid Build Coastguard Worker     {"TAHITI",                      "AMD Radeon HD 7900 Series"},
42*61046927SAndroid Build Coastguard Worker     {"PITCAIRN",                    "AMD Radeon HD 7800 Series"},
43*61046927SAndroid Build Coastguard Worker     {"CAPE VERDE",                  "AMD Radeon HD 7700 Series"},
44*61046927SAndroid Build Coastguard Worker     {"ARUBA",                       "AMD Radeon HD 7660D"},
45*61046927SAndroid Build Coastguard Worker     {"CAYMAN",                      "AMD Radeon HD 6900 Series"},
46*61046927SAndroid Build Coastguard Worker     {"BARTS",                       "AMD Radeon HD 6800 Series"},
47*61046927SAndroid Build Coastguard Worker     {"TURKS",                       "AMD Radeon HD 6600 Series"},
48*61046927SAndroid Build Coastguard Worker     {"SUMO2",                       "AMD Radeon HD 6410D"},
49*61046927SAndroid Build Coastguard Worker     {"SUMO",                        "AMD Radeon HD 6550D"},
50*61046927SAndroid Build Coastguard Worker     {"CAICOS",                      "AMD Radeon HD 6400 Series"},
51*61046927SAndroid Build Coastguard Worker     {"PALM",                        "AMD Radeon HD 6300 series Graphics"},
52*61046927SAndroid Build Coastguard Worker     {"HEMLOCK",                     "ATI Radeon HD 5900 Series"},
53*61046927SAndroid Build Coastguard Worker     {"CYPRESS",                     "ATI Radeon HD 5800 Series"},
54*61046927SAndroid Build Coastguard Worker     {"JUNIPER",                     "ATI Radeon HD 5700 Series"},
55*61046927SAndroid Build Coastguard Worker     {"REDWOOD",                     "ATI Radeon HD 5600 Series"},
56*61046927SAndroid Build Coastguard Worker     {"CEDAR",                       "ATI Radeon HD 5500 Series"},
57*61046927SAndroid Build Coastguard Worker     {"R700",                        "ATI Radeon HD 4800 Series"},
58*61046927SAndroid Build Coastguard Worker     {"RV790",                       "ATI Radeon HD 4800 Series"},
59*61046927SAndroid Build Coastguard Worker     {"RV770",                       "ATI Radeon HD 4800 Series"},
60*61046927SAndroid Build Coastguard Worker     {"RV740",                       "ATI Radeon HD 4700 Series"},
61*61046927SAndroid Build Coastguard Worker     {"RV730",                       "ATI Radeon HD 4600 Series"},
62*61046927SAndroid Build Coastguard Worker     {"RV710",                       "ATI Radeon HD 4350"},
63*61046927SAndroid Build Coastguard Worker     {"RS880",                       "ATI Mobility Radeon HD 4200"},
64*61046927SAndroid Build Coastguard Worker     {"RS780",                       "ATI Radeon HD 3200 Graphics"},
65*61046927SAndroid Build Coastguard Worker     {"R680",                        "ATI Radeon HD 2900 XT"},
66*61046927SAndroid Build Coastguard Worker     {"R600",                        "ATI Radeon HD 2900 XT"},
67*61046927SAndroid Build Coastguard Worker     {"RV670",                       "ATI Radeon HD 2900 XT"},
68*61046927SAndroid Build Coastguard Worker     {"RV635",                       "ATI Mobility Radeon HD 2600"},
69*61046927SAndroid Build Coastguard Worker     {"RV630",                       "ATI Mobility Radeon HD 2600"},
70*61046927SAndroid Build Coastguard Worker     {"RV620",                       "ATI Mobility Radeon HD 2350"},
71*61046927SAndroid Build Coastguard Worker     {"RV610",                       "ATI Mobility Radeon HD 2350"},
72*61046927SAndroid Build Coastguard Worker     {"R580",                        "ATI Radeon X1600 Series"},
73*61046927SAndroid Build Coastguard Worker     {"R520",                        "ATI Radeon X1600 Series"},
74*61046927SAndroid Build Coastguard Worker     {"RV570",                       "ATI Radeon X1600 Series"},
75*61046927SAndroid Build Coastguard Worker     {"RV560",                       "ATI Radeon X1600 Series"},
76*61046927SAndroid Build Coastguard Worker     {"RV535",                       "ATI Radeon X1600 Series"},
77*61046927SAndroid Build Coastguard Worker     {"RV530",                       "ATI Radeon X1600 Series"},
78*61046927SAndroid Build Coastguard Worker     {"RV516",                       "ATI Radeon X700 SE"},
79*61046927SAndroid Build Coastguard Worker     {"RV515",                       "ATI Radeon X700 SE"},
80*61046927SAndroid Build Coastguard Worker     {"R481",                        "ATI Radeon X700 SE"},
81*61046927SAndroid Build Coastguard Worker     {"R480",                        "ATI Radeon X700 SE"},
82*61046927SAndroid Build Coastguard Worker     {"R430",                        "ATI Radeon X700 SE"},
83*61046927SAndroid Build Coastguard Worker     {"R423",                        "ATI Radeon X700 SE"},
84*61046927SAndroid Build Coastguard Worker     {"R420",                        "ATI Radeon X700 SE"},
85*61046927SAndroid Build Coastguard Worker     {"R410",                        "ATI Radeon X700 SE"},
86*61046927SAndroid Build Coastguard Worker     {"RV410",                       "ATI Radeon X700 SE"},
87*61046927SAndroid Build Coastguard Worker     {"RS740",                       "ATI RADEON XPRESS 200M Series"},
88*61046927SAndroid Build Coastguard Worker     {"RS690",                       "ATI RADEON XPRESS 200M Series"},
89*61046927SAndroid Build Coastguard Worker     {"RS600",                       "ATI RADEON XPRESS 200M Series"},
90*61046927SAndroid Build Coastguard Worker     {"RS485",                       "ATI RADEON XPRESS 200M Series"},
91*61046927SAndroid Build Coastguard Worker     {"RS482",                       "ATI RADEON XPRESS 200M Series"},
92*61046927SAndroid Build Coastguard Worker     {"RS480",                       "ATI RADEON XPRESS 200M Series"},
93*61046927SAndroid Build Coastguard Worker     {"RS400",                       "ATI RADEON XPRESS 200M Series"},
94*61046927SAndroid Build Coastguard Worker     {"R360",                        "ATI Radeon 9500"},
95*61046927SAndroid Build Coastguard Worker     {"R350",                        "ATI Radeon 9500"},
96*61046927SAndroid Build Coastguard Worker     {"R300",                        "ATI Radeon 9500"},
97*61046927SAndroid Build Coastguard Worker     {"RV370",                       "ATI Radeon 9500"},
98*61046927SAndroid Build Coastguard Worker     {"RV360",                       "ATI Radeon 9500"},
99*61046927SAndroid Build Coastguard Worker     {"RV351",                       "ATI Radeon 9500"},
100*61046927SAndroid Build Coastguard Worker     {"RV350",                       "ATI Radeon 9500"},
101*61046927SAndroid Build Coastguard Worker },
102*61046927SAndroid Build Coastguard Worker cards_nvidia[] =
103*61046927SAndroid Build Coastguard Worker {
104*61046927SAndroid Build Coastguard Worker     {"NV124",                       "NVIDIA GeForce GTX 970"},
105*61046927SAndroid Build Coastguard Worker     {"NV117",                       "NVIDIA GeForce GTX 750"},
106*61046927SAndroid Build Coastguard Worker     {"NVF1",                        "NVIDIA GeForce GTX 780 Ti"},
107*61046927SAndroid Build Coastguard Worker     {"NVF0",                        "NVIDIA GeForce GTX 780"},
108*61046927SAndroid Build Coastguard Worker     {"NVE6",                        "NVIDIA GeForce GTX 770M"},
109*61046927SAndroid Build Coastguard Worker     {"NVE4",                        "NVIDIA GeForce GTX 680"},
110*61046927SAndroid Build Coastguard Worker     {"NVD9",                        "NVIDIA GeForce GT 520"},
111*61046927SAndroid Build Coastguard Worker     {"NVCF",                        "NVIDIA GeForce GTX 550 Ti"},
112*61046927SAndroid Build Coastguard Worker     {"NVCE",                        "NVIDIA GeForce GTX 560"},
113*61046927SAndroid Build Coastguard Worker     {"NVC8",                        "NVIDIA GeForce GTX 570"},
114*61046927SAndroid Build Coastguard Worker     {"NVC4",                        "NVIDIA GeForce GTX 460"},
115*61046927SAndroid Build Coastguard Worker     {"NVC3",                        "NVIDIA GeForce GT 440"},
116*61046927SAndroid Build Coastguard Worker     {"NVC1",                        "NVIDIA GeForce GT 420"},
117*61046927SAndroid Build Coastguard Worker     {"NVC0",                        "NVIDIA GeForce GTX 480"},
118*61046927SAndroid Build Coastguard Worker     {"NVAF",                        "NVIDIA GeForce GT 320M"},
119*61046927SAndroid Build Coastguard Worker     {"NVAC",                        "NVIDIA GeForce 8200"},
120*61046927SAndroid Build Coastguard Worker     {"NVAA",                        "NVIDIA GeForce 8200"},
121*61046927SAndroid Build Coastguard Worker     {"NVA8",                        "NVIDIA GeForce 210"},
122*61046927SAndroid Build Coastguard Worker     {"NVA5",                        "NVIDIA GeForce GT 220"},
123*61046927SAndroid Build Coastguard Worker     {"NVA3",                        "NVIDIA GeForce GT 240"},
124*61046927SAndroid Build Coastguard Worker     {"NVA0",                        "NVIDIA GeForce GTX 280"},
125*61046927SAndroid Build Coastguard Worker     {"NV98",                        "NVIDIA GeForce 9200"},
126*61046927SAndroid Build Coastguard Worker     {"NV96",                        "NVIDIA GeForce 9400 GT"},
127*61046927SAndroid Build Coastguard Worker     {"NV94",                        "NVIDIA GeForce 9600 GT"},
128*61046927SAndroid Build Coastguard Worker     {"NV92",                        "NVIDIA GeForce 9800 GT"},
129*61046927SAndroid Build Coastguard Worker     {"NV86",                        "NVIDIA GeForce 8500 GT"},
130*61046927SAndroid Build Coastguard Worker     {"NV84",                        "NVIDIA GeForce 8600 GT"},
131*61046927SAndroid Build Coastguard Worker     {"NV50",                        "NVIDIA GeForce 8800 GTX"},
132*61046927SAndroid Build Coastguard Worker     {"NV68",                        "NVIDIA GeForce 6200"},
133*61046927SAndroid Build Coastguard Worker     {"NV67",                        "NVIDIA GeForce 6200"},
134*61046927SAndroid Build Coastguard Worker     {"NV63",                        "NVIDIA GeForce 6200"},
135*61046927SAndroid Build Coastguard Worker     {"NV4E",                        "NVIDIA GeForce 6200"},
136*61046927SAndroid Build Coastguard Worker     {"NV4C",                        "NVIDIA GeForce 6200"},
137*61046927SAndroid Build Coastguard Worker     {"NV4B",                        "NVIDIA GeForce 7600 GT"},
138*61046927SAndroid Build Coastguard Worker     {"NV4A",                        "NVIDIA GeForce 6200"},
139*61046927SAndroid Build Coastguard Worker     {"NV49",                        "NVIDIA GeForce 7800 GT"},
140*61046927SAndroid Build Coastguard Worker     {"NV47",                        "NVIDIA GeForce 7800 GT"},
141*61046927SAndroid Build Coastguard Worker     {"NV46",                        "NVIDIA GeForce Go 7400",},
142*61046927SAndroid Build Coastguard Worker     {"NV45",                        "NVIDIA GeForce 6800"},
143*61046927SAndroid Build Coastguard Worker     {"NV44",                        "NVIDIA GeForce 6200"},
144*61046927SAndroid Build Coastguard Worker     {"NV43",                        "NVIDIA GeForce 6600 GT"},
145*61046927SAndroid Build Coastguard Worker     {"NV42",                        "NVIDIA GeForce 6800"},
146*61046927SAndroid Build Coastguard Worker     {"NV41",                        "NVIDIA GeForce 6800"},
147*61046927SAndroid Build Coastguard Worker     {"NV40",                        "NVIDIA GeForce 6800"},
148*61046927SAndroid Build Coastguard Worker     {"NV38",                        "NVIDIA GeForce FX 5800"},
149*61046927SAndroid Build Coastguard Worker     {"NV36",                        "NVIDIA GeForce FX 5800"},
150*61046927SAndroid Build Coastguard Worker     {"NV35",                        "NVIDIA GeForce FX 5800"},
151*61046927SAndroid Build Coastguard Worker     {"NV34",                        "NVIDIA GeForce FX 5200"},
152*61046927SAndroid Build Coastguard Worker     {"NV31",                        "NVIDIA GeForce FX 5600"},
153*61046927SAndroid Build Coastguard Worker     {"NV30",                        "NVIDIA GeForce FX 5800"},
154*61046927SAndroid Build Coastguard Worker     {"nv28",                        "NVIDIA GeForce4 Ti 4200"},
155*61046927SAndroid Build Coastguard Worker     {"nv25",                        "NVIDIA GeForce4 Ti 4200"},
156*61046927SAndroid Build Coastguard Worker     {"nv20",                        "NVIDIA GeForce3"},
157*61046927SAndroid Build Coastguard Worker     {"nv1F",                        "NVIDIA GeForce4 MX 460"},
158*61046927SAndroid Build Coastguard Worker     {"nv1A",                        "NVIDIA GeForce2 GTS/GeForce2 Pro"},
159*61046927SAndroid Build Coastguard Worker     {"nv18",                        "NVIDIA GeForce4 MX 460"},
160*61046927SAndroid Build Coastguard Worker     {"nv17",                        "NVIDIA GeForce4 MX 460"},
161*61046927SAndroid Build Coastguard Worker     {"nv16",                        "NVIDIA GeForce2 GTS/GeForce2 Pro"},
162*61046927SAndroid Build Coastguard Worker     {"nv15",                        "NVIDIA GeForce2 GTS/GeForce2 Pro"},
163*61046927SAndroid Build Coastguard Worker     {"nv11",                        "NVIDIA GeForce2 MX/MX 400"},
164*61046927SAndroid Build Coastguard Worker     {"nv10",                        "NVIDIA GeForce 256"},
165*61046927SAndroid Build Coastguard Worker },
166*61046927SAndroid Build Coastguard Worker cards_vmware[] =
167*61046927SAndroid Build Coastguard Worker {
168*61046927SAndroid Build Coastguard Worker     {"SVGA3D",                      "VMware SVGA 3D (Microsoft Corporation - WDDM)"},
169*61046927SAndroid Build Coastguard Worker },
170*61046927SAndroid Build Coastguard Worker cards_intel[] =
171*61046927SAndroid Build Coastguard Worker {
172*61046927SAndroid Build Coastguard Worker     {"Haswell Mobile",              "Intel(R) Haswell Mobile"},
173*61046927SAndroid Build Coastguard Worker     {"Ivybridge Server",            "Intel(R) Ivybridge Server"},
174*61046927SAndroid Build Coastguard Worker     {"Ivybridge Mobile",            "Intel(R) Ivybridge Mobile"},
175*61046927SAndroid Build Coastguard Worker     {"Ivybridge Desktop",           "Intel(R) Ivybridge Desktop"},
176*61046927SAndroid Build Coastguard Worker     {"Sandybridge Server",          "Intel(R) Sandybridge Server"},
177*61046927SAndroid Build Coastguard Worker     {"Sandybridge Mobile",          "Intel(R) Sandybridge Mobile"},
178*61046927SAndroid Build Coastguard Worker     {"Sandybridge Desktop",         "Intel(R) Sandybridge Desktop"},
179*61046927SAndroid Build Coastguard Worker     {"Ironlake Mobile",             "Intel(R) Ironlake Mobile"},
180*61046927SAndroid Build Coastguard Worker     {"Ironlake Desktop",            "Intel(R) Ironlake Desktop"},
181*61046927SAndroid Build Coastguard Worker     {"B43",                         "Intel(R) B43"},
182*61046927SAndroid Build Coastguard Worker     {"G41",                         "Intel(R) G41"},
183*61046927SAndroid Build Coastguard Worker     {"G45",                         "Intel(R) G45/G43"},
184*61046927SAndroid Build Coastguard Worker     {"Q45",                         "Intel(R) Q45/Q43"},
185*61046927SAndroid Build Coastguard Worker     {"Integrated Graphics Device",  "Intel(R) Integrated Graphics Device"},
186*61046927SAndroid Build Coastguard Worker     {"GM45",                        "Mobile Intel(R) GM45 Express Chipset Family"},
187*61046927SAndroid Build Coastguard Worker     {"965GME",                      "Intel(R) 965GME"},
188*61046927SAndroid Build Coastguard Worker     {"965GM",                       "Mobile Intel(R) 965 Express Chipset Family"},
189*61046927SAndroid Build Coastguard Worker     {"946GZ",                       "Intel(R) 946GZ"},
190*61046927SAndroid Build Coastguard Worker     {"965G",                        "Intel(R) 965G"},
191*61046927SAndroid Build Coastguard Worker     {"965Q",                        "Intel(R) 965Q"},
192*61046927SAndroid Build Coastguard Worker     {"Pineview M",                  "Intel(R) IGD"},
193*61046927SAndroid Build Coastguard Worker     {"Pineview G",                  "Intel(R) IGD"},
194*61046927SAndroid Build Coastguard Worker     {"IGD",                         "Intel(R) IGD"},
195*61046927SAndroid Build Coastguard Worker     {"Q33",                         "Intel(R) Q33"},
196*61046927SAndroid Build Coastguard Worker     {"G33",                         "Intel(R) G33"},
197*61046927SAndroid Build Coastguard Worker     {"Q35",                         "Intel(R) Q35"},
198*61046927SAndroid Build Coastguard Worker     {"945GME",                      "Intel(R) 945GME"},
199*61046927SAndroid Build Coastguard Worker     {"945GM",                       "Mobile Intel(R) 945GM Express Chipset Family"},
200*61046927SAndroid Build Coastguard Worker     {"945G",                        "Intel(R) 945G"},
201*61046927SAndroid Build Coastguard Worker     {"915GM",                       "Mobile Intel(R) 915GM/GMS,910GML Express Chipset Family"},
202*61046927SAndroid Build Coastguard Worker     {"E7221G",                      "Intel(R) E7221G"},
203*61046927SAndroid Build Coastguard Worker     {"915G",                        "Intel(R) 82915G/GV/910GL Express Chipset Family"},
204*61046927SAndroid Build Coastguard Worker     {"865G",                        "Intel(R) 82865G Graphics Controller"},
205*61046927SAndroid Build Coastguard Worker     {"845G",                        "Intel(R) 845G"},
206*61046927SAndroid Build Coastguard Worker     {"855GM",                       "Intel(R) 82852/82855 GM/GME Graphics Controller"},
207*61046927SAndroid Build Coastguard Worker     {"830M",                        "Intel(R) 82830M Graphics Controller"},
208*61046927SAndroid Build Coastguard Worker };
209*61046927SAndroid Build Coastguard Worker 
210*61046927SAndroid Build Coastguard Worker /* override VendorId, DeviceId and Description for unknown vendors */
211*61046927SAndroid Build Coastguard Worker void
d3d_match_vendor_id(D3DADAPTER_IDENTIFIER9 * drvid,unsigned fallback_ven,unsigned fallback_dev,const char * fallback_name)212*61046927SAndroid Build Coastguard Worker d3d_match_vendor_id( D3DADAPTER_IDENTIFIER9* drvid,
213*61046927SAndroid Build Coastguard Worker         unsigned fallback_ven,
214*61046927SAndroid Build Coastguard Worker         unsigned fallback_dev,
215*61046927SAndroid Build Coastguard Worker         const char* fallback_name )
216*61046927SAndroid Build Coastguard Worker {
217*61046927SAndroid Build Coastguard Worker     if (drvid->VendorId == HW_VENDOR_INTEL ||
218*61046927SAndroid Build Coastguard Worker         drvid->VendorId == HW_VENDOR_VMWARE ||
219*61046927SAndroid Build Coastguard Worker         drvid->VendorId == HW_VENDOR_AMD ||
220*61046927SAndroid Build Coastguard Worker         drvid->VendorId == HW_VENDOR_NVIDIA)
221*61046927SAndroid Build Coastguard Worker         return;
222*61046927SAndroid Build Coastguard Worker 
223*61046927SAndroid Build Coastguard Worker     DBG("unknown vendor 0x4%x, emulating 0x4%x\n", drvid->VendorId, fallback_ven);
224*61046927SAndroid Build Coastguard Worker     drvid->VendorId = fallback_ven;
225*61046927SAndroid Build Coastguard Worker     drvid->DeviceId = fallback_dev;
226*61046927SAndroid Build Coastguard Worker     snprintf(drvid->Description, sizeof(drvid->Description), "%s", fallback_name);
227*61046927SAndroid Build Coastguard Worker }
228*61046927SAndroid Build Coastguard Worker 
229*61046927SAndroid Build Coastguard Worker /* fill in driver name and version */
d3d_fill_driver_version(D3DADAPTER_IDENTIFIER9 * drvid)230*61046927SAndroid Build Coastguard Worker void d3d_fill_driver_version(D3DADAPTER_IDENTIFIER9* drvid) {
231*61046927SAndroid Build Coastguard Worker     switch (drvid->VendorId) {
232*61046927SAndroid Build Coastguard Worker     case HW_VENDOR_INTEL:
233*61046927SAndroid Build Coastguard Worker         drvid->DriverVersionLowPart = 0x000A0682;
234*61046927SAndroid Build Coastguard Worker         drvid->DriverVersionHighPart = 0x0006000F;
235*61046927SAndroid Build Coastguard Worker         strncpy(drvid->Driver, "igdumd32.dll", sizeof(drvid->Driver));
236*61046927SAndroid Build Coastguard Worker         break;
237*61046927SAndroid Build Coastguard Worker     case HW_VENDOR_VMWARE:
238*61046927SAndroid Build Coastguard Worker         drvid->DriverVersionLowPart = 0x0001046E;
239*61046927SAndroid Build Coastguard Worker         drvid->DriverVersionHighPart = 0x0006000E;
240*61046927SAndroid Build Coastguard Worker         strncpy(drvid->Driver, "vm3dum.dll", sizeof(drvid->Driver));
241*61046927SAndroid Build Coastguard Worker         break;
242*61046927SAndroid Build Coastguard Worker     case HW_VENDOR_AMD:
243*61046927SAndroid Build Coastguard Worker         drvid->DriverVersionLowPart = 0x000A0500;
244*61046927SAndroid Build Coastguard Worker         drvid->DriverVersionHighPart = 0x00060011;
245*61046927SAndroid Build Coastguard Worker         strncpy(drvid->Driver, "atiumdag.dll", sizeof(drvid->Driver));
246*61046927SAndroid Build Coastguard Worker         break;
247*61046927SAndroid Build Coastguard Worker     case HW_VENDOR_NVIDIA:
248*61046927SAndroid Build Coastguard Worker         drvid->DriverVersionLowPart = 0x000D0FD4;
249*61046927SAndroid Build Coastguard Worker         drvid->DriverVersionHighPart = 0x00060012;
250*61046927SAndroid Build Coastguard Worker         strncpy(drvid->Driver, "nvd3dum.dll", sizeof(drvid->Driver));
251*61046927SAndroid Build Coastguard Worker         break;
252*61046927SAndroid Build Coastguard Worker     default:
253*61046927SAndroid Build Coastguard Worker         break;
254*61046927SAndroid Build Coastguard Worker     }
255*61046927SAndroid Build Coastguard Worker }
256*61046927SAndroid Build Coastguard Worker 
257*61046927SAndroid Build Coastguard Worker /* try to match the device name and override it with Windows like device names */
d3d_fill_cardname(D3DADAPTER_IDENTIFIER9 * drvid)258*61046927SAndroid Build Coastguard Worker void d3d_fill_cardname(D3DADAPTER_IDENTIFIER9* drvid) {
259*61046927SAndroid Build Coastguard Worker     unsigned i;
260*61046927SAndroid Build Coastguard Worker     switch (drvid->VendorId) {
261*61046927SAndroid Build Coastguard Worker     case HW_VENDOR_INTEL:
262*61046927SAndroid Build Coastguard Worker         for (i = 0; i < sizeof(cards_intel) / sizeof(cards_intel[0]); i++) {
263*61046927SAndroid Build Coastguard Worker             if (strstr(drvid->Description, cards_intel[i].mesaname)) {
264*61046927SAndroid Build Coastguard Worker                 snprintf(drvid->Description, sizeof(drvid->Description),
265*61046927SAndroid Build Coastguard Worker                          "%s", cards_intel[i].d3d9name);
266*61046927SAndroid Build Coastguard Worker                 return;
267*61046927SAndroid Build Coastguard Worker             }
268*61046927SAndroid Build Coastguard Worker         }
269*61046927SAndroid Build Coastguard Worker         /* use a fall-back if nothing matches */
270*61046927SAndroid Build Coastguard Worker         DBG("Unknown card name %s!\n", drvid->DeviceName);
271*61046927SAndroid Build Coastguard Worker         snprintf(drvid->Description, sizeof(drvid->Description),
272*61046927SAndroid Build Coastguard Worker                  "%s", cards_intel[0].d3d9name);
273*61046927SAndroid Build Coastguard Worker         break;
274*61046927SAndroid Build Coastguard Worker     case HW_VENDOR_VMWARE:
275*61046927SAndroid Build Coastguard Worker         for (i = 0; i < sizeof(cards_vmware) / sizeof(cards_vmware[0]); i++) {
276*61046927SAndroid Build Coastguard Worker             if (strstr(drvid->Description, cards_vmware[i].mesaname)) {
277*61046927SAndroid Build Coastguard Worker                 snprintf(drvid->Description, sizeof(drvid->Description),
278*61046927SAndroid Build Coastguard Worker                          "%s", cards_vmware[i].d3d9name);
279*61046927SAndroid Build Coastguard Worker                 return;
280*61046927SAndroid Build Coastguard Worker             }
281*61046927SAndroid Build Coastguard Worker         }
282*61046927SAndroid Build Coastguard Worker         /* use a fall-back if nothing matches */
283*61046927SAndroid Build Coastguard Worker         DBG("Unknown card name %s!\n", drvid->DeviceName);
284*61046927SAndroid Build Coastguard Worker         snprintf(drvid->Description, sizeof(drvid->Description),
285*61046927SAndroid Build Coastguard Worker                  "%s", cards_vmware[0].d3d9name);
286*61046927SAndroid Build Coastguard Worker         break;
287*61046927SAndroid Build Coastguard Worker     case HW_VENDOR_AMD:
288*61046927SAndroid Build Coastguard Worker         for (i = 0; i < sizeof(cards_amd) / sizeof(cards_amd[0]); i++) {
289*61046927SAndroid Build Coastguard Worker             if (strstr(drvid->Description, cards_amd[i].mesaname)) {
290*61046927SAndroid Build Coastguard Worker                 snprintf(drvid->Description, sizeof(drvid->Description),
291*61046927SAndroid Build Coastguard Worker                          "%s", cards_amd[i].d3d9name);
292*61046927SAndroid Build Coastguard Worker                 return;
293*61046927SAndroid Build Coastguard Worker             }
294*61046927SAndroid Build Coastguard Worker         }
295*61046927SAndroid Build Coastguard Worker         /* use a fall-back if nothing matches */
296*61046927SAndroid Build Coastguard Worker         DBG("Unknown card name %s!\n", drvid->DeviceName);
297*61046927SAndroid Build Coastguard Worker         snprintf(drvid->Description, sizeof(drvid->Description),
298*61046927SAndroid Build Coastguard Worker                  "%s", cards_amd[0].d3d9name);
299*61046927SAndroid Build Coastguard Worker         break;
300*61046927SAndroid Build Coastguard Worker     case HW_VENDOR_NVIDIA:
301*61046927SAndroid Build Coastguard Worker         for (i = 0; i < sizeof(cards_nvidia) / sizeof(cards_nvidia[0]); i++) {
302*61046927SAndroid Build Coastguard Worker             if (strstr(drvid->Description, cards_nvidia[i].mesaname)) {
303*61046927SAndroid Build Coastguard Worker                 snprintf(drvid->Description, sizeof(drvid->Description),
304*61046927SAndroid Build Coastguard Worker                          "%s", cards_nvidia[i].d3d9name);
305*61046927SAndroid Build Coastguard Worker                 return;
306*61046927SAndroid Build Coastguard Worker             }
307*61046927SAndroid Build Coastguard Worker         }
308*61046927SAndroid Build Coastguard Worker         /* use a fall-back if nothing matches */
309*61046927SAndroid Build Coastguard Worker         DBG("Unknown card name %s!\n", drvid->DeviceName);
310*61046927SAndroid Build Coastguard Worker         snprintf(drvid->Description, sizeof(drvid->Description),
311*61046927SAndroid Build Coastguard Worker                  "%s", cards_nvidia[0].d3d9name);
312*61046927SAndroid Build Coastguard Worker         break;
313*61046927SAndroid Build Coastguard Worker     default:
314*61046927SAndroid Build Coastguard Worker         break;
315*61046927SAndroid Build Coastguard Worker     }
316*61046927SAndroid Build Coastguard Worker }
317