diff options
Diffstat (limited to 'indra/newview/tests')
-rw-r--r-- | indra/newview/tests/gpus_results.txt | 1595 | ||||
-rw-r--r-- | indra/newview/tests/gpus_seen.txt | 1593 | ||||
-rw-r--r-- | indra/newview/tests/llcapabilitylistener_test.cpp | 3 | ||||
-rw-r--r-- | indra/newview/tests/lllogininstance_test.cpp | 56 | ||||
-rw-r--r-- | indra/newview/tests/llremoteparcelrequest_test.cpp | 134 | ||||
-rw-r--r-- | indra/newview/tests/llsimplestat_test.cpp | 580 | ||||
-rw-r--r-- | indra/newview/tests/llversioninfo_test.cpp | 114 | ||||
-rw-r--r-- | indra/newview/tests/llviewerassetstats_test.cpp | 984 | ||||
-rw-r--r-- | indra/newview/tests/llviewerhelputil_test.cpp | 15 | ||||
-rw-r--r-- | indra/newview/tests/llworldmap_test.cpp | 42 | ||||
-rw-r--r-- | indra/newview/tests/llworldmipmap_test.cpp | 27 | ||||
-rw-r--r-- | indra/newview/tests/llxmlrpclistener_test.cpp | 11 | ||||
-rw-r--r-- | indra/newview/tests/test_llxmlrpc_peer.py | 23 |
13 files changed, 5113 insertions, 64 deletions
diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt new file mode 100644 index 0000000000..7e9a064921 --- /dev/null +++ b/indra/newview/tests/gpus_results.txt @@ -0,0 +1,1595 @@ +GPU String Supported? Class Recognizer +------------------------------------------------------------------------------------------------------ ----------- ----- ------------------------------------ +ATI UNRECOGNIZED +ATI 3D-Analyze unsupported 0 ATI 3D-Analyze +ATI ASUS A9xxx supported 1 ATI ASUS A9xxx +ATI ASUS AH24xx supported 1 ATI ASUS AH24xx +ATI ASUS AH26xx supported 3 ATI ASUS AH26xx +ATI ASUS AH34xx supported 1 ATI ASUS AH34xx +ATI ASUS AH36xx supported 3 ATI ASUS AH36xx +ATI ASUS AH46xx supported 3 ATI ASUS AH46xx +ATI ASUS AX3xx supported 1 ATI ASUS AX3xx +ATI ASUS AX5xx supported 1 ATI ASUS AX5xx +ATI ASUS AX8xx supported 2 ATI ASUS AX8xx +ATI ASUS EAH38xx supported 3 ATI ASUS EAH38xx +ATI ASUS EAH43xx supported 1 ATI ASUS EAH43xx +ATI ASUS EAH45xx supported 1 ATI ASUS EAH45xx +ATI ASUS EAH48xx supported 3 ATI ASUS EAH48xx +ATI ASUS EAH57xx supported 3 ATI ASUS EAH57xx +ATI ASUS EAH58xx supported 3 ATI ASUS EAH58xx +ATI ASUS X1xxx supported 3 ATI ASUS Radeon X1xxx +ATI All-in-Wonder 9xxx supported 1 ATI All-in-Wonder 9xxx +ATI All-in-Wonder HD supported 1 ATI All-in-Wonder HD +ATI All-in-Wonder PCI-E supported 1 ATI All-in-Wonder PCI-E +ATI All-in-Wonder X1800 supported 3 ATI All-in-Wonder X1800 +ATI All-in-Wonder X1900 supported 3 ATI All-in-Wonder X1900 +ATI All-in-Wonder X600 supported 1 ATI All-in-Wonder X600 +ATI All-in-Wonder X800 supported 2 ATI All-in-Wonder X800 +ATI Diamond X1xxx supported 0 ATI Radeon X1xxx +ATI Display Adapter UNRECOGNIZED +ATI FireGL supported 0 ATI FireGL +ATI FireGL 5200 supported 0 ATI FireGL +ATI FireGL 5xxx supported 0 ATI FireGL +ATI FireMV supported 0 ATI FireMV +ATI Generic unsupported 0 ATI Generic +ATI Hercules 9800 supported 1 ATI Hercules 9800 +ATI IGP 340M unsupported 0 ATI IGP 340M +ATI M52 supported 1 ATI M52 +ATI M54 supported 1 ATI M54 +ATI M56 supported 1 ATI M56 +ATI M71 supported 1 ATI M71 +ATI M72 supported 1 ATI M72 +ATI M76 supported 3 ATI M76 +ATI Mobility Radeon supported 0 ATI Mobility Radeon +ATI Mobility Radeon 7xxx supported 0 ATI Mobility Radeon 7xxx +ATI Mobility Radeon 9600 supported 0 ATI Mobility Radeon 9600 +ATI Mobility Radeon 9700 supported 1 ATI Mobility Radeon 9700 +ATI Mobility Radeon 9800 supported 1 ATI Mobility Radeon 9800 +ATI Mobility Radeon HD 2300 supported 1 ATI Mobility Radeon HD 2300 +ATI Mobility Radeon HD 2400 supported 1 ATI Mobility Radeon HD 2400 +ATI Mobility Radeon HD 2600 supported 3 ATI Mobility Radeon HD 2600 +ATI Mobility Radeon HD 2700 supported 3 ATI Mobility Radeon HD 2700 +ATI Mobility Radeon HD 3400 supported 2 ATI Mobility Radeon HD 3400 +ATI Mobility Radeon HD 3600 supported 3 ATI Mobility Radeon HD 3600 +ATI Mobility Radeon HD 3800 supported 3 ATI Mobility Radeon HD 3800 +ATI Mobility Radeon HD 4200 supported 2 ATI Mobility Radeon HD 4200 +ATI Mobility Radeon HD 4300 supported 2 ATI Mobility Radeon HD 4300 +ATI Mobility Radeon HD 4500 supported 3 ATI Mobility Radeon HD 4500 +ATI Mobility Radeon HD 4600 supported 3 ATI Mobility Radeon HD 4600 +ATI Mobility Radeon HD 4800 supported 3 ATI Mobility Radeon HD 4800 +ATI Mobility Radeon HD 5400 supported 2 ATI Mobility Radeon HD 5400 +ATI Mobility Radeon HD 5600 supported 2 ATI Mobility Radeon HD 5600 +ATI Mobility Radeon X1xxx supported 0 ATI Radeon X1xxx +ATI Mobility Radeon X2xxx supported 0 ATI Mobility Radeon X2xxx +ATI Mobility Radeon X3xx supported 1 ATI Mobility Radeon X3xx +ATI Mobility Radeon X6xx supported 1 ATI Mobility Radeon X6xx +ATI Mobility Radeon X7xx supported 1 ATI Mobility Radeon X7xx +ATI Mobility Radeon Xxxx supported 0 ATI Mobility Radeon Xxxx +ATI RV380 supported 0 ATI RV380 +ATI RV530 supported 1 ATI RV530 +ATI Radeon 2100 supported 0 ATI Radeon 2100 +ATI Radeon 3000 supported 0 ATI Radeon 3000 +ATI Radeon 3100 supported 1 ATI Radeon 3100 +ATI Radeon 7000 supported 0 ATI Radeon 7xxx +ATI Radeon 7xxx supported 0 ATI Radeon 7xxx +ATI Radeon 8xxx supported 0 ATI Radeon 8xxx +ATI Radeon 9000 supported 0 ATI Radeon 9000 +ATI Radeon 9100 supported 0 ATI Radeon 9100 +ATI Radeon 9200 supported 0 ATI Radeon 9200 +ATI Radeon 9500 supported 0 ATI Radeon 9500 +ATI Radeon 9600 supported 0 ATI Radeon 9600 +ATI Radeon 9700 supported 1 ATI Radeon 9700 +ATI Radeon 9800 supported 1 ATI Radeon 9800 +ATI Radeon HD 2300 supported 0 ATI Radeon HD 2300 +ATI Radeon HD 2400 supported 1 ATI Radeon HD 2400 +ATI Radeon HD 2600 supported 2 ATI Radeon HD 2600 +ATI Radeon HD 2900 supported 3 ATI Radeon HD 2900 +ATI Radeon HD 3000 supported 0 ATI Radeon HD 3000 +ATI Radeon HD 3100 supported 1 ATI Radeon HD 3100 +ATI Radeon HD 3200 supported 0 ATI Radeon HD 3200 +ATI Radeon HD 3300 supported 1 ATI Radeon HD 3300 +ATI Radeon HD 3400 supported 1 ATI Radeon HD 3400 +ATI Radeon HD 3600 supported 3 ATI Radeon HD 3600 +ATI Radeon HD 3800 supported 3 ATI Radeon HD 3800 +ATI Radeon HD 4200 supported 1 ATI Radeon HD 4200 +ATI Radeon HD 4300 supported 1 ATI Radeon HD 4300 +ATI Radeon HD 4500 supported 3 ATI Radeon HD 4500 +ATI Radeon HD 4600 supported 3 ATI Radeon HD 4600 +ATI Radeon HD 4700 supported 3 ATI Radeon HD 4700 +ATI Radeon HD 4800 supported 3 ATI Radeon HD 4800 +ATI Radeon HD 5400 supported 3 ATI Radeon HD 5400 +ATI Radeon HD 5500 supported 3 ATI Radeon HD 5500 +ATI Radeon HD 5600 supported 3 ATI Radeon HD 5600 +ATI Radeon HD 5700 supported 3 ATI Radeon HD 5700 +ATI Radeon HD 5800 supported 3 ATI Radeon HD 5800 +ATI Radeon HD 5900 supported 3 ATI Radeon HD 5900 +ATI Radeon HD 6200 supported 2 ATI Radeon HD 6200 +ATI Radeon HD 6300 supported 2 ATI Radeon HD 6300 +ATI Radeon HD 6500 supported 3 ATI Radeon HD 6500 +ATI Radeon HD 6800 supported 3 ATI Radeon HD 6800 +ATI Radeon HD 6900 supported 3 ATI Radeon HD 6900 +ATI Radeon OpenGL supported 0 ATI Radeon +ATI Radeon RV250 supported 0 ATI Radeon RV250 +ATI Radeon RV600 supported 1 ATI Radeon RV600 +ATI Radeon RX9550 supported 1 ATI Radeon RX9550 +ATI Radeon VE unsupported 0 ATI Radeon VE +ATI Radeon X1000 supported 0 ATI Radeon X1xxx +ATI Radeon X1200 supported 0 ATI Radeon X1xxx +ATI Radeon X1300 supported 0 ATI Radeon X1xxx +ATI Radeon X13xx supported 0 ATI Radeon X1xxx +ATI Radeon X1400 supported 0 ATI Radeon X1xxx +ATI Radeon X1500 supported 0 ATI Radeon X1xxx +ATI Radeon X1600 supported 0 ATI Radeon X1xxx +ATI Radeon X16xx supported 0 ATI Radeon X1xxx +ATI Radeon X1700 supported 0 ATI Radeon X1xxx +ATI Radeon X1800 supported 0 ATI Radeon X1xxx +ATI Radeon X1900 supported 0 ATI Radeon X1xxx +ATI Radeon X19xx supported 0 ATI Radeon X1xxx +ATI Radeon X1xxx supported 0 ATI Radeon X1xxx +ATI Radeon X300 supported 0 ATI Radeon X300 +ATI Radeon X500 supported 0 ATI Radeon X500 +ATI Radeon X600 supported 1 ATI Radeon X600 +ATI Radeon X700 supported 1 ATI Radeon X700 +ATI Radeon X7xx supported 1 ATI Radeon X700 +ATI Radeon X800 supported 2 ATI Radeon X800 +ATI Radeon Xpress supported 0 ATI Radeon Xpress +ATI Rage 128 supported 0 ATI Rage 128 +ATI Technologies Inc. supported 0 ATI Technologies +ATI Technologies Inc. x86 supported 0 ATI Technologies +ATI Technologies Inc. x86/SSE2 supported 0 ATI Technologies +ATI Technologies Inc. (Vista) ATI Mobility Radeon HD 5730 supported 3 ATI Mobility Radeon HD 5700 +ATI Technologies Inc. 256MB ATI Radeon X1300PRO x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. AMD 760G supported 1 ATI 760G/Radeon 3000 +ATI Technologies Inc. AMD 760G (Microsoft WDDM 1.1) supported 1 ATI 760G/Radeon 3000 +ATI Technologies Inc. AMD 780L supported 1 ATI 780L/Radeon 3000 +ATI Technologies Inc. AMD FirePro 2270 supported 1 ATI FirePro 2000 +ATI Technologies Inc. AMD M860G with ATI Mobility Radeon 4100 supported 0 ATI Mobility Radeon 4100 +ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4200 supported 2 ATI Mobility Radeon HD 4200 +ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4250 supported 2 ATI Mobility Radeon HD 4200 +ATI Technologies Inc. AMD RADEON HD 6450 supported 3 ATI Radeon HD 6400 +ATI Technologies Inc. AMD Radeon HD 6200 series Graphics supported 2 ATI Radeon HD 6200 +ATI Technologies Inc. AMD Radeon HD 6250 Graphics supported 2 ATI Radeon HD 6200 +ATI Technologies Inc. AMD Radeon HD 6300 series Graphics supported 2 ATI Radeon HD 6300 +ATI Technologies Inc. AMD Radeon HD 6300M Series supported 2 ATI Radeon HD 6300 +ATI Technologies Inc. AMD Radeon HD 6310 Graphics supported 2 ATI Radeon HD 6300 +ATI Technologies Inc. AMD Radeon HD 6310M supported 2 ATI Radeon HD 6300 +ATI Technologies Inc. AMD Radeon HD 6330M supported 2 ATI Radeon HD 6300 +ATI Technologies Inc. AMD Radeon HD 6350 supported 2 ATI Radeon HD 6300 +ATI Technologies Inc. AMD Radeon HD 6370M supported 2 ATI Radeon HD 6300 +ATI Technologies Inc. AMD Radeon HD 6400M Series supported 3 ATI Radeon HD 6400 +ATI Technologies Inc. AMD Radeon HD 6450 supported 3 ATI Radeon HD 6400 +ATI Technologies Inc. AMD Radeon HD 6470M supported 3 ATI Radeon HD 6400 +ATI Technologies Inc. AMD Radeon HD 6490M supported 3 ATI Radeon HD 6400 +ATI Technologies Inc. AMD Radeon HD 6500M/5600/5700 Series supported 3 ATI Radeon HD 6500 +ATI Technologies Inc. AMD Radeon HD 6530M supported 3 ATI Radeon HD 6500 +ATI Technologies Inc. AMD Radeon HD 6550M supported 3 ATI Radeon HD 6500 +ATI Technologies Inc. AMD Radeon HD 6570 supported 3 ATI Radeon HD 6500 +ATI Technologies Inc. AMD Radeon HD 6570M supported 3 ATI Radeon HD 6500 +ATI Technologies Inc. AMD Radeon HD 6570M/5700 Series supported 3 ATI Radeon HD 6500 +ATI Technologies Inc. AMD Radeon HD 6600M Series supported 3 ATI Radeon HD 66xx +ATI Technologies Inc. AMD Radeon HD 6650M supported 3 ATI Radeon HD 66xx +ATI Technologies Inc. AMD Radeon HD 6670 supported 3 ATI Radeon HD 66xx +ATI Technologies Inc. AMD Radeon HD 6700 Series supported 3 ATI Radeon HD 6700 +ATI Technologies Inc. AMD Radeon HD 6750 supported 3 ATI Radeon HD 6700 +ATI Technologies Inc. AMD Radeon HD 6750M supported 3 ATI Radeon HD 6700 +ATI Technologies Inc. AMD Radeon HD 6770 supported 3 ATI Radeon HD 6700 +ATI Technologies Inc. AMD Radeon HD 6800 Series supported 3 ATI Radeon HD 6800 +ATI Technologies Inc. AMD Radeon HD 6850M supported 3 ATI Radeon HD 6800 +ATI Technologies Inc. AMD Radeon HD 6870 supported 3 ATI Radeon HD 6800 +ATI Technologies Inc. AMD Radeon HD 6870M supported 3 ATI Radeon HD 6800 +ATI Technologies Inc. AMD Radeon HD 6900 Series supported 3 ATI Radeon HD 6900 +ATI Technologies Inc. AMD Radeon HD 6970M supported 3 ATI Radeon HD 6900 +ATI Technologies Inc. AMD Radeon HD 6990 supported 3 ATI Radeon HD 6900 +ATI Technologies Inc. AMD Radeon(TM) HD 6470M supported 0 ATI Technologies +ATI Technologies Inc. ASUS 5870 Eyefinity 6 supported 0 ATI Technologies +ATI Technologies Inc. ASUS AH2600 Series supported 3 ATI ASUS AH26xx +ATI Technologies Inc. ASUS AH3450 Series supported 1 ATI ASUS AH34xx +ATI Technologies Inc. ASUS AH3650 Series supported 3 ATI ASUS AH36xx +ATI Technologies Inc. ASUS AH4650 Series supported 3 ATI ASUS AH46xx +ATI Technologies Inc. ASUS ARES supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH2900 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH3450 Series supported 1 ATI ASUS AH34xx +ATI Technologies Inc. ASUS EAH3650 Series supported 3 ATI ASUS AH36xx +ATI Technologies Inc. ASUS EAH4350 series supported 1 ATI ASUS EAH43xx +ATI Technologies Inc. ASUS EAH4550 series supported 1 ATI ASUS EAH45xx +ATI Technologies Inc. ASUS EAH4650 series supported 3 ATI ASUS AH46xx +ATI Technologies Inc. ASUS EAH4670 series supported 3 ATI ASUS AH46xx +ATI Technologies Inc. ASUS EAH4750 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH4770 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH4770 series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH4850 series supported 3 ATI ASUS EAH48xx +ATI Technologies Inc. ASUS EAH5450 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH5550 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH5570 series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH5670 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH5750 Series supported 3 ATI ASUS EAH57xx +ATI Technologies Inc. ASUS EAH5770 Series supported 3 ATI ASUS EAH57xx +ATI Technologies Inc. ASUS EAH5830 Series supported 3 ATI ASUS EAH58xx +ATI Technologies Inc. ASUS EAH5850 Series supported 3 ATI ASUS EAH58xx +ATI Technologies Inc. ASUS EAH5870 Series supported 3 ATI ASUS EAH58xx +ATI Technologies Inc. ASUS EAH5970 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH6850 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH6870 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH6950 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAH6970 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS EAHG4670 series supported 0 ATI Technologies +ATI Technologies Inc. ASUS Extreme AX600 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS Extreme AX600XT-TD supported 0 ATI Technologies +ATI Technologies Inc. ASUS X1300 Series x86/SSE2 supported 3 ATI ASUS Radeon X1xxx +ATI Technologies Inc. ASUS X1550 Series supported 3 ATI ASUS Radeon X1xxx +ATI Technologies Inc. ASUS X1950 Series x86/SSE2 supported 3 ATI ASUS Radeon X1xxx +ATI Technologies Inc. ASUS X800 Series supported 0 ATI Technologies +ATI Technologies Inc. ASUS X850 Series supported 0 ATI Technologies +ATI Technologies Inc. ATI All-in-Wonder HD supported 1 ATI All-in-Wonder HD +ATI Technologies Inc. ATI FirePro 2260 supported 1 ATI FirePro 2000 +ATI Technologies Inc. ATI FirePro 2450 supported 1 ATI FirePro 2000 +ATI Technologies Inc. ATI FirePro M5800 supported 3 ATI FirePro M5800 +ATI Technologies Inc. ATI FirePro M7740 supported 3 ATI FirePro M7740 +ATI Technologies Inc. ATI FirePro M7820 supported 3 ATI FirePro M7820 +ATI Technologies Inc. ATI FirePro V3700 (FireGL) supported 0 ATI FireGL +ATI Technologies Inc. ATI FirePro V3800 supported 1 ATI FirePro 3000 +ATI Technologies Inc. ATI FirePro V4800 supported 2 ATI FirePro 4000 +ATI Technologies Inc. ATI FirePro V4800 (FireGL) supported 0 ATI FireGL +ATI Technologies Inc. ATI FirePro V5800 supported 3 ATI FirePro 5000 +ATI Technologies Inc. ATI FirePro V7800 supported 3 ATI FirePro 7000 +ATI Technologies Inc. ATI MOBILITY RADEON 9XXX x86/SSE2 supported 0 ATI Mobility Radeon Xxxx +ATI Technologies Inc. ATI MOBILITY RADEON HD 3450 supported 2 ATI Mobility Radeon HD 3400 +ATI Technologies Inc. ATI MOBILITY RADEON X1600 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI MOBILITY RADEON X2300 supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. ATI MOBILITY RADEON X2300 HD x86/SSE2 supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2 supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/SSE2 supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. ATI MOBILITY RADEON X300 supported 1 ATI Mobility Radeon X3xx +ATI Technologies Inc. ATI MOBILITY RADEON X600 supported 1 ATI Mobility Radeon X6xx +ATI Technologies Inc. ATI MOBILITY RADEON XPRESS 200 supported 0 ATI Mobility Radeon Xxxx +ATI Technologies Inc. ATI Mobility FireGL V5700 supported 1 ATI FireGL 5xxx +ATI Technologies Inc. ATI Mobility Radeon 4100 supported 0 ATI Mobility Radeon 4100 +ATI Technologies Inc. ATI Mobility Radeon Graphics supported 0 ATI Mobility Radeon +ATI Technologies Inc. ATI Mobility Radeon HD 2300 supported 1 ATI Mobility Radeon HD 2300 +ATI Technologies Inc. ATI Mobility Radeon HD 2400 supported 1 ATI Mobility Radeon HD 2400 +ATI Technologies Inc. ATI Mobility Radeon HD 2400 XT supported 1 ATI Mobility Radeon HD 2400 +ATI Technologies Inc. ATI Mobility Radeon HD 2600 supported 3 ATI Mobility Radeon HD 2600 +ATI Technologies Inc. ATI Mobility Radeon HD 2600 XT supported 3 ATI Mobility Radeon HD 2600 +ATI Technologies Inc. ATI Mobility Radeon HD 2700 supported 3 ATI Mobility Radeon HD 2700 +ATI Technologies Inc. ATI Mobility Radeon HD 3400 Series supported 2 ATI Mobility Radeon HD 3400 +ATI Technologies Inc. ATI Mobility Radeon HD 3430 supported 2 ATI Mobility Radeon HD 3400 +ATI Technologies Inc. ATI Mobility Radeon HD 3450 supported 2 ATI Mobility Radeon HD 3400 +ATI Technologies Inc. ATI Mobility Radeon HD 3470 supported 2 ATI Mobility Radeon HD 3400 +ATI Technologies Inc. ATI Mobility Radeon HD 3470 Hybrid X2 supported 2 ATI Mobility Radeon HD 3400 +ATI Technologies Inc. ATI Mobility Radeon HD 3650 supported 3 ATI Mobility Radeon HD 3600 +ATI Technologies Inc. ATI Mobility Radeon HD 4200 supported 2 ATI Mobility Radeon HD 4200 +ATI Technologies Inc. ATI Mobility Radeon HD 4200 Series supported 2 ATI Mobility Radeon HD 4200 +ATI Technologies Inc. ATI Mobility Radeon HD 4225 supported 2 ATI Mobility Radeon HD 4200 +ATI Technologies Inc. ATI Mobility Radeon HD 4225 Series supported 2 ATI Mobility Radeon HD 4200 +ATI Technologies Inc. ATI Mobility Radeon HD 4250 supported 2 ATI Mobility Radeon HD 4200 +ATI Technologies Inc. ATI Mobility Radeon HD 4250 Graphics supported 2 ATI Mobility Radeon HD 4200 +ATI Technologies Inc. ATI Mobility Radeon HD 4270 supported 2 ATI Mobility Radeon HD 4200 +ATI Technologies Inc. ATI Mobility Radeon HD 4300 Series supported 2 ATI Mobility Radeon HD 4300 +ATI Technologies Inc. ATI Mobility Radeon HD 4300/4500 Series supported 2 ATI Mobility Radeon HD 4300 +ATI Technologies Inc. ATI Mobility Radeon HD 4330 supported 2 ATI Mobility Radeon HD 4300 +ATI Technologies Inc. ATI Mobility Radeon HD 4330 Series supported 2 ATI Mobility Radeon HD 4300 +ATI Technologies Inc. ATI Mobility Radeon HD 4350 supported 2 ATI Mobility Radeon HD 4300 +ATI Technologies Inc. ATI Mobility Radeon HD 4350 Series supported 2 ATI Mobility Radeon HD 4300 +ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series supported 3 ATI Mobility Radeon HD 4500 +ATI Technologies Inc. ATI Mobility Radeon HD 4500/5100 Series supported 3 ATI Mobility Radeon HD 4500 +ATI Technologies Inc. ATI Mobility Radeon HD 4530 supported 3 ATI Mobility Radeon HD 4500 +ATI Technologies Inc. ATI Mobility Radeon HD 4530 Series supported 3 ATI Mobility Radeon HD 4500 +ATI Technologies Inc. ATI Mobility Radeon HD 4550 supported 3 ATI Mobility Radeon HD 4500 +ATI Technologies Inc. ATI Mobility Radeon HD 4570 supported 3 ATI Mobility Radeon HD 4500 +ATI Technologies Inc. ATI Mobility Radeon HD 4600 Series supported 3 ATI Mobility Radeon HD 4600 +ATI Technologies Inc. ATI Mobility Radeon HD 4650 supported 3 ATI Mobility Radeon HD 4600 +ATI Technologies Inc. ATI Mobility Radeon HD 4650 Series supported 3 ATI Mobility Radeon HD 4600 +ATI Technologies Inc. ATI Mobility Radeon HD 4670 supported 3 ATI Mobility Radeon HD 4600 +ATI Technologies Inc. ATI Mobility Radeon HD 4830 Series supported 3 ATI Mobility Radeon HD 4800 +ATI Technologies Inc. ATI Mobility Radeon HD 4850 supported 3 ATI Mobility Radeon HD 4800 +ATI Technologies Inc. ATI Mobility Radeon HD 4870 supported 3 ATI Mobility Radeon HD 4800 +ATI Technologies Inc. ATI Mobility Radeon HD 5000 supported 0 ATI Mobility Radeon +ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series supported 0 ATI Mobility Radeon +ATI Technologies Inc. ATI Mobility Radeon HD 5145 supported 2 ATI Mobility Radeon HD 5100 +ATI Technologies Inc. ATI Mobility Radeon HD 5165 supported 2 ATI Mobility Radeon HD 5100 +ATI Technologies Inc. ATI Mobility Radeon HD 530v supported 1 ATI Mobility Radeon HD 530v +ATI Technologies Inc. ATI Mobility Radeon HD 5400 Series supported 2 ATI Mobility Radeon HD 5400 +ATI Technologies Inc. ATI Mobility Radeon HD 540v supported 2 ATI Mobility Radeon HD 540v +ATI Technologies Inc. ATI Mobility Radeon HD 5430 supported 2 ATI Mobility Radeon HD 5400 +ATI Technologies Inc. ATI Mobility Radeon HD 5450 supported 2 ATI Mobility Radeon HD 5400 +ATI Technologies Inc. ATI Mobility Radeon HD 5450 Series supported 2 ATI Mobility Radeon HD 5400 +ATI Technologies Inc. ATI Mobility Radeon HD 545v supported 2 ATI Mobility Radeon HD 545v +ATI Technologies Inc. ATI Mobility Radeon HD 5470 supported 2 ATI Mobility Radeon HD 5400 +ATI Technologies Inc. ATI Mobility Radeon HD 550v supported 2 ATI Mobility Radeon HD 550v +ATI Technologies Inc. ATI Mobility Radeon HD 5600/5700 Series supported 2 ATI Mobility Radeon HD 5600 +ATI Technologies Inc. ATI Mobility Radeon HD 560v supported 2 ATI Mobility Radeon HD 560v +ATI Technologies Inc. ATI Mobility Radeon HD 5650 supported 2 ATI Mobility Radeon HD 5600 +ATI Technologies Inc. ATI Mobility Radeon HD 5700 Series supported 3 ATI Mobility Radeon HD 5700 +ATI Technologies Inc. ATI Mobility Radeon HD 5730 supported 3 ATI Mobility Radeon HD 5700 +ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series supported 0 ATI Mobility Radeon +ATI Technologies Inc. ATI Mobility Radeon HD 5850 supported 0 ATI Mobility Radeon +ATI Technologies Inc. ATI Mobility Radeon HD 5870 supported 0 ATI Mobility Radeon +ATI Technologies Inc. ATI Mobility Radeon HD 6300 series supported 2 ATI Mobility Radeon HD 6300 +ATI Technologies Inc. ATI Mobility Radeon HD 6370 supported 2 ATI Mobility Radeon HD 6300 +ATI Technologies Inc. ATI Mobility Radeon HD 6470M supported 3 ATI Mobility Radeon HD 6400M +ATI Technologies Inc. ATI Mobility Radeon HD 6550 supported 3 ATI Mobility Radeon HD 6500M +ATI Technologies Inc. ATI Mobility Radeon HD 6570 supported 3 ATI Mobility Radeon HD 6500M +ATI Technologies Inc. ATI Mobility Radeon X1300 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Mobility Radeon X1300 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Mobility Radeon X1300 x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Mobility Radeon X1350 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Mobility Radeon X1350 x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Mobility Radeon X1400 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Mobility Radeon X1400 x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Mobility Radeon X1600 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Mobility Radeon X1600 x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Mobility Radeon X1700 x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Mobility Radeon X2300 supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. ATI Mobility Radeon X2300 (Omega 3.8.442) supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. ATI Mobility Radeon X2300 x86 supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2 supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2 supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. ATI Mobility Radeon X2500 supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. ATI Mobility Radeon X2500 x86/SSE2 supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. ATI Mobility Radeon. HD 530v supported 1 ATI Mobility Radeon HD 530v +ATI Technologies Inc. ATI Mobility Radeon. HD 5470 supported 2 ATI Mobility Radeon HD 5400 +ATI Technologies Inc. ATI RADEON HD 3200 T25XX by CAMILO supported 0 ATI Radeon HD 3200 +ATI Technologies Inc. ATI RADEON XPRESS 1100 supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI RADEON XPRESS 200 Series supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI RADEON XPRESS 200 Series x86/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI RADEON XPRESS 200M SERIES supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI Radeon supported 0 ATI Technologies +ATI Technologies Inc. ATI Radeon 2100 supported 0 ATI Radeon 2100 +ATI Technologies Inc. ATI Radeon 2100 (Microsoft - WDDM) supported 0 ATI Radeon 2100 +ATI Technologies Inc. ATI Radeon 2100 Graphics supported 0 ATI Radeon 2100 +ATI Technologies Inc. ATI Radeon 3000 supported 0 ATI Radeon 3000 +ATI Technologies Inc. ATI Radeon 3000 Graphics supported 0 ATI Radeon 3000 +ATI Technologies Inc. ATI Radeon 3100 Graphics supported 1 ATI Radeon 3100 +ATI Technologies Inc. ATI Radeon 5xxx series supported 3 ATI Radeon 5xxx +ATI Technologies Inc. ATI Radeon 9550 / X1050 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/MMX/3DNow!/SSE supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon 9550 / X1050 Series(Microsoft - WDDM) supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon 9600 / X1050 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon 9600/9550/X1050 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon BA Prototype OpenGL Engine supported 0 ATI Technologies +ATI Technologies Inc. ATI Radeon BB Prototype OpenGL Engine supported 0 ATI Technologies +ATI Technologies Inc. ATI Radeon Cedar PRO Prototype OpenGL Engine supported 2 AMD CEDAR (HD 5450) +ATI Technologies Inc. ATI Radeon Cypress PRO Prototype OpenGL Engine supported 3 AMD CYPRESS (HD 5800) +ATI Technologies Inc. ATI Radeon Graphics Processor supported 0 ATI Technologies +ATI Technologies Inc. ATI Radeon HD 2200 Graphics supported 0 ATI Technologies +ATI Technologies Inc. ATI Radeon HD 2350 supported 0 ATI Radeon HD 2300 +ATI Technologies Inc. ATI Radeon HD 2400 supported 1 ATI Radeon HD 2400 +ATI Technologies Inc. ATI Radeon HD 2400 OpenGL Engine supported 1 ATI Radeon HD 2400 +ATI Technologies Inc. ATI Radeon HD 2400 PRO supported 1 ATI Radeon HD 2400 +ATI Technologies Inc. ATI Radeon HD 2400 PRO AGP supported 1 ATI Radeon HD 2400 +ATI Technologies Inc. ATI Radeon HD 2400 Pro supported 1 ATI Radeon HD 2400 +ATI Technologies Inc. ATI Radeon HD 2400 Series supported 1 ATI Radeon HD 2400 +ATI Technologies Inc. ATI Radeon HD 2400 XT supported 1 ATI Radeon HD 2400 +ATI Technologies Inc. ATI Radeon HD 2400 XT OpenGL Engine supported 1 ATI Radeon HD 2400 +ATI Technologies Inc. ATI Radeon HD 2600 OpenGL Engine supported 2 ATI Radeon HD 2600 +ATI Technologies Inc. ATI Radeon HD 2600 PRO supported 2 ATI Radeon HD 2600 +ATI Technologies Inc. ATI Radeon HD 2600 PRO OpenGL Engine supported 2 ATI Radeon HD 2600 +ATI Technologies Inc. ATI Radeon HD 2600 Pro supported 2 ATI Radeon HD 2600 +ATI Technologies Inc. ATI Radeon HD 2600 Series supported 2 ATI Radeon HD 2600 +ATI Technologies Inc. ATI Radeon HD 2600 XT supported 2 ATI Radeon HD 2600 +ATI Technologies Inc. ATI Radeon HD 2900 GT supported 3 ATI Radeon HD 2900 +ATI Technologies Inc. ATI Radeon HD 2900 XT supported 3 ATI Radeon HD 2900 +ATI Technologies Inc. ATI Radeon HD 3200 Graphics supported 0 ATI Radeon HD 3200 +ATI Technologies Inc. ATI Radeon HD 3300 Graphics supported 1 ATI Radeon HD 3300 +ATI Technologies Inc. ATI Radeon HD 3400 Series supported 1 ATI Radeon HD 3400 +ATI Technologies Inc. ATI Radeon HD 3450 supported 1 ATI Radeon HD 3400 +ATI Technologies Inc. ATI Radeon HD 3450 - Dell Optiplex supported 1 ATI Radeon HD 3400 +ATI Technologies Inc. ATI Radeon HD 3470 supported 1 ATI Radeon HD 3400 +ATI Technologies Inc. ATI Radeon HD 3470 - Dell Optiplex supported 1 ATI Radeon HD 3400 +ATI Technologies Inc. ATI Radeon HD 3550 supported 1 ATI Radeon HD 3500 +ATI Technologies Inc. ATI Radeon HD 3600 Series supported 3 ATI Radeon HD 3600 +ATI Technologies Inc. ATI Radeon HD 3650 supported 3 ATI Radeon HD 3600 +ATI Technologies Inc. ATI Radeon HD 3650 AGP supported 3 ATI Radeon HD 3600 +ATI Technologies Inc. ATI Radeon HD 3730 supported 3 ATI Radeon HD 3700 +ATI Technologies Inc. ATI Radeon HD 3800 Series supported 3 ATI Radeon HD 3800 +ATI Technologies Inc. ATI Radeon HD 3850 supported 3 ATI Radeon HD 3800 +ATI Technologies Inc. ATI Radeon HD 3850 AGP supported 3 ATI Radeon HD 3800 +ATI Technologies Inc. ATI Radeon HD 3870 supported 3 ATI Radeon HD 3800 +ATI Technologies Inc. ATI Radeon HD 3870 X2 supported 3 ATI Radeon HD 3800 +ATI Technologies Inc. ATI Radeon HD 4200 supported 1 ATI Radeon HD 4200 +ATI Technologies Inc. ATI Radeon HD 4250 supported 1 ATI Radeon HD 4200 +ATI Technologies Inc. ATI Radeon HD 4250 Graphics supported 1 ATI Radeon HD 4200 +ATI Technologies Inc. ATI Radeon HD 4270 supported 1 ATI Radeon HD 4200 +ATI Technologies Inc. ATI Radeon HD 4290 supported 1 ATI Radeon HD 4200 +ATI Technologies Inc. ATI Radeon HD 4300 Series supported 1 ATI Radeon HD 4300 +ATI Technologies Inc. ATI Radeon HD 4300/4500 Series supported 1 ATI Radeon HD 4300 +ATI Technologies Inc. ATI Radeon HD 4350 supported 1 ATI Radeon HD 4300 +ATI Technologies Inc. ATI Radeon HD 4350 (Microsoft WDDM 1.1) supported 1 ATI Radeon HD 4300 +ATI Technologies Inc. ATI Radeon HD 4450 supported 1 ATI Radeon HD 4400 +ATI Technologies Inc. ATI Radeon HD 4500 Series supported 3 ATI Radeon HD 4500 +ATI Technologies Inc. ATI Radeon HD 4550 supported 3 ATI Radeon HD 4500 +ATI Technologies Inc. ATI Radeon HD 4600 Series supported 3 ATI Radeon HD 4600 +ATI Technologies Inc. ATI Radeon HD 4650 supported 3 ATI Radeon HD 4600 +ATI Technologies Inc. ATI Radeon HD 4670 supported 3 ATI Radeon HD 4600 +ATI Technologies Inc. ATI Radeon HD 4670 OpenGL Engine supported 3 ATI Radeon HD 4600 +ATI Technologies Inc. ATI Radeon HD 4700 Series supported 3 ATI Radeon HD 4700 +ATI Technologies Inc. ATI Radeon HD 4720 supported 3 ATI Radeon HD 4700 +ATI Technologies Inc. ATI Radeon HD 4730 supported 3 ATI Radeon HD 4700 +ATI Technologies Inc. ATI Radeon HD 4730 Series supported 3 ATI Radeon HD 4700 +ATI Technologies Inc. ATI Radeon HD 4750 supported 3 ATI Radeon HD 4700 +ATI Technologies Inc. ATI Radeon HD 4770 supported 3 ATI Radeon HD 4700 +ATI Technologies Inc. ATI Radeon HD 4800 Series supported 3 ATI Radeon HD 4800 +ATI Technologies Inc. ATI Radeon HD 4850 supported 3 ATI Radeon HD 4800 +ATI Technologies Inc. ATI Radeon HD 4850 OpenGL Engine supported 3 ATI Radeon HD 4800 +ATI Technologies Inc. ATI Radeon HD 4850 Series supported 3 ATI Radeon HD 4800 +ATI Technologies Inc. ATI Radeon HD 4870 supported 3 ATI Radeon HD 4800 +ATI Technologies Inc. ATI Radeon HD 4870 OpenGL Engine supported 3 ATI Radeon HD 4800 +ATI Technologies Inc. ATI Radeon HD 4870 X2 supported 3 ATI Radeon HD 4800 +ATI Technologies Inc. ATI Radeon HD 5400 Series supported 3 ATI Radeon HD 5400 +ATI Technologies Inc. ATI Radeon HD 5450 supported 3 ATI Radeon HD 5400 +ATI Technologies Inc. ATI Radeon HD 5500 Series supported 3 ATI Radeon HD 5500 +ATI Technologies Inc. ATI Radeon HD 5570 supported 3 ATI Radeon HD 5500 +ATI Technologies Inc. ATI Radeon HD 5600 Series supported 3 ATI Radeon HD 5600 +ATI Technologies Inc. ATI Radeon HD 5630 supported 3 ATI Radeon HD 5600 +ATI Technologies Inc. ATI Radeon HD 5670 supported 3 ATI Radeon HD 5600 +ATI Technologies Inc. ATI Radeon HD 5670 OpenGL Engine supported 3 ATI Radeon HD 5600 +ATI Technologies Inc. ATI Radeon HD 5700 Series supported 3 ATI Radeon HD 5700 +ATI Technologies Inc. ATI Radeon HD 5750 supported 3 ATI Radeon HD 5700 +ATI Technologies Inc. ATI Radeon HD 5750 OpenGL Engine supported 3 ATI Radeon HD 5700 +ATI Technologies Inc. ATI Radeon HD 5770 supported 3 ATI Radeon HD 5700 +ATI Technologies Inc. ATI Radeon HD 5770 OpenGL Engine supported 3 ATI Radeon HD 5700 +ATI Technologies Inc. ATI Radeon HD 5800 Series supported 3 ATI Radeon HD 5800 +ATI Technologies Inc. ATI Radeon HD 5850 supported 3 ATI Radeon HD 5800 +ATI Technologies Inc. ATI Radeon HD 5870 supported 3 ATI Radeon HD 5800 +ATI Technologies Inc. ATI Radeon HD 5870 OpenGL Engine supported 3 ATI Radeon HD 5800 +ATI Technologies Inc. ATI Radeon HD 5900 Series supported 3 ATI Radeon HD 5900 +ATI Technologies Inc. ATI Radeon HD 5970 supported 3 ATI Radeon HD 5900 +ATI Technologies Inc. ATI Radeon HD 6230 supported 2 ATI Radeon HD 6200 +ATI Technologies Inc. ATI Radeon HD 6250 supported 2 ATI Radeon HD 6200 +ATI Technologies Inc. ATI Radeon HD 6350 supported 2 ATI Radeon HD 6300 +ATI Technologies Inc. ATI Radeon HD 6390 supported 2 ATI Radeon HD 6300 +ATI Technologies Inc. ATI Radeon HD 6490M OpenGL Engine supported 3 ATI Radeon HD 6400 +ATI Technologies Inc. ATI Radeon HD 6510 supported 3 ATI Radeon HD 6500 +ATI Technologies Inc. ATI Radeon HD 6570M supported 3 ATI Radeon HD 6500 +ATI Technologies Inc. ATI Radeon HD 6750 supported 3 ATI Radeon HD 6700 +ATI Technologies Inc. ATI Radeon HD 6750M OpenGL Engine supported 3 ATI Radeon HD 6700 +ATI Technologies Inc. ATI Radeon HD 6770 supported 3 ATI Radeon HD 6700 +ATI Technologies Inc. ATI Radeon HD 6770M OpenGL Engine supported 3 ATI Radeon HD 6700 +ATI Technologies Inc. ATI Radeon HD 6800 Series supported 3 ATI Radeon HD 6800 +ATI Technologies Inc. ATI Radeon HD 6970M OpenGL Engine supported 3 ATI Radeon HD 6900 +ATI Technologies Inc. ATI Radeon HD3750 supported 3 ATI Radeon HD 3700 +ATI Technologies Inc. ATI Radeon HD4300/HD4500 series supported 1 ATI Radeon HD 4300 +ATI Technologies Inc. ATI Radeon HD4670 supported 3 ATI Radeon HD 4600 +ATI Technologies Inc. ATI Radeon Juniper LE Prototype OpenGL Engine supported 3 AMD JUNIPER (HD 5700) +ATI Technologies Inc. ATI Radeon RV710 Prototype OpenGL Engine supported 1 AMD RV710 (HD 4300) +ATI Technologies Inc. ATI Radeon RV730 Prototype OpenGL Engine supported 3 AMD RV730 (HD 4600) +ATI Technologies Inc. ATI Radeon RV770 Prototype OpenGL Engine supported 3 AMD RV770 (HD 4800) +ATI Technologies Inc. ATI Radeon RV790 Prototype OpenGL Engine supported 3 AMD RV790 (HD 4800) +ATI Technologies Inc. ATI Radeon Redwood PRO Prototype OpenGL Engine supported 3 AMD REDWOOD (HD 5500/5600) +ATI Technologies Inc. ATI Radeon Redwood XT Prototype OpenGL Engine supported 3 AMD REDWOOD (HD 5500/5600) +ATI Technologies Inc. ATI Radeon Whistler PRO/LP Prototype OpenGL Engine supported 0 ATI Technologies +ATI Technologies Inc. ATI Radeon X1050 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1050 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1200 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1200 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1200 Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1250 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1250 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1270 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1270 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1300/X1550 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1550 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1600 OpenGL Engine supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1900 OpenGL Engine supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X1950 GT supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon X300/X550/X1050 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. ATI Radeon Xpress 1100 supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI Radeon Xpress 1150 supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI Radeon Xpress 1150 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI Radeon Xpress 1200 supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI Radeon Xpress 1200 Series supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI Radeon Xpress 1200 Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI Radeon Xpress 1200 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI Radeon Xpress 1250 supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI Radeon Xpress 1250 x86/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI Radeon Xpress Series supported 0 ATI Radeon Xpress +ATI Technologies Inc. ATI Yamaha HD 9000 supported 0 ATI Technologies +ATI Technologies Inc. ATi RS880M supported 1 ATI RS880M +ATI Technologies Inc. Carte graphique VGA standard supported 0 ATI Technologies +ATI Technologies Inc. Diamond Radeon X1550 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. EG JUNIPER supported 3 AMD JUNIPER (HD 5700) +ATI Technologies Inc. EG PARK supported 3 AMD PARK +ATI Technologies Inc. FireGL V3100 Pentium 4 (SSE2) supported 0 ATI FireGL +ATI Technologies Inc. FireMV 2400 PCI DDR x86 supported 0 ATI FireMV +ATI Technologies Inc. FireMV 2400 PCI DDR x86/SSE2 supported 0 ATI FireMV +ATI Technologies Inc. GeCube Radeon X1550 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Geforce 9500 GT supported 2 ATI Geforce 9500 GT +ATI Technologies Inc. Geforce 9500GT supported 2 ATI Geforce 9500 GT +ATI Technologies Inc. Geforce 9800 GT supported 2 ATI Geforce 9800 GT +ATI Technologies Inc. HD3730 supported 0 ATI Technologies +ATI Technologies Inc. HIGHTECH EXCALIBUR RADEON 9550SE Series supported 0 ATI Radeon 9500 +ATI Technologies Inc. HIGHTECH EXCALIBUR X700 PRO supported 0 ATI Technologies +ATI Technologies Inc. M21 x86/MMX/3DNow!/SSE2 supported 0 ATI Technologies +ATI Technologies Inc. M76M supported 3 ATI M76 +ATI Technologies Inc. MOBILITY RADEON 7500 DDR x86/SSE2 supported 0 ATI Mobility Radeon +ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86/SSE2 supported 0 ATI Mobility Radeon +ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86/SSE2 supported 0 ATI Mobility Radeon +ATI Technologies Inc. MOBILITY RADEON 9600 x86/SSE2 supported 0 ATI Mobility Radeon 9600 +ATI Technologies Inc. MOBILITY RADEON 9700 x86/SSE2 supported 1 ATI Mobility Radeon 9700 +ATI Technologies Inc. MOBILITY RADEON X300 x86/SSE2 supported 1 ATI Mobility Radeon X3xx +ATI Technologies Inc. MOBILITY RADEON X600 x86/SSE2 supported 1 ATI Mobility Radeon X6xx +ATI Technologies Inc. MOBILITY RADEON X700 SE x86 supported 1 ATI Mobility Radeon X7xx +ATI Technologies Inc. MOBILITY RADEON X700 x86/SSE2 supported 1 ATI Mobility Radeon X7xx +ATI Technologies Inc. MSI RX9550SE supported 1 ATI Radeon RX9550 +ATI Technologies Inc. Mobility Radeon X2300 HD supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2 supported 0 ATI Mobility Radeon X2xxx +ATI Technologies Inc. RADEON 7000 DDR x86/MMX/3DNow!/SSE supported 0 ATI Radeon 7xxx +ATI Technologies Inc. RADEON 7000 DDR x86/SSE2 supported 0 ATI Radeon 7xxx +ATI Technologies Inc. RADEON 7500 DDR x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 7xxx +ATI Technologies Inc. RADEON 7500 DDR x86/SSE2 supported 0 ATI Radeon 7xxx +ATI Technologies Inc. RADEON 9100 IGP DDR x86/SSE2 supported 0 ATI Radeon 9100 +ATI Technologies Inc. RADEON 9200 DDR x86/MMX/3DNow!/SSE supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9200 DDR x86/SSE2 supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9200 PRO DDR x86/MMX/3DNow!/SSE supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE2 supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9200SE DDR x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9200SE DDR x86/SSE2 supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/SSE2 supported 0 ATI Radeon 9200 +ATI Technologies Inc. RADEON 9500 supported 0 ATI Radeon 9500 +ATI Technologies Inc. RADEON 9550 x86/SSE2 supported 0 ATI Radeon 9500 +ATI Technologies Inc. RADEON 9600 SERIES supported 0 ATI Radeon 9600 +ATI Technologies Inc. RADEON 9600 SERIES x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 9600 +ATI Technologies Inc. RADEON 9600 TX x86/SSE2 supported 0 ATI Radeon 9600 +ATI Technologies Inc. RADEON 9600 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 9600 +ATI Technologies Inc. RADEON 9600 x86/SSE2 supported 0 ATI Radeon 9600 +ATI Technologies Inc. RADEON 9700 PRO x86/MMX/3DNow!/SSE supported 1 ATI Radeon 9700 +ATI Technologies Inc. RADEON 9800 PRO supported 1 ATI Radeon 9800 +ATI Technologies Inc. RADEON 9800 x86/SSE2 supported 1 ATI Radeon 9800 +ATI Technologies Inc. RADEON IGP 340M DDR x86/SSE2 unsupported 0 ATI IGP 340M +ATI Technologies Inc. RADEON X300 Series x86/SSE2 supported 0 ATI Radeon X300 +ATI Technologies Inc. RADEON X300 x86/SSE2 supported 0 ATI Radeon X300 +ATI Technologies Inc. RADEON X300/X550 Series x86/SSE2 supported 0 ATI Radeon X300 +ATI Technologies Inc. RADEON X550 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X500 +ATI Technologies Inc. RADEON X550 x86/SSE2 supported 0 ATI Radeon X500 +ATI Technologies Inc. RADEON X600 Series supported 1 ATI Radeon X600 +ATI Technologies Inc. RADEON X600 x86/SSE2 supported 1 ATI Radeon X600 +ATI Technologies Inc. RADEON X700 PRO x86/SSE2 supported 1 ATI Radeon X700 +ATI Technologies Inc. RADEON X800 SE x86/MMX/3DNow!/SSE2 supported 2 ATI Radeon X800 +ATI Technologies Inc. RADEON X800GT supported 2 ATI Radeon X800 +ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. RADEON XPRESS 200 Series x86/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. RADEON XPRESS 200M Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. RADEON XPRESS 200M Series x86/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. RADEON XPRESS Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. RADEON XPRESS Series x86/SSE2 supported 0 ATI Radeon Xpress +ATI Technologies Inc. RS740 supported 0 ATI Technologies +ATI Technologies Inc. RS780C supported 0 AMD RS780 (HD 3200) +ATI Technologies Inc. RS780M supported 0 AMD RS780 (HD 3200) +ATI Technologies Inc. RS880 supported 1 AMD RS880 (HD 4200) +ATI Technologies Inc. RV410 Pro x86/SSE2 supported 1 ATI RV410 (X700) +ATI Technologies Inc. RV790 supported 3 AMD RV790 (HD 4800) +ATI Technologies Inc. Radeon (TM) HD 6470M supported 0 ATI Technologies +ATI Technologies Inc. Radeon (TM) HD 6490M supported 0 ATI Technologies +ATI Technologies Inc. Radeon (TM) HD 6770M supported 0 ATI Technologies +ATI Technologies Inc. Radeon 7000 DDR x86/SSE2 supported 0 ATI Radeon 7xxx +ATI Technologies Inc. Radeon 7000 SDR x86/SSE2 supported 0 ATI Radeon 7xxx +ATI Technologies Inc. Radeon 7500 DDR x86/SSE2 supported 0 ATI Radeon 7xxx +ATI Technologies Inc. Radeon 9000 DDR x86/SSE2 supported 0 ATI Radeon 9000 +ATI Technologies Inc. Radeon DDR x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon DDR +ATI Technologies Inc. Radeon DDR x86/SSE supported 0 ATI Radeon DDR +ATI Technologies Inc. Radeon DDR x86/SSE2 supported 0 ATI Radeon DDR +ATI Technologies Inc. Radeon HD 6310 supported 2 ATI Radeon HD 6300 +ATI Technologies Inc. Radeon HD 6800 Series supported 3 ATI Radeon HD 6800 +ATI Technologies Inc. Radeon SDR x86/SSE2 supported 0 ATI Technologies +ATI Technologies Inc. Radeon X1300 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1300 Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1300 Series x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1300/X1550 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1300/X1550 Series x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1550 64-bit (Microsoft - WDDM) supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1550 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1550 Series x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1600 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1600 Pro / X1300XT x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1600 Series x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1600/X1650 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1650 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1650 Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1650 Series x86/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1900 Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1950 Pro supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1950 Pro x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1950 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X1950 Series (Microsoft - WDDM) supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X300/X550/X1050 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Radeon X550/X700 Series supported 0 ATI Radeon X500 +ATI Technologies Inc. Radeon X550XTX x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X500 +ATI Technologies Inc. SAPPHIRE RADEON X300SE supported 0 ATI Radeon X300 +ATI Technologies Inc. SAPPHIRE RADEON X300SE x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X300 +ATI Technologies Inc. SAPPHIRE RADEON X300SE x86/SSE2 supported 0 ATI Radeon X300 +ATI Technologies Inc. SAPPHIRE Radeon X1550 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X1xxx +ATI Technologies Inc. Sapphire Radeon HD 3730 supported 3 ATI Radeon HD 3700 +ATI Technologies Inc. Sapphire Radeon HD 3750 supported 3 ATI Radeon HD 3700 +ATI Technologies Inc. Standard VGA Graphics Adapter supported 0 ATI Technologies +ATI Technologies Inc. Tul, RADEON X600 PRO supported 0 ATI Technologies +ATI Technologies Inc. Tul, RADEON X600 PRO x86/SSE2 supported 0 ATI Technologies +ATI Technologies Inc. Tul, RADEON X700 PRO supported 0 ATI Technologies +ATI Technologies Inc. Tul, RADEON X700 PRO x86/MMX/3DNow!/SSE2 supported 0 ATI Technologies +ATI Technologies Inc. VisionTek Radeon 4350 supported 0 ATI Technologies +ATI Technologies Inc. VisionTek Radeon X1550 Series supported 0 ATI Radeon X1xxx +ATI Technologies Inc. WRESTLER 9802 supported 0 ATI Technologies +ATI Technologies Inc. WRESTLER 9803 supported 0 ATI Technologies +ATI Technologies Inc. XFX Radeon HD 4570 supported 3 ATI Radeon HD 4500 +ATI Technologies Inc. Yamaha ATI HD 9000da/s supported 0 ATI Technologies +ATI Technologies Inc. Yamaha ATI HD 9000da/s 2048 supported 0 ATI Technologies +Advanced Micro Devices, Inc. Mesa DRI R600 (RS780 9612) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 0 AMD RS780 (HD 3200) +Advanced Micro Devices, Inc. Mesa DRI R600 (RS880 9710) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 1 AMD RS880 (HD 4200) +Advanced Micro Devices, Inc. Mesa DRI R600 (RS880 9712) 20090101 TCL supported 1 AMD RS880 (HD 4200) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV610 94C1) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 1 AMD RV610 (HD 2400) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV610 94C9) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 AMD RV610 (HD 2400) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C4) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 AMD RV620 (HD 3400) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 1 AMD RV620 (HD 3400) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 AMD RV620 (HD 3400) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV635 9596) 20090101 x86/MMX+/3DNow!+/SSE TCL DRI2 supported 3 AMD RV635 (HD 3600) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV670 9505) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 3 AMD RV670 (HD 3800) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV710 9552) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 AMD RV710 (HD 4300) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 3 AMD RV730 (HD 4600) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX/SSE2 TCL DRI2 supported 3 AMD RV730 (HD 4600) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9498) 20090101 TCL DRI2 supported 3 AMD RV730 (HD 4600) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV770 9440) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 3 AMD RV770 (HD 4800) +Advanced Micro Devices, Inc. Mesa DRI R600 (RV770 9442) 20090101 x86/MMX/SSE2 TCL DRI2 supported 3 AMD RV770 (HD 4800) +Alex Mohr GL Hijacker! UNRECOGNIZED +Apple Software Renderer unsupported 0 Apple Software Renderer +DRI R300 Project Mesa DRI R300 (RS400 5954) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 supported 1 ATI R300 (9700) +DRI R300 Project Mesa DRI R300 (RS400 5975) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 supported 1 ATI R300 (9700) +DRI R300 Project Mesa DRI R300 (RS400 5A62) 20090101 x86/MMX/SSE2 NO-TCL DRI2 supported 1 ATI R300 (9700) +DRI R300 Project Mesa DRI R300 (RS600 7941) 20090101 x86/MMX/SSE2 NO-TCL unsupported 0 ATI RS600 (Xpress 3200) +DRI R300 Project Mesa DRI R300 (RS690 791F) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 supported 1 ATI R300 (9700) +DRI R300 Project Mesa DRI R300 (RV350 4151) 20090101 AGP 4x x86/MMX+/3DNow!+/SSE TCL supported 0 ATI RV350 (9600) +DRI R300 Project Mesa DRI R300 (RV350 4153) 20090101 AGP 8x x86/MMX+/3DNow!+/SSE TCL supported 0 ATI RV350 (9600) +DRI R300 Project Mesa DRI R300 (RV380 3150) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 0 ATI RV380 +DRI R300 Project Mesa DRI R300 (RV380 3150) 20090101 x86/MMX/SSE2 TCL DRI2 supported 0 ATI RV380 +DRI R300 Project Mesa DRI R300 (RV380 5B60) 20090101 x86/MMX/SSE2 TCL DRI2 supported 0 ATI RV380 +DRI R300 Project Mesa DRI R300 (RV380 5B62) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 0 ATI RV380 +DRI R300 Project Mesa DRI R300 (RV515 7145) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 ATI RV515 +DRI R300 Project Mesa DRI R300 (RV515 7146) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 1 ATI RV515 +DRI R300 Project Mesa DRI R300 (RV515 7146) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 ATI RV515 +DRI R300 Project Mesa DRI R300 (RV515 7149) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 ATI RV515 +DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL supported 1 ATI RV515 +DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 ATI RV515 +DRI R300 Project Mesa DRI R300 (RV530 71C4) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 ATI RV530 +GPU_CLASS_UNKNOWN UNRECOGNIZED +Humper Chromium UNRECOGNIZED +Intel UNRECOGNIZED +Intel HD Graphics Family supported 2 Intel HD Graphics +Intel 3D-Analyze v2.2 - http://www.tommti-systems.com UNRECOGNIZED +Intel 3D-Analyze v2.3 - http://www.tommti-systems.com UNRECOGNIZED +Intel 4 Series Internal Chipset UNRECOGNIZED +Intel 830M unsupported 0 Intel 830M +Intel 845G unsupported 0 Intel 845G +Intel 855GM unsupported 0 Intel 855GM +Intel 865G unsupported 0 Intel 865G +Intel 915G unsupported 0 Intel 915G +Intel 915GM unsupported 0 Intel 915GM +Intel 945G supported 0 Intel 945G +Intel 945GM supported 0 Intel 945GM +Intel 950 supported 0 Intel 950 +Intel 965 supported 0 Intel 965 +Intel B43 Express Chipset UNRECOGNIZED +Intel Bear Lake unsupported 0 Intel Bear Lake +Intel Broadwater unsupported 0 Intel Broadwater +Intel Brookdale unsupported 0 Intel Brookdale +Intel Cantiga unsupported 0 Intel Cantiga +Intel Eaglelake supported 0 Intel Eaglelake +Intel Familia Mobile 45 Express Chipset (Microsoft Corporation - WDDM 1.1) UNRECOGNIZED +Intel G33 unsupported 0 Intel G33 +Intel G41 supported 0 Intel G41 +Intel G41 Express Chipset supported 0 Intel G41 +Intel G45 supported 0 Intel G45 +Intel G45/G43 Express Chipset supported 0 Intel G45 +Intel Graphics Media Accelerator HD supported 0 Intel Graphics Media HD +Intel HD Graphics supported 2 Intel HD Graphics +Intel HD Graphics 100 supported 2 Intel HD Graphics +Intel HD Graphics 200 supported 2 Intel HD Graphics +Intel HD Graphics 200 BR-1101-00SH supported 2 Intel HD Graphics +Intel HD Graphics 200 BR-1101-00SJ supported 2 Intel HD Graphics +Intel HD Graphics 200 BR-1101-00SK supported 2 Intel HD Graphics +Intel HD Graphics 200 BR-1101-01M5 supported 2 Intel HD Graphics +Intel HD Graphics 200 BR-1101-01M6 supported 2 Intel HD Graphics +Intel HD Graphics BR-1004-01Y1 supported 2 Intel HD Graphics +Intel HD Graphics BR-1006-0364 supported 2 Intel HD Graphics +Intel HD Graphics BR-1006-0365 supported 2 Intel HD Graphics +Intel HD Graphics BR-1006-0366 supported 2 Intel HD Graphics +Intel HD Graphics BR-1007-02G4 supported 2 Intel HD Graphics +Intel HD Graphics BR-1101-04SY supported 2 Intel HD Graphics +Intel HD Graphics BR-1101-04SZ supported 2 Intel HD Graphics +Intel HD Graphics BR-1101-04T0 supported 2 Intel HD Graphics +Intel HD Graphics BR-1101-04T9 supported 2 Intel HD Graphics +Intel HD Graphics Family supported 2 Intel HD Graphics +Intel HD Graphics Family BR-1012-00Y8 supported 2 Intel HD Graphics +Intel HD Graphics Family BR-1012-00YF supported 2 Intel HD Graphics +Intel HD Graphics Family BR-1012-00ZD supported 2 Intel HD Graphics +Intel HD Graphics Family BR-1102-00ML supported 2 Intel HD Graphics +Intel Inc. Intel GMA 900 OpenGL Engine UNRECOGNIZED +Intel Inc. Intel GMA 950 OpenGL Engine supported 0 Intel 950 +Intel Inc. Intel GMA X3100 OpenGL Engine supported 0 Intel X3100 +Intel Inc. Intel HD Graphics 3000 OpenGL Engine supported 2 Intel HD Graphics +Intel Inc. Intel HD Graphics OpenGL Engine supported 2 Intel HD Graphics +Intel Inc. Intel HD xxxx OpenGL Engine UNRECOGNIZED +Intel Intel 845G unsupported 0 Intel 845G +Intel Intel 855GM unsupported 0 Intel 855GM +Intel Intel 865G unsupported 0 Intel 865G +Intel Intel 915G unsupported 0 Intel 915G +Intel Intel 915GM unsupported 0 Intel 915GM +Intel Intel 945G supported 0 Intel 945G +Intel Intel 945GM supported 0 Intel 945GM +Intel Intel 965/963 Graphics Media Accelerator supported 0 Intel 965 +Intel Intel Bear Lake B unsupported 0 Intel Bear Lake +Intel Intel Broadwater G unsupported 0 Intel Broadwater +Intel Intel Brookdale-G unsupported 0 Intel Brookdale +Intel Intel Calistoga UNRECOGNIZED +Intel Intel Cantiga unsupported 0 Intel Cantiga +Intel Intel Eaglelake supported 0 Intel Eaglelake +Intel Intel Grantsdale-G UNRECOGNIZED +Intel Intel HD Graphics 3000 supported 2 Intel HD Graphics +Intel Intel Lakeport UNRECOGNIZED +Intel Intel Montara-GM unsupported 0 Intel Montara +Intel Intel Pineview Platform supported 0 Intel Pineview +Intel Intel Springdale-G unsupported 0 Intel Springdale +Intel Mobile - famiglia Express Chipset 45 (Microsoft Corporation - WDDM 1.1) UNRECOGNIZED +Intel Mobile 4 Series supported 0 Intel Mobile 4 Series +Intel Mobile 4 Series Express Chipset Family supported 0 Intel Mobile 4 Series +Intel Mobile 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1) UNRECOGNIZED +Intel Mobile HD Graphics supported 2 Intel HD Graphics +Intel Mobile SandyBridge HD Graphics supported 2 Intel HD Graphics +Intel Montara unsupported 0 Intel Montara +Intel Pineview supported 0 Intel Pineview +Intel Q45/Q43 Express Chipset UNRECOGNIZED +Intel Royal BNA Driver UNRECOGNIZED +Intel SandyBridge HD Graphics supported 2 Intel HD Graphics +Intel SandyBridge HD Graphics BR-1006-00V8 supported 2 Intel HD Graphics +Intel Springdale unsupported 0 Intel Springdale +Intel X3100 supported 0 Intel X3100 +Intergraph wcgdrv 06.05.06.18 UNRECOGNIZED +Intergraph wcgdrv 06.06.00.35 UNRECOGNIZED +LegendgrafiX Mobile 945 Express C/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://Legendgra... UNRECOGNIZED +LegendgrafiX NVIDIA GeForce GT 430/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://Legendgr... supported 3 NVIDIA GT 430M +Linden Lab Headless UNRECOGNIZED +Matrox unsupported 0 Matrox +Mesa unsupported 0 Mesa +Mesa Project Software Rasterizer unsupported 0 Mesa +NVIDIA /PCI/SSE2 UNRECOGNIZED +NVIDIA /PCI/SSE2/3DNOW! UNRECOGNIZED +NVIDIA 205 supported 0 NVIDIA G 205M +NVIDIA 210 supported 1 NVIDIA G 210 +NVIDIA 310 supported 2 NVIDIA G 310M +NVIDIA 310M supported 2 NVIDIA G 310M +NVIDIA 315 supported 2 NVIDIA G 315 +NVIDIA 315M supported 2 NVIDIA G 315 +NVIDIA 320M supported 2 NVIDIA G 320M +NVIDIA C51 supported 0 NVIDIA C51 +NVIDIA D10M2-20/PCI/SSE2 UNRECOGNIZED +NVIDIA D10P1-25/PCI/SSE2 UNRECOGNIZED +NVIDIA D10P1-30/PCI/SSE2 UNRECOGNIZED +NVIDIA D10P2-50/PCI/SSE2 UNRECOGNIZED +NVIDIA D11M2-30/PCI/SSE2 UNRECOGNIZED +NVIDIA D12-P1-35/PCI/SSE2 UNRECOGNIZED +NVIDIA D12U-15/PCI/SSE2 UNRECOGNIZED +NVIDIA D13M1-40/PCI/SSE2 UNRECOGNIZED +NVIDIA D13P1-40/PCI/SSE2 UNRECOGNIZED +NVIDIA D13U-10/PCI/SSE2 UNRECOGNIZED +NVIDIA D13U/PCI/SSE2 UNRECOGNIZED +NVIDIA D9M supported 1 NVIDIA D9M +NVIDIA D9M-20/PCI/SSE2 supported 1 NVIDIA D9M +NVIDIA Entry Graphics/PCI/SSE2 UNRECOGNIZED +NVIDIA Entry Graphics/PCI/SSE2/3DNOW! UNRECOGNIZED +NVIDIA G 102M supported 0 NVIDIA G102M +NVIDIA G 103M supported 0 NVIDIA G103M +NVIDIA G 105M supported 0 NVIDIA G105M +NVIDIA G 110M supported 0 NVIDIA G 110M +NVIDIA G100 supported 0 NVIDIA G100 +NVIDIA G102M supported 0 NVIDIA G102M +NVIDIA G103M supported 0 NVIDIA G103M +NVIDIA G105M supported 0 NVIDIA G105M +NVIDIA G210 supported 1 NVIDIA G 210 +NVIDIA G210M supported 1 NVIDIA G 210 +NVIDIA G70/PCI/SSE2 UNRECOGNIZED +NVIDIA G72 supported 1 NVIDIA G72 +NVIDIA G73 supported 1 NVIDIA G73 +NVIDIA G84 supported 2 NVIDIA G84 +NVIDIA G86 supported 3 NVIDIA G86 +NVIDIA G92 supported 3 NVIDIA G92 +NVIDIA G92-200/PCI/SSE2 supported 3 NVIDIA G92 +NVIDIA G94 supported 3 NVIDIA G94 +NVIDIA G96/PCI/SSE2 UNRECOGNIZED +NVIDIA G98/PCI/SSE2 UNRECOGNIZED +NVIDIA GT 120 supported 2 NVIDIA GT 120M +NVIDIA GT 130 supported 2 NVIDIA GT 130M +NVIDIA GT 130M supported 2 NVIDIA GT 130M +NVIDIA GT 140 supported 2 NVIDIA GT 140M +NVIDIA GT 150 supported 2 NVIDIA GT 150M +NVIDIA GT 160M supported 2 NVIDIA GT 160M +NVIDIA GT 220 supported 2 NVIDIA GT 220M +NVIDIA GT 220/PCI/SSE2 supported 2 NVIDIA GT 220M +NVIDIA GT 220/PCI/SSE2/3DNOW! supported 2 NVIDIA GT 220M +NVIDIA GT 230 supported 2 NVIDIA GT 230M +NVIDIA GT 230M supported 2 NVIDIA GT 230M +NVIDIA GT 240 supported 2 NVIDIA GT 240M +NVIDIA GT 240M supported 2 NVIDIA GT 240M +NVIDIA GT 250M supported 2 NVIDIA GT 250M +NVIDIA GT 260M supported 2 NVIDIA GT 260M +NVIDIA GT 320 supported 2 NVIDIA GT 320M +NVIDIA GT 320M supported 2 NVIDIA GT 320M +NVIDIA GT 330 supported 3 NVIDIA GT 330M +NVIDIA GT 330M supported 3 NVIDIA GT 330M +NVIDIA GT 340 supported 2 NVIDIA GT 340M +NVIDIA GT 420 supported 2 NVIDIA GT 420M +NVIDIA GT 430 supported 3 NVIDIA GT 430M +NVIDIA GT 440 supported 3 NVIDIA GT 440M +NVIDIA GT 450 supported 3 NVIDIA GT 450M +NVIDIA GT 520 supported 3 NVIDIA GT 520M +NVIDIA GT 540 supported 3 NVIDIA GT 540M +NVIDIA GT 540M supported 3 NVIDIA GT 540M +NVIDIA GT-120 supported 2 NVIDIA GT 120 +NVIDIA GT200/PCI/SSE2 UNRECOGNIZED +NVIDIA GTS 150 supported 2 NVIDIA GT 150M +NVIDIA GTS 240 supported 3 NVIDIA GTS 240 +NVIDIA GTS 250 supported 3 NVIDIA GTS 250 +NVIDIA GTS 350M supported 3 NVIDIA GTS 350M +NVIDIA GTS 360 supported 3 NVIDIA GTS 360 +NVIDIA GTS 360M supported 3 NVIDIA GTS 360M +NVIDIA GTS 450 supported 3 NVIDIA GTS 450 +NVIDIA GTX 260 supported 3 NVIDIA GTX 260 +NVIDIA GTX 260M supported 3 NVIDIA GTX 260 +NVIDIA GTX 270 supported 3 NVIDIA GTX 270 +NVIDIA GTX 280 supported 3 NVIDIA GTX 280 +NVIDIA GTX 285 supported 3 NVIDIA GTX 285 +NVIDIA GTX 290 supported 3 NVIDIA GTX 290 +NVIDIA GTX 460 supported 3 NVIDIA GTX 460 +NVIDIA GTX 460M supported 3 NVIDIA GTX 460M +NVIDIA GTX 465 supported 3 NVIDIA GTX 465 +NVIDIA GTX 470 supported 3 NVIDIA GTX 470 +NVIDIA GTX 470M supported 3 NVIDIA GTX 470M +NVIDIA GTX 480 supported 3 NVIDIA GTX 480 +NVIDIA GTX 480M supported 3 NVIDIA GTX 480M +NVIDIA GTX 550 Ti supported 3 NVIDIA GTX 550 +NVIDIA GTX 560 supported 3 NVIDIA GTX 560 +NVIDIA GTX 560 Ti supported 3 NVIDIA GTX 560 +NVIDIA GTX 570 supported 3 NVIDIA GTX 570 +NVIDIA GTX 580 supported 3 NVIDIA GTX 580 +NVIDIA GTX 590 supported 3 NVIDIA GTX 590 +NVIDIA GeForce UNRECOGNIZED +NVIDIA GeForce 2 supported 0 NVIDIA GeForce 2 +NVIDIA GeForce 205/PCI/SSE2 supported 2 NVIDIA 205 +NVIDIA GeForce 210 supported 2 NVIDIA 210 +NVIDIA GeForce 210/PCI/SSE2 supported 2 NVIDIA 210 +NVIDIA GeForce 210/PCI/SSE2/3DNOW! supported 2 NVIDIA 210 +NVIDIA GeForce 3 supported 0 NVIDIA GeForce 3 +NVIDIA GeForce 305M/PCI/SSE2 supported 1 NVIDIA 305M +NVIDIA GeForce 310/PCI/SSE2 supported 3 NVIDIA 310 +NVIDIA GeForce 310/PCI/SSE2/3DNOW! supported 3 NVIDIA 310 +NVIDIA GeForce 310M/PCI/SSE2 supported 1 NVIDIA 310M +NVIDIA GeForce 315/PCI/SSE2 supported 3 NVIDIA 315 +NVIDIA GeForce 315/PCI/SSE2/3DNOW! supported 3 NVIDIA 315 +NVIDIA GeForce 315M/PCI/SSE2 supported 2 NVIDIA 315M +NVIDIA GeForce 320M/PCI/SSE2 supported 2 NVIDIA 320M +NVIDIA GeForce 4 Go supported 0 NVIDIA GeForce 4 +NVIDIA GeForce 4 MX supported 0 NVIDIA GeForce 4 +NVIDIA GeForce 4 Ti supported 0 NVIDIA GeForce 4 +NVIDIA GeForce 405/PCI/SSE2 supported 1 NVIDIA G 405 +NVIDIA GeForce 6100 supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6100 nForce 400/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6100 nForce 405/PCI/SSE2 supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6100 nForce 405/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6100 nForce 420/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6100 nForce 430/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6100/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6150 LE/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6150/PCI/SSE2 supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6150/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6150SE nForce 430/PCI/SSE2 supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6150SE nForce 430/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6150SE/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 +NVIDIA GeForce 6200 supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200 A-LE/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200 A-LE/AGP/SSE2 supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200 A-LE/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200 LE/PCI/SSE2 supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200 LE/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2 supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200/AGP/SSE2 supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200/PCI/SSE/3DNOW! supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200/PCI/SSE2 supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6200SE TurboCache(TM)/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6200 +NVIDIA GeForce 6500 supported 0 NVIDIA GeForce 6500 +NVIDIA GeForce 6500/PCI/SSE2 supported 0 NVIDIA GeForce 6500 +NVIDIA GeForce 6600 supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6600 GT/AGP/SSE/3DNOW! supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6600 GT/AGP/SSE2 supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6600 GT/PCI/SSE/3DNOW! supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6600 GT/PCI/SSE2 supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6600 GT/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6600 LE/PCI/SSE2 supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6600/AGP/SSE/3DNOW! supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6600/AGP/SSE2 supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6600/AGP/SSE2/3DNOW! supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6600/PCI/SSE2 supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6600/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 6600 +NVIDIA GeForce 6700 supported 2 NVIDIA GeForce 6700 +NVIDIA GeForce 6800 supported 2 NVIDIA GeForce 6800 +NVIDIA GeForce 6800 GS/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 6800 +NVIDIA GeForce 6800 GT/AGP/SSE2 supported 2 NVIDIA GeForce 6800 +NVIDIA GeForce 6800 GT/PCI/SSE2 supported 2 NVIDIA GeForce 6800 +NVIDIA GeForce 6800 XT/AGP/SSE2 supported 2 NVIDIA GeForce 6800 +NVIDIA GeForce 6800 XT/PCI/SSE2 supported 2 NVIDIA GeForce 6800 +NVIDIA GeForce 6800/PCI/SSE2 supported 2 NVIDIA GeForce 6800 +NVIDIA GeForce 6800/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 6800 +NVIDIA GeForce 7000 supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7000M supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2 supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2 supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7050 / NVIDIA nForce 610i/PCI/SSE2 supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7050 / NVIDIA nForce 620i/PCI/SSE2 supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7050 / nForce 610i/PCI/SSE2 supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7050 / nForce 620i/PCI/SSE2 supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7050 PV / NVIDIA nForce 630a/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2 supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7050 SE / NVIDIA nForce 630a/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 +NVIDIA GeForce 7100 supported 0 NVIDIA GeForce 7100 +NVIDIA GeForce 7100 / NVIDIA nForce 620i/PCI/SSE2 supported 0 NVIDIA GeForce 7100 +NVIDIA GeForce 7100 / NVIDIA nForce 630i/PCI/SSE2 supported 0 NVIDIA GeForce 7100 +NVIDIA GeForce 7100 / nForce 630i/PCI/SSE2 supported 0 NVIDIA GeForce 7100 +NVIDIA GeForce 7100 GS/PCI/SSE2 supported 0 NVIDIA GeForce 7100 +NVIDIA GeForce 7100 GS/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7100 +NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2 supported 0 NVIDIA GeForce 7100 +NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7100 +NVIDIA GeForce 7300 supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 GS/PCI/SSE2 supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 GT/AGP/SSE2 supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 GT/AGP/SSE2/3DNOW! supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 GT/PCI/SSE2 supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 GT/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 LE/PCI/SSE2 supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 LE/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2 supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 SE/PCI/SSE2 supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7300 SE/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7350 LE/PCI/SSE2 supported 1 NVIDIA GeForce 7300 +NVIDIA GeForce 7500 supported 1 NVIDIA GeForce 7500 +NVIDIA GeForce 7500 LE/PCI/SSE2 supported 1 NVIDIA GeForce 7500 +NVIDIA GeForce 7500 LE/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 7500 +NVIDIA GeForce 7600 supported 2 NVIDIA GeForce 7600 +NVIDIA GeForce 7600 GS/AGP/SSE2 supported 2 NVIDIA GeForce 7600 +NVIDIA GeForce 7600 GS/AGP/SSE2/3DNOW! supported 2 NVIDIA GeForce 7600 +NVIDIA GeForce 7600 GS/PCI/SSE2 supported 2 NVIDIA GeForce 7600 +NVIDIA GeForce 7600 GS/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7600 +NVIDIA GeForce 7600 GT/AGP/SSE/3DNOW! supported 2 NVIDIA GeForce 7600 +NVIDIA GeForce 7600 GT/AGP/SSE2 supported 2 NVIDIA GeForce 7600 +NVIDIA GeForce 7600 GT/PCI/SSE2 supported 2 NVIDIA GeForce 7600 +NVIDIA GeForce 7600 GT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7600 +NVIDIA GeForce 7650 GS/PCI/SSE2 supported 2 NVIDIA GeForce 7600 +NVIDIA GeForce 7800 supported 2 NVIDIA GeForce 7800 +NVIDIA GeForce 7800 GS/AGP/SSE2 supported 2 NVIDIA GeForce 7800 +NVIDIA GeForce 7800 GS/AGP/SSE2/3DNOW! supported 2 NVIDIA GeForce 7800 +NVIDIA GeForce 7800 GT/PCI/SSE2 supported 2 NVIDIA GeForce 7800 +NVIDIA GeForce 7800 GTX/PCI/SSE2 supported 2 NVIDIA GeForce 7800 +NVIDIA GeForce 7800 GTX/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7800 +NVIDIA GeForce 7900 supported 2 NVIDIA GeForce 7900 +NVIDIA GeForce 7900 GS/PCI/SSE2 supported 2 NVIDIA GeForce 7900 +NVIDIA GeForce 7900 GS/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7900 +NVIDIA GeForce 7900 GT/GTO/PCI/SSE2 supported 2 NVIDIA GeForce 7900 +NVIDIA GeForce 7900 GT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7900 +NVIDIA GeForce 7900 GTX/PCI/SSE2 supported 2 NVIDIA GeForce 7900 +NVIDIA GeForce 7950 GT/PCI/SSE2 supported 2 NVIDIA GeForce 7900 +NVIDIA GeForce 7950 GT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7900 +NVIDIA GeForce 8100 supported 1 NVIDIA GeForce 8100 +NVIDIA GeForce 8100 / nForce 720a/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8100 +NVIDIA GeForce 8200 supported 1 NVIDIA GeForce 8200 +NVIDIA GeForce 8200/PCI/SSE2 supported 1 NVIDIA GeForce 8200 +NVIDIA GeForce 8200/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8200 +NVIDIA GeForce 8200M supported 1 NVIDIA GeForce 8200M +NVIDIA GeForce 8200M G/PCI/SSE2 supported 1 NVIDIA GeForce 8200M +NVIDIA GeForce 8200M G/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8200M +NVIDIA GeForce 8300 supported 1 NVIDIA GeForce 8300 +NVIDIA GeForce 8300 GS/PCI/SSE2 supported 1 NVIDIA GeForce 8300 +NVIDIA GeForce 8400 supported 1 NVIDIA GeForce 8400 +NVIDIA GeForce 8400 GS/PCI/SSE/3DNOW! supported 1 NVIDIA GeForce 8400 +NVIDIA GeForce 8400 GS/PCI/SSE2 supported 1 NVIDIA GeForce 8400 +NVIDIA GeForce 8400 GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8400 +NVIDIA GeForce 8400/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8400 +NVIDIA GeForce 8400GS/PCI/SSE2 supported 1 NVIDIA GeForce 8400 +NVIDIA GeForce 8400GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8400 +NVIDIA GeForce 8400M supported 1 NVIDIA GeForce 8400M +NVIDIA GeForce 8400M G/PCI/SSE2 supported 1 NVIDIA GeForce 8400M +NVIDIA GeForce 8400M G/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8400M +NVIDIA GeForce 8400M GS/PCI/SSE2 supported 1 NVIDIA GeForce 8400M +NVIDIA GeForce 8400M GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8400M +NVIDIA GeForce 8400M GT/PCI/SSE2 supported 1 NVIDIA GeForce 8400M +NVIDIA GeForce 8500 supported 3 NVIDIA GeForce 8500 +NVIDIA GeForce 8500 GT/PCI/SSE2 supported 3 NVIDIA GeForce 8500 +NVIDIA GeForce 8500 GT/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8500 +NVIDIA GeForce 8600 supported 3 NVIDIA GeForce 8600 +NVIDIA GeForce 8600 GS/PCI/SSE2 supported 3 NVIDIA GeForce 8600 +NVIDIA GeForce 8600 GS/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8600 +NVIDIA GeForce 8600 GT/PCI/SSE2 supported 3 NVIDIA GeForce 8600 +NVIDIA GeForce 8600 GT/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8600 +NVIDIA GeForce 8600 GTS/PCI/SSE2 supported 3 NVIDIA GeForce 8600 +NVIDIA GeForce 8600 GTS/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8600 +NVIDIA GeForce 8600GS/PCI/SSE2 supported 3 NVIDIA GeForce 8600 +NVIDIA GeForce 8600M supported 1 NVIDIA GeForce 8600M +NVIDIA GeForce 8600M GS/PCI/SSE2 supported 1 NVIDIA GeForce 8600M +NVIDIA GeForce 8600M GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8600M +NVIDIA GeForce 8600M GT/PCI/SSE2 supported 1 NVIDIA GeForce 8600M +NVIDIA GeForce 8700 supported 3 NVIDIA GeForce 8700 +NVIDIA GeForce 8700M supported 3 NVIDIA GeForce 8700M +NVIDIA GeForce 8700M GT/PCI/SSE2 supported 3 NVIDIA GeForce 8700M +NVIDIA GeForce 8800 supported 3 NVIDIA GeForce 8800 +NVIDIA GeForce 8800 GS/PCI/SSE2 supported 3 NVIDIA GeForce 8800 +NVIDIA GeForce 8800 GT/PCI/SSE2 supported 3 NVIDIA GeForce 8800 +NVIDIA GeForce 8800 GT/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8800 +NVIDIA GeForce 8800 GTS 512/PCI/SSE2 supported 3 NVIDIA GeForce 8800 +NVIDIA GeForce 8800 GTS 512/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8800 +NVIDIA GeForce 8800 GTS/PCI/SSE2 supported 3 NVIDIA GeForce 8800 +NVIDIA GeForce 8800 GTS/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8800 +NVIDIA GeForce 8800 GTX/PCI/SSE2 supported 3 NVIDIA GeForce 8800 +NVIDIA GeForce 8800 Ultra/PCI/SSE2 supported 3 NVIDIA GeForce 8800 +NVIDIA GeForce 8800M GTS/PCI/SSE2 supported 3 NVIDIA GeForce 8800M +NVIDIA GeForce 8800M GTX/PCI/SSE2 supported 3 NVIDIA GeForce 8800M +NVIDIA GeForce 9100 supported 0 NVIDIA GeForce 9100 +NVIDIA GeForce 9100/PCI/SSE2 supported 0 NVIDIA GeForce 9100 +NVIDIA GeForce 9100/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 9100 +NVIDIA GeForce 9100M supported 0 NVIDIA GeForce 9100M +NVIDIA GeForce 9100M G/PCI/SSE2 supported 0 NVIDIA GeForce 9100M +NVIDIA GeForce 9100M G/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 9100M +NVIDIA GeForce 9200 supported 1 NVIDIA GeForce 9200 +NVIDIA GeForce 9200/PCI/SSE2 supported 1 NVIDIA GeForce 9200 +NVIDIA GeForce 9200/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 9200 +NVIDIA GeForce 9200M GE/PCI/SSE2 supported 1 NVIDIA GeForce 9200M +NVIDIA GeForce 9200M GS/PCI/SSE2 supported 1 NVIDIA GeForce 9200M +NVIDIA GeForce 9300 supported 1 NVIDIA GeForce 9300 +NVIDIA GeForce 9300 / nForce 730i/PCI/SSE2 supported 1 NVIDIA GeForce 9300 +NVIDIA GeForce 9300 GE/PCI/SSE2 supported 1 NVIDIA GeForce 9300 +NVIDIA GeForce 9300 GE/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 9300 +NVIDIA GeForce 9300 GS/PCI/SSE2 supported 1 NVIDIA GeForce 9300 +NVIDIA GeForce 9300 GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 9300 +NVIDIA GeForce 9300 SE/PCI/SSE2 supported 1 NVIDIA GeForce 9300 +NVIDIA GeForce 9300M supported 1 NVIDIA GeForce 9300M +NVIDIA GeForce 9300M G/PCI/SSE2 supported 1 NVIDIA GeForce 9300M +NVIDIA GeForce 9300M G/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 9300M +NVIDIA GeForce 9300M GS/PCI/SSE2 supported 1 NVIDIA GeForce 9300M +NVIDIA GeForce 9300M GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 9300M +NVIDIA GeForce 9400 supported 1 NVIDIA GeForce 9400 +NVIDIA GeForce 9400 GT/PCI/SSE2 supported 1 NVIDIA GeForce 9400 +NVIDIA GeForce 9400 GT/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 9400 +NVIDIA GeForce 9400/PCI/SSE2 supported 1 NVIDIA GeForce 9400 +NVIDIA GeForce 9400M supported 1 NVIDIA GeForce 9400M +NVIDIA GeForce 9400M G/PCI/SSE2 supported 1 NVIDIA GeForce 9400M +NVIDIA GeForce 9400M/PCI/SSE2 supported 1 NVIDIA GeForce 9400M +NVIDIA GeForce 9500 supported 2 NVIDIA GeForce 9500 +NVIDIA GeForce 9500 GS/PCI/SSE2 supported 2 NVIDIA GeForce 9500 +NVIDIA GeForce 9500 GS/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 9500 +NVIDIA GeForce 9500 GT/PCI/SSE2 supported 2 NVIDIA GeForce 9500 +NVIDIA GeForce 9500 GT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 9500 +NVIDIA GeForce 9500M supported 2 NVIDIA GeForce 9500M +NVIDIA GeForce 9500M GS/PCI/SSE2 supported 2 NVIDIA GeForce 9500M +NVIDIA GeForce 9600 supported 2 NVIDIA GeForce 9600 +NVIDIA GeForce 9600 GS/PCI/SSE2 supported 2 NVIDIA GeForce 9600 +NVIDIA GeForce 9600 GSO 512/PCI/SSE2 supported 2 NVIDIA GeForce 9600 +NVIDIA GeForce 9600 GSO/PCI/SSE2 supported 2 NVIDIA GeForce 9600 +NVIDIA GeForce 9600 GSO/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 9600 +NVIDIA GeForce 9600 GT/PCI/SSE2 supported 2 NVIDIA GeForce 9600 +NVIDIA GeForce 9600 GT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 9600 +NVIDIA GeForce 9600M supported 3 NVIDIA GeForce 9600M +NVIDIA GeForce 9600M GS/PCI/SSE2 supported 3 NVIDIA GeForce 9600M +NVIDIA GeForce 9600M GT/PCI/SSE2 supported 3 NVIDIA GeForce 9600M +NVIDIA GeForce 9650M GT/PCI/SSE2 supported 2 NVIDIA GeForce 9600 +NVIDIA GeForce 9700M supported 2 NVIDIA GeForce 9700M +NVIDIA GeForce 9700M GT/PCI/SSE2 supported 2 NVIDIA GeForce 9700M +NVIDIA GeForce 9700M GTS/PCI/SSE2 supported 2 NVIDIA GeForce 9700M +NVIDIA GeForce 9800 supported 3 NVIDIA GeForce 9800 +NVIDIA GeForce 9800 GT/PCI/SSE2 supported 3 NVIDIA GeForce 9800 +NVIDIA GeForce 9800 GT/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 9800 +NVIDIA GeForce 9800 GTX+/PCI/SSE2 supported 3 NVIDIA GeForce 9800 +NVIDIA GeForce 9800 GTX+/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 9800 +NVIDIA GeForce 9800 GTX/9800 GTX+/PCI/SSE2 supported 3 NVIDIA GeForce 9800 +NVIDIA GeForce 9800 GTX/PCI/SSE2 supported 3 NVIDIA GeForce 9800 +NVIDIA GeForce 9800 GX2/PCI/SSE2 supported 3 NVIDIA GeForce 9800 +NVIDIA GeForce 9800M supported 3 NVIDIA GeForce 9800M +NVIDIA GeForce 9800M GS/PCI/SSE2 supported 3 NVIDIA GeForce 9800M +NVIDIA GeForce 9800M GT/PCI/SSE2 supported 3 NVIDIA GeForce 9800M +NVIDIA GeForce 9800M GTS/PCI/SSE2 supported 3 NVIDIA GeForce 9800M +NVIDIA GeForce FX 5100 supported 0 NVIDIA GeForce FX 5100 +NVIDIA GeForce FX 5100/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce FX 5100 +NVIDIA GeForce FX 5200 supported 0 NVIDIA GeForce FX 5200 +NVIDIA GeForce FX 5200/AGP/SSE supported 0 NVIDIA GeForce FX 5200 +NVIDIA GeForce FX 5200/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce FX 5200 +NVIDIA GeForce FX 5200/AGP/SSE2 supported 0 NVIDIA GeForce FX 5200 +NVIDIA GeForce FX 5200/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce FX 5200 +NVIDIA GeForce FX 5200/PCI/SSE2 supported 0 NVIDIA GeForce FX 5200 +NVIDIA GeForce FX 5200/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce FX 5200 +NVIDIA GeForce FX 5200LE/AGP/SSE2 supported 0 NVIDIA GeForce FX 5200 +NVIDIA GeForce FX 5500 supported 0 NVIDIA GeForce FX 5500 +NVIDIA GeForce FX 5500/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce FX 5500 +NVIDIA GeForce FX 5500/AGP/SSE2 supported 0 NVIDIA GeForce FX 5500 +NVIDIA GeForce FX 5500/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce FX 5500 +NVIDIA GeForce FX 5500/PCI/SSE2 supported 0 NVIDIA GeForce FX 5500 +NVIDIA GeForce FX 5500/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce FX 5500 +NVIDIA GeForce FX 5600 supported 0 NVIDIA GeForce FX 5600 +NVIDIA GeForce FX 5600/AGP/SSE2 supported 0 NVIDIA GeForce FX 5600 +NVIDIA GeForce FX 5600/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce FX 5600 +NVIDIA GeForce FX 5600XT/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce FX 5600 +NVIDIA GeForce FX 5700 supported 1 NVIDIA GeForce FX 5700 +NVIDIA GeForce FX 5700/AGP/SSE/3DNOW! supported 1 NVIDIA GeForce FX 5700 +NVIDIA GeForce FX 5700LE/AGP/SSE supported 1 NVIDIA GeForce FX 5700 +NVIDIA GeForce FX 5700LE/AGP/SSE/3DNOW! supported 1 NVIDIA GeForce FX 5700 +NVIDIA GeForce FX 5800 supported 1 NVIDIA GeForce FX 5800 +NVIDIA GeForce FX 5900 supported 1 NVIDIA GeForce FX 5900 +NVIDIA GeForce FX 5900/AGP/SSE2 supported 1 NVIDIA GeForce FX 5900 +NVIDIA GeForce FX 5900XT/AGP/SSE2 supported 1 NVIDIA GeForce FX 5900 +NVIDIA GeForce FX Go5100 supported 0 NVIDIA GeForce FX Go5100 +NVIDIA GeForce FX Go5100/AGP/SSE2 supported 0 NVIDIA GeForce FX Go5100 +NVIDIA GeForce FX Go5200 supported 0 NVIDIA GeForce FX Go5200 +NVIDIA GeForce FX Go5200/AGP/SSE2 supported 0 NVIDIA GeForce FX Go5200 +NVIDIA GeForce FX Go5300 supported 0 NVIDIA GeForce FX Go5300 +NVIDIA GeForce FX Go5600 supported 0 NVIDIA GeForce FX Go5600 +NVIDIA GeForce FX Go5600/AGP/SSE2 supported 0 NVIDIA GeForce FX Go5600 +NVIDIA GeForce FX Go5650/AGP/SSE2 supported 0 NVIDIA GeForce FX Go5600 +NVIDIA GeForce FX Go5700 supported 1 NVIDIA GeForce FX Go5700 +NVIDIA GeForce FX Go5xxx/AGP/SSE2 supported 0 NVIDIA GeForce FX Go5xxx +NVIDIA GeForce G 103M/PCI/SSE2 supported 0 NVIDIA G103M +NVIDIA GeForce G 105M/PCI/SSE2 supported 0 NVIDIA G105M +NVIDIA GeForce G 110M/PCI/SSE2 supported 0 NVIDIA G 110M +NVIDIA GeForce G100/PCI/SSE2 supported 0 NVIDIA G100 +NVIDIA GeForce G100/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 +NVIDIA GeForce G102M/PCI/SSE2 supported 0 NVIDIA G102M +NVIDIA GeForce G105M/PCI/SSE2 supported 0 NVIDIA G105M +NVIDIA GeForce G200/PCI/SSE2 supported 0 NVIDIA G 200 +NVIDIA GeForce G205M/PCI/SSE2 supported 0 NVIDIA G 205M +NVIDIA GeForce G210/PCI/SSE2 supported 1 NVIDIA G 210 +NVIDIA GeForce G210/PCI/SSE2/3DNOW! supported 1 NVIDIA G 210 +NVIDIA GeForce G210M/PCI/SSE2 supported 1 NVIDIA G 210 +NVIDIA GeForce G310M/PCI/SSE2 supported 2 NVIDIA G 310M +NVIDIA GeForce GT 120/PCI/SSE2 supported 2 NVIDIA GT 120M +NVIDIA GeForce GT 120/PCI/SSE2/3DNOW! supported 2 NVIDIA GT 120M +NVIDIA GeForce GT 120M/PCI/SSE2 supported 2 NVIDIA GT 120M +NVIDIA GeForce GT 130M/PCI/SSE2 supported 2 NVIDIA GT 130M +NVIDIA GeForce GT 140/PCI/SSE2 supported 2 NVIDIA GT 140M +NVIDIA GeForce GT 220/PCI/SSE2 supported 2 NVIDIA GT 220M +NVIDIA GeForce GT 220/PCI/SSE2/3DNOW! supported 2 NVIDIA GT 220M +NVIDIA GeForce GT 220M/PCI/SSE2 supported 2 NVIDIA GT 220M +NVIDIA GeForce GT 230/PCI/SSE2 supported 2 NVIDIA GT 230M +NVIDIA GeForce GT 230M/PCI/SSE2 supported 2 NVIDIA GT 230M +NVIDIA GeForce GT 240 supported 2 NVIDIA GT 240M +NVIDIA GeForce GT 240/PCI/SSE2 supported 2 NVIDIA GT 240M +NVIDIA GeForce GT 240/PCI/SSE2/3DNOW! supported 2 NVIDIA GT 240M +NVIDIA GeForce GT 240M/PCI/SSE2 supported 2 NVIDIA GT 240M +NVIDIA GeForce GT 320/PCI/SSE2 supported 2 NVIDIA GT 320M +NVIDIA GeForce GT 320M/PCI/SSE2 supported 2 NVIDIA GT 320M +NVIDIA GeForce GT 325M/PCI/SSE2 supported 0 NVIDIA GT 325M +NVIDIA GeForce GT 330/PCI/SSE2 supported 3 NVIDIA GT 330M +NVIDIA GeForce GT 330/PCI/SSE2/3DNOW! supported 3 NVIDIA GT 330M +NVIDIA GeForce GT 330M/PCI/SSE2 supported 3 NVIDIA GT 330M +NVIDIA GeForce GT 335M/PCI/SSE2 supported 1 NVIDIA GT 335M +NVIDIA GeForce GT 340/PCI/SSE2 supported 2 NVIDIA GT 340M +NVIDIA GeForce GT 340/PCI/SSE2/3DNOW! supported 2 NVIDIA GT 340M +NVIDIA GeForce GT 415M/PCI/SSE2 supported 2 NVIDIA GT 415M +NVIDIA GeForce GT 420/PCI/SSE2 supported 2 NVIDIA GT 420M +NVIDIA GeForce GT 420M/PCI/SSE2 supported 2 NVIDIA GT 420M +NVIDIA GeForce GT 425M/PCI/SSE2 supported 3 NVIDIA GT 425M +NVIDIA GeForce GT 430/PCI/SSE2 supported 3 NVIDIA GT 430M +NVIDIA GeForce GT 430/PCI/SSE2/3DNOW! supported 3 NVIDIA GT 430M +NVIDIA GeForce GT 435M/PCI/SSE2 supported 3 NVIDIA GT 435M +NVIDIA GeForce GT 440/PCI/SSE2 supported 3 NVIDIA GT 440M +NVIDIA GeForce GT 440/PCI/SSE2/3DNOW! supported 3 NVIDIA GT 440M +NVIDIA GeForce GT 445M/PCI/SSE2 supported 3 NVIDIA GT 445M +NVIDIA GeForce GT 520M/PCI/SSE2 supported 3 NVIDIA GT 520M +NVIDIA GeForce GT 525M/PCI/SSE2 supported 3 NVIDIA GT 525M +NVIDIA GeForce GT 540M/PCI/SSE2 supported 3 NVIDIA GT 540M +NVIDIA GeForce GT 550M/PCI/SSE2 supported 3 NVIDIA GT 550M +NVIDIA GeForce GT 555M/PCI/SSE2 supported 3 NVIDIA GT 555M +NVIDIA GeForce GTS 150/PCI/SSE2 supported 2 NVIDIA GT 150M +NVIDIA GeForce GTS 160M/PCI/SSE2 supported 2 NVIDIA GTS 160M +NVIDIA GeForce GTS 240/PCI/SSE2 supported 3 NVIDIA GTS 240 +NVIDIA GeForce GTS 250/PCI/SSE2 supported 3 NVIDIA GTS 250 +NVIDIA GeForce GTS 250/PCI/SSE2/3DNOW! supported 3 NVIDIA GTS 250 +NVIDIA GeForce GTS 250M/PCI/SSE2 supported 3 NVIDIA GTS 250 +NVIDIA GeForce GTS 350M/PCI/SSE2 supported 3 NVIDIA GTS 350M +NVIDIA GeForce GTS 360M/PCI/SSE2 supported 3 NVIDIA GTS 360M +NVIDIA GeForce GTS 450/PCI/SSE2 supported 3 NVIDIA GTS 450 +NVIDIA GeForce GTS 450/PCI/SSE2/3DNOW! supported 3 NVIDIA GTS 450 +NVIDIA GeForce GTS 455/PCI/SSE2 supported 3 NVIDIA GTS 450 +NVIDIA GeForce GTX 260/PCI/SSE2 supported 3 NVIDIA GTX 260 +NVIDIA GeForce GTX 260/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 260 +NVIDIA GeForce GTX 260M/PCI/SSE2 supported 3 NVIDIA GTX 260 +NVIDIA GeForce GTX 275/PCI/SSE2 supported 3 NVIDIA GTX 275 +NVIDIA GeForce GTX 280 supported 3 NVIDIA GTX 280 +NVIDIA GeForce GTX 280/PCI/SSE2 supported 3 NVIDIA GTX 280 +NVIDIA GeForce GTX 280M/PCI/SSE2 supported 3 NVIDIA GTX 280 +NVIDIA GeForce GTX 285/PCI/SSE2 supported 3 NVIDIA GTX 285 +NVIDIA GeForce GTX 295/PCI/SSE2 supported 3 NVIDIA GTX 295 +NVIDIA GeForce GTX 460 SE/PCI/SSE2 supported 3 NVIDIA GTX 460 +NVIDIA GeForce GTX 460 SE/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 460 +NVIDIA GeForce GTX 460/PCI/SSE2 supported 3 NVIDIA GTX 460 +NVIDIA GeForce GTX 460/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 460 +NVIDIA GeForce GTX 460M/PCI/SSE2 supported 3 NVIDIA GTX 460M +NVIDIA GeForce GTX 465/PCI/SSE2 supported 3 NVIDIA GTX 465 +NVIDIA GeForce GTX 465/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 465 +NVIDIA GeForce GTX 470/PCI/SSE2 supported 3 NVIDIA GTX 470 +NVIDIA GeForce GTX 470/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 470 +NVIDIA GeForce GTX 480/PCI/SSE2 supported 3 NVIDIA GTX 480 +NVIDIA GeForce GTX 550 Ti/PCI/SSE2 supported 3 NVIDIA GTX 550 +NVIDIA GeForce GTX 550 Ti/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 550 +NVIDIA GeForce GTX 560 Ti/PCI/SSE2 supported 3 NVIDIA GTX 560 +NVIDIA GeForce GTX 560 Ti/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 560 +NVIDIA GeForce GTX 560/PCI/SSE2 supported 3 NVIDIA GTX 560 +NVIDIA GeForce GTX 570/PCI/SSE2 supported 3 NVIDIA GTX 570 +NVIDIA GeForce GTX 570/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 570 +NVIDIA GeForce GTX 580/PCI/SSE2 supported 3 NVIDIA GTX 580 +NVIDIA GeForce GTX 580/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 580 +NVIDIA GeForce GTX 580M/PCI/SSE2 supported 3 NVIDIA GTX 580M +NVIDIA GeForce GTX 590/PCI/SSE2 supported 3 NVIDIA GTX 590 +NVIDIA GeForce Go 6 supported 1 NVIDIA GeForce Go 6 +NVIDIA GeForce Go 6100 supported 0 NVIDIA GeForce Go 6100 +NVIDIA GeForce Go 6100/PCI/SSE2 supported 0 NVIDIA GeForce Go 6100 +NVIDIA GeForce Go 6100/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce Go 6100 +NVIDIA GeForce Go 6150/PCI/SSE2 supported 0 NVIDIA GeForce Go 6100 +NVIDIA GeForce Go 6150/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce Go 6100 +NVIDIA GeForce Go 6200 supported 0 NVIDIA GeForce Go 6200 +NVIDIA GeForce Go 6200/PCI/SSE2 supported 0 NVIDIA GeForce Go 6200 +NVIDIA GeForce Go 6400 supported 1 NVIDIA GeForce Go 6400 +NVIDIA GeForce Go 6400/PCI/SSE2 supported 1 NVIDIA GeForce Go 6400 +NVIDIA GeForce Go 6600 supported 1 NVIDIA GeForce Go 6600 +NVIDIA GeForce Go 6600/PCI/SSE2 supported 1 NVIDIA GeForce Go 6600 +NVIDIA GeForce Go 6800 supported 1 NVIDIA GeForce Go 6800 +NVIDIA GeForce Go 6800 Ultra/PCI/SSE2 supported 1 NVIDIA GeForce Go 6800 +NVIDIA GeForce Go 6800/PCI/SSE2 supported 1 NVIDIA GeForce Go 6800 +NVIDIA GeForce Go 7200 supported 1 NVIDIA GeForce Go 7200 +NVIDIA GeForce Go 7200/PCI/SSE2 supported 1 NVIDIA GeForce Go 7200 +NVIDIA GeForce Go 7200/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce Go 7200 +NVIDIA GeForce Go 7300 supported 1 NVIDIA GeForce Go 7300 +NVIDIA GeForce Go 7300/PCI/SSE2 supported 1 NVIDIA GeForce Go 7300 +NVIDIA GeForce Go 7300/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce Go 7300 +NVIDIA GeForce Go 7400 supported 1 NVIDIA GeForce Go 7400 +NVIDIA GeForce Go 7400/PCI/SSE2 supported 1 NVIDIA GeForce Go 7400 +NVIDIA GeForce Go 7400/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce Go 7400 +NVIDIA GeForce Go 7600 supported 2 NVIDIA GeForce Go 7600 +NVIDIA GeForce Go 7600/PCI/SSE2 supported 2 NVIDIA GeForce Go 7600 +NVIDIA GeForce Go 7600/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce Go 7600 +NVIDIA GeForce Go 7700 supported 2 NVIDIA GeForce Go 7700 +NVIDIA GeForce Go 7800 supported 2 NVIDIA GeForce Go 7800 +NVIDIA GeForce Go 7800 GTX/PCI/SSE2 supported 2 NVIDIA GeForce Go 7800 +NVIDIA GeForce Go 7900 supported 2 NVIDIA GeForce Go 7900 +NVIDIA GeForce Go 7900 GS/PCI/SSE2 supported 2 NVIDIA GeForce Go 7900 +NVIDIA GeForce Go 7900 GTX/PCI/SSE2 supported 2 NVIDIA GeForce Go 7900 +NVIDIA GeForce Go 7950 GTX/PCI/SSE2 supported 2 NVIDIA GeForce Go 7900 +NVIDIA GeForce PCX supported 0 NVIDIA GeForce PCX +NVIDIA GeForce2 GTS/AGP/SSE supported 0 NVIDIA GeForce 2 +NVIDIA GeForce2 MX/AGP/3DNOW! supported 0 NVIDIA GeForce 2 +NVIDIA GeForce2 MX/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 2 +NVIDIA GeForce2 MX/AGP/SSE2 supported 0 NVIDIA GeForce 2 +NVIDIA GeForce2 MX/PCI/SSE2 supported 0 NVIDIA GeForce 2 +NVIDIA GeForce3/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 3 +NVIDIA GeForce3/AGP/SSE2 supported 0 NVIDIA GeForce 3 +NVIDIA GeForce4 420 Go 32M/AGP/SSE2 supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 420 Go 32M/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 420 Go 32M/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 440 Go 64M/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 460 Go/AGP/SSE2 supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX 4000/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX 4000/AGP/SSE2 supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX 4000/PCI/3DNOW! supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX 4000/PCI/SSE/3DNOW! supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX 4000/PCI/SSE2 supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX 420/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX 420/AGP/SSE2 supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX 440 with AGP8X/AGP/SSE2 supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX 440/AGP/SSE2 supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX 440/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX 440SE with AGP8X/AGP/SSE2 supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 MX Integrated GPU/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 Ti 4200 with AGP8X/AGP/SSE supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 Ti 4200/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 4 +NVIDIA GeForce4 Ti 4400/AGP/SSE2 supported 0 NVIDIA GeForce 4 +NVIDIA Generic UNRECOGNIZED +NVIDIA ION LE/PCI/SSE2 supported 2 NVIDIA ION +NVIDIA ION/PCI/SSE2 supported 2 NVIDIA ION +NVIDIA ION/PCI/SSE2/3DNOW! supported 2 NVIDIA ION +NVIDIA MCP61/PCI/SSE2 UNRECOGNIZED +NVIDIA MCP61/PCI/SSE2/3DNOW! UNRECOGNIZED +NVIDIA MCP73/PCI/SSE2 UNRECOGNIZED +NVIDIA MCP79MH/PCI/SSE2 UNRECOGNIZED +NVIDIA MCP79MX/PCI/SSE2 UNRECOGNIZED +NVIDIA MCP7A-O/PCI/SSE2 UNRECOGNIZED +NVIDIA MCP7A-S/PCI/SSE2 UNRECOGNIZED +NVIDIA MCP89-EPT/PCI/SSE2 UNRECOGNIZED +NVIDIA N10M-GE1/PCI/SSE2 UNRECOGNIZED +NVIDIA N10P-GE1/PCI/SSE2 UNRECOGNIZED +NVIDIA N10P-GV2/PCI/SSE2 UNRECOGNIZED +NVIDIA N11M-GE1/PCI/SSE2 UNRECOGNIZED +NVIDIA N11M-GE2/PCI/SSE2 UNRECOGNIZED +NVIDIA N12E-GS-A1/PCI/SSE2 UNRECOGNIZED +NVIDIA NB9M-GE/PCI/SSE2 UNRECOGNIZED +NVIDIA NB9M-GE1/PCI/SSE2 UNRECOGNIZED +NVIDIA NB9M-GS/PCI/SSE2 UNRECOGNIZED +NVIDIA NB9M-NS/PCI/SSE2 UNRECOGNIZED +NVIDIA NB9P-GE1/PCI/SSE2 UNRECOGNIZED +NVIDIA NB9P-GS/PCI/SSE2 UNRECOGNIZED +NVIDIA NV17/AGP/3DNOW! UNRECOGNIZED +NVIDIA NV17/AGP/SSE2 UNRECOGNIZED +NVIDIA NV34 supported 0 NVIDIA NV34 +NVIDIA NV35 supported 0 NVIDIA NV35 +NVIDIA NV36/AGP/SSE/3DNOW! UNRECOGNIZED +NVIDIA NV36/AGP/SSE2 UNRECOGNIZED +NVIDIA NV41/PCI/SSE2 UNRECOGNIZED +NVIDIA NV43 supported 1 NVIDIA NV43 +NVIDIA NV44 supported 1 NVIDIA NV44 +NVIDIA NVIDIA GeForce 210 OpenGL Engine supported 2 NVIDIA 210 +NVIDIA NVIDIA GeForce 320M OpenGL Engine supported 2 NVIDIA 320M +NVIDIA NVIDIA GeForce 7300 GT OpenGL Engine supported 1 NVIDIA GeForce 7300 +NVIDIA NVIDIA GeForce 7600 GT OpenGL Engine supported 2 NVIDIA GeForce 7600 +NVIDIA NVIDIA GeForce 8600M GT OpenGL Engine supported 1 NVIDIA GeForce 8600M +NVIDIA NVIDIA GeForce 8800 GS OpenGL Engine supported 3 NVIDIA GeForce 8800 +NVIDIA NVIDIA GeForce 8800 GT OpenGL Engine supported 3 NVIDIA GeForce 8800 +NVIDIA NVIDIA GeForce 9400 OpenGL Engine supported 1 NVIDIA GeForce 9400 +NVIDIA NVIDIA GeForce 9400M OpenGL Engine supported 1 NVIDIA GeForce 9400M +NVIDIA NVIDIA GeForce 9500 GT OpenGL Engine supported 2 NVIDIA GeForce 9500 +NVIDIA NVIDIA GeForce 9600M GT OpenGL Engine supported 3 NVIDIA GeForce 9600M +NVIDIA NVIDIA GeForce GT 120 OpenGL Engine supported 2 NVIDIA GT 120M +NVIDIA NVIDIA GeForce GT 130 OpenGL Engine supported 2 NVIDIA GT 130M +NVIDIA NVIDIA GeForce GT 220 OpenGL Engine supported 2 NVIDIA GT 220M +NVIDIA NVIDIA GeForce GT 230M OpenGL Engine supported 2 NVIDIA GT 230M +NVIDIA NVIDIA GeForce GT 240M OpenGL Engine supported 2 NVIDIA GT 240M +NVIDIA NVIDIA GeForce GT 330M OpenGL Engine supported 3 NVIDIA GT 330M +NVIDIA NVIDIA GeForce GT 420M OpenGL Engine supported 2 NVIDIA GT 420M +NVIDIA NVIDIA GeForce GT 425M OpenGL Engine supported 3 NVIDIA GT 425M +NVIDIA NVIDIA GeForce GT 430 OpenGL Engine supported 3 NVIDIA GT 430M +NVIDIA NVIDIA GeForce GT 440 OpenGL Engine supported 3 NVIDIA GT 440M +NVIDIA NVIDIA GeForce GT 540M OpenGL Engine supported 3 NVIDIA GT 540M +NVIDIA NVIDIA GeForce GTS 240 OpenGL Engine supported 3 NVIDIA GTS 240 +NVIDIA NVIDIA GeForce GTS 250 OpenGL Engine supported 3 NVIDIA GTS 250 +NVIDIA NVIDIA GeForce GTS 450 OpenGL Engine supported 3 NVIDIA GTS 450 +NVIDIA NVIDIA GeForce GTX 285 OpenGL Engine supported 3 NVIDIA GTX 285 +NVIDIA NVIDIA GeForce GTX 460 OpenGL Engine supported 3 NVIDIA GTX 460 +NVIDIA NVIDIA GeForce GTX 460M OpenGL Engine supported 3 NVIDIA GTX 460M +NVIDIA NVIDIA GeForce GTX 465 OpenGL Engine supported 3 NVIDIA GTX 465 +NVIDIA NVIDIA GeForce GTX 470 OpenGL Engine supported 3 NVIDIA GTX 470 +NVIDIA NVIDIA GeForce GTX 480 OpenGL Engine supported 3 NVIDIA GTX 480 +NVIDIA NVIDIA GeForce Pre-Release ION OpenGL Engine UNRECOGNIZED +NVIDIA NVIDIA GeForce4 OpenGL Engine supported 0 NVIDIA GeForce 4 +NVIDIA NVIDIA NV34MAP OpenGL Engine supported 0 NVIDIA NV34 +NVIDIA NVIDIA Quadro 4000 OpenGL Engine supported 3 NVIDIA Quadro 4000 +NVIDIA NVIDIA Quadro FX 4800 OpenGL Engine supported 3 NVIDIA Quadro FX 4800 +NVIDIA NVS 2100M/PCI/SSE2 supported 2 NVIDIA Quadro NVS 2100M +NVIDIA NVS 300/PCI/SSE2 supported 0 NVIDIA Quadro NVS +NVIDIA NVS 3100M/PCI/SSE2 supported 2 NVIDIA Quadro NVS 3100M +NVIDIA NVS 4100/PCI/SSE2/3DNOW! supported 0 NVIDIA Quadro NVS +NVIDIA NVS 4200M/PCI/SSE2 supported 2 NVIDIA Quadro NVS 4200M +NVIDIA NVS 5100M/PCI/SSE2 supported 2 NVIDIA Quadro NVS 5100M +NVIDIA PCI UNRECOGNIZED +NVIDIA Quadro 2000/PCI/SSE2 supported 3 NVIDIA Quadro 2000 M/D +NVIDIA Quadro 4000 supported 3 NVIDIA Quadro 4000 +NVIDIA Quadro 4000 OpenGL Engine supported 3 NVIDIA Quadro 4000 +NVIDIA Quadro 4000/PCI/SSE2 supported 3 NVIDIA Quadro 4000 +NVIDIA Quadro 5000/PCI/SSE2 supported 3 NVIDIA Quadro 50x0 M +NVIDIA Quadro 5000M/PCI/SSE2 supported 3 NVIDIA Quadro 50x0 M +NVIDIA Quadro 600 supported 2 NVIDIA Quadro 600 +NVIDIA Quadro 600/PCI/SSE2 supported 2 NVIDIA Quadro 600 +NVIDIA Quadro 600/PCI/SSE2/3DNOW! supported 2 NVIDIA Quadro 600 +NVIDIA Quadro 6000 supported 3 NVIDIA Quadro 6000 +NVIDIA Quadro 6000/PCI/SSE2 supported 3 NVIDIA Quadro 6000 +NVIDIA Quadro CX/PCI/SSE2 UNRECOGNIZED +NVIDIA Quadro DCC supported 0 NVIDIA Quadro DCC +NVIDIA Quadro FX supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 1100/AGP/SSE2 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 1400/PCI/SSE2 supported 2 NVIDIA Quadro 400 +NVIDIA Quadro FX 1500 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 1500M/PCI/SSE2 supported 1 NVIDIA Quadro FX 1500M +NVIDIA Quadro FX 1600M/PCI/SSE2 supported 2 NVIDIA Quadro 600 +NVIDIA Quadro FX 1700 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 1700M/PCI/SSE2 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 1800 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 1800/PCI/SSE2 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 1800M/PCI/SSE2 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 2500M/PCI/SSE2 supported 2 NVIDIA Quadro FX 2500M +NVIDIA Quadro FX 2700M/PCI/SSE2 supported 3 NVIDIA Quadro FX 2700M +NVIDIA Quadro FX 2800M/PCI/SSE2 supported 3 NVIDIA Quadro FX 2800M +NVIDIA Quadro FX 3400 supported 2 NVIDIA Quadro 400 +NVIDIA Quadro FX 3450 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 3450/4000 SDI/PCI/SSE2 supported 2 NVIDIA Quadro 400 +NVIDIA Quadro FX 3500 supported 2 NVIDIA Quadro FX 3500 +NVIDIA Quadro FX 3500M/PCI/SSE2 supported 2 NVIDIA Quadro FX 3500 +NVIDIA Quadro FX 360M/PCI/SSE2 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 370 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 370/PCI/SSE2 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 3700 supported 3 NVIDIA Quadro FX 3700 +NVIDIA Quadro FX 3700M/PCI/SSE2 supported 3 NVIDIA Quadro FX 3700 +NVIDIA Quadro FX 370M/PCI/SSE2 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 3800 supported 3 NVIDIA Quadro FX 3800 +NVIDIA Quadro FX 3800M/PCI/SSE2 supported 3 NVIDIA Quadro FX 3800 +NVIDIA Quadro FX 4500 supported 3 NVIDIA Quadro FX 4500 +NVIDIA Quadro FX 4600 supported 2 NVIDIA Quadro 600 +NVIDIA Quadro FX 4800 supported 3 NVIDIA Quadro FX 4800 +NVIDIA Quadro FX 4800/PCI/SSE2 supported 3 NVIDIA Quadro FX 4800 +NVIDIA Quadro FX 560 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 5600 supported 2 NVIDIA Quadro 600 +NVIDIA Quadro FX 570 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 570/PCI/SSE2 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 570M/PCI/SSE2 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 580/PCI/SSE2 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 770M/PCI/SSE2 supported 2 NVIDIA Quadro FX 770M +NVIDIA Quadro FX 880M supported 3 NVIDIA Quadro FX 880M +NVIDIA Quadro FX 880M/PCI/SSE2 supported 3 NVIDIA Quadro FX 880M +NVIDIA Quadro FX Go700/AGP/SSE2 supported 1 NVIDIA Quadro FX +NVIDIA Quadro NVS supported 0 NVIDIA Quadro NVS +NVIDIA Quadro NVS 110M/PCI/SSE2 supported 0 NVIDIA Quadro NVS 1xxM +NVIDIA Quadro NVS 130M/PCI/SSE2 supported 0 NVIDIA Quadro NVS 1xxM +NVIDIA Quadro NVS 135M/PCI/SSE2 supported 0 NVIDIA Quadro NVS 1xxM +NVIDIA Quadro NVS 140M/PCI/SSE2 supported 0 NVIDIA Quadro NVS 1xxM +NVIDIA Quadro NVS 150M/PCI/SSE2 supported 0 NVIDIA Quadro NVS 1xxM +NVIDIA Quadro NVS 160M/PCI/SSE2 supported 0 NVIDIA Quadro NVS 1xxM +NVIDIA Quadro NVS 210S/PCI/SSE2/3DNOW! supported 0 NVIDIA Quadro NVS +NVIDIA Quadro NVS 285/PCI/SSE2 supported 0 NVIDIA Quadro NVS +NVIDIA Quadro NVS 290/PCI/SSE2 supported 0 NVIDIA Quadro NVS +NVIDIA Quadro NVS 295/PCI/SSE2 supported 0 NVIDIA Quadro NVS +NVIDIA Quadro NVS 320M/PCI/SSE2 supported 2 NVIDIA Quadro NVS 320M +NVIDIA Quadro NVS 55/280 PCI/PCI/SSE2 supported 0 NVIDIA Quadro NVS +NVIDIA Quadro NVS/PCI/SSE2 supported 0 NVIDIA Quadro NVS +NVIDIA Quadro PCI-E Series/PCI/SSE2/3DNOW! UNRECOGNIZED +NVIDIA Quadro VX 200/PCI/SSE2 UNRECOGNIZED +NVIDIA Quadro/AGP/SSE2 UNRECOGNIZED +NVIDIA Quadro2 supported 0 NVIDIA Quadro2 +NVIDIA Quadro4 supported 0 NVIDIA Quadro4 +NVIDIA RIVA TNT unsupported 0 NVIDIA RIVA TNT +NVIDIA RIVA TNT2/AGP/SSE2 unsupported 0 NVIDIA RIVA TNT +NVIDIA RIVA TNT2/PCI/3DNOW! unsupported 0 NVIDIA RIVA TNT +NVIDIA nForce unsupported 0 NVIDIA nForce +NVIDIA unknown board/AGP/SSE2 UNRECOGNIZED +NVIDIA unknown board/PCI/SSE2 UNRECOGNIZED +NVIDIA unknown board/PCI/SSE2/3DNOW! UNRECOGNIZED +Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5670 OpenGL Engine supported 3 ATI Radeon HD 5600 +Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5750 OpenGL Engine supported 3 ATI Radeon HD 5700 +Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5770 OpenGL Engine supported 3 ATI Radeon HD 5700 +Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6490M OpenGL Engine supported 3 ATI Radeon HD 6400 +Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6750M OpenGL Engine supported 3 ATI Radeon HD 6700 +Parallels and Intel Inc. 3D-Analyze v2.3 - http://www.tommti-systems.com UNRECOGNIZED +Parallels and Intel Inc. Parallels using Intel HD Graphics 3000 OpenGL Engine supported 2 Intel HD Graphics +Parallels and NVIDIA Parallels using NVIDIA GeForce 320M OpenGL Engine supported 2 NVIDIA 320M +Parallels and NVIDIA Parallels using NVIDIA GeForce 9400 OpenGL Engine supported 1 NVIDIA GeForce 9400 +Parallels and NVIDIA Parallels using NVIDIA GeForce GT 120 OpenGL Engine supported 2 NVIDIA GT 120M +Parallels and NVIDIA Parallels using NVIDIA GeForce GT 330M OpenGL Engine supported 3 NVIDIA GT 330M +Radeon RV350 on Gallium supported 0 ATI RV350 (9600) +S3 UNRECOGNIZED +S3 Graphics VIA/S3G UniChrome IGP/MMX/K3D unsupported 0 S3 +S3 Graphics VIA/S3G UniChrome Pro IGP/MMX/SSE unsupported 0 S3 +S3 Graphics, Incorporated ProSavage/Twister unsupported 0 S3 +S3 Graphics, Incorporated S3 Graphics Chrome9 HC unsupported 0 S3 +S3 Graphics, Incorporated S3 Graphics DeltaChrome unsupported 0 S3 +S3 Graphics, Incorporated VIA Chrome9 HC IGP unsupported 0 S3 +SiS unsupported 0 SiS +SiS 661 VGA unsupported 0 SiS +SiS 662 VGA unsupported 0 SiS +SiS 741 VGA unsupported 0 SiS +SiS 760 VGA unsupported 0 SiS +SiS 761GX VGA unsupported 0 SiS +SiS Mirage Graphics3 unsupported 0 SiS +Trident unsupported 0 Trident +Tungsten Graphics unsupported 0 Tungsten Graphics +Tungsten Graphics, Inc Mesa DRI 865G GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 865G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 915G GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 915G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 915GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 915GM GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 915GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945G unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945G GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945G GEM 20100330 DEVELOPMENT unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945GM GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100328 2010Q1 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945GME x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945GME 20061017 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945GME GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945GME GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 945GME GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 965GM GEM 20090326 2009Q1 RC2 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 965GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 965GM GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI 965GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI G33 20061017 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI G33 GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI G33 GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI G41 GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI G41 GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI GMA500 20081116 - 5.0.1.0046 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI IGD GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI IGD GEM 20100330 DEVELOPMENT unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI IGD GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI IGDNG_D GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI Ironlake Desktop GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI Ironlake Mobile GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset 20080716 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20090712 2009Q2 RC3 x86/MMX... unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100328 2010Q1 unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT unsupported 0 Mesa +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MM... unsupported 0 Mesa +Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5964) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 unsupported 0 Mesa +VIA unsupported 0 VIA +VMware, Inc. Gallium 0.3 on SVGA3D; build: RELEASE; UNRECOGNIZED +VMware, Inc. Gallium 0.4 on i915 (chipset: 945GM) UNRECOGNIZED +VMware, Inc. Gallium 0.4 on llvmpipe UNRECOGNIZED +VMware, Inc. Gallium 0.4 on softpipe UNRECOGNIZED +X.Org Gallium 0.4 on AMD BARTS supported 3 AMD BARTS (HD 6800) +X.Org Gallium 0.4 on AMD CEDAR supported 2 AMD CEDAR (HD 5450) +X.Org Gallium 0.4 on AMD HEMLOCK supported 3 AMD HEMLOCK (HD 5970) +X.Org Gallium 0.4 on AMD JUNIPER supported 3 AMD JUNIPER (HD 5700) +X.Org Gallium 0.4 on AMD REDWOOD supported 3 AMD REDWOOD (HD 5500/5600) +X.Org Gallium 0.4 on AMD RS780 supported 0 AMD RS780 (HD 3200) +X.Org Gallium 0.4 on AMD RS880 supported 1 AMD RS880 (HD 4200) +X.Org Gallium 0.4 on AMD RV610 supported 1 AMD RV610 (HD 2400) +X.Org Gallium 0.4 on AMD RV620 supported 1 AMD RV620 (HD 3400) +X.Org Gallium 0.4 on AMD RV630 supported 2 AMD RV630 (HD 2600) +X.Org Gallium 0.4 on AMD RV635 supported 3 AMD RV635 (HD 3600) +X.Org Gallium 0.4 on AMD RV710 supported 1 AMD RV710 (HD 4300) +X.Org Gallium 0.4 on AMD RV730 supported 3 AMD RV730 (HD 4600) +X.Org Gallium 0.4 on AMD RV740 supported 3 AMD RV740 (HD 4700) +X.Org Gallium 0.4 on AMD RV770 supported 3 AMD RV770 (HD 4800) +X.Org R300 Project Gallium 0.4 on ATI R300 supported 1 ATI R300 (9700) +X.Org R300 Project Gallium 0.4 on ATI R580 supported 3 ATI R580 (X1900) +X.Org R300 Project Gallium 0.4 on ATI RC410 unsupported 0 ATI RC410 (Xpress 200) +X.Org R300 Project Gallium 0.4 on ATI RS482 unsupported 0 ATI RS48x (Xpress 200x) +X.Org R300 Project Gallium 0.4 on ATI RS600 unsupported 0 ATI RS600 (Xpress 3200) +X.Org R300 Project Gallium 0.4 on ATI RS690 supported 1 ATI R300 (9700) +X.Org R300 Project Gallium 0.4 on ATI RV350 supported 0 ATI RV350 (9600) +X.Org R300 Project Gallium 0.4 on ATI RV370 supported 0 ATI RV370 (X300) +X.Org R300 Project Gallium 0.4 on ATI RV410 supported 1 ATI RV410 (X700) +X.Org R300 Project Gallium 0.4 on ATI RV515 supported 1 ATI RV515 +X.Org R300 Project Gallium 0.4 on ATI RV530 supported 1 ATI RV530 +X.Org R300 Project Gallium 0.4 on ATI RV570 supported 3 ATI RV570 (X1900 GT/PRO) +X.Org R300 Project Gallium 0.4 on R420 supported 1 ATI R300 (9700) +X.Org R300 Project Gallium 0.4 on R580 supported 3 ATI R580 (X1900) +X.Org R300 Project Gallium 0.4 on RC410 unsupported 0 ATI RC410 (Xpress 200) +X.Org R300 Project Gallium 0.4 on RS480 unsupported 0 ATI RS48x (Xpress 200x) +X.Org R300 Project Gallium 0.4 on RS482 unsupported 0 ATI RS48x (Xpress 200x) +X.Org R300 Project Gallium 0.4 on RS600 unsupported 0 ATI RS600 (Xpress 3200) +X.Org R300 Project Gallium 0.4 on RS690 supported 1 ATI R300 (9700) +X.Org R300 Project Gallium 0.4 on RS740 supported 1 ATI R300 (9700) +X.Org R300 Project Gallium 0.4 on RV350 supported 0 ATI RV350 (9600) +X.Org R300 Project Gallium 0.4 on RV370 supported 0 ATI RV370 (X300) +X.Org R300 Project Gallium 0.4 on RV410 supported 1 ATI RV410 (X700) +X.Org R300 Project Gallium 0.4 on RV515 supported 1 ATI RV515 +X.Org R300 Project Gallium 0.4 on RV530 supported 1 ATI RV530 +XGI unsupported 0 XGI +nouveau Gallium 0.4 on NV34 UNRECOGNIZED +nouveau Gallium 0.4 on NV36 UNRECOGNIZED +nouveau Gallium 0.4 on NV46 UNRECOGNIZED +nouveau Gallium 0.4 on NV49 UNRECOGNIZED +nouveau Gallium 0.4 on NV4A UNRECOGNIZED +nouveau Gallium 0.4 on NV4B UNRECOGNIZED +nouveau Gallium 0.4 on NV4E UNRECOGNIZED +nouveau Gallium 0.4 on NV50 UNRECOGNIZED +nouveau Gallium 0.4 on NV84 UNRECOGNIZED +nouveau Gallium 0.4 on NV86 UNRECOGNIZED +nouveau Gallium 0.4 on NV92 UNRECOGNIZED +nouveau Gallium 0.4 on NV94 UNRECOGNIZED +nouveau Gallium 0.4 on NV96 UNRECOGNIZED +nouveau Gallium 0.4 on NV98 UNRECOGNIZED +nouveau Gallium 0.4 on NVA0 UNRECOGNIZED +nouveau Gallium 0.4 on NVA3 UNRECOGNIZED +nouveau Gallium 0.4 on NVA5 UNRECOGNIZED +nouveau Gallium 0.4 on NVA8 UNRECOGNIZED +nouveau Gallium 0.4 on NVAA UNRECOGNIZED +nouveau Gallium 0.4 on NVAC UNRECOGNIZED diff --git a/indra/newview/tests/gpus_seen.txt b/indra/newview/tests/gpus_seen.txt new file mode 100644 index 0000000000..c807f22b58 --- /dev/null +++ b/indra/newview/tests/gpus_seen.txt @@ -0,0 +1,1593 @@ +ATI +ATI 3D-Analyze +ATI ASUS A9xxx +ATI ASUS AH24xx +ATI ASUS AH26xx +ATI ASUS AH34xx +ATI ASUS AH36xx +ATI ASUS AH46xx +ATI ASUS AX3xx +ATI ASUS AX5xx +ATI ASUS AX8xx +ATI ASUS EAH38xx +ATI ASUS EAH43xx +ATI ASUS EAH45xx +ATI ASUS EAH48xx +ATI ASUS EAH57xx +ATI ASUS EAH58xx +ATI ASUS X1xxx +ATI All-in-Wonder 9xxx +ATI All-in-Wonder HD +ATI All-in-Wonder PCI-E +ATI All-in-Wonder X1800 +ATI All-in-Wonder X1900 +ATI All-in-Wonder X600 +ATI All-in-Wonder X800 +ATI Diamond X1xxx +ATI Display Adapter +ATI FireGL +ATI FireGL 5200 +ATI FireGL 5xxx +ATI FireMV +ATI Generic +ATI Hercules 9800 +ATI IGP 340M +ATI M52 +ATI M54 +ATI M56 +ATI M71 +ATI M72 +ATI M76 +ATI Mobility Radeon +ATI Mobility Radeon 7xxx +ATI Mobility Radeon 9600 +ATI Mobility Radeon 9700 +ATI Mobility Radeon 9800 +ATI Mobility Radeon HD 2300 +ATI Mobility Radeon HD 2400 +ATI Mobility Radeon HD 2600 +ATI Mobility Radeon HD 2700 +ATI Mobility Radeon HD 3400 +ATI Mobility Radeon HD 3600 +ATI Mobility Radeon HD 3800 +ATI Mobility Radeon HD 4200 +ATI Mobility Radeon HD 4300 +ATI Mobility Radeon HD 4500 +ATI Mobility Radeon HD 4600 +ATI Mobility Radeon HD 4800 +ATI Mobility Radeon HD 5400 +ATI Mobility Radeon HD 5600 +ATI Mobility Radeon X1xxx +ATI Mobility Radeon X2xxx +ATI Mobility Radeon X3xx +ATI Mobility Radeon X6xx +ATI Mobility Radeon X7xx +ATI Mobility Radeon Xxxx +ATI RV380 +ATI RV530 +ATI Radeon 2100 +ATI Radeon 3000 +ATI Radeon 3100 +ATI Radeon 7000 +ATI Radeon 7xxx +ATI Radeon 8xxx +ATI Radeon 9000 +ATI Radeon 9100 +ATI Radeon 9200 +ATI Radeon 9500 +ATI Radeon 9600 +ATI Radeon 9700 +ATI Radeon 9800 +ATI Radeon HD 2300 +ATI Radeon HD 2400 +ATI Radeon HD 2600 +ATI Radeon HD 2900 +ATI Radeon HD 3000 +ATI Radeon HD 3100 +ATI Radeon HD 3200 +ATI Radeon HD 3300 +ATI Radeon HD 3400 +ATI Radeon HD 3600 +ATI Radeon HD 3800 +ATI Radeon HD 4200 +ATI Radeon HD 4300 +ATI Radeon HD 4500 +ATI Radeon HD 4600 +ATI Radeon HD 4700 +ATI Radeon HD 4800 +ATI Radeon HD 5400 +ATI Radeon HD 5500 +ATI Radeon HD 5600 +ATI Radeon HD 5700 +ATI Radeon HD 5800 +ATI Radeon HD 5900 +ATI Radeon HD 6200 +ATI Radeon HD 6300 +ATI Radeon HD 6500 +ATI Radeon HD 6800 +ATI Radeon HD 6900 +ATI Radeon OpenGL +ATI Radeon RV250 +ATI Radeon RV600 +ATI Radeon RX9550 +ATI Radeon VE +ATI Radeon X1000 +ATI Radeon X1200 +ATI Radeon X1300 +ATI Radeon X13xx +ATI Radeon X1400 +ATI Radeon X1500 +ATI Radeon X1600 +ATI Radeon X16xx +ATI Radeon X1700 +ATI Radeon X1800 +ATI Radeon X1900 +ATI Radeon X19xx +ATI Radeon X1xxx +ATI Radeon X300 +ATI Radeon X500 +ATI Radeon X600 +ATI Radeon X700 +ATI Radeon X7xx +ATI Radeon X800 +ATI Radeon Xpress +ATI Rage 128 +ATI Technologies Inc. +ATI Technologies Inc. x86 +ATI Technologies Inc. x86/SSE2 +ATI Technologies Inc. (Vista) ATI Mobility Radeon HD 5730 +ATI Technologies Inc. 256MB ATI Radeon X1300PRO x86/SSE2 +ATI Technologies Inc. AMD 760G +ATI Technologies Inc. AMD 760G (Microsoft WDDM 1.1) +ATI Technologies Inc. AMD 780L +ATI Technologies Inc. AMD FirePro 2270 +ATI Technologies Inc. AMD M860G with ATI Mobility Radeon 4100 +ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4200 +ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4250 +ATI Technologies Inc. AMD RADEON HD 6450 +ATI Technologies Inc. AMD Radeon HD 6200 series Graphics +ATI Technologies Inc. AMD Radeon HD 6250 Graphics +ATI Technologies Inc. AMD Radeon HD 6300 series Graphics +ATI Technologies Inc. AMD Radeon HD 6300M Series +ATI Technologies Inc. AMD Radeon HD 6310 Graphics +ATI Technologies Inc. AMD Radeon HD 6310M +ATI Technologies Inc. AMD Radeon HD 6330M +ATI Technologies Inc. AMD Radeon HD 6350 +ATI Technologies Inc. AMD Radeon HD 6370M +ATI Technologies Inc. AMD Radeon HD 6400M Series +ATI Technologies Inc. AMD Radeon HD 6450 +ATI Technologies Inc. AMD Radeon HD 6470M +ATI Technologies Inc. AMD Radeon HD 6490M +ATI Technologies Inc. AMD Radeon HD 6500M/5600/5700 Series +ATI Technologies Inc. AMD Radeon HD 6530M +ATI Technologies Inc. AMD Radeon HD 6550M +ATI Technologies Inc. AMD Radeon HD 6570 +ATI Technologies Inc. AMD Radeon HD 6570M +ATI Technologies Inc. AMD Radeon HD 6570M/5700 Series +ATI Technologies Inc. AMD Radeon HD 6600M Series +ATI Technologies Inc. AMD Radeon HD 6650M +ATI Technologies Inc. AMD Radeon HD 6670 +ATI Technologies Inc. AMD Radeon HD 6700 Series +ATI Technologies Inc. AMD Radeon HD 6750 +ATI Technologies Inc. AMD Radeon HD 6750M +ATI Technologies Inc. AMD Radeon HD 6770 +ATI Technologies Inc. AMD Radeon HD 6800 Series +ATI Technologies Inc. AMD Radeon HD 6850M +ATI Technologies Inc. AMD Radeon HD 6870 +ATI Technologies Inc. AMD Radeon HD 6870M +ATI Technologies Inc. AMD Radeon HD 6900 Series +ATI Technologies Inc. AMD Radeon HD 6970M +ATI Technologies Inc. AMD Radeon HD 6990 +ATI Technologies Inc. AMD Radeon(TM) HD 6470M +ATI Technologies Inc. ASUS 5870 Eyefinity 6 +ATI Technologies Inc. ASUS AH2600 Series +ATI Technologies Inc. ASUS AH3450 Series +ATI Technologies Inc. ASUS AH3650 Series +ATI Technologies Inc. ASUS AH4650 Series +ATI Technologies Inc. ASUS ARES +ATI Technologies Inc. ASUS EAH2900 Series +ATI Technologies Inc. ASUS EAH3450 Series +ATI Technologies Inc. ASUS EAH3650 Series +ATI Technologies Inc. ASUS EAH4350 series +ATI Technologies Inc. ASUS EAH4550 series +ATI Technologies Inc. ASUS EAH4650 series +ATI Technologies Inc. ASUS EAH4670 series +ATI Technologies Inc. ASUS EAH4750 Series +ATI Technologies Inc. ASUS EAH4770 Series +ATI Technologies Inc. ASUS EAH4770 series +ATI Technologies Inc. ASUS EAH4850 series +ATI Technologies Inc. ASUS EAH5450 Series +ATI Technologies Inc. ASUS EAH5550 Series +ATI Technologies Inc. ASUS EAH5570 series +ATI Technologies Inc. ASUS EAH5670 Series +ATI Technologies Inc. ASUS EAH5750 Series +ATI Technologies Inc. ASUS EAH5770 Series +ATI Technologies Inc. ASUS EAH5830 Series +ATI Technologies Inc. ASUS EAH5850 Series +ATI Technologies Inc. ASUS EAH5870 Series +ATI Technologies Inc. ASUS EAH5970 Series +ATI Technologies Inc. ASUS EAH6850 Series +ATI Technologies Inc. ASUS EAH6870 Series +ATI Technologies Inc. ASUS EAH6950 Series +ATI Technologies Inc. ASUS EAH6970 Series +ATI Technologies Inc. ASUS EAHG4670 series +ATI Technologies Inc. ASUS Extreme AX600 Series +ATI Technologies Inc. ASUS Extreme AX600XT-TD +ATI Technologies Inc. ASUS X1300 Series x86/SSE2 +ATI Technologies Inc. ASUS X1550 Series +ATI Technologies Inc. ASUS X1950 Series x86/SSE2 +ATI Technologies Inc. ASUS X800 Series +ATI Technologies Inc. ASUS X850 Series +ATI Technologies Inc. ATI All-in-Wonder HD +ATI Technologies Inc. ATI FirePro 2260 +ATI Technologies Inc. ATI FirePro 2450 +ATI Technologies Inc. ATI FirePro M5800 +ATI Technologies Inc. ATI FirePro M7740 +ATI Technologies Inc. ATI FirePro M7820 +ATI Technologies Inc. ATI FirePro V3700 (FireGL) +ATI Technologies Inc. ATI FirePro V3800 +ATI Technologies Inc. ATI FirePro V4800 +ATI Technologies Inc. ATI FirePro V4800 (FireGL) +ATI Technologies Inc. ATI FirePro V5800 +ATI Technologies Inc. ATI FirePro V7800 +ATI Technologies Inc. ATI MOBILITY RADEON 9XXX x86/SSE2 +ATI Technologies Inc. ATI MOBILITY RADEON HD 3450 +ATI Technologies Inc. ATI MOBILITY RADEON X1600 +ATI Technologies Inc. ATI MOBILITY RADEON X2300 +ATI Technologies Inc. ATI MOBILITY RADEON X2300 HD x86/SSE2 +ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/SSE2 +ATI Technologies Inc. ATI MOBILITY RADEON X300 +ATI Technologies Inc. ATI MOBILITY RADEON X600 +ATI Technologies Inc. ATI MOBILITY RADEON XPRESS 200 +ATI Technologies Inc. ATI Mobility FireGL V5700 +ATI Technologies Inc. ATI Mobility Radeon 4100 +ATI Technologies Inc. ATI Mobility Radeon Graphics +ATI Technologies Inc. ATI Mobility Radeon HD 2300 +ATI Technologies Inc. ATI Mobility Radeon HD 2400 +ATI Technologies Inc. ATI Mobility Radeon HD 2400 XT +ATI Technologies Inc. ATI Mobility Radeon HD 2600 +ATI Technologies Inc. ATI Mobility Radeon HD 2600 XT +ATI Technologies Inc. ATI Mobility Radeon HD 2700 +ATI Technologies Inc. ATI Mobility Radeon HD 3400 Series +ATI Technologies Inc. ATI Mobility Radeon HD 3430 +ATI Technologies Inc. ATI Mobility Radeon HD 3450 +ATI Technologies Inc. ATI Mobility Radeon HD 3470 +ATI Technologies Inc. ATI Mobility Radeon HD 3470 Hybrid X2 +ATI Technologies Inc. ATI Mobility Radeon HD 3650 +ATI Technologies Inc. ATI Mobility Radeon HD 4200 +ATI Technologies Inc. ATI Mobility Radeon HD 4200 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4225 +ATI Technologies Inc. ATI Mobility Radeon HD 4225 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4250 +ATI Technologies Inc. ATI Mobility Radeon HD 4250 Graphics +ATI Technologies Inc. ATI Mobility Radeon HD 4270 +ATI Technologies Inc. ATI Mobility Radeon HD 4300 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4300/4500 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4330 +ATI Technologies Inc. ATI Mobility Radeon HD 4330 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4350 +ATI Technologies Inc. ATI Mobility Radeon HD 4350 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4500/5100 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4530 +ATI Technologies Inc. ATI Mobility Radeon HD 4530 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4550 +ATI Technologies Inc. ATI Mobility Radeon HD 4570 +ATI Technologies Inc. ATI Mobility Radeon HD 4600 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4650 +ATI Technologies Inc. ATI Mobility Radeon HD 4650 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4670 +ATI Technologies Inc. ATI Mobility Radeon HD 4830 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4850 +ATI Technologies Inc. ATI Mobility Radeon HD 4870 +ATI Technologies Inc. ATI Mobility Radeon HD 5000 +ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series +ATI Technologies Inc. ATI Mobility Radeon HD 5145 +ATI Technologies Inc. ATI Mobility Radeon HD 5165 +ATI Technologies Inc. ATI Mobility Radeon HD 530v +ATI Technologies Inc. ATI Mobility Radeon HD 5400 Series +ATI Technologies Inc. ATI Mobility Radeon HD 540v +ATI Technologies Inc. ATI Mobility Radeon HD 5430 +ATI Technologies Inc. ATI Mobility Radeon HD 5450 +ATI Technologies Inc. ATI Mobility Radeon HD 5450 Series +ATI Technologies Inc. ATI Mobility Radeon HD 545v +ATI Technologies Inc. ATI Mobility Radeon HD 5470 +ATI Technologies Inc. ATI Mobility Radeon HD 550v +ATI Technologies Inc. ATI Mobility Radeon HD 5600/5700 Series +ATI Technologies Inc. ATI Mobility Radeon HD 560v +ATI Technologies Inc. ATI Mobility Radeon HD 5650 +ATI Technologies Inc. ATI Mobility Radeon HD 5700 Series +ATI Technologies Inc. ATI Mobility Radeon HD 5730 +ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series +ATI Technologies Inc. ATI Mobility Radeon HD 5850 +ATI Technologies Inc. ATI Mobility Radeon HD 5870 +ATI Technologies Inc. ATI Mobility Radeon HD 6300 series +ATI Technologies Inc. ATI Mobility Radeon HD 6370 +ATI Technologies Inc. ATI Mobility Radeon HD 6470M +ATI Technologies Inc. ATI Mobility Radeon HD 6550 +ATI Technologies Inc. ATI Mobility Radeon HD 6570 +ATI Technologies Inc. ATI Mobility Radeon X1300 +ATI Technologies Inc. ATI Mobility Radeon X1300 x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. ATI Mobility Radeon X1300 x86/SSE2 +ATI Technologies Inc. ATI Mobility Radeon X1350 +ATI Technologies Inc. ATI Mobility Radeon X1350 x86/SSE2 +ATI Technologies Inc. ATI Mobility Radeon X1400 +ATI Technologies Inc. ATI Mobility Radeon X1400 x86/SSE2 +ATI Technologies Inc. ATI Mobility Radeon X1600 +ATI Technologies Inc. ATI Mobility Radeon X1600 x86/SSE2 +ATI Technologies Inc. ATI Mobility Radeon X1700 x86/SSE2 +ATI Technologies Inc. ATI Mobility Radeon X2300 +ATI Technologies Inc. ATI Mobility Radeon X2300 (Omega 3.8.442) +ATI Technologies Inc. ATI Mobility Radeon X2300 x86 +ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2 +ATI Technologies Inc. ATI Mobility Radeon X2500 +ATI Technologies Inc. ATI Mobility Radeon X2500 x86/SSE2 +ATI Technologies Inc. ATI Mobility Radeon. HD 530v +ATI Technologies Inc. ATI Mobility Radeon. HD 5470 +ATI Technologies Inc. ATI RADEON HD 3200 T25XX by CAMILO +ATI Technologies Inc. ATI RADEON XPRESS 1100 +ATI Technologies Inc. ATI RADEON XPRESS 200 Series +ATI Technologies Inc. ATI RADEON XPRESS 200 Series x86/SSE2 +ATI Technologies Inc. ATI RADEON XPRESS 200M SERIES +ATI Technologies Inc. ATI Radeon +ATI Technologies Inc. ATI Radeon 2100 +ATI Technologies Inc. ATI Radeon 2100 (Microsoft - WDDM) +ATI Technologies Inc. ATI Radeon 2100 Graphics +ATI Technologies Inc. ATI Radeon 3000 +ATI Technologies Inc. ATI Radeon 3000 Graphics +ATI Technologies Inc. ATI Radeon 3100 Graphics +ATI Technologies Inc. ATI Radeon 5xxx series +ATI Technologies Inc. ATI Radeon 9550 / X1050 Series +ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/MMX/3DNow!/SSE +ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/SSE2 +ATI Technologies Inc. ATI Radeon 9550 / X1050 Series(Microsoft - WDDM) +ATI Technologies Inc. ATI Radeon 9600 / X1050 Series +ATI Technologies Inc. ATI Radeon 9600/9550/X1050 Series +ATI Technologies Inc. ATI Radeon BA Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon BB Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon Cedar PRO Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon Cypress PRO Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon Graphics Processor +ATI Technologies Inc. ATI Radeon HD 2200 Graphics +ATI Technologies Inc. ATI Radeon HD 2350 +ATI Technologies Inc. ATI Radeon HD 2400 +ATI Technologies Inc. ATI Radeon HD 2400 OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 2400 PRO +ATI Technologies Inc. ATI Radeon HD 2400 PRO AGP +ATI Technologies Inc. ATI Radeon HD 2400 Pro +ATI Technologies Inc. ATI Radeon HD 2400 Series +ATI Technologies Inc. ATI Radeon HD 2400 XT +ATI Technologies Inc. ATI Radeon HD 2400 XT OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 2600 OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 2600 PRO +ATI Technologies Inc. ATI Radeon HD 2600 PRO OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 2600 Pro +ATI Technologies Inc. ATI Radeon HD 2600 Series +ATI Technologies Inc. ATI Radeon HD 2600 XT +ATI Technologies Inc. ATI Radeon HD 2900 GT +ATI Technologies Inc. ATI Radeon HD 2900 XT +ATI Technologies Inc. ATI Radeon HD 3200 Graphics +ATI Technologies Inc. ATI Radeon HD 3300 Graphics +ATI Technologies Inc. ATI Radeon HD 3400 Series +ATI Technologies Inc. ATI Radeon HD 3450 +ATI Technologies Inc. ATI Radeon HD 3450 - Dell Optiplex +ATI Technologies Inc. ATI Radeon HD 3470 +ATI Technologies Inc. ATI Radeon HD 3470 - Dell Optiplex +ATI Technologies Inc. ATI Radeon HD 3550 +ATI Technologies Inc. ATI Radeon HD 3600 Series +ATI Technologies Inc. ATI Radeon HD 3650 +ATI Technologies Inc. ATI Radeon HD 3650 AGP +ATI Technologies Inc. ATI Radeon HD 3730 +ATI Technologies Inc. ATI Radeon HD 3800 Series +ATI Technologies Inc. ATI Radeon HD 3850 +ATI Technologies Inc. ATI Radeon HD 3850 AGP +ATI Technologies Inc. ATI Radeon HD 3870 +ATI Technologies Inc. ATI Radeon HD 3870 X2 +ATI Technologies Inc. ATI Radeon HD 4200 +ATI Technologies Inc. ATI Radeon HD 4250 +ATI Technologies Inc. ATI Radeon HD 4250 Graphics +ATI Technologies Inc. ATI Radeon HD 4270 +ATI Technologies Inc. ATI Radeon HD 4290 +ATI Technologies Inc. ATI Radeon HD 4300 Series +ATI Technologies Inc. ATI Radeon HD 4300/4500 Series +ATI Technologies Inc. ATI Radeon HD 4350 +ATI Technologies Inc. ATI Radeon HD 4350 (Microsoft WDDM 1.1) +ATI Technologies Inc. ATI Radeon HD 4450 +ATI Technologies Inc. ATI Radeon HD 4500 Series +ATI Technologies Inc. ATI Radeon HD 4550 +ATI Technologies Inc. ATI Radeon HD 4600 Series +ATI Technologies Inc. ATI Radeon HD 4650 +ATI Technologies Inc. ATI Radeon HD 4670 +ATI Technologies Inc. ATI Radeon HD 4670 OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 4700 Series +ATI Technologies Inc. ATI Radeon HD 4720 +ATI Technologies Inc. ATI Radeon HD 4730 +ATI Technologies Inc. ATI Radeon HD 4730 Series +ATI Technologies Inc. ATI Radeon HD 4750 +ATI Technologies Inc. ATI Radeon HD 4770 +ATI Technologies Inc. ATI Radeon HD 4800 Series +ATI Technologies Inc. ATI Radeon HD 4850 +ATI Technologies Inc. ATI Radeon HD 4850 OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 4850 Series +ATI Technologies Inc. ATI Radeon HD 4870 +ATI Technologies Inc. ATI Radeon HD 4870 OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 4870 X2 +ATI Technologies Inc. ATI Radeon HD 5400 Series +ATI Technologies Inc. ATI Radeon HD 5450 +ATI Technologies Inc. ATI Radeon HD 5500 Series +ATI Technologies Inc. ATI Radeon HD 5570 +ATI Technologies Inc. ATI Radeon HD 5600 Series +ATI Technologies Inc. ATI Radeon HD 5630 +ATI Technologies Inc. ATI Radeon HD 5670 +ATI Technologies Inc. ATI Radeon HD 5670 OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 5700 Series +ATI Technologies Inc. ATI Radeon HD 5750 +ATI Technologies Inc. ATI Radeon HD 5750 OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 5770 +ATI Technologies Inc. ATI Radeon HD 5770 OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 5800 Series +ATI Technologies Inc. ATI Radeon HD 5850 +ATI Technologies Inc. ATI Radeon HD 5870 +ATI Technologies Inc. ATI Radeon HD 5870 OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 5900 Series +ATI Technologies Inc. ATI Radeon HD 5970 +ATI Technologies Inc. ATI Radeon HD 6230 +ATI Technologies Inc. ATI Radeon HD 6250 +ATI Technologies Inc. ATI Radeon HD 6350 +ATI Technologies Inc. ATI Radeon HD 6390 +ATI Technologies Inc. ATI Radeon HD 6490M OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 6510 +ATI Technologies Inc. ATI Radeon HD 6570M +ATI Technologies Inc. ATI Radeon HD 6750 +ATI Technologies Inc. ATI Radeon HD 6750M OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 6770 +ATI Technologies Inc. ATI Radeon HD 6770M OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 6800 Series +ATI Technologies Inc. ATI Radeon HD 6970M OpenGL Engine +ATI Technologies Inc. ATI Radeon HD3750 +ATI Technologies Inc. ATI Radeon HD4300/HD4500 series +ATI Technologies Inc. ATI Radeon HD4670 +ATI Technologies Inc. ATI Radeon Juniper LE Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon RV710 Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon RV730 Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon RV770 Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon RV790 Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon Redwood PRO Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon Redwood XT Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon Whistler PRO/LP Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon X1050 +ATI Technologies Inc. ATI Radeon X1050 Series +ATI Technologies Inc. ATI Radeon X1200 +ATI Technologies Inc. ATI Radeon X1200 Series +ATI Technologies Inc. ATI Radeon X1200 Series x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. ATI Radeon X1250 +ATI Technologies Inc. ATI Radeon X1250 x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. ATI Radeon X1270 +ATI Technologies Inc. ATI Radeon X1270 x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. ATI Radeon X1300/X1550 Series +ATI Technologies Inc. ATI Radeon X1550 Series +ATI Technologies Inc. ATI Radeon X1600 OpenGL Engine +ATI Technologies Inc. ATI Radeon X1900 OpenGL Engine +ATI Technologies Inc. ATI Radeon X1950 GT +ATI Technologies Inc. ATI Radeon X300/X550/X1050 Series +ATI Technologies Inc. ATI Radeon Xpress 1100 +ATI Technologies Inc. ATI Radeon Xpress 1150 +ATI Technologies Inc. ATI Radeon Xpress 1150 x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. ATI Radeon Xpress 1200 +ATI Technologies Inc. ATI Radeon Xpress 1200 Series +ATI Technologies Inc. ATI Radeon Xpress 1200 Series x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. ATI Radeon Xpress 1200 x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. ATI Radeon Xpress 1250 +ATI Technologies Inc. ATI Radeon Xpress 1250 x86/SSE2 +ATI Technologies Inc. ATI Radeon Xpress Series +ATI Technologies Inc. ATI Yamaha HD 9000 +ATI Technologies Inc. ATi RS880M +ATI Technologies Inc. Carte graphique VGA standard +ATI Technologies Inc. Diamond Radeon X1550 Series +ATI Technologies Inc. EG JUNIPER +ATI Technologies Inc. EG PARK +ATI Technologies Inc. FireGL V3100 Pentium 4 (SSE2) +ATI Technologies Inc. FireMV 2400 PCI DDR x86 +ATI Technologies Inc. FireMV 2400 PCI DDR x86/SSE2 +ATI Technologies Inc. GeCube Radeon X1550 +ATI Technologies Inc. Geforce 9500 GT +ATI Technologies Inc. Geforce 9500GT +ATI Technologies Inc. Geforce 9800 GT +ATI Technologies Inc. HD3730 +ATI Technologies Inc. HIGHTECH EXCALIBUR RADEON 9550SE Series +ATI Technologies Inc. HIGHTECH EXCALIBUR X700 PRO +ATI Technologies Inc. M21 x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. M76M +ATI Technologies Inc. MOBILITY RADEON 7500 DDR x86/SSE2 +ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86/SSE2 +ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86/SSE2 +ATI Technologies Inc. MOBILITY RADEON 9600 x86/SSE2 +ATI Technologies Inc. MOBILITY RADEON 9700 x86/SSE2 +ATI Technologies Inc. MOBILITY RADEON X300 x86/SSE2 +ATI Technologies Inc. MOBILITY RADEON X600 x86/SSE2 +ATI Technologies Inc. MOBILITY RADEON X700 SE x86 +ATI Technologies Inc. MOBILITY RADEON X700 x86/SSE2 +ATI Technologies Inc. MSI RX9550SE +ATI Technologies Inc. Mobility Radeon X2300 HD +ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2 +ATI Technologies Inc. RADEON 7000 DDR x86/MMX/3DNow!/SSE +ATI Technologies Inc. RADEON 7000 DDR x86/SSE2 +ATI Technologies Inc. RADEON 7500 DDR x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON 7500 DDR x86/SSE2 +ATI Technologies Inc. RADEON 9100 IGP DDR x86/SSE2 +ATI Technologies Inc. RADEON 9200 DDR x86/MMX/3DNow!/SSE +ATI Technologies Inc. RADEON 9200 DDR x86/SSE2 +ATI Technologies Inc. RADEON 9200 PRO DDR x86/MMX/3DNow!/SSE +ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE +ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE +ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE2 +ATI Technologies Inc. RADEON 9200SE DDR x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON 9200SE DDR x86/SSE2 +ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE +ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/SSE2 +ATI Technologies Inc. RADEON 9500 +ATI Technologies Inc. RADEON 9550 x86/SSE2 +ATI Technologies Inc. RADEON 9600 SERIES +ATI Technologies Inc. RADEON 9600 SERIES x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON 9600 TX x86/SSE2 +ATI Technologies Inc. RADEON 9600 x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON 9600 x86/SSE2 +ATI Technologies Inc. RADEON 9700 PRO x86/MMX/3DNow!/SSE +ATI Technologies Inc. RADEON 9800 PRO +ATI Technologies Inc. RADEON 9800 x86/SSE2 +ATI Technologies Inc. RADEON IGP 340M DDR x86/SSE2 +ATI Technologies Inc. RADEON X300 Series x86/SSE2 +ATI Technologies Inc. RADEON X300 x86/SSE2 +ATI Technologies Inc. RADEON X300/X550 Series x86/SSE2 +ATI Technologies Inc. RADEON X550 x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON X550 x86/SSE2 +ATI Technologies Inc. RADEON X600 Series +ATI Technologies Inc. RADEON X600 x86/SSE2 +ATI Technologies Inc. RADEON X700 PRO x86/SSE2 +ATI Technologies Inc. RADEON X800 SE x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON X800GT +ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/SSE2 +ATI Technologies Inc. RADEON XPRESS 200 Series x86/SSE2 +ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/SSE2 +ATI Technologies Inc. RADEON XPRESS 200M Series x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON XPRESS 200M Series x86/SSE2 +ATI Technologies Inc. RADEON XPRESS Series x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON XPRESS Series x86/SSE2 +ATI Technologies Inc. RS740 +ATI Technologies Inc. RS780C +ATI Technologies Inc. RS780M +ATI Technologies Inc. RS880 +ATI Technologies Inc. RV410 Pro x86/SSE2 +ATI Technologies Inc. RV790 +ATI Technologies Inc. Radeon (TM) HD 6470M +ATI Technologies Inc. Radeon (TM) HD 6490M +ATI Technologies Inc. Radeon (TM) HD 6770M +ATI Technologies Inc. Radeon 7000 DDR x86/SSE2 +ATI Technologies Inc. Radeon 7000 SDR x86/SSE2 +ATI Technologies Inc. Radeon 7500 DDR x86/SSE2 +ATI Technologies Inc. Radeon 9000 DDR x86/SSE2 +ATI Technologies Inc. Radeon DDR x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. Radeon DDR x86/SSE +ATI Technologies Inc. Radeon DDR x86/SSE2 +ATI Technologies Inc. Radeon HD 6310 +ATI Technologies Inc. Radeon HD 6800 Series +ATI Technologies Inc. Radeon SDR x86/SSE2 +ATI Technologies Inc. Radeon X1300 Series +ATI Technologies Inc. Radeon X1300 Series x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. Radeon X1300 Series x86/SSE2 +ATI Technologies Inc. Radeon X1300/X1550 Series +ATI Technologies Inc. Radeon X1300/X1550 Series x86/SSE2 +ATI Technologies Inc. Radeon X1550 64-bit (Microsoft - WDDM) +ATI Technologies Inc. Radeon X1550 Series +ATI Technologies Inc. Radeon X1550 Series x86/SSE2 +ATI Technologies Inc. Radeon X1600 +ATI Technologies Inc. Radeon X1600 Pro / X1300XT x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. Radeon X1600 Series x86/SSE2 +ATI Technologies Inc. Radeon X1600/X1650 Series +ATI Technologies Inc. Radeon X1650 Series +ATI Technologies Inc. Radeon X1650 Series x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. Radeon X1650 Series x86/SSE2 +ATI Technologies Inc. Radeon X1900 Series x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. Radeon X1950 Pro +ATI Technologies Inc. Radeon X1950 Pro x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. Radeon X1950 Series +ATI Technologies Inc. Radeon X1950 Series (Microsoft - WDDM) +ATI Technologies Inc. Radeon X300/X550/X1050 Series +ATI Technologies Inc. Radeon X550/X700 Series +ATI Technologies Inc. Radeon X550XTX x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. SAPPHIRE RADEON X300SE +ATI Technologies Inc. SAPPHIRE RADEON X300SE x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. SAPPHIRE RADEON X300SE x86/SSE2 +ATI Technologies Inc. SAPPHIRE Radeon X1550 Series +ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. Sapphire Radeon HD 3730 +ATI Technologies Inc. Sapphire Radeon HD 3750 +ATI Technologies Inc. Standard VGA Graphics Adapter +ATI Technologies Inc. Tul, RADEON X600 PRO +ATI Technologies Inc. Tul, RADEON X600 PRO x86/SSE2 +ATI Technologies Inc. Tul, RADEON X700 PRO +ATI Technologies Inc. Tul, RADEON X700 PRO x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. VisionTek Radeon 4350 +ATI Technologies Inc. VisionTek Radeon X1550 Series +ATI Technologies Inc. WRESTLER 9802 +ATI Technologies Inc. WRESTLER 9803 +ATI Technologies Inc. XFX Radeon HD 4570 +ATI Technologies Inc. Yamaha ATI HD 9000da/s +ATI Technologies Inc. Yamaha ATI HD 9000da/s 2048 +Advanced Micro Devices, Inc. Mesa DRI R600 (RS780 9612) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RS880 9710) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RS880 9712) 20090101 TCL +Advanced Micro Devices, Inc. Mesa DRI R600 (RV610 94C1) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV610 94C9) 20090101 x86/MMX/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C4) 20090101 x86/MMX/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV635 9596) 20090101 x86/MMX+/3DNow!+/SSE TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV670 9505) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV710 9552) 20090101 x86/MMX/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9498) 20090101 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV770 9440) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RV770 9442) 20090101 x86/MMX/SSE2 TCL DRI2 +Alex Mohr GL Hijacker! +Apple Software Renderer +DRI R300 Project Mesa DRI R300 (RS400 5954) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 +DRI R300 Project Mesa DRI R300 (RS400 5975) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 +DRI R300 Project Mesa DRI R300 (RS400 5A62) 20090101 x86/MMX/SSE2 NO-TCL DRI2 +DRI R300 Project Mesa DRI R300 (RS600 7941) 20090101 x86/MMX/SSE2 NO-TCL +DRI R300 Project Mesa DRI R300 (RS690 791F) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 +DRI R300 Project Mesa DRI R300 (RV350 4151) 20090101 AGP 4x x86/MMX+/3DNow!+/SSE TCL +DRI R300 Project Mesa DRI R300 (RV350 4153) 20090101 AGP 8x x86/MMX+/3DNow!+/SSE TCL +DRI R300 Project Mesa DRI R300 (RV380 3150) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 +DRI R300 Project Mesa DRI R300 (RV380 3150) 20090101 x86/MMX/SSE2 TCL DRI2 +DRI R300 Project Mesa DRI R300 (RV380 5B60) 20090101 x86/MMX/SSE2 TCL DRI2 +DRI R300 Project Mesa DRI R300 (RV380 5B62) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 +DRI R300 Project Mesa DRI R300 (RV515 7145) 20090101 x86/MMX/SSE2 TCL DRI2 +DRI R300 Project Mesa DRI R300 (RV515 7146) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 +DRI R300 Project Mesa DRI R300 (RV515 7146) 20090101 x86/MMX/SSE2 TCL DRI2 +DRI R300 Project Mesa DRI R300 (RV515 7149) 20090101 x86/MMX/SSE2 TCL DRI2 +DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL +DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL DRI2 +DRI R300 Project Mesa DRI R300 (RV530 71C4) 20090101 x86/MMX/SSE2 TCL DRI2 +GPU_CLASS_UNKNOWN +Humper Chromium +Intel +Intel HD Graphics Family +Intel 3D-Analyze v2.2 - http://www.tommti-systems.com +Intel 3D-Analyze v2.3 - http://www.tommti-systems.com +Intel 4 Series Internal Chipset +Intel 830M +Intel 845G +Intel 855GM +Intel 865G +Intel 915G +Intel 915GM +Intel 945G +Intel 945GM +Intel 950 +Intel 965 +Intel B43 Express Chipset +Intel Bear Lake +Intel Broadwater +Intel Brookdale +Intel Cantiga +Intel Eaglelake +Intel Familia Mobile 45 Express Chipset (Microsoft Corporation - WDDM 1.1) +Intel G33 +Intel G41 +Intel G41 Express Chipset +Intel G45 +Intel G45/G43 Express Chipset +Intel Graphics Media Accelerator HD +Intel HD Graphics +Intel HD Graphics 100 +Intel HD Graphics 200 +Intel HD Graphics 200 BR-1101-00SH +Intel HD Graphics 200 BR-1101-00SJ +Intel HD Graphics 200 BR-1101-00SK +Intel HD Graphics 200 BR-1101-01M5 +Intel HD Graphics 200 BR-1101-01M6 +Intel HD Graphics BR-1004-01Y1 +Intel HD Graphics BR-1006-0364 +Intel HD Graphics BR-1006-0365 +Intel HD Graphics BR-1006-0366 +Intel HD Graphics BR-1007-02G4 +Intel HD Graphics BR-1101-04SY +Intel HD Graphics BR-1101-04SZ +Intel HD Graphics BR-1101-04T0 +Intel HD Graphics BR-1101-04T9 +Intel HD Graphics Family +Intel HD Graphics Family BR-1012-00Y8 +Intel HD Graphics Family BR-1012-00YF +Intel HD Graphics Family BR-1012-00ZD +Intel HD Graphics Family BR-1102-00ML +Intel Inc. Intel GMA 900 OpenGL Engine +Intel Inc. Intel GMA 950 OpenGL Engine +Intel Inc. Intel GMA X3100 OpenGL Engine +Intel Inc. Intel HD Graphics 3000 OpenGL Engine +Intel Inc. Intel HD Graphics OpenGL Engine +Intel Inc. Intel HD xxxx OpenGL Engine +Intel Intel 845G +Intel Intel 855GM +Intel Intel 865G +Intel Intel 915G +Intel Intel 915GM +Intel Intel 945G +Intel Intel 945GM +Intel Intel 965/963 Graphics Media Accelerator +Intel Intel Bear Lake B +Intel Intel Broadwater G +Intel Intel Brookdale-G +Intel Intel Calistoga +Intel Intel Cantiga +Intel Intel Eaglelake +Intel Intel Grantsdale-G +Intel Intel HD Graphics 3000 +Intel Intel Lakeport +Intel Intel Montara-GM +Intel Intel Pineview Platform +Intel Intel Springdale-G +Intel Mobile - famiglia Express Chipset 45 (Microsoft Corporation - WDDM 1.1) +Intel Mobile 4 Series +Intel Mobile 4 Series Express Chipset Family +Intel Mobile 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1) +Intel Mobile HD Graphics +Intel Mobile SandyBridge HD Graphics +Intel Montara +Intel Pineview +Intel Q45/Q43 Express Chipset +Intel Royal BNA Driver +Intel SandyBridge HD Graphics +Intel SandyBridge HD Graphics BR-1006-00V8 +Intel Springdale +Intel X3100 +Intergraph wcgdrv 06.05.06.18 +Intergraph wcgdrv 06.06.00.35 +LegendgrafiX Mobile 945 Express C/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://LegendgrafiX.tk +LegendgrafiX NVIDIA GeForce GT 430/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://LegendgrafiX.tk +Linden Lab Headless +Matrox +Mesa +Mesa Project Software Rasterizer +NVIDIA /PCI/SSE2 +NVIDIA /PCI/SSE2/3DNOW! +NVIDIA 205 +NVIDIA 210 +NVIDIA 310 +NVIDIA 310M +NVIDIA 315 +NVIDIA 315M +NVIDIA 320M +NVIDIA C51 +NVIDIA D10M2-20/PCI/SSE2 +NVIDIA D10P1-25/PCI/SSE2 +NVIDIA D10P1-30/PCI/SSE2 +NVIDIA D10P2-50/PCI/SSE2 +NVIDIA D11M2-30/PCI/SSE2 +NVIDIA D12-P1-35/PCI/SSE2 +NVIDIA D12U-15/PCI/SSE2 +NVIDIA D13M1-40/PCI/SSE2 +NVIDIA D13P1-40/PCI/SSE2 +NVIDIA D13U-10/PCI/SSE2 +NVIDIA D13U/PCI/SSE2 +NVIDIA D9M +NVIDIA D9M-20/PCI/SSE2 +NVIDIA Entry Graphics/PCI/SSE2 +NVIDIA Entry Graphics/PCI/SSE2/3DNOW! +NVIDIA G 102M +NVIDIA G 103M +NVIDIA G 105M +NVIDIA G 110M +NVIDIA G100 +NVIDIA G102M +NVIDIA G103M +NVIDIA G105M +NVIDIA G210 +NVIDIA G210M +NVIDIA G70/PCI/SSE2 +NVIDIA G72 +NVIDIA G73 +NVIDIA G84 +NVIDIA G86 +NVIDIA G92 +NVIDIA G92-200/PCI/SSE2 +NVIDIA G94 +NVIDIA G96/PCI/SSE2 +NVIDIA G98/PCI/SSE2 +NVIDIA GT 120 +NVIDIA GT 130 +NVIDIA GT 130M +NVIDIA GT 140 +NVIDIA GT 150 +NVIDIA GT 160M +NVIDIA GT 220 +NVIDIA GT 220/PCI/SSE2 +NVIDIA GT 220/PCI/SSE2/3DNOW! +NVIDIA GT 230 +NVIDIA GT 230M +NVIDIA GT 240 +NVIDIA GT 240M +NVIDIA GT 250M +NVIDIA GT 260M +NVIDIA GT 320 +NVIDIA GT 320M +NVIDIA GT 330 +NVIDIA GT 330M +NVIDIA GT 340 +NVIDIA GT 420 +NVIDIA GT 430 +NVIDIA GT 440 +NVIDIA GT 450 +NVIDIA GT 520 +NVIDIA GT 540 +NVIDIA GT 540M +NVIDIA GT-120 +NVIDIA GT200/PCI/SSE2 +NVIDIA GTS 150 +NVIDIA GTS 240 +NVIDIA GTS 250 +NVIDIA GTS 350M +NVIDIA GTS 360 +NVIDIA GTS 360M +NVIDIA GTS 450 +NVIDIA GTX 260 +NVIDIA GTX 260M +NVIDIA GTX 270 +NVIDIA GTX 280 +NVIDIA GTX 285 +NVIDIA GTX 290 +NVIDIA GTX 460 +NVIDIA GTX 460M +NVIDIA GTX 465 +NVIDIA GTX 470 +NVIDIA GTX 470M +NVIDIA GTX 480 +NVIDIA GTX 480M +NVIDIA GTX 550 Ti +NVIDIA GTX 560 +NVIDIA GTX 560 Ti +NVIDIA GTX 570 +NVIDIA GTX 580 +NVIDIA GTX 590 +NVIDIA GeForce +NVIDIA GeForce 2 +NVIDIA GeForce 205/PCI/SSE2 +NVIDIA GeForce 210 +NVIDIA GeForce 210/PCI/SSE2 +NVIDIA GeForce 210/PCI/SSE2/3DNOW! +NVIDIA GeForce 3 +NVIDIA GeForce 305M/PCI/SSE2 +NVIDIA GeForce 310/PCI/SSE2 +NVIDIA GeForce 310/PCI/SSE2/3DNOW! +NVIDIA GeForce 310M/PCI/SSE2 +NVIDIA GeForce 315/PCI/SSE2 +NVIDIA GeForce 315/PCI/SSE2/3DNOW! +NVIDIA GeForce 315M/PCI/SSE2 +NVIDIA GeForce 320M/PCI/SSE2 +NVIDIA GeForce 4 Go +NVIDIA GeForce 4 MX +NVIDIA GeForce 4 Ti +NVIDIA GeForce 405/PCI/SSE2 +NVIDIA GeForce 6100 +NVIDIA GeForce 6100 nForce 400/PCI/SSE2/3DNOW! +NVIDIA GeForce 6100 nForce 405/PCI/SSE2 +NVIDIA GeForce 6100 nForce 405/PCI/SSE2/3DNOW! +NVIDIA GeForce 6100 nForce 420/PCI/SSE2/3DNOW! +NVIDIA GeForce 6100 nForce 430/PCI/SSE2/3DNOW! +NVIDIA GeForce 6100/PCI/SSE2/3DNOW! +NVIDIA GeForce 6150 LE/PCI/SSE2/3DNOW! +NVIDIA GeForce 6150/PCI/SSE2 +NVIDIA GeForce 6150/PCI/SSE2/3DNOW! +NVIDIA GeForce 6150SE nForce 430/PCI/SSE2 +NVIDIA GeForce 6150SE nForce 430/PCI/SSE2/3DNOW! +NVIDIA GeForce 6150SE/PCI/SSE2/3DNOW! +NVIDIA GeForce 6200 +NVIDIA GeForce 6200 A-LE/AGP/SSE/3DNOW! +NVIDIA GeForce 6200 A-LE/AGP/SSE2 +NVIDIA GeForce 6200 A-LE/AGP/SSE2/3DNOW! +NVIDIA GeForce 6200 LE/PCI/SSE2 +NVIDIA GeForce 6200 LE/PCI/SSE2/3DNOW! +NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2 +NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2/3DNOW! +NVIDIA GeForce 6200/AGP/SSE/3DNOW! +NVIDIA GeForce 6200/AGP/SSE2 +NVIDIA GeForce 6200/AGP/SSE2/3DNOW! +NVIDIA GeForce 6200/PCI/SSE/3DNOW! +NVIDIA GeForce 6200/PCI/SSE2 +NVIDIA GeForce 6200/PCI/SSE2/3DNOW! +NVIDIA GeForce 6200SE TurboCache(TM)/PCI/SSE2/3DNOW! +NVIDIA GeForce 6500 +NVIDIA GeForce 6500/PCI/SSE2 +NVIDIA GeForce 6600 +NVIDIA GeForce 6600 GT/AGP/SSE/3DNOW! +NVIDIA GeForce 6600 GT/AGP/SSE2 +NVIDIA GeForce 6600 GT/PCI/SSE/3DNOW! +NVIDIA GeForce 6600 GT/PCI/SSE2 +NVIDIA GeForce 6600 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 6600 LE/PCI/SSE2 +NVIDIA GeForce 6600/AGP/SSE/3DNOW! +NVIDIA GeForce 6600/AGP/SSE2 +NVIDIA GeForce 6600/AGP/SSE2/3DNOW! +NVIDIA GeForce 6600/PCI/SSE2 +NVIDIA GeForce 6600/PCI/SSE2/3DNOW! +NVIDIA GeForce 6700 +NVIDIA GeForce 6800 +NVIDIA GeForce 6800 GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 6800 GT/AGP/SSE2 +NVIDIA GeForce 6800 GT/PCI/SSE2 +NVIDIA GeForce 6800 XT/AGP/SSE2 +NVIDIA GeForce 6800 XT/PCI/SSE2 +NVIDIA GeForce 6800/PCI/SSE2 +NVIDIA GeForce 6800/PCI/SSE2/3DNOW! +NVIDIA GeForce 7000 +NVIDIA GeForce 7000M +NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2 +NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2/3DNOW! +NVIDIA GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2/3DNOW! +NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2 +NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2/3DNOW! +NVIDIA GeForce 7050 / NVIDIA nForce 610i/PCI/SSE2 +NVIDIA GeForce 7050 / NVIDIA nForce 620i/PCI/SSE2 +NVIDIA GeForce 7050 / nForce 610i/PCI/SSE2 +NVIDIA GeForce 7050 / nForce 620i/PCI/SSE2 +NVIDIA GeForce 7050 PV / NVIDIA nForce 630a/PCI/SSE2/3DNOW! +NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2 +NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2/3DNOW! +NVIDIA GeForce 7050 SE / NVIDIA nForce 630a/PCI/SSE2/3DNOW! +NVIDIA GeForce 7100 +NVIDIA GeForce 7100 / NVIDIA nForce 620i/PCI/SSE2 +NVIDIA GeForce 7100 / NVIDIA nForce 630i/PCI/SSE2 +NVIDIA GeForce 7100 / nForce 630i/PCI/SSE2 +NVIDIA GeForce 7100 GS/PCI/SSE2 +NVIDIA GeForce 7100 GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2 +NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW! +NVIDIA GeForce 7300 +NVIDIA GeForce 7300 GS/PCI/SSE2 +NVIDIA GeForce 7300 GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 7300 GT/AGP/SSE2 +NVIDIA GeForce 7300 GT/AGP/SSE2/3DNOW! +NVIDIA GeForce 7300 GT/PCI/SSE2 +NVIDIA GeForce 7300 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 7300 LE/PCI/SSE2 +NVIDIA GeForce 7300 LE/PCI/SSE2/3DNOW! +NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2 +NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 7300 SE/PCI/SSE2 +NVIDIA GeForce 7300 SE/PCI/SSE2/3DNOW! +NVIDIA GeForce 7350 LE/PCI/SSE2 +NVIDIA GeForce 7500 +NVIDIA GeForce 7500 LE/PCI/SSE2 +NVIDIA GeForce 7500 LE/PCI/SSE2/3DNOW! +NVIDIA GeForce 7600 +NVIDIA GeForce 7600 GS/AGP/SSE2 +NVIDIA GeForce 7600 GS/AGP/SSE2/3DNOW! +NVIDIA GeForce 7600 GS/PCI/SSE2 +NVIDIA GeForce 7600 GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 7600 GT/AGP/SSE/3DNOW! +NVIDIA GeForce 7600 GT/AGP/SSE2 +NVIDIA GeForce 7600 GT/PCI/SSE2 +NVIDIA GeForce 7600 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 7650 GS/PCI/SSE2 +NVIDIA GeForce 7800 +NVIDIA GeForce 7800 GS/AGP/SSE2 +NVIDIA GeForce 7800 GS/AGP/SSE2/3DNOW! +NVIDIA GeForce 7800 GT/PCI/SSE2 +NVIDIA GeForce 7800 GTX/PCI/SSE2 +NVIDIA GeForce 7800 GTX/PCI/SSE2/3DNOW! +NVIDIA GeForce 7900 +NVIDIA GeForce 7900 GS/PCI/SSE2 +NVIDIA GeForce 7900 GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 7900 GT/GTO/PCI/SSE2 +NVIDIA GeForce 7900 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 7900 GTX/PCI/SSE2 +NVIDIA GeForce 7950 GT/PCI/SSE2 +NVIDIA GeForce 7950 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 8100 +NVIDIA GeForce 8100 / nForce 720a/PCI/SSE2/3DNOW! +NVIDIA GeForce 8200 +NVIDIA GeForce 8200/PCI/SSE2 +NVIDIA GeForce 8200/PCI/SSE2/3DNOW! +NVIDIA GeForce 8200M +NVIDIA GeForce 8200M G/PCI/SSE2 +NVIDIA GeForce 8200M G/PCI/SSE2/3DNOW! +NVIDIA GeForce 8300 +NVIDIA GeForce 8300 GS/PCI/SSE2 +NVIDIA GeForce 8400 +NVIDIA GeForce 8400 GS/PCI/SSE/3DNOW! +NVIDIA GeForce 8400 GS/PCI/SSE2 +NVIDIA GeForce 8400 GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 8400/PCI/SSE2/3DNOW! +NVIDIA GeForce 8400GS/PCI/SSE2 +NVIDIA GeForce 8400GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 8400M +NVIDIA GeForce 8400M G/PCI/SSE2 +NVIDIA GeForce 8400M G/PCI/SSE2/3DNOW! +NVIDIA GeForce 8400M GS/PCI/SSE2 +NVIDIA GeForce 8400M GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 8400M GT/PCI/SSE2 +NVIDIA GeForce 8500 +NVIDIA GeForce 8500 GT/PCI/SSE2 +NVIDIA GeForce 8500 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 8600 +NVIDIA GeForce 8600 GS/PCI/SSE2 +NVIDIA GeForce 8600 GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 8600 GT/PCI/SSE2 +NVIDIA GeForce 8600 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 8600 GTS/PCI/SSE2 +NVIDIA GeForce 8600 GTS/PCI/SSE2/3DNOW! +NVIDIA GeForce 8600GS/PCI/SSE2 +NVIDIA GeForce 8600M +NVIDIA GeForce 8600M GS/PCI/SSE2 +NVIDIA GeForce 8600M GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 8600M GT/PCI/SSE2 +NVIDIA GeForce 8700 +NVIDIA GeForce 8700M +NVIDIA GeForce 8700M GT/PCI/SSE2 +NVIDIA GeForce 8800 +NVIDIA GeForce 8800 GS/PCI/SSE2 +NVIDIA GeForce 8800 GT/PCI/SSE2 +NVIDIA GeForce 8800 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 8800 GTS 512/PCI/SSE2 +NVIDIA GeForce 8800 GTS 512/PCI/SSE2/3DNOW! +NVIDIA GeForce 8800 GTS/PCI/SSE2 +NVIDIA GeForce 8800 GTS/PCI/SSE2/3DNOW! +NVIDIA GeForce 8800 GTX/PCI/SSE2 +NVIDIA GeForce 8800 Ultra/PCI/SSE2 +NVIDIA GeForce 8800M GTS/PCI/SSE2 +NVIDIA GeForce 8800M GTX/PCI/SSE2 +NVIDIA GeForce 9100 +NVIDIA GeForce 9100/PCI/SSE2 +NVIDIA GeForce 9100/PCI/SSE2/3DNOW! +NVIDIA GeForce 9100M +NVIDIA GeForce 9100M G/PCI/SSE2 +NVIDIA GeForce 9100M G/PCI/SSE2/3DNOW! +NVIDIA GeForce 9200 +NVIDIA GeForce 9200/PCI/SSE2 +NVIDIA GeForce 9200/PCI/SSE2/3DNOW! +NVIDIA GeForce 9200M GE/PCI/SSE2 +NVIDIA GeForce 9200M GS/PCI/SSE2 +NVIDIA GeForce 9300 +NVIDIA GeForce 9300 / nForce 730i/PCI/SSE2 +NVIDIA GeForce 9300 GE/PCI/SSE2 +NVIDIA GeForce 9300 GE/PCI/SSE2/3DNOW! +NVIDIA GeForce 9300 GS/PCI/SSE2 +NVIDIA GeForce 9300 GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 9300 SE/PCI/SSE2 +NVIDIA GeForce 9300M +NVIDIA GeForce 9300M G/PCI/SSE2 +NVIDIA GeForce 9300M G/PCI/SSE2/3DNOW! +NVIDIA GeForce 9300M GS/PCI/SSE2 +NVIDIA GeForce 9300M GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 9400 +NVIDIA GeForce 9400 GT/PCI/SSE2 +NVIDIA GeForce 9400 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 9400/PCI/SSE2 +NVIDIA GeForce 9400M +NVIDIA GeForce 9400M G/PCI/SSE2 +NVIDIA GeForce 9400M/PCI/SSE2 +NVIDIA GeForce 9500 +NVIDIA GeForce 9500 GS/PCI/SSE2 +NVIDIA GeForce 9500 GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 9500 GT/PCI/SSE2 +NVIDIA GeForce 9500 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 9500M +NVIDIA GeForce 9500M GS/PCI/SSE2 +NVIDIA GeForce 9600 +NVIDIA GeForce 9600 GS/PCI/SSE2 +NVIDIA GeForce 9600 GSO 512/PCI/SSE2 +NVIDIA GeForce 9600 GSO/PCI/SSE2 +NVIDIA GeForce 9600 GSO/PCI/SSE2/3DNOW! +NVIDIA GeForce 9600 GT/PCI/SSE2 +NVIDIA GeForce 9600 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 9600M +NVIDIA GeForce 9600M GS/PCI/SSE2 +NVIDIA GeForce 9600M GT/PCI/SSE2 +NVIDIA GeForce 9650M GT/PCI/SSE2 +NVIDIA GeForce 9700M +NVIDIA GeForce 9700M GT/PCI/SSE2 +NVIDIA GeForce 9700M GTS/PCI/SSE2 +NVIDIA GeForce 9800 +NVIDIA GeForce 9800 GT/PCI/SSE2 +NVIDIA GeForce 9800 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 9800 GTX+/PCI/SSE2 +NVIDIA GeForce 9800 GTX+/PCI/SSE2/3DNOW! +NVIDIA GeForce 9800 GTX/9800 GTX+/PCI/SSE2 +NVIDIA GeForce 9800 GTX/PCI/SSE2 +NVIDIA GeForce 9800 GX2/PCI/SSE2 +NVIDIA GeForce 9800M +NVIDIA GeForce 9800M GS/PCI/SSE2 +NVIDIA GeForce 9800M GT/PCI/SSE2 +NVIDIA GeForce 9800M GTS/PCI/SSE2 +NVIDIA GeForce FX 5100 +NVIDIA GeForce FX 5100/AGP/SSE/3DNOW! +NVIDIA GeForce FX 5200 +NVIDIA GeForce FX 5200/AGP/SSE +NVIDIA GeForce FX 5200/AGP/SSE/3DNOW! +NVIDIA GeForce FX 5200/AGP/SSE2 +NVIDIA GeForce FX 5200/AGP/SSE2/3DNOW! +NVIDIA GeForce FX 5200/PCI/SSE2 +NVIDIA GeForce FX 5200/PCI/SSE2/3DNOW! +NVIDIA GeForce FX 5200LE/AGP/SSE2 +NVIDIA GeForce FX 5500 +NVIDIA GeForce FX 5500/AGP/SSE/3DNOW! +NVIDIA GeForce FX 5500/AGP/SSE2 +NVIDIA GeForce FX 5500/AGP/SSE2/3DNOW! +NVIDIA GeForce FX 5500/PCI/SSE2 +NVIDIA GeForce FX 5500/PCI/SSE2/3DNOW! +NVIDIA GeForce FX 5600 +NVIDIA GeForce FX 5600/AGP/SSE2 +NVIDIA GeForce FX 5600/AGP/SSE2/3DNOW! +NVIDIA GeForce FX 5600XT/AGP/SSE2/3DNOW! +NVIDIA GeForce FX 5700 +NVIDIA GeForce FX 5700/AGP/SSE/3DNOW! +NVIDIA GeForce FX 5700LE/AGP/SSE +NVIDIA GeForce FX 5700LE/AGP/SSE/3DNOW! +NVIDIA GeForce FX 5800 +NVIDIA GeForce FX 5900 +NVIDIA GeForce FX 5900/AGP/SSE2 +NVIDIA GeForce FX 5900XT/AGP/SSE2 +NVIDIA GeForce FX Go5100 +NVIDIA GeForce FX Go5100/AGP/SSE2 +NVIDIA GeForce FX Go5200 +NVIDIA GeForce FX Go5200/AGP/SSE2 +NVIDIA GeForce FX Go5300 +NVIDIA GeForce FX Go5600 +NVIDIA GeForce FX Go5600/AGP/SSE2 +NVIDIA GeForce FX Go5650/AGP/SSE2 +NVIDIA GeForce FX Go5700 +NVIDIA GeForce FX Go5xxx/AGP/SSE2 +NVIDIA GeForce G 103M/PCI/SSE2 +NVIDIA GeForce G 105M/PCI/SSE2 +NVIDIA GeForce G 110M/PCI/SSE2 +NVIDIA GeForce G100/PCI/SSE2 +NVIDIA GeForce G100/PCI/SSE2/3DNOW! +NVIDIA GeForce G102M/PCI/SSE2 +NVIDIA GeForce G105M/PCI/SSE2 +NVIDIA GeForce G200/PCI/SSE2 +NVIDIA GeForce G205M/PCI/SSE2 +NVIDIA GeForce G210/PCI/SSE2 +NVIDIA GeForce G210/PCI/SSE2/3DNOW! +NVIDIA GeForce G210M/PCI/SSE2 +NVIDIA GeForce G310M/PCI/SSE2 +NVIDIA GeForce GT 120/PCI/SSE2 +NVIDIA GeForce GT 120/PCI/SSE2/3DNOW! +NVIDIA GeForce GT 120M/PCI/SSE2 +NVIDIA GeForce GT 130M/PCI/SSE2 +NVIDIA GeForce GT 140/PCI/SSE2 +NVIDIA GeForce GT 220/PCI/SSE2 +NVIDIA GeForce GT 220/PCI/SSE2/3DNOW! +NVIDIA GeForce GT 220M/PCI/SSE2 +NVIDIA GeForce GT 230/PCI/SSE2 +NVIDIA GeForce GT 230M/PCI/SSE2 +NVIDIA GeForce GT 240 +NVIDIA GeForce GT 240/PCI/SSE2 +NVIDIA GeForce GT 240/PCI/SSE2/3DNOW! +NVIDIA GeForce GT 240M/PCI/SSE2 +NVIDIA GeForce GT 320/PCI/SSE2 +NVIDIA GeForce GT 320M/PCI/SSE2 +NVIDIA GeForce GT 325M/PCI/SSE2 +NVIDIA GeForce GT 330/PCI/SSE2 +NVIDIA GeForce GT 330/PCI/SSE2/3DNOW! +NVIDIA GeForce GT 330M/PCI/SSE2 +NVIDIA GeForce GT 335M/PCI/SSE2 +NVIDIA GeForce GT 340/PCI/SSE2 +NVIDIA GeForce GT 340/PCI/SSE2/3DNOW! +NVIDIA GeForce GT 415M/PCI/SSE2 +NVIDIA GeForce GT 420/PCI/SSE2 +NVIDIA GeForce GT 420M/PCI/SSE2 +NVIDIA GeForce GT 425M/PCI/SSE2 +NVIDIA GeForce GT 430/PCI/SSE2 +NVIDIA GeForce GT 430/PCI/SSE2/3DNOW! +NVIDIA GeForce GT 435M/PCI/SSE2 +NVIDIA GeForce GT 440/PCI/SSE2 +NVIDIA GeForce GT 440/PCI/SSE2/3DNOW! +NVIDIA GeForce GT 445M/PCI/SSE2 +NVIDIA GeForce GT 520M/PCI/SSE2 +NVIDIA GeForce GT 525M/PCI/SSE2 +NVIDIA GeForce GT 540M/PCI/SSE2 +NVIDIA GeForce GT 550M/PCI/SSE2 +NVIDIA GeForce GT 555M/PCI/SSE2 +NVIDIA GeForce GTS 150/PCI/SSE2 +NVIDIA GeForce GTS 160M/PCI/SSE2 +NVIDIA GeForce GTS 240/PCI/SSE2 +NVIDIA GeForce GTS 250/PCI/SSE2 +NVIDIA GeForce GTS 250/PCI/SSE2/3DNOW! +NVIDIA GeForce GTS 250M/PCI/SSE2 +NVIDIA GeForce GTS 350M/PCI/SSE2 +NVIDIA GeForce GTS 360M/PCI/SSE2 +NVIDIA GeForce GTS 450/PCI/SSE2 +NVIDIA GeForce GTS 450/PCI/SSE2/3DNOW! +NVIDIA GeForce GTS 455/PCI/SSE2 +NVIDIA GeForce GTX 260/PCI/SSE2 +NVIDIA GeForce GTX 260/PCI/SSE2/3DNOW! +NVIDIA GeForce GTX 260M/PCI/SSE2 +NVIDIA GeForce GTX 275/PCI/SSE2 +NVIDIA GeForce GTX 280 +NVIDIA GeForce GTX 280/PCI/SSE2 +NVIDIA GeForce GTX 280M/PCI/SSE2 +NVIDIA GeForce GTX 285/PCI/SSE2 +NVIDIA GeForce GTX 295/PCI/SSE2 +NVIDIA GeForce GTX 460 SE/PCI/SSE2 +NVIDIA GeForce GTX 460 SE/PCI/SSE2/3DNOW! +NVIDIA GeForce GTX 460/PCI/SSE2 +NVIDIA GeForce GTX 460/PCI/SSE2/3DNOW! +NVIDIA GeForce GTX 460M/PCI/SSE2 +NVIDIA GeForce GTX 465/PCI/SSE2 +NVIDIA GeForce GTX 465/PCI/SSE2/3DNOW! +NVIDIA GeForce GTX 470/PCI/SSE2 +NVIDIA GeForce GTX 470/PCI/SSE2/3DNOW! +NVIDIA GeForce GTX 480/PCI/SSE2 +NVIDIA GeForce GTX 550 Ti/PCI/SSE2 +NVIDIA GeForce GTX 550 Ti/PCI/SSE2/3DNOW! +NVIDIA GeForce GTX 560 Ti/PCI/SSE2 +NVIDIA GeForce GTX 560 Ti/PCI/SSE2/3DNOW! +NVIDIA GeForce GTX 560/PCI/SSE2 +NVIDIA GeForce GTX 570/PCI/SSE2 +NVIDIA GeForce GTX 570/PCI/SSE2/3DNOW! +NVIDIA GeForce GTX 580/PCI/SSE2 +NVIDIA GeForce GTX 580/PCI/SSE2/3DNOW! +NVIDIA GeForce GTX 580M/PCI/SSE2 +NVIDIA GeForce GTX 590/PCI/SSE2 +NVIDIA GeForce Go 6 +NVIDIA GeForce Go 6100 +NVIDIA GeForce Go 6100/PCI/SSE2 +NVIDIA GeForce Go 6100/PCI/SSE2/3DNOW! +NVIDIA GeForce Go 6150/PCI/SSE2 +NVIDIA GeForce Go 6150/PCI/SSE2/3DNOW! +NVIDIA GeForce Go 6200 +NVIDIA GeForce Go 6200/PCI/SSE2 +NVIDIA GeForce Go 6400 +NVIDIA GeForce Go 6400/PCI/SSE2 +NVIDIA GeForce Go 6600 +NVIDIA GeForce Go 6600/PCI/SSE2 +NVIDIA GeForce Go 6800 +NVIDIA GeForce Go 6800 Ultra/PCI/SSE2 +NVIDIA GeForce Go 6800/PCI/SSE2 +NVIDIA GeForce Go 7200 +NVIDIA GeForce Go 7200/PCI/SSE2 +NVIDIA GeForce Go 7200/PCI/SSE2/3DNOW! +NVIDIA GeForce Go 7300 +NVIDIA GeForce Go 7300/PCI/SSE2 +NVIDIA GeForce Go 7300/PCI/SSE2/3DNOW! +NVIDIA GeForce Go 7400 +NVIDIA GeForce Go 7400/PCI/SSE2 +NVIDIA GeForce Go 7400/PCI/SSE2/3DNOW! +NVIDIA GeForce Go 7600 +NVIDIA GeForce Go 7600/PCI/SSE2 +NVIDIA GeForce Go 7600/PCI/SSE2/3DNOW! +NVIDIA GeForce Go 7700 +NVIDIA GeForce Go 7800 +NVIDIA GeForce Go 7800 GTX/PCI/SSE2 +NVIDIA GeForce Go 7900 +NVIDIA GeForce Go 7900 GS/PCI/SSE2 +NVIDIA GeForce Go 7900 GTX/PCI/SSE2 +NVIDIA GeForce Go 7950 GTX/PCI/SSE2 +NVIDIA GeForce PCX +NVIDIA GeForce2 GTS/AGP/SSE +NVIDIA GeForce2 MX/AGP/3DNOW! +NVIDIA GeForce2 MX/AGP/SSE/3DNOW! +NVIDIA GeForce2 MX/AGP/SSE2 +NVIDIA GeForce2 MX/PCI/SSE2 +NVIDIA GeForce3/AGP/SSE/3DNOW! +NVIDIA GeForce3/AGP/SSE2 +NVIDIA GeForce4 420 Go 32M/AGP/SSE2 +NVIDIA GeForce4 420 Go 32M/AGP/SSE2/3DNOW! +NVIDIA GeForce4 420 Go 32M/PCI/SSE2/3DNOW! +NVIDIA GeForce4 440 Go 64M/AGP/SSE2/3DNOW! +NVIDIA GeForce4 460 Go/AGP/SSE2 +NVIDIA GeForce4 MX 4000/AGP/SSE/3DNOW! +NVIDIA GeForce4 MX 4000/AGP/SSE2 +NVIDIA GeForce4 MX 4000/PCI/3DNOW! +NVIDIA GeForce4 MX 4000/PCI/SSE/3DNOW! +NVIDIA GeForce4 MX 4000/PCI/SSE2 +NVIDIA GeForce4 MX 420/AGP/SSE/3DNOW! +NVIDIA GeForce4 MX 420/AGP/SSE2 +NVIDIA GeForce4 MX 440 with AGP8X/AGP/SSE2 +NVIDIA GeForce4 MX 440/AGP/SSE2 +NVIDIA GeForce4 MX 440/AGP/SSE2/3DNOW! +NVIDIA GeForce4 MX 440SE with AGP8X/AGP/SSE2 +NVIDIA GeForce4 MX Integrated GPU/AGP/SSE/3DNOW! +NVIDIA GeForce4 Ti 4200 with AGP8X/AGP/SSE +NVIDIA GeForce4 Ti 4200/AGP/SSE/3DNOW! +NVIDIA GeForce4 Ti 4400/AGP/SSE2 +NVIDIA Generic +NVIDIA ION LE/PCI/SSE2 +NVIDIA ION/PCI/SSE2 +NVIDIA ION/PCI/SSE2/3DNOW! +NVIDIA MCP61/PCI/SSE2 +NVIDIA MCP61/PCI/SSE2/3DNOW! +NVIDIA MCP73/PCI/SSE2 +NVIDIA MCP79MH/PCI/SSE2 +NVIDIA MCP79MX/PCI/SSE2 +NVIDIA MCP7A-O/PCI/SSE2 +NVIDIA MCP7A-S/PCI/SSE2 +NVIDIA MCP89-EPT/PCI/SSE2 +NVIDIA N10M-GE1/PCI/SSE2 +NVIDIA N10P-GE1/PCI/SSE2 +NVIDIA N10P-GV2/PCI/SSE2 +NVIDIA N11M-GE1/PCI/SSE2 +NVIDIA N11M-GE2/PCI/SSE2 +NVIDIA N12E-GS-A1/PCI/SSE2 +NVIDIA NB9M-GE/PCI/SSE2 +NVIDIA NB9M-GE1/PCI/SSE2 +NVIDIA NB9M-GS/PCI/SSE2 +NVIDIA NB9M-NS/PCI/SSE2 +NVIDIA NB9P-GE1/PCI/SSE2 +NVIDIA NB9P-GS/PCI/SSE2 +NVIDIA NV17/AGP/3DNOW! +NVIDIA NV17/AGP/SSE2 +NVIDIA NV34 +NVIDIA NV35 +NVIDIA NV36/AGP/SSE/3DNOW! +NVIDIA NV36/AGP/SSE2 +NVIDIA NV41/PCI/SSE2 +NVIDIA NV43 +NVIDIA NV44 +NVIDIA NVIDIA GeForce 210 OpenGL Engine +NVIDIA NVIDIA GeForce 320M OpenGL Engine +NVIDIA NVIDIA GeForce 7300 GT OpenGL Engine +NVIDIA NVIDIA GeForce 7600 GT OpenGL Engine +NVIDIA NVIDIA GeForce 8600M GT OpenGL Engine +NVIDIA NVIDIA GeForce 8800 GS OpenGL Engine +NVIDIA NVIDIA GeForce 8800 GT OpenGL Engine +NVIDIA NVIDIA GeForce 9400 OpenGL Engine +NVIDIA NVIDIA GeForce 9400M OpenGL Engine +NVIDIA NVIDIA GeForce 9500 GT OpenGL Engine +NVIDIA NVIDIA GeForce 9600M GT OpenGL Engine +NVIDIA NVIDIA GeForce GT 120 OpenGL Engine +NVIDIA NVIDIA GeForce GT 130 OpenGL Engine +NVIDIA NVIDIA GeForce GT 220 OpenGL Engine +NVIDIA NVIDIA GeForce GT 230M OpenGL Engine +NVIDIA NVIDIA GeForce GT 240M OpenGL Engine +NVIDIA NVIDIA GeForce GT 330M OpenGL Engine +NVIDIA NVIDIA GeForce GT 420M OpenGL Engine +NVIDIA NVIDIA GeForce GT 425M OpenGL Engine +NVIDIA NVIDIA GeForce GT 430 OpenGL Engine +NVIDIA NVIDIA GeForce GT 440 OpenGL Engine +NVIDIA NVIDIA GeForce GT 540M OpenGL Engine +NVIDIA NVIDIA GeForce GTS 240 OpenGL Engine +NVIDIA NVIDIA GeForce GTS 250 OpenGL Engine +NVIDIA NVIDIA GeForce GTS 450 OpenGL Engine +NVIDIA NVIDIA GeForce GTX 285 OpenGL Engine +NVIDIA NVIDIA GeForce GTX 460 OpenGL Engine +NVIDIA NVIDIA GeForce GTX 460M OpenGL Engine +NVIDIA NVIDIA GeForce GTX 465 OpenGL Engine +NVIDIA NVIDIA GeForce GTX 470 OpenGL Engine +NVIDIA NVIDIA GeForce GTX 480 OpenGL Engine +NVIDIA NVIDIA GeForce Pre-Release ION OpenGL Engine +NVIDIA NVIDIA GeForce4 OpenGL Engine +NVIDIA NVIDIA NV34MAP OpenGL Engine +NVIDIA NVIDIA Quadro 4000 OpenGL Engine +NVIDIA NVIDIA Quadro FX 4800 OpenGL Engine +NVIDIA NVS 2100M/PCI/SSE2 +NVIDIA NVS 300/PCI/SSE2 +NVIDIA NVS 3100M/PCI/SSE2 +NVIDIA NVS 4100/PCI/SSE2/3DNOW! +NVIDIA NVS 4200M/PCI/SSE2 +NVIDIA NVS 5100M/PCI/SSE2 +NVIDIA PCI +NVIDIA Quadro 2000/PCI/SSE2 +NVIDIA Quadro 4000 +NVIDIA Quadro 4000 OpenGL Engine +NVIDIA Quadro 4000/PCI/SSE2 +NVIDIA Quadro 5000/PCI/SSE2 +NVIDIA Quadro 5000M/PCI/SSE2 +NVIDIA Quadro 600 +NVIDIA Quadro 600/PCI/SSE2 +NVIDIA Quadro 600/PCI/SSE2/3DNOW! +NVIDIA Quadro 6000 +NVIDIA Quadro 6000/PCI/SSE2 +NVIDIA Quadro CX/PCI/SSE2 +NVIDIA Quadro DCC +NVIDIA Quadro FX +NVIDIA Quadro FX 1100/AGP/SSE2 +NVIDIA Quadro FX 1400/PCI/SSE2 +NVIDIA Quadro FX 1500 +NVIDIA Quadro FX 1500M/PCI/SSE2 +NVIDIA Quadro FX 1600M/PCI/SSE2 +NVIDIA Quadro FX 1700 +NVIDIA Quadro FX 1700M/PCI/SSE2 +NVIDIA Quadro FX 1800 +NVIDIA Quadro FX 1800/PCI/SSE2 +NVIDIA Quadro FX 1800M/PCI/SSE2 +NVIDIA Quadro FX 2500M/PCI/SSE2 +NVIDIA Quadro FX 2700M/PCI/SSE2 +NVIDIA Quadro FX 2800M/PCI/SSE2 +NVIDIA Quadro FX 3400 +NVIDIA Quadro FX 3450 +NVIDIA Quadro FX 3450/4000 SDI/PCI/SSE2 +NVIDIA Quadro FX 3500 +NVIDIA Quadro FX 3500M/PCI/SSE2 +NVIDIA Quadro FX 360M/PCI/SSE2 +NVIDIA Quadro FX 370 +NVIDIA Quadro FX 370/PCI/SSE2 +NVIDIA Quadro FX 3700 +NVIDIA Quadro FX 3700M/PCI/SSE2 +NVIDIA Quadro FX 370M/PCI/SSE2 +NVIDIA Quadro FX 3800 +NVIDIA Quadro FX 3800M/PCI/SSE2 +NVIDIA Quadro FX 4500 +NVIDIA Quadro FX 4600 +NVIDIA Quadro FX 4800 +NVIDIA Quadro FX 4800/PCI/SSE2 +NVIDIA Quadro FX 560 +NVIDIA Quadro FX 5600 +NVIDIA Quadro FX 570 +NVIDIA Quadro FX 570/PCI/SSE2 +NVIDIA Quadro FX 570M/PCI/SSE2 +NVIDIA Quadro FX 580/PCI/SSE2 +NVIDIA Quadro FX 770M/PCI/SSE2 +NVIDIA Quadro FX 880M +NVIDIA Quadro FX 880M/PCI/SSE2 +NVIDIA Quadro FX Go700/AGP/SSE2 +NVIDIA Quadro NVS +NVIDIA Quadro NVS 110M/PCI/SSE2 +NVIDIA Quadro NVS 130M/PCI/SSE2 +NVIDIA Quadro NVS 135M/PCI/SSE2 +NVIDIA Quadro NVS 140M/PCI/SSE2 +NVIDIA Quadro NVS 150M/PCI/SSE2 +NVIDIA Quadro NVS 160M/PCI/SSE2 +NVIDIA Quadro NVS 210S/PCI/SSE2/3DNOW! +NVIDIA Quadro NVS 285/PCI/SSE2 +NVIDIA Quadro NVS 290/PCI/SSE2 +NVIDIA Quadro NVS 295/PCI/SSE2 +NVIDIA Quadro NVS 320M/PCI/SSE2 +NVIDIA Quadro NVS 55/280 PCI/PCI/SSE2 +NVIDIA Quadro NVS/PCI/SSE2 +NVIDIA Quadro PCI-E Series/PCI/SSE2/3DNOW! +NVIDIA Quadro VX 200/PCI/SSE2 +NVIDIA Quadro/AGP/SSE2 +NVIDIA Quadro2 +NVIDIA Quadro4 +NVIDIA RIVA TNT +NVIDIA RIVA TNT2/AGP/SSE2 +NVIDIA RIVA TNT2/PCI/3DNOW! +NVIDIA nForce +NVIDIA unknown board/AGP/SSE2 +NVIDIA unknown board/PCI/SSE2 +NVIDIA unknown board/PCI/SSE2/3DNOW! +Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5670 OpenGL Engine +Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5750 OpenGL Engine +Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5770 OpenGL Engine +Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6490M OpenGL Engine +Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6750M OpenGL Engine +Parallels and Intel Inc. 3D-Analyze v2.3 - http://www.tommti-systems.com +Parallels and Intel Inc. Parallels using Intel HD Graphics 3000 OpenGL Engine +Parallels and NVIDIA Parallels using NVIDIA GeForce 320M OpenGL Engine +Parallels and NVIDIA Parallels using NVIDIA GeForce 9400 OpenGL Engine +Parallels and NVIDIA Parallels using NVIDIA GeForce GT 120 OpenGL Engine +Parallels and NVIDIA Parallels using NVIDIA GeForce GT 330M OpenGL Engine +Radeon RV350 on Gallium +S3 +S3 Graphics VIA/S3G UniChrome IGP/MMX/K3D +S3 Graphics VIA/S3G UniChrome Pro IGP/MMX/SSE +S3 Graphics, Incorporated ProSavage/Twister +S3 Graphics, Incorporated S3 Graphics Chrome9 HC +S3 Graphics, Incorporated S3 Graphics DeltaChrome +S3 Graphics, Incorporated VIA Chrome9 HC IGP +SiS +SiS 661 VGA +SiS 662 VGA +SiS 741 VGA +SiS 760 VGA +SiS 761GX VGA +SiS Mirage Graphics3 +Trident +Tungsten Graphics +Tungsten Graphics, Inc Mesa DRI 865G GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 865G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 915G GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 915G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 915GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 915GM GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 915GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 945G +Tungsten Graphics, Inc Mesa DRI 945G GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 945G GEM 20100330 DEVELOPMENT +Tungsten Graphics, Inc Mesa DRI 945G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 945GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 945GM GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100328 2010Q1 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 945GME x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 945GME 20061017 +Tungsten Graphics, Inc Mesa DRI 945GME GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 945GME GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 945GME GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 965GM GEM 20090326 2009Q1 RC2 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 965GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 965GM GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 965GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI G33 20061017 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI G33 GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI G33 GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI G41 GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI G41 GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI GMA500 20081116 - 5.0.1.0046 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI IGD GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI IGD GEM 20100330 DEVELOPMENT +Tungsten Graphics, Inc Mesa DRI IGD GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI IGDNG_D GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI Ironlake Desktop GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI Ironlake Mobile GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset 20080716 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100328 2010Q1 +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5964) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 +VIA +VMware, Inc. Gallium 0.3 on SVGA3D; build: RELEASE; +VMware, Inc. Gallium 0.4 on i915 (chipset: 945GM) +VMware, Inc. Gallium 0.4 on llvmpipe +VMware, Inc. Gallium 0.4 on softpipe +X.Org Gallium 0.4 on AMD BARTS +X.Org Gallium 0.4 on AMD CEDAR +X.Org Gallium 0.4 on AMD HEMLOCK +X.Org Gallium 0.4 on AMD JUNIPER +X.Org Gallium 0.4 on AMD REDWOOD +X.Org Gallium 0.4 on AMD RS780 +X.Org Gallium 0.4 on AMD RS880 +X.Org Gallium 0.4 on AMD RV610 +X.Org Gallium 0.4 on AMD RV620 +X.Org Gallium 0.4 on AMD RV630 +X.Org Gallium 0.4 on AMD RV635 +X.Org Gallium 0.4 on AMD RV710 +X.Org Gallium 0.4 on AMD RV730 +X.Org Gallium 0.4 on AMD RV740 +X.Org Gallium 0.4 on AMD RV770 +X.Org R300 Project Gallium 0.4 on ATI R300 +X.Org R300 Project Gallium 0.4 on ATI R580 +X.Org R300 Project Gallium 0.4 on ATI RC410 +X.Org R300 Project Gallium 0.4 on ATI RS482 +X.Org R300 Project Gallium 0.4 on ATI RS600 +X.Org R300 Project Gallium 0.4 on ATI RS690 +X.Org R300 Project Gallium 0.4 on ATI RV350 +X.Org R300 Project Gallium 0.4 on ATI RV370 +X.Org R300 Project Gallium 0.4 on ATI RV410 +X.Org R300 Project Gallium 0.4 on ATI RV515 +X.Org R300 Project Gallium 0.4 on ATI RV530 +X.Org R300 Project Gallium 0.4 on ATI RV570 +X.Org R300 Project Gallium 0.4 on R420 +X.Org R300 Project Gallium 0.4 on R580 +X.Org R300 Project Gallium 0.4 on RC410 +X.Org R300 Project Gallium 0.4 on RS480 +X.Org R300 Project Gallium 0.4 on RS482 +X.Org R300 Project Gallium 0.4 on RS600 +X.Org R300 Project Gallium 0.4 on RS690 +X.Org R300 Project Gallium 0.4 on RS740 +X.Org R300 Project Gallium 0.4 on RV350 +X.Org R300 Project Gallium 0.4 on RV370 +X.Org R300 Project Gallium 0.4 on RV410 +X.Org R300 Project Gallium 0.4 on RV515 +X.Org R300 Project Gallium 0.4 on RV530 +XGI +nouveau Gallium 0.4 on NV34 +nouveau Gallium 0.4 on NV36 +nouveau Gallium 0.4 on NV46 +nouveau Gallium 0.4 on NV49 +nouveau Gallium 0.4 on NV4A +nouveau Gallium 0.4 on NV4B +nouveau Gallium 0.4 on NV4E +nouveau Gallium 0.4 on NV50 +nouveau Gallium 0.4 on NV84 +nouveau Gallium 0.4 on NV86 +nouveau Gallium 0.4 on NV92 +nouveau Gallium 0.4 on NV94 +nouveau Gallium 0.4 on NV96 +nouveau Gallium 0.4 on NV98 +nouveau Gallium 0.4 on NVA0 +nouveau Gallium 0.4 on NVA3 +nouveau Gallium 0.4 on NVA5 +nouveau Gallium 0.4 on NVA8 +nouveau Gallium 0.4 on NVAA +nouveau Gallium 0.4 on NVAC diff --git a/indra/newview/tests/llcapabilitylistener_test.cpp b/indra/newview/tests/llcapabilitylistener_test.cpp index 9da851ffc4..2ad08dc1f3 100644 --- a/indra/newview/tests/llcapabilitylistener_test.cpp +++ b/indra/newview/tests/llcapabilitylistener_test.cpp @@ -72,7 +72,7 @@ struct TestCapabilityProvider: public LLCapabilityProvider { mCaps[cap] = url; } - LLHost getHost() const { return mHost; } + const LLHost& getHost() const { return mHost; } std::string getDescription() const { return "TestCapabilityProvider"; } LLHost mHost; @@ -114,6 +114,7 @@ namespace tut regionListener("testCapabilityListener", NULL, provider, LLUUID(), LLUUID()), regionPump(regionListener.getCapAPI()) { + LLCurl::initClass(); provider.setCapability("good", server + "capability-test"); provider.setCapability("fail", server + "fail"); } diff --git a/indra/newview/tests/lllogininstance_test.cpp b/indra/newview/tests/lllogininstance_test.cpp index db50b89620..9e321db889 100644 --- a/indra/newview/tests/lllogininstance_test.cpp +++ b/indra/newview/tests/lllogininstance_test.cpp @@ -40,6 +40,7 @@ #if defined(LL_WINDOWS) #pragma warning(disable: 4355) // using 'this' in base-class ctor initializer expr +#pragma warning(disable: 4702) // disable 'unreachable code' so we can safely use skip(). #endif // Constants @@ -48,6 +49,9 @@ const std::string VIEWERLOGIN_GRIDLABEL("viewerlogin_grid"); const std::string APPVIEWER_SERIALNUMBER("appviewer_serialno"); +const std::string VIEWERLOGIN_CHANNEL("invalid_channel"); +const std::string VIEWERLOGIN_VERSION_CHANNEL("invalid_version"); + // Link seams. //----------------------------------------------------------------------------- @@ -65,6 +69,7 @@ static bool gDisconnectCalled = false; #include "../llviewerwindow.h" void LLViewerWindow::setShowProgress(BOOL show) {} +LLProgressView * LLViewerWindow::getProgressView(void) const { return 0; } LLViewerWindow* gViewerWindow; @@ -160,7 +165,6 @@ std::string LLGridManager::getAppSLURLBase(const std::string& grid_name) //----------------------------------------------------------------------------- #include "../llviewercontrol.h" LLControlGroup gSavedSettings("Global"); -std::string gCurrentVersion = "invalid_version"; LLControlGroup::LLControlGroup(const std::string& name) : LLInstanceTracker<LLControlGroup, std::string>(name){} @@ -177,6 +181,45 @@ BOOL LLControlGroup::declareString(const std::string& name, const std::string &i #include "lluicolortable.h" void LLUIColorTable::saveUserSettings(void)const {} +//----------------------------------------------------------------------------- +#include "../llversioninfo.h" +const std::string &LLVersionInfo::getChannelAndVersion() { return VIEWERLOGIN_VERSION_CHANNEL; } +const std::string &LLVersionInfo::getChannel() { return VIEWERLOGIN_CHANNEL; } + +//----------------------------------------------------------------------------- +#include "../llappviewer.h" +void LLAppViewer::forceQuit(void) {} +LLAppViewer * LLAppViewer::sInstance = 0; + +//----------------------------------------------------------------------------- +#include "llnotificationsutil.h" +LLNotificationPtr LLNotificationsUtil::add(const std::string& name, + const LLSD& substitutions, + const LLSD& payload, + boost::function<void (const LLSD&, const LLSD&)> functor) { return LLNotificationPtr((LLNotification*)0); } + + +//----------------------------------------------------------------------------- +#include "llupdaterservice.h" + +std::string const & LLUpdaterService::pumpName(void) +{ + static std::string wakka = "wakka wakka wakka"; + return wakka; +} +bool LLUpdaterService::updateReadyToInstall(void) { return false; } +void LLUpdaterService::initialize(const std::string& protocol_version, + const std::string& url, + const std::string& path, + const std::string& channel, + const std::string& version) {} + +void LLUpdaterService::setCheckPeriod(unsigned int seconds) {} +void LLUpdaterService::startChecking(bool install_if_ready) {} +void LLUpdaterService::stopChecking() {} +bool LLUpdaterService::isChecking() { return false; } +LLUpdaterService::eUpdaterState LLUpdaterService::getState() { return INITIAL; } +std::string LLUpdaterService::updatedVersion() { return ""; } //----------------------------------------------------------------------------- #include "llnotifications.h" @@ -192,6 +235,12 @@ LLFloater* LLFloaterReg::showInstance(const std::string& name, const LLSD& key, return NULL; } +//---------------------------------------------------------------------------- +#include "../llprogressview.h" +void LLProgressView::setText(std::string const &){} +void LLProgressView::setPercent(float){} +void LLProgressView::setMessage(std::string const &){} + //----------------------------------------------------------------------------- // LLNotifications class MockNotifications : public LLNotificationsInterface @@ -290,7 +339,6 @@ namespace tut gSavedSettings.declareBOOL("UseDebugMenus", FALSE, "", FALSE); gSavedSettings.declareBOOL("ForceMandatoryUpdate", FALSE, "", FALSE); gSavedSettings.declareString("ClientSettingsFile", "test_settings.xml", "", FALSE); - gSavedSettings.declareString("VersionChannelName", "test_version_string", "", FALSE); gSavedSettings.declareString("NextLoginLocation", "", "", FALSE); gSavedSettings.declareBOOL("LoginLastLocation", FALSE, "", FALSE); @@ -430,6 +478,8 @@ namespace tut template<> template<> void lllogininstance_object::test<3>() { + skip(); + set_test_name("Test Mandatory Update User Accepts"); // Part 1 - Mandatory Update, with User accepts response. @@ -457,6 +507,8 @@ namespace tut template<> template<> void lllogininstance_object::test<4>() { + skip(); + set_test_name("Test Mandatory Update User Decline"); // Test connect with update needed. diff --git a/indra/newview/tests/llremoteparcelrequest_test.cpp b/indra/newview/tests/llremoteparcelrequest_test.cpp new file mode 100644 index 0000000000..ed66066b0a --- /dev/null +++ b/indra/newview/tests/llremoteparcelrequest_test.cpp @@ -0,0 +1,134 @@ +/** + * @file llremoteparcelrequest_test.cpp + * @author Brad Kittenbrink <brad@lindenlab.com> + * + * $LicenseInfo:firstyear=2010&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "linden_common.h" + +#include "../test/lltut.h" + +#include "../llremoteparcelrequest.h" + +#include "../llagent.h" +#include "message.h" +#include "llurlentry.h" + +namespace { + const LLUUID TEST_PARCEL_ID("11111111-1111-1111-1111-111111111111"); +} + +LLCurl::Responder::Responder() { } +LLCurl::Responder::~Responder() { } +void LLCurl::Responder::error(U32,std::string const &) { } +void LLCurl::Responder::result(LLSD const &) { } +void LLCurl::Responder::errorWithContent(U32 status,std::string const &,LLSD const &) { } +void LLCurl::Responder::completedRaw(U32 status, std::string const &, LLChannelDescriptors const &,boost::shared_ptr<LLBufferArray> const &) { } +void LLCurl::Responder::completed(U32 status, std::string const &, LLSD const &) { } +void LLCurl::Responder::completedHeader(U32 status, std::string const &, LLSD const &) { } +void LLMessageSystem::getF32(char const *,char const *,F32 &,S32) { } +void LLMessageSystem::getU8(char const *,char const *,U8 &,S32) { } +void LLMessageSystem::getS32(char const *,char const *,S32 &,S32) { } +void LLMessageSystem::getString(char const *,char const *, std::string &,S32) { } +void LLMessageSystem::getUUID(char const *,char const *, LLUUID & out_id,S32) +{ + out_id = TEST_PARCEL_ID; +} +void LLMessageSystem::nextBlock(char const *) { } +void LLMessageSystem::addUUID(char const *,LLUUID const &) { } +void LLMessageSystem::addUUIDFast(char const *,LLUUID const &) { } +void LLMessageSystem::nextBlockFast(char const *) { } +void LLMessageSystem::newMessage(char const *) { } +LLMessageSystem * gMessageSystem; +char const* const _PREHASH_AgentID = 0; // never dereferenced during this test +char const* const _PREHASH_AgentData = 0; // never dereferenced during this test +LLAgent gAgent; +LLAgent::LLAgent() : mAgentAccess(NULL) { } +LLAgent::~LLAgent() { } +void LLAgent::sendReliableMessage(void) { } +LLUUID gAgentSessionID; +LLUUID gAgentID; +LLUIColor::LLUIColor(void) { } +LLControlGroup::LLControlGroup(std::string const & name) : LLInstanceTracker<LLControlGroup, std::string>(name) { } +LLControlGroup::~LLControlGroup(void) { } +void LLUrlEntryParcel::processParcelInfo(const LLUrlEntryParcel::LLParcelData& parcel_data) { } + +namespace tut +{ + struct TestObserver : public LLRemoteParcelInfoObserver { + TestObserver() : mProcessed(false) { } + + virtual void processParcelInfo(const LLParcelData& parcel_data) + { + mProcessed = true; + } + + virtual void setParcelID(const LLUUID& parcel_id) { } + + virtual void setErrorStatus(U32 status, const std::string& reason) { } + + bool mProcessed; + }; + + struct RemoteParcelRequestData + { + RemoteParcelRequestData() + { + } + }; + + typedef test_group<RemoteParcelRequestData> remoteparcelrequest_t; + typedef remoteparcelrequest_t::object remoteparcelrequest_object_t; + tut::remoteparcelrequest_t tut_remoteparcelrequest("LLRemoteParcelRequest"); + + template<> template<> + void remoteparcelrequest_object_t::test<1>() + { + set_test_name("observer pointer"); + + boost::scoped_ptr<TestObserver> observer(new TestObserver()); + + LLRemoteParcelInfoProcessor & processor = LLRemoteParcelInfoProcessor::instance(); + processor.addObserver(LLUUID(TEST_PARCEL_ID), observer.get()); + + processor.processParcelInfoReply(gMessageSystem, NULL); + + ensure(observer->mProcessed); + } + + template<> template<> + void remoteparcelrequest_object_t::test<2>() + { + set_test_name("CHOP-220: dangling observer pointer"); + + LLRemoteParcelInfoObserver * observer = new TestObserver(); + + LLRemoteParcelInfoProcessor & processor = LLRemoteParcelInfoProcessor::instance(); + processor.addObserver(LLUUID(TEST_PARCEL_ID), observer); + + delete observer; + observer = NULL; + + processor.processParcelInfoReply(gMessageSystem, NULL); + } +} diff --git a/indra/newview/tests/llsimplestat_test.cpp b/indra/newview/tests/llsimplestat_test.cpp new file mode 100644 index 0000000000..b556941f4a --- /dev/null +++ b/indra/newview/tests/llsimplestat_test.cpp @@ -0,0 +1,580 @@ +/** + * @file llsimplestats_test.cpp + * @date 2010-10-22 + * @brief Test cases for some of llsimplestat.h + * + * $LicenseInfo:firstyear=2010&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "linden_common.h" + +#include <tut/tut.hpp> + +#include "lltut.h" +#include "../llsimplestat.h" +#include "llsd.h" +#include "llmath.h" + +// @brief Used as a pointer cast type to get access to LLSimpleStatCounter +class TutStatCounter: public LLSimpleStatCounter +{ +public: + TutStatCounter(); // Not defined + ~TutStatCounter(); // Not defined + void operator=(const TutStatCounter &); // Not defined + + void setRawCount(U32 c) { mCount = c; } + U32 getRawCount() const { return mCount; } +}; + + +namespace tut +{ + struct stat_counter_index + {}; + typedef test_group<stat_counter_index> stat_counter_index_t; + typedef stat_counter_index_t::object stat_counter_index_object_t; + tut::stat_counter_index_t tut_stat_counter_index("stat_counter_test"); + + // Testing LLSimpleStatCounter's external interface + template<> template<> + void stat_counter_index_object_t::test<1>() + { + LLSimpleStatCounter c1; + ensure("Initialized counter is zero", (0 == c1.getCount())); + + ensure("Counter increment return is 1", (1 == ++c1)); + ensure("Counter increment return is 2", (2 == ++c1)); + + ensure("Current counter is 2", (2 == c1.getCount())); + + c1.reset(); + ensure("Counter is 0 after reset", (0 == c1.getCount())); + + ensure("Counter increment return is 1", (1 == ++c1)); + } + + // Testing LLSimpleStatCounter's internal state + template<> template<> + void stat_counter_index_object_t::test<2>() + { + LLSimpleStatCounter c1; + TutStatCounter * tc1 = (TutStatCounter *) &c1; + + ensure("Initialized private counter is zero", (0 == tc1->getRawCount())); + + ++c1; + ++c1; + + ensure("Current private counter is 2", (2 == tc1->getRawCount())); + + c1.reset(); + ensure("Raw counter is 0 after reset", (0 == tc1->getRawCount())); + } + + // Testing LLSimpleStatCounter's wrapping behavior + template<> template<> + void stat_counter_index_object_t::test<3>() + { + LLSimpleStatCounter c1; + TutStatCounter * tc1 = (TutStatCounter *) &c1; + + tc1->setRawCount(U32_MAX); + ensure("Initialized private counter is zero", (U32_MAX == c1.getCount())); + + ensure("Increment of max value wraps to 0", (0 == ++c1)); + } + + // Testing LLSimpleStatMMM's external behavior + template<> template<> + void stat_counter_index_object_t::test<4>() + { + LLSimpleStatMMM<> m1; + typedef LLSimpleStatMMM<>::Value lcl_float; + lcl_float zero(0); + + // Freshly-constructed + ensure("Constructed MMM<> has 0 count", (0 == m1.getCount())); + ensure("Constructed MMM<> has 0 min", (zero == m1.getMin())); + ensure("Constructed MMM<> has 0 max", (zero == m1.getMax())); + ensure("Constructed MMM<> has 0 mean no div-by-zero", (zero == m1.getMean())); + + // Single insert + m1.record(1.0); + ensure("Single insert MMM<> has 1 count", (1 == m1.getCount())); + ensure("Single insert MMM<> has 1.0 min", (1.0 == m1.getMin())); + ensure("Single insert MMM<> has 1.0 max", (1.0 == m1.getMax())); + ensure("Single insert MMM<> has 1.0 mean", (1.0 == m1.getMean())); + + // Second insert + m1.record(3.0); + ensure("2nd insert MMM<> has 2 count", (2 == m1.getCount())); + ensure("2nd insert MMM<> has 1.0 min", (1.0 == m1.getMin())); + ensure("2nd insert MMM<> has 3.0 max", (3.0 == m1.getMax())); + ensure_approximately_equals("2nd insert MMM<> has 2.0 mean", m1.getMean(), lcl_float(2.0), 1); + + // Third insert + m1.record(5.0); + ensure("3rd insert MMM<> has 3 count", (3 == m1.getCount())); + ensure("3rd insert MMM<> has 1.0 min", (1.0 == m1.getMin())); + ensure("3rd insert MMM<> has 5.0 max", (5.0 == m1.getMax())); + ensure_approximately_equals("3rd insert MMM<> has 3.0 mean", m1.getMean(), lcl_float(3.0), 1); + + // Fourth insert + m1.record(1000000.0); + ensure("4th insert MMM<> has 4 count", (4 == m1.getCount())); + ensure("4th insert MMM<> has 1.0 min", (1.0 == m1.getMin())); + ensure("4th insert MMM<> has 100000.0 max", (1000000.0 == m1.getMax())); + ensure_approximately_equals("4th insert MMM<> has 250002.0 mean", m1.getMean(), lcl_float(250002.0), 1); + + // Reset + m1.reset(); + ensure("Reset MMM<> has 0 count", (0 == m1.getCount())); + ensure("Reset MMM<> has 0 min", (zero == m1.getMin())); + ensure("Reset MMM<> has 0 max", (zero == m1.getMax())); + ensure("Reset MMM<> has 0 mean no div-by-zero", (zero == m1.getMean())); + } + + // Testing LLSimpleStatMMM's response to large values + template<> template<> + void stat_counter_index_object_t::test<5>() + { + LLSimpleStatMMM<> m1; + typedef LLSimpleStatMMM<>::Value lcl_float; + lcl_float zero(0); + + // Insert overflowing values + const lcl_float bignum(F32_MAX / 2); + + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(zero); + + ensure("Overflowed MMM<> has 8 count", (8 == m1.getCount())); + ensure("Overflowed MMM<> has 0 min", (zero == m1.getMin())); + ensure("Overflowed MMM<> has huge max", (bignum == m1.getMax())); + ensure("Overflowed MMM<> has fetchable mean", (1.0 == m1.getMean() || true)); + // We should be infinte but not interested in proving the IEEE standard here. + LLSD sd1(m1.getMean()); + // std::cout << "Thingy: " << m1.getMean() << " and as LLSD: " << sd1 << std::endl; + ensure("Overflowed MMM<> produces LLSDable Real", (sd1.isReal())); + } + + // Testing LLSimpleStatMMM<F32>'s external behavior + template<> template<> + void stat_counter_index_object_t::test<6>() + { + LLSimpleStatMMM<F32> m1; + typedef LLSimpleStatMMM<F32>::Value lcl_float; + lcl_float zero(0); + + // Freshly-constructed + ensure("Constructed MMM<F32> has 0 count", (0 == m1.getCount())); + ensure("Constructed MMM<F32> has 0 min", (zero == m1.getMin())); + ensure("Constructed MMM<F32> has 0 max", (zero == m1.getMax())); + ensure("Constructed MMM<F32> has 0 mean no div-by-zero", (zero == m1.getMean())); + + // Single insert + m1.record(1.0); + ensure("Single insert MMM<F32> has 1 count", (1 == m1.getCount())); + ensure("Single insert MMM<F32> has 1.0 min", (1.0 == m1.getMin())); + ensure("Single insert MMM<F32> has 1.0 max", (1.0 == m1.getMax())); + ensure("Single insert MMM<F32> has 1.0 mean", (1.0 == m1.getMean())); + + // Second insert + m1.record(3.0); + ensure("2nd insert MMM<F32> has 2 count", (2 == m1.getCount())); + ensure("2nd insert MMM<F32> has 1.0 min", (1.0 == m1.getMin())); + ensure("2nd insert MMM<F32> has 3.0 max", (3.0 == m1.getMax())); + ensure_approximately_equals("2nd insert MMM<F32> has 2.0 mean", m1.getMean(), lcl_float(2.0), 1); + + // Third insert + m1.record(5.0); + ensure("3rd insert MMM<F32> has 3 count", (3 == m1.getCount())); + ensure("3rd insert MMM<F32> has 1.0 min", (1.0 == m1.getMin())); + ensure("3rd insert MMM<F32> has 5.0 max", (5.0 == m1.getMax())); + ensure_approximately_equals("3rd insert MMM<F32> has 3.0 mean", m1.getMean(), lcl_float(3.0), 1); + + // Fourth insert + m1.record(1000000.0); + ensure("4th insert MMM<F32> has 4 count", (4 == m1.getCount())); + ensure("4th insert MMM<F32> has 1.0 min", (1.0 == m1.getMin())); + ensure("4th insert MMM<F32> has 1000000.0 max", (1000000.0 == m1.getMax())); + ensure_approximately_equals("4th insert MMM<F32> has 250002.0 mean", m1.getMean(), lcl_float(250002.0), 1); + + // Reset + m1.reset(); + ensure("Reset MMM<F32> has 0 count", (0 == m1.getCount())); + ensure("Reset MMM<F32> has 0 min", (zero == m1.getMin())); + ensure("Reset MMM<F32> has 0 max", (zero == m1.getMax())); + ensure("Reset MMM<F32> has 0 mean no div-by-zero", (zero == m1.getMean())); + } + + // Testing LLSimpleStatMMM's response to large values + template<> template<> + void stat_counter_index_object_t::test<7>() + { + LLSimpleStatMMM<F32> m1; + typedef LLSimpleStatMMM<F32>::Value lcl_float; + lcl_float zero(0); + + // Insert overflowing values + const lcl_float bignum(F32_MAX / 2); + + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(zero); + + ensure("Overflowed MMM<F32> has 8 count", (8 == m1.getCount())); + ensure("Overflowed MMM<F32> has 0 min", (zero == m1.getMin())); + ensure("Overflowed MMM<F32> has huge max", (bignum == m1.getMax())); + ensure("Overflowed MMM<F32> has fetchable mean", (1.0 == m1.getMean() || true)); + // We should be infinte but not interested in proving the IEEE standard here. + LLSD sd1(m1.getMean()); + // std::cout << "Thingy: " << m1.getMean() << " and as LLSD: " << sd1 << std::endl; + ensure("Overflowed MMM<F32> produces LLSDable Real", (sd1.isReal())); + } + + // Testing LLSimpleStatMMM<F64>'s external behavior + template<> template<> + void stat_counter_index_object_t::test<8>() + { + LLSimpleStatMMM<F64> m1; + typedef LLSimpleStatMMM<F64>::Value lcl_float; + lcl_float zero(0); + + // Freshly-constructed + ensure("Constructed MMM<F64> has 0 count", (0 == m1.getCount())); + ensure("Constructed MMM<F64> has 0 min", (zero == m1.getMin())); + ensure("Constructed MMM<F64> has 0 max", (zero == m1.getMax())); + ensure("Constructed MMM<F64> has 0 mean no div-by-zero", (zero == m1.getMean())); + + // Single insert + m1.record(1.0); + ensure("Single insert MMM<F64> has 1 count", (1 == m1.getCount())); + ensure("Single insert MMM<F64> has 1.0 min", (1.0 == m1.getMin())); + ensure("Single insert MMM<F64> has 1.0 max", (1.0 == m1.getMax())); + ensure("Single insert MMM<F64> has 1.0 mean", (1.0 == m1.getMean())); + + // Second insert + m1.record(3.0); + ensure("2nd insert MMM<F64> has 2 count", (2 == m1.getCount())); + ensure("2nd insert MMM<F64> has 1.0 min", (1.0 == m1.getMin())); + ensure("2nd insert MMM<F64> has 3.0 max", (3.0 == m1.getMax())); + ensure_approximately_equals("2nd insert MMM<F64> has 2.0 mean", m1.getMean(), lcl_float(2.0), 1); + + // Third insert + m1.record(5.0); + ensure("3rd insert MMM<F64> has 3 count", (3 == m1.getCount())); + ensure("3rd insert MMM<F64> has 1.0 min", (1.0 == m1.getMin())); + ensure("3rd insert MMM<F64> has 5.0 max", (5.0 == m1.getMax())); + ensure_approximately_equals("3rd insert MMM<F64> has 3.0 mean", m1.getMean(), lcl_float(3.0), 1); + + // Fourth insert + m1.record(1000000.0); + ensure("4th insert MMM<F64> has 4 count", (4 == m1.getCount())); + ensure("4th insert MMM<F64> has 1.0 min", (1.0 == m1.getMin())); + ensure("4th insert MMM<F64> has 1000000.0 max", (1000000.0 == m1.getMax())); + ensure_approximately_equals("4th insert MMM<F64> has 250002.0 mean", m1.getMean(), lcl_float(250002.0), 1); + + // Reset + m1.reset(); + ensure("Reset MMM<F64> has 0 count", (0 == m1.getCount())); + ensure("Reset MMM<F64> has 0 min", (zero == m1.getMin())); + ensure("Reset MMM<F64> has 0 max", (zero == m1.getMax())); + ensure("Reset MMM<F64> has 0 mean no div-by-zero", (zero == m1.getMean())); + } + + // Testing LLSimpleStatMMM's response to large values + template<> template<> + void stat_counter_index_object_t::test<9>() + { + LLSimpleStatMMM<F64> m1; + typedef LLSimpleStatMMM<F64>::Value lcl_float; + lcl_float zero(0); + + // Insert overflowing values + const lcl_float bignum(F64_MAX / 2); + + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(zero); + + ensure("Overflowed MMM<F64> has 8 count", (8 == m1.getCount())); + ensure("Overflowed MMM<F64> has 0 min", (zero == m1.getMin())); + ensure("Overflowed MMM<F64> has huge max", (bignum == m1.getMax())); + ensure("Overflowed MMM<F64> has fetchable mean", (1.0 == m1.getMean() || true)); + // We should be infinte but not interested in proving the IEEE standard here. + LLSD sd1(m1.getMean()); + // std::cout << "Thingy: " << m1.getMean() << " and as LLSD: " << sd1 << std::endl; + ensure("Overflowed MMM<F64> produces LLSDable Real", (sd1.isReal())); + } + + // Testing LLSimpleStatMMM<U64>'s external behavior + template<> template<> + void stat_counter_index_object_t::test<10>() + { + LLSimpleStatMMM<U64> m1; + typedef LLSimpleStatMMM<U64>::Value lcl_int; + lcl_int zero(0); + + // Freshly-constructed + ensure("Constructed MMM<U64> has 0 count", (0 == m1.getCount())); + ensure("Constructed MMM<U64> has 0 min", (zero == m1.getMin())); + ensure("Constructed MMM<U64> has 0 max", (zero == m1.getMax())); + ensure("Constructed MMM<U64> has 0 mean no div-by-zero", (zero == m1.getMean())); + + // Single insert + m1.record(1); + ensure("Single insert MMM<U64> has 1 count", (1 == m1.getCount())); + ensure("Single insert MMM<U64> has 1 min", (1 == m1.getMin())); + ensure("Single insert MMM<U64> has 1 max", (1 == m1.getMax())); + ensure("Single insert MMM<U64> has 1 mean", (1 == m1.getMean())); + + // Second insert + m1.record(3); + ensure("2nd insert MMM<U64> has 2 count", (2 == m1.getCount())); + ensure("2nd insert MMM<U64> has 1 min", (1 == m1.getMin())); + ensure("2nd insert MMM<U64> has 3 max", (3 == m1.getMax())); + ensure("2nd insert MMM<U64> has 2 mean", (2 == m1.getMean())); + + // Third insert + m1.record(5); + ensure("3rd insert MMM<U64> has 3 count", (3 == m1.getCount())); + ensure("3rd insert MMM<U64> has 1 min", (1 == m1.getMin())); + ensure("3rd insert MMM<U64> has 5 max", (5 == m1.getMax())); + ensure("3rd insert MMM<U64> has 3 mean", (3 == m1.getMean())); + + // Fourth insert + m1.record(U64L(1000000000000)); + ensure("4th insert MMM<U64> has 4 count", (4 == m1.getCount())); + ensure("4th insert MMM<U64> has 1 min", (1 == m1.getMin())); + ensure("4th insert MMM<U64> has 1000000000000ULL max", (U64L(1000000000000) == m1.getMax())); + ensure("4th insert MMM<U64> has 250000000002ULL mean", (U64L( 250000000002) == m1.getMean())); + + // Reset + m1.reset(); + ensure("Reset MMM<U64> has 0 count", (0 == m1.getCount())); + ensure("Reset MMM<U64> has 0 min", (zero == m1.getMin())); + ensure("Reset MMM<U64> has 0 max", (zero == m1.getMax())); + ensure("Reset MMM<U64> has 0 mean no div-by-zero", (zero == m1.getMean())); + } + + // Testing LLSimpleStatMMM's response to large values + template<> template<> + void stat_counter_index_object_t::test<11>() + { + LLSimpleStatMMM<U64> m1; + typedef LLSimpleStatMMM<U64>::Value lcl_int; + lcl_int zero(0); + + // Insert overflowing values + const lcl_int bignum(U64L(0xffffffffffffffff) / 2); + + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(bignum); + m1.record(zero); + + ensure("Overflowed MMM<U64> has 8 count", (8 == m1.getCount())); + ensure("Overflowed MMM<U64> has 0 min", (zero == m1.getMin())); + ensure("Overflowed MMM<U64> has huge max", (bignum == m1.getMax())); + ensure("Overflowed MMM<U64> has fetchable mean", (zero == m1.getMean() || true)); + } + + // Testing LLSimpleStatCounter's merge() method + template<> template<> + void stat_counter_index_object_t::test<12>() + { + LLSimpleStatCounter c1; + LLSimpleStatCounter c2; + + ++c1; + ++c1; + ++c1; + ++c1; + + ++c2; + ++c2; + c2.merge(c1); + + ensure_equals("4 merged into 2 results in 6", 6, c2.getCount()); + + ensure_equals("Source of merge is undamaged", 4, c1.getCount()); + } + + // Testing LLSimpleStatMMM's merge() method + template<> template<> + void stat_counter_index_object_t::test<13>() + { + LLSimpleStatMMM<> m1; + LLSimpleStatMMM<> m2; + + m1.record(3.5); + m1.record(4.5); + m1.record(5.5); + m1.record(6.5); + + m2.record(5.0); + m2.record(7.0); + m2.record(9.0); + + m2.merge(m1); + + ensure_equals("Count after merge (p1)", 7, m2.getCount()); + ensure_approximately_equals("Min after merge (p1)", F32(3.5), m2.getMin(), 22); + ensure_approximately_equals("Max after merge (p1)", F32(9.0), m2.getMax(), 22); + ensure_approximately_equals("Mean after merge (p1)", F32(41.000/7.000), m2.getMean(), 22); + + + ensure_equals("Source count of merge is undamaged (p1)", 4, m1.getCount()); + ensure_approximately_equals("Source min of merge is undamaged (p1)", F32(3.5), m1.getMin(), 22); + ensure_approximately_equals("Source max of merge is undamaged (p1)", F32(6.5), m1.getMax(), 22); + ensure_approximately_equals("Source mean of merge is undamaged (p1)", F32(5.0), m1.getMean(), 22); + + m2.reset(); + + m2.record(-22.0); + m2.record(-1.0); + m2.record(30.0); + + m2.merge(m1); + + ensure_equals("Count after merge (p2)", 7, m2.getCount()); + ensure_approximately_equals("Min after merge (p2)", F32(-22.0), m2.getMin(), 22); + ensure_approximately_equals("Max after merge (p2)", F32(30.0), m2.getMax(), 22); + ensure_approximately_equals("Mean after merge (p2)", F32(27.000/7.000), m2.getMean(), 22); + + } + + // Testing LLSimpleStatMMM's merge() method when src contributes nothing + template<> template<> + void stat_counter_index_object_t::test<14>() + { + LLSimpleStatMMM<> m1; + LLSimpleStatMMM<> m2; + + m2.record(5.0); + m2.record(7.0); + m2.record(9.0); + + m2.merge(m1); + + ensure_equals("Count after merge (p1)", 3, m2.getCount()); + ensure_approximately_equals("Min after merge (p1)", F32(5.0), m2.getMin(), 22); + ensure_approximately_equals("Max after merge (p1)", F32(9.0), m2.getMax(), 22); + ensure_approximately_equals("Mean after merge (p1)", F32(7.000), m2.getMean(), 22); + + ensure_equals("Source count of merge is undamaged (p1)", 0, m1.getCount()); + ensure_approximately_equals("Source min of merge is undamaged (p1)", F32(0), m1.getMin(), 22); + ensure_approximately_equals("Source max of merge is undamaged (p1)", F32(0), m1.getMax(), 22); + ensure_approximately_equals("Source mean of merge is undamaged (p1)", F32(0), m1.getMean(), 22); + + m2.reset(); + + m2.record(-22.0); + m2.record(-1.0); + + m2.merge(m1); + + ensure_equals("Count after merge (p2)", 2, m2.getCount()); + ensure_approximately_equals("Min after merge (p2)", F32(-22.0), m2.getMin(), 22); + ensure_approximately_equals("Max after merge (p2)", F32(-1.0), m2.getMax(), 22); + ensure_approximately_equals("Mean after merge (p2)", F32(-11.5), m2.getMean(), 22); + } + + // Testing LLSimpleStatMMM's merge() method when dst contributes nothing + template<> template<> + void stat_counter_index_object_t::test<15>() + { + LLSimpleStatMMM<> m1; + LLSimpleStatMMM<> m2; + + m1.record(5.0); + m1.record(7.0); + m1.record(9.0); + + m2.merge(m1); + + ensure_equals("Count after merge (p1)", 3, m2.getCount()); + ensure_approximately_equals("Min after merge (p1)", F32(5.0), m2.getMin(), 22); + ensure_approximately_equals("Max after merge (p1)", F32(9.0), m2.getMax(), 22); + ensure_approximately_equals("Mean after merge (p1)", F32(7.000), m2.getMean(), 22); + + ensure_equals("Source count of merge is undamaged (p1)", 3, m1.getCount()); + ensure_approximately_equals("Source min of merge is undamaged (p1)", F32(5.0), m1.getMin(), 22); + ensure_approximately_equals("Source max of merge is undamaged (p1)", F32(9.0), m1.getMax(), 22); + ensure_approximately_equals("Source mean of merge is undamaged (p1)", F32(7.0), m1.getMean(), 22); + + m1.reset(); + m2.reset(); + + m1.record(-22.0); + m1.record(-1.0); + + m2.merge(m1); + + ensure_equals("Count after merge (p2)", 2, m2.getCount()); + ensure_approximately_equals("Min after merge (p2)", F32(-22.0), m2.getMin(), 22); + ensure_approximately_equals("Max after merge (p2)", F32(-1.0), m2.getMax(), 22); + ensure_approximately_equals("Mean after merge (p2)", F32(-11.5), m2.getMean(), 22); + } + + // Testing LLSimpleStatMMM's merge() method when neither dst nor src contributes + template<> template<> + void stat_counter_index_object_t::test<16>() + { + LLSimpleStatMMM<> m1; + LLSimpleStatMMM<> m2; + + m2.merge(m1); + + ensure_equals("Count after merge (p1)", 0, m2.getCount()); + ensure_approximately_equals("Min after merge (p1)", F32(0), m2.getMin(), 22); + ensure_approximately_equals("Max after merge (p1)", F32(0), m2.getMax(), 22); + ensure_approximately_equals("Mean after merge (p1)", F32(0), m2.getMean(), 22); + + ensure_equals("Source count of merge is undamaged (p1)", 0, m1.getCount()); + ensure_approximately_equals("Source min of merge is undamaged (p1)", F32(0), m1.getMin(), 22); + ensure_approximately_equals("Source max of merge is undamaged (p1)", F32(0), m1.getMax(), 22); + ensure_approximately_equals("Source mean of merge is undamaged (p1)", F32(0), m1.getMean(), 22); + } +} diff --git a/indra/newview/tests/llversioninfo_test.cpp b/indra/newview/tests/llversioninfo_test.cpp new file mode 100644 index 0000000000..398d8f16ed --- /dev/null +++ b/indra/newview/tests/llversioninfo_test.cpp @@ -0,0 +1,114 @@ +/** + * @file llversioninfo_test.cpp + * + * $LicenseInfo:firstyear=2010&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "linden_common.h" + +#include "../test/lltut.h" + +#include "../llversioninfo.h" +#include "llversionviewer.h" + +namespace tut +{ + struct versioninfo + { + versioninfo() + : mResetChannel("Reset Channel") + { + std::ostringstream stream; + stream << LL_VERSION_MAJOR << "." + << LL_VERSION_MINOR << "." + << LL_VERSION_PATCH << "." + << LL_VERSION_BUILD; + mVersion = stream.str(); + stream.str(""); + + stream << LL_VERSION_MAJOR << "." + << LL_VERSION_MINOR << "." + << LL_VERSION_PATCH; + mShortVersion = stream.str(); + stream.str(""); + + stream << LL_CHANNEL + << " " + << mVersion; + mVersionAndChannel = stream.str(); + stream.str(""); + + stream << mResetChannel + << " " + << mVersion; + mResetVersionAndChannel = stream.str(); + } + std::string mResetChannel; + std::string mVersion; + std::string mShortVersion; + std::string mVersionAndChannel; + std::string mResetVersionAndChannel; + }; + + typedef test_group<versioninfo> versioninfo_t; + typedef versioninfo_t::object versioninfo_object_t; + tut::versioninfo_t tut_versioninfo("LLVersionInfo"); + + template<> template<> + void versioninfo_object_t::test<1>() + { + ensure_equals("Major version", + LLVersionInfo::getMajor(), + LL_VERSION_MAJOR); + ensure_equals("Minor version", + LLVersionInfo::getMinor(), + LL_VERSION_MINOR); + ensure_equals("Patch version", + LLVersionInfo::getPatch(), + LL_VERSION_PATCH); + ensure_equals("Build version", + LLVersionInfo::getBuild(), + LL_VERSION_BUILD); + ensure_equals("Channel version", + LLVersionInfo::getChannel(), + LL_CHANNEL); + + ensure_equals("Version String", + LLVersionInfo::getVersion(), + mVersion); + ensure_equals("Short Version String", + LLVersionInfo::getShortVersion(), + mShortVersion); + ensure_equals("Version and channel String", + LLVersionInfo::getChannelAndVersion(), + mVersionAndChannel); + + LLVersionInfo::resetChannel(mResetChannel); + ensure_equals("Reset channel version", + LLVersionInfo::getChannel(), + mResetChannel); + + ensure_equals("Reset Version and channel String", + LLVersionInfo::getChannelAndVersion(), + mResetVersionAndChannel); + } +} diff --git a/indra/newview/tests/llviewerassetstats_test.cpp b/indra/newview/tests/llviewerassetstats_test.cpp new file mode 100644 index 0000000000..3faddc13c1 --- /dev/null +++ b/indra/newview/tests/llviewerassetstats_test.cpp @@ -0,0 +1,984 @@ +/** + * @file llviewerassetstats_tut.cpp + * @date 2010-10-28 + * @brief Test cases for some of newview/llviewerassetstats.cpp + * + * $LicenseInfo:firstyear=2010&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "linden_common.h" + +#include <tut/tut.hpp> +#include <iostream> + +#include "lltut.h" +#include "../llviewerassetstats.h" +#include "lluuid.h" +#include "llsdutil.h" +#include "llregionhandle.h" + +static const char * all_keys[] = +{ + "duration", + "fps", + "get_other", + "get_texture_temp_http", + "get_texture_temp_udp", + "get_texture_non_temp_http", + "get_texture_non_temp_udp", + "get_wearable_udp", + "get_sound_udp", + "get_gesture_udp" +}; + +static const char * resp_keys[] = +{ + "get_other", + "get_texture_temp_http", + "get_texture_temp_udp", + "get_texture_non_temp_http", + "get_texture_non_temp_udp", + "get_wearable_udp", + "get_sound_udp", + "get_gesture_udp" +}; + +static const char * sub_keys[] = +{ + "dequeued", + "enqueued", + "resp_count", + "resp_max", + "resp_min", + "resp_mean" +}; + +static const char * mmm_resp_keys[] = +{ + "fps" +}; + +static const char * mmm_sub_keys[] = +{ + "count", + "max", + "min", + "mean" +}; + +static const LLUUID region1("4e2d81a3-6263-6ffe-ad5c-8ce04bee07e8"); +static const LLUUID region2("68762cc8-b68b-4e45-854b-e830734f2d4a"); +static const U64 region1_handle(0x0000040000003f00ULL); +static const U64 region2_handle(0x0000030000004200ULL); +static const std::string region1_handle_str("0000040000003f00"); +static const std::string region2_handle_str("0000030000004200"); + +#if 0 +static bool +is_empty_map(const LLSD & sd) +{ + return sd.isMap() && 0 == sd.size(); +} + +static bool +is_single_key_map(const LLSD & sd, const std::string & key) +{ + return sd.isMap() && 1 == sd.size() && sd.has(key); +} +#endif + +static bool +is_double_key_map(const LLSD & sd, const std::string & key1, const std::string & key2) +{ + return sd.isMap() && 2 == sd.size() && sd.has(key1) && sd.has(key2); +} + +static bool +is_no_stats_map(const LLSD & sd) +{ + return is_double_key_map(sd, "duration", "regions"); +} + +static bool +is_single_slot_array(const LLSD & sd, U64 region_handle) +{ + U32 grid_x(0), grid_y(0); + grid_from_region_handle(region_handle, &grid_x, &grid_y); + + return (sd.isArray() && + 1 == sd.size() && + sd[0].has("grid_x") && + sd[0].has("grid_y") && + sd[0]["grid_x"].isInteger() && + sd[0]["grid_y"].isInteger() && + grid_x == sd[0]["grid_x"].asInteger() && + grid_y == sd[0]["grid_y"].asInteger()); +} + +static bool +is_double_slot_array(const LLSD & sd, U64 region_handle1, U64 region_handle2) +{ + U32 grid_x1(0), grid_y1(0); + U32 grid_x2(0), grid_y2(0); + grid_from_region_handle(region_handle1, &grid_x1, &grid_y1); + grid_from_region_handle(region_handle2, &grid_x2, &grid_y2); + + return (sd.isArray() && + 2 == sd.size() && + sd[0].has("grid_x") && + sd[0].has("grid_y") && + sd[0]["grid_x"].isInteger() && + sd[0]["grid_y"].isInteger() && + sd[1].has("grid_x") && + sd[1].has("grid_y") && + sd[1]["grid_x"].isInteger() && + sd[1]["grid_y"].isInteger() && + ((grid_x1 == sd[0]["grid_x"].asInteger() && + grid_y1 == sd[0]["grid_y"].asInteger() && + grid_x2 == sd[1]["grid_x"].asInteger() && + grid_y2 == sd[1]["grid_y"].asInteger()) || + (grid_x1 == sd[1]["grid_x"].asInteger() && + grid_y1 == sd[1]["grid_y"].asInteger() && + grid_x2 == sd[0]["grid_x"].asInteger() && + grid_y2 == sd[0]["grid_y"].asInteger()))); +} + +static LLSD +get_region(const LLSD & sd, U64 region_handle1) +{ + U32 grid_x(0), grid_y(0); + grid_from_region_handle(region_handle1, &grid_x, &grid_y); + + for (LLSD::array_const_iterator it(sd["regions"].beginArray()); + sd["regions"].endArray() != it; + ++it) + { + if ((*it).has("grid_x") && + (*it).has("grid_y") && + (*it)["grid_x"].isInteger() && + (*it)["grid_y"].isInteger() && + (*it)["grid_x"].asInteger() == grid_x && + (*it)["grid_y"].asInteger() == grid_y) + { + return *it; + } + } + return LLSD(); +} + +namespace tut +{ + struct tst_viewerassetstats_index + {}; + typedef test_group<tst_viewerassetstats_index> tst_viewerassetstats_index_t; + typedef tst_viewerassetstats_index_t::object tst_viewerassetstats_index_object_t; + tut::tst_viewerassetstats_index_t tut_tst_viewerassetstats_index("tst_viewerassetstats_test"); + + // Testing free functions without global stats allocated + template<> template<> + void tst_viewerassetstats_index_object_t::test<1>() + { + // Check that helpers aren't bothered by missing global stats + ensure("Global gViewerAssetStatsMain should be NULL", (NULL == gViewerAssetStatsMain)); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_TEXTURE, false, false); + + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_TEXTURE, false, false); + + LLViewerAssetStatsFF::record_response_main(LLViewerAssetType::AT_GESTURE, false, false, 12300000ULL); + } + + // Create a non-global instance and check the structure + template<> template<> + void tst_viewerassetstats_index_object_t::test<2>() + { + ensure("Global gViewerAssetStatsMain should be NULL", (NULL == gViewerAssetStatsMain)); + + LLViewerAssetStats * it = new LLViewerAssetStats(); + + ensure("Global gViewerAssetStatsMain should still be NULL", (NULL == gViewerAssetStatsMain)); + + LLSD sd_full = it->asLLSD(false); + + // Default (NULL) region ID doesn't produce LLSD results so should + // get an empty map back from output + ensure("Stat-less LLSD initially", is_no_stats_map(sd_full)); + + // Once the region is set, we will get a response even with no data collection + it->setRegion(region1_handle); + sd_full = it->asLLSD(false); + ensure("Correct single-key LLSD map root", is_double_key_map(sd_full, "duration", "regions")); + ensure("Correct single-slot LLSD array regions", is_single_slot_array(sd_full["regions"], region1_handle)); + + LLSD sd = sd_full["regions"][0]; + + delete it; + + // Check the structure of the LLSD + for (int i = 0; i < LL_ARRAY_SIZE(all_keys); ++i) + { + std::string line = llformat("Has '%s' key", all_keys[i]); + ensure(line, sd.has(all_keys[i])); + } + + for (int i = 0; i < LL_ARRAY_SIZE(resp_keys); ++i) + { + for (int j = 0; j < LL_ARRAY_SIZE(sub_keys); ++j) + { + std::string line = llformat("Key '%s' has '%s' key", resp_keys[i], sub_keys[j]); + ensure(line, sd[resp_keys[i]].has(sub_keys[j])); + } + } + + for (int i = 0; i < LL_ARRAY_SIZE(mmm_resp_keys); ++i) + { + for (int j = 0; j < LL_ARRAY_SIZE(mmm_sub_keys); ++j) + { + std::string line = llformat("Key '%s' has '%s' key", mmm_resp_keys[i], mmm_sub_keys[j]); + ensure(line, sd[mmm_resp_keys[i]].has(mmm_sub_keys[j])); + } + } + } + + // Create a non-global instance and check some content + template<> template<> + void tst_viewerassetstats_index_object_t::test<3>() + { + LLViewerAssetStats * it = new LLViewerAssetStats(); + it->setRegion(region1_handle); + + LLSD sd = it->asLLSD(false); + ensure("Correct single-key LLSD map root", is_double_key_map(sd, "regions", "duration")); + ensure("Correct single-slot LLSD array regions", is_single_slot_array(sd["regions"], region1_handle)); + sd = sd[0]; + + delete it; + + // Check a few points on the tree for content + ensure("sd[get_texture_temp_http][dequeued] is 0", (0 == sd["get_texture_temp_http"]["dequeued"].asInteger())); + ensure("sd[get_sound_udp][resp_min] is 0", (0.0 == sd["get_sound_udp"]["resp_min"].asReal())); + } + + // Create a global instance and verify free functions do something useful + template<> template<> + void tst_viewerassetstats_index_object_t::test<4>() + { + gViewerAssetStatsMain = new LLViewerAssetStats(); + LLViewerAssetStatsFF::set_region_main(region1_handle); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_TEXTURE, false, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_TEXTURE, false, false); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_BODYPART, false, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_BODYPART, false, false); + + LLSD sd = gViewerAssetStatsMain->asLLSD(false); + ensure("Correct single-key LLSD map root", is_double_key_map(sd, "regions", "duration")); + ensure("Correct single-slot LLSD array regions", is_single_slot_array(sd["regions"], region1_handle)); + sd = sd["regions"][0]; + + // Check a few points on the tree for content + ensure("sd[get_texture_non_temp_udp][enqueued] is 1", (1 == sd["get_texture_non_temp_udp"]["enqueued"].asInteger())); + ensure("sd[get_texture_temp_udp][enqueued] is 0", (0 == sd["get_texture_temp_udp"]["enqueued"].asInteger())); + ensure("sd[get_texture_non_temp_http][enqueued] is 0", (0 == sd["get_texture_non_temp_http"]["enqueued"].asInteger())); + ensure("sd[get_texture_temp_http][enqueued] is 0", (0 == sd["get_texture_temp_http"]["enqueued"].asInteger())); + ensure("sd[get_gesture_udp][dequeued] is 0", (0 == sd["get_gesture_udp"]["dequeued"].asInteger())); + + // Reset and check zeros... + // Reset leaves current region in place + gViewerAssetStatsMain->reset(); + sd = gViewerAssetStatsMain->asLLSD(false)["regions"][region1_handle_str]; + + delete gViewerAssetStatsMain; + gViewerAssetStatsMain = NULL; + + ensure("sd[get_texture_non_temp_udp][enqueued] is reset", (0 == sd["get_texture_non_temp_udp"]["enqueued"].asInteger())); + ensure("sd[get_gesture_udp][dequeued] is reset", (0 == sd["get_gesture_udp"]["dequeued"].asInteger())); + } + + // Create two global instances and verify no interactions + template<> template<> + void tst_viewerassetstats_index_object_t::test<5>() + { + gViewerAssetStatsThread1 = new LLViewerAssetStats(); + gViewerAssetStatsMain = new LLViewerAssetStats(); + LLViewerAssetStatsFF::set_region_main(region1_handle); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_TEXTURE, false, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_TEXTURE, false, false); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_BODYPART, false, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_BODYPART, false, false); + + LLSD sd = gViewerAssetStatsThread1->asLLSD(false); + ensure("Other collector is empty", is_no_stats_map(sd)); + sd = gViewerAssetStatsMain->asLLSD(false); + ensure("Correct single-key LLSD map root", is_double_key_map(sd, "regions", "duration")); + ensure("Correct single-slot LLSD array regions", is_single_slot_array(sd["regions"], region1_handle)); + sd = sd["regions"][0]; + + // Check a few points on the tree for content + ensure("sd[get_texture_non_temp_udp][enqueued] is 1", (1 == sd["get_texture_non_temp_udp"]["enqueued"].asInteger())); + ensure("sd[get_texture_temp_udp][enqueued] is 0", (0 == sd["get_texture_temp_udp"]["enqueued"].asInteger())); + ensure("sd[get_texture_non_temp_http][enqueued] is 0", (0 == sd["get_texture_non_temp_http"]["enqueued"].asInteger())); + ensure("sd[get_texture_temp_http][enqueued] is 0", (0 == sd["get_texture_temp_http"]["enqueued"].asInteger())); + ensure("sd[get_gesture_udp][dequeued] is 0", (0 == sd["get_gesture_udp"]["dequeued"].asInteger())); + + // Reset and check zeros... + // Reset leaves current region in place + gViewerAssetStatsMain->reset(); + sd = gViewerAssetStatsMain->asLLSD(false)["regions"][0]; + + delete gViewerAssetStatsMain; + gViewerAssetStatsMain = NULL; + delete gViewerAssetStatsThread1; + gViewerAssetStatsThread1 = NULL; + + ensure("sd[get_texture_non_temp_udp][enqueued] is reset", (0 == sd["get_texture_non_temp_udp"]["enqueued"].asInteger())); + ensure("sd[get_gesture_udp][dequeued] is reset", (0 == sd["get_gesture_udp"]["dequeued"].asInteger())); + } + + // Check multiple region collection + template<> template<> + void tst_viewerassetstats_index_object_t::test<6>() + { + gViewerAssetStatsMain = new LLViewerAssetStats(); + + LLViewerAssetStatsFF::set_region_main(region1_handle); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_TEXTURE, false, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_TEXTURE, false, false); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_BODYPART, false, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_BODYPART, false, false); + + LLViewerAssetStatsFF::set_region_main(region2_handle); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + + LLSD sd = gViewerAssetStatsMain->asLLSD(false); + + // std::cout << sd << std::endl; + + ensure("Correct double-key LLSD map root", is_double_key_map(sd, "duration", "regions")); + ensure("Correct double-slot LLSD array regions", is_double_slot_array(sd["regions"], region1_handle, region2_handle)); + LLSD sd1 = get_region(sd, region1_handle); + LLSD sd2 = get_region(sd, region2_handle); + ensure("Region1 is present in results", sd1.isMap()); + ensure("Region2 is present in results", sd2.isMap()); + + // Check a few points on the tree for content + ensure_equals("sd1[get_texture_non_temp_udp][enqueued] is 1", sd1["get_texture_non_temp_udp"]["enqueued"].asInteger(), 1); + ensure_equals("sd1[get_texture_temp_udp][enqueued] is 0", sd1["get_texture_temp_udp"]["enqueued"].asInteger(), 0); + ensure_equals("sd1[get_texture_non_temp_http][enqueued] is 0", sd1["get_texture_non_temp_http"]["enqueued"].asInteger(), 0); + ensure_equals("sd1[get_texture_temp_http][enqueued] is 0", sd1["get_texture_temp_http"]["enqueued"].asInteger(), 0); + ensure_equals("sd1[get_gesture_udp][dequeued] is 0", sd1["get_gesture_udp"]["dequeued"].asInteger(), 0); + + // Check a few points on the tree for content + ensure("sd2[get_gesture_udp][enqueued] is 4", (4 == sd2["get_gesture_udp"]["enqueued"].asInteger())); + ensure("sd2[get_gesture_udp][dequeued] is 0", (0 == sd2["get_gesture_udp"]["dequeued"].asInteger())); + ensure("sd2[get_texture_non_temp_udp][enqueued] is 0", (0 == sd2["get_texture_non_temp_udp"]["enqueued"].asInteger())); + + // Reset and check zeros... + // Reset leaves current region in place + gViewerAssetStatsMain->reset(); + sd = gViewerAssetStatsMain->asLLSD(false); + ensure("Correct single-key LLSD map root", is_double_key_map(sd, "regions", "duration")); + ensure("Correct single-slot LLSD array regions (p2)", is_single_slot_array(sd["regions"], region2_handle)); + sd2 = sd["regions"][0]; + + delete gViewerAssetStatsMain; + gViewerAssetStatsMain = NULL; + + ensure("sd2[get_texture_non_temp_udp][enqueued] is reset", (0 == sd2["get_texture_non_temp_udp"]["enqueued"].asInteger())); + ensure("sd2[get_gesture_udp][enqueued] is reset", (0 == sd2["get_gesture_udp"]["enqueued"].asInteger())); + } + + // Check multiple region collection jumping back-and-forth between regions + template<> template<> + void tst_viewerassetstats_index_object_t::test<7>() + { + gViewerAssetStatsMain = new LLViewerAssetStats(); + + LLViewerAssetStatsFF::set_region_main(region1_handle); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_TEXTURE, false, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_TEXTURE, false, false); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_BODYPART, false, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_BODYPART, false, false); + + LLViewerAssetStatsFF::set_region_main(region2_handle); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + + LLViewerAssetStatsFF::set_region_main(region1_handle); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_TEXTURE, true, true); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_TEXTURE, true, true); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_BODYPART, false, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_BODYPART, false, false); + + LLViewerAssetStatsFF::set_region_main(region2_handle); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_GESTURE, false, false); + + LLSD sd = gViewerAssetStatsMain->asLLSD(false); + + ensure("Correct double-key LLSD map root", is_double_key_map(sd, "duration", "regions")); + ensure("Correct double-slot LLSD array regions", is_double_slot_array(sd["regions"], region1_handle, region2_handle)); + LLSD sd1 = get_region(sd, region1_handle); + LLSD sd2 = get_region(sd, region2_handle); + ensure("Region1 is present in results", sd1.isMap()); + ensure("Region2 is present in results", sd2.isMap()); + + // Check a few points on the tree for content + ensure("sd1[get_texture_non_temp_udp][enqueued] is 1", (1 == sd1["get_texture_non_temp_udp"]["enqueued"].asInteger())); + ensure("sd1[get_texture_temp_udp][enqueued] is 0", (0 == sd1["get_texture_temp_udp"]["enqueued"].asInteger())); + ensure("sd1[get_texture_non_temp_http][enqueued] is 0", (0 == sd1["get_texture_non_temp_http"]["enqueued"].asInteger())); + ensure("sd1[get_texture_temp_http][enqueued] is 1", (1 == sd1["get_texture_temp_http"]["enqueued"].asInteger())); + ensure("sd1[get_gesture_udp][dequeued] is 0", (0 == sd1["get_gesture_udp"]["dequeued"].asInteger())); + + // Check a few points on the tree for content + ensure("sd2[get_gesture_udp][enqueued] is 8", (8 == sd2["get_gesture_udp"]["enqueued"].asInteger())); + ensure("sd2[get_gesture_udp][dequeued] is 0", (0 == sd2["get_gesture_udp"]["dequeued"].asInteger())); + ensure("sd2[get_texture_non_temp_udp][enqueued] is 0", (0 == sd2["get_texture_non_temp_udp"]["enqueued"].asInteger())); + + // Reset and check zeros... + // Reset leaves current region in place + gViewerAssetStatsMain->reset(); + sd = gViewerAssetStatsMain->asLLSD(false); + ensure("Correct single-key LLSD map root", is_double_key_map(sd, "duration", "regions")); + ensure("Correct single-slot LLSD array regions (p2)", is_single_slot_array(sd["regions"], region2_handle)); + sd2 = get_region(sd, region2_handle); + ensure("Region2 is present in results", sd2.isMap()); + + delete gViewerAssetStatsMain; + gViewerAssetStatsMain = NULL; + + ensure_equals("sd2[get_texture_non_temp_udp][enqueued] is reset", sd2["get_texture_non_temp_udp"]["enqueued"].asInteger(), 0); + ensure_equals("sd2[get_gesture_udp][enqueued] is reset", sd2["get_gesture_udp"]["enqueued"].asInteger(), 0); + } + + // Non-texture assets ignore transport and persistence flags + template<> template<> + void tst_viewerassetstats_index_object_t::test<8>() + { + gViewerAssetStatsThread1 = new LLViewerAssetStats(); + gViewerAssetStatsMain = new LLViewerAssetStats(); + LLViewerAssetStatsFF::set_region_main(region1_handle); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_TEXTURE, false, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_TEXTURE, false, false); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_BODYPART, false, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_BODYPART, false, false); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_BODYPART, false, true); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_BODYPART, false, true); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_BODYPART, true, false); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_BODYPART, true, false); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_BODYPART, true, true); + LLViewerAssetStatsFF::record_dequeue_main(LLViewerAssetType::AT_BODYPART, true, true); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_LSL_BYTECODE, false, false); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_LSL_BYTECODE, false, true); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_LSL_BYTECODE, true, false); + + LLViewerAssetStatsFF::record_enqueue_main(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + LLSD sd = gViewerAssetStatsThread1->asLLSD(false); + ensure("Other collector is empty", is_no_stats_map(sd)); + sd = gViewerAssetStatsMain->asLLSD(false); + ensure("Correct single-key LLSD map root", is_double_key_map(sd, "regions", "duration")); + ensure("Correct single-slot LLSD array regions", is_single_slot_array(sd["regions"], region1_handle)); + sd = get_region(sd, region1_handle); + ensure("Region1 is present in results", sd.isMap()); + + // Check a few points on the tree for content + ensure("sd[get_gesture_udp][enqueued] is 0", (0 == sd["get_gesture_udp"]["enqueued"].asInteger())); + ensure("sd[get_gesture_udp][dequeued] is 0", (0 == sd["get_gesture_udp"]["dequeued"].asInteger())); + + ensure("sd[get_wearable_udp][enqueued] is 4", (4 == sd["get_wearable_udp"]["enqueued"].asInteger())); + ensure("sd[get_wearable_udp][dequeued] is 4", (4 == sd["get_wearable_udp"]["dequeued"].asInteger())); + + ensure("sd[get_other][enqueued] is 4", (4 == sd["get_other"]["enqueued"].asInteger())); + ensure("sd[get_other][dequeued] is 0", (0 == sd["get_other"]["dequeued"].asInteger())); + + // Reset and check zeros... + // Reset leaves current region in place + gViewerAssetStatsMain->reset(); + sd = get_region(gViewerAssetStatsMain->asLLSD(false), region1_handle); + ensure("Region1 is present in results", sd.isMap()); + + delete gViewerAssetStatsMain; + gViewerAssetStatsMain = NULL; + delete gViewerAssetStatsThread1; + gViewerAssetStatsThread1 = NULL; + + ensure_equals("sd[get_texture_non_temp_udp][enqueued] is reset", sd["get_texture_non_temp_udp"]["enqueued"].asInteger(), 0); + ensure_equals("sd[get_gesture_udp][dequeued] is reset", sd["get_gesture_udp"]["dequeued"].asInteger(), 0); + } + + + // LLViewerAssetStats::merge() basic functions work + template<> template<> + void tst_viewerassetstats_index_object_t::test<9>() + { + LLViewerAssetStats s1; + LLViewerAssetStats s2; + + s1.setRegion(region1_handle); + s2.setRegion(region1_handle); + + s1.recordGetServiced(LLViewerAssetType::AT_TEXTURE, true, true, 5000000); + s1.recordGetServiced(LLViewerAssetType::AT_TEXTURE, true, true, 6000000); + s1.recordGetServiced(LLViewerAssetType::AT_TEXTURE, true, true, 8000000); + s1.recordGetServiced(LLViewerAssetType::AT_TEXTURE, true, true, 7000000); + s1.recordGetServiced(LLViewerAssetType::AT_TEXTURE, true, true, 9000000); + + s2.recordGetServiced(LLViewerAssetType::AT_TEXTURE, true, true, 2000000); + s2.recordGetServiced(LLViewerAssetType::AT_TEXTURE, true, true, 3000000); + s2.recordGetServiced(LLViewerAssetType::AT_TEXTURE, true, true, 4000000); + + s2.merge(s1); + + LLSD s2_llsd = get_region(s2.asLLSD(false), region1_handle); + ensure("Region1 is present in results", s2_llsd.isMap()); + + ensure_equals("count after merge", s2_llsd["get_texture_temp_http"]["resp_count"].asInteger(), 8); + ensure_approximately_equals("min after merge", s2_llsd["get_texture_temp_http"]["resp_min"].asReal(), 2.0, 22); + ensure_approximately_equals("max after merge", s2_llsd["get_texture_temp_http"]["resp_max"].asReal(), 9.0, 22); + ensure_approximately_equals("max after merge", s2_llsd["get_texture_temp_http"]["resp_mean"].asReal(), 5.5, 22); + } + + // LLViewerAssetStats::merge() basic functions work without corrupting source data + template<> template<> + void tst_viewerassetstats_index_object_t::test<10>() + { + LLViewerAssetStats s1; + LLViewerAssetStats s2; + + s1.setRegion(region1_handle); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 23289200); + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 282900); + + + s2.setRegion(region2_handle); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s2.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 6500000); + s2.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 10000); + + { + s2.merge(s1); + + LLSD src = s1.asLLSD(false); + LLSD dst = s2.asLLSD(false); + + ensure_equals("merge src has single region", src["regions"].size(), 1); + ensure_equals("merge dst has dual regions", dst["regions"].size(), 2); + + // Remove time stamps, they're a problem + src.erase("duration"); + src["regions"][0].erase("duration"); + dst.erase("duration"); + dst["regions"][0].erase("duration"); + dst["regions"][1].erase("duration"); + + LLSD s1_llsd = get_region(src, region1_handle); + ensure("Region1 is present in src", s1_llsd.isMap()); + LLSD s2_llsd = get_region(dst, region1_handle); + ensure("Region1 is present in dst", s2_llsd.isMap()); + + ensure("result from src is in dst", llsd_equals(s1_llsd, s2_llsd)); + } + + s1.setRegion(region1_handle); + s2.setRegion(region1_handle); + s1.reset(); + s2.reset(); + + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 23289200); + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 282900); + + + s2.setRegion(region1_handle); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s2.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 6500000); + s2.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 10000); + + { + s2.merge(s1); + + LLSD src = s1.asLLSD(false); + LLSD dst = s2.asLLSD(false); + + ensure_equals("merge src has single region (p2)", src["regions"].size(), 1); + ensure_equals("merge dst has single region (p2)", dst["regions"].size(), 1); + + // Remove time stamps, they're a problem + src.erase("duration"); + src["regions"][0].erase("duration"); + dst.erase("duration"); + dst["regions"][0].erase("duration"); + + LLSD s1_llsd = get_region(src, region1_handle); + ensure("Region1 is present in src", s1_llsd.isMap()); + LLSD s2_llsd = get_region(dst, region1_handle); + ensure("Region1 is present in dst", s2_llsd.isMap()); + + ensure_equals("src counts okay (enq)", s1_llsd["get_other"]["enqueued"].asInteger(), 4); + ensure_equals("src counts okay (deq)", s1_llsd["get_other"]["dequeued"].asInteger(), 4); + ensure_equals("src resp counts okay", s1_llsd["get_other"]["resp_count"].asInteger(), 2); + ensure_approximately_equals("src respmin okay", s1_llsd["get_other"]["resp_min"].asReal(), 0.2829, 20); + ensure_approximately_equals("src respmax okay", s1_llsd["get_other"]["resp_max"].asReal(), 23.2892, 20); + + ensure_equals("dst counts okay (enq)", s2_llsd["get_other"]["enqueued"].asInteger(), 12); + ensure_equals("src counts okay (deq)", s2_llsd["get_other"]["dequeued"].asInteger(), 11); + ensure_equals("dst resp counts okay", s2_llsd["get_other"]["resp_count"].asInteger(), 4); + ensure_approximately_equals("dst respmin okay", s2_llsd["get_other"]["resp_min"].asReal(), 0.010, 20); + ensure_approximately_equals("dst respmax okay", s2_llsd["get_other"]["resp_max"].asReal(), 23.2892, 20); + } + } + + + // Maximum merges are interesting when one side contributes nothing + template<> template<> + void tst_viewerassetstats_index_object_t::test<11>() + { + LLViewerAssetStats s1; + LLViewerAssetStats s2; + + s1.setRegion(region1_handle); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + // Want to test negative numbers here but have to work in U64 + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 0); + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 0); + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 0); + + s2.setRegion(region1_handle); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + { + s2.merge(s1); + + LLSD src = s1.asLLSD(false); + LLSD dst = s2.asLLSD(false); + + ensure_equals("merge src has single region", src["regions"].size(), 1); + ensure_equals("merge dst has single region", dst["regions"].size(), 1); + + // Remove time stamps, they're a problem + src.erase("duration"); + src["regions"][0].erase("duration"); + dst.erase("duration"); + dst["regions"][0].erase("duration"); + + LLSD s2_llsd = get_region(dst, region1_handle); + ensure("Region1 is present in dst", s2_llsd.isMap()); + + ensure_equals("dst counts come from src only", s2_llsd["get_other"]["resp_count"].asInteger(), 3); + + ensure_approximately_equals("dst maximum with count 0 does not contribute to merged maximum", + s2_llsd["get_other"]["resp_max"].asReal(), F64(0.0), 20); + } + + // Other way around + s1.setRegion(region1_handle); + s2.setRegion(region1_handle); + s1.reset(); + s2.reset(); + + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + // Want to test negative numbers here but have to work in U64 + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 0); + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 0); + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 0); + + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + { + s1.merge(s2); + + LLSD src = s2.asLLSD(false); + LLSD dst = s1.asLLSD(false); + + ensure_equals("merge src has single region", src["regions"].size(), 1); + ensure_equals("merge dst has single region", dst["regions"].size(), 1); + + // Remove time stamps, they're a problem + src.erase("duration"); + src["regions"][0].erase("duration"); + dst.erase("duration"); + dst["regions"][0].erase("duration"); + + LLSD s2_llsd = get_region(dst, region1_handle); + ensure("Region1 is present in dst", s2_llsd.isMap()); + + ensure_equals("dst counts come from src only (flipped)", s2_llsd["get_other"]["resp_count"].asInteger(), 3); + + ensure_approximately_equals("dst maximum with count 0 does not contribute to merged maximum (flipped)", + s2_llsd["get_other"]["resp_max"].asReal(), F64(0.0), 20); + } + } + + // Minimum merges are interesting when one side contributes nothing + template<> template<> + void tst_viewerassetstats_index_object_t::test<12>() + { + LLViewerAssetStats s1; + LLViewerAssetStats s2; + + s1.setRegion(region1_handle); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 3800000); + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 2700000); + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 2900000); + + s2.setRegion(region1_handle); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + { + s2.merge(s1); + + LLSD src = s1.asLLSD(false); + LLSD dst = s2.asLLSD(false); + + ensure_equals("merge src has single region", src["regions"].size(), 1); + ensure_equals("merge dst has single region", dst["regions"].size(), 1); + + // Remove time stamps, they're a problem + src.erase("duration"); + src["regions"][0].erase("duration"); + dst.erase("duration"); + dst["regions"][0].erase("duration"); + + LLSD s2_llsd = get_region(dst, region1_handle); + ensure("Region1 is present in dst", s2_llsd.isMap()); + + ensure_equals("dst counts come from src only", s2_llsd["get_other"]["resp_count"].asInteger(), 3); + + ensure_approximately_equals("dst minimum with count 0 does not contribute to merged minimum", + s2_llsd["get_other"]["resp_min"].asReal(), F64(2.7), 20); + } + + // Other way around + s1.setRegion(region1_handle); + s2.setRegion(region1_handle); + s1.reset(); + s2.reset(); + + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s1.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 3800000); + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 2700000); + s1.recordGetServiced(LLViewerAssetType::AT_LSL_BYTECODE, true, true, 2900000); + + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetEnqueued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + s2.recordGetDequeued(LLViewerAssetType::AT_LSL_BYTECODE, true, true); + + { + s1.merge(s2); + + LLSD src = s2.asLLSD(false); + LLSD dst = s1.asLLSD(false); + + ensure_equals("merge src has single region", src["regions"].size(), 1); + ensure_equals("merge dst has single region", dst["regions"].size(), 1); + + // Remove time stamps, they're a problem + src.erase("duration"); + src["regions"][0].erase("duration"); + dst.erase("duration"); + dst["regions"][0].erase("duration"); + + LLSD s2_llsd = get_region(dst, region1_handle); + ensure("Region1 is present in dst", s2_llsd.isMap()); + + ensure_equals("dst counts come from src only (flipped)", s2_llsd["get_other"]["resp_count"].asInteger(), 3); + + ensure_approximately_equals("dst minimum with count 0 does not contribute to merged minimum (flipped)", + s2_llsd["get_other"]["resp_min"].asReal(), F64(2.7), 20); + } + } + +} diff --git a/indra/newview/tests/llviewerhelputil_test.cpp b/indra/newview/tests/llviewerhelputil_test.cpp index a0f1d1c3c3..710881d811 100644 --- a/indra/newview/tests/llviewerhelputil_test.cpp +++ b/indra/newview/tests/llviewerhelputil_test.cpp @@ -72,16 +72,11 @@ static void substitute_string(std::string &input, const std::string &search, con } } -class LLAgent -{ -public: - LLAgent() {} - ~LLAgent() {} -#ifdef __GNUC__ - __attribute__ ((noinline)) -#endif - bool isGodlike() const { return FALSE; } -}; +#include "../llagent.h" +LLAgent::LLAgent() : mAgentAccess(NULL) { } +LLAgent::~LLAgent() { } +bool LLAgent::isGodlike() const { return FALSE; } + LLAgent gAgent; std::string LLWeb::expandURLSubstitutions(const std::string &url, diff --git a/indra/newview/tests/llworldmap_test.cpp b/indra/newview/tests/llworldmap_test.cpp index b976ac5ea9..acc6e814bc 100644 --- a/indra/newview/tests/llworldmap_test.cpp +++ b/indra/newview/tests/llworldmap_test.cpp @@ -25,13 +25,16 @@ * $/LicenseInfo$ */ -// Precompiled header: almost always required for newview cpp files -#include "../llviewerprecompiledheaders.h" -// Class to test -#include "../llworldmap.h" // Dependencies -#include "../llviewerimagelist.h" +#include "linden_common.h" +#include "llapr.h" +#include "llsingleton.h" +#include "lltrans.h" +#include "lluistring.h" +#include "../llviewertexture.h" #include "../llworldmapmessage.h" +// Class to test +#include "../llworldmap.h" // Tut header #include "../test/lltut.h" @@ -44,34 +47,29 @@ // * A simulator for a class can be implemented here. Please comment and document thoroughly. // Stub image calls -LLViewerImageList::LLViewerImageList() { } -LLViewerImageList::~LLViewerImageList() { } -LLViewerImageList gImageList; -LLViewerImage* LLViewerImageList::getImage(const LLUUID &image_id, - BOOL usemipmaps, - BOOL level_immediate, - LLGLint internal_format, - LLGLenum primary_format, - LLHost request_from_host) -{ return NULL; } -void LLViewerImage::setBoostLevel(S32 level) { } -void LLImageGL::setAddressMode(LLTexUnit::eTextureAddressMode mode) { } +void LLViewerTexture::setBoostLevel(S32 ) { } +void LLViewerTexture::setAddressMode(LLTexUnit::eTextureAddressMode ) { } +LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTexture(const LLUUID&, BOOL, LLViewerTexture::EBoostLevel, S8, + LLGLint, LLGLenum, LLHost ) { return NULL; } // Stub related map calls LLWorldMapMessage::LLWorldMapMessage() { } LLWorldMapMessage::~LLWorldMapMessage() { } void LLWorldMapMessage::sendItemRequest(U32 type, U64 handle) { } void LLWorldMapMessage::sendMapBlockRequest(U16 min_x, U16 min_y, U16 max_x, U16 max_y, bool return_nonexistent) { } + LLWorldMipmap::LLWorldMipmap() { } LLWorldMipmap::~LLWorldMipmap() { } void LLWorldMipmap::reset() { } void LLWorldMipmap::dropBoostLevels() { } void LLWorldMipmap::equalizeBoostLevels() { } -LLPointer<LLViewerImage> LLWorldMipmap::getObjectsTile(U32 grid_x, U32 grid_y, S32 level, bool load) -{ return NULL; } +LLPointer<LLViewerFetchedTexture> LLWorldMipmap::getObjectsTile(U32 grid_x, U32 grid_y, S32 level, bool load) { return NULL; } // Stub other stuff -BOOL gPacificDaylightTime; +std::string LLTrans::getString(const std::string &, const LLStringUtil::format_map_t& ) { return std::string("test_trans"); } +void LLUIString::updateResult() const { } +void LLUIString::setArg(const std::string& , const std::string& ) { } +void LLUIString::assign(const std::string& ) { } // End Stubbing // ------------------------------------------------------------------------------------------- @@ -237,7 +235,7 @@ namespace tut // Test 9 : setLandForSaleImage() / getLandForSaleImage() LLUUID id; mSim->setLandForSaleImage(id); - LLPointer<LLViewerImage> image = mSim->getLandForSaleImage(); + LLPointer<LLViewerFetchedTexture> image = mSim->getLandForSaleImage(); ensure("LLSimInfo::getLandForSaleImage() test failed", image.isNull()); // Test 10 : isPG() mSim->setAccess(SIM_ACCESS_PG); @@ -370,7 +368,7 @@ namespace tut } // Test 7 : getObjectsTile() try { - LLPointer<LLViewerImage> image = mWorld->getObjectsTile((U32)(X_WORLD_TEST/REGION_WIDTH_METERS), (U32)(Y_WORLD_TEST/REGION_WIDTH_METERS), 1); + LLPointer<LLViewerFetchedTexture> image = mWorld->getObjectsTile((U32)(X_WORLD_TEST/REGION_WIDTH_METERS), (U32)(Y_WORLD_TEST/REGION_WIDTH_METERS), 1); ensure("LLWorldMap::getObjectsTile() failed", image.isNull()); } catch (...) { fail("LLWorldMap::getObjectsTile() test failed with exception"); diff --git a/indra/newview/tests/llworldmipmap_test.cpp b/indra/newview/tests/llworldmipmap_test.cpp index 54887ae219..4c0959d1a9 100644 --- a/indra/newview/tests/llworldmipmap_test.cpp +++ b/indra/newview/tests/llworldmipmap_test.cpp @@ -25,12 +25,12 @@ * $/LicenseInfo$ */ -// Precompiled header: almost always required for newview cpp files -#include "../llviewerprecompiledheaders.h" +// Dependencies +#include "linden_common.h" +#include "../llviewertexture.h" +#include "../llviewercontrol.h" // Class to test #include "../llworldmipmap.h" -// Dependencies -#include "../llviewerimagelist.h" // Tut header #include "../test/lltut.h" @@ -42,19 +42,14 @@ // * Do not make any assumption as to how those classes or methods work (i.e. don't copy/paste code) // * A simulator for a class can be implemented here. Please comment and document thoroughly. -LLViewerImageList::LLViewerImageList() { } -LLViewerImageList::~LLViewerImageList() { } - -LLViewerImageList gImageList; +void LLViewerTexture::setBoostLevel(S32 ) { } +LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromUrl(const std::string&, BOOL, LLViewerTexture::EBoostLevel, S8, + LLGLint, LLGLenum, const LLUUID& ) { return NULL; } -LLViewerImage* LLViewerImageList::getImageFromUrl(const std::string& url, - BOOL usemipmaps, - BOOL level_immediate, - LLGLint internal_format, - LLGLenum primary_format, - const LLUUID& force_id) -{ return NULL; } -void LLViewerImage::setBoostLevel(S32 level) { } +LLControlGroup::LLControlGroup(const std::string& name) : LLInstanceTracker<LLControlGroup, std::string>(name) { } +LLControlGroup::~LLControlGroup() { } +std::string LLControlGroup::getString(const std::string& ) { return std::string("test_url"); } +LLControlGroup gSavedSettings("test_settings"); // End Stubbing // ------------------------------------------------------------------------------------------- diff --git a/indra/newview/tests/llxmlrpclistener_test.cpp b/indra/newview/tests/llxmlrpclistener_test.cpp index 4d5df1043e..711c2a3d51 100644 --- a/indra/newview/tests/llxmlrpclistener_test.cpp +++ b/indra/newview/tests/llxmlrpclistener_test.cpp @@ -40,8 +40,10 @@ #include "llevents.h" #include "lleventfilter.h" #include "llsd.h" +#include "llhost.h" #include "llcontrol.h" #include "tests/wrapllerrs.h" +#include "tests/commtest.h" LLControlGroup gSavedSettings("Global"); @@ -54,7 +56,8 @@ namespace tut { data(): pumps(LLEventPumps::instance()), - uri("http://127.0.0.1:8000") + uri(std::string("http://") + + LLHost("127.0.0.1", commtest_data::getport("PORT")).getString()) { // These variables are required by machinery used by // LLXMLRPCTransaction. The values reflect reality for this test @@ -145,7 +148,7 @@ namespace tut pumps.obtain("LLXMLRPCTransaction").post(request); // Set the timer F32 timeout(10); - watchdog.eventAfter(timeout, LLSD().insert("timeout", 0)); + watchdog.eventAfter(timeout, LLSD().with("timeout", 0)); // and pump "mainloop" until we get something, whether from // LLXMLRPCListener or from the watchdog filter. LLTimer timer; @@ -182,7 +185,7 @@ namespace tut pumps.obtain("LLXMLRPCTransaction").post(request); // Set the timer F32 timeout(10); - watchdog.eventAfter(timeout, LLSD().insert("timeout", 0)); + watchdog.eventAfter(timeout, LLSD().with("timeout", 0)); // and pump "mainloop" until we get something, whether from // LLXMLRPCListener or from the watchdog filter. LLTimer timer; @@ -218,7 +221,7 @@ namespace tut pumps.obtain("LLXMLRPCTransaction").post(request); // Set the timer F32 timeout(10); - watchdog.eventAfter(timeout, LLSD().insert("timeout", 0)); + watchdog.eventAfter(timeout, LLSD().with("timeout", 0)); // and pump "mainloop" until we get something, whether from // LLXMLRPCListener or from the watchdog filter. LLTimer timer; diff --git a/indra/newview/tests/test_llxmlrpc_peer.py b/indra/newview/tests/test_llxmlrpc_peer.py index aeebb0cfd1..281b72a058 100644 --- a/indra/newview/tests/test_llxmlrpc_peer.py +++ b/indra/newview/tests/test_llxmlrpc_peer.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python """\ @file test_llxmlrpc_peer.py @author Nat Goodspeed @@ -37,7 +37,7 @@ from SimpleXMLRPCServer import SimpleXMLRPCServer mydir = os.path.dirname(__file__) # expected to be .../indra/newview/tests/ sys.path.insert(0, os.path.join(mydir, os.pardir, os.pardir, "lib", "python")) sys.path.insert(1, os.path.join(mydir, os.pardir, os.pardir, "llmessage", "tests")) -from testrunner import run, debug +from testrunner import freeport, run, debug class TestServer(SimpleXMLRPCServer): def _dispatch(self, method, params): @@ -66,11 +66,16 @@ class TestServer(SimpleXMLRPCServer): # Suppress error output as well pass -class ServerRunner(Thread): - def run(self): - server = TestServer(('127.0.0.1', 8000)) - debug("Starting XMLRPC server...\n") - server.serve_forever() - if __name__ == "__main__": - sys.exit(run(server=ServerRunner(name="xmlrpc"), *sys.argv[1:])) + # Instantiate a TestServer on the first free port in the specified port + # range. Doing this inline is better than in a daemon thread: if it blows + # up here, we'll get a traceback. If it blew up in some other thread, the + # traceback would get eaten and we'd run the subject test program anyway. + xmlrpcd, port = freeport(xrange(8000, 8020), + lambda port: TestServer(('127.0.0.1', port))) + # Pass the selected port number to the subject test program via the + # environment. We don't want to impose requirements on the test program's + # command-line parsing -- and anyway, for C++ integration tests, that's + # performed in TUT code rather than our own. + os.environ["PORT"] = str(port) + sys.exit(run(server=Thread(name="xmlrpc", target=xmlrpcd.serve_forever), *sys.argv[1:])) |