diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llcommon/lluri.cpp | 36 | ||||
| -rw-r--r-- | indra/llcommon/tests/lluri_test.cpp | 94 | ||||
| -rw-r--r-- | indra/newview/featuretable.txt | 54 | ||||
| -rw-r--r-- | indra/newview/featuretable_linux.txt | 52 | ||||
| -rw-r--r-- | indra/newview/featuretable_mac.txt | 53 | ||||
| -rw-r--r-- | indra/newview/featuretable_xp.txt | 59 | ||||
| -rw-r--r-- | indra/newview/gpu_table.txt | 1059 | ||||
| -rw-r--r-- | indra/newview/llfeaturemanager.cpp | 46 | ||||
| -rw-r--r-- | indra/newview/llfeaturemanager.h | 4 | ||||
| -rw-r--r-- | indra/newview/llpanellogin.cpp | 70 | ||||
| -rwxr-xr-x | indra/newview/llviewerstats.cpp | 15 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_login.xml | 3 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/zh/notifications.xml | 1 | 
13 files changed, 888 insertions, 658 deletions
| diff --git a/indra/llcommon/lluri.cpp b/indra/llcommon/lluri.cpp index b39ea0c6f2..21456a599b 100644 --- a/indra/llcommon/lluri.cpp +++ b/indra/llcommon/lluri.cpp @@ -37,6 +37,8 @@  // system includes  #include <boost/tokenizer.hpp> +#include <boost/algorithm/string/find_iterator.hpp> +#include <boost/algorithm/string/finder.hpp>  void encode_character(std::ostream& ostr, std::string::value_type val)  { @@ -317,7 +319,7 @@ LLURI LLURI::buildHTTP(const std::string& prefix,  					   const LLSD& path)  {  	LLURI result; -	 +  	// TODO: deal with '/' '?' '#' in host_port  	if (prefix.find("://") != prefix.npos)  	{ @@ -342,15 +344,41 @@ LLURI LLURI::buildHTTP(const std::string& prefix,  			result.mEscapedPath += "/" + escapePathComponent(it->asString());  		}  	} -	else if(path.isString()) +	else if (path.isString())  	{ -		result.mEscapedPath += "/" + escapePathComponent(path.asString()); +		std::string pathstr(path); +		// Trailing slash is significant in HTTP land. If caller specified, +		// make a point of preserving. +		std::string last_slash; +		std::string::size_type len(pathstr.length()); +		if (len && pathstr[len-1] == '/') +		{ +			last_slash = "/"; +		} + +		// Escape every individual path component, recombining with slashes. +		for (boost::split_iterator<std::string::const_iterator> +				 ti(pathstr, boost::first_finder("/")), tend; +			 ti != tend; ++ti) +		{ +			// Eliminate a leading slash or duplicate slashes anywhere. (Extra +			// slashes show up here as empty components.) This test also +			// eliminates a trailing slash, hence last_slash above. +			if (! ti->empty()) +			{ +				result.mEscapedPath +					+= "/" + escapePathComponent(std::string(ti->begin(), ti->end())); +			} +		} + +		// Reinstate trailing slash, if any. +		result.mEscapedPath += last_slash;  	}   	else if(path.isUndefined())  	{  	  // do nothing  	} -    else +	else  	{  	  llwarns << "Valid path arguments to buildHTTP are array, string, or undef, you passed type"   			  << path.type() << llendl; diff --git a/indra/llcommon/tests/lluri_test.cpp b/indra/llcommon/tests/lluri_test.cpp index f6d4221256..4c64f15ca7 100644 --- a/indra/llcommon/tests/lluri_test.cpp +++ b/indra/llcommon/tests/lluri_test.cpp @@ -58,12 +58,12 @@ namespace tut  			ensure_equals("escape/unescape escaped", uri_esc_2, uri_esc_1);  		}  	}; -	 +  	typedef test_group<URITestData>	URITestGroup;  	typedef URITestGroup::object	URITestObject;  	URITestGroup uriTestGroup("LLURI"); -	 +  	template<> template<>  	void URITestObject::test<1>()  	{ @@ -89,14 +89,14 @@ namespace tut  	template<> template<>  	void URITestObject::test<2>()  	{ -		// empty string +		set_test_name("empty string");  		checkParts(LLURI(""), "", "", "", "");  	} -	 +  	template<> template<>  	void URITestObject::test<3>()  	{ -		// no scheme +		set_test_name("no scheme");  		checkParts(LLURI("foo"), "", "foo", "", "");  		checkParts(LLURI("foo%3A"), "", "foo:", "", "");  	} @@ -104,7 +104,7 @@ namespace tut  	template<> template<>  	void URITestObject::test<4>()  	{ -		// scheme w/o paths +		set_test_name("scheme w/o paths");  		checkParts(LLURI("mailto:zero@ll.com"),  			"mailto", "zero@ll.com", "", "");  		checkParts(LLURI("silly://abc/def?foo"), @@ -114,16 +114,16 @@ namespace tut  	template<> template<>  	void URITestObject::test<5>()  	{ -		// authority section +		set_test_name("authority section");  		checkParts(LLURI("http:///"),  			"http", "///", "", "/"); -			 +  		checkParts(LLURI("http://abc"),  			"http", "//abc", "abc", ""); -			 +  		checkParts(LLURI("http://a%2Fb/cd"),  			"http", "//a/b/cd", "a/b", "/cd"); -			 +  		checkParts(LLURI("http://host?"),  			"http", "//host?", "host", "");  	} @@ -131,13 +131,13 @@ namespace tut  	template<> template<>  	void URITestObject::test<6>()  	{		 -		// path section +		set_test_name("path section");  		checkParts(LLURI("http://host/a/b/"),  				"http", "//host/a/b/", "host", "/a/b/"); -				 +  		checkParts(LLURI("http://host/a%3Fb/"),  				"http", "//host/a?b/", "host", "/a?b/"); -				 +  		checkParts(LLURI("http://host/a:b/"),  				"http", "//host/a:b/", "host", "/a:b/");  	} @@ -145,16 +145,16 @@ namespace tut  	template<> template<>  	void URITestObject::test<7>()  	{		 -		// query string +		set_test_name("query string");  		checkParts(LLURI("http://host/?"),  				"http", "//host/?", "host", "/", ""); -				 +  		checkParts(LLURI("http://host/?x"),  				"http", "//host/?x", "host", "/", "x"); -				 +  		checkParts(LLURI("http://host/??"),  				"http", "//host/??", "host", "/", "?"); -				 +  		checkParts(LLURI("http://host/?%3F"),  				"http", "//host/??", "host", "/", "?");  	} @@ -167,19 +167,44 @@ namespace tut  		path.append("123");  		checkParts(LLURI::buildHTTP("host", path),  			"http", "//host/x/123", "host", "/x/123"); -		 +  		LLSD query;  		query["123"] = "12";  		query["abcd"] = "abc";  		checkParts(LLURI::buildHTTP("host", path, query),  			"http", "//host/x/123?123=12&abcd=abc",  			"host", "/x/123", "123=12&abcd=abc"); + +		ensure_equals(LLURI::buildHTTP("host", "").asString(), +					  "http://host"); +		ensure_equals(LLURI::buildHTTP("host", "/").asString(), +					  "http://host/"); +		ensure_equals(LLURI::buildHTTP("host", "//").asString(), +					  "http://host/"); +		ensure_equals(LLURI::buildHTTP("host", "dir name").asString(), +					  "http://host/dir%20name"); +		ensure_equals(LLURI::buildHTTP("host", "dir name/").asString(), +					  "http://host/dir%20name/"); +		ensure_equals(LLURI::buildHTTP("host", "/dir name").asString(), +					  "http://host/dir%20name"); +		ensure_equals(LLURI::buildHTTP("host", "/dir name/").asString(), +					  "http://host/dir%20name/"); +		ensure_equals(LLURI::buildHTTP("host", "dir name/subdir name").asString(), +					  "http://host/dir%20name/subdir%20name"); +		ensure_equals(LLURI::buildHTTP("host", "dir name/subdir name/").asString(), +					  "http://host/dir%20name/subdir%20name/"); +		ensure_equals(LLURI::buildHTTP("host", "/dir name/subdir name").asString(), +					  "http://host/dir%20name/subdir%20name"); +		ensure_equals(LLURI::buildHTTP("host", "/dir name/subdir name/").asString(), +					  "http://host/dir%20name/subdir%20name/"); +		ensure_equals(LLURI::buildHTTP("host", "//dir name//subdir name//").asString(), +					  "http://host/dir%20name/subdir%20name/");  	}  	template<> template<>  	void URITestObject::test<9>()  	{ -		// test unescaped path components +		set_test_name("test unescaped path components");  		LLSD path;  		path.append("x@*//*$&^");  		path.append("123"); @@ -190,7 +215,7 @@ namespace tut  	template<> template<>  	void URITestObject::test<10>()  	{ -		// test unescaped query components +		set_test_name("test unescaped query components");  		LLSD path;  		path.append("x");  		path.append("123"); @@ -205,7 +230,7 @@ namespace tut  	template<> template<>  	void URITestObject::test<11>()  	{ -		// test unescaped host components +		set_test_name("test unescaped host components");  		LLSD path;  		path.append("x");  		path.append("123"); @@ -216,16 +241,16 @@ namespace tut  			"http", "//hi123*33--}{:portstuffs/x/123?123=12&abcd=abc",  			"hi123*33--}{:portstuffs", "/x/123", "123=12&abcd=abc");  	} -	 +  	template<> template<>  	void URITestObject::test<12>()  	{ -		// test funky host_port values that are actually prefixes -		 +		set_test_name("test funky host_port values that are actually prefixes"); +  		checkParts(LLURI::buildHTTP("http://example.com:8080", LLSD()),  			"http", "//example.com:8080",  			"example.com:8080", ""); -			 +  		checkParts(LLURI::buildHTTP("http://example.com:8080/", LLSD()),  			"http", "//example.com:8080/",  			"example.com:8080", "/"); @@ -242,7 +267,7 @@ namespace tut  			"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"  			"0123456789"  			"-._~"; -		// test escape +		set_test_name("test escape");  		ensure_equals("escaping", LLURI::escape("abcdefg", "abcdef"), "abcdef%67");  		ensure_equals("escaping", LLURI::escape("|/&\\+-_!@", ""), "%7C%2F%26%5C%2B%2D%5F%21%40");  		ensure_equals("escaping as query variable",  @@ -259,13 +284,12 @@ namespace tut  		cedilla.push_back( (char)0xA7 );  		ensure_equals("escape UTF8", LLURI::escape( cedilla, unreserved), "%C3%A7");  	} -	 +  	template<> template<>  	void URITestObject::test<14>()  	{ -		// make sure escape and unescape of empty strings return empty -		// strings. +		set_test_name("make sure escape and unescape of empty strings return empty strings.");  		std::string uri_esc(LLURI::escape(""));  		ensure("escape string empty", uri_esc.empty());  		std::string uri_raw(LLURI::unescape("")); @@ -275,7 +299,7 @@ namespace tut  	template<> template<>  	void URITestObject::test<15>()  	{ -		// do some round-trip tests +		set_test_name("do some round-trip tests");  		escapeRoundTrip("http://secondlife.com");  		escapeRoundTrip("http://secondlife.com/url with spaces");  		escapeRoundTrip("http://bad[domain]name.com/"); @@ -286,7 +310,7 @@ namespace tut  	template<> template<>  	void URITestObject::test<16>()  	{ -		// Test the default escaping +		set_test_name("Test the default escaping");  		// yes -- this mangles the url. This is expected behavior  		std::string simple("http://secondlife.com");  		ensure_equals( @@ -302,7 +326,7 @@ namespace tut  	template<> template<>  	void URITestObject::test<17>()  	{ -		// do some round-trip tests with very long strings. +		set_test_name("do some round-trip tests with very long strings.");  		escapeRoundTrip("Welcome to Second Life.We hope you'll have a richly rewarding experience, filled with creativity, self expression and fun.The goals of the Community Standards are simple: treat each other with respect and without harassment, adhere to local standards as indicated by simulator ratings, and refrain from any hate activity which slurs a real-world individual or real-world community. Behavioral Guidelines - The Big Six");  		escapeRoundTrip(  			"'asset_data':b(12100){'task_id':ucc706f2d-0b68-68f8-11a4-f1043ff35ca0}\n{\n\tname\tObject|\n\tpermissions 0\n\t{\n\t\tbase_mask\t7fffffff\n\t\towner_mask\t7fffffff\n\t\tgroup_mask\t00000000\n\t\teveryone_mask\t00000000\n\t\tnext_owner_mask\t7fffffff\n\t\tcreator_id\t13fd9595-a47b-4d64-a5fb-6da645f038e0\n\t\towner_id\t3c115e51-04f4-523c-9fa6-98aff1034730\n\t\tlast_owner_id\t3c115e51-04f4-523c-9fa6-98aff1034730\n\t\tgroup_id\t00000000-0000-0000-0000-000000000000\n\t}\n\tlocal_id\t217444921\n\ttotal_crc\t323\n\ttype\t2\n\ttask_valid\t2\n\ttravel_access\t13\n\tdisplayopts\t2\n\tdisplaytype\tv\n\tpos\t-0.368634403\t0.00781063363\t-0.569040775\n\toldpos\t150.117996\t25.8658009\t8.19664001\n\trotation\t-0.06293071806430816650390625\t-0.6995697021484375\t-0.7002241611480712890625\t0.1277817934751510620117188\n\tchildpos\t-0.00499999989\t-0.0359999985\t0.307999998\n\tchildrot\t-0.515492737293243408203125\t-0.46601200103759765625\t0.529055416584014892578125\t0.4870323240756988525390625\n\tscale" @@ -322,7 +346,7 @@ namespace tut  			"D STRING RW SV 20f36c3a-b44b-9bc7-87f3-018bfdfc8cda\n\tscratchpad\t0\n\t{\n\t\n\t}\n\tsale_info\t0\n\t{\n\t\tsale_type\tnot\n\t\tsale_price\t10\n\t}\n\torig_asset_id\t8747acbc-d391-1e59-69f1-41d06830e6c0\n\torig_item_id\t20f36c3a-b44b-9bc7-87f3-018bfdfc8cda\n\tfrom_task_id\t3c115e51-04f4-523c-9fa6-98aff1034730\n\tcorrect_family_id\t00000000-0000-0000-0000-000000000000\n\thas_rezzed\t0\n\tpre_link_base_mask\t7fffffff\n\tlinked \tlinked\n\tdefault_pay_price\t-2\t1\t5\t10\t20\n}\n");  	} -	  +  	template<> template<>  	void URITestObject::test<18>()  	{ @@ -335,7 +359,7 @@ namespace tut  		ensure_equals("pathmap",	u.pathArray()[1].asString(),	"login");  		ensure_equals("query",		u.query(),		"first_name=Testert4&last_name=Tester&web_login_key=test");  		ensure_equals("query map element", u.queryMap()["last_name"].asString(), "Tester"); -		 +  		u = LLURI("secondlife://Da Boom/128/128/128");  		// if secondlife is the scheme, LLURI should parse /128/128/128 as path, with Da Boom as authority  		ensure_equals("scheme",		u.scheme(),		"secondlife"); @@ -350,7 +374,7 @@ namespace tut  	template<> template<>  	void URITestObject::test<19>()  	{ -		// Parse about: schemes +		set_test_name("Parse about: schemes");  		LLURI u("about:blank?redirect-http-hack=secondlife%3A%2F%2F%2Fapp%2Flogin%3Ffirst_name%3DCallum%26last_name%3DLinden%26location%3Dspecify%26grid%3Dvaak%26region%3D%2FMorris%2F128%2F128%26web_login_key%3Defaa4795-c2aa-4c58-8966-763c27931e78");  		ensure_equals("scheme",		u.scheme(),		"about");  		ensure_equals("authority",	u.authority(),	""); diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt index eeb632acaf..e877e15053 100644 --- a/indra/newview/featuretable.txt +++ b/indra/newview/featuretable.txt @@ -1,4 +1,4 @@ -version 32 +version 33  // The version number above should be implemented IF AND ONLY IF some  // change has been made that is sufficiently important to justify  // resetting the graphics preferences of all users to the recommended @@ -98,9 +98,6 @@ RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0 @@ -130,9 +127,6 @@ RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0  // @@ -160,9 +154,6 @@ RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0  // @@ -190,9 +181,6 @@ RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	2  // @@ -230,30 +218,66 @@ RenderFSAASamples			1	2  //  list Unknown  RenderVBOEnable				1	0 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0  //  // Class 0 Hardware (just old)  //  list Class0  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0  //  // Class 1 Hardware  //  list Class1  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +  // -// Class 2 Hardware (make it purty) +// Class 2 Hardware  //  list Class2  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +  // -// Class 3 Hardware (make it purty) +// Class 3 Hardware (deferred enabled)  //  list Class3  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	1 +RenderDeferredSSAO			1	0 + +// +// Class 4 Hardware (deferred + SSAO) +// +list Class4 +RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 + +// +// Class 5 Hardware (deferred + SSAO + shadows) +// +list Class5 +RenderVBOEnable				1	1 +RenderShadowDetail			1	2 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 +  //  // VRAM > 512MB diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt index 3a0e7e3697..5699bd9c8a 100644 --- a/indra/newview/featuretable_linux.txt +++ b/indra/newview/featuretable_linux.txt @@ -1,4 +1,4 @@ -version 27 +version 28  // The version number above should be implemented IF AND ONLY IF some  // change has been made that is sufficiently important to justify  // resetting the graphics preferences of all users to the recommended @@ -95,9 +95,6 @@ RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0  // @@ -126,9 +123,6 @@ RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0  // @@ -156,9 +150,6 @@ RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0  // @@ -186,9 +177,6 @@ RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	2  // @@ -226,32 +214,66 @@ RenderFSAASamples			1	2  //  list Unknown  RenderVBOEnable				1	0 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0  //  // Class 0 Hardware (just old)  //  list Class0  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0  //  // Class 1 Hardware  //  list Class1  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +  // -// Class 2 Hardware (make it purty) +// Class 2 Hardware  //  list Class2  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +  // -// Class 3 Hardware (make it purty) +// Class 3 Hardware (deferred enabled)  //  list Class3  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	1 +RenderDeferredSSAO			1	0  // +// Class 4 Hardware (deferred + SSAO) +// +list Class4 +RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 + +// +// Class 5 Hardware (deferred + SSAO + shadows) +// +list Class5 +RenderVBOEnable				1	1 +RenderShadowDetail			1	2 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 +//  // VRAM > 512MB  //  list VRAMGT512 diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt index 96362ff4bb..3a91f19c58 100644 --- a/indra/newview/featuretable_mac.txt +++ b/indra/newview/featuretable_mac.txt @@ -1,4 +1,4 @@ -version 32 +version 34  // The version number above should be implemented IF AND ONLY IF some  // change has been made that is sufficiently important to justify  // resetting the graphics preferences of all users to the recommended @@ -97,9 +97,6 @@ RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0  // @@ -128,9 +125,6 @@ RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0  // @@ -158,9 +152,6 @@ RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0  // @@ -188,9 +179,6 @@ RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	2  RenderFSAASamples			1	2  // @@ -228,30 +216,65 @@ RenderFSAASamples			1	2  //  list Unknown  RenderVBOEnable				1	0 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0  //  // Class 0 Hardware (just old)  //  list Class0  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0  //  // Class 1 Hardware  //  list Class1  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +  // -// Class 2 Hardware (make it purty) +// Class 2 Hardware  //  list Class2  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +  // -// Class 3 Hardware (make it purty) +// Class 3 Hardware (deferred enabled)  //  list Class3  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	1 +RenderDeferredSSAO			1	0 + +// +// Class 4 Hardware (deferred + SSAO) +// +list Class4 +RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 + +// +// Class 5 Hardware (deferred + SSAO + shadows) +// +list Class5 +RenderVBOEnable				1	1 +RenderShadowDetail			1	2 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1  //  // No Pixel Shaders available diff --git a/indra/newview/featuretable_xp.txt b/indra/newview/featuretable_xp.txt index a945f7a693..ad16e2533b 100644 --- a/indra/newview/featuretable_xp.txt +++ b/indra/newview/featuretable_xp.txt @@ -1,4 +1,4 @@ -version 31 +version 32  // The version number above should be implemented IF AND ONLY IF some  // change has been made that is sufficiently important to justify  // resetting the graphics preferences of all users to the recommended @@ -63,9 +63,9 @@ Disregard96DefaultDrawDistance	1	1  RenderTextureMemoryMultiple		1	1.0  RenderCompressTextures		1	1  RenderShaderLightingMaxLevel	1	3 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 +RenderShadowDetail			1	2  WatchdogDisabled				1	1  RenderUseStreamVBO			1	1  RenderFSAASamples			1	16 @@ -97,9 +97,6 @@ RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0  // @@ -128,9 +125,6 @@ RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0  // @@ -158,9 +152,6 @@ RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	0  RenderFSAASamples			1	0  // @@ -188,9 +179,6 @@ RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1  WLSkyDetail					1	48 -RenderDeferred				1	0 -RenderDeferredSSAO			1	0 -RenderShadowDetail			1	2  RenderFSAASamples			1	2  // @@ -228,30 +216,65 @@ RenderFSAASamples			1	2  //  list Unknown  RenderVBOEnable				1	0 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0  //  // Class 0 Hardware (just old)  //  list Class0  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0  //  // Class 1 Hardware  //  list Class1  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +  // -// Class 2 Hardware (make it purty) +// Class 2 Hardware  //  list Class2  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0 +  // -// Class 3 Hardware (make it purty) +// Class 3 Hardware (deferred enabled)  //  list Class3  RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	1 +RenderDeferredSSAO			1	0 + +// +// Class 4 Hardware (deferred + SSAO) +// +list Class4 +RenderVBOEnable				1	1 +RenderShadowDetail			1	0 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1 + +// +// Class 5 Hardware (deferred + SSAO + shadows) +// +list Class5 +RenderVBOEnable				1	1 +RenderShadowDetail			1	2 +RenderDeferred				1	1 +RenderDeferredSSAO			1	1  //  // VRAM > 512MB diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index 777d54a5c3..5e8189caa5 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -17,520 +17,567 @@  //  // Format:  //	 Fields are separated by one or more tab (not space) characters -//	 <recognizer name>	<regular expression>	<class>		<supported> +//	 <recognizer name>	<regular expression>	<class>		<supported>	<stats based> <expected OpenGL version>  //  // Class Numbers:  //		0 - Defaults to low graphics settings.	No shaders on by default  //		1 - Defaults to mid graphics settings.	Basic shaders on by default  //		2 - Defaults to high graphics settings.	 Atmospherics on by default. -//		3 - Same as class 2 for now. +//		3 - Same as 2, but with lighting and shadows enabled. +//		4 - Same as 3, but with ambient occlusion enabled. +//		5 - Same as 4, but with shadows set to "Sun/Moon+Projectors."  //  // Supported Number:  //		0 - We claim to not support this card.  //		1 - We claim to support this card.  // -3Dfx							.*3Dfx.*									0		0 -3Dlabs							.*3Dlabs.*									0		0 -ATI 3D-Analyze					.*ATI.*3D-Analyze.*							0		0 -ATI All-in-Wonder 7500			.*ATI.*All-in-Wonder 75.*					0		1 -ATI All-in-Wonder 8500			.*ATI.*All-in-Wonder 85.*					0		1 -ATI All-in-Wonder 9200			.*ATI.*All-in-Wonder 92.*					0		1 -ATI All-in-Wonder 9xxx			.*ATI.*All-in-Wonder 9.*					1		1 -ATI All-in-Wonder HD			.*ATI.*All-in-Wonder HD.*					1		1 -ATI All-in-Wonder X600			.*ATI.*All-in-Wonder X6.*					1		1 -ATI All-in-Wonder X800			.*ATI.*All-in-Wonder X8.*					2		1 -ATI All-in-Wonder X1800			.*ATI.*All-in-Wonder X18.*					3		1 -ATI All-in-Wonder X1900			.*ATI.*All-in-Wonder X19.*					3		1 -ATI All-in-Wonder PCI-E			.*ATI.*All-in-Wonder.*PCI-E.*				1		1 -ATI All-in-Wonder Radeon		.*ATI.*All-in-Wonder Radeon.*				0		1 -ATI ASUS ARES					.*ATI.*ASUS.*ARES.*							3		1 -ATI ASUS A9xxx					.*ATI.*ASUS.*A9.*							1		1 -ATI ASUS AH24xx					.*ATI.*ASUS.*AH24.*							1		1 -ATI ASUS AH26xx					.*ATI.*ASUS.*AH26.*							3		1 -ATI ASUS AH34xx					.*ATI.*ASUS.*AH34.*							1		1 -ATI ASUS AH36xx					.*ATI.*ASUS.*AH36.*							3		1 -ATI ASUS AH46xx					.*ATI.*ASUS.*AH46.*							3		1 -ATI ASUS AX3xx					.*ATI.*ASUS.*AX3.*							1		1 -ATI ASUS AX5xx					.*ATI.*ASUS.*AX5.*							1		1 -ATI ASUS AX8xx					.*ATI.*ASUS.*AX8.*							2		1 -ATI ASUS EAH24xx				.*ATI.*ASUS.*EAH24.*						2		1 -ATI ASUS EAH26xx				.*ATI.*ASUS.*EAH26.*						3		1 -ATI ASUS EAH29xx				.*ATI.*ASUS.*EAH29.*						3		1 -ATI ASUS EAH34xx				.*ATI.*ASUS.*EAH34.*						1		1 -ATI ASUS EAH36xx				.*ATI.*ASUS.*EAH36.*						3		1 -ATI ASUS EAH38xx				.*ATI.*ASUS.*EAH38.*						3		1 -ATI ASUS EAH43xx				.*ATI.*ASUS.*EAH43.*						1		1 -ATI ASUS EAH45xx				.*ATI.*ASUS.*EAH45.*						1		1 -ATI ASUS EAH48xx				.*ATI.*ASUS.*EAH48.*						3		1 -ATI ASUS EAH57xx				.*ATI.*ASUS.*EAH57.*						3		1 -ATI ASUS EAH58xx				.*ATI.*ASUS.*EAH58.*						3		1 -ATI ASUS EAH6xxx				.*ATI.*ASUS.*EAH6.*							3		1 -ATI ASUS Radeon X1xxx			.*ATI.*ASUS.*X1.*							3		1 -ATI Radeon X7xx					.*ATI.*ASUS.*X7.*							1		1 -ATI Radeon X19xx				.*ATI.*(Radeon|Diamond) X19.* ?.*			3		1 -ATI Radeon X18xx				.*ATI.*(Radeon|Diamond) X18.* ?.*			3		1 -ATI Radeon X17xx				.*ATI.*(Radeon|Diamond) X17.* ?.*			2		1 -ATI Radeon X16xx				.*ATI.*(Radeon|Diamond) X16.* ?.*			2		1 -ATI Radeon X15xx				.*ATI.*(Radeon|Diamond) X15.* ?.*			2		1 -ATI Radeon X13xx				.*ATI.*(Radeon|Diamond) X13.* ?.*			1		1 -ATI Radeon X1xxx				.*ATI.*(Radeon|Diamond) X1.. ?.*			1		1 -ATI Radeon X2xxx				.*ATI.*(Radeon|Diamond) X2.. ?.*			1		1 -ATI Display Adapter				.*ATI.*display adapter.*					0		1 -ATI FireGL 5200					.*ATI.*FireGL V52.*							0		1 -ATI FireGL 5xxx					.*ATI.*FireGL V5.*							1		1 -ATI FireGL						.*ATI.*Fire.*GL.*							0		1 -ATI FirePro M3900				.*ATI.*FirePro.*M39.*						2		1 -ATI FirePro M5800				.*ATI.*FirePro.*M58.*						3		1 -ATI FirePro M7740				.*ATI.*FirePro.*M77.*						3		1 -ATI FirePro M7820				.*ATI.*FirePro.*M78.*						3		1 -ATI FireMV						.*ATI.*FireMV.*								0		1 -ATI Geforce 9500 GT				.*ATI.*Geforce 9500 *GT.*					2		1 -ATI Geforce 9600 GT				.*ATI.*Geforce 9600 *GT.*					2		1 -ATI Geforce 9800 GT				.*ATI.*Geforce 9800 *GT.*					2		1 -ATI Generic						.*ATI.*Generic.*							0		0 -ATI Hercules 9800				.*ATI.*Hercules.*9800.*						1		1 -ATI IGP 340M					.*ATI.*IGP.*340M.*							0		0 -ATI M52							.*ATI.*M52.*								1		1 -ATI M54							.*ATI.*M54.*								1		1 -ATI M56							.*ATI.*M56.*								1		1 -ATI M71							.*ATI.*M71.*								1		1 -ATI M72							.*ATI.*M72.*								1		1 -ATI M76							.*ATI.*M76.*								3		1 -ATI Radeon HD 64xx				.*ATI.*AMD Radeon.* HD [67]4..[MG]			3		1 -ATI Radeon HD 65xx				.*ATI.*AMD Radeon.* HD [67]5..[MG]			3		1 -ATI Radeon HD 66xx				.*ATI.*AMD Radeon.* HD [67]6..[MG]			3		1 -ATI Mobility Radeon 4100		.*ATI.*Mobility.*41..						1		1 -ATI Mobility Radeon 7xxx		.*ATI.*Mobility.*Radeon 7.*					0		1 -ATI Mobility Radeon 8xxx		.*ATI.*Mobility.*Radeon 8.*					0		1 -ATI Mobility Radeon 9800		.*ATI.*Mobility.*98.*						1		1 -ATI Mobility Radeon 9700		.*ATI.*Mobility.*97.*						1		1 -ATI Mobility Radeon 9600		.*ATI.*Mobility.*96.*						0		1 -ATI Mobility Radeon HD 530v		.*ATI.*Mobility.*HD *530v.*					1		1 -ATI Mobility Radeon HD 540v		.*ATI.*Mobility.*HD *540v.*					2		1 -ATI Mobility Radeon HD 545v		.*ATI.*Mobility.*HD *545v.*					2		1 -ATI Mobility Radeon HD 550v		.*ATI.*Mobility.*HD *550v.*					2		1 -ATI Mobility Radeon HD 560v		.*ATI.*Mobility.*HD *560v.*					2		1 -ATI Mobility Radeon HD 565v		.*ATI.*Mobility.*HD *565v.*					2		1 -ATI Mobility Radeon HD 2300		.*ATI.*Mobility.*HD *23.*					2		1 -ATI Mobility Radeon HD 2400		.*ATI.*Mobility.*HD *24.*					2		1 -ATI Mobility Radeon HD 2600		.*ATI.*Mobility.*HD *26.*					3		1 -ATI Mobility Radeon HD 2700		.*ATI.*Mobility.*HD *27.*					3		1 -ATI Mobility Radeon HD 3100		.*ATI.*Mobility.*HD *31.*					0		1 -ATI Mobility Radeon HD 3200		.*ATI.*Mobility.*HD *32.*					0		1 -ATI Mobility Radeon HD 3400		.*ATI.*Mobility.*HD *34.*					2		1 -ATI Mobility Radeon HD 3600		.*ATI.*Mobility.*HD *36.*					3		1 -ATI Mobility Radeon HD 3800		.*ATI.*Mobility.*HD *38.*					3		1 -ATI Mobility Radeon HD 4200		.*ATI.*Mobility.*HD *42.*					2		1 -ATI Mobility Radeon HD 4300		.*ATI.*Mobility.*HD *43.*					2		1 -ATI Mobility Radeon HD 4500		.*ATI.*Mobility.*HD *45.*					3		1 -ATI Mobility Radeon HD 4600		.*ATI.*Mobility.*HD *46.*					3		1 -ATI Mobility Radeon HD 4800		.*ATI.*Mobility.*HD *48.*					3		1 -ATI Mobility Radeon HD 5100		.*ATI.*Mobility.*HD *51.*					3		1 -ATI Mobility Radeon HD 5300		.*ATI.*Mobility.*HD *53.*					3		1 -ATI Mobility Radeon HD 5400		.*ATI.*Mobility.*HD *54.*					3		1 -ATI Mobility Radeon HD 5500		.*ATI.*Mobility.*HD *55.*					3		1 -ATI Mobility Radeon HD 5600		.*ATI.*Mobility.*HD *56.*					3		1 -ATI Mobility Radeon HD 5700		.*ATI.*Mobility.*HD *57.*					3		1 -ATI Mobility Radeon HD 6200		.*ATI.*Mobility.*HD *62.*					3		1 -ATI Mobility Radeon HD 6300		.*ATI.*Mobility.*HD *63.*					3		1 -ATI Mobility Radeon HD 6400M	.*ATI.*Mobility.*HD *64.*					3		1 -ATI Mobility Radeon HD 6500M	.*ATI.*Mobility.*HD *65.*					3		1 -ATI Mobility Radeon HD 6600M	.*ATI.*Mobility.*HD *66.*					3		1 -ATI Mobility Radeon HD 6700M	.*ATI.*Mobility.*HD *67.*					3		1 -ATI Mobility Radeon HD 6800M	.*ATI.*Mobility.*HD *68.*					3		1 -ATI Mobility Radeon HD 6900M	.*ATI.*Mobility.*HD *69.*					3		1 -ATI Radeon HD 2300				.*ATI.*Radeon HD *23..						2		1 -ATI Radeon HD 2400				.*ATI.*Radeon HD *24..						2		1 -ATI Radeon HD 2600				.*ATI.*Radeon HD *26..						2		1 -ATI Radeon HD 2900				.*ATI.*Radeon HD *29..						3		1 -ATI Radeon HD 3000				.*ATI.*Radeon HD *30..						0		1 -ATI Radeon HD 3100				.*ATI.*Radeon HD *31..						1		1 -ATI Radeon HD 3200				.*ATI.*Radeon HD *32..						1		1 -ATI Radeon HD 3300				.*ATI.*Radeon HD *33..						2		1 -ATI Radeon HD 3400				.*ATI.*Radeon HD *34..						2		1 -ATI Radeon HD 3500				.*ATI.*Radeon HD *35..						2		1 -ATI Radeon HD 3600				.*ATI.*Radeon HD *36..						3		1 -ATI Radeon HD 3700				.*ATI.*Radeon HD *37..						3		1 -ATI Radeon HD 3800				.*ATI.*Radeon HD *38..						3		1 -ATI Radeon HD 4100				.*ATI.*Radeon HD *41..						1		1 -ATI Radeon HD 4200				.*ATI.*Radeon HD *42..						1		1 -ATI Radeon HD 4300				.*ATI.*Radeon HD *43..						2		1 -ATI Radeon HD 4400				.*ATI.*Radeon HD *44..						2		1 -ATI Radeon HD 4500				.*ATI.*Radeon HD *45..						3		1 -ATI Radeon HD 4600				.*ATI.*Radeon HD *46..						3		1 -ATI Radeon HD 4700				.*ATI.*Radeon HD *47..						3		1 -ATI Radeon HD 4800				.*ATI.*Radeon HD *48..						3		1 -ATI Radeon HD 5400				.*ATI.*Radeon HD *54..						3		1 -ATI Radeon HD 5500				.*ATI.*Radeon HD *55..						3		1 -ATI Radeon HD 5600				.*ATI.*Radeon HD *56..						3		1 -ATI Radeon HD 5700				.*ATI.*Radeon HD *57..						3		1 -ATI Radeon HD 5800				.*ATI.*Radeon HD *58..						3		1 -ATI Radeon HD 5900				.*ATI.*Radeon HD *59..						3		1 -ATI Radeon HD 6200				.*ATI.*Radeon HD *62..						3		1 -ATI Radeon HD 6300				.*ATI.*Radeon HD *63..						3		1 -ATI Radeon HD 6400				.*ATI.*Radeon HD *64..						3		1 -ATI Radeon HD 6500				.*ATI.*Radeon HD *65..						3		1 -ATI Radeon HD 6600				.*ATI.*Radeon HD *66..						3		1 -ATI Radeon HD 6700				.*ATI.*Radeon HD *67..						3		1 -ATI Radeon HD 6800				.*ATI.*Radeon HD *68..						3		1 -ATI Radeon HD 6900				.*ATI.*Radeon HD *69..						3		1 -ATI Radeon OpenGL				.*ATI.*Radeon OpenGL.*						0		0 -ATI Radeon 2100					.*ATI.*Radeon 21..							0		1 -ATI Radeon 3000					.*ATI.*Radeon 30..							0		1 -ATI Radeon 3100					.*ATI.*Radeon 31..							1		1 -ATI Radeon 5xxx					.*ATI.*Radeon 5...							3		1 -ATI Radeon 7xxx					.*ATI.*Radeon 7...							0		1 -ATI Radeon 8xxx					.*ATI.*Radeon 8...							0		1 -ATI Radeon 9000					.*ATI.*Radeon 90..							0		1 -ATI Radeon 9100					.*ATI.*Radeon 91..							0		1 -ATI Radeon 9200					.*ATI.*Radeon 92..							0		1 -ATI Radeon 9500					.*ATI.*Radeon 95..							0		1 -ATI Radeon 9600					.*ATI.*Radeon 96..							0		1 -ATI Radeon 9700					.*ATI.*Radeon 97..							1		1 -ATI Radeon 9800					.*ATI.*Radeon 98..							1		1 -ATI Radeon RV250				.*ATI.*RV250.*								0		1 -ATI Radeon RV600				.*ATI.*RV6.*								1		1 -ATI Radeon RX700				.*ATI.*RX70.*								1		1 -ATI Radeon RX800				.*ATI.*Radeon *RX80.*						2		1 -ATI RS880M						.*ATI.*RS880M								1		1 -ATI Radeon RX9550				.*ATI.*RX9550.*								1		1 -ATI Radeon VE					.*ATI.*Radeon.*VE.*							0		0 -ATI Radeon X300					.*ATI.*Radeon *X3.*							0		1 -ATI Radeon X400					.*ATI.*Radeon ?X4.*							0		1 -ATI Radeon X500					.*ATI.*Radeon ?X5.*							0		1 -ATI Radeon X600					.*ATI.*Radeon ?X6.*							1		1 -ATI Radeon X700					.*ATI.*Radeon ?X7.*							1		1 -ATI Radeon X800					.*ATI.*Radeon ?X8.*							2		1 -ATI Radeon X900					.*ATI.*Radeon ?X9.*							2		1 -ATI Radeon Xpress				.*ATI.*Radeon Xpress.*						0		1 -ATI Rage 128					.*ATI.*Rage 128.*							0		1 -ATI R300 (9700)					.*R300.*									1		1 -ATI R350 (9800)					.*R350.*									1		1 -ATI R580 (X1900)				.*R580.*									3		1 -ATI RC410 (Xpress 200)			.*RC410.*									0		0 -ATI RS48x (Xpress 200x)			.*RS48.*									0		0 -ATI RS600 (Xpress 3200)			.*RS600.*									0		0 -ATI RV350 (9600)				.*RV350.*									0		1 -ATI RV370 (X300)				.*RV370.*									0		1 -ATI RV410 (X700)				.*RV410.*									1		1 -ATI RV515						.*RV515.*									1		1 -ATI RV570 (X1900 GT/PRO)		.*RV570.*									3		1 -ATI RV380						.*RV380.*									0		1 -ATI RV530						.*RV530.*									1		1 -ATI RX480 (Xpress 200P)			.*RX480.*									0		1 -ATI RX700						.*RX700.*									1		1 -AMD ANTILLES (HD 6990)			.*(AMD|ATI).*Antilles.*						3		1 -AMD BARTS (HD 6800)				.*(AMD|ATI).*Barts.*						3		1 -AMD CAICOS (HD 6400)			.*(AMD|ATI).*Caicos.*						3		1 -AMD CAYMAN (HD 6900)			.*(AMD|ATI).*(Cayman|CAYMAM).*				3		1 -AMD CEDAR (HD 5450)				.*(AMD|ATI).*Cedar.*						2		1 -AMD CYPRESS (HD 5800)			.*(AMD|ATI).*Cypress.*						3		1 -AMD HEMLOCK (HD 5970)			.*(AMD|ATI).*Hemlock.*						3		1 -AMD JUNIPER (HD 5700)			.*(AMD|ATI).*Juniper.*						3		1 -AMD PARK						.*(AMD|ATI).*Park.*							3		1 -AMD REDWOOD (HD 5500/5600)		.*(AMD|ATI).*Redwood.*						3		1 -AMD TURKS (HD 6500/6600)		.*(AMD|ATI).*Turks.*						3		1 -AMD RS780 (HD 3200)				.*RS780.*									0		1 -AMD RS880 (HD 4200)				.*RS880.*									1		1 -AMD RV610 (HD 2400)				.*RV610.*									1		1 -AMD RV620 (HD 3400)				.*RV620.*									1		1 -AMD RV630 (HD 2600)				.*RV630.*									2		1 -AMD RV635 (HD 3600)				.*RV635.*									3		1 -AMD RV670 (HD 3800)				.*RV670.*									3		1 -AMD R680 (HD 3870 X2)			.*R680.*									3		1 -AMD R700 (HD 4800 X2)			.*R700.*									3		1 -AMD RV710 (HD 4300)				.*RV710.*									1		1 -AMD RV730 (HD 4600)				.*RV730.*									3		1 -AMD RV740 (HD 4700)				.*RV740.*									3		1 -AMD RV770 (HD 4800)				.*RV770.*									3		1 -AMD RV790 (HD 4800)				.*RV790.*									3		1 -ATI 760G/Radeon 3000			.*ATI.*AMD 760G.*							1		1 -ATI 780L/Radeon 3000			.*ATI.*AMD 780L.*							1		1 -ATI Radeon DDR					.*ATI.*Radeon ?DDR.*						0		1 -ATI FirePro 2000				.*ATI.*FirePro 2.*							1		1 -ATI FirePro 3000				.*ATI.*FirePro V3.*							1		1 -ATI FirePro 4000				.*ATI.*FirePro V4.*							2		1 -ATI FirePro 5000				.*ATI.*FirePro V5.*							3		1 -ATI FirePro 7000				.*ATI.*FirePro V7.*							3		1 -ATI FirePro M					.*ATI.*FirePro M.*							3		1 -ATI Technologies				.*ATI *Technologies.*						0		1 -// This entry is last to work around the "R300" driver problem. -ATI R300 (9700)					.*R300.*									1		1 -ATI Radeon						.*ATI.*(Diamond|Radeon).*					0		1 -Intel X3100						.*Intel.*X3100.*							0		1 -Intel 830M						.*Intel.*830M								0		0 -Intel 845G						.*Intel.*845G								0		0 -Intel 855GM						.*Intel.*855GM								0		0 -Intel 865G						.*Intel.*865G								0		0 -Intel 900						.*Intel.*900.*900							0		0 -Intel 915GM						.*Intel.*915GM								0		0 -Intel 915G						.*Intel.*915G								0		0 -Intel 945GM						.*Intel.*945GM.*							0		1 -Intel 945G						.*Intel.*945G.*								0		1 -Intel 950						.*Intel.*950.*								0		1 -Intel 965						.*Intel.*965.*								0		1 -Intel G33						.*Intel.*G33.*								0		0 -Intel G41						.*Intel.*G41.*								0		1 -Intel G45						.*Intel.*G45.*								0		1 -Intel Bear Lake					.*Intel.*Bear Lake.*						0		0 -Intel Broadwater				.*Intel.*Broadwater.*						0		0 -Intel Brookdale					.*Intel.*Brookdale.*						0		0 -Intel Cantiga					.*Intel.*Cantiga.*							0		0 -Intel Eaglelake					.*Intel.*Eaglelake.*						0		1 -Intel Graphics Media HD			.*Intel.*Graphics Media.*HD.*				0		1 -Intel HD Graphics				.*Intel.*HD Graphics.*						2		1 -Intel Mobile 4 Series			.*Intel.*Mobile.* 4 Series.*				0		1 -Intel Media Graphics HD			.*Intel.*Media Graphics HD.*				0		1 -Intel Montara					.*Intel.*Montara.*							0		0 -Intel Pineview					.*Intel.*Pineview.*							0		1 -Intel Springdale				.*Intel.*Springdale.*						0		0 -Intel HD Graphics 2000			.*Intel.*HD2000.*							1		1 -Intel HD Graphics 3000			.*Intel.*HD3000.*							2		1 -Matrox							.*Matrox.*									0		0 -Mesa							.*Mesa.*									0		0 -NVIDIA 205						.*NVIDIA .*GeForce 205.*					2		1 -NVIDIA 210						.*NVIDIA .*GeForce 210.*					2		1 -NVIDIA 310M						.*NVIDIA .*GeForce 310M.*					1		1 -NVIDIA 310						.*NVIDIA .*GeForce 310.*					3		1 -NVIDIA 315M						.*NVIDIA .*GeForce 315M.*					2		1 -NVIDIA 315						.*NVIDIA .*GeForce 315.*					3		1 -NVIDIA 320M						.*NVIDIA .*GeForce 320M.*					2		1 -NVIDIA G100M					.*NVIDIA .*100M.*							0		1 -NVIDIA G100						.*NVIDIA .*100.*							0		1 -NVIDIA G102M					.*NVIDIA .*102M.*							0		1 -NVIDIA G103M					.*NVIDIA .*103M.*							0		1 -NVIDIA G105M					.*NVIDIA .*105M.*							0		1 -NVIDIA G 110M					.*NVIDIA .*110M.*							0		1 -NVIDIA G 120M					.*NVIDIA .*120M.*							1		1 -NVIDIA G 200					.*NVIDIA .*200(M)?.*						0		1 -NVIDIA G 205M					.*NVIDIA .*205(M)?.*						0		1 -NVIDIA G 210					.*NVIDIA .*210(M)?.*						1		1 -NVIDIA 305M						.*NVIDIA .*305(M)?.*						1		1 -NVIDIA G 310M					.*NVIDIA .*310(M)?.*						2		1 -NVIDIA G 315					.*NVIDIA .*315(M)?.*						2		1 -NVIDIA G 320M					.*NVIDIA .*320(M)?.*						2		1 -NVIDIA G 405					.*NVIDIA .*405(M)?.*						1		1 -NVIDIA G 410M					.*NVIDIA .*410(M)?.*						1		1 -NVIDIA GT 120M					.*NVIDIA .*GT *120(M)?.*					2		1 -NVIDIA GT 120					.*NVIDIA .*GT.*120							2		1 -NVIDIA GT 130M					.*NVIDIA .*GT *130(M)?.*					2		1 -NVIDIA GT 140M					.*NVIDIA .*GT *140(M)?.*					2		1 -NVIDIA GT 150M					.*NVIDIA .*GT(S)? *150(M)?.*				2		1 -NVIDIA GT 160M					.*NVIDIA .*GT *160(M)?.*					2		1 -NVIDIA GT 220M					.*NVIDIA .*GT *220(M)?.*					2		1 -NVIDIA GT 230M					.*NVIDIA .*GT *230(M)?.*					2		1 -NVIDIA GT 240M					.*NVIDIA .*GT *240(M)?.*					2		1 -NVIDIA GT 250M					.*NVIDIA .*GT *250(M)?.*					2		1 -NVIDIA GT 260M					.*NVIDIA .*GT *260(M)?.*					2		1 -NVIDIA GT 320M					.*NVIDIA .*GT *320(M)?.*					2		1 -NVIDIA GT 325M					.*NVIDIA .*GT *325(M)?.*					0		1 -NVIDIA GT 330M					.*NVIDIA .*GT *330(M)?.*					3		1 -NVIDIA GT 335M					.*NVIDIA .*GT *335(M)?.*					1		1 -NVIDIA GT 340M					.*NVIDIA .*GT *340(M)?.*					2		1 -NVIDIA GT 415M					.*NVIDIA .*GT *415(M)?.*					2		1 -NVIDIA GT 420M					.*NVIDIA .*GT *420(M)?.*					2		1 -NVIDIA GT 425M					.*NVIDIA .*GT *425(M)?.*					3		1 -NVIDIA GT 430M					.*NVIDIA .*GT *430(M)?.*					3		1 -NVIDIA GT 435M					.*NVIDIA .*GT *435(M)?.*					3		1 -NVIDIA GT 440M					.*NVIDIA .*GT *440(M)?.*					3		1 -NVIDIA GT 445M					.*NVIDIA .*GT *445(M)?.*					3		1 -NVIDIA GT 450M					.*NVIDIA .*GT *450(M)?.*					3		1 -NVIDIA GT 520M					.*NVIDIA .*GT *52.(M)?.*					3		1 -NVIDIA GT 530M					.*NVIDIA .*GT *530(M)?.*					3		1 -NVIDIA GT 540M					.*NVIDIA .*GT *54.(M)?.*					3		1 -NVIDIA GT 550M					.*NVIDIA .*GT *550(M)?.*					3		1 -NVIDIA GT 555M					.*NVIDIA .*GT *555(M)?.*					3		1 -NVIDIA GTS 160M					.*NVIDIA .*GT(S)? *160(M)?.*				2		1 -NVIDIA GTS 240					.*NVIDIA .*GTS *24.*						3		1 -NVIDIA GTS 250					.*NVIDIA .*GTS *25.*						3		1 -NVIDIA GTS 350M					.*NVIDIA .*GTS *350M.*						3		1 -NVIDIA GTS 360M					.*NVIDIA .*GTS *360M.*						3		1 -NVIDIA GTS 360					.*NVIDIA .*GTS *360.*						3		1 -NVIDIA GTS 450					.*NVIDIA .*GTS *45.*						3		1 -NVIDIA GTX 260					.*NVIDIA .*GTX *26.*						3		1 -NVIDIA GTX 275					.*NVIDIA .*GTX *275.*						3		1 -NVIDIA GTX 270					.*NVIDIA .*GTX *27.*						3		1 -NVIDIA GTX 285					.*NVIDIA .*GTX *285.*						3		1 -NVIDIA GTX 280					.*NVIDIA .*GTX *280.*						3		1 -NVIDIA GTX 290					.*NVIDIA .*GTX *290.*						3		1 -NVIDIA GTX 295					.*NVIDIA .*GTX *295.*						3		1 -NVIDIA GTX 460M					.*NVIDIA .*GTX *460M.*						3		1 -NVIDIA GTX 465					.*NVIDIA .*GTX *465.*						3		1 -NVIDIA GTX 460					.*NVIDIA .*GTX *46.*						3		1 -NVIDIA GTX 470M					.*NVIDIA .*GTX *470M.*						3		1 -NVIDIA GTX 470					.*NVIDIA .*GTX *47.*						3		1 -NVIDIA GTX 480M					.*NVIDIA .*GTX *480M.*						3		1 -NVIDIA GTX 485M					.*NVIDIA .*GTX *485M.*						3		1 -NVIDIA GTX 480					.*NVIDIA .*GTX *48.*						3		1 -NVIDIA GTX 530					.*NVIDIA .*GTX *53.*						3		1 -NVIDIA GTX 550					.*NVIDIA .*GTX *55.*						3		1 -NVIDIA GTX 560					.*NVIDIA .*GTX *56.*						3		1 -NVIDIA GTX 570					.*NVIDIA .*GTX *57.*						3		1 -NVIDIA GTX 580M					.*NVIDIA .*GTX *580M.*						3		1 -NVIDIA GTX 580					.*NVIDIA .*GTX *58.*						3		1 -NVIDIA GTX 590					.*NVIDIA .*GTX *59.*						3		1 -NVIDIA C51						.*NVIDIA .*C51.*							0		1 -NVIDIA G72						.*NVIDIA .*G72.*							1		1 -NVIDIA G73						.*NVIDIA .*G73.*							1		1 -NVIDIA G84						.*NVIDIA .*G84.*							2		1 -NVIDIA G86						.*NVIDIA .*G86.*							3		1 -NVIDIA G92						.*NVIDIA .*G92.*							3		1 -NVIDIA GeForce					.*GeForce 256.*								0		0 -NVIDIA GeForce 2				.*GeForce ?2 ?.*							0		1 -NVIDIA GeForce 3				.*GeForce ?3 ?.*							0		1 -NVIDIA GeForce 3 Ti				.*GeForce ?3 Ti.*							0		1 -NVIDIA GeForce 4				.*NVIDIA .*GeForce ?4.*						0		1 -NVIDIA GeForce 4 Go				.*NVIDIA .*GeForce ?4.*Go.*					0		1 -NVIDIA GeForce 4 MX				.*NVIDIA .*GeForce ?4 MX.*					0		1 -NVIDIA GeForce 4 PCX			.*NVIDIA .*GeForce ?4 PCX.*					0		1 -NVIDIA GeForce 4 Ti				.*NVIDIA .*GeForce ?4 Ti.*					0		1 -NVIDIA GeForce 6100				.*NVIDIA .*GeForce 61.*						0		1 -NVIDIA GeForce 6200				.*NVIDIA .*GeForce 62.*						0		1 -NVIDIA GeForce 6500				.*NVIDIA .*GeForce 65.*						0		1 -NVIDIA GeForce 6600				.*NVIDIA .*GeForce 66.*						1		1 -NVIDIA GeForce 6700				.*NVIDIA .*GeForce 67.*						2		1 -NVIDIA GeForce 6800				.*NVIDIA .*GeForce 68.*						2		1 -NVIDIA GeForce 7000				.*NVIDIA .*GeForce 70.*						0		1 -NVIDIA GeForce 7100				.*NVIDIA .*GeForce 71.*						0		1 -NVIDIA GeForce 7200				.*NVIDIA .*GeForce 72.*						1		1 -NVIDIA GeForce 7300				.*NVIDIA .*GeForce 73.*						1		1 -NVIDIA GeForce 7500				.*NVIDIA .*GeForce 75.*						1		1 -NVIDIA GeForce 7600				.*NVIDIA .*GeForce 76.*						2		1 -NVIDIA GeForce 7800				.*NVIDIA .*GeForce 78.*						2		1 -NVIDIA GeForce 7900				.*NVIDIA .*GeForce 79.*						2		1 -NVIDIA GeForce 8100				.*NVIDIA .*GeForce 81.*						1		1 -NVIDIA GeForce 8200M			.*NVIDIA .*GeForce 8200M.*					1		1 -NVIDIA GeForce 8200				.*NVIDIA .*GeForce 82.*						1		1 -NVIDIA GeForce 8300				.*NVIDIA .*GeForce 83.*						2		1 -NVIDIA GeForce 8400M			.*NVIDIA .*GeForce 8400M.*					2		1 -NVIDIA GeForce 8400				.*NVIDIA .*GeForce 84.*						2		1 -NVIDIA GeForce 8500				.*NVIDIA .*GeForce 85.*						3		1 -NVIDIA GeForce 8600M			.*NVIDIA .*GeForce 8600M.*					2		1 -NVIDIA GeForce 8600				.*NVIDIA .*GeForce 86.*						3		1 -NVIDIA GeForce 8700M			.*NVIDIA .*GeForce 8700M.*					3		1 -NVIDIA GeForce 8700				.*NVIDIA .*GeForce 87.*						3		1 -NVIDIA GeForce 8800M			.*NVIDIA .*GeForce 8800M.*					3		1 -NVIDIA GeForce 8800				.*NVIDIA .*GeForce 88.*						3		1 -NVIDIA GeForce 9100M			.*NVIDIA .*GeForce 9100M.*					0		1 -NVIDIA GeForce 9100				.*NVIDIA .*GeForce 91.*						0		1 -NVIDIA GeForce 9200M			.*NVIDIA .*GeForce 9200M.*					1		1 -NVIDIA GeForce 9200				.*NVIDIA .*GeForce 92.*						1		1 -NVIDIA GeForce 9300M			.*NVIDIA .*GeForce 9300M.*					2		1 -NVIDIA GeForce 9300				.*NVIDIA .*GeForce 93.*						2		1 -NVIDIA GeForce 9400M			.*NVIDIA .*GeForce 9400M.*					2		1 -NVIDIA GeForce 9400				.*NVIDIA .*GeForce 94.*						2		1 -NVIDIA GeForce 9500M			.*NVIDIA .*GeForce 9500M.*					2		1 -NVIDIA GeForce 9500				.*NVIDIA .*GeForce 95.*						2		1 -NVIDIA GeForce 9600M			.*NVIDIA .*GeForce 9600M.*					3		1 -NVIDIA GeForce 9600				.*NVIDIA .*GeForce 96.*						2		1 -NVIDIA GeForce 9700M			.*NVIDIA .*GeForce 9700M.*					2		1 -NVIDIA GeForce 9800M			.*NVIDIA .*GeForce 9800M.*					3		1 -NVIDIA GeForce 9800				.*NVIDIA .*GeForce 98.*						3		1 -NVIDIA GeForce FX 5100			.*NVIDIA .*GeForce FX 51.*					0		1 -NVIDIA GeForce FX 5200			.*NVIDIA .*GeForce FX 52.*					0		1 -NVIDIA GeForce FX 5300			.*NVIDIA .*GeForce FX 53.*					0		1 -NVIDIA GeForce FX 5500			.*NVIDIA .*GeForce FX 55.*					0		1 -NVIDIA GeForce FX 5600			.*NVIDIA .*GeForce FX 56.*					0		1 -NVIDIA GeForce FX 5700			.*NVIDIA .*GeForce FX 57.*					1		1 -NVIDIA GeForce FX 5800			.*NVIDIA .*GeForce FX 58.*					1		1 -NVIDIA GeForce FX 5900			.*NVIDIA .*GeForce FX 59.*					1		1 -NVIDIA GeForce FX Go5100		.*NVIDIA .*GeForce FX Go51.*				0		1 -NVIDIA GeForce FX Go5200		.*NVIDIA .*GeForce FX Go52.*				0		1 -NVIDIA GeForce FX Go5300		.*NVIDIA .*GeForce FX Go53.*				0		1 -NVIDIA GeForce FX Go5500		.*NVIDIA .*GeForce FX Go55.*				0		1 -NVIDIA GeForce FX Go5600		.*NVIDIA .*GeForce FX Go56.*				0		1 -NVIDIA GeForce FX Go5700		.*NVIDIA .*GeForce FX Go57.*				1		1 -NVIDIA GeForce FX Go5800		.*NVIDIA .*GeForce FX Go58.*				1		1 -NVIDIA GeForce FX Go5900		.*NVIDIA .*GeForce FX Go59.*				1		1 -NVIDIA GeForce FX Go5xxx		.*NVIDIA .*GeForce FX Go.*					0		1 -NVIDIA GeForce Go 6100			.*NVIDIA .*GeForce Go 61.*					0		1 -NVIDIA GeForce Go 6200			.*NVIDIA .*GeForce Go 62.*					0		1 -NVIDIA GeForce Go 6400			.*NVIDIA .*GeForce Go 64.*					1		1 -NVIDIA GeForce Go 6500			.*NVIDIA .*GeForce Go 65.*					1		1 -NVIDIA GeForce Go 6600			.*NVIDIA .*GeForce Go 66.*					1		1 -NVIDIA GeForce Go 6700			.*NVIDIA .*GeForce Go 67.*					1		1 -NVIDIA GeForce Go 6800			.*NVIDIA .*GeForce Go 68.*					1		1 -NVIDIA GeForce Go 7200			.*NVIDIA .*GeForce Go 72.*					1		1 -NVIDIA GeForce Go 7300 LE		.*NVIDIA .*GeForce Go 73.*LE.*				0		1 -NVIDIA GeForce Go 7300			.*NVIDIA .*GeForce Go 73.*					1		1 -NVIDIA GeForce Go 7400			.*NVIDIA .*GeForce Go 74.*					1		1 -NVIDIA GeForce Go 7600			.*NVIDIA .*GeForce Go 76.*					2		1 -NVIDIA GeForce Go 7700			.*NVIDIA .*GeForce Go 77.*					2		1 -NVIDIA GeForce Go 7800			.*NVIDIA .*GeForce Go 78.*					2		1 -NVIDIA GeForce Go 7900			.*NVIDIA .*GeForce Go 79.*					2		1 -NVIDIA D9M						.*NVIDIA .*D9M.*							1		1 -NVIDIA G94						.*NVIDIA .*G94.*							3		1 -NVIDIA GeForce Go 6				.*GeForce Go 6.*							1		1 -NVIDIA ION 2					.*NVIDIA .*ION 2.*							2		1 -NVIDIA ION 						.*NVIDIA .*ION.*							2		1 -NVIDIA NB8M						.*NVIDIA .*NB8M.*							1		1 -NVIDIA NB8P						.*NVIDIA .*NB8P.*							2		1 -NVIDIA NB9E						.*NVIDIA .*NB9E.*							3		1 -NVIDIA NB9M						.*NVIDIA .*NB9M.*							1		1 -NVIDIA NB9P						.*NVIDIA .*NB9P.*							2		1 -NVIDIA N10						.*NVIDIA .*N10.*							1		1 -NVIDIA GeForce PCX				.*GeForce PCX.*								0		1 -NVIDIA Generic					.*NVIDIA .*Unknown.*						0		0 -NVIDIA NV17						.*NVIDIA .*NV17.*							0		1 -NVIDIA NV34						.*NVIDIA .*NV34.*							0		1 -NVIDIA NV35						.*NVIDIA .*NV35.*							0		1 -NVIDIA NV36						.*NVIDIA .*NV36.*							1		1 -NVIDIA NV41						.*NVIDIA .*NV41.*							1		1 -NVIDIA NV43						.*NVIDIA .*NV43.*							1		1 -NVIDIA NV44						.*NVIDIA .*NV44.*							1		1 -NVIDIA nForce					.*NVIDIA .*nForce.*							0		0 -NVIDIA MCP51					.*NVIDIA .*MCP51.*							1		1 -NVIDIA MCP61					.*NVIDIA .*MCP61.*							1		1 -NVIDIA MCP67					.*NVIDIA .*MCP67.*							1		1 -NVIDIA MCP68					.*NVIDIA .*MCP68.*							1		1 -NVIDIA MCP73					.*NVIDIA .*MCP73.*							1		1 -NVIDIA MCP77					.*NVIDIA .*MCP77.*							1		1 -NVIDIA MCP78					.*NVIDIA .*MCP78.*							1		1 -NVIDIA MCP79					.*NVIDIA .*MCP79.*							1		1 -NVIDIA MCP7A					.*NVIDIA .*MCP7A.*							1		1 -NVIDIA Quadro2					.*Quadro2.*									0		1 -NVIDIA Quadro 1000M				.*Quadro.*1000M.*							2		1 -NVIDIA Quadro 2000 M/D			.*Quadro.*2000.*							3		1 -NVIDIA Quadro 3000M				.*Quadro.*3000M.*							3		1 -NVIDIA Quadro 4000M				.*Quadro.*4000M.*							3		1 -NVIDIA Quadro 4000				.*Quadro *4000.*							3		1 -NVIDIA Quadro 50x0 M			.*Quadro.*50.0.*							3		1 -NVIDIA Quadro 6000				.*Quadro.*6000.*							3		1 -NVIDIA Quadro 400				.*Quadro.*400.*								2		1 -NVIDIA Quadro 600				.*Quadro.*600.*								2		1 -NVIDIA Quadro4					.*Quadro4.*									0		1 -NVIDIA Quadro DCC				.*Quadro DCC.*								0		1 -NVIDIA Quadro CX				.*Quadro.*CX.*								3		1 -NVIDIA Quadro FX 770M			.*Quadro.*FX *770M.*						2		1 -NVIDIA Quadro FX 1500M			.*Quadro.*FX *1500M.*						1		1 -NVIDIA Quadro FX 1600M			.*Quadro.*FX *1600M.*						2		1 -NVIDIA Quadro FX 2500M			.*Quadro.*FX *2500M.*						2		1 -NVIDIA Quadro FX 2700M			.*Quadro.*FX *2700M.*						3		1 -NVIDIA Quadro FX 2800M			.*Quadro.*FX *2800M.*						3		1 -NVIDIA Quadro FX 3500			.*Quadro.*FX *3500.*						2		1 -NVIDIA Quadro FX 3600			.*Quadro.*FX *3600.*						3		1 -NVIDIA Quadro FX 3700			.*Quadro.*FX *3700.*						3		1 -NVIDIA Quadro FX 3800			.*Quadro.*FX *3800.*						3		1 -NVIDIA Quadro FX 4500			.*Quadro.*FX *45.*							3		1 -NVIDIA Quadro FX 880M			.*Quadro.*FX *880M.*						3		1 -NVIDIA Quadro FX 4800			.*NVIDIA .*Quadro *FX *4800.*				3		1 -NVIDIA Quadro FX				.*Quadro FX.*								1		1 -NVIDIA Quadro NVS 1xxM			.*Quadro NVS *1.[05]M.*						0		1 -NVIDIA Quadro NVS 300M			.*NVIDIA .*NVS *300M.*						2		1 -NVIDIA Quadro NVS 320M			.*NVIDIA .*NVS *320M.*						2		1 -NVIDIA Quadro NVS 2100M			.*NVIDIA .*NVS *2100M.*						2		1 -NVIDIA Quadro NVS 3100M			.*NVIDIA .*NVS *3100M.*						2		1 -NVIDIA Quadro NVS 4200M			.*NVIDIA .*NVS *4200M.*						2		1 -NVIDIA Quadro NVS 5100M			.*NVIDIA .*NVS *5100M.*						2		1 -NVIDIA Quadro NVS				.*NVIDIA .*NVS								0		1 -NVIDIA RIVA TNT					.*RIVA TNT.*								0		0 -S3								.*S3 Graphics.*								0		0 -SiS								SiS.*										0		0 -Trident							Trident.*									0		0 -Tungsten Graphics				Tungsten.*									0		0 -XGI								XGI.*										0		0 -VIA								VIA.*										0		0 -Apple Generic					Apple.*Generic.*							0		0 -Apple Software Renderer			Apple.*Software Renderer.*					0		0 -Humper							Humper.*									0		1 +3Dfx									.*3Dfx.*								0	0	0	0 +3Dlabs									.*3Dlabs.*								0	0	0	0 +ATI 3D-Analyze							.*ATI.*3D-Analyze.*						0	0	0	0 +ATI All-in-Wonder 7500					.*ATI.*All-in-Wonder 75.*				0	1	0	0 +ATI All-in-Wonder 8500					.*ATI.*All-in-Wonder 85.*				0	1	0	0 +ATI All-in-Wonder 9200					.*ATI.*All-in-Wonder 92.*				0	1	0	0 +ATI All-in-Wonder 9xxx					.*ATI.*All-in-Wonder 9.*				1	1	0	0 +ATI All-in-Wonder HD					.*ATI.*All-in-Wonder HD.*				1	1	1	3.3 +ATI All-in-Wonder X600					.*ATI.*All-in-Wonder X6.*				1	1	0	0 +ATI All-in-Wonder X800					.*ATI.*All-in-Wonder X8.*				1	1	1	2.1 +ATI All-in-Wonder X1800					.*ATI.*All-in-Wonder X18.*				3	1	0	0 +ATI All-in-Wonder X1900					.*ATI.*All-in-Wonder X19.*				3	1	0	0 +ATI All-in-Wonder PCI-E					.*ATI.*All-in-Wonder.*PCI-E.*			1	1	0	0 +ATI All-in-Wonder Radeon				.*ATI.*All-in-Wonder Radeon.*			0	1	0	0 +ATI ASUS ARES							.*ATI.*ASUS.*ARES.*						3	1	0	0 +ATI ASUS A9xxx							.*ATI.*ASUS.*A9.*						1	1	0	0 +ATI ASUS AH24xx							.*ATI.*ASUS.*AH24.*						1	1	1	3.3 +ATI ASUS AH26xx							.*ATI.*ASUS.*AH26.*						1	1	1	3.3 +ATI ASUS AH34xx							.*ATI.*ASUS.*AH34.*						1	1	1	3.3 +ATI ASUS AH36xx							.*ATI.*ASUS.*AH36.*						1	1	1	3.3 +ATI ASUS AH46xx							.*ATI.*ASUS.*AH46.*						2	1	1	3.3 +ATI ASUS AX3xx							.*ATI.*ASUS.*AX3.*						1	1	0	0 +ATI ASUS AX5xx							.*ATI.*ASUS.*AX5.*						1	1	0	0 +ATI ASUS AX8xx							.*ATI.*ASUS.*AX8.*						2	1	0	0 +ATI ASUS EAH24xx						.*ATI.*ASUS.*EAH24.*					2	1	0	0 +ATI ASUS EAH26xx						.*ATI.*ASUS.*EAH26.*					3	1	0	0 +ATI ASUS EAH29xx						.*ATI.*ASUS.*EAH29.*					3	1	0	0 +ATI ASUS EAH34xx						.*ATI.*ASUS.*EAH34.*					1	1	0	0 +ATI ASUS EAH36xx						.*ATI.*ASUS.*EAH36.*					2	1	0	0 +ATI ASUS EAH38xx						.*ATI.*ASUS.*EAH38.*					2	1	1	3.3 +ATI ASUS EAH43xx						.*ATI.*ASUS.*EAH43.*					2	1	1	3.3 +ATI ASUS EAH45xx						.*ATI.*ASUS.*EAH45.*					2	1	0	0 +ATI ASUS EAH48xx						.*ATI.*ASUS.*EAH48.*					3	1	1	3.3 +ATI ASUS EAH57xx						.*ATI.*ASUS.*EAH57.*					3	1	1	4.1 +ATI ASUS EAH58xx						.*ATI.*ASUS.*EAH58.*					5	1	1	4.1 +ATI ASUS EAH62xx						.*ATI.*ASUS.*EAH62.*					2	1	0	0 +ATI ASUS EAH63xx						.*ATI.*ASUS.*EAH63.*					2	1	0	0 +ATI ASUS EAH64xx						.*ATI.*ASUS.*EAH64.*					2	1	0	0 +ATI ASUS EAH65xx						.*ATI.*ASUS.*EAH65.*					2	1	0	0 +ATI ASUS EAH66xx						.*ATI.*ASUS.*EAH66.*					3	1	0	0 +ATI ASUS EAH67xx						.*ATI.*ASUS.*EAH67.*					3	1	0	0 +ATI ASUS EAH68xx						.*ATI.*ASUS.*EAH68.*					5	1	0	0 +ATI ASUS EAH69xx						.*ATI.*ASUS.*EAH69.*					5	1	0	0 +ATI ASUS Radeon X1xxx					.*ATI.*ASUS.*X1.*						2	1	1	2.1 +ATI Radeon X7xx							.*ATI.*ASUS.*X7.*						1	1	0	0 +ATI Radeon X19xx						.*ATI.*(Radeon|Diamond) X19.* ?.*		2	1	1	2.1 +ATI Radeon X18xx						.*ATI.*(Radeon|Diamond) X18.* ?.*		3	1	1	2.1 +ATI Radeon X17xx						.*ATI.*(Radeon|Diamond) X17.* ?.*		1	1	1	2.1 +ATI Radeon X16xx						.*ATI.*(Radeon|Diamond) X16.* ?.*		1	1	1	2.1 +ATI Radeon X15xx						.*ATI.*(Radeon|Diamond) X15.* ?.*		1	1	1	2.1 +ATI Radeon X13xx						.*ATI.*(Radeon|Diamond) X13.* ?.*		1	1	1	2.1 +ATI Radeon X1xxx						.*ATI.*(Radeon|Diamond) X1.. ?.*		0	1	1	2.1 +ATI Radeon X2xxx						.*ATI.*(Radeon|Diamond) X2.. ?.*		1	1	1	2.1 +ATI Display Adapter						.*ATI.*display adapter.*				1	1	1	4.1 +ATI FireGL 5200							.*ATI.*FireGL V52.*						1	1	1	2.1 +ATI FireGL 5xxx							.*ATI.*FireGL V5.*						2	1	1	3.3 +ATI FireGL								.*ATI.*Fire.*GL.*						4	1	1	4.2 +ATI FirePro M3900						.*ATI.*FirePro.*M39.*					2	1	0	0 +ATI FirePro M5800						.*ATI.*FirePro.*M58.*					3	1	0	0 +ATI FirePro M7740						.*ATI.*FirePro.*M77.*					3	1	0	0 +ATI FirePro M7820						.*ATI.*FirePro.*M78.*					5	1	1	4.2 +ATI FireMV								.*ATI.*FireMV.*							0	1	1	1.3 +ATI Generic								.*ATI.*Generic.*						0	0	0	0 +ATI Hercules 9800						.*ATI.*Hercules.*9800.*					1	1	0	0 +ATI IGP 340M							.*ATI.*IGP.*340M.*						0	0	0	0 +ATI M52									.*ATI.*M52.*							1	1	0	0 +ATI M54									.*ATI.*M54.*							1	1	0	0 +ATI M56									.*ATI.*M56.*							1	1	0	0 +ATI M71									.*ATI.*M71.*							1	1	0	0 +ATI M72									.*ATI.*M72.*							1	1	0	0 +ATI M76									.*ATI.*M76.*							3	1	0	0 +ATI Radeon HD 64xx						.*ATI.*AMD Radeon.* HD [67]4..[MG]		2	1	1	4.2 +ATI Radeon HD 65xx						.*ATI.*AMD Radeon.* HD [67]5..[MG]		2	1	1	4.2 +ATI Radeon HD 66xx						.*ATI.*AMD Radeon.* HD [67]6..[MG]		3	1	1	4.2 +ATI Radeon HD 7100						.*ATI.*AMD Radeon.* HD 71.*				2	1	0	0 +ATI Radeon HD 7200						.*ATI.*AMD Radeon.* HD 72.*				2	1	0	0 +ATI Radeon HD 7300						.*ATI.*AMD Radeon.* HD 73.*				2	1	0	0 +ATI Radeon HD 7400						.*ATI.*AMD Radeon.* HD 74.*				2	1	0	0 +ATI Radeon HD 7500						.*ATI.*AMD Radeon.* HD 75.*				3	1	1	4.2 +ATI Radeon HD 7600						.*ATI.*AMD Radeon.* HD 76.*				3	1	0	0 +ATI Radeon HD 7700						.*ATI.*AMD Radeon.* HD 77.*				4	1	1	4.2 +ATI Radeon HD 7800						.*ATI.*AMD Radeon.* HD 78.*				5	1	1	4.2 +ATI Radeon HD 7900						.*ATI.*AMD Radeon.* HD 79.*				5	1	1	4.2 +ATI Mobility Radeon 4100				.*ATI.*Mobility.*41..					1	1	1	3.3 +ATI Mobility Radeon 7xxx				.*ATI.*Mobility.*Radeon 7.*				0	1	1	1.3 +ATI Mobility Radeon 8xxx				.*ATI.*Mobility.*Radeon 8.*				0	1	0	0 +ATI Mobility Radeon 9800				.*ATI.*Mobility.*98.*					1	1	0	0 +ATI Mobility Radeon 9700				.*ATI.*Mobility.*97.*					0	1	1	2.1 +ATI Mobility Radeon 9600				.*ATI.*Mobility.*96.*					1	1	1	2.1 +ATI Mobility Radeon HD 530v				.*ATI.*Mobility.*HD *530v.*				1	1	1	3.3 +ATI Mobility Radeon HD 540v				.*ATI.*Mobility.*HD *540v.*				1	1	1	3.3 +ATI Mobility Radeon HD 545v				.*ATI.*Mobility.*HD *545v.*				2	1	1	4 +ATI Mobility Radeon HD 550v				.*ATI.*Mobility.*HD *550v.*				3	1	1	4 +ATI Mobility Radeon HD 560v				.*ATI.*Mobility.*HD *560v.*				3	1	1	3.2 +ATI Mobility Radeon HD 565v				.*ATI.*Mobility.*HD *565v.*				3	1	1	3.3 +ATI Mobility Radeon HD 2300				.*ATI.*Mobility.*HD *23.*				0	1	1	2.1 +ATI Mobility Radeon HD 2400				.*ATI.*Mobility.*HD *24.*				1	1	1	3.3 +ATI Mobility Radeon HD 2600				.*ATI.*Mobility.*HD *26.*				1	1	1	3.3 +ATI Mobility Radeon HD 2700				.*ATI.*Mobility.*HD *27.*				3	1	0	0 +ATI Mobility Radeon HD 3100				.*ATI.*Mobility.*HD *31.*				0	1	0	0 +ATI Mobility Radeon HD 3200				.*ATI.*Mobility.*HD *32.*				0	1	0	0 +ATI Mobility Radeon HD 3400				.*ATI.*Mobility.*HD *34.*				1	1	1	3.3 +ATI Mobility Radeon HD 3600				.*ATI.*Mobility.*HD *36.*				1	1	1	4 +ATI Mobility Radeon HD 3800				.*ATI.*Mobility.*HD *38.*				3	1	1	3.3 +ATI Mobility Radeon HD 4200				.*ATI.*Mobility.*HD *42.*				1	1	1	4 +ATI Mobility Radeon HD 4300				.*ATI.*Mobility.*HD *43.*				1	1	1	4 +ATI Mobility Radeon HD 4500				.*ATI.*Mobility.*HD *45.*				1	1	1	4 +ATI Mobility Radeon HD 4600				.*ATI.*Mobility.*HD *46.*				2	1	1	3.3 +ATI Mobility Radeon HD 4800				.*ATI.*Mobility.*HD *48.*				3	1	1	3.3 +ATI Mobility Radeon HD 5100				.*ATI.*Mobility.*HD *51.*				3	1	1	3.2 +ATI Mobility Radeon HD 5300				.*ATI.*Mobility.*HD *53.*				3	1	0	0 +ATI Mobility Radeon HD 5400				.*ATI.*Mobility.*HD *54.*				2	1	1	4.2 +ATI Mobility Radeon HD 5500				.*ATI.*Mobility.*HD *55.*				3	1	0	0 +ATI Mobility Radeon HD 5600				.*ATI.*Mobility.*HD *56.*				3	1	1	4.2 +ATI Mobility Radeon HD 5700				.*ATI.*Mobility.*HD *57.*				3	1	1	4.1 +ATI Mobility Radeon HD 6200				.*ATI.*Mobility.*HD *62.*				3	1	0	0 +ATI Mobility Radeon HD 6300				.*ATI.*Mobility.*HD *63.*				3	1	1	4.2 +ATI Mobility Radeon HD 6400M			.*ATI.*Mobility.*HD *64.*				3	1	0	0 +ATI Mobility Radeon HD 6500M			.*ATI.*Mobility.*HD *65.*				5	1	1	4.2 +ATI Mobility Radeon HD 6600M			.*ATI.*Mobility.*HD *66.*				5	1	0	0 +ATI Mobility Radeon HD 6700M			.*ATI.*Mobility.*HD *67.*				5	1	0	0 +ATI Mobility Radeon HD 6800M			.*ATI.*Mobility.*HD *68.*				5	1	0	0 +ATI Mobility Radeon HD 6900M			.*ATI.*Mobility.*HD *69.*				5	1	0	0 +ATI Radeon HD 2300						.*ATI.*Radeon HD *23..					0	1	1	3.3 +ATI Radeon HD 2400						.*ATI.*Radeon HD *24..					1	1	1	4 +ATI Radeon HD 2600						.*ATI.*Radeon HD *26..					2	1	1	3.3 +ATI Radeon HD 2900						.*ATI.*Radeon HD *29..					3	1	1	3.3 +ATI Radeon HD 3000						.*ATI.*Radeon HD *30..					0	1	0	0 +ATI Radeon HD 3100						.*ATI.*Radeon HD *31..					1	1	0	0 +ATI Radeon HD 3200						.*ATI.*Radeon HD *32..					1	1	1	4 +ATI Radeon HD 3300						.*ATI.*Radeon HD *33..					1	1	1	3.3 +ATI Radeon HD 3400						.*ATI.*Radeon HD *34..					1	1	1	4 +ATI Radeon HD 3500						.*ATI.*Radeon HD *35..					2	1	0	0 +ATI Radeon HD 3600						.*ATI.*Radeon HD *36..					3	1	1	3.3 +ATI Radeon HD 3700						.*ATI.*Radeon HD *37..					3	1	0	0 +ATI Radeon HD 3800						.*ATI.*Radeon HD *38..					3	1	1	4 +ATI Radeon HD 4100						.*ATI.*Radeon HD *41..					1	1	0	0 +ATI Radeon HD 4200						.*ATI.*Radeon HD *42..					1	1	1	4 +ATI Radeon HD 4300						.*ATI.*Radeon HD *43..					2	1	1	4 +ATI Radeon HD 4400						.*ATI.*Radeon HD *44..					2	1	0	0 +ATI Radeon HD 4500						.*ATI.*Radeon HD *45..					2	1	1	3.3 +ATI Radeon HD 4600						.*ATI.*Radeon HD *46..					3	1	1	4 +ATI Radeon HD 4700						.*ATI.*Radeon HD *47..					3	1	1	3.3 +ATI Radeon HD 4800						.*ATI.*Radeon HD *48..					3	1	1	4 +ATI Radeon HD 5400						.*ATI.*Radeon HD *54..					3	1	1	4.2 +ATI Radeon HD 5500						.*ATI.*Radeon HD *55..					3	1	1	4.2 +ATI Radeon HD 5600						.*ATI.*Radeon HD *56..					3	1	1	4.2 +ATI Radeon HD 5700						.*ATI.*Radeon HD *57..					3	1	1	4.2 +ATI Radeon HD 5800						.*ATI.*Radeon HD *58..					4	1	1	4.2 +ATI Radeon HD 5900						.*ATI.*Radeon HD *59..					4	1	1	4.2 +ATI Radeon HD 6200						.*ATI.*Radeon HD *62..					0	1	1	4.2 +ATI Radeon HD 6300						.*ATI.*Radeon HD *63..					1	1	1	4.2 +ATI Radeon HD 6400						.*ATI.*Radeon HD *64..					3	1	1	4.2 +ATI Radeon HD 6500						.*ATI.*Radeon HD *65..					3	1	1	4.2 +ATI Radeon HD 6600						.*ATI.*Radeon HD *66..					3	1	1	4.2 +ATI Radeon HD 6700						.*ATI.*Radeon HD *67..					3	1	1	4.2 +ATI Radeon HD 6800						.*ATI.*Radeon HD *68..					4	1	1	4.2 +ATI Radeon HD 6900						.*ATI.*Radeon HD *69..					5	1	1	4.2 +ATI Radeon OpenGL						.*ATI.*Radeon OpenGL.*					0	0	0	0 +ATI Radeon 2100							.*ATI.*Radeon 21..						0	1	1	2.1 +ATI Radeon 3000							.*ATI.*Radeon 30..						1	1	1	4 +ATI Radeon 3100							.*ATI.*Radeon 31..						0	1	1	3.3 +ATI Radeon 5xxx							.*ATI.*Radeon 5...						3	1	0	0 +ATI Radeon 7xxx							.*ATI.*Radeon 7...						0	1	1	2 +ATI Radeon 8xxx							.*ATI.*Radeon 8...						0	1	0	0 +ATI Radeon 9000							.*ATI.*Radeon 90..						0	1	1	1.3 +ATI Radeon 9100							.*ATI.*Radeon 91..						0	1	0	0 +ATI Radeon 9200							.*ATI.*Radeon 92..						0	1	1	1.3 +ATI Radeon 9500							.*ATI.*Radeon 95..						0	1	1	2.1 +ATI Radeon 9600							.*ATI.*Radeon 96..						0	1	1	2.1 +ATI Radeon 9700							.*ATI.*Radeon 97..						1	1	0	0 +ATI Radeon 9800							.*ATI.*Radeon 98..						1	1	1	2.1 +ATI Radeon RV250						.*ATI.*RV250.*							0	1	0	0 +ATI Radeon RV600						.*ATI.*RV6.*							1	1	0	0 +ATI Radeon RX700						.*ATI.*RX70.*							1	1	0	0 +ATI Radeon RX800						.*ATI.*Radeon *RX80.*					2	1	0	0 +ATI RS880M								.*ATI.*RS880M							1	1	0	0 +ATI Radeon RX9550						.*ATI.*RX9550.*							1	1	0	0 +ATI Radeon VE							.*ATI.*Radeon.*VE.*						0	0	0	0 +ATI Radeon X300							.*ATI.*Radeon *X3.*						1	1	1	2.1 +ATI Radeon X400							.*ATI.*Radeon ?X4.*						0	1	0	0 +ATI Radeon X500							.*ATI.*Radeon ?X5.*						1	1	1	2.1 +ATI Radeon X600							.*ATI.*Radeon ?X6.*						1	1	1	2.1 +ATI Radeon X700							.*ATI.*Radeon ?X7.*						2	1	1	2.1 +ATI Radeon X800							.*ATI.*Radeon ?X8.*						1	1	1	2.1 +ATI Radeon X900							.*ATI.*Radeon ?X9.*						2	1	0	0 +ATI Radeon Xpress						.*ATI.*Radeon Xpress.*					0	1	1	2.1 +ATI Rage 128							.*ATI.*Rage 128.*						0	1	0	0 +ATI R300 (9700)							.*R300.*								0	1	1	2.1 +ATI R350 (9800)							.*R350.*								1	1	0	0 +ATI R580 (X1900)						.*R580.*								3	1	0	0 +ATI RC410 (Xpress 200)					.*RC410.*								0	0	0	0 +ATI RS48x (Xpress 200x)					.*RS48.*								0	0	0	0 +ATI RS600 (Xpress 3200)					.*RS600.*								0	0	0	0 +ATI RV350 (9600)						.*RV350.*								0	1	0	0 +ATI RV370 (X300)						.*RV370.*								0	1	0	0 +ATI RV410 (X700)						.*RV410.*								1	1	0	0 +ATI RV515								.*RV515.*								1	1	0	0 +ATI RV570 (X1900 GT/PRO)				.*RV570.*								3	1	0	0 +ATI RV380								.*RV380.*								0	1	0	0 +ATI RV530								.*RV530.*								1	1	0	0 +ATI RX480 (Xpress 200P)					.*RX480.*								0	1	0	0 +ATI RX700								.*RX700.*								1	1	0	0 +AMD ANTILLES (HD 6990)					.*(AMD|ATI).*Antilles.*					3	1	0	0 +AMD BARTS (HD 6800)						.*(AMD|ATI).*Barts.*					3	1	1	2.1 +AMD CAICOS (HD 6400)					.*(AMD|ATI).*Caicos.*					3	1	0	0 +AMD CAYMAN (HD 6900)					.*(AMD|ATI).*(Cayman|CAYMAM).*			3	1	0	0 +AMD CEDAR (HD 5450)						.*(AMD|ATI).*Cedar.*					2	1	0	0 +AMD CYPRESS (HD 5800)					.*(AMD|ATI).*Cypress.*					3	1	0	0 +AMD HEMLOCK (HD 5970)					.*(AMD|ATI).*Hemlock.*					3	1	0	0 +AMD JUNIPER (HD 5700)					.*(AMD|ATI).*Juniper.*					3	1	0	0 +AMD PARK								.*(AMD|ATI).*Park.*						3	1	0	0 +AMD REDWOOD (HD 5500/5600)				.*(AMD|ATI).*Redwood.*					3	1	0	0 +AMD TURKS (HD 6500/6600)				.*(AMD|ATI).*Turks.*					3	1	0	0 +AMD RS780 (HD 3200)						.*RS780.*								0	1	1	2.1 +AMD RS880 (HD 4200)						.*RS880.*								0	1	1	3.2 +AMD RV610 (HD 2400)						.*RV610.*								1	1	0	0 +AMD RV620 (HD 3400)						.*RV620.*								1	1	0	0 +AMD RV630 (HD 2600)						.*RV630.*								2	1	0	0 +AMD RV635 (HD 3600)						.*RV635.*								3	1	0	0 +AMD RV670 (HD 3800)						.*RV670.*								3	1	0	0 +AMD R680 (HD 3870 X2)					.*R680.*								3	1	0	0 +AMD R700 (HD 4800 X2)					.*R700.*								3	1	0	0 +AMD RV710 (HD 4300)						.*RV710.*								0	1	1	1.4 +AMD RV730 (HD 4600)						.*RV730.*								3	1	0	0 +AMD RV740 (HD 4700)						.*RV740.*								3	1	0	0 +AMD RV770 (HD 4800)						.*RV770.*								3	1	0	0 +AMD RV790 (HD 4800)						.*RV790.*								3	1	0	0 +ATI 760G/Radeon 3000					.*ATI.*AMD 760G.*						1	1	1	3.3 +ATI 780L/Radeon 3000					.*ATI.*AMD 780L.*						1	1	0	0 +ATI Radeon DDR							.*ATI.*Radeon ?DDR.*					0	1	0	0 +ATI FirePro 2000						.*ATI.*FirePro 2.*						2	1	1	4.1 +ATI FirePro 3000						.*ATI.*FirePro V3.*						2	1	0	0 +ATI FirePro 4000						.*ATI.*FirePro V4.*						2	1	0	0 +ATI FirePro 5000						.*ATI.*FirePro V5.*						3	1	0	0 +ATI FirePro 7000						.*ATI.*FirePro V7.*						3	1	0	0 +ATI FirePro M							.*ATI.*FirePro M.*						3	1	1	4.2 +ATI R300 (9700)							.*R300.*								0	1	1	2.1 +ATI Radeon								.*ATI.*(Diamond|Radeon).*				0	1	0	0 +Intel X3100								.*Intel.*X3100.*						1	1	1	2.1 +Intel GMA 3600							.*Intel.* 3600.*						0	1	1	3 +Intel 830M								.*Intel.*830M							0	0	0	0 +Intel 845G								.*Intel.*845G							0	0	1	1.4 +Intel 855GM								.*Intel.*855GM							0	0	1	1.4 +Intel 865G								.*Intel.*865G							0	0	1	1.4 +Intel 900								.*Intel.*900.*900						0	0	0	0 +Intel 915GM								.*Intel.*915GM							0	0	1	1.4 +Intel 915G								.*Intel.*915G							0	0	1	1.4 +Intel 945GM								.*Intel.*945GM.*						0	1	1	1.4 +Intel 945G								.*Intel.*945G.*							0	1	1	1.4 +Intel 950								.*Intel.*950.*							0	1	1	1.4 +Intel 965								.*Intel.*965.*							0	1	1	2.1 +Intel G33								.*Intel.*G33.*							1	0	1	1.4 +Intel G41								.*Intel.*G41.*							1	1	1	2.1 +Intel G45								.*Intel.*G45.*							1	1	1	2.1 +Intel Bear Lake							.*Intel.*Bear Lake.*					1	0	1	1.4 +Intel Broadwater						.*Intel.*Broadwater.*					0	0	1	1.4 +Intel Brookdale							.*Intel.*Brookdale.*					0	0	1	1.3 +Intel Cantiga							.*Intel.*Cantiga.*						0	0	1	2 +Intel Eaglelake							.*Intel.*Eaglelake.*					1	1	1	2 +Intel Graphics Media HD					.*Intel.*Graphics Media.*HD.*			1	1	1	2.1 +Intel HD Graphics 2000					.*Intel.*HD Graphics 2.*				2	1	0	0 +Intel HD Graphics 3000					.*Intel.*HD Graphics 3.*				3	1	1	3.1 +Intel HD Graphics 4000					.*Intel.*HD Graphics 4.*				3	1	1	3.3 +Intel HD2000							.*Intel.*HD2000.*						2	1	0	0 +Intel HD3000							.*Intel.*HD3000.*						3	1	0	0 +Intel HD Graphics						.*Intel.*HD Graphics.*					2	1	1	4 +Intel Mobile 4 Series					.*Intel.*Mobile.* 4 Series.*			0	1	1	2.1 +Intel 4 Series Internal					.*Intel.* 4 Series Internal.*			1	1	1	2.1 +Intel Media Graphics HD					.*Intel.*Media Graphics HD.*			0	1	0	0 +Intel Montara							.*Intel.*Montara.*						0	0	1	1.3 +Intel Pineview							.*Intel.*Pineview.*						0	1	1	1.4 +Intel Springdale						.*Intel.*Springdale.*					0	0	1	1.3 +Intel Grantsdale						.*Intel.*Grantsdale.*					1	1	0	0 +Intel Q45/Q43							.*Intel.*Q4.*							1	1	1	2.1 +Intel B45/B43							.*Intel.*B4.*							1	1	1	2.1 +Intel 3D-Analyze						.*Intel.*3D-Analyze.*					2	1	0	0 +Matrox									.*Matrox.*								0	0	0	0 +Mesa									.*Mesa.*								1	0	1	2.1 +Gallium									.*Gallium.*								1	1	1	2.1 +NVIDIA G100M							.*NVIDIA .*100M.*						4	1	1	3.3 +NVIDIA G102M							.*NVIDIA .*102M.*						1	1	1	3.3 +NVIDIA G103M							.*NVIDIA .*103M.*						2	1	1	3.3 +NVIDIA G105M							.*NVIDIA .*105M.*						2	1	1	3.3 +NVIDIA G 110M							.*NVIDIA .*110M.*						1	1	1	3.3 +NVIDIA G 120M							.*NVIDIA .*120M.*						1	1	1	3.3 +NVIDIA G 205M							.*NVIDIA .*205M.*						1	1	0	0 +NVIDIA G 410M							.*NVIDIA .*410M.*						3	1	1	4.2 +NVIDIA GT 120M							.*NVIDIA .*GT *12*M.*					3	1	1	3.3 +NVIDIA GT 130M							.*NVIDIA .*GT *13*M.*					3	1	1	3.3 +NVIDIA GT 140M							.*NVIDIA .*GT *14*M.*					3	1	1	3.3 +NVIDIA GT 150M							.*NVIDIA .*GTS *15*M.*					2	1	0	0 +NVIDIA GTS 160M							.*NVIDIA .*GTS *16*M.*					2	1	0	0 +NVIDIA G210M							.*NVIDIA .*G21*M.*						3	1	0	0 +NVIDIA GT 220M							.*NVIDIA .*GT *22*M.*					3	1	1	3.3 +NVIDIA GT 230M							.*NVIDIA .*GT *23*M.*					3	1	1	3.3 +NVIDIA GT 240M							.*NVIDIA .*GT *24*M.*					3	1	1	3.3 +NVIDIA GTS 250M							.*NVIDIA .*GTS *25*M.*					3	1	0	0 +NVIDIA GTS 260M							.*NVIDIA .*GTS *26*M.*					3	1	0	0 +NVIDIA GTX 260M							.*NVIDIA .*GTX *26*M.*					3	1	0	0 +NVIDIA GTX 270M							.*NVIDIA .*GTX *27*M.*					3	1	0	0 +NVIDIA GTX 280M							.*NVIDIA .*GTX *28*M.*					3	1	0	0 +NVIDIA 300M								.*NVIDIA .*30*M.*						3	1	1	4.2 +NVIDIA G 310M							.*NVIDIA .*31*M.*						2	1	0	0 +NVIDIA GT 320M							.*NVIDIA .*GT *32*M.*					3	1	0	0 +NVIDIA GT 325M							.*NVIDIA .*GT *32*M.*					3	1	1	3.3 +NVIDIA GT 330M							.*NVIDIA .*GT *33*M.*					3	1	1	3.3 +NVIDIA GT 340M							.*NVIDIA .*GT *34*M.*					4	1	1	3.3 +NVIDIA GTS 350M							.*NVIDIA .*GTS *35*M.*					4	1	1	3.3 +NVIDIA GTS 360M							.*NVIDIA .*GTS *36*M.*					5	1	1	3.3 +NVIDIA 405M								.*NVIDIA .* 40*M.*						2	1	0	0 +NVIDIA 410M								.*NVIDIA .* 41*M.*						3	1	0	0 +NVIDIA GT 415M							.*NVIDIA .*GT *41*M.*					3	1	1	4.2 +NVIDIA GT 420M							.*NVIDIA .*GT *42*M.*					3	1	1	4.2 +NVIDIA GT 430M							.*NVIDIA .*GT *43*M.*					3	1	1	4.2 +NVIDIA GT 440M							.*NVIDIA .*GT *44*M.*					3	1	1	4.2 +NVIDIA GT 450M							.*NVIDIA .*GT *45*M.*					3	1	0	0 +NVIDIA GTX 460M							.*NVIDIA .*GTX *46*M.*					4	1	1	4.2 +NVIDIA GTX 470M							.*NVIDIA .*GTX *47*M.*					3	1	0	0 +NVIDIA GTX 480M							.*NVIDIA .*GTX *48*M.*					3	1	1	4.2 +NVIDIA GT 520M							.*NVIDIA .*GT *52*M.*					3	1	1	4.2 +NVIDIA GT 530M							.*NVIDIA .*GT *53*M.*					3	1	1	4.2 +NVIDIA GT 540M							.*NVIDIA .*GT *54*M.*					3	1	1	4.2 +NVIDIA GT 550M							.*NVIDIA .*GT *55*M.*					3	1	1	4.2 +NVIDIA GTX 560M							.*NVIDIA .*GTX *56*M.*					3	1	0	0 +NVIDIA GTX 570M							.*NVIDIA .*GTX *57*M.*					5	1	0	0 +NVIDIA GTX 580M							.*NVIDIA .*GTX *58*M.*					5	1	1	4.2 +NVIDIA 610M								.*NVIDIA.* 61*M.*						3	1	1	4.2 +NVIDIA GT 620M							.*NVIDIA .*GT *62*M.*					3	1	0	0 +NVIDIA GT 630M							.*NVIDIA .*GT *63*M.*					3	1	0	0 +NVIDIA GT 640M							.*NVIDIA .*GT *64*M.*					3	1	0	0 +NVIDIA GT 650M							.*NVIDIA .*GT *65*M.*					3	1	0	0 +NVIDIA GTX 660M							.*NVIDIA .*GTX *66*M.*					5	1	0	0 +NVIDIA GTX 670M							.*NVIDIA .*GTX *67*M.*					5	1	1	4.2 +NVIDIA GTX 680M							.*NVIDIA .*GTX *68*M.*					5	1	0	0 +NVIDIA GTX 690M							.*NVIDIA .*GTX *69*M.*					5	1	0	0 +NVIDIA G100								.*NVIDIA .*G10.*						3	1	1	4.2 +NVIDIA GT 120							.*NVIDIA .*GT *12.*						2	1	0	0 +NVIDIA GT 130							.*NVIDIA .*GT *13.*						2	1	0	0 +NVIDIA GTS 150							.*NVIDIA .*GTS *15.*					2	1	0	0 +NVIDIA 205								.*NVIDIA .*GeForce 205.*				2	1	1	3.3 +NVIDIA 210								.*NVIDIA .*GeForce 210.*				3	1	1	3.3 +NVIDIA GT 220							.*NVIDIA .*GT *22.*						2	1	1	3.3 +NVIDIA GTS 240							.*NVIDIA .*GTS *24.*					4	1	1	3.3 +NVIDIA GTS 250							.*NVIDIA .*GTS *25.*					4	1	1	3.3 +NVIDIA GTX 260							.*NVIDIA .*GTX *26.*					4	1	1	3.3 +NVIDIA GTX 270							.*NVIDIA .*GTX *27.*					4	1	0	0 +NVIDIA GTX 280							.*NVIDIA .*GTX *28.*					4	1	1	3.3 +NVIDIA GTX 290							.*NVIDIA .*GTX *29.*					5	1	0	0 +NVIDIA 310								.*NVIDIA .*GeForce 310.*				3	1	1	3.3 +NVIDIA 315								.*NVIDIA .*GeForce 315.*				3	1	1	3.3 +NVIDIA GT 320							.*NVIDIA .*GT *32.*						3	1	0	0 +NVIDIA GT 330							.*NVIDIA .*GT *33.*						3	1	0	0 +NVIDIA GT 340							.*NVIDIA .*GT *34.*						3	1	0	0 +NVIDIA 405								.*NVIDIA .* 405.*						3	1	0	0 +NVIDIA GT 420							.*NVIDIA .*GT *42.*						3	1	1	4.2 +NVIDIA GT 430							.*NVIDIA .*GT *43.*						3	1	1	4.1 +NVIDIA GT 440							.*NVIDIA .*GT *44.*						4	1	0	0 +NVIDIA GTS 450							.*NVIDIA .*GTS *45.*					4	1	1	4.2 +NVIDIA GTX 460							.*NVIDIA .*GTX *46.*					5	1	1	4.2 +NVIDIA GTX 470							.*NVIDIA .*GTX *47.*					5	1	1	4.2 +NVIDIA GTX 480							.*NVIDIA .*GTX *48.*					5	1	1	4.2 +NVIDIA 510								.*NVIDIA .* 510.*						3	1	0	0 +NVIDIA GT 520							.*NVIDIA .*GT *52.*						3	1	1	4.2 +NVIDIA GT 530							.*NVIDIA .*GT *53.*						3	1	1	4.2 +NVIDIA GT 540							.*NVIDIA .*GT *54.*						3	1	1	4.2 +NVIDIA GTX 550							.*NVIDIA .*GTX *55.*					5	1	1	4.2 +NVIDIA GTX 560							.*NVIDIA .*GTX *56.*					5	1	1	4.2 +NVIDIA GTX 570							.*NVIDIA .*GTX *57.*					5	1	1	4.2 +NVIDIA GTX 580							.*NVIDIA .*GTX *58.*					5	1	1	4.2 +NVIDIA GTX 590							.*NVIDIA .*GTX *59.*					5	1	1	4.2 +NVIDIA GT 610							.*NVIDIA .*GT *61.*						3	1	1	4.2 +NVIDIA GT 620							.*NVIDIA .*GT *62.*						3	1	0	0 +NVIDIA GT 630							.*NVIDIA .*GT *63.*						3	1	0	0 +NVIDIA GT 640							.*NVIDIA .*GT *64.*						3	1	0	0 +NVIDIA GT 650							.*NVIDIA .*GT *65.*						3	1	1	4.2 +NVIDIA GTX 660							.*NVIDIA .*GTX *66.*					5	1	0	0 +NVIDIA GTX 670							.*NVIDIA .*GTX *67.*					5	1	1	4.2 +NVIDIA GTX 680							.*NVIDIA .*GTX *68.*					5	1	1	4.2 +NVIDIA GTX 690							.*NVIDIA .*GTX *69.*					5	1	1	4.2 +NVIDIA C51								.*NVIDIA .*C51.*						0	1	1	2 +NVIDIA G72								.*NVIDIA .*G72.*						1	1	0	0 +NVIDIA G73								.*NVIDIA .*G73.*						1	1	0	0 +NVIDIA G84								.*NVIDIA .*G84.*						2	1	0	0 +NVIDIA G86								.*NVIDIA .*G86.*						3	1	0	0 +NVIDIA G92								.*NVIDIA .*G92.*						3	1	0	0 +NVIDIA GeForce							.*GeForce 256.*							0	0	0	0 +NVIDIA GeForce 2						.*GeForce ?2 ?.*						0	1	1	1.5 +NVIDIA GeForce 3						.*GeForce ?3 ?.*						2	1	1	2.1 +NVIDIA GeForce 3 Ti						.*GeForce ?3 Ti.*						0	1	0	0 +NVIDIA GeForce 4						.*NVIDIA .*GeForce ?4.*					0	1	1	1.5 +NVIDIA GeForce 4 Go						.*NVIDIA .*GeForce ?4.*Go.*				0	1	0	0 +NVIDIA GeForce 4 MX						.*NVIDIA .*GeForce ?4 MX.*				0	1	0	0 +NVIDIA GeForce 4 PCX					.*NVIDIA .*GeForce ?4 PCX.*				0	1	0	0 +NVIDIA GeForce 4 Ti						.*NVIDIA .*GeForce ?4 Ti.*				0	1	0	0 +NVIDIA GeForce 6100						.*NVIDIA .*GeForce 61.*					3	1	1	4.2 +NVIDIA GeForce 6200						.*NVIDIA .*GeForce 62.*					0	1	1	2.1 +NVIDIA GeForce 6500						.*NVIDIA .*GeForce 65.*					1	1	1	2.1 +NVIDIA GeForce 6600						.*NVIDIA .*GeForce 66.*					2	1	1	2.1 +NVIDIA GeForce 6700						.*NVIDIA .*GeForce 67.*					2	1	1	2.1 +NVIDIA GeForce 6800						.*NVIDIA .*GeForce 68.*					1	1	1	2.1 +NVIDIA GeForce 7000						.*NVIDIA .*GeForce 70.*					1	1	1	2.1 +NVIDIA GeForce 7100						.*NVIDIA .*GeForce 71.*					1	1	1	2.1 +NVIDIA GeForce 7200						.*NVIDIA .*GeForce 72.*					1	1	0	0 +NVIDIA GeForce 7300						.*NVIDIA .*GeForce 73.*					1	1	1	2.1 +NVIDIA GeForce 7500						.*NVIDIA .*GeForce 75.*					2	1	1	2.1 +NVIDIA GeForce 7600						.*NVIDIA .*GeForce 76.*					2	1	1	2.1 +NVIDIA GeForce 7800						.*NVIDIA .*GeForce 78.*					2	1	1	2.1 +NVIDIA GeForce 7900						.*NVIDIA .*GeForce 79.*					3	1	1	2.1 +NVIDIA GeForce 8100						.*NVIDIA .*GeForce 81.*					1	1	0	0 +NVIDIA GeForce 8200M					.*NVIDIA .*GeForce 8200M.*				1	1	0	0 +NVIDIA GeForce 8200						.*NVIDIA .*GeForce 82.*					1	1	0	0 +NVIDIA GeForce 8300						.*NVIDIA .*GeForce 83.*					3	1	1	3.3 +NVIDIA GeForce 8400M					.*NVIDIA .*GeForce 8400M.*				1	1	1	3.3 +NVIDIA GeForce 8400						.*NVIDIA .*GeForce 84.*					2	1	1	3.3 +NVIDIA GeForce 8500						.*NVIDIA .*GeForce 85.*					2	1	1	3.3 +NVIDIA GeForce 8600M					.*NVIDIA .*GeForce 8600M.*				2	1	1	3.3 +NVIDIA GeForce 8600						.*NVIDIA .*GeForce 86.*					3	1	1	3.3 +NVIDIA GeForce 8700M					.*NVIDIA .*GeForce 8700M.*				2	1	1	3.3 +NVIDIA GeForce 8700						.*NVIDIA .*GeForce 87.*					3	1	0	0 +NVIDIA GeForce 8800M					.*NVIDIA .*GeForce 8800M.*				2	1	1	3.3 +NVIDIA GeForce 8800						.*NVIDIA .*GeForce 88.*					3	1	1	3.3 +NVIDIA GeForce 9100M					.*NVIDIA .*GeForce 9100M.*				0	1	0	0 +NVIDIA GeForce 9100						.*NVIDIA .*GeForce 91.*					0	1	0	0 +NVIDIA GeForce 9200M					.*NVIDIA .*GeForce 9200M.*				1	1	0	0 +NVIDIA GeForce 9200						.*NVIDIA .*GeForce 92.*					1	1	0	0 +NVIDIA GeForce 9300M					.*NVIDIA .*GeForce 9300M.*				1	1	1	3.3 +NVIDIA GeForce 9300						.*NVIDIA .*GeForce 93.*					1	1	1	3.3 +NVIDIA GeForce 9400M					.*NVIDIA .*GeForce 9400M.*				2	1	1	3.3 +NVIDIA GeForce 9400						.*NVIDIA .*GeForce 94.*					3	1	1	3.3 +NVIDIA GeForce 9500M					.*NVIDIA .*GeForce 9500M.*				1	1	1	3.3 +NVIDIA GeForce 9500						.*NVIDIA .*GeForce 95.*					3	1	1	3.3 +NVIDIA GeForce 9600M					.*NVIDIA .*GeForce 9600M.*				2	1	1	3.3 +NVIDIA GeForce 9600						.*NVIDIA .*GeForce 96.*					3	1	1	3.3 +NVIDIA GeForce 9700M					.*NVIDIA .*GeForce 9700M.*				0	1	1	3.3 +NVIDIA GeForce 9800M					.*NVIDIA .*GeForce 9800M.*				2	1	1	3.3 +NVIDIA GeForce 9800						.*NVIDIA .*GeForce 98.*					3	1	1	3.3 +NVIDIA GeForce FX 5100					.*NVIDIA .*GeForce FX 51.*				0	1	0	0 +NVIDIA GeForce FX 5200					.*NVIDIA .*GeForce FX 52.*				0	1	0	0 +NVIDIA GeForce FX 5300					.*NVIDIA .*GeForce FX 53.*				0	1	0	0 +NVIDIA GeForce FX 5500					.*NVIDIA .*GeForce FX 55.*				0	1	1	2.1 +NVIDIA GeForce FX 5600					.*NVIDIA .*GeForce FX 56.*				1	1	1	2.1 +NVIDIA GeForce FX 5700					.*NVIDIA .*GeForce FX 57.*				0	1	1	2.1 +NVIDIA GeForce FX 5800					.*NVIDIA .*GeForce FX 58.*				1	1	0	0 +NVIDIA GeForce FX 5900					.*NVIDIA .*GeForce FX 59.*				1	1	1	2.1 +NVIDIA GeForce FX Go5100				.*NVIDIA .*GeForce FX Go51.*			0	1	0	0 +NVIDIA GeForce FX Go5200				.*NVIDIA .*GeForce FX Go52.*			0	1	0	0 +NVIDIA GeForce FX Go5300				.*NVIDIA .*GeForce FX Go53.*			0	1	0	0 +NVIDIA GeForce FX Go5500				.*NVIDIA .*GeForce FX Go55.*			0	1	0	0 +NVIDIA GeForce FX Go5600				.*NVIDIA .*GeForce FX Go56.*			0	1	1	2.1 +NVIDIA GeForce FX Go5700				.*NVIDIA .*GeForce FX Go57.*			1	1	1	1.5 +NVIDIA GeForce FX Go5800				.*NVIDIA .*GeForce FX Go58.*			1	1	0	0 +NVIDIA GeForce FX Go5900				.*NVIDIA .*GeForce FX Go59.*			1	1	0	0 +NVIDIA GeForce FX Go5xxx				.*NVIDIA .*GeForce FX Go.*				0	1	0	0 +NVIDIA GeForce Go 6100					.*NVIDIA .*GeForce Go 61.*				0	1	1	2.1 +NVIDIA GeForce Go 6200					.*NVIDIA .*GeForce Go 62.*				0	1	0	0 +NVIDIA GeForce Go 6400					.*NVIDIA .*GeForce Go 64.*				1	1	1	2 +NVIDIA GeForce Go 6500					.*NVIDIA .*GeForce Go 65.*				1	1	0	0 +NVIDIA GeForce Go 6600					.*NVIDIA .*GeForce Go 66.*				0	1	1	2.1 +NVIDIA GeForce Go 6700					.*NVIDIA .*GeForce Go 67.*				1	1	0	0 +NVIDIA GeForce Go 6800					.*NVIDIA .*GeForce Go 68.*				0	1	1	2.1 +NVIDIA GeForce Go 7200					.*NVIDIA .*GeForce Go 72.*				1	1	0	0 +NVIDIA GeForce Go 7300 LE				.*NVIDIA .*GeForce Go 73.*LE.*			1	1	0	0 +NVIDIA GeForce Go 7300					.*NVIDIA .*GeForce Go 73.*				1	1	1	2.1 +NVIDIA GeForce Go 7400					.*NVIDIA .*GeForce Go 74.*				1	1	1	2.1 +NVIDIA GeForce Go 7600					.*NVIDIA .*GeForce Go 76.*				1	1	1	2.1 +NVIDIA GeForce Go 7700					.*NVIDIA .*GeForce Go 77.*				0	1	1	2.1 +NVIDIA GeForce Go 7800					.*NVIDIA .*GeForce Go 78.*				2	1	0	0 +NVIDIA GeForce Go 7900					.*NVIDIA .*GeForce Go 79.*				1	1	1	2.1 +NVIDIA D9M								.*NVIDIA .*D9M.*						1	1	0	0 +NVIDIA G94								.*NVIDIA .*G94.*						3	1	0	0 +NVIDIA GeForce Go 6						.*GeForce Go 6.*						1	1	0	0 +NVIDIA ION 2							.*NVIDIA .*ION 2.*						2	1	0	0 +NVIDIA ION 								.*NVIDIA Corporation.*ION.*				2	1	1	0 +NVIDIA NB8M								.*NVIDIA .*NB8M.*						1	1	0	0 +NVIDIA NB8P								.*NVIDIA .*NB8P.*						2	1	0	0 +NVIDIA NB9E								.*NVIDIA .*NB9E.*						3	1	0	0 +NVIDIA NB9M								.*NVIDIA .*NB9M.*						1	1	0	0 +NVIDIA NB9P								.*NVIDIA .*NB9P.*						2	1	0	0 +NVIDIA N10								.*NVIDIA .*N10.*						1	1	0	0 +NVIDIA GeForce PCX						.*GeForce PCX.*							0	1	0	0 +NVIDIA Generic							.*NVIDIA .*Unknown.*					0	0	0	0 +NVIDIA NV17								.*NVIDIA .*NV17.*						0	1	0	0 +NVIDIA NV34								.*NVIDIA .*NV34.*						0	1	0	0 +NVIDIA NV35								.*NVIDIA .*NV35.*						0	1	0	0 +NVIDIA NV36								.*NVIDIA .*NV36.*						1	1	0	0 +NVIDIA NV41								.*NVIDIA .*NV41.*						1	1	0	0 +NVIDIA NV43								.*NVIDIA .*NV43.*						1	1	0	0 +NVIDIA NV44								.*NVIDIA .*NV44.*						1	1	0	0 +NVIDIA nForce							.*NVIDIA .*nForce.*						0	0	0	0 +NVIDIA MCP51							.*NVIDIA .*MCP51.*						1	1	0	0 +NVIDIA MCP61							.*NVIDIA .*MCP61.*						1	1	0	0 +NVIDIA MCP67							.*NVIDIA .*MCP67.*						1	1	0	0 +NVIDIA MCP68							.*NVIDIA .*MCP68.*						1	1	0	0 +NVIDIA MCP73							.*NVIDIA .*MCP73.*						1	1	0	0 +NVIDIA MCP77							.*NVIDIA .*MCP77.*						1	1	0	0 +NVIDIA MCP78							.*NVIDIA .*MCP78.*						1	1	0	0 +NVIDIA MCP79							.*NVIDIA .*MCP79.*						1	1	0	0 +NVIDIA MCP7A							.*NVIDIA .*MCP7A.*						1	1	0	0 +NVIDIA Quadro2							.*Quadro2.*								0	1	0	0 +NVIDIA Quadro 1000M						.*Quadro.*1000M.*						2	1	0	0 +NVIDIA Quadro 2000 M/D					.*Quadro.*2000.*						3	1	0	0 +NVIDIA Quadro 3000M						.*Quadro.*3000M.*						3	1	0	0 +NVIDIA Quadro 4000M						.*Quadro.*4000M.*						3	1	0	0 +NVIDIA Quadro 4000						.*Quadro *4000.*						3	1	0	0 +NVIDIA Quadro 50x0 M					.*Quadro.*50.0.*						3	1	0	0 +NVIDIA Quadro 6000						.*Quadro.*6000.*						3	1	0	0 +NVIDIA Quadro 400						.*Quadro.*400.*							2	1	0	0 +NVIDIA Quadro 600						.*Quadro.*600.*							2	1	0	0 +NVIDIA Quadro4							.*Quadro4.*								0	1	0	0 +NVIDIA Quadro DCC						.*Quadro DCC.*							0	1	0	0 +NVIDIA Quadro CX						.*Quadro.*CX.*							3	1	0	0 +NVIDIA Quadro FX 770M					.*Quadro.*FX *770M.*					2	1	0	0 +NVIDIA Quadro FX 1500M					.*Quadro.*FX *1500M.*					1	1	0	0 +NVIDIA Quadro FX 1600M					.*Quadro.*FX *1600M.*					2	1	0	0 +NVIDIA Quadro FX 2500M					.*Quadro.*FX *2500M.*					2	1	0	0 +NVIDIA Quadro FX 2700M					.*Quadro.*FX *2700M.*					3	1	0	0 +NVIDIA Quadro FX 2800M					.*Quadro.*FX *2800M.*					3	1	0	0 +NVIDIA Quadro FX 3500					.*Quadro.*FX *3500.*					2	1	0	0 +NVIDIA Quadro FX 3600					.*Quadro.*FX *3600.*					3	1	0	0 +NVIDIA Quadro FX 3700					.*Quadro.*FX *3700.*					3	1	0	0 +NVIDIA Quadro FX 3800					.*Quadro.*FX *3800.*					3	1	0	0 +NVIDIA Quadro FX 4500					.*Quadro.*FX *45.*						3	1	0	0 +NVIDIA Quadro FX 880M					.*Quadro.*FX *880M.*					3	1	0	0 +NVIDIA Quadro FX 4800					.*NVIDIA .*Quadro *FX *4800.*			3	1	0	0 +NVIDIA Quadro FX						.*Quadro FX.*							1	1	0	0 +NVIDIA Quadro NVS 1xxM					.*Quadro NVS *1.[05]M.*					0	1	1	2.1 +NVIDIA Quadro NVS 300M					.*NVIDIA .*NVS *300M.*					2	1	0	0 +NVIDIA Quadro NVS 320M					.*NVIDIA .*NVS *320M.*					2	1	0	0 +NVIDIA Quadro NVS 2100M					.*NVIDIA .*NVS *2100M.*					2	1	0	0 +NVIDIA Quadro NVS 3100M					.*NVIDIA .*NVS *3100M.*					2	1	0	0 +NVIDIA Quadro NVS 4200M					.*NVIDIA .*NVS *4200M.*					2	1	0	0 +NVIDIA Quadro NVS 5100M					.*NVIDIA .*NVS *5100M.*					2	1	0	0 +NVIDIA Quadro NVS						.*NVIDIA .*NVS							0	1	0	0 +NVIDIA Corporation N12P					.*NVIDIA .*N12P.*						1	1	1	4.1 +NVIDIA Corporation N11M					.*NVIDIA .*N11M.*						2	1	0	0 +NVIDIA RIVA TNT							.*RIVA TNT.*							0	0	0	0 +S3										.*S3 Graphics.*							0	0	1	1.4 +SiS										SiS.*									0	0	1	1.5 +Trident									Trident.*								0	0	0	0 +Tungsten Graphics						Tungsten.*								0	0	0	0 +XGI										XGI.*									0	0	0	0 +VIA										VIA.*									0	0	0	0 +Apple Generic							Apple.*Generic.*						0	0	0	0 +Apple Software Renderer					Apple.*Software Renderer.*				0	0	0	0 +Humper									Humper.*								0	1	1	2.1 +PowerVR SGX545							.*PowerVR SGX.*							1	1	1	3 + + diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp index 393f8b9d46..6f11d4d4ca 100644 --- a/indra/newview/llfeaturemanager.cpp +++ b/indra/newview/llfeaturemanager.cpp @@ -57,6 +57,7 @@  #include "lldxhardware.h"  #endif +#define LL_EXPORT_GPU_TABLE 0  #if LL_DARWIN  const char FEATURE_TABLE_FILENAME[] = "featuretable_mac.txt"; @@ -386,6 +387,13 @@ void LLFeatureManager::parseGPUTable(std::string filename)  		*i = tolower(*i);  	} +#if LL_EXPORT_GPU_TABLE +	llofstream json; +	json.open("gpu_table.json"); + +	json << "var gpu_table = [" << std::endl; +#endif +  	bool gpuFound;  	U32 lineNumber;  	for (gpuFound = false, lineNumber = 0; !gpuFound && !file.eof(); lineNumber++) @@ -438,7 +446,13 @@ void LLFeatureManager::parseGPUTable(std::string filename)  			LL_WARNS("RenderInit") << "invald gpu_table.txt:" << lineNumber << ": '" << buffer << "'" << LL_ENDL;  			continue;  		} -	 +#if LL_EXPORT_GPU_TABLE +		json << "{'label' : '" << label << "',\n" <<  +			"'regexp' : '" << expr << "',\n" << +			"'class' : '" << cls << "',\n" << +			"'supported' : '" << supported << "'\n},\n"; +#endif +  		for (U32 i = 0; i < expr.length(); i++)	 /*Flawfinder: ignore*/  		{  			expr[i] = tolower(expr[i]); @@ -449,12 +463,18 @@ void LLFeatureManager::parseGPUTable(std::string filename)  		if(boost::regex_search(renderer, re))  		{  			// if we found it, stop! +#if !LL_EXPORT_GPU_TABLE  			gpuFound = true; +#endif  			mGPUString = label;  			mGPUClass = (EGPUClass) strtol(cls.c_str(), NULL, 10);  			mGPUSupported = (BOOL) strtol(supported.c_str(), NULL, 10);  		}  	} +#if LL_EXPORT_GPU_TABLE +	json << "];\n\n"; +	json.close(); +#endif  	file.close();  	if ( gpuFound ) @@ -585,7 +605,7 @@ void LLFeatureManager::applyRecommendedSettings()  {  	// apply saved settings  	// cap the level at 2 (high) -	S32 level = llmax(GPU_CLASS_0, llmin(mGPUClass, GPU_CLASS_2)); +	S32 level = llmax(GPU_CLASS_0, llmin(mGPUClass, GPU_CLASS_5));  	llinfos << "Applying Recommended Features" << llendl; @@ -678,18 +698,32 @@ void LLFeatureManager::setGraphicsLevel(S32 level, bool skipFeatures)  			{ //same as low, but with "Basic Shaders" enabled  				maskFeatures("Low");  			} +			maskFeatures("Class0");  			break;  		case 1:  			maskFeatures("Mid"); +			maskFeatures("Class1");  			break;  		case 2:  			maskFeatures("High"); +			maskFeatures("Class2");  			break;  		case 3: -			maskFeatures("Ultra"); +			maskFeatures("High"); +			maskFeatures("Class3"); +			break; +		case 4: +			maskFeatures("High"); +			maskFeatures("Class4");  			break; +		case 5: +			maskFeatures("High"); +			maskFeatures("Class5"); +			break; +		  		default:  			maskFeatures("Low"); +			maskFeatures("Class0");  			break;  	} @@ -715,14 +749,16 @@ void LLFeatureManager::applyBaseMasks()  	mFeatures = maskp->getFeatures();  	// mask class -	if (mGPUClass >= 0 && mGPUClass < 4) +	if (mGPUClass >= 0 && mGPUClass < 6)  	{  		const char* class_table[] =  		{  			"Class0",  			"Class1",  			"Class2", -			"Class3" +			"Class3", +			"Class4", +			"Class5",  		};  		LL_INFOS("RenderInit") << "Setting GPU Class to " << class_table[mGPUClass] << LL_ENDL; diff --git a/indra/newview/llfeaturemanager.h b/indra/newview/llfeaturemanager.h index c9cb397fcc..6f9d2e49c6 100644 --- a/indra/newview/llfeaturemanager.h +++ b/indra/newview/llfeaturemanager.h @@ -39,7 +39,9 @@ typedef enum EGPUClass  	GPU_CLASS_0 = 0,  	GPU_CLASS_1 = 1,  	GPU_CLASS_2 = 2, -	GPU_CLASS_3 = 3 +	GPU_CLASS_3 = 3, +	GPU_CLASS_4 = 4, +	GPU_CLASS_5 = 5  } EGPUClass;  diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 3bb3e5cf47..c6bcaeab07 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -744,63 +744,53 @@ void LLPanelLogin::setAlwaysRefresh(bool refresh)  void LLPanelLogin::loadLoginPage()  {  	if (!sInstance) return; -	 -	std::ostringstream oStr; -	std::string login_page = LLGridManager::getInstance()->getLoginPage(); +	LLURI login_page = LLURI(LLGridManager::getInstance()->getLoginPage()); +	LLSD params(login_page.queryMap()); -	oStr << login_page; -	 -	// Use the right delimeter depending on how LLURI parses the URL -	LLURI login_page_uri = LLURI(login_page); -	 -	std::string first_query_delimiter = "&"; -	if (login_page_uri.queryMap().size() == 0) -	{ -		first_query_delimiter = "?"; -	} +	LL_DEBUGS("AppInit") << "login_page: " << login_page << LL_ENDL;  	// Language -	std::string language = LLUI::getLanguage(); -	oStr << first_query_delimiter<<"lang=" << language; -	 +	params["lang"] = LLUI::getLanguage(); +  	// First Login?  	if (gSavedSettings.getBOOL("FirstLoginThisInstall"))  	{ -		oStr << "&firstlogin=TRUE"; +		params["firstlogin"] = "TRUE"; // not bool: server expects string TRUE  	}  	// Channel and Version -	std::string version = llformat("%s (%d)", -								   LLVersionInfo::getShortVersion().c_str(), -								   LLVersionInfo::getBuild()); +	params["version"] = llformat("%s (%d)", +								 LLVersionInfo::getShortVersion().c_str(), +								 LLVersionInfo::getBuild()); +	params["channel"] = LLVersionInfo::getChannel(); -	char* curl_channel = curl_escape(LLVersionInfo::getChannel().c_str(), 0); -	char* curl_version = curl_escape(version.c_str(), 0); +	// Grid +	params["grid"] = LLGridManager::getInstance()->getGridId(); -	oStr << "&channel=" << curl_channel; -	oStr << "&version=" << curl_version; +	// add OS info +	params["os"] = LLAppViewer::instance()->getOSInfo().getOSStringSimple(); -	curl_free(curl_channel); -	curl_free(curl_version); +	// sourceid: create_account_url's sourceid= varies by skin +	LLURI create_account_url(LLTrans::getString("create_account_url")); +	LLSD create_account_params(create_account_url.queryMap()); +	if (create_account_params.has("sourceid")) +	{ +		params["sourceid"] = create_account_params["sourceid"]; +	} + +	// Make an LLURI with this augmented info +	LLURI login_uri(LLURI::buildHTTP(login_page.authority(), +									 login_page.path(), +									 params)); -	// Grid -	char* curl_grid = curl_escape(LLGridManager::getInstance()->getGridId().c_str(), 0); -	oStr << "&grid=" << curl_grid; -	curl_free(curl_grid); -	 -	// add OS info -	char * os_info = curl_escape(LLAppViewer::instance()->getOSInfo().getOSStringSimple().c_str(), 0); -	oStr << "&os=" << os_info; -	curl_free(os_info); -	  	gViewerWindow->setMenuBackgroundColor(false, !LLGridManager::getInstance()->isInProductionGrid()); -	 +  	LLMediaCtrl* web_browser = sInstance->getChild<LLMediaCtrl>("login_html"); -	if (web_browser->getCurrentNavUrl() != oStr.str()) +	if (web_browser->getCurrentNavUrl() != login_uri.asString())  	{ -		LL_DEBUGS("AppInit")<<oStr.str()<<LL_ENDL; -		web_browser->navigateTo( oStr.str(), "text/html" ); +		LL_DEBUGS("AppInit") << "loading:    " << login_uri << LL_ENDL; +		web_browser->navigateTo( login_uri.asString(), "text/html" );  	}  } diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index d1c6b7ea79..603634e5f3 100755 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -787,7 +787,7 @@ void send_stats()  		"%-6s Class %d ",  		gGLManager.mGLVendorShort.substr(0,6).c_str(),  		(S32)LLFeatureManager::getInstance()->getGPUClass()) -		+ LLFeatureManager::getInstance()->getGPUString(); +		+ gGLManager.getRawGLString();  	system["gpu"] = gpu_desc;  	system["gpu_class"] = (S32)LLFeatureManager::getInstance()->getGPUClass(); @@ -798,7 +798,18 @@ void send_stats()  	S32 shader_level = 0;  	if (LLPipeline::sRenderDeferred)  	{ -		shader_level = 3; +		if (LLPipeline::RenderShadowDetail > 0) +		{ +			shader_level = 5; +		} +		else if (LLPipeline::RenderDeferredSSAO) +		{ +			shader_level = 4; +		} +		else +		{ +			shader_level = 3; +		}  	}  	else if (gPipeline.canUseWindLightShadersOnObjects())  	{ diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml index 9c96143aa3..6c4cbd4627 100644 --- a/indra/newview/skins/default/xui/en/panel_login.xml +++ b/indra/newview/skins/default/xui/en/panel_login.xml @@ -31,6 +31,7 @@        width="996"/>    <layout_stack        animate="false" +      clip="false"        follows="left|bottom|right"        name="login_widgets"        layout="topleft" @@ -223,7 +224,7 @@          follows="right|bottom"          name="links"           width="210" -        min_width="210" +        min_width="100"          height="80">        <text            follows="right|bottom" diff --git a/indra/newview/skins/default/xui/zh/notifications.xml b/indra/newview/skins/default/xui/zh/notifications.xml index 97a1bd6c84..fe4f84dce7 100644 --- a/indra/newview/skins/default/xui/zh/notifications.xml +++ b/indra/newview/skins/default/xui/zh/notifications.xml @@ -1122,7 +1122,6 @@  		[APP_NAME] 安裝完成。  如果你是第一次使用 [SECOND_LIFE],你將需要建立新帳號才可登入。 -返回 [http://join.secondlife.com secondlife.com] 建立新帳號?  		<usetemplate name="okcancelbuttons" notext="繼續" yestext="新帳戶..."/>  	</notification>  	<notification name="LoginPacketNeverReceived"> | 
