diff --git a/.hgtags b/.hgtags
index e3edb9f17e9b46a4c80c19284834dea6e5283ed8..ce40e797f82cd5df9bec45d8bda4ac6663cce98a 100644
--- a/.hgtags
+++ b/.hgtags
@@ -196,3 +196,5 @@ b95ddac176ac944efdc85cbee94ac2e1eab44c79 3.0.3-start
 0496d2f74043cf4e6058e76ac3db03d44cff42ce 3.0.3-release
 92a3aa04775438226399b19deee12ac3b5a62838 3.0.5-start
 c7282e59f374ee904bd793c3c444455e3399b0c5 3.1.0-start
+2657fa785bbfac115852c41bd0adaff74c2ad5da DRTVWR-93_3.1.0-beta1
+2657fa785bbfac115852c41bd0adaff74c2ad5da 3.1.0-beta1
diff --git a/BuildParams b/BuildParams
index b62d7b7af1133954e6cc90ab3721e26f9877aa38..caf3cc932a30815d1375fb952a97df39d85e8afc 100644
--- a/BuildParams
+++ b/BuildParams
@@ -43,11 +43,13 @@ snowstorm_viewer-development.login_channel = "Second Life Development"
 snowstorm_viewer-development.build_viewer_update_version_manager = false
 snowstorm_viewer-development.email = viewer-development-builds@lists.secondlife.com
 snowstorm_viewer-development.build_enforce_coding_policy = true
+snowstorm_viewer-development.codeticket_add_context = true
 
 Snowstorm_viewer-project-review.build_debug_release_separately = true
 Snowstorm_viewer-project-review.codeticket_add_context = true
 Snowstorm_viewer-project-review.viewer_channel = "Project Viewer - Snowstorm Team"
 Snowstorm_viewer-project-review.login_channel = "Project Viewer - Snowstorm Team"
+Snowstorm_viewer-project-review.codeticket_add_context = true
 
 # ========================================
 # Viewer Beta
diff --git a/doc/contributions.txt b/doc/contributions.txt
index bcdc5a63d215706d86f8cb88822212ded5377ec4..e85fc32f186cc7c2f259b30a1206f7d99d1cdc98 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -66,6 +66,7 @@ Alejandro Rosenthal
 	VWR-1184
 Aleric Inglewood
 	SNOW-84
+	OPEN-38
 	SNOW-240
 	SNOW-477
 	SNOW-522
@@ -575,6 +576,8 @@ Jonathan Yap
 	STORM-1567
 	STORM-1572
 	STORM-1574
+	STORM-1579
+	STORM-1639
 Kadah Coba
     STORM-1060
 Jondan Lundquist
@@ -622,6 +625,7 @@ Latif Khalifa
 	VWR-5370
 leliel Mirihi
 	STORM-1100
+	STORM-1602
 len Starship
 Lisa Lowe
 	CT-218
@@ -1032,6 +1036,9 @@ Synystyr Texan
 Takeda Terrawyng
 TankMaster Finesmith
 	STORM-1100
+	STORM-1602
+	STORM-1258
+    VWR-26622
 Talamasca
 Tali Rosca
 Tayra Dagostino
diff --git a/indra/cmake/FindGLH.cmake b/indra/cmake/FindGLH.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..3d16adaf03d399784f6bb1478472ead07d9b1dd4
--- /dev/null
+++ b/indra/cmake/FindGLH.cmake
@@ -0,0 +1,30 @@
+# -*- cmake -*-
+
+# - Find GLH
+# Find the Graphic Library Helper includes.
+# This module defines
+#  GLH_INCLUDE_DIR, where to find glh/glh_linear.h.
+#  GLH_FOUND, If false, do not try to use GLH.
+
+find_path(GLH_INCLUDE_DIR glh/glh_linear.h
+    NO_SYSTEM_ENVIRONMENT_PATH
+    )
+
+if (GLH_INCLUDE_DIR)
+  set(GLH_FOUND "YES")
+else (GLH_INCLUDE_DIR)
+  set(GLH_FOUND "NO")
+endif (GLH_INCLUDE_DIR)
+
+if (GLH_FOUND)
+  if (NOT GLH_FIND_QUIETLY)
+    message(STATUS "Found GLH: ${GLH_INCLUDE_DIR}")
+    set(GLH_FIND_QUIETLY TRUE) # Only alert us the first time
+  endif (NOT GLH_FIND_QUIETLY)
+else (GLH_FOUND)
+  if (GLH_FIND_REQUIRED)
+    message(FATAL_ERROR "Could not find GLH")
+  endif (GLH_FIND_REQUIRED)
+endif (GLH_FOUND)
+
+mark_as_advanced(GLH_INCLUDE_DIR)
diff --git a/indra/cmake/GLH.cmake b/indra/cmake/GLH.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..911dbe4017172caf71f7bb7afb92d0b2df59f71c
--- /dev/null
+++ b/indra/cmake/GLH.cmake
@@ -0,0 +1,11 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+set(GLH_FIND_REQUIRED TRUE)
+set(GLH_FIND_QUIETLY TRUE)
+
+if (STANDALONE)
+  include(FindGLH)
+else (STANDALONE)
+  use_prebuilt_binary(glh_linear)
+endif (STANDALONE)
diff --git a/indra/cmake/LLRender.cmake b/indra/cmake/LLRender.cmake
index c47e8878e95e74fbd55c95ffaf7dbf4702c65518..8427928151dfe48cf65c71e769e660e979982c43 100644
--- a/indra/cmake/LLRender.cmake
+++ b/indra/cmake/LLRender.cmake
@@ -1,9 +1,11 @@
 # -*- cmake -*-
 
 include(FreeType)
+include(GLH)
 
 set(LLRENDER_INCLUDE_DIRS
     ${LIBS_OPEN_DIR}/llrender
+    ${GLH_INCLUDE_DIR}
     )
 
 if (SERVER AND LINUX)
diff --git a/indra/cmake/LLSharedLibs.cmake b/indra/cmake/LLSharedLibs.cmake
index e29076c73882ddd43cab6b18845bdc6fbde313e2..14dd67f32fda1e19f4135a50e6e95788345d8e4d 100644
--- a/indra/cmake/LLSharedLibs.cmake
+++ b/indra/cmake/LLSharedLibs.cmake
@@ -38,18 +38,17 @@ endmacro(ll_deploy_sharedlibs_command)
 # ll_stage_sharedlib
 # Performs config and adds a copy command for a sharedlib target.
 macro(ll_stage_sharedlib DSO_TARGET)
-  if(SHARED_LIB_STAGING_DIR)
-    # target gets written to the DLL staging directory.
-    # Also this directory is shared with RunBuildTest.cmake, y'know, for the tests.
-    set_target_properties(${DSO_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR})
-    if(NOT WINDOWS)
-      get_target_property(DSO_PATH ${DSO_TARGET} LOCATION)
-      get_filename_component(DSO_FILE ${DSO_PATH} NAME)
-      if(DARWIN)
-        set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources)
-      else(DARWIN)
-        set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR})
-      endif(DARWIN)
+  # target gets written to the DLL staging directory.
+  # Also this directory is shared with RunBuildTest.cmake, y'know, for the tests.
+  set_target_properties(${DSO_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR})
+  if(NOT WINDOWS)
+    get_target_property(DSO_PATH ${DSO_TARGET} LOCATION)
+    get_filename_component(DSO_FILE ${DSO_PATH} NAME)
+    if(DARWIN)
+      set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources)
+    else(DARWIN)
+      set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR})
+    endif(DARWIN)
 
       # *TODO - maybe make this a symbolic link? -brad
       add_custom_command(
@@ -63,7 +62,6 @@ macro(ll_stage_sharedlib DSO_TARGET)
           COMMENT "Copying llcommon to the staging folder."
         )
     endif(NOT WINDOWS)
-  endif(SHARED_LIB_STAGING_DIR)
 
   if (DARWIN)
     set_target_properties(${DSO_TARGET} PROPERTIES
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index 07db6ab257eab7735bbf57896379afd2241ca55b..c5f9e2c57911298aa37a712c91ad04e12ce6e37a 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -2,22 +2,19 @@
 
 include(Variables)
 
-
-if (NOT STANDALONE)
-  set(ARCH_PREBUILT_DIRS ${AUTOBUILD_INSTALL_DIR}/lib)
-  set(ARCH_PREBUILT_DIRS_RELEASE ${AUTOBUILD_INSTALL_DIR}/lib/release)
-  set(ARCH_PREBUILT_DIRS_DEBUG ${AUTOBUILD_INSTALL_DIR}/lib/debug)
-  if (WINDOWS)
-    set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs)
-    set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs)
-  elseif (LINUX)
-    set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/lib)
-    set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/bin)
-  elseif (DARWIN)
-    set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs)
-    set(EXE_STAGING_DIR "${CMAKE_BINARY_DIR}/sharedlibs/\$(CONFIGURATION)")
-  endif (WINDOWS)
-endif (NOT STANDALONE)
+set(ARCH_PREBUILT_DIRS ${AUTOBUILD_INSTALL_DIR}/lib)
+set(ARCH_PREBUILT_DIRS_RELEASE ${AUTOBUILD_INSTALL_DIR}/lib/release)
+set(ARCH_PREBUILT_DIRS_DEBUG ${AUTOBUILD_INSTALL_DIR}/lib/debug)
+if (WINDOWS)
+  set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs)
+  set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs)
+elseif (LINUX)
+  set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/lib)
+  set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/bin)
+elseif (DARWIN)
+  set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs)
+  set(EXE_STAGING_DIR "${CMAKE_BINARY_DIR}/sharedlibs/\$(CONFIGURATION)")
+endif (WINDOWS)
 
 # Autobuild packages must provide 'release' versions of libraries, but may provide versions for
 # specific build types.  AUTOBUILD_LIBS_INSTALL_DIRS lists first the build type directory and then
diff --git a/indra/linux_crash_logger/CMakeLists.txt b/indra/linux_crash_logger/CMakeLists.txt
index ab62a0d0af1b7323c395a7b227a0a7c2a6cd02cf..98ebdc748739f0ffcba0265e138a5293d8d08a83 100644
--- a/indra/linux_crash_logger/CMakeLists.txt
+++ b/indra/linux_crash_logger/CMakeLists.txt
@@ -3,6 +3,7 @@
 project(linux_crash_logger)
 
 include(00-Common)
+include(GLH)
 include(LLCommon)
 include(LLCrashLogger)
 include(LLMath)
diff --git a/indra/llcommon/lleventapi.cpp b/indra/llcommon/lleventapi.cpp
index 4270c8b511e6f652d96b4a0928cd7398cbfdded9..ff5459c1eb843c4476979aeeedd420a5080ee7cd 100644
--- a/indra/llcommon/lleventapi.cpp
+++ b/indra/llcommon/lleventapi.cpp
@@ -34,6 +34,7 @@
 // std headers
 // external library headers
 // other Linden headers
+#include "llerror.h"
 
 LLEventAPI::LLEventAPI(const std::string& name, const std::string& desc, const std::string& field):
     lbase(name, field),
@@ -45,3 +46,32 @@ LLEventAPI::LLEventAPI(const std::string& name, const std::string& desc, const s
 LLEventAPI::~LLEventAPI()
 {
 }
+
+LLEventAPI::Response::Response(const LLSD& seed, const LLSD& request, const LLSD::String& replyKey):
+    mResp(seed),
+    mReq(request),
+    mKey(replyKey)
+{}
+
+LLEventAPI::Response::~Response()
+{
+    // When you instantiate a stack Response object, if the original
+    // request requested a reply, send it when we leave this block, no
+    // matter how.
+    sendReply(mResp, mReq, mKey);
+}
+
+void LLEventAPI::Response::warn(const std::string& warning)
+{
+    LL_WARNS("LLEventAPI::Response") << warning << LL_ENDL;
+    mResp["warnings"].append(warning);
+}
+
+void LLEventAPI::Response::error(const std::string& error)
+{
+    // Use LL_WARNS rather than LL_ERROR: we don't want the viewer to shut
+    // down altogether.
+    LL_WARNS("LLEventAPI::Response") << error << LL_ENDL;
+
+    mResp["error"] = error;
+}
diff --git a/indra/llcommon/lleventapi.h b/indra/llcommon/lleventapi.h
index d75d521e8ee9e6cf9950d8b63c5f7a4eecaf02f0..1a37d780b63cc8ec95ec3642776dd2a16b295ec4 100644
--- a/indra/llcommon/lleventapi.h
+++ b/indra/llcommon/lleventapi.h
@@ -76,6 +76,89 @@ class LL_COMMON_API LLEventAPI: public LLDispatchListener,
         LLEventDispatcher::add(name, desc, callable, required);
     }
 
+    /**
+     * Instantiate a Response object in any LLEventAPI subclass method that
+     * wants to guarantee a reply (if requested) will be sent on exit from the
+     * method. The reply will be sent if request.has(@a replyKey), default
+     * "reply". If specified, the value of request[replyKey] is the name of
+     * the LLEventPump on which to send the reply. Conventionally you might
+     * code something like:
+     *
+     * @code
+     * void MyEventAPI::someMethod(const LLSD& request)
+     * {
+     *     // Send a reply event as long as request.has("reply")
+     *     Response response(LLSD(), request);
+     *     // ...
+     *     // will be sent in reply event
+     *     response["somekey"] = some_data;
+     * }
+     * @endcode
+     */
+    class LL_COMMON_API Response
+    {
+    public:
+        /**
+         * Instantiating a Response object in an LLEventAPI subclass method
+         * ensures that, if desired, a reply event will be sent.
+         *
+         * @a seed is the initial reply LLSD that will be further decorated before
+         * being sent as the reply
+         *
+         * @a request is the incoming request LLSD; we particularly care about
+         * [replyKey] and ["reqid"]
+         *
+         * @a replyKey [default "reply"] is the string name of the LLEventPump
+         * on which the caller wants a reply. If <tt>(!
+         * request.has(replyKey))</tt>, no reply will be sent.
+         */
+        Response(const LLSD& seed, const LLSD& request, const LLSD::String& replyKey="reply");
+        ~Response();
+
+        /**
+         * @code
+         * if (some condition)
+         * {
+         *     response.warn("warnings are logged and collected in [\"warnings\"]");
+         * }
+         * @endcode
+         */
+        void warn(const std::string& warning);
+        /**
+         * @code
+         * if (some condition isn't met)
+         * {
+         *     // In a function returning void, you can validly 'return
+         *     // expression' if the expression is itself of type void. But
+         *     // returning is up to you; response.error() has no effect on
+         *     // flow of control.
+         *     return response.error("error message, logged and also sent as [\"error\"]");
+         * }
+         * @endcode
+         */
+        void error(const std::string& error);
+
+        /**
+         * set other keys...
+         *
+         * @code
+         * // set any attributes you want to be sent in the reply
+         * response["info"] = some_value;
+         * // ...
+         * response["ok"] = went_well;
+         * @endcode
+         */
+        LLSD& operator[](const LLSD::String& key) { return mResp[key]; }
+		
+		 /**
+		 * set the response to the given data
+		 */
+		void setResponse(LLSD const & response){ mResp = response; }
+
+        LLSD mResp, mReq;
+        LLSD::String mKey;
+    };
+
 private:
     std::string mDesc;
 };
diff --git a/indra/llcommon/llevents.cpp b/indra/llcommon/llevents.cpp
index ff03506e841a8771913895f0a065934cd5f840ef..db1ea4792b32546971a14e2c0cd30b7eae50802c 100644
--- a/indra/llcommon/llevents.cpp
+++ b/indra/llcommon/llevents.cpp
@@ -591,6 +591,17 @@ void LLReqID::stamp(LLSD& response) const
 
 bool sendReply(const LLSD& reply, const LLSD& request, const std::string& replyKey)
 {
+    // If the original request has no value for replyKey, it's pointless to
+    // construct or send a reply event: on which LLEventPump should we send
+    // it? Allow that to be optional: if the caller wants to require replyKey,
+    // it can so specify when registering the operation method.
+    if (! request.has(replyKey))
+    {
+        return false;
+    }
+
+    // Here the request definitely contains replyKey; reasonable to proceed.
+
     // Copy 'reply' to modify it.
     LLSD newreply(reply);
     // Get the ["reqid"] element from request
diff --git a/indra/llcommon/llqueuedthread.cpp b/indra/llcommon/llqueuedthread.cpp
index efd9c4b68f89dab72037cbec4d72d0524c511ec6..5dee7a3541ee1f4e4a161b15725286ca005d8742 100644
--- a/indra/llcommon/llqueuedthread.cpp
+++ b/indra/llcommon/llqueuedthread.cpp
@@ -32,7 +32,7 @@
 //============================================================================
 
 // MAIN THREAD
-LLQueuedThread::LLQueuedThread(const std::string& name, bool threaded) :
+LLQueuedThread::LLQueuedThread(const std::string& name, bool threaded, bool should_pause) :
 	LLThread(name),
 	mThreaded(threaded),
 	mIdleThread(TRUE),
@@ -41,6 +41,11 @@ LLQueuedThread::LLQueuedThread(const std::string& name, bool threaded) :
 {
 	if (mThreaded)
 	{
+		if(should_pause)
+		{
+			pause() ; //call this before start the thread.
+		}
+
 		start();
 	}
 }
diff --git a/indra/llcommon/llqueuedthread.h b/indra/llcommon/llqueuedthread.h
index a53b22f6fc2889622682d9cb446a3a5eabff7d89..499d13a79201126a074feffb8cfef4cd2c26d327 100644
--- a/indra/llcommon/llqueuedthread.h
+++ b/indra/llcommon/llqueuedthread.h
@@ -149,7 +149,7 @@ class LL_COMMON_API LLQueuedThread : public LLThread
 	static handle_t nullHandle() { return handle_t(0); }
 	
 public:
-	LLQueuedThread(const std::string& name, bool threaded = true);
+	LLQueuedThread(const std::string& name, bool threaded = true, bool should_pause = false);
 	virtual ~LLQueuedThread();	
 	virtual void shutdown();
 	
diff --git a/indra/llcommon/llworkerthread.cpp b/indra/llcommon/llworkerthread.cpp
index 6b308bb9179eeff39de601357c054ebcc51c0771..e186621503780cc2840ae0112ceb3cbb91b87ab7 100644
--- a/indra/llcommon/llworkerthread.cpp
+++ b/indra/llcommon/llworkerthread.cpp
@@ -34,8 +34,8 @@
 //============================================================================
 // Run on MAIN thread
 
-LLWorkerThread::LLWorkerThread(const std::string& name, bool threaded) :
-	LLQueuedThread(name, threaded)
+LLWorkerThread::LLWorkerThread(const std::string& name, bool threaded, bool should_pause) :
+	LLQueuedThread(name, threaded, should_pause)
 {
 	mDeleteMutex = new LLMutex;
 }
diff --git a/indra/llcommon/llworkerthread.h b/indra/llcommon/llworkerthread.h
index bef5ef53fe4fd4f97753429e09bd4c5fd1ba8708..973b78ca01536d028c3d94d8494833b7a74ce3c6 100644
--- a/indra/llcommon/llworkerthread.h
+++ b/indra/llcommon/llworkerthread.h
@@ -83,7 +83,7 @@ class LL_COMMON_API LLWorkerThread : public LLQueuedThread
 	LLMutex* mDeleteMutex;
 	
 public:
-	LLWorkerThread(const std::string& name, bool threaded = true);
+	LLWorkerThread(const std::string& name, bool threaded = true, bool should_pause = false);
 	~LLWorkerThread();
 
 	/*virtual*/ S32 update(U32 max_time_ms);
diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt
index dded8ab661e448034765201ae080e9a858bac353..772f173f1748e9edabc3281e2ed6b43feb0803d0 100644
--- a/indra/llui/CMakeLists.txt
+++ b/indra/llui/CMakeLists.txt
@@ -116,6 +116,7 @@ set(llui_SOURCE_FILES
     llurlmatch.cpp
     llurlregistry.cpp
     llviewborder.cpp
+    llviewinject.cpp
     llviewmodel.cpp
     llview.cpp
     llviewquery.cpp
@@ -222,6 +223,7 @@ set(llui_HEADER_FILES
     llurlmatch.h
     llurlregistry.h
     llviewborder.h
+    llviewinject.h
     llviewmodel.h
     llview.h
     llviewquery.h
diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp
index 5e8bf498c05928a875c915e1b416a1265f63a3b9..2fa260ded1e537c4ed6c5d32055ba303f4207650 100644
--- a/indra/llui/lluictrl.cpp
+++ b/indra/llui/lluictrl.cpp
@@ -1055,3 +1055,9 @@ boost::signals2::connection LLUICtrl::setDoubleClickCallback( const mouse_signal
 	if (!mDoubleClickSignal) mDoubleClickSignal = new mouse_signal_t();
 	return mDoubleClickSignal->connect(cb); 
 }
+
+void LLUICtrl::addInfo(LLSD & info)
+{
+	LLView::addInfo(info);
+	info["value"] = getValue();
+}
diff --git a/indra/llui/lluictrl.h b/indra/llui/lluictrl.h
index a8a4e3191d043d83dfa913d2acb4dc3760db6c50..3e055a9d06229c671de929b0feb93646acdd7b7d 100644
--- a/indra/llui/lluictrl.h
+++ b/indra/llui/lluictrl.h
@@ -304,7 +304,9 @@ class LLUICtrl
 
 	static F32 sActiveControlTransparency;
 	static F32 sInactiveControlTransparency;
-
+	
+	virtual void addInfo(LLSD & info);
+	
 private:
 
 	BOOL			mIsChrome;
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 55d053254c9ce3218c57ab30230bd78b70d4c99c..fdb84f1ec57f1b7890d8ed55c8dd69bbe1fd1188 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -31,7 +31,10 @@
 #include "llview.h"
 
 #include <cassert>
+#include <sstream>
 #include <boost/tokenizer.hpp>
+#include <boost/foreach.hpp>
+#include <boost/bind.hpp>
 
 #include "llrender.h"
 #include "llevent.h"
@@ -44,6 +47,7 @@
 #include "v3color.h"
 #include "lluictrlfactory.h"
 #include "lltooltip.h"
+#include "llsdutil.h"
 
 // for ui edit hack
 #include "llbutton.h"
@@ -66,6 +70,8 @@ S32		LLView::sLastLeftXML = S32_MIN;
 S32		LLView::sLastBottomXML = S32_MIN;
 std::vector<LLViewDrawContext*> LLViewDrawContext::sDrawContextStack;
 
+LLView::DrilldownFunc LLView::sDrilldown =
+	boost::bind(&LLView::pointInView, _1, _2, _3, HIT_TEST_USE_BOUNDING_RECT);
 
 //#if LL_DEBUG
 BOOL LLView::sIsDrawing = FALSE;
@@ -346,13 +352,11 @@ void LLView::removeChild(LLView* child)
 LLView::ctrl_list_t LLView::getCtrlList() const
 {
 	ctrl_list_t controls;
-	for(child_list_const_iter_t iter = mChildList.begin();
-		iter != mChildList.end();
-		iter++)
+	BOOST_FOREACH(LLView* viewp, mChildList)
 	{
-		if((*iter)->isCtrl())
+		if(viewp->isCtrl())
 		{
-			controls.push_back(static_cast<LLUICtrl*>(*iter));
+			controls.push_back(static_cast<LLUICtrl*>(viewp));
 		}
 	}
 	return controls;
@@ -428,6 +432,36 @@ BOOL LLView::isInEnabledChain() const
 	return enabled;
 }
 
+static void buildPathname(std::ostream& out, const LLView* view)
+{
+	if (! (view && view->getParent()))
+	{
+		return; // Don't include root in the path.
+	}
+
+	buildPathname(out, view->getParent());
+
+	// Build pathname into ostream on the way back from recursion.
+	out << '/' << view->getName();
+}
+
+std::string LLView::getPathname() const
+{
+	std::ostringstream out;
+	buildPathname(out, this);
+	return out.str();
+}
+
+//static
+std::string LLView::getPathname(const LLView* view)
+{
+    if (! view)
+    {
+        return "NULL";
+    }
+    return view->getPathname();
+}
+
 // virtual
 BOOL LLView::canFocusChildren() const
 {
@@ -574,9 +608,8 @@ void LLView::deleteAllChildren()
 
 void LLView::setAllChildrenEnabled(BOOL b)
 {
-	for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
+	BOOST_FOREACH(LLView* viewp, mChildList)
 	{
-		LLView* viewp = *child_it;
 		viewp->setEnabled(b);
 	}
 }
@@ -602,9 +635,8 @@ void LLView::setVisible(BOOL visible)
 // virtual
 void LLView::handleVisibilityChange ( BOOL new_visibility )
 {
-	for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
+	BOOST_FOREACH(LLView* viewp, mChildList)
 	{
-		LLView* viewp = *child_it;
 		// only views that are themselves visible will have their overall visibility affected by their ancestors
 		if (viewp->getVisible())
 		{
@@ -646,56 +678,178 @@ void LLView::onMouseLeave(S32 x, S32 y, MASK mask)
 	//llinfos << "Mouse left " << getName() << llendl;
 }
 
+bool LLView::visibleAndContains(S32 local_x, S32 local_y)
+{
+	return sDrilldown(this, local_x, local_y)
+		&& getVisible();
+}
+
+bool LLView::visibleEnabledAndContains(S32 local_x, S32 local_y)
+{
+	return visibleAndContains(local_x, local_y)
+		&& getEnabled();
+}
+
+void LLView::logMouseEvent()
+{
+	if (sDebugMouseHandling)
+	{
+		sMouseHandlerMessage = std::string("/") + mName + sMouseHandlerMessage;
+	}
+}
+
+template <typename METHOD, typename CHARTYPE>
+LLView* LLView::childrenHandleCharEvent(const std::string& desc, const METHOD& method,
+										CHARTYPE c, MASK mask)
+{
+	if ( getVisible() && getEnabled() )
+	{
+		BOOST_FOREACH(LLView* viewp, mChildList)
+		{
+			if ((viewp->*method)(c, mask, TRUE))
+			{
+				if (LLView::sDebugKeys)
+				{
+					llinfos << desc << " handled by " << viewp->getName() << llendl;
+				}
+				return viewp;
+			}
+		}
+	}
+    return NULL;
+}
+
+// XDATA might be MASK, or S32 clicks
+template <typename METHOD, typename XDATA>
+LLView* LLView::childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra)
+{
+	BOOST_FOREACH(LLView* viewp, mChildList)
+	{
+		S32 local_x = x - viewp->getRect().mLeft;
+		S32 local_y = y - viewp->getRect().mBottom;
+
+		if (!viewp->visibleEnabledAndContains(local_x, local_y))
+		{
+			continue;
+		}
+
+		if ((viewp->*method)( local_x, local_y, extra )
+			|| viewp->blockMouseEvent( local_x, local_y ))
+		{
+			viewp->logMouseEvent();
+			return viewp;
+		}
+	}
+	return NULL;
+}
 
 LLView* LLView::childrenHandleToolTip(S32 x, S32 y, MASK mask)
 {
-	LLView* handled_view = NULL;
-	for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
+	BOOST_FOREACH(LLView* viewp, mChildList)
 	{
-		LLView* viewp = *child_it;
 		S32 local_x = x - viewp->getRect().mLeft;
 		S32 local_y = y - viewp->getRect().mBottom;
-		if(!viewp->pointInView(local_x, local_y) 
-			|| !viewp->getVisible())
+		// Differs from childrenHandleMouseEvent() in that we want to offer
+		// tooltips even for disabled widgets.
+		if(!viewp->visibleAndContains(local_x, local_y))
 		{
 			continue;
 		}
 
-		if (viewp->handleToolTip(local_x, local_y, mask) )
+		if (viewp->handleToolTip(local_x, local_y, mask) 
+			|| viewp->blockMouseEvent(local_x, local_y))
 		{
-			if (sDebugMouseHandling)
-			{
-				sMouseHandlerMessage = std::string("/") + viewp->mName + sMouseHandlerMessage;
-			}
+			viewp->logMouseEvent();
+			return viewp;
+		}
+	}
+	return NULL;
+}
 
-			handled_view = viewp;
-			break;
+LLView* LLView::childrenHandleDragAndDrop(S32 x, S32 y, MASK mask,
+									   BOOL drop,
+									   EDragAndDropType cargo_type,
+									   void* cargo_data,
+									   EAcceptance* accept,
+									   std::string& tooltip_msg)
+{
+	// default to not accepting drag and drop, will be overridden by handler
+	*accept = ACCEPT_NO;
+
+	BOOST_FOREACH(LLView* viewp, mChildList)
+	{
+		S32 local_x = x - viewp->getRect().mLeft;
+		S32 local_y = y - viewp->getRect().mBottom;
+		if( !viewp->visibleEnabledAndContains(local_x, local_y))
+		{
+			continue;
 		}
 
-		if (viewp->blockMouseEvent(local_x, local_y))
+		// Differs from childrenHandleMouseEvent() simply in that this virtual
+		// method call diverges pretty radically from the usual (x, y, int).
+		if (viewp->handleDragAndDrop(local_x, local_y, mask, drop,
+									 cargo_type,
+									 cargo_data,
+									 accept,
+									 tooltip_msg)
+			|| viewp->blockMouseEvent(local_x, local_y))
 		{
-			handled_view = viewp;
-			break;
+			return viewp;
 		}
 	}
-	return handled_view;
+	return NULL;
 }
 
+LLView* LLView::childrenHandleHover(S32 x, S32 y, MASK mask)
+{
+	BOOST_FOREACH(LLView* viewp, mChildList)
+	{
+		S32 local_x = x - viewp->getRect().mLeft;
+		S32 local_y = y - viewp->getRect().mBottom;
+		if(!viewp->visibleEnabledAndContains(local_x, local_y))
+		{
+			continue;
+		}
+
+		// This call differentiates this method from childrenHandleMouseEvent().
+		LLUI::sWindow->setCursor(viewp->getHoverCursor());
 
-LLView*	LLView::childFromPoint(S32 x, S32 y)
+		if (viewp->handleHover(local_x, local_y, mask)
+			|| viewp->blockMouseEvent(local_x, local_y))
+		{
+			viewp->logMouseEvent();
+			return viewp;
+		}
+	}
+	return NULL;
+}
+
+LLView*	LLView::childFromPoint(S32 x, S32 y, bool recur)
 {
-	if (!getVisible()  )
+	if (!getVisible())
 		return false;
-	for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
+
+	BOOST_FOREACH(LLView* viewp, mChildList)
 	{
-		LLView* viewp = *child_it;
 		S32 local_x = x - viewp->getRect().mLeft;
 		S32 local_y = y - viewp->getRect().mBottom;
-		if (!viewp->pointInView(local_x, local_y) 
-			|| !viewp->getVisible() )
+		if (!viewp->visibleAndContains(local_x, local_y))
 		{
 			continue;
 		}
+		// Here we've found the first (frontmost) visible child at this level
+		// containing the specified point. Is the caller asking us to drill
+		// down and return the innermost leaf child at this point, or just the
+		// top-level child?
+		if (recur)
+		{
+			LLView* leaf(viewp->childFromPoint(local_x, local_y, recur));
+			// Maybe viewp is already a leaf LLView, or maybe it has children
+			// but this particular (x, y) point falls between them. If the
+			// recursive call returns non-NULL, great, use that; else just use
+			// viewp.
+			return leaf? leaf : viewp;
+		}
 		return viewp;
 
 	}
@@ -816,45 +970,6 @@ BOOL LLView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
 	return childrenHandleDragAndDrop( x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg) != NULL;
 }
 
-LLView* LLView::childrenHandleDragAndDrop(S32 x, S32 y, MASK mask,
-									   BOOL drop,
-									   EDragAndDropType cargo_type,
-									   void* cargo_data,
-									   EAcceptance* accept,
-									   std::string& tooltip_msg)
-{
-	LLView* handled_view = NULL;
-	for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-	{
-		LLView* viewp = *child_it;
-		S32 local_x = x - viewp->getRect().mLeft;
-		S32 local_y = y - viewp->getRect().mBottom;
-		if( !viewp->pointInView(local_x, local_y) ||
-			!viewp->getVisible() ||
-			!viewp->getEnabled())
-		{
-			continue;
-		}
-		if (viewp->handleDragAndDrop(local_x, local_y, mask, drop,
-									 cargo_type,
-									 cargo_data,
-									 accept,
-									 tooltip_msg))
-		{
-			handled_view = viewp;
-			break;
-		}
-
-		if (viewp->blockMouseEvent(x, y))
-		{
-			*accept = ACCEPT_NO;
-			handled_view = viewp;
-			break;
-		}
-	}
-	return handled_view;
-}
-
 void LLView::onMouseCaptureLost()
 {
 }
@@ -904,391 +1019,57 @@ BOOL LLView::handleMiddleMouseUp(S32 x, S32 y, MASK mask)
 	return childrenHandleMiddleMouseUp( x, y, mask ) != NULL;
 }
 
-
 LLView* LLView::childrenHandleScrollWheel(S32 x, S32 y, S32 clicks)
 {
-	LLView* handled_view = NULL;
-	if (getVisible() && getEnabled() )
-	{
-		for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-		{
-			LLView* viewp = *child_it;
-			S32 local_x = x - viewp->getRect().mLeft;
-			S32 local_y = y - viewp->getRect().mBottom;
-			if (!viewp->pointInView(local_x, local_y) 
-				|| !viewp->getVisible()
-				|| !viewp->getEnabled())
-			{
-				continue;
-			}
-
-			if (viewp->handleScrollWheel( local_x, local_y, clicks ))
-			{
-				if (sDebugMouseHandling)
-				{
-					sMouseHandlerMessage = std::string("/") + viewp->mName + sMouseHandlerMessage;
-				}
-
-				handled_view = viewp;
-				break;
-			}
-		}
-	}
-	return handled_view;
-}
-
-LLView* LLView::childrenHandleHover(S32 x, S32 y, MASK mask)
-{
-	LLView* handled_view = NULL;
-	if (getVisible() && getEnabled() )
-	{
-		for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-		{
-			LLView* viewp = *child_it;
-			S32 local_x = x - viewp->getRect().mLeft;
-			S32 local_y = y - viewp->getRect().mBottom;
-			if(!viewp->pointInView(local_x, local_y) 
-				|| !viewp->getVisible() 
-				|| !viewp->getEnabled())
-			{
-				continue;
-			}
-
-			if (viewp->handleHover(local_x, local_y, mask) )
-			{
-				if (sDebugMouseHandling)
-				{
-					sMouseHandlerMessage = std::string("/") + viewp->mName + sMouseHandlerMessage;
-				}
-
-				handled_view = viewp;
-				break;
-			}
-
-			if (viewp->blockMouseEvent(local_x, local_y))
-			{
-				LLUI::sWindow->setCursor(viewp->getHoverCursor());
-
-				handled_view = viewp;
-				break;
-			}
-		}
-	}
-	return handled_view;
+	return childrenHandleMouseEvent(&LLView::handleScrollWheel, x, y, clicks);
 }
 
 // Called during downward traversal
 LLView* LLView::childrenHandleKey(KEY key, MASK mask)
 {
-	LLView* handled_view = NULL;
-
-	if ( getVisible() && getEnabled() )
-	{
-		for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-		{
-			LLView* viewp = *child_it;
-			if (viewp->handleKey(key, mask, TRUE))
-			{
-				if (LLView::sDebugKeys)
-				{
-					llinfos << "Key handled by " << viewp->getName() << llendl;
-				}
-				handled_view = viewp;
-				break;
-			}
-		}
-	}
-
-	return handled_view;
+	return childrenHandleCharEvent("Key", &LLView::handleKey, key, mask);
 }
 
 // Called during downward traversal
 LLView* LLView::childrenHandleUnicodeChar(llwchar uni_char)
 {
-	LLView* handled_view = NULL;
-
-	if ( getVisible() && getEnabled() )
-	{
-		for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-		{
-			LLView* viewp = *child_it;
-			if (viewp->handleUnicodeChar(uni_char, TRUE))
-			{
-				if (LLView::sDebugKeys)
-				{
-					llinfos << "Unicode character handled by " << viewp->getName() << llendl;
-				}
-				handled_view = viewp;
-				break;
-			}
-		}
-	}
-
-	return handled_view;
+	return childrenHandleCharEvent("Unicode character", &LLView::handleUnicodeCharWithDummyMask,
+								   uni_char, MASK_NONE);
 }
 
 LLView* LLView::childrenHandleMouseDown(S32 x, S32 y, MASK mask)
 {
-	LLView* handled_view = NULL;
-
-	for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-	{
-		LLView* viewp = *child_it;
-		S32 local_x = x - viewp->getRect().mLeft;
-		S32 local_y = y - viewp->getRect().mBottom;
-
-		if (!viewp->pointInView(local_x, local_y) 
-			|| !viewp->getVisible() 
-			|| !viewp->getEnabled())
-		{
-			continue;
-		}
-
-		if(viewp->handleMouseDown( local_x, local_y, mask ))
-		{
-			if (sDebugMouseHandling)
-			{
-				sMouseHandlerMessage = std::string("/") + viewp->mName + sMouseHandlerMessage;
-			}
-			handled_view = viewp;
-			break;
-		}
-
-		if(viewp->blockMouseEvent(local_x, local_y))
-		{
-			handled_view = viewp;
-			break;
-		}
-	}
-	return handled_view;
+	return childrenHandleMouseEvent(&LLView::handleMouseDown, x, y, mask);
 }
 
 LLView* LLView::childrenHandleRightMouseDown(S32 x, S32 y, MASK mask)
 {
-	LLView* handled_view = NULL;
-
-	if (getVisible() && getEnabled() )
-	{
-		for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-		{
-			LLView* viewp = *child_it;
-			S32 local_x = x - viewp->getRect().mLeft;
-			S32 local_y = y - viewp->getRect().mBottom;
-
-			if (!viewp->pointInView(local_x, local_y)
-				|| !viewp->getVisible() 
-				|| !viewp->getEnabled())
-			{
-				continue;
-			}
-
-			if (viewp->handleRightMouseDown( local_x, local_y, mask ))
-			{
-				if (sDebugMouseHandling)
-				{
-					sMouseHandlerMessage = std::string("/") + viewp->mName + sMouseHandlerMessage;
-				}
-
-				handled_view = viewp;
-				break;
-			}
-
-			if (viewp->blockMouseEvent(local_x, local_y))
-			{
-				handled_view = viewp;
-				break;
-			}
-		}
-	}
-	return handled_view;
+	return childrenHandleMouseEvent(&LLView::handleRightMouseDown, x, y, mask);
 }
 
 LLView* LLView::childrenHandleMiddleMouseDown(S32 x, S32 y, MASK mask)
 {
-	LLView* handled_view = NULL;
-
-	if (getVisible() && getEnabled() )
-	{
-		for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-		{
-			LLView* viewp = *child_it;
-			S32 local_x = x - viewp->getRect().mLeft;
-			S32 local_y = y - viewp->getRect().mBottom;
-			if (!viewp->pointInView(local_x, local_y)
-				|| !viewp->getVisible() 
-				|| !viewp->getEnabled())
-			{
-				continue;
-			}
-
-			if(viewp->handleMiddleMouseDown( local_x, local_y, mask ))
-			{
-				if (sDebugMouseHandling)
-				{
-					sMouseHandlerMessage = std::string("/") + viewp->mName + sMouseHandlerMessage;
-				}
-				handled_view = viewp;
-				break;
-			}
-
-			if (viewp->blockMouseEvent(local_x, local_y))
-			{
-				handled_view = viewp;
-				break;
-			}
-		}
-	}
-	return handled_view;
+	return childrenHandleMouseEvent(&LLView::handleMiddleMouseDown, x, y, mask);
 }
 
 LLView* LLView::childrenHandleDoubleClick(S32 x, S32 y, MASK mask)
 {
-	LLView* handled_view = NULL;
-
-	if (getVisible() && getEnabled() )
-	{
-		for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-		{
-			LLView* viewp = *child_it;
-			S32 local_x = x - viewp->getRect().mLeft;
-			S32 local_y = y - viewp->getRect().mBottom;
-
-			if (!viewp->pointInView(local_x, local_y) 
-				|| !viewp->getVisible() 
-				|| !viewp->getEnabled())
-			{
-				continue;
-			}
-
-			if (viewp->handleDoubleClick( local_x, local_y, mask ))
-			{
-				if (sDebugMouseHandling)
-				{
-					sMouseHandlerMessage = std::string("/") + viewp->mName + sMouseHandlerMessage;
-				}
-				handled_view = viewp;
-				break;
-			}
-
-			if (viewp->blockMouseEvent(local_x, local_y))
-			{
-				handled_view = viewp;
-				break;
-			}
-		}
-	}
-	return handled_view;
+	return childrenHandleMouseEvent(&LLView::handleDoubleClick, x, y, mask);
 }
 
 LLView* LLView::childrenHandleMouseUp(S32 x, S32 y, MASK mask)
 {
-	LLView* handled_view = NULL;
-	if( getVisible() && getEnabled() )
-	{
-		for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-		{
-			LLView* viewp = *child_it;
-			S32 local_x = x - viewp->getRect().mLeft;
-			S32 local_y = y - viewp->getRect().mBottom;
-			if (!viewp->pointInView(local_x, local_y)
-				|| !viewp->getVisible()
-				|| !viewp->getEnabled())
-			{
-				continue;
-			}
-			
-			if (viewp->handleMouseUp( local_x, local_y, mask ))
-			{
-				if (sDebugMouseHandling)
-				{
-					sMouseHandlerMessage = std::string("/") + viewp->mName + sMouseHandlerMessage;
-				}
-				handled_view = viewp;
-				break;
-			}
-
-			if (viewp->blockMouseEvent(local_x, local_y))
-			{
-				handled_view = viewp;
-				break;
-			}
-		}
-	}
-	return handled_view;
+	return childrenHandleMouseEvent(&LLView::handleMouseUp, x, y, mask);
 }
 
 LLView* LLView::childrenHandleRightMouseUp(S32 x, S32 y, MASK mask)
 {
-	LLView* handled_view = NULL;
-	if( getVisible() && getEnabled() )
-	{
-		for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-		{
-			LLView* viewp = *child_it;
-			S32 local_x = x - viewp->getRect().mLeft;
-			S32 local_y = y - viewp->getRect().mBottom;
-			if (!viewp->pointInView(local_x, local_y) 
-				|| !viewp->getVisible() 
-				|| !viewp->getEnabled() )
-			{
-				continue;
-			}
-
-			if(viewp->handleRightMouseUp( local_x, local_y, mask ))
-			{
-				if (sDebugMouseHandling)
-				{
-					sMouseHandlerMessage = std::string("/") + viewp->mName + sMouseHandlerMessage;
-				}
-				handled_view = viewp;
-				break;
-			}
-
-			if(viewp->blockMouseEvent(local_x, local_y))
-			{
-				handled_view = viewp;
-				break;
-			}
-		}
-	}
-	return handled_view;
+	return childrenHandleMouseEvent(&LLView::handleRightMouseUp, x, y, mask);
 }
 
 LLView* LLView::childrenHandleMiddleMouseUp(S32 x, S32 y, MASK mask)
 {
-	LLView* handled_view = NULL;
-	if( getVisible() && getEnabled() )
-	{
-		for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
-		{
-			LLView* viewp = *child_it;
-			S32 local_x = x - viewp->getRect().mLeft;
-			S32 local_y = y - viewp->getRect().mBottom;
-			if (!viewp->pointInView(local_x, local_y) 
-				|| !viewp->getVisible() 
-				|| !viewp->getEnabled())
-			{
-				continue;
-			}
-				
-			if(viewp->handleMiddleMouseUp( local_x, local_y, mask ))
-			{
-				if (sDebugMouseHandling)
-				{
-					sMouseHandlerMessage = std::string("/") + viewp->mName + sMouseHandlerMessage;
-				}
-				handled_view = viewp;
-				break;
-			}
-
-			if (viewp->blockMouseEvent(local_x, local_y))
-			{
-				handled_view = viewp;
-				break;
-			}
-		}
-	}
-	return handled_view;
+	return childrenHandleMouseEvent(&LLView::handleMiddleMouseUp, x, y, mask);
 }
 
 void LLView::draw()
@@ -1461,9 +1242,8 @@ void LLView::reshape(S32 width, S32 height, BOOL called_from_parent)
 		mRect.mTop = getRect().mBottom + height;
 
 		// move child views according to reshape flags
-		for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
+		BOOST_FOREACH(LLView* viewp, mChildList)
 		{
-			LLView* viewp = *child_it;
 			LLRect child_rect( viewp->mRect );
 
 			if (viewp->followsRight() && viewp->followsLeft())
@@ -1526,10 +1306,8 @@ LLRect LLView::calcBoundingRect()
 {
 	LLRect local_bounding_rect = LLRect::null;
 
-	child_list_const_iter_t child_it;
-	for ( child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
+	BOOST_FOREACH(LLView* childp, mChildList)
 	{
-		LLView* childp = *child_it;
 		// ignore invisible and "top" children when calculating bounding rect
 		// such as combobox popups
 		if (!childp->getVisible() || childp == gFocusMgr.getTopCtrl()) 
@@ -1694,11 +1472,9 @@ LLView* LLView::findChildView(const std::string& name, BOOL recurse) const
 	//richard: should we allow empty names?
 	//if(name.empty())
 	//	return NULL;
-	child_list_const_iter_t child_it;
 	// Look for direct children *first*
-	for ( child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
+	BOOST_FOREACH(LLView* childp, mChildList)
 	{
-		LLView* childp = *child_it;
 		llassert(childp);
 		if (childp->getName() == name)
 		{
@@ -1708,9 +1484,8 @@ LLView* LLView::findChildView(const std::string& name, BOOL recurse) const
 	if (recurse)
 	{
 		// Look inside each child as well.
-		for ( child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
+		BOOST_FOREACH(LLView* childp, mChildList)
 		{
-			LLView* childp = *child_it;
 			llassert(childp);
 			LLView* viewp = childp->findChildView(name, recurse);
 			if ( viewp )
@@ -2844,9 +2619,9 @@ S32	LLView::notifyParent(const LLSD& info)
 bool	LLView::notifyChildren(const LLSD& info)
 {
 	bool ret = false;
-	for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it)
+	BOOST_FOREACH(LLView* childp, mChildList)
 	{
-		ret |= (*child_it)->notifyChildren(info);
+		ret = ret || childp->notifyChildren(info);
 	}
 	return ret;
 }
@@ -2866,3 +2641,24 @@ const LLViewDrawContext& LLViewDrawContext::getCurrentContext()
 		
 	return *sDrawContextStack.back();
 }
+
+LLSD LLView::getInfo(void)
+{
+	LLSD info;
+	addInfo(info);
+	return info;
+}
+
+void LLView::addInfo(LLSD & info)
+{
+	info["path"] = getPathname();
+	info["class"] = typeid(*this).name();
+	info["visible"] = getVisible();
+	info["visible_chain"] = isInVisibleChain();
+	info["enabled"] = getEnabled();
+	info["enabled_chain"] = isInEnabledChain();
+	info["available"] = isAvailable();
+	LLRect rect(calcScreenRect());
+	info["rect"] = LLSDMap("left", rect.mLeft)("top", rect.mTop)
+				("right", rect.mRight)("bottom", rect.mBottom);
+}
diff --git a/indra/llui/llview.h b/indra/llui/llview.h
index 5e3387dc9841ee178c7a732a941b6954c69c577e..6d1dda90affb4f73e1fe1f1624a2d765d14bb4cb 100644
--- a/indra/llui/llview.h
+++ b/indra/llui/llview.h
@@ -50,6 +50,8 @@
 #include "llfocusmgr.h"
 
 #include <list>
+#include <boost/function.hpp>
+#include <boost/noncopyable.hpp>
 
 class LLSD;
 
@@ -435,12 +437,15 @@ class LLView : public LLMouseHandler, public LLMortician, public LLFocusableElem
 	/*virtual*/ void	screenPointToLocal(S32 screen_x, S32 screen_y, S32* local_x, S32* local_y) const;
 	/*virtual*/ void	localPointToScreen(S32 local_x, S32 local_y, S32* screen_x, S32* screen_y) const;
 
-	virtual		LLView*	childFromPoint(S32 x, S32 y);
+	virtual		LLView*	childFromPoint(S32 x, S32 y, bool recur=false);
 
 	// view-specific handlers 
 	virtual void	onMouseEnter(S32 x, S32 y, MASK mask);
 	virtual void	onMouseLeave(S32 x, S32 y, MASK mask);
 
+	std::string getPathname() const;
+	// static method handles NULL pointer too
+	static std::string getPathname(const LLView*);
 
 	template <class T> T* findChild(const std::string& name, BOOL recurse = TRUE) const
 	{
@@ -522,11 +527,17 @@ class LLView : public LLMouseHandler, public LLMortician, public LLFocusableElem
 	virtual S32	notify(const LLSD& info) { return 0;};
 
 	static const LLViewDrawContext& getDrawContext();
+	
+	// Returns useful information about this ui widget.
+	LLSD getInfo(void);
 
 protected:
 	void			drawDebugRect();
 	void			drawChild(LLView* childp, S32 x_offset = 0, S32 y_offset = 0, BOOL force_draw = FALSE);
 	void			drawChildren();
+	bool			visibleAndContains(S32 local_x, S32 local_Y);
+	bool			visibleEnabledAndContains(S32 local_x, S32 local_y);
+	void			logMouseEvent();
 
 	LLView*	childrenHandleKey(KEY key, MASK mask);
 	LLView* childrenHandleUnicodeChar(llwchar uni_char);
@@ -549,9 +560,24 @@ class LLView : public LLMouseHandler, public LLMortician, public LLFocusableElem
 	LLView* childrenHandleToolTip(S32 x, S32 y, MASK mask);
 
 	ECursorType mHoverCursor;
-	
+
+	virtual void addInfo(LLSD & info);
 private:
 
+	template <typename METHOD, typename XDATA>
+	LLView* childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra);
+
+	template <typename METHOD, typename CHARTYPE>
+	LLView* childrenHandleCharEvent(const std::string& desc, const METHOD& method,
+									CHARTYPE c, MASK mask);
+
+	// adapter to blur distinction between handleKey() and handleUnicodeChar()
+	// for childrenHandleCharEvent()
+	BOOL	handleUnicodeCharWithDummyMask(llwchar uni_char, MASK /* dummy */, BOOL from_parent)
+	{
+		return handleUnicodeChar(uni_char, from_parent);
+	}
+
 	LLView*		mParentView;
 	child_list_t mChildList;
 
@@ -593,7 +619,35 @@ class LLView : public LLMouseHandler, public LLMortician, public LLFocusableElem
 
 	LLView& getDefaultWidgetContainer() const;
 
+	// This allows special mouse-event targeting logic for testing.
+	typedef boost::function<bool(const LLView*, S32 x, S32 y)> DrilldownFunc;
+	static DrilldownFunc sDrilldown;
+
 public:
+	// This is the only public accessor to alter sDrilldown. This is not
+	// an accident. The intended usage pattern is like:
+	// {
+	//     LLView::TemporaryDrilldownFunc scoped_func(myfunctor);
+	//     // ... test with myfunctor ...
+	// } // exiting block restores original LLView::sDrilldown
+	class TemporaryDrilldownFunc: public boost::noncopyable
+	{
+	public:
+		TemporaryDrilldownFunc(const DrilldownFunc& func):
+			mOldDrilldown(sDrilldown)
+		{
+			sDrilldown = func;
+		}
+
+		~TemporaryDrilldownFunc()
+		{
+			sDrilldown = mOldDrilldown;
+		}
+
+	private:
+		DrilldownFunc mOldDrilldown;
+	};
+
 	// Depth in view hierarchy during rendering
 	static S32	sDepth;
 
diff --git a/indra/llui/llviewinject.cpp b/indra/llui/llviewinject.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..46c5839f8ee659062c45a716d08162990287d407
--- /dev/null
+++ b/indra/llui/llviewinject.cpp
@@ -0,0 +1,49 @@
+/**
+ * @file   llviewinject.cpp
+ * @author Nat Goodspeed
+ * @date   2011-08-16
+ * @brief  Implementation for llviewinject.
+ * 
+ * $LicenseInfo:firstyear=2011&license=viewerlgpl$
+ * Copyright (c) 2011, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+// Precompiled header
+#include "linden_common.h"
+// associated header
+#include "llviewinject.h"
+// STL headers
+// std headers
+// external library headers
+// other Linden headers
+
+llview::TargetEvent::TargetEvent(LLView* view)
+{
+    // Walk up the view tree from target LLView to the root (NULL). If
+    // passed NULL, iterate 0 times.
+    for (; view; view = view->getParent())
+    {
+        // At each level, operator() is going to ask: for a particular parent
+        // LLView*, which of its children should I select? So for this view's
+        // parent, select this view.
+        mChildMap[view->getParent()] = view;
+    }
+}
+
+bool llview::TargetEvent::operator()(const LLView* view, S32 /*x*/, S32 /*y*/) const
+{
+    // We are being called to decide whether to direct an incoming mouse event
+    // to this child view. (Normal LLView processing is to check whether the
+    // incoming (x, y) is within the view.) Look up the parent to decide
+    // whether, for that parent, this is the previously-selected child.
+    ChildMap::const_iterator found(mChildMap.find(view->getParent()));
+    // If we're looking at a child whose parent isn't even in the map, never
+    // mind.
+    if (found == mChildMap.end())
+    {
+        return false;
+    }
+    // So, is this the predestined child for this parent?
+    return (view == found->second);
+}
diff --git a/indra/llui/llviewinject.h b/indra/llui/llviewinject.h
new file mode 100644
index 0000000000000000000000000000000000000000..0de3d155c41ba819b491ac4d93e1ed894e587c04
--- /dev/null
+++ b/indra/llui/llviewinject.h
@@ -0,0 +1,56 @@
+/**
+ * @file   llviewinject.h
+ * @author Nat Goodspeed
+ * @date   2011-08-16
+ * @brief  Supplemental LLView functionality used for simulating UI events.
+ * 
+ * $LicenseInfo:firstyear=2011&license=viewerlgpl$
+ * Copyright (c) 2011, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+#if ! defined(LL_LLVIEWINJECT_H)
+#define LL_LLVIEWINJECT_H
+
+#include "llview.h"
+#include <map>
+
+namespace llview
+{
+
+    /**
+     * TargetEvent is a callable with state, specifically intended for use as
+     * an LLView::TemporaryDrilldownFunc. Instantiate it with the desired
+     * target LLView*; pass it to a TemporaryDrilldownFunc instance;
+     * TargetEvent::operator() will then attempt to direct subsequent mouse
+     * events to the desired target LLView*. (This is an "attempt" because
+     * LLView will still balk unless the target LLView and every parent are
+     * visible and enabled.)
+     */
+    class TargetEvent
+    {
+    public:
+        /**
+         * Construct TargetEvent with the desired target LLView*. (See
+         * LLUI::resolvePath() to obtain an LLView* given a string pathname.)
+         * This sets up for operator().
+         */
+        TargetEvent(LLView* view);
+
+        /**
+         * This signature must match LLView::DrilldownFunc. When you install
+         * this TargetEvent instance using LLView::TemporaryDrilldownFunc,
+         * LLView will call this method to decide whether to propagate an
+         * incoming mouse event to the passed child LLView*.
+         */
+        bool operator()(const LLView*, S32 x, S32 y) const;
+
+    private:
+        // For a given parent LLView, identify which child to select.
+        typedef std::map<LLView*, LLView*> ChildMap;
+        ChildMap mChildMap;
+    };
+
+} // llview namespace
+
+#endif /* ! defined(LL_LLVIEWINJECT_H) */
diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt
index 3d89867bc1d626dce8a183047a687b295e7cbd07..341bddfffdb81bc83a134ea3d7323a47feb7e6c3 100644
--- a/indra/llwindow/CMakeLists.txt
+++ b/indra/llwindow/CMakeLists.txt
@@ -38,7 +38,6 @@ set(llwindow_SOURCE_FILES
     llkeyboardheadless.cpp
     llwindowheadless.cpp
     llwindowcallbacks.cpp
-    llwindowlistener.cpp
     )
 
 set(llwindow_HEADER_FILES
@@ -48,7 +47,6 @@ set(llwindow_HEADER_FILES
     llkeyboardheadless.h
     llwindowheadless.h
     llwindowcallbacks.h
-    llwindowlistener.h
     )
 
 set(viewer_SOURCE_FILES
diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp
index 71a5df910dabf4e1f7c2b5db32d23741f5f5e78b..dc3a1099b112a56ddeef08e54c82e65023391c84 100644
--- a/indra/llwindow/llwindow.cpp
+++ b/indra/llwindow/llwindow.cpp
@@ -41,8 +41,6 @@
 #include "llkeyboard.h"
 #include "linked_lists.h"
 #include "llwindowcallbacks.h"
-#include "llwindowlistener.h"
-#include <boost/lambda/core.hpp>
 
 
 //
@@ -118,17 +116,10 @@ LLWindow::LLWindow(LLWindowCallbacks* callbacks, BOOL fullscreen, U32 flags)
 	  mFlags(flags),
 	  mHighSurrogate(0)
 {
-	// gKeyboard is still NULL, so it doesn't do LLWindowListener any good to
-	// pass its value right now. Instead, pass it a nullary function that
-	// will, when we later need it, return the value of gKeyboard.
-	// boost::lambda::var() constructs such a functor on the fly.
-	mListener = new LLWindowListener(callbacks, boost::lambda::var(gKeyboard));
 }
 
 LLWindow::~LLWindow()
 {
-	delete mListener;
-	mListener = NULL;
 }
 
 //virtual
diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h
index 6bdc01ae88fcd0fa45af3fd804635b7965c54527..e8a86a188072c90f6563f47681d266a4e9eea196 100644
--- a/indra/llwindow/llwindow.h
+++ b/indra/llwindow/llwindow.h
@@ -36,7 +36,6 @@
 class LLSplashScreen;
 class LLPreeditor;
 class LLWindowCallbacks;
-class LLWindowListener;
 
 // Refer to llwindow_test in test/common/llwindow for usage example
 
@@ -189,7 +188,6 @@ class LLWindow
 	BOOL		mHideCursorPermanent;
 	U32			mFlags;
 	U16			mHighSurrogate;
-	LLWindowListener* mListener;
 
  	// Handle a UTF-16 encoding unit received from keyboard.
  	// Converting the series of UTF-16 encoding units to UTF-32 data,
diff --git a/indra/llwindow/llwindowlistener.cpp b/indra/llwindow/llwindowlistener.cpp
deleted file mode 100644
index 91b99d83c6a2ebaa0191a0f4973be8c1705d1b18..0000000000000000000000000000000000000000
--- a/indra/llwindow/llwindowlistener.cpp
+++ /dev/null
@@ -1,307 +0,0 @@
-/** 
- * @file llwindowlistener.cpp
- * @brief EventAPI interface for injecting input into LLWindow
- *
- * $LicenseInfo:firstyear=2001&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#include "linden_common.h"
-
-#include "llwindowlistener.h"
-
-#include "llcoord.h"
-#include "llkeyboard.h"
-#include "llwindowcallbacks.h"
-#include <map>
-
-LLWindowListener::LLWindowListener(LLWindowCallbacks *window, const KeyboardGetter& kbgetter)
-	: LLEventAPI("LLWindow", "Inject input events into the LLWindow instance"),
-	  mWindow(window),
-	  mKbGetter(kbgetter)
-{
-	std::string keySomething =
-		"Given [\"keysym\"], [\"keycode\"] or [\"char\"], inject the specified ";
-	std::string keyExplain =
-		"(integer keycode values, or keysym \"XXXX\" from any KEY_XXXX, in\n"
-		"http://hg.secondlife.com/viewer-development/src/tip/indra/llcommon/indra_constants.h )";
-	std::string mask =
-		"Specify optional [\"mask\"] as an array containing any of \"CONTROL\", \"ALT\",\n"
-		"\"SHIFT\" or \"MAC_CONTROL\"; the corresponding modifier bits will be combined\n"
-		"to form the mask used with the event.";
-
-	std::string mouseSomething =
-		"Given [\"button\"], [\"x\"] and [\"y\"], inject the given mouse ";
-	std::string mouseExplain =
-		"(button values \"LEFT\", \"MIDDLE\", \"RIGHT\")";
-
-	add("keyDown",
-		keySomething + "keypress event.\n" + keyExplain + '\n' + mask,
-		&LLWindowListener::keyDown);
-	add("keyUp",
-		keySomething + "key release event.\n" + keyExplain + '\n' + mask,
-		&LLWindowListener::keyUp);
-	add("mouseDown",
-		mouseSomething + "click event.\n" + mouseExplain + '\n' + mask,
-		&LLWindowListener::mouseDown);
-	add("mouseUp",
-		mouseSomething + "release event.\n" + mouseExplain + '\n' + mask,
-		&LLWindowListener::mouseUp);
-	add("mouseMove",
-		std::string("Given [\"x\"] and [\"y\"], inject the given mouse movement event.\n") +
-		mask,
-		&LLWindowListener::mouseMove);
-	add("mouseScroll",
-		"Given an integer number of [\"clicks\"], inject the given mouse scroll event.\n"
-		"(positive clicks moves downward through typical content)",
-		&LLWindowListener::mouseScroll);
-}
-
-template <typename MAPPED>
-class StringLookup
-{
-private:
-	std::string mDesc;
-	typedef std::map<std::string, MAPPED> Map;
-	Map mMap;
-
-public:
-	StringLookup(const std::string& desc): mDesc(desc) {}
-
-	MAPPED lookup(const typename Map::key_type& key) const
-	{
-		typename Map::const_iterator found = mMap.find(key);
-		if (found == mMap.end())
-		{
-			LL_WARNS("LLWindowListener") << "Unknown " << mDesc << " '" << key << "'" << LL_ENDL;
-			return MAPPED();
-		}
-		return found->second;
-	}
-
-protected:
-	void add(const typename Map::key_type& key, const typename Map::mapped_type& value)
-	{
-		mMap.insert(typename Map::value_type(key, value));
-	}
-};
-
-// for WhichKeysym. KeyProxy is like the typedef KEY, except that KeyProxy()
-// (default-constructed) is guaranteed to have the value KEY_NONE.
-class KeyProxy
-{
-public:
-	KeyProxy(KEY k): mKey(k) {}
-	KeyProxy(): mKey(KEY_NONE) {}
-	operator KEY() const { return mKey; }
-
-private:
-	KEY mKey;
-};
-
-struct WhichKeysym: public StringLookup<KeyProxy>
-{
-	WhichKeysym(): StringLookup<KeyProxy>("keysym")
-	{
-		add("RETURN",		KEY_RETURN);
-		add("LEFT",			KEY_LEFT);
-		add("RIGHT",		KEY_RIGHT);
-		add("UP",			KEY_UP);
-		add("DOWN",			KEY_DOWN);
-		add("ESCAPE",		KEY_ESCAPE);
-		add("BACKSPACE",	KEY_BACKSPACE);
-		add("DELETE",		KEY_DELETE);
-		add("SHIFT",		KEY_SHIFT);
-		add("CONTROL",		KEY_CONTROL);
-		add("ALT",			KEY_ALT);
-		add("HOME",			KEY_HOME);
-		add("END",			KEY_END);
-		add("PAGE_UP",		KEY_PAGE_UP);
-		add("PAGE_DOWN",	KEY_PAGE_DOWN);
-		add("HYPHEN",		KEY_HYPHEN);
-		add("EQUALS",		KEY_EQUALS);
-		add("INSERT",		KEY_INSERT);
-		add("CAPSLOCK",		KEY_CAPSLOCK);
-		add("TAB",			KEY_TAB);
-		add("ADD",			KEY_ADD);
-		add("SUBTRACT",		KEY_SUBTRACT);
-		add("MULTIPLY",		KEY_MULTIPLY);
-		add("DIVIDE",		KEY_DIVIDE);
-		add("F1",			KEY_F1);
-		add("F2",			KEY_F2);
-		add("F3",			KEY_F3);
-		add("F4",			KEY_F4);
-		add("F5",			KEY_F5);
-		add("F6",			KEY_F6);
-		add("F7",			KEY_F7);
-		add("F8",			KEY_F8);
-		add("F9",			KEY_F9);
-		add("F10",			KEY_F10);
-		add("F11",			KEY_F11);
-		add("F12",			KEY_F12);
-
-		add("PAD_UP",		KEY_PAD_UP);
-		add("PAD_DOWN",		KEY_PAD_DOWN);
-		add("PAD_LEFT",		KEY_PAD_LEFT);
-		add("PAD_RIGHT",	KEY_PAD_RIGHT);
-		add("PAD_HOME",		KEY_PAD_HOME);
-		add("PAD_END",		KEY_PAD_END);
-		add("PAD_PGUP",		KEY_PAD_PGUP);
-		add("PAD_PGDN",		KEY_PAD_PGDN);
-		add("PAD_CENTER",	KEY_PAD_CENTER); // the 5 in the middle
-		add("PAD_INS",		KEY_PAD_INS);
-		add("PAD_DEL",		KEY_PAD_DEL);
-		add("PAD_RETURN",	KEY_PAD_RETURN);
-		add("PAD_ADD",		KEY_PAD_ADD); // not used
-		add("PAD_SUBTRACT", KEY_PAD_SUBTRACT); // not used
-		add("PAD_MULTIPLY", KEY_PAD_MULTIPLY); // not used
-		add("PAD_DIVIDE",	KEY_PAD_DIVIDE); // not used
-
-		add("BUTTON0",		KEY_BUTTON0);
-		add("BUTTON1",		KEY_BUTTON1);
-		add("BUTTON2",		KEY_BUTTON2);
-		add("BUTTON3",		KEY_BUTTON3);
-		add("BUTTON4",		KEY_BUTTON4);
-		add("BUTTON5",		KEY_BUTTON5);
-		add("BUTTON6",		KEY_BUTTON6);
-		add("BUTTON7",		KEY_BUTTON7);
-		add("BUTTON8",		KEY_BUTTON8);
-		add("BUTTON9",		KEY_BUTTON9);
-		add("BUTTON10",		KEY_BUTTON10);
-		add("BUTTON11",		KEY_BUTTON11);
-		add("BUTTON12",		KEY_BUTTON12);
-		add("BUTTON13",		KEY_BUTTON13);
-		add("BUTTON14",		KEY_BUTTON14);
-		add("BUTTON15",		KEY_BUTTON15);
-	}
-};
-static WhichKeysym keysyms;
-
-struct WhichMask: public StringLookup<MASK>
-{
-	WhichMask(): StringLookup<MASK>("shift mask")
-	{
-		add("NONE",			MASK_NONE);
-		add("CONTROL",		MASK_CONTROL); // Mapped to cmd on Macs
-		add("ALT",			MASK_ALT);
-		add("SHIFT",		MASK_SHIFT);
-		add("MAC_CONTROL",	MASK_MAC_CONTROL); // Un-mapped Ctrl key on Macs, not used on Windows
-	}
-};
-static WhichMask masks;
-
-static MASK getMask(const LLSD& event)
-{
-	MASK mask(MASK_NONE);
-	LLSD masknames(event["mask"]);
-	for (LLSD::array_const_iterator ai(masknames.beginArray()), aend(masknames.endArray());
-		 ai != aend; ++ai)
-	{
-		mask |= masks.lookup(*ai);
-	}
-	return mask;
-}
-
-static KEY getKEY(const LLSD& event)
-{
-    if (event.has("keysym"))
-	{
-		return keysyms.lookup(event["keysym"]);
-	}
-	else if (event.has("keycode"))
-	{
-		return KEY(event["keycode"].asInteger());
-	}
-	else
-	{
-		return KEY(event["char"].asString()[0]);
-	}
-}
-
-void LLWindowListener::keyDown(LLSD const & evt)
-{
-	mKbGetter()->handleTranslatedKeyDown(getKEY(evt), getMask(evt));
-}
-
-void LLWindowListener::keyUp(LLSD const & evt)
-{
-	mKbGetter()->handleTranslatedKeyUp(getKEY(evt), getMask(evt));
-}
-
-// for WhichButton
-typedef BOOL (LLWindowCallbacks::*MouseFunc)(LLWindow *, LLCoordGL, MASK);
-struct Actions
-{
-	Actions(const MouseFunc& d, const MouseFunc& u): down(d), up(u), valid(true) {}
-	Actions(): valid(false) {}
-	MouseFunc down, up;
-	bool valid;
-};
-
-struct WhichButton: public StringLookup<Actions>
-{
-	WhichButton(): StringLookup<Actions>("mouse button")
-	{
-		add("LEFT",		Actions(&LLWindowCallbacks::handleMouseDown,
-								&LLWindowCallbacks::handleMouseUp));
-		add("RIGHT",	Actions(&LLWindowCallbacks::handleRightMouseDown,
-								&LLWindowCallbacks::handleRightMouseUp));
-		add("MIDDLE",	Actions(&LLWindowCallbacks::handleMiddleMouseDown,
-								&LLWindowCallbacks::handleMiddleMouseUp));
-	}
-};
-static WhichButton buttons;
-
-static LLCoordGL getPos(const LLSD& event)
-{
-	return LLCoordGL(event["x"].asInteger(), event["y"].asInteger());
-}
-
-void LLWindowListener::mouseDown(LLSD const & evt)
-{
-	Actions actions(buttons.lookup(evt["button"]));
-	if (actions.valid)
-	{
-		(mWindow->*(actions.down))(NULL, getPos(evt), getMask(evt));
-	}
-}
-
-void LLWindowListener::mouseUp(LLSD const & evt)
-{
-	Actions actions(buttons.lookup(evt["button"]));
-	if (actions.valid)
-	{
-		(mWindow->*(actions.up))(NULL, getPos(evt), getMask(evt));
-	}
-}
-
-void LLWindowListener::mouseMove(LLSD const & evt)
-{
-	mWindow->handleMouseMove(NULL, getPos(evt), getMask(evt));
-}
-
-void LLWindowListener::mouseScroll(LLSD const & evt)
-{
-	S32 clicks = evt["clicks"].asInteger();
-
-	mWindow->handleScrollWheel(NULL, clicks);
-}
-
diff --git a/indra/llxml/llcontrol.h b/indra/llxml/llcontrol.h
index 050d4b729f5a4aa3b3a3755e2181efbd9e8ee8d3..bf38a8b062dbcddacdf34e3faa751abe0ecf3960 100644
--- a/indra/llxml/llcontrol.h
+++ b/indra/llxml/llcontrol.h
@@ -185,9 +185,10 @@ class LLControlGroup : public LLInstanceTracker<LLControlGroup, std::string>
 	ctrl_name_table_t mNameTable;
 	std::string mTypeString[TYPE_COUNT];
 
+public:
 	eControlType typeStringToEnum(const std::string& typestr);
 	std::string typeEnumToString(eControlType typeenum);	
-public:
+
 	LLControlGroup(const std::string& name);
 	~LLControlGroup();
 	void cleanup();
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 4024e93b3311005025671405d49c4ee7b78e25ef..7288bf6933889f1e9c984b8102c9c822d0919fc9 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -604,6 +604,7 @@ set(viewer_SOURCE_FILES
     llweb.cpp
     llwebsharing.cpp
     llwind.cpp
+    llwindowlistener.cpp
     llwlanimator.cpp
     llwldaycycle.cpp
     llwlhandlers.cpp
@@ -1163,6 +1164,7 @@ set(viewer_HEADER_FILES
     llweb.h
     llwebsharing.h
     llwind.h
+    llwindowlistener.h
     llwlanimator.h
     llwldaycycle.h
     llwlhandlers.h
diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt
index 6ed4e3b7f7d9afabd182d15291ddcd60383ce0a3..b7d951e01859a98dc9ccb185b9ea1da25c2ad44e 100644
--- a/indra/newview/gpu_table.txt
+++ b/indra/newview/gpu_table.txt
@@ -5,6 +5,10 @@
 // against driver strings, a class number, and whether we claim
 // to support them or not.
 //
+// Case is not significant in either the regular expressions or the
+// driver strings; the recognizer code lowercases both before using
+// them.
+//
 // If you modify this table, use the (perl) gpu_table_tester
 // to compare the results of recognizing known cards (it is easy
 // to mess this up by putting things in the wrong order):
@@ -12,13 +16,13 @@
 // perl ../../scripts/gpu_table_tester -g gpu_table.txt tests/gpus_seen.txt | diff - tests/gpus_results.txt
 //
 // Format:
-//   Fields are separated by one or more tab (not space) characters
-//   <recognizer name>	<regular expression>	<class>		<supported>
+//	 Fields are separated by one or more tab (not space) characters
+//	 <recognizer name>	<regular expression>	<class>		<supported>
 //
 // 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.
+//		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.
 //
 // Supported Number:
@@ -39,7 +43,8 @@ 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 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
@@ -51,6 +56,7 @@ 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
@@ -59,12 +65,17 @@ 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 X1xxx				.*ATI.*X1.*									0		1
-ATI Radeon X13xx				.*ATI.*Diamond X13.*						1		1
-ATI Radeon X16xx				.*ATI.*Diamond X16.*						1		1
-ATI Radeon X19xx				.*ATI.*Diamond X19.*						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
@@ -74,8 +85,9 @@ 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 9800 GT				.*ATI.*Geforce 9800 *GT						2		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
@@ -85,168 +97,156 @@ 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 Mobility Radeon 4100		.*ATI.*(Mobility|MOBILITY).*41.*			0		1
-ATI Mobility Radeon 7xxx		.*ATI.*(Mobility|MOBILITY).*Radeon 7.*		0		1
-ATI Mobility Radeon 8xxx		.*ATI.*(Mobility|MOBILITY).*Radeon 8.*		0		1
-ATI Mobility Radeon 9800		.*ATI.*(Mobility|MOBILITY).*98.*			1		1
-ATI Mobility Radeon 9700		.*ATI.*(Mobility|MOBILITY).*97.*			1		1
-ATI Mobility Radeon 9600		.*ATI.*(Mobility|MOBILITY).*96.*			0		1
-ATI Mobility Radeon HD 530v		.*ATI.*(Mobility|MOBILITY).*HD *530v.*		1		1
-ATI Mobility Radeon HD 540v		.*ATI.*(Mobility|MOBILITY).*HD *540v.*		2		1
-ATI Mobility Radeon HD 545v		.*ATI.*(Mobility|MOBILITY).*HD *545v.*		2		1
-ATI Mobility Radeon HD 550v		.*ATI.*(Mobility|MOBILITY).*HD *550v.*		2		1
-ATI Mobility Radeon HD 560v		.*ATI.*(Mobility|MOBILITY).*HD *560v.*		2		1
-ATI Mobility Radeon HD 565v		.*ATI.*(Mobility|MOBILITY).*HD *565v.*		2		1
-ATI Mobility Radeon HD 2300		.*ATI.*(Mobility|MOBILITY).*HD *23.*		1		1
-ATI Mobility Radeon HD 2400		.*ATI.*(Mobility|MOBILITY).*HD *24.*		1		1
-ATI Mobility Radeon HD 2600		.*ATI.*(Mobility|MOBILITY).*HD *26.*		3		1
-ATI Mobility Radeon HD 2700		.*ATI.*(Mobility|MOBILITY).*HD *27.*		3		1
-ATI Mobility Radeon HD 3100		.*ATI.*(Mobility|MOBILITY).*HD *31.*		0		1
-ATI Mobility Radeon HD 3200		.*ATI.*(Mobility|MOBILITY).*HD *32.*		0		1
-ATI Mobility Radeon HD 3400		.*ATI.*(Mobility|MOBILITY).*HD *34.*		2		1
-ATI Mobility Radeon HD 3600		.*ATI.*(Mobility|MOBILITY).*HD *36.*		3		1
-ATI Mobility Radeon HD 3800		.*ATI.*(Mobility|MOBILITY).*HD *38.*		3		1
-ATI Mobility Radeon HD 4200		.*ATI.*(Mobility|MOBILITY).*HD *42.*		2		1
-ATI Mobility Radeon HD 4300		.*ATI.*(Mobility|MOBILITY).*HD *43.*		2		1
-ATI Mobility Radeon HD 4500		.*ATI.*(Mobility|MOBILITY).*HD *45.*		3		1
-ATI Mobility Radeon HD 4600		.*ATI.*(Mobility|MOBILITY).*HD *46.*		3		1
-ATI Mobility Radeon HD 4800		.*ATI.*(Mobility|MOBILITY).*HD *48.*		3		1
-ATI Mobility Radeon HD 5100		.*ATI.*(Mobility|MOBILITY).*HD *51.*		2		1
-ATI Mobility Radeon HD 5300		.*ATI.*(Mobility|MOBILITY).*HD *53.*		2		1
-ATI Mobility Radeon HD 5400		.*ATI.*(Mobility|MOBILITY).*HD *54.*		2		1
-ATI Mobility Radeon HD 5500		.*ATI.*(Mobility|MOBILITY).*HD *55.*		2		1
-ATI Mobility Radeon HD 5600		.*ATI.*(Mobility|MOBILITY).*HD *56.*		2		1
-ATI Mobility Radeon HD 5700		.*ATI.*(Mobility|MOBILITY).*HD *57.*		3		1
-ATI Mobility Radeon HD 6200		.*ATI.*(Mobility|MOBILITY).*HD *62.*		2		1
-ATI Mobility Radeon HD 6300		.*ATI.*(Mobility|MOBILITY).*HD *63.*		2		1
-ATI Mobility Radeon HD 6400M	.*ATI.*(Mobility|MOBILITY).*HD *64.*		3		1
-ATI Mobility Radeon HD 6500M	.*ATI.*(Mobility|MOBILITY).*HD *65.*		3		1
-ATI Mobility Radeon HD 6600M	.*ATI.*(Mobility|MOBILITY).*HD *66.*		3		1
-ATI Mobility Radeon HD 6700M	.*ATI.*(Mobility|MOBILITY).*HD *67.*		3		1
-ATI Mobility Radeon HD 6800M	.*ATI.*(Mobility|MOBILITY).*HD *68.*		3		1
-ATI Mobility Radeon HD 6900M	.*ATI.*(Mobility|MOBILITY).*HD *69.*		3		1
-ATI Mobility Radeon X1xxx		.*ATI.*(Mobility|MOBILITY).*X1.*			0		1
-ATI Mobility Radeon X2xxx		.*ATI.*(Mobility|MOBILITY).*X2.*			0		1
-ATI Mobility Radeon X3xx		.*ATI.*(Mobility|MOBILITY).*X3.*			1		1
-ATI Mobility Radeon X6xx		.*ATI.*(Mobility|MOBILITY).*X6.*			1		1
-ATI Mobility Radeon X7xx		.*ATI.*(Mobility|MOBILITY).*X7.*			1		1
-ATI Mobility Radeon Xxxx		.*ATI.*(Mobility|MOBILITY).*X.*				0		1
-ATI Mobility Radeon				.*ATI.*(Mobility|MOBILITY).*				0		1
-ATI Radeon HD 2300				.*ATI.*(Radeon|RADEON) HD *23.*				0		1
-ATI Radeon HD 2400				.*ATI.*(Radeon|RADEON) HD *24.*				1		1
-ATI Radeon HD 2600				.*ATI.*(Radeon|RADEON) HD *26.*				2		1
-ATI Radeon HD 2900				.*ATI.*(Radeon|RADEON) HD *29.*				3		1
-ATI Radeon HD 3000				.*ATI.*(Radeon|RADEON) HD *30.*				0		1
-ATI Radeon HD 3100				.*ATI.*(Radeon|RADEON) HD *31.*				1		1
-ATI Radeon HD 3200				.*ATI.*(Radeon|RADEON) HD *32.*				0		1
-ATI Radeon HD 3300				.*ATI.*(Radeon|RADEON) HD *33.*				1		1
-ATI Radeon HD 3400				.*ATI.*(Radeon|RADEON) HD *34.*				1		1
-ATI Radeon HD 3500				.*ATI.*(Radeon|RADEON) HD *35.*				1		1
-ATI Radeon HD 3600				.*ATI.*(Radeon|RADEON) HD *36.*				3		1
-ATI Radeon HD 3700				.*ATI.*(Radeon|RADEON) HD *37.*				3		1
-ATI Radeon HD 3800				.*ATI.*(Radeon|RADEON) HD *38.*				3		1
-ATI Radeon HD 4200				.*ATI.*(Radeon|RADEON) HD *42.*				1		1
-ATI Radeon HD 4300				.*ATI.*(Radeon|RADEON) HD *43.*				1		1
-ATI Radeon HD 4400				.*ATI.*(Radeon|RADEON) HD *44.*				1		1
-ATI Radeon HD 4500				.*ATI.*(Radeon|RADEON) HD *45.*				3		1
-ATI Radeon HD 4600				.*ATI.*(Radeon|RADEON) HD *46.*				3		1
-ATI Radeon HD 4700				.*ATI.*(Radeon|RADEON) HD *47.*				3		1
-ATI Radeon HD 4800				.*ATI.*(Radeon|RADEON) HD *48.*				3		1
-ATI Radeon HD 5400				.*ATI.*(Radeon|RADEON) HD *54.*				3		1
-ATI Radeon HD 5500				.*ATI.*(Radeon|RADEON) HD *55.*				3		1
-ATI Radeon HD 5600				.*ATI.*(Radeon|RADEON) HD *56.*				3		1
-ATI Radeon HD 5700				.*ATI.*(Radeon|RADEON) HD *57.*				3		1
-ATI Radeon HD 5800				.*ATI.*(Radeon|RADEON) HD *58.*				3		1
-ATI Radeon HD 5900				.*ATI.*(Radeon|RADEON) HD *59.*				3		1
-ATI Radeon HD 6200				.*ATI.*(Radeon|RADEON) HD *62.*				2		1
-ATI Radeon HD 6300				.*ATI.*(Radeon|RADEON) HD *63.*				2		1
-ATI Radeon HD 6400				.*ATI.*(Radeon|RADEON) HD *64.*				3		1
-ATI Radeon HD 6500				.*ATI.*(Radeon|RADEON) HD *65.*				3		1
-ATI Radeon HD 66xx				.*ATI.*(Radeon|RADEON) HD *66.*				3		1
-ATI Radeon HD 6700				.*ATI.*(Radeon|RADEON) HD *67.*				3		1
-ATI Radeon HD 6800				.*ATI.*(Radeon|RADEON) HD *68.*				3		1
-ATI Radeon HD 6900				.*ATI.*(Radeon|RADEON) HD *69.*				3		1
-ATI Radeon OpenGL				.*ATI.*(Radeon|RADEON) OpenGL.* 			0		0
-ATI Radeon 2100					.*ATI.*(Radeon|RADEON) 21.*					0		1
-ATI Radeon 3000					.*ATI.*(Radeon|RADEON) 30.*					0		1
-ATI Radeon 3100					.*ATI.*(Radeon|RADEON) 31.*					1		1
-ATI Radeon 5xxx					.*ATI.*(Radeon|RADEON) 5.*					3		1
-ATI Radeon 7xxx					.*ATI.*(Radeon|RADEON) 7.*					0		1
-ATI Radeon 8xxx					.*ATI.*(Radeon|RADEON) 8.*					0		1
-ATI Radeon 9000					.*ATI.*(Radeon|RADEON) 90.*					0		1
-ATI Radeon 9100					.*ATI.*(Radeon|RADEON) 91.*					0		1
-ATI Radeon 9200					.*ATI.*(Radeon|RADEON) 92.*					0		1
-ATI Radeon 9500					.*ATI.*(Radeon|RADEON) 95.*					0		1
-ATI Radeon 9600					.*ATI.*(Radeon|RADEON) 96.*					0		1
-ATI Radeon 9700					.*ATI.*(Radeon|RADEON) 97.*					1		1
-ATI Radeon 9800					.*ATI.*(Radeon|RADEON) 98.*					1		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.*					1		1
+ATI Mobility Radeon HD 2400		.*ATI.*Mobility.*HD *24.*					1		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..						0		1
+ATI Radeon HD 2400				.*ATI.*Radeon HD *24..						1		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..						1		1
+ATI Radeon HD 3400				.*ATI.*Radeon HD *34..						1		1
+ATI Radeon HD 3500				.*ATI.*Radeon HD *35..						1		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..						1		1
+ATI Radeon HD 4400				.*ATI.*Radeon HD *44..						1		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|RADEON) *RX80.*				2		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|RADEON).*VE.*				0		0
-ATI Radeon X1000				.*ATI.*(Radeon|RADEON) *X10.*				0		1
-ATI Radeon X1200				.*ATI.*(Radeon|RADEON) *X12.*				0		1
-ATI Radeon X1300				.*ATI.*(Radeon|RADEON) *X13.*				1		1
-ATI Radeon X1400				.*ATI.*(Radeon|RADEON) *X14.*				1		1
-ATI Radeon X1500				.*ATI.*(Radeon|RADEON) *X15.*				1		1
-ATI Radeon X1600				.*ATI.*(Radeon|RADEON) *X16.*				1		1
-ATI Radeon X1700				.*ATI.*(Radeon|RADEON) *X17.*				1		1
-ATI Radeon X1800				.*ATI.*(Radeon|RADEON) *X18.*				3		1
-ATI Radeon X1900				.*ATI.*(Radeon|RADEON) *X19.*				3		1
-ATI Radeon X300					.*ATI.*(Radeon|RADEON) *X3.*				0		1
-ATI Radeon X400					.*ATI.*(Radeon|RADEON) X4.*					0		1
-ATI Radeon X500					.*ATI.*(Radeon|RADEON) X5.*					0		1
-ATI Radeon X600					.*ATI.*(Radeon|RADEON) X6.*					1		1
-ATI Radeon X700					.*ATI.*(Radeon|RADEON) X7.*					1		1
-ATI Radeon X800					.*ATI.*(Radeon|RADEON) X8.*					2		1
-ATI Radeon X900					.*ATI.*(Radeon|RADEON) X9.*					2		1
-ATI Radeon Xpress				.*ATI.*(Radeon|RADEON) (Xpress|XPRESS).*	0		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 R350 (9800)					.*(ATI)?.*R350.*							1		1
-ATI R580 (X1900)				.*(ATI)?.*R580.*							3		1
-ATI RC410 (Xpress 200)			.*(ATI)?.*RC410.*							0		0
-ATI RS48x (Xpress 200x)			.*(ATI)?.*RS48.*							0		0
-ATI RS600 (Xpress 3200)			.*(ATI)?.*RS600.*							0		0
-ATI RV350 (9600)				.*(ATI)?.*RV350.*							0		1
-ATI RV370 (X300)				.*(ATI)?.*RV370.*							0		1
-ATI RV410 (X700)				.*(ATI)?.*RV410.*							1		1
-ATI RV515						.*(ATI)?.*RV515.*							1		1
-ATI RV570 (X1900 GT/PRO)		.*(ATI)?.*RV570.*							3		1
-ATI RV380						.*(ATI)?.*RV380.*							0		1
-ATI RV530						.*(ATI)?.*RV530.*							1		1
-ATI RX480 (Xpress 200P)			.*(ATI)?.*RX480.*							0		1
-ATI RX700						.*(ATI)?.*RX700.*							1		1
-AMD ANTILLES (HD 6990)			.*(AMD|ATI).*(Antilles|ANTILLES).*			3		1
-AMD BARTS (HD 6800)				.*(AMD|ATI).*(Barts|BARTS).*				3		1
-AMD CAICOS (HD 6400)			.*(AMD|ATI).*(Caicos|CAICOS).*				3		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|CEDAR).*				2		1
-AMD CYPRESS (HD 5800)			.*(AMD|ATI).*(Cypress|CYPRESS).*			3		1
-AMD HEMLOCK (HD 5970)			.*(AMD|ATI).*(Hemlock|HEMLOCK).*			3		1
-AMD JUNIPER (HD 5700)			.*(AMD|ATI).*(Juniper|JUNIPER).*			3		1
-AMD PARK						.*(AMD|ATI).*(Park|PARK).*					3		1
-AMD REDWOOD (HD 5500/5600)		.*(AMD|ATI).*(Redwood|REDWOOD).*			3		1
-AMD TURKS (HD 6500/6600)		.*(AMD|ATI).*(Turks|TURKS).*				3		1
-AMD RS780 (HD 3200)				.*(AMD|ATI)?.*RS780.*						0		1
-AMD RS880 (HD 4200)				.*(AMD|ATI)?.*RS880.*						1		1
-AMD RV610 (HD 2400)				.*(AMD|ATI)?.*RV610.*						1		1
-AMD RV620 (HD 3400)				.*(AMD|ATI)?.*RV620.*						1		1
-AMD RV630 (HD 2600)				.*(AMD|ATI)?.*RV630.*						2		1
-AMD RV635 (HD 3600)				.*(AMD|ATI)?.*RV635.*						3		1
-AMD RV670 (HD 3800)				.*(AMD|ATI)?.*RV670.*						3		1
-AMD R680 (HD 3870 X2)			.*(AMD|ATI)?.*R680.*						3		1
-AMD R700 (HD 4800 X2)			.*(AMD|ATI)?.*R700.*						3		1
-AMD RV710 (HD 4300)				.*(AMD|ATI)?.*RV710.*						1		1
-AMD RV730 (HD 4600)				.*(AMD|ATI)?.*RV730.*						3		1
-AMD RV740 (HD 4700)				.*(AMD|ATI)?.*RV740.*						3		1
-AMD RV770 (HD 4800)				.*(AMD|ATI)?.*RV770.*						3		1
-AMD RV790 (HD 4800)				.*(AMD|ATI)?.*RV790.*						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|RADEON) ?DDR.*				0		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
@@ -255,8 +255,8 @@ 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)					.*(ATI)?.*R300.*							1		1
-ATI Radeon 						.*ATI.*Radeon.*								0		1
+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
@@ -273,13 +273,13 @@ 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 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 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
@@ -288,204 +288,219 @@ 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 *(GeForce)? *(G)? ?100M.*			0		1
-NVIDIA G100						.*NVIDIA *(GeForce)? *(G)? ?100.*			0		1
-NVIDIA G102M					.*NVIDIA *(GeForce)? *(G)? ?102M.*			0		1
-NVIDIA G103M					.*NVIDIA *(GeForce)? *(G)? ?103M.*			0		1
-NVIDIA G105M					.*NVIDIA *(GeForce)? *(G)? ?105M.*			0		1
-NVIDIA G 110M					.*NVIDIA *(GeForce)? *(G)? ?110M.*			0		1
-NVIDIA G 120M					.*NVIDIA *(GeForce)? *(G)? ?120M.*			1		1
-NVIDIA G 200					.*NVIDIA *(GeForce)? *(G)? ?200(M)?.*		0		1
-NVIDIA G 205M					.*NVIDIA *(GeForce)? *(G)? ?205(M)?.*		0		1
-NVIDIA G 210					.*NVIDIA *(GeForce)? *(G)? ?210(M)?.*		1		1
-NVIDIA 305M						.*NVIDIA *(GeForce)? *(G)? ?305(M)?.*		1		1
-NVIDIA G 310M					.*NVIDIA *(GeForce)? *(G)? ?310(M)?.*		2		1
-NVIDIA G 315					.*NVIDIA *(GeForce)? *(G)? ?315(M)?.*		2		1
-NVIDIA G 320M					.*NVIDIA *(GeForce)? *(G)? ?320(M)?.*		2		1
-NVIDIA G 405					.*NVIDIA *(GeForce)? *(G)? ?405(M)?.*		1		1
-NVIDIA G 410M					.*NVIDIA *(GeForce)? *(G)? ?410(M)?.*		1		1
-NVIDIA GT 120M					.*NVIDIA.*(GeForce)? *GT *120(M)?.*			2		1
-NVIDIA GT 120					.*NVIDIA.*GT.*120							2		1
-NVIDIA GT 130M					.*NVIDIA.*(GeForce)? *GT *130(M)?.*			2		1
-NVIDIA GT 140M					.*NVIDIA.*(GeForce)? *GT *140(M)?.*			2		1
-NVIDIA GT 150M					.*NVIDIA.*(GeForce)? *GT(S)? *150(M)?.*		2		1
-NVIDIA GT 160M					.*NVIDIA.*(GeForce)? *GT *160(M)?.*			2		1
-NVIDIA GT 220M					.*NVIDIA.*(GeForce)? *GT *220(M)?.*			2		1
-NVIDIA GT 230M					.*NVIDIA.*(GeForce)? *GT *230(M)?.*			2		1
-NVIDIA GT 240M					.*NVIDIA.*(GeForce)? *GT *240(M)?.*			2		1
-NVIDIA GT 250M					.*NVIDIA.*(GeForce)? *GT *250(M)?.*			2		1
-NVIDIA GT 260M					.*NVIDIA.*(GeForce)? *GT *260(M)?.*			2		1
-NVIDIA GT 320M					.*NVIDIA.*(GeForce)? *GT *320(M)?.*			2		1
-NVIDIA GT 325M					.*NVIDIA.*(GeForce)? *GT *325(M)?.*			0		1
-NVIDIA GT 330M					.*NVIDIA.*(GeForce)? *GT *330(M)?.*			3		1
-NVIDIA GT 335M					.*NVIDIA.*(GeForce)? *GT *335(M)?.*			1		1
-NVIDIA GT 340M					.*NVIDIA.*(GeForce)? *GT *340(M)?.*			2		1
-NVIDIA GT 415M					.*NVIDIA.*(GeForce)? *GT *415(M)?.*			2		1
-NVIDIA GT 420M					.*NVIDIA.*(GeForce)? *GT *420(M)?.*			2		1
-NVIDIA GT 425M					.*NVIDIA.*(GeForce)? *GT *425(M)?.*			3		1
-NVIDIA GT 430M					.*NVIDIA.*(GeForce)? *GT *430(M)?.*			3		1
-NVIDIA GT 435M					.*NVIDIA.*(GeForce)? *GT *435(M)?.*			3		1
-NVIDIA GT 440M					.*NVIDIA.*(GeForce)? *GT *440(M)?.*			3		1
-NVIDIA GT 445M					.*NVIDIA.*(GeForce)? *GT *445(M)?.*			3		1
-NVIDIA GT 450M					.*NVIDIA.*(GeForce)? *GT *450(M)?.*			3		1
-NVIDIA GT 520M					.*NVIDIA.*(GeForce)? *GT *520(M)?.*			3		1
-NVIDIA GT 525M					.*NVIDIA.*(GeForce)? *GT *525(M)?.*			3		1
-NVIDIA GT 540M					.*NVIDIA.*(GeForce)? *GT *540(M)?.*			3		1
-NVIDIA GT 550M					.*NVIDIA.*(GeForce)? *GT *550(M)?.*			3		1
-NVIDIA GT 555M					.*NVIDIA.*(GeForce)? *GT *555(M)?.*			3		1
-NVIDIA GTS 160M					.*NVIDIA.*(GeForce)? *GT(S)? *160(M)?.*		2		1
-NVIDIA GTS 240					.*NVIDIA.*(GeForce)? *GTS *24.*				3		1
-NVIDIA GTS 250					.*NVIDIA.*(GeForce)? *GTS *25.*				3		1
-NVIDIA GTS 350M					.*NVIDIA.*(GeForce)? *GTS *350M.*			3		1
-NVIDIA GTS 360M					.*NVIDIA.*(GeForce)? *GTS *360M.*			3		1
-NVIDIA GTS 360					.*NVIDIA.*(GeForce)? *GTS *360.*			3		1
-NVIDIA GTS 450					.*NVIDIA.*(GeForce)? *GTS *45.*				3		1
-NVIDIA GTX 260					.*NVIDIA.*(GeForce)? *GTX *26.*				3		1
-NVIDIA GTX 275					.*NVIDIA.*(GeForce)? *GTX *275.*			3		1
-NVIDIA GTX 270					.*NVIDIA.*(GeForce)? *GTX *27.*				3		1
-NVIDIA GTX 285					.*NVIDIA.*(GeForce)? *GTX *285.*			3		1
-NVIDIA GTX 280					.*NVIDIA.*(GeForce)? *GTX *280.*			3		1
-NVIDIA GTX 290					.*NVIDIA.*(GeForce)? *GTX *290.*			3		1
-NVIDIA GTX 295					.*NVIDIA.*(GeForce)? *GTX *295.*			3		1
-NVIDIA GTX 460M					.*NVIDIA.*(GeForce)? *GTX *460M.*			3		1
-NVIDIA GTX 465					.*NVIDIA.*(GeForce)? *GTX *465.*			3		1
-NVIDIA GTX 460					.*NVIDIA.*(GeForce)? *GTX *46.*				3		1
-NVIDIA GTX 470M					.*NVIDIA.*(GeForce)? *GTX *470M.*			3		1
-NVIDIA GTX 470					.*NVIDIA.*(GeForce)? *GTX *47.*				3		1
-NVIDIA GTX 480M					.*NVIDIA.*(GeForce)? *GTX *480M.*			3		1
-NVIDIA GTX 485M					.*NVIDIA.*(GeForce)? *GTX *485M.*			3		1
-NVIDIA GTX 480					.*NVIDIA.*(GeForce)? *GTX *48.*				3		1
-NVIDIA GTX 530					.*NVIDIA.*(GeForce)? *GTX *53.*				3		1
-NVIDIA GTX 550					.*NVIDIA.*(GeForce)? *GTX *55.*				3		1
-NVIDIA GTX 560					.*NVIDIA.*(GeForce)? *GTX *56.*				3		1
-NVIDIA GTX 570					.*NVIDIA.*(GeForce)? *GTX *57.*				3		1
-NVIDIA GTX 580M					.*NVIDIA.*(GeForce)? *GTX *580M.*			3		1
-NVIDIA GTX 580					.*NVIDIA.*(GeForce)? *GTX *58.*				3		1
-NVIDIA GTX 590					.*NVIDIA.*(GeForce)? *GTX *59.*				3		1
-NVIDIA C51						.*NVIDIA.*(GeForce)? *C51.*					0		1
-NVIDIA G72						.*NVIDIA.*(GeForce)? *G72.*					1		1
-NVIDIA G73						.*NVIDIA.*(GeForce)? *G73.*					1		1
-NVIDIA G84						.*NVIDIA.*(GeForce)? *G84.*					2		1
-NVIDIA G86						.*NVIDIA.*(GeForce)? *G86.*					3		1
-NVIDIA G92						.*NVIDIA.*(GeForce)? *G92.*					3		1
+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.*						1		1
-NVIDIA GeForce 8400M			.*NVIDIA.*GeForce 8400M.*					1		1
-NVIDIA GeForce 8400				.*NVIDIA.*GeForce 84.*						1		1
-NVIDIA GeForce 8500				.*NVIDIA.*GeForce 85.*						3		1
-NVIDIA GeForce 8600M			.*NVIDIA.*GeForce 8600M.*					1		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.*					1		1
-NVIDIA GeForce 9300				.*NVIDIA.*GeForce 93.*						1		1
-NVIDIA GeForce 9400M			.*NVIDIA.*GeForce 9400M.*					1		1
-NVIDIA GeForce 9400				.*NVIDIA.*GeForce 94.*						1		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 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.*						1		1
+NVIDIA GeForce 8400M			.*NVIDIA .*GeForce 8400M.*					1		1
+NVIDIA GeForce 8400				.*NVIDIA .*GeForce 84.*						1		1
+NVIDIA GeForce 8500				.*NVIDIA .*GeForce 85.*						3		1
+NVIDIA GeForce 8600M			.*NVIDIA .*GeForce 8600M.*					1		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.*					1		1
+NVIDIA GeForce 9300				.*NVIDIA .*GeForce 93.*						1		1
+NVIDIA GeForce 9400M			.*NVIDIA .*GeForce 9400M.*					1		1
+NVIDIA GeForce 9400				.*NVIDIA .*GeForce 94.*						1		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 NB9M						.*GeForce NB9M.*							1		1
-NVIDIA NB9P						.*GeForce NB9P.*							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						.*GeForce NV17.*							0		1
-NVIDIA NV34						.*NVIDIA.*NV34.*							0		1
-NVIDIA NV35						.*NVIDIA.*NV35.*							0		1
-NVIDIA NV36						.*GeForce NV36.*							1		1
-NVIDIA NV43						.*NVIDIA *NV43.*							1		1
-NVIDIA NV44						.*NVIDIA *NV44.*							1		1
-NVIDIA nForce					.*NVIDIA *nForce.*							0		0
-NVIDIA MCP78					.*NVIDIA *MCP78.*							1		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(M|D)?.*						3		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(M)?.*						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
@@ -498,16 +513,16 @@ 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 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 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
@@ -517,3 +532,4 @@ 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
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index ccbf6bf932b1ea0096ff80a24b784321f1c18c67..13b62cb019d451d17acb3c1446759a658d8f310a 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -1168,15 +1168,12 @@ class OnWearableItemCreatedCB: public LLInventoryCallback
 	std::vector<LLWearable*> mWearablesAwaitingItems;
 };
 
-void LLAgentWearables::createStandardWearables(BOOL female)
+void LLAgentWearables::createStandardWearables()
 {
-	llwarns << "Creating Standard " << (female ? "female" : "male")
-			<< " Wearables" << llendl;
+	llwarns << "Creating standard wearables" << llendl;
 
 	if (!isAgentAvatarValid()) return;
 
-	gAgentAvatarp->setSex(female ? SEX_FEMALE : SEX_MALE);
-
 	const BOOL create[LLWearableType::WT_COUNT] = 
 		{
 			TRUE,  //LLWearableType::WT_SHAPE
diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h
index 252b812c2785d23c2c9cfe0f325abc62d5260928..01cae3ffd86b1cb59b611655b2bf89d7c5cb434f 100644
--- a/indra/newview/llagentwearables.h
+++ b/indra/newview/llagentwearables.h
@@ -56,7 +56,7 @@ class LLAgentWearables : public LLInitClass<LLAgentWearables>
 	LLAgentWearables();
 	virtual ~LLAgentWearables();
 	void 			setAvatarObject(LLVOAvatarSelf *avatar);
-	void			createStandardWearables(BOOL female); 
+	void			createStandardWearables(); 
 	void			cleanup();
 	void			dump();
 
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index e5369dc2b8c85dfb9884daf318a6b9d2626b30d6..663257042eec1b5358c262875c33b5373da5fdb6 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -2264,6 +2264,85 @@ void LLAppearanceMgr::updateIsDirty()
 	}
 }
 
+// *HACK: Must match name in Library or agent inventory
+const std::string ROOT_GESTURES_FOLDER = "Gestures";
+const std::string COMMON_GESTURES_FOLDER = "Common Gestures";
+const std::string MALE_GESTURES_FOLDER = "Male Gestures";
+const std::string FEMALE_GESTURES_FOLDER = "Female Gestures";
+const std::string SPEECH_GESTURES_FOLDER = "Speech Gestures";
+const std::string OTHER_GESTURES_FOLDER = "Other Gestures";
+
+void LLAppearanceMgr::copyLibraryGestures()
+{
+	llinfos << "Copying library gestures" << llendl;
+
+	// Copy gestures
+	LLUUID lib_gesture_cat_id =
+		gInventory.findCategoryUUIDForType(LLFolderType::FT_GESTURE,false,true);
+	if (lib_gesture_cat_id.isNull())
+	{
+		llwarns << "Unable to copy gestures, source category not found" << llendl;
+	}
+	LLUUID dst_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_GESTURE);
+
+	std::vector<std::string> gesture_folders_to_copy;
+	gesture_folders_to_copy.push_back(MALE_GESTURES_FOLDER);
+	gesture_folders_to_copy.push_back(FEMALE_GESTURES_FOLDER);
+	gesture_folders_to_copy.push_back(COMMON_GESTURES_FOLDER);
+	gesture_folders_to_copy.push_back(SPEECH_GESTURES_FOLDER);
+	gesture_folders_to_copy.push_back(OTHER_GESTURES_FOLDER);
+
+	for(std::vector<std::string>::iterator it = gesture_folders_to_copy.begin();
+		it != gesture_folders_to_copy.end();
+		++it)
+	{
+		std::string& folder_name = *it;
+
+		LLPointer<LLInventoryCallback> cb(NULL);
+
+		// After copying gestures, activate Common, Other, plus
+		// Male and/or Female, depending upon the initial outfit gender.
+		ESex gender = gAgentAvatarp->getSex();
+
+		std::string activate_male_gestures;
+		std::string activate_female_gestures;
+		switch (gender) {
+			case SEX_MALE:
+				activate_male_gestures = MALE_GESTURES_FOLDER;
+				break;
+			case SEX_FEMALE:
+				activate_female_gestures = FEMALE_GESTURES_FOLDER;
+				break;
+			case SEX_BOTH:
+				activate_male_gestures = MALE_GESTURES_FOLDER;
+				activate_female_gestures = FEMALE_GESTURES_FOLDER;
+				break;
+		}
+
+		if (folder_name == activate_male_gestures ||
+			folder_name == activate_female_gestures ||
+			folder_name == COMMON_GESTURES_FOLDER ||
+			folder_name == OTHER_GESTURES_FOLDER)
+		{
+			cb = new ActivateGestureCallback;
+		}
+
+		LLUUID cat_id = findDescendentCategoryIDByName(lib_gesture_cat_id,folder_name);
+		if (cat_id.isNull())
+		{
+			llwarns << "failed to find gesture folder for " << folder_name << llendl;
+		}
+		else
+		{
+			llinfos << "initiating fetch and copy for " << folder_name << " cat_id " << cat_id << llendl;
+			callAfterCategoryFetch(cat_id,
+								   boost::bind(&LLAppearanceMgr::shallowCopyCategory,
+											   &LLAppearanceMgr::instance(),
+											   cat_id, dst_id, cb));
+		}
+	}
+}
+
 void LLAppearanceMgr::autopopulateOutfits()
 {
 	// If this is the very first time the user has logged into viewer2+ (from a legacy viewer, or new account)
@@ -2285,9 +2364,16 @@ void LLAppearanceMgr::autopopulateOutfits()
 void LLAppearanceMgr::onFirstFullyVisible()
 {
 	gAgentAvatarp->debugAvatarVisible();
+
 	// The auto-populate is failing at the point of generating outfits
 	// folders, so don't do the library copy until that is resolved.
 	// autopopulateOutfits();
+
+	// If this is the first time we've ever logged in,
+	// then copy default gestures from the library.
+	if (gAgent.isFirstLogin()) {
+		copyLibraryGestures();
+	}
 }
 
 bool LLAppearanceMgr::updateBaseOutfit()
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index 4b1d95cf2541bb3655b2c2ab500447b27fabc62e..c1d561781d21f947f00b540480f7d3571add79df 100644
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -151,6 +151,9 @@ class LLAppearanceMgr: public LLSingleton<LLAppearanceMgr>
 
 	// Create initial outfits from library.
 	void autopopulateOutfits();
+
+	// Copy initial gestures from library.
+	void copyLibraryGestures();
 	
 	void wearBaseOutfit();
 
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 9fe73fc940397739accf96b2b69af0322f75d0eb..0e27bd81beb2ed893b44e5e8b51013792899822d 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -1376,16 +1376,17 @@ std::string LLItemBridge::getLabelSuffix() const
 	LLInventoryItem* item = getItem();
 	if(item)
 	{
-		// it's a bit confusing to put nocopy/nomod/etc on calling cards.
+		// Any type can have the link suffix...
+		BOOL broken_link = LLAssetType::lookupIsLinkType(item->getType());
+		if (broken_link) return BROKEN_LINK;
+
+		BOOL link = item->getIsLinkType();
+		if (link) return LINK;
+
+		// ...but it's a bit confusing to put nocopy/nomod/etc suffixes on calling cards.
 		if(LLAssetType::AT_CALLINGCARD != item->getType()
 		   && item->getPermissions().getOwner() == gAgent.getID())
 		{
-			BOOL broken_link = LLAssetType::lookupIsLinkType(item->getType());
-			if (broken_link) return BROKEN_LINK;
-
-			BOOL link = item->getIsLinkType();
-			if (link) return LINK;
-
 			BOOL copy = item->getPermissions().allowCopyBy(gAgent.getID());
 			if (!copy)
 			{
diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp
index ceba4a019127624634d7489989f57acfcffb9455..9db175ec2e03b938e529c3926f29d8a7a76032a8 100644
--- a/indra/newview/llinventoryobserver.cpp
+++ b/indra/newview/llinventoryobserver.cpp
@@ -202,6 +202,7 @@ void LLInventoryFetchItemsObserver::changed(U32 mask)
 void fetch_items_from_llsd(const LLSD& items_llsd)
 {
 	if (!items_llsd.size() || gDisconnected) return;
+
 	LLSD body;
 	body[0]["cap_name"] = "FetchInventory2";
 	body[1]["cap_name"] = "FetchLib2";
@@ -212,7 +213,7 @@ void fetch_items_from_llsd(const LLSD& items_llsd)
 			body[0]["items"].append(items_llsd[i]);
 			continue;
 		}
-		if (items_llsd[i]["owner_id"].asString() == ALEXANDRIA_LINDEN_ID.asString())
+		else if (items_llsd[i]["owner_id"].asString() == ALEXANDRIA_LINDEN_ID.asString())
 		{
 			body[1]["items"].append(items_llsd[i]);
 			continue;
@@ -221,19 +222,23 @@ void fetch_items_from_llsd(const LLSD& items_llsd)
 		
 	for (S32 i=0; i<body.size(); i++)
 	{
-		if(!gAgent.getRegion())
+		if (!gAgent.getRegion())
 		{
-			llwarns<<"Agent's region is null"<<llendl;
+			llwarns << "Agent's region is null" << llendl;
 			break;
 		}
-		if (0 >= body[i].size()) continue;
-		std::string url = gAgent.getRegion()->getCapability(body[i]["cap_name"].asString());
 
+		if (0 == body[i]["items"].size()) {
+			lldebugs << "Skipping body with no items to fetch" << llendl;
+			continue;
+		}
+
+		std::string url = gAgent.getRegion()->getCapability(body[i]["cap_name"].asString());
 		if (!url.empty())
 		{
 			body[i]["agent_id"]	= gAgent.getID();
 			LLHTTPClient::post(url, body[i], new LLInventoryModel::fetchInventoryResponder(body[i]));
-			break;
+			continue;
 		}
 
 		LLMessageSystem* msg = gMessageSystem;
@@ -303,7 +308,7 @@ void LLInventoryFetchItemsObserver::startFetch()
 		// It's incomplete, so put it on the incomplete container, and
 		// pack this on the message.
 		mIncomplete.push_back(*it);
-		
+
 		// Prepare the data to fetch
 		LLSD item_entry;
 		item_entry["owner_id"] = owner_id;
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 4511a4806ae0c606216f5c2a900af3df674cedc0..e03ad2db9497e12386f20bfe2214116a4b2a7eff 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -2386,13 +2386,6 @@ void asset_callback_nothing(LLVFS*, const LLUUID&, LLAssetType::EType, void*, S3
 	// nothing
 }
 
-// *HACK: Must match name in Library or agent inventory
-const std::string ROOT_GESTURES_FOLDER = "Gestures";
-const std::string COMMON_GESTURES_FOLDER = "Common Gestures";
-const std::string MALE_GESTURES_FOLDER = "Male Gestures";
-const std::string FEMALE_GESTURES_FOLDER = "Female Gestures";
-const std::string SPEECH_GESTURES_FOLDER = "Speech Gestures";
-const std::string OTHER_GESTURES_FOLDER = "Other Gestures";
 const S32 OPT_CLOSED_WINDOW = -1;
 const S32 OPT_MALE = 0;
 const S32 OPT_FEMALE = 1;
@@ -2421,84 +2414,30 @@ bool callback_choose_gender(const LLSD& notification, const LLSD& response)
 	return false;
 }
 
-void LLStartUp::copyLibraryGestures(const std::string& same_gender_gestures)
-{
-	llinfos << "Copying library gestures" << llendl;
-
-	// Copy gestures
-	LLUUID lib_gesture_cat_id =
-		gInventory.findCategoryUUIDForType(LLFolderType::FT_GESTURE,false,true);
-	if (lib_gesture_cat_id.isNull())
-	{
-		llwarns << "Unable to copy gestures, source category not found" << llendl;
-	}
-	LLUUID dst_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_GESTURE);
-
-	std::vector<std::string> gesture_folders_to_copy;
-	gesture_folders_to_copy.push_back(MALE_GESTURES_FOLDER);
-	gesture_folders_to_copy.push_back(FEMALE_GESTURES_FOLDER);
-	gesture_folders_to_copy.push_back(COMMON_GESTURES_FOLDER);
-	gesture_folders_to_copy.push_back(SPEECH_GESTURES_FOLDER);
-	gesture_folders_to_copy.push_back(OTHER_GESTURES_FOLDER);
-
-	for(std::vector<std::string>::iterator it = gesture_folders_to_copy.begin();
-		it != gesture_folders_to_copy.end();
-		++it)
-	{
-		std::string& folder_name = *it;
-
-		LLPointer<LLInventoryCallback> cb(NULL);
-
-		if (folder_name == same_gender_gestures ||
-			folder_name == COMMON_GESTURES_FOLDER ||
-			folder_name == OTHER_GESTURES_FOLDER)
-		{
-			cb = new ActivateGestureCallback;
-		}
-
-
-		LLUUID cat_id = findDescendentCategoryIDByName(lib_gesture_cat_id,folder_name);
-		if (cat_id.isNull())
-		{
-			llwarns << "failed to find gesture folder for " << folder_name << llendl;
-		}
-		else
-		{
-			llinfos << "initiating fetch and copy for " << folder_name << " cat_id " << cat_id << llendl;
-			LLAppearanceMgr* app_mgr = LLAppearanceMgr::getInstance();
-			callAfterCategoryFetch(cat_id,
-								   boost::bind(&LLAppearanceMgr::shallowCopyCategory,
-											   app_mgr,
-											   cat_id,
-											   dst_id,
-											   cb));
-		}
-	}
-}
-
 void LLStartUp::loadInitialOutfit( const std::string& outfit_folder_name,
 								   const std::string& gender_name )
 {
-	llinfos << "starting" << llendl;
+	lldebugs << "starting" << llendl;
 
 	// Not going through the processAgentInitialWearables path, so need to set this here.
 	LLAppearanceMgr::instance().setAttachmentInvLinkEnable(true);
 	// Initiate creation of COF, since we're also bypassing that.
 	gInventory.findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT);
 	
-	S32 gender = 0;
-	std::string same_gender_gestures;
+	ESex gender;
 	if (gender_name == "male")
 	{
-		gender = OPT_MALE;
-		same_gender_gestures = MALE_GESTURES_FOLDER;
+		lldebugs << "male" << llendl;
+		gender = SEX_MALE;
 	}
 	else
 	{
-		gender = OPT_FEMALE;
-		same_gender_gestures = FEMALE_GESTURES_FOLDER;
+		lldebugs << "female" << llendl;
+		gender = SEX_FEMALE;
 	}
 
+	gAgentAvatarp->setSex(gender);
+
 	// try to find the outfit - if not there, create some default
 	// wearables.
 	LLUUID cat_id = findDescendentCategoryIDByName(
@@ -2506,7 +2445,8 @@ void LLStartUp::loadInitialOutfit( const std::string& outfit_folder_name,
 		outfit_folder_name);
 	if (cat_id.isNull())
 	{
-		gAgentWearables.createStandardWearables(gender);
+		lldebugs << "standard wearables" << llendl;
+		gAgentWearables.createStandardWearables();
 	}
 	else
 	{
@@ -2516,26 +2456,28 @@ void LLStartUp::loadInitialOutfit( const std::string& outfit_folder_name,
 		bool do_append = false;
 		LLViewerInventoryCategory *cat = gInventory.getCategory(cat_id);
 		LLAppearanceMgr::instance().wearInventoryCategory(cat, do_copy, do_append);
+		lldebugs << "initial outfit category id: " << cat_id << llendl;
 	}
 
-	// Copy gestures
-	copyLibraryGestures(same_gender_gestures);
-	
 	// This is really misnamed -- it means we have started loading
 	// an outfit/shape that will give the avatar a gender eventually. JC
 	gAgent.setGenderChosen(TRUE);
-
 }
 
 //static
 void LLStartUp::saveInitialOutfit()
 {
-	if (sInitialOutfit.empty()) return;
+	if (sInitialOutfit.empty()) {
+		lldebugs << "sInitialOutfit is empty" << llendl;
+		return;
+	}
 	
 	if (sWearablesLoadedCon.connected())
 	{
+		lldebugs << "sWearablesLoadedCon is connected, disconnecting" << llendl;
 		sWearablesLoadedCon.disconnect();
 	}
+	lldebugs << "calling makeNewOutfitLinks( \"" << sInitialOutfit << "\" )" << llendl;
 	LLAppearanceMgr::getInstance()->makeNewOutfitLinks(sInitialOutfit,false);
 }
 
@@ -3339,8 +3281,6 @@ bool process_login_success_response()
 	}
 	
 	// Initial outfit for the user.
-	// QUESTION: Why can't we simply simply set the users outfit directly
-	// from a web page into the user info on the server? - Roxie
 	LLSD initial_outfit = response["initial-outfit"][0];
 	if(initial_outfit.size())
 	{
diff --git a/indra/newview/llstartup.h b/indra/newview/llstartup.h
index 99a644eb9cfa275ba49cf49cc1ec2497380cd70f..0a18ef1b2d140389e32f8db302669e9f89ca9782 100644
--- a/indra/newview/llstartup.h
+++ b/indra/newview/llstartup.h
@@ -90,8 +90,6 @@ class LLStartUp
 
 	static void initNameCache();
 	
-	static void copyLibraryGestures(const std::string& same_gender_gestures);
-
 	static void cleanupNameCache();
 
 	// outfit_folder_name can be a folder anywhere in your inventory, 
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index e9be45ffd0cfef841ddf5d2c5232a6cae60226a3..a6e0d4530a27d9c3381398850384303f2562bb1d 100644
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -1810,7 +1810,7 @@ bool LLTextureFetchWorker::writeToCacheComplete()
 // public
 
 LLTextureFetch::LLTextureFetch(LLTextureCache* cache, LLImageDecodeThread* imagedecodethread, bool threaded, bool qa_mode)
-	: LLWorkerThread("TextureFetch", threaded),
+	: LLWorkerThread("TextureFetch", threaded, true),
 	  mDebugCount(0),
 	  mDebugPause(FALSE),
 	  mPacketCount(0),
diff --git a/indra/newview/llviewercontrollistener.cpp b/indra/newview/llviewercontrollistener.cpp
index 8bc25fa28176404d79f5ea9d02c20e4152d0656a..361b96221ca893904744aebfe4dd7f2ab5a6df04 100644
--- a/indra/newview/llviewercontrollistener.cpp
+++ b/indra/newview/llviewercontrollistener.cpp
@@ -31,99 +31,196 @@
 #include "llviewercontrollistener.h"
 
 #include "llviewercontrol.h"
+#include "llcontrol.h"
+#include "llerror.h"
+#include "llsdutil.h"
+#include "stringize.h"
+#include <sstream>
 
-LLViewerControlListener gSavedSettingsListener;
+namespace {
+
+LLViewerControlListener sSavedSettingsListener;
+
+} // unnamed namespace
 
 LLViewerControlListener::LLViewerControlListener()
 	: LLEventAPI("LLViewerControl",
-                 "LLViewerControl listener: set, toggle or set default for various controls",
-                 "group")
+				 "LLViewerControl listener: set, toggle or set default for various controls")
 {
-	add("Global",
-        "Set gSavedSettings control [\"key\"] to value [\"value\"]",
-        boost::bind(&LLViewerControlListener::set, &gSavedSettings, _1));
-	add("PerAccount",
-        "Set gSavedPerAccountSettings control [\"key\"] to value [\"value\"]",
-        boost::bind(&LLViewerControlListener::set, &gSavedPerAccountSettings, _1));
-	add("Warning",
-        "Set gWarningSettings control [\"key\"] to value [\"value\"]",
-        boost::bind(&LLViewerControlListener::set, &gWarningSettings, _1));
-	add("Crash",
-        "Set gCrashSettings control [\"key\"] to value [\"value\"]",
-        boost::bind(&LLViewerControlListener::set, &gCrashSettings, _1));
-
-#if 0
-	add(/*"toggleControl",*/ "Global", boost::bind(&LLViewerControlListener::toggleControl, &gSavedSettings, _1));
-	add(/*"toggleControl",*/ "PerAccount", boost::bind(&LLViewerControlListener::toggleControl, &gSavedPerAccountSettings, _1));
-	add(/*"toggleControl",*/ "Warning", boost::bind(&LLViewerControlListener::toggleControl, &gWarningSettings, _1));
-	add(/*"toggleControl",*/ "Crash", boost::bind(&LLViewerControlListener::toggleControl, &gCrashSettings, _1));
-
-	add(/*"setDefault",*/ "Global", boost::bind(&LLViewerControlListener::setDefault, &gSavedSettings, _1));
-	add(/*"setDefault",*/ "PerAccount", boost::bind(&LLViewerControlListener::setDefault, &gSavedPerAccountSettings, _1));
-	add(/*"setDefault",*/ "Warning", boost::bind(&LLViewerControlListener::setDefault, &gWarningSettings, _1));
-	add(/*"setDefault",*/ "Crash", boost::bind(&LLViewerControlListener::setDefault, &gCrashSettings, _1));
-#endif // 0
+	std::ostringstream groupnames;
+	groupnames << "[\"group\"] is one of ";
+	const char* delim = "";
+	for (LLControlGroup::key_iter cgki(LLControlGroup::beginKeys()),
+								  cgkend(LLControlGroup::endKeys());
+		 cgki != cgkend; ++cgki)
+	{
+		groupnames << delim << '"' << *cgki << '"';
+		delim = ", ";
+	}
+	groupnames << '\n';
+	std::string grouphelp(groupnames.str());
+	std::string replyhelp("If [\"reply\"] requested, send new [\"value\"] on specified LLEventPump\n");
+
+	add("set",
+		std::string("Set [\"group\"] control [\"key\"] to optional value [\"value\"]\n"
+					"If [\"value\"] omitted, set to control's defined default value\n") +
+		grouphelp + replyhelp,
+		&LLViewerControlListener::set,
+		LLSDMap("group", LLSD())("key", LLSD()));
+	add("toggle",
+		std::string("Toggle [\"group\"] control [\"key\"], if boolean\n") + grouphelp + replyhelp,
+		&LLViewerControlListener::toggle,
+		LLSDMap("group", LLSD())("key", LLSD()));
+	add("get",
+		std::string("Query [\"group\"] control [\"key\"], replying on LLEventPump [\"reply\"]\n") +
+		grouphelp,
+		&LLViewerControlListener::get,
+		LLSDMap("group", LLSD())("key", LLSD())("reply", LLSD()));
+	add("groups",
+		"Send on LLEventPump [\"reply\"] an array [\"groups\"] of valid group names",
+		&LLViewerControlListener::groups,
+		LLSDMap("reply", LLSD()));
+	add("vars",
+		std::string("For [\"group\"], send on LLEventPump [\"reply\"] an array [\"vars\"],\n"
+					"each of whose entries looks like:\n"
+					"  [\"name\"], [\"type\"], [\"value\"], [\"comment\"]\n") + grouphelp,
+		&LLViewerControlListener::vars,
+		LLSDMap("group", LLSD())("reply", LLSD()));
 }
 
-//static
-void LLViewerControlListener::set(LLControlGroup * controls, LLSD const & event_data)
+struct Info
 {
-	if(event_data.has("key"))
+	Info(const LLSD& request):
+		response(LLSD(), request),
+		groupname(request["group"]),
+		group(LLControlGroup::getInstance(groupname)),
+		key(request["key"]),
+		control(NULL)
 	{
-		std::string key(event_data["key"]);
+		if (! group)
+		{
+			response.error(STRINGIZE("Unrecognized group '" << groupname << "'"));
+			return;
+		}
 
-		if(controls->controlExists(key))
+		control = group->getControl(key);
+		if (! control)
 		{
-			controls->setUntypedValue(key, event_data["value"]);
+			response.error(STRINGIZE("In group '" << groupname
+									 << "', unrecognized control key '" << key << "'"));
 		}
-		else
+	}
+
+	~Info()
+	{
+		// If in fact the request passed to our constructor names a valid
+		// group and key, grab the final value of the indicated control and
+		// stuff it in our response. Since this outer destructor runs before
+		// the contained Response destructor, this data will go into the
+		// response we send.
+		if (control)
 		{
-			llwarns << "requested unknown control: \"" << key << '\"' << llendl;
+			response["name"]	= control->getName();
+			response["type"]	= group->typeEnumToString(control->type());
+			response["value"]	= control->get();
+			response["comment"] = control->getComment();
 		}
 	}
+
+	LLEventAPI::Response response;
+	std::string groupname;
+	LLControlGroup* group;
+	std::string key;
+	LLControlVariable* control;
+};
+
+//static
+void LLViewerControlListener::set(LLSD const & request)
+{
+	Info info(request);
+	if (! info.control)
+		return;
+
+	if (request.has("value"))
+	{
+		info.control->setValue(request["value"]);
+	}
+	else
+	{
+		info.control->resetToDefault();
+	}
 }
 
 //static
-void LLViewerControlListener::toggleControl(LLControlGroup * controls, LLSD const & event_data)
+void LLViewerControlListener::toggle(LLSD const & request)
 {
-	if(event_data.has("key"))
+	Info info(request);
+	if (! info.control)
+		return;
+
+	if (info.control->isType(TYPE_BOOLEAN))
+	{
+		info.control->set(! info.control->get().asBoolean());
+	}
+	else
 	{
-		std::string key(event_data["key"]);
+		info.response.error(STRINGIZE("toggle of non-boolean '" << info.groupname
+									  << "' control '" << info.key
+									  << "', type is "
+									  << info.group->typeEnumToString(info.control->type())));
+	}
+}
 
-		if(controls->controlExists(key))
-		{
-			LLControlVariable * control = controls->getControl(key);
-			if(control->isType(TYPE_BOOLEAN))
-			{
-				control->set(!control->get().asBoolean());
-			}
-			else
-			{
-				llwarns << "requested toggle of non-boolean control: \"" << key << "\", type is " << control->type() << llendl;
-			}
-		}
-		else
-		{
-			llwarns << "requested unknown control: \"" << key << '\"' << llendl;
-		}
+void LLViewerControlListener::get(LLSD const & request)
+{
+	// The Info constructor and destructor actually do all the work here.
+	Info info(request);
+}
+
+void LLViewerControlListener::groups(LLSD const & request)
+{
+	// No Info, we're not looking up either a group or a control name.
+	Response response(LLSD(), request);
+	for (LLControlGroup::key_iter cgki(LLControlGroup::beginKeys()),
+								  cgkend(LLControlGroup::endKeys());
+		 cgki != cgkend; ++cgki)
+	{
+		response["groups"].append(*cgki);
 	}
 }
 
-//static
-void LLViewerControlListener::setDefault(LLControlGroup * controls, LLSD const & event_data)
+struct CollectVars: public LLControlGroup::ApplyFunctor
 {
-	if(event_data.has("key"))
+	CollectVars(LLControlGroup* g):
+		mGroup(g)
+	{}
+
+	virtual void apply(const std::string& name, LLControlVariable* control)
 	{
-		std::string key(event_data["key"]);
+		vars.append(LLSDMap
+					("name", name)
+					("type", mGroup->typeEnumToString(control->type()))
+					("value", control->get())
+					("comment", control->getComment()));
+	}
 
-		if(controls->controlExists(key))
-		{
-			LLControlVariable * control = controls->getControl(key);
-			control->resetToDefault();
-		}
-		else
-		{
-			llwarns << "requested unknown control: \"" << key << '\"' << llendl;
-		}
+	LLControlGroup* mGroup;
+	LLSD vars;
+};
+
+void LLViewerControlListener::vars(LLSD const & request)
+{
+	// This method doesn't use Info, because we're not looking up a specific
+	// control name.
+	Response response(LLSD(), request);
+	std::string groupname(request["group"]);
+	LLControlGroup* group(LLControlGroup::getInstance(groupname));
+	if (! group)
+	{
+		return response.error(STRINGIZE("Unrecognized group '" << groupname << "'"));
 	}
+
+	CollectVars collector(group);
+	group->applyToAll(&collector);
+	response["vars"] = collector.vars;
 }
diff --git a/indra/newview/llviewercontrollistener.h b/indra/newview/llviewercontrollistener.h
index fd211b97af7280dbd1fe14f0e3a09097356e0feb..2e72046924cd8fa5638078b0a3ecfe74708d207e 100644
--- a/indra/newview/llviewercontrollistener.h
+++ b/indra/newview/llviewercontrollistener.h
@@ -40,11 +40,11 @@ class  LLViewerControlListener : public LLEventAPI
 	LLViewerControlListener();
 
 private:
-	static void set(LLControlGroup *controls, LLSD const & event_data);
-	static void toggleControl(LLControlGroup *controls, LLSD const & event_data);
-	static void setDefault(LLControlGroup *controls, LLSD const & event_data);
+	static void set(LLSD const & event_data);
+	static void toggle(LLSD const & event_data);
+	static void get(LLSD const & event_data);
+	static void groups(LLSD const & event_data);
+	static void vars(LLSD const & event_data);
 };
 
-extern LLViewerControlListener gSavedSettingsListener;
-
 #endif // LL_LLVIEWERCONTROLLISTENER_H
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 1c07d36e7ecfb56c49d39179278618a37275fb57..369d2d757ddc5cf5fbbcdd49cdcd462dd03f1165 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -2834,8 +2834,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
 			else
 			{
 				LLVector3 pos, look_at;
-				U64 region_handle;
-				U8 region_access;
+				U64 region_handle(0);
+				U8 region_access(0);
 				std::string region_info = ll_safe_string((char*)binary_bucket, binary_bucket_size);
 				std::string region_access_str = LLStringUtil::null;
 				std::string region_access_icn = LLStringUtil::null;
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 5bf174646ea64e0953537b083a5ca4c3fea9a290..b84db6b1c0c5cb126cb2fe43960501c43639fa68 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -36,6 +36,7 @@
 #include <iostream>
 #include <fstream>
 #include <algorithm>
+#include <boost/lambda/core.hpp>
 
 #include "llagent.h"
 #include "llagentcamera.h"
@@ -198,6 +199,7 @@
 #include "llfloaternotificationsconsole.h"
 
 #include "llnearbychat.h"
+#include "llwindowlistener.h"
 #include "llviewerwindowlistener.h"
 #include "llpaneltopinfobar.h"
 
@@ -1553,7 +1555,12 @@ LLViewerWindow::LLViewerWindow(
 	mResDirty(false),
 	mStatesDirty(false),
 	mCurrResolutionIndex(0),
-    mViewerWindowListener(new LLViewerWindowListener(this)),
+	// gKeyboard is still NULL, so it doesn't do LLWindowListener any good to
+	// pass its value right now. Instead, pass it a nullary function that
+	// will, when we later need it, return the value of gKeyboard.
+	// boost::lambda::var() constructs such a functor on the fly.
+	mWindowListener(new LLWindowListener(this, boost::lambda::var(gKeyboard))),
+	mViewerWindowListener(new LLViewerWindowListener(this)),
 	mProgressView(NULL)
 {
 	LLNotificationChannel::buildChannel("VW_alerts", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alert"));
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index 3afca3073d26a5812ed0eed262ee04ef9f54c2aa..d10b06f12117cb69d16df825c2a9512e4281e5fb 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -62,6 +62,7 @@ class LLImageFormatted;
 class LLHUDIcon;
 class LLWindow;
 class LLRootView;
+class LLWindowListener;
 class LLViewerWindowListener;
 class LLPopupView;
 
@@ -455,7 +456,8 @@ class LLViewerWindow : public LLWindowCallbacks
 	bool			mStatesDirty;
 	U32			mCurrResolutionIndex;
 
-    boost::scoped_ptr<LLViewerWindowListener> mViewerWindowListener;
+	boost::scoped_ptr<LLWindowListener> mWindowListener;
+	boost::scoped_ptr<LLViewerWindowListener> mViewerWindowListener;
 
 	static std::string sSnapshotBaseName;
 	static std::string sSnapshotDir;
diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..28f959eb7190eda9641da4cd38b3c71ec72691f3
--- /dev/null
+++ b/indra/newview/llwindowlistener.cpp
@@ -0,0 +1,505 @@
+/** 
+ * @file llwindowlistener.cpp
+ * @brief EventAPI interface for injecting input into LLWindow
+ *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * 
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+#include "linden_common.h"
+
+#include "llwindowlistener.h"
+
+#include "llcoord.h"
+#include "llfocusmgr.h"
+#include "llkeyboard.h"
+#include "llwindowcallbacks.h"
+#include "llui.h"
+#include "llview.h"
+#include "llviewinject.h"
+#include "llviewerwindow.h"
+#include "llviewerkeyboard.h"
+#include "llrootview.h"
+#include "llsdutil.h"
+#include "stringize.h"
+#include <typeinfo>
+#include <map>
+#include <boost/scoped_ptr.hpp>
+#include <boost/lambda/core.hpp>
+#include <boost/lambda/bind.hpp>
+
+namespace bll = boost::lambda;
+
+LLWindowListener::LLWindowListener(LLViewerWindow *window, const KeyboardGetter& kbgetter)
+	: LLEventAPI("LLWindow", "Inject input events into the LLWindow instance"),
+	  mWindow(window),
+	  mKbGetter(kbgetter)
+{
+	std::string keySomething =
+		"Given [\"keysym\"], [\"keycode\"] or [\"char\"], inject the specified ";
+	std::string keyExplain =
+		"(integer keycode values, or keysym string from any addKeyName() call in\n"
+		"http://hg.secondlife.com/viewer-development/src/tip/indra/llwindow/llkeyboard.cpp )\n";
+	std::string mask =
+		"Specify optional [\"mask\"] as an array containing any of \"CTL\", \"ALT\",\n"
+		"\"SHIFT\" or \"MAC_CONTROL\"; the corresponding modifier bits will be combined\n"
+		"to form the mask used with the event.";
+
+	std::string given = "Given ";
+	std::string mouseParams =
+		"optional [\"path\"], optional [\"x\"] and [\"y\"], inject the requested mouse ";
+	std::string buttonParams =
+		std::string("[\"button\"], ") + mouseParams;
+	std::string buttonExplain =
+		"(button values \"LEFT\", \"MIDDLE\", \"RIGHT\")\n";
+	std::string paramsExplain =
+		"[\"path\"] is as for LLUI::resolvePath(), described in\n"
+		"http://hg.secondlife.com/viewer-development/src/tip/indra/llui/llui.h\n"
+		"If you omit [\"path\"], you must specify both [\"x\"] and [\"y\"].\n"
+		"If you specify [\"path\"] without both [\"x\"] and [\"y\"], will synthesize (x, y)\n"
+		"in the center of the LLView selected by [\"path\"].\n"
+		"You may specify [\"path\"] with both [\"x\"] and [\"y\"], will use your (x, y).\n"
+		"This may cause the LLView selected by [\"path\"] to reject the event.\n"
+		"Optional [\"reply\"] requests a reply event on the named LLEventPump.\n"
+		"reply[\"error\"] isUndefined (None) on success, else an explanatory message.\n";
+
+	add("getInfo",
+		"Get information about the ui element specified by [\"path\"]",
+		&LLWindowListener::getInfo,
+		LLSDMap("reply", LLSD()));
+	add("getPaths",
+		"Send on [\"reply\"] an event in which [\"paths\"] is an array of valid LLView\n"
+		"pathnames. Optional [\"under\"] pathname specifies the base node under which\n"
+		"to list; all nodes from root if no [\"under\"].",
+		&LLWindowListener::getPaths,
+		LLSDMap("reply", LLSD()));
+	add("keyDown",
+		keySomething + "keypress event.\n" + keyExplain + mask,
+		&LLWindowListener::keyDown);
+	add("keyUp",
+		keySomething + "key release event.\n" + keyExplain + mask,
+		&LLWindowListener::keyUp);
+	add("mouseDown",
+		given + buttonParams + "click event.\n" + buttonExplain + paramsExplain + mask,
+		&LLWindowListener::mouseDown);
+	add("mouseUp",
+		given + buttonParams + "release event.\n" + buttonExplain + paramsExplain + mask,
+		&LLWindowListener::mouseUp);
+	add("mouseMove",
+		given + mouseParams + "movement event.\n" + paramsExplain + mask,
+		&LLWindowListener::mouseMove);
+	add("mouseScroll",
+		"Given an integer number of [\"clicks\"], inject the requested mouse scroll event.\n"
+		"(positive clicks moves downward through typical content)",
+		&LLWindowListener::mouseScroll);
+}
+
+template <typename MAPPED>
+class StringLookup
+{
+private:
+	std::string mDesc;
+	typedef std::map<std::string, MAPPED> Map;
+	Map mMap;
+
+public:
+	StringLookup(const std::string& desc): mDesc(desc) {}
+
+	MAPPED lookup(const typename Map::key_type& key) const
+	{
+		typename Map::const_iterator found = mMap.find(key);
+		if (found == mMap.end())
+		{
+			LL_WARNS("LLWindowListener") << "Unknown " << mDesc << " '" << key << "'" << LL_ENDL;
+			return MAPPED();
+		}
+		return found->second;
+	}
+
+protected:
+	void add(const typename Map::key_type& key, const typename Map::mapped_type& value)
+	{
+		mMap.insert(typename Map::value_type(key, value));
+	}
+};
+
+namespace {
+
+// helper for getMask()
+MASK lookupMask_(const std::string& maskname)
+{
+	// It's unclear to me whether MASK_MAC_CONTROL is important, but it's not
+	// supported by maskFromString(). Handle that specially.
+	if (maskname == "MAC_CONTROL")
+	{
+		return MASK_MAC_CONTROL;
+	}
+	else
+	{
+		// In case of lookup failure, return MASK_NONE, which won't affect our
+		// caller's OR.
+		MASK mask(MASK_NONE);
+		LLKeyboard::maskFromString(maskname, &mask);
+		return mask;
+	}
+}
+
+MASK getMask(const LLSD& event)
+{
+	LLSD masknames(event["mask"]);
+	if (! masknames.isArray())
+	{
+		// If event["mask"] is a single string, perform normal lookup on it.
+		return lookupMask_(masknames);
+	}
+
+	// Here event["mask"] is an array of mask-name strings. OR together their
+	// corresponding bits.
+	MASK mask(MASK_NONE);
+	for (LLSD::array_const_iterator ai(masknames.beginArray()), aend(masknames.endArray());
+		 ai != aend; ++ai)
+	{
+		mask |= lookupMask_(*ai);
+	}
+	return mask;
+}
+
+KEY getKEY(const LLSD& event)
+{
+    if (event.has("keysym"))
+	{
+		// Initialize to KEY_NONE; that way we can ignore the bool return from
+		// keyFromString() and, in the lookup-fail case, simply return KEY_NONE.
+		KEY key(KEY_NONE);
+		LLKeyboard::keyFromString(event["keysym"], &key);
+		return key;
+	}
+	else if (event.has("keycode"))
+	{
+		return KEY(event["keycode"].asInteger());
+	}
+	else
+	{
+		return KEY(event["char"].asString()[0]);
+	}
+}
+
+} // namespace
+
+void LLWindowListener::getInfo(LLSD const & evt)
+{
+	Response response(LLSD(), evt);
+	
+	if (evt.has("path"))
+	{
+		std::string path(evt["path"]);
+		LLView * target_view = LLUI::resolvePath(LLUI::getRootView(), path);
+		if (target_view != 0)
+		{
+			response.setResponse(target_view->getInfo());
+		}
+		else 
+		{
+			response.error(STRINGIZE(evt["op"].asString() << " request "
+											"specified invalid \"path\": '" << path << "'"));
+		}
+	}
+	else 
+	{
+		response.error(
+			STRINGIZE(evt["op"].asString() << "request did not provide a path" ));
+	}
+}
+
+void LLWindowListener::getPaths(LLSD const & request)
+{
+	Response response(LLSD(), request);
+	LLView *root(LLUI::getRootView()), *base(NULL);
+	// Capturing request["under"] as string means we conflate the case in
+	// which there is no ["under"] key with the case in which its value is the
+	// empty string. That seems to make sense to me.
+	std::string under(request["under"]);
+
+	// Deal with optional "under" parameter
+	if (under.empty())
+	{
+		base = root;
+	}
+	else
+	{
+		base = LLUI::resolvePath(root, under);
+		if (! base)
+		{
+			return response.error(STRINGIZE(request["op"].asString() << " request "
+											"specified invalid \"under\" path: '" << under << "'"));
+		}
+	}
+
+	// Traverse the entire subtree under 'base', collecting pathnames
+	for (LLView::tree_iterator_t ti(base->beginTreeDFS()), tend(base->endTreeDFS());
+		 ti != tend; ++ti)
+	{
+		response["paths"].append((*ti)->getPathname());
+	}
+}
+
+void LLWindowListener::keyDown(LLSD const & evt)
+{
+	Response response(LLSD(), evt);
+	
+	if (evt.has("path"))
+	{
+		std::string path(evt["path"]);
+		LLView * target_view = LLUI::resolvePath(LLUI::getRootView(), path);
+		if (target_view == 0) 
+		{
+			response.error(STRINGIZE(evt["op"].asString() << " request "
+											"specified invalid \"path\": '" << path << "'"));
+		}
+		else if(target_view->isAvailable())
+		{
+			response.setResponse(target_view->getInfo());
+			
+			gFocusMgr.setKeyboardFocus(target_view);
+			KEY key = getKEY(evt);
+			MASK mask = getMask(evt);
+			gViewerKeyboard.handleKey(key, mask, false);
+			if(key < 0x80) mWindow->handleUnicodeChar(key, mask);
+		}
+		else 
+		{
+			response.error(STRINGIZE(evt["op"].asString() << " request "
+											"element specified by \"path\": '" << path << "'" 
+											<< " is not visible"));
+		}
+	}
+	else 
+	{
+		mKbGetter()->handleTranslatedKeyDown(getKEY(evt), getMask(evt));
+	}
+}
+
+void LLWindowListener::keyUp(LLSD const & evt)
+{
+	Response response(LLSD(), evt);
+
+	if (evt.has("path"))
+	{
+		std::string path(evt["path"]);
+		LLView * target_view = LLUI::resolvePath(LLUI::getRootView(), path);
+		if (target_view == 0 )
+		{
+			response.error(STRINGIZE(evt["op"].asString() << " request "
+											"specified invalid \"path\": '" << path << "'"));
+		}
+		else if (target_view->isAvailable())
+		{
+			response.setResponse(target_view->getInfo());
+
+			gFocusMgr.setKeyboardFocus(target_view);
+			mKbGetter()->handleTranslatedKeyUp(getKEY(evt), getMask(evt));
+		}
+		else 
+		{
+			response.error(STRINGIZE(evt["op"].asString() << " request "
+											"element specified byt \"path\": '" << path << "'" 
+											<< " is not visible"));
+		}
+	}
+	else 
+	{
+		mKbGetter()->handleTranslatedKeyUp(getKEY(evt), getMask(evt));
+	}
+}
+
+// for WhichButton
+typedef BOOL (LLWindowCallbacks::*MouseMethod)(LLWindow *, LLCoordGL, MASK);
+struct Actions
+{
+	Actions(const MouseMethod& d, const MouseMethod& u): down(d), up(u), valid(true) {}
+	Actions(): valid(false) {}
+	MouseMethod down, up;
+	bool valid;
+};
+
+struct WhichButton: public StringLookup<Actions>
+{
+	WhichButton(): StringLookup<Actions>("mouse button")
+	{
+		add("LEFT",		Actions(&LLWindowCallbacks::handleMouseDown,
+								&LLWindowCallbacks::handleMouseUp));
+		add("RIGHT",	Actions(&LLWindowCallbacks::handleRightMouseDown,
+								&LLWindowCallbacks::handleRightMouseUp));
+		add("MIDDLE",	Actions(&LLWindowCallbacks::handleMiddleMouseDown,
+								&LLWindowCallbacks::handleMiddleMouseUp));
+	}
+};
+static WhichButton buttons;
+
+typedef boost::function<bool(LLCoordGL, MASK)> MouseFunc;
+
+static void mouseEvent(const MouseFunc& func, const LLSD& request)
+{
+	// Ensure we send response
+	LLEventAPI::Response response(LLSD(), request);
+	// We haven't yet established whether the incoming request has "x" and "y",
+	// but capture this anyway, with 0 for omitted values.
+	LLCoordGL pos(request["x"].asInteger(), request["y"].asInteger());
+	bool has_pos(request.has("x") && request.has("y"));
+
+	boost::scoped_ptr<LLView::TemporaryDrilldownFunc> tempfunc;
+
+	// Documentation for mouseDown(), mouseUp() and mouseMove() claims you
+	// must either specify ["path"], or both of ["x"] and ["y"]. You MAY
+	// specify all. Let's say that passing "path" as an empty string is
+	// equivalent to not passing it at all.
+	std::string path(request["path"]);
+	if (path.empty())
+	{
+		// Without "path", you must specify both "x" and "y".
+		if (! has_pos)
+		{
+			return response.error(STRINGIZE(request["op"].asString() << " request "
+											"without \"path\" must specify both \"x\" and \"y\": "
+											<< request));
+		}
+	}
+	else // ! path.empty()
+	{
+		LLView* root   = LLUI::getRootView();
+		LLView* target = LLUI::resolvePath(root, path);
+		if (! target)
+		{
+			return response.error(STRINGIZE(request["op"].asString() << " request "
+											"specified invalid \"path\": '" << path << "'"));
+		}
+
+		response.setResponse(target->getInfo());
+
+		// The intent of this test is to prevent trying to drill down to a
+		// widget in a hidden floater, or on a tab that's not current, etc.
+		if (! target->isInVisibleChain())
+		{
+			return response.error(STRINGIZE(request["op"].asString() << " request "
+											"specified \"path\" not currently visible: '"
+											<< path << "'"));
+		}
+
+		// This test isn't folded in with the above error case since you can
+		// (e.g.) pop up a tooltip even for a disabled widget.
+		if (! target->isInEnabledChain())
+		{
+			response.warn(STRINGIZE(request["op"].asString() << " request "
+									"specified \"path\" not currently enabled: '"
+									<< path << "'"));
+		}
+
+		if (! has_pos)
+		{
+			LLRect rect(target->calcScreenRect());
+			pos.set(rect.getCenterX(), rect.getCenterY());
+			// nonstandard warning tactic: probably usual case; we want event
+			// sender to know synthesized (x, y), but maybe don't need to log?
+			response["warnings"].append(STRINGIZE("using center point ("
+												  << pos.mX << ", " << pos.mY << ")"));
+		}
+
+/*==========================================================================*|
+		// NEVER MIND: the LLView tree defines priority handler layers in
+		// front of the normal widget set, so this has never yet produced
+		// anything but spam warnings. (sigh)
+
+		// recursive childFromPoint() should give us the frontmost, leafmost
+		// widget at the specified (x, y).
+		LLView* frontmost = root->childFromPoint(pos.mX, pos.mY, true);
+		if (frontmost != target)
+		{
+			response.warn(STRINGIZE(request["op"].asString() << " request "
+									"specified \"path\" = '" << path
+									<< "', but frontmost LLView at (" << pos.mX << ", " << pos.mY
+									<< ") is '" << LLView::getPathname(frontmost) << "'"));
+		}
+|*==========================================================================*/
+
+		// Instantiate a TemporaryDrilldownFunc to route incoming mouse events
+		// to the target LLView*. But put it on the heap since "path" is
+		// optional. Nonetheless, manage it with a boost::scoped_ptr so it
+		// will be destroyed when we leave.
+		tempfunc.reset(new LLView::TemporaryDrilldownFunc(llview::TargetEvent(target)));
+	}
+
+	// The question of whether the requested LLView actually handled the
+	// specified event is important enough, and its handling unclear enough,
+	// to warrant a separate response attribute. Instead of deciding here to
+	// make it a warning, or an error, let caller decide.
+	response["handled"] = func(pos, getMask(request));
+
+	// On exiting this scope, response will send, tempfunc will restore the
+	// normal pointInView(x, y) containment logic, etc.
+}
+
+void LLWindowListener::mouseDown(LLSD const & request)
+{
+	Actions actions(buttons.lookup(request["button"]));
+	if (actions.valid)
+	{
+		// Normally you can pass NULL to an LLWindow* without compiler
+		// complaint, but going through boost::lambda::bind() evidently
+		// bypasses that special case: it only knows you're trying to pass an
+		// int to a pointer. Explicitly cast NULL to the desired pointer type.
+		mouseEvent(bll::bind(actions.down, mWindow,
+							 static_cast<LLWindow*>(NULL), bll::_1, bll::_2),
+				   request);
+	}
+}
+
+void LLWindowListener::mouseUp(LLSD const & request)
+{
+	Actions actions(buttons.lookup(request["button"]));
+	if (actions.valid)
+	{
+		mouseEvent(bll::bind(actions.up, mWindow,
+							 static_cast<LLWindow*>(NULL), bll::_1, bll::_2),
+				   request);
+	}
+}
+
+void LLWindowListener::mouseMove(LLSD const & request)
+{
+	// We want to call the same central mouseEvent() routine for
+	// handleMouseMove() as for button clicks. But handleMouseMove() returns
+	// void, whereas mouseEvent() accepts a function returning bool -- and
+	// uses that bool return. Use (void-lambda-expression, true) to construct
+	// a callable that returns bool anyway. Pass 'true' because we expect that
+	// our caller will usually treat 'false' as a problem.
+	mouseEvent((bll::bind(&LLWindowCallbacks::handleMouseMove, mWindow,
+						  static_cast<LLWindow*>(NULL), bll::_1, bll::_2),
+				true),
+			   request);
+}
+
+void LLWindowListener::mouseScroll(LLSD const & request)
+{
+	S32 clicks = request["clicks"].asInteger();
+
+	mWindow->handleScrollWheel(NULL, clicks);
+}
diff --git a/indra/llwindow/llwindowlistener.h b/indra/newview/llwindowlistener.h
similarity index 89%
rename from indra/llwindow/llwindowlistener.h
rename to indra/newview/llwindowlistener.h
index 74e577ff93a5ac3145108b91cced5707dce9c2e5..7af5ab3b9f07363a81deda7c5da85bd87ead0a74 100644
--- a/indra/llwindow/llwindowlistener.h
+++ b/indra/newview/llwindowlistener.h
@@ -31,14 +31,16 @@
 #include <boost/function.hpp>
 
 class LLKeyboard;
-class LLWindowCallbacks;
+class LLViewerWindow;
 
 class LLWindowListener : public LLEventAPI
 {
 public:
 	typedef boost::function<LLKeyboard*()> KeyboardGetter;
-	LLWindowListener(LLWindowCallbacks * window, const KeyboardGetter& kbgetter);
+	LLWindowListener(LLViewerWindow * window, const KeyboardGetter& kbgetter);
 
+	void getInfo(LLSD const & evt);
+	void getPaths(LLSD const & evt);
 	void keyDown(LLSD const & evt);
 	void keyUp(LLSD const & evt);
 	void mouseDown(LLSD const & evt);
@@ -47,7 +49,7 @@ class LLWindowListener : public LLEventAPI
 	void mouseScroll(LLSD const & evt);
 
 private:
-	LLWindowCallbacks * mWindow;
+	LLViewerWindow * mWindow;
 	KeyboardGetter mKbGetter;
 };
 
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 53a5de0189e1a874064c50d0f555f935c6c40b8c..bb91d32c6cb9b59eac89bbe4b5c47fb695947d3f 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -123,7 +123,7 @@ with the same filename but different name
   <texture name="Checkbox_On" file_name="widgets/Checkbox_On.png" preload="true" />
   <texture name="Checkbox_On_Press" file_name="widgets/Checkbox_On_Press.png" preload="true" />
   <texture name="Checkbox_Press" file_name="widgets/Checkbox_Press.png" preload="true" />
-  <texture name="Check_Mark" file_name="icons/check_mark" preload="true" />
+  <texture name="Check_Mark" file_name="icons/check_mark.png" preload="true" />
 
   <texture name="Command_AboutLand_Icon"    file_name="toolbar_icons/land.png"         preload="true" />
   <texture name="Command_Appearance_Icon"   file_name="toolbar_icons/appearance.png"   preload="true" />
diff --git a/indra/newview/skins/default/xui/en/floater_build_options.xml b/indra/newview/skins/default/xui/en/floater_build_options.xml
index c247a12e7a19aaa0c9cca25b62b4722043edac6d..afb7917043136b99064a2a45a2af22645338dc39 100644
--- a/indra/newview/skins/default/xui/en/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/en/floater_build_options.xml
@@ -37,7 +37,7 @@
      layout="topleft"
      left="10"
      tool_tip="Grid opacity"
-     name="grid_opacity_label"
+     name="grid_mode_label"
      top_pad="30"
      width="123">
         Mode
diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml
index b87cb9a433c2b9f3f7cf50854359273c268fe682..406114294df6b5d8b9273090220d0adf1c0c9831 100644
--- a/indra/newview/skins/default/xui/en/floater_stats.xml
+++ b/indra/newview/skins/default/xui/en/floater_stats.xml
@@ -10,7 +10,7 @@
  save_rect="true"
  save_visibility="true"
  title="STATISTICS"
- width="250">
+ width="260">
     <scroll_container
      follows="top|left|bottom|right"
      height="380"
@@ -19,15 +19,16 @@
      name="statistics_scroll"
      reserve_scroll_corner="true"
      top="20"
-     width="250">
-        <container_view
-         follows="top|left|bottom|right"
-         height="378"
-         layout="topleft"
-         left="2"
-         name="statistics_view"
-         top="20"
-         width="230" >
+     width="260">
+      <container_view
+       follows="top|left|bottom|right"
+       height="378"
+       layout="topleft"
+       left="2"
+       name="statistics_view"
+       top="20"
+       width="245" >
+        <!--Basic Section-->
 		  <stat_view
 			 name="basic"
 			 label="Basic"
@@ -39,9 +40,9 @@
 			   unit_label="fps"
 			   stat="fpsstat"
 			   bar_min="0"
-			   bar_max="45"
-			   tick_spacing="7.5"
-			   label_spacing="15.0"
+			   bar_max="60"
+			   tick_spacing="6"
+			   label_spacing="12"
 			   precision="1"
 			   show_bar="true"
 			   show_history="true">
@@ -52,9 +53,10 @@
 			   unit_label="kbps"
 			   stat="kbitstat"
 			   bar_min="0"
-			   bar_max="900"
-			   tick_spacing="100"
-			   label_spacing="300"
+			   bar_max="5000"
+			   tick_spacing="500"
+			   label_spacing="1000"
+				 precision="0"
 			   show_bar="true"
 			   show_history="false">
 			</stat_bar>
@@ -65,9 +67,9 @@
 			   stat="packetslostpercentstat"
 			   bar_min="0"
 			   bar_max="5"
-			   tick_spacing="1"
+			   tick_spacing="0.5"
 			   label_spacing="1"
-			   precision="1"
+			   precision="3"
 			   show_per_sec="false"
 			   show_bar="false"
 			   show_mean="true">
@@ -78,15 +80,17 @@
 			   unit_label="msec"
 			   stat="simpingstat"
 			   bar_min="0"
-			   bar_max="1000"
-			   tick_spacing="100"
-			   label_spacing="200"
+			   bar_max="5000"
+			   tick_spacing="500"
+			   label_spacing="1000"
+				 precision="0"
 			   show_bar="false"
 			   show_per_sec="false"
 			   show_mean="false">
 			</stat_bar>
 		  </stat_view>
-		  <stat_view
+          <!--Advanced Section-->
+      <stat_view
 			 name="advanced"
 			 label="Advanced"
 			 show_label="true"
@@ -98,37 +102,39 @@
 			   setting="OpenDebugStatRender">
 			  <stat_bar
 				 name="ktrisframe"
-				 label="KTris Drawn"
+				 label="KTris Drawn per Frame"
 				 unit_label="/fr"
 				 stat="trianglesdrawnstat"
 				 bar_min="0"
-				 bar_max="500"
-				 tick_spacing="100"
-				 label_spacing="500"
-				 precision="1"
-				 show_per_sec="false">
-			  </stat_bar>
+				 bar_max="10000"
+				 tick_spacing="1000"
+				 label_spacing="2000"
+				 precision="0"
+				 show_per_sec="false"
+         show_bar="false">
+        </stat_bar>
 			  <stat_bar
 				 name="ktrissec"
-				 label="KTris Drawn"
+				 label="KTris Drawn per Sec"
 				 unit_label="/sec"
 				 stat="trianglesdrawnstat"
 				 bar_min="0"
-				 bar_max="3000"
-				 tick_spacing="250"
-				 label_spacing="1000"
-				 precision="1">
-			  </stat_bar>
+				 bar_max="200000"
+				 tick_spacing="25000"
+				 label_spacing="50000"
+				 precision="0"
+         show_bar="false">
+        </stat_bar>
 			  <stat_bar
 				 name="objs"
 				 label="Total Objects"
 				 unit_label=""
 				 stat="numobjectsstat"
 				 bar_min="0"
-				 bar_max="3000"
-				 tick_spacing="250"
-				 label_spacing="1000"
-				 precision="1"
+				 bar_max="50000"
+				 tick_spacing="5000"
+				 label_spacing="10000"
+				 precision="0"
 				 show_per_sec="false"
 				 show_bar="false">
 			  </stat_bar>
@@ -138,13 +144,14 @@
 				 unit_label="/sec"
 				 stat="numnewobjectsstat"
 				 bar_min="0"
-				 bar_max="1000"
-				 tick_spacing="100"
-				 label_spacing="500"
+				 bar_max="2000"
+				 tick_spacing="200"
+				 label_spacing="400"
 				 show_per_sec="true"
 				 show_bar="false">
 			  </stat_bar>
 			</stat_view>
+        <!--Texture Stats-->
 			<stat_view
 			   name="texture"
 			   label="Texture"
@@ -182,8 +189,9 @@
 				 tick_spacing="100.f"
 				 label_spacing="200.f" 
 				 precision="1"
-				 show_per_sec="false" >
-			  </stat_bar>
+				 show_per_sec="false" 
+         show_bar="false">
+        </stat_bar>
 
 			  <stat_bar
 				 name="formattedmemstat"
@@ -194,8 +202,9 @@
 				 tick_spacing="100.f"
 				 label_spacing="200.f" 
 				 precision="1"
-				 show_per_sec="false" >
-			  </stat_bar>
+				 show_per_sec="false" 
+         show_bar="false">
+        </stat_bar>
 
 			  <stat_bar
 				 name="rawmemstat"
@@ -206,8 +215,9 @@
 				 tick_spacing="100.f"
 				 label_spacing="200.f" 
 				 precision="1"
-				 show_per_sec="false" >
-			  </stat_bar>
+				 show_per_sec="false" 
+         show_bar="false">
+        </stat_bar>
 
 			  <stat_bar
 				 name="glboundmemstat"
@@ -218,10 +228,11 @@
 				 tick_spacing="100.f"
 				 label_spacing="200.f" 
 				 precision="1"
-				 show_per_sec="false" >
-			  </stat_bar>
+				 show_per_sec="false" 
+         show_bar="false">
+        </stat_bar>
 			</stat_view>
-
+        <!--Network Stats-->
 			<stat_view
 			   name="network"
 			   label="Network"
@@ -232,6 +243,11 @@
 				 label="Packets In"
 				 stat="packetsinstat"
 				 unit_label="/sec" 
+         bar_min="0.f"
+				 bar_max="1024.f" 
+				 tick_spacing="128.f"
+				 label_spacing="256.f" 
+				 precision="1"
 				 show_bar="false">
 			  </stat_bar>
 
@@ -239,7 +255,12 @@
 				 name="packetsoutstat"
 				 label="Packets Out"
 				 stat="packetsoutstat"
-				 unit_label="/sec" 
+				 unit_label="/sec"  
+         bar_min="0.f"
+				 bar_max="1024.f" 
+				 tick_spacing="128.f"
+				 label_spacing="256.f" 
+				 precision="1"
 				 show_bar="false" >
 			  </stat_bar>
 
@@ -247,7 +268,12 @@
 				 name="objectkbitstat"
 				 label="Objects"
 				 stat="objectkbitstat"
-				 unit_label="kbps"
+         unit_label="kbps"
+         bar_min="0.f"
+         bar_max="1024.f"
+         tick_spacing="128.f"
+         label_spacing="256.f"
+         precision="1"
 				 show_bar="false" >
 			  </stat_bar>
 
@@ -255,7 +281,12 @@
 				 name="texturekbitstat"
 				 label="Texture"
 				 stat="texturekbitstat"
-				 unit_label="kbps"
+         unit_label="kbps"
+         bar_min="0.f"
+         bar_max="1024.f"
+         tick_spacing="128.f"
+         label_spacing="256.f"
+         precision="1"
 				 show_bar="false" >
 			  </stat_bar>
 
@@ -263,7 +294,12 @@
 				 name="assetkbitstat"
 				 label="Asset"
 				 stat="assetkbitstat"
-				 unit_label="kbps"
+         unit_label="kbps"
+         bar_min="0.f"
+         bar_max="1024.f"
+         tick_spacing="128.f"
+         label_spacing="256.f"
+         precision="1"
 				 show_bar="false" >
 			  </stat_bar>
 
@@ -271,7 +307,12 @@
 				 name="layerskbitstat"
 				 label="Layers"
 				 stat="layerskbitstat"
-				 unit_label="kbps"
+         unit_label="kbps"
+         bar_min="0.f"
+         bar_max="1024.f"
+         tick_spacing="128.f"
+         label_spacing="256.f"
+         precision="1"
 				 show_bar="false" >
 			  </stat_bar>
 
@@ -279,12 +320,13 @@
 				 name="actualinkbitstat"
 				 label="Actual In"
 				 stat="actualinkbitstat"
-				 unit_label="kbps"
-				 bar_min="0.f"
-				 bar_max="1024.f" 
-				 tick_spacing="128.f"
-				 label_spacing="256.f" 
-				 show_bar="true"
+         unit_label="kbps"
+         bar_min="0.f"
+         bar_max="1024.f"
+         tick_spacing="128.f"
+         label_spacing="256.f"
+         precision="1"
+				 show_bar="false"
 				 show_history="false" >
 			  </stat_bar>
 
@@ -292,26 +334,27 @@
 				 name="actualoutkbitstat"
 				 label="Actual Out"
 				 stat="actualoutkbitstat"
-				 unit_label="kbps"
-				 bar_min="0.f"
-				 bar_max="512.f" 
-				 tick_spacing="128.f"
-				 label_spacing="256.f" 
-				 show_bar="true"
+         unit_label="kbps"
+         bar_min="0.f"
+         bar_max="1024.f"
+         tick_spacing="128.f"
+         label_spacing="256.f"
+         precision="1"
+				 show_bar="false"
 				 show_history="false">
 			  </stat_bar>
 
 			  <stat_bar
 				 name="vfspendingoperations"
-				 label="VFS Pending Ops"
+				 label="VFS Pending Operations"
 				 stat="vfspendingoperations"
-				 unit_label=" "
+				 unit_label=" Ops."
 				 show_per_sec="false"
 				 show_bar="false" >
 			  </stat_bar>
 			</stat_view>
 		  </stat_view>
-
+        <!--Sim Stats-->
 		  <stat_view
 			 name="sim"
 			 label="Simulator"
@@ -321,11 +364,11 @@
 			   name="simtimedilation"
 			   label="Time Dilation"
 			   stat="simtimedilation"
-			   precision="2"
+			   precision="3"
 			   bar_min="0.f"
 			   bar_max="1.f" 
-			   tick_spacing="0.25f"
-			   label_spacing="0.5f" 
+			   tick_spacing="0.16666f"
+			   label_spacing="0.33333f" 
 			   show_per_sec="false"
 			   show_bar="false"
 			   show_mean="false" >
@@ -335,10 +378,11 @@
 			   name="simfps"
 			   label="Sim FPS"
 			   stat="simfps"
+			   precision="1"
 			   bar_min="0.f"
-			   bar_max="200.f" 
-			   tick_spacing="20.f"
-			   label_spacing="100.f" 
+			   bar_max="45.f" 
+			   tick_spacing="7.5f"
+			   label_spacing="15.f" 
 			   show_per_sec="false"
 			   show_bar="false"
 			   show_mean="false" >
@@ -350,9 +394,9 @@
 			   stat="simphysicsfps"
 			   precision="1"
 			   bar_min="0.f"
-			   bar_max="66.f" 
-			   tick_spacing="33.f"
-			   label_spacing="33.f" 
+			   bar_max="45.f" 
+			   tick_spacing="7.5.f"
+			   label_spacing="15.f" 
 			   show_per_sec="false"
 			   show_bar="false"
 			   show_mean="false" >
@@ -369,8 +413,8 @@
 				 precision="0" 
 				 bar_min="0.f"
 				 bar_max="500.f" 
-				 tick_spacing="10.f"
-				 label_spacing="40.f" 
+				 tick_spacing="50.f"
+				 label_spacing="100.f" 
 				 show_per_sec="false"
 				 show_bar="false"
 				 show_mean="false" >
@@ -383,8 +427,8 @@
 				 precision="0"
 				 bar_min="0.f"
 				 bar_max="500.f" 
-				 tick_spacing="10.f"
-				 label_spacing="40.f" 
+				 tick_spacing="50.f"
+				 label_spacing="100.f" 
 				 show_per_sec="false"
 				 show_bar="false"
 				 show_mean="false" >
@@ -395,7 +439,7 @@
 				 label="Memory Allocated"
 				 stat="physicsmemoryallocated"
 				 unit_label="MB"
-				 precision="0"
+				 precision="1"
 				 bar_min="0.f"
 				 bar_max="1024.f" 
 				 tick_spacing="128.f"
@@ -468,9 +512,9 @@
 			   stat="simactiveobjects"
 			   precision="0"
 			   bar_min="0.f"
-			   bar_max="800.f" 
-			   tick_spacing="100.f"
-			   label_spacing="200.f" 
+			   bar_max="5000.f" 
+			   tick_spacing="750.f"
+			   label_spacing="1250.f" 
 			   show_per_sec="false"
 			   show_bar="false"
 			   show_mean="false" >
@@ -482,9 +526,9 @@
 			   stat="simactivescripts"
 			   precision="0"
 			   bar_min="0.f"
-			   bar_max="800.f" 
-			   tick_spacing="100.f"
-			   label_spacing="200.f" 
+			   bar_max="15000.f" 
+			   tick_spacing="1875.f"
+			   label_spacing="3750.f"  
 			   show_per_sec="false"
 			   show_bar="false"
 			   show_mean="false" >
@@ -497,9 +541,9 @@
 			   unit_label="eps"
 			   precision="0"
 			   bar_min="0.f"
-			   bar_max="20000.f" 
-			   tick_spacing="2500.f"
-			   label_spacing="5000.f" 
+			   bar_max="5000.f" 
+			   tick_spacing="750.f"
+			   label_spacing="1250.f"  
 			   show_per_sec="false"
 			   show_bar="false"
 			   show_mean="false" >
@@ -568,7 +612,7 @@
 			   label="Total Unacked Bytes"
 			   stat="simtotalunackedbytes"
 			   unit_label="kb"
-			   precision="0"
+			   precision="1"
 			   bar_min="0.f"
 			   bar_max="100000.f" 
 			   tick_spacing="25000.f"
@@ -587,7 +631,7 @@
 				 label="Total Frame Time"
 				 stat="simframemsec"
 				 unit_label="ms"
-				 precision="1"
+				 precision="3"
 				 bar_min="0.f"
 				 bar_max="40.f" 
 				 tick_spacing="10.f"
@@ -602,7 +646,7 @@
 				 label="Net Time"
 				 stat="simnetmsec"
 				 unit_label="ms"
-				 precision="1"
+				 precision="3"
 				 bar_min="0.f"
 				 bar_max="40.f" 
 				 tick_spacing="10.f"
@@ -617,7 +661,7 @@
 				 label="Physics Time"
 				 stat="simsimphysicsmsec"
 				 unit_label="ms"
-				 precision="1"
+				 precision="3"
 				 bar_min="0.f"
 				 bar_max="40.f" 
 				 tick_spacing="10.f"
@@ -632,7 +676,7 @@
 				 label="Simulation Time"
 				 stat="simsimothermsec"
 				 unit_label="ms"
-				 precision="1"
+				 precision="3"
 				 bar_min="0.f"
 				 bar_max="40.f" 
 				 tick_spacing="10.f"
@@ -647,7 +691,7 @@
 				 label="Agent Time"
 				 stat="simagentmsec"
 				 unit_label="ms"
-				 precision="1"
+				 precision="3"
 				 bar_min="0.f"
 				 bar_max="40.f" 
 				 tick_spacing="10.f"
@@ -662,7 +706,7 @@
 				 label="Images Time"
 				 stat="simimagesmsec"
 				 unit_label="ms"
-				 precision="1"
+				 precision="3"
 				 bar_min="0.f"
 				 bar_max="40.f" 
 				 tick_spacing="10.f"
@@ -677,7 +721,7 @@
 				 label="Script Time"
 				 stat="simscriptmsec"
 				 unit_label="ms"
-				 precision="1"
+				 precision="3"
 				 bar_min="0.f"
 				 bar_max="40.f" 
 				 tick_spacing="10.f"
@@ -686,6 +730,97 @@
 				 show_bar="false"
 				 show_mean="false" >
 			  </stat_bar>
+
+        <stat_bar
+         name="simsparemsec"
+         label="Spare Time"
+         stat="simsparemsec"
+         unit_label="ms"
+         precision="3"
+         bar_min="0.f"
+         bar_max="40.f"
+         tick_spacing="10.f"
+         label_spacing="20.f"
+         show_per_sec="false"
+         show_bar="false"
+         show_mean="false" >
+        </stat_bar>
+        <!--2nd level time blocks under 'Details' second-->
+          <stat_view
+ 			     name="timedetails"
+			     label="Time Details (ms)"
+			     show_label="true">
+            <stat_bar
+             name="simsimphysicsstepmsec"
+             label="  Physics Step"
+             stat="simsimphysicsstepmsec"
+             unit_label="ms"
+             precision="3"
+             bar_min="0.f"
+             bar_max="40.f"
+             tick_spacing="10.f"
+             label_spacing="20.f"
+             show_per_sec="false"
+             show_bar="false"
+             show_mean="false" >
+            </stat_bar>
+            <stat_bar
+             name="simsimphysicsshapeupdatemsec"
+             label="  Update Phys Shapes"
+             stat="simsimphysicsshapeupdatemsec"
+             unit_label="ms"
+             precision="3"
+             bar_min="0.f"
+             bar_max="40.f"
+             tick_spacing="10.f"
+             label_spacing="20.f"
+             show_per_sec="false"
+             show_bar="false"
+             show_mean="false" >
+            </stat_bar>
+            <stat_bar
+             name="simsimphysicsothermsec"
+             label="  Physics Other"
+             stat="simsimphysicsothermsec"
+             unit_label="ms"
+             precision="3"
+             bar_min="0.f"
+             bar_max="40.f"
+             tick_spacing="10.f"
+             label_spacing="20.f"
+             show_per_sec="false"
+             show_bar="false"
+             show_mean="false" >
+            </stat_bar>
+            <stat_bar
+             name="simsleepmsec"
+             label="  Sleep Time"
+             stat="simsleepmsec"
+             unit_label="ms"
+             precision="3"
+             bar_min="0.f"
+             bar_max="40.f"
+             tick_spacing="10.f"
+             label_spacing="20.f"
+             show_per_sec="false"
+             show_bar="false"
+             show_mean="false" >
+            </stat_bar>
+            <stat_bar
+             name="simpumpiomsec"
+             label="  Pump IO"
+             stat="simpumpiomsec"
+             unit_label="ms"
+             precision="3"
+             bar_min="0.f"
+             bar_max="40.f"
+             tick_spacing="10.f"
+             label_spacing="20.f"
+             show_per_sec="false"
+             show_bar="false"
+             show_mean="false" >
+            </stat_bar>
+			</stat_view>
 			</stat_view>
 		  </stat_view>
 		</container_view>
diff --git a/indra/newview/skins/default/xui/en/panel_region_covenant.xml b/indra/newview/skins/default/xui/en/panel_region_covenant.xml
index 2b2ea78fac4bb7d48a4ed509fabb07decc8131cf..df16f6fd373438ddd4ff1c1e632d5319ee90117b 100644
--- a/indra/newview/skins/default/xui/en/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_covenant.xml
@@ -107,13 +107,13 @@
     <text_editor
      enabled="false"
      follows="left|top"
-     height="100"
+     height="180"
      layout="topleft"
-     left="110"
+     left="10"
      max_length="65535"
      name="covenant_editor"
-     top_delta="30"
-     width="340"
+     top_delta="20"
+     width="460"
      word_wrap="true">
         There is no Covenant provided for this Estate.
     </text_editor>
diff --git a/indra/newview/skins/default/xui/en/panel_region_debug.xml b/indra/newview/skins/default/xui/en/panel_region_debug.xml
index 15df095efa49b87bc19e8ab7a2876cee8f20b496..455060313497be93cafe3d651a9300c9040b238d 100644
--- a/indra/newview/skins/default/xui/en/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_debug.xml
@@ -174,31 +174,31 @@
     <button
      follows="left|top"
      height="20"
-     label="Get Top Scripts..."
+     label="Restart Region"
      layout="topleft"
-     left="10"
-     name="top_scripts_btn"
-     tool_tip="List of objects spending the most time running scripts"
-     top_pad="5"
+     left_pad="155"
+     name="restart_btn"
+     tool_tip="Give 2 minute countdown and restart region"
+     top_delta="0"
      width="150" />
     <button
      follows="left|top"
      height="20"
-     label="Restart Region"
+     label="Get Top Scripts..."
      layout="topleft"
      left="10"
-     name="restart_btn"
-     tool_tip="Give 2 minute countdown and restart region"
+     name="top_scripts_btn"
+     tool_tip="List of objects spending the most time running scripts"
      top_pad="5"
-     width="130" />
+     width="150" />
     <button
      follows="left|top"
      height="20"
      label="Delay Restart"
      layout="topleft"
-     left="10"
+     left_pad="155"
      name="cancel_restart_btn"
      tool_tip="Delay region restart by one hour"
-     top_pad="5"
-     width="130" />
+     top_delta="0"
+     width="150" />
 </panel>
diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt
index 7e9a06492195f2bab6dc7f5150fef143a52d219c..68e2e688cb9f7aefb22967f097caf775bb6e94be 100644
--- a/indra/newview/tests/gpus_results.txt
+++ b/indra/newview/tests/gpus_results.txt
@@ -1,6 +1,6 @@
 GPU String                                                                                               Supported?  Class  Recognizer
 ------------------------------------------------------------------------------------------------------   ----------- -----  ------------------------------------
-ATI                                                                                                                         UNRECOGNIZED
+ATI                                                                                                                         NO MATCH
 ATI 3D-Analyze                                                                                           unsupported    0   ATI 3D-Analyze
 ATI ASUS A9xxx                                                                                           supported      1   ATI ASUS A9xxx
 ATI ASUS AH24xx                                                                                          supported      1   ATI ASUS AH24xx
@@ -25,8 +25,8 @@ ATI All-in-Wonder X1800
 ATI All-in-Wonder X1900                                                                                  supported      3   ATI All-in-Wonder X1900
 ATI All-in-Wonder X600                                                                                   supported      1   ATI All-in-Wonder X600
 ATI All-in-Wonder X800                                                                                   supported      2   ATI All-in-Wonder X800
-ATI Diamond X1xxx                                                                                        supported      0   ATI Radeon X1xxx
-ATI Display Adapter                                                                                                         UNRECOGNIZED
+ATI Diamond X1xxx                                                                                        supported      1   ATI Radeon X1xxx
+ATI Display Adapter                                                                                      supported      0   ATI Display Adapter
 ATI FireGL                                                                                               supported      0   ATI FireGL
 ATI FireGL 5200                                                                                          supported      0   ATI FireGL
 ATI FireGL 5xxx                                                                                          supported      0   ATI FireGL
@@ -40,7 +40,7 @@ ATI M56
 ATI M71                                                                                                  supported      1   ATI M71
 ATI M72                                                                                                  supported      1   ATI M72
 ATI M76                                                                                                  supported      3   ATI M76
-ATI Mobility Radeon                                                                                      supported      0   ATI Mobility Radeon
+ATI Mobility Radeon                                                                                      supported      0   ATI Radeon
 ATI Mobility Radeon 7xxx                                                                                 supported      0   ATI Mobility Radeon 7xxx
 ATI Mobility Radeon 9600                                                                                 supported      0   ATI Mobility Radeon 9600
 ATI Mobility Radeon 9700                                                                                 supported      1   ATI Mobility Radeon 9700
@@ -57,14 +57,14 @@ ATI Mobility Radeon HD 4300
 ATI Mobility Radeon HD 4500                                                                              supported      3   ATI Mobility Radeon HD 4500
 ATI Mobility Radeon HD 4600                                                                              supported      3   ATI Mobility Radeon HD 4600
 ATI Mobility Radeon HD 4800                                                                              supported      3   ATI Mobility Radeon HD 4800
-ATI Mobility Radeon HD 5400                                                                              supported      2   ATI Mobility Radeon HD 5400
-ATI Mobility Radeon HD 5600                                                                              supported      2   ATI Mobility Radeon HD 5600
-ATI Mobility Radeon X1xxx                                                                                supported      0   ATI Radeon X1xxx
-ATI Mobility Radeon X2xxx                                                                                supported      0   ATI Mobility Radeon X2xxx
-ATI Mobility Radeon X3xx                                                                                 supported      1   ATI Mobility Radeon X3xx
-ATI Mobility Radeon X6xx                                                                                 supported      1   ATI Mobility Radeon X6xx
-ATI Mobility Radeon X7xx                                                                                 supported      1   ATI Mobility Radeon X7xx
-ATI Mobility Radeon Xxxx                                                                                 supported      0   ATI Mobility Radeon Xxxx
+ATI Mobility Radeon HD 5400                                                                              supported      3   ATI Mobility Radeon HD 5400
+ATI Mobility Radeon HD 5600                                                                              supported      3   ATI Mobility Radeon HD 5600
+ATI Mobility Radeon X1xxx                                                                                supported      1   ATI Radeon X1xxx
+ATI Mobility Radeon X2xxx                                                                                supported      1   ATI Radeon X2xxx
+ATI Mobility Radeon X3xx                                                                                 supported      0   ATI Radeon X300
+ATI Mobility Radeon X6xx                                                                                 supported      1   ATI Radeon X600
+ATI Mobility Radeon X7xx                                                                                 supported      1   ATI Radeon X700
+ATI Mobility Radeon Xxxx                                                                                 supported      0   ATI Radeon
 ATI RV380                                                                                                supported      0   ATI RV380
 ATI RV530                                                                                                supported      1   ATI RV530
 ATI Radeon 2100                                                                                          supported      0   ATI Radeon 2100
@@ -86,7 +86,7 @@ ATI Radeon HD 2600
 ATI Radeon HD 2900                                                                                       supported      3   ATI Radeon HD 2900
 ATI Radeon HD 3000                                                                                       supported      0   ATI Radeon HD 3000
 ATI Radeon HD 3100                                                                                       supported      1   ATI Radeon HD 3100
-ATI Radeon HD 3200                                                                                       supported      0   ATI Radeon HD 3200
+ATI Radeon HD 3200                                                                                       supported      1   ATI Radeon HD 3200
 ATI Radeon HD 3300                                                                                       supported      1   ATI Radeon HD 3300
 ATI Radeon HD 3400                                                                                       supported      1   ATI Radeon HD 3400
 ATI Radeon HD 3600                                                                                       supported      3   ATI Radeon HD 3600
@@ -103,29 +103,29 @@ ATI Radeon HD 5600
 ATI Radeon HD 5700                                                                                       supported      3   ATI Radeon HD 5700
 ATI Radeon HD 5800                                                                                       supported      3   ATI Radeon HD 5800
 ATI Radeon HD 5900                                                                                       supported      3   ATI Radeon HD 5900
-ATI Radeon HD 6200                                                                                       supported      2   ATI Radeon HD 6200
-ATI Radeon HD 6300                                                                                       supported      2   ATI Radeon HD 6300
+ATI Radeon HD 6200                                                                                       supported      3   ATI Radeon HD 6200
+ATI Radeon HD 6300                                                                                       supported      3   ATI Radeon HD 6300
 ATI Radeon HD 6500                                                                                       supported      3   ATI Radeon HD 6500
 ATI Radeon HD 6800                                                                                       supported      3   ATI Radeon HD 6800
 ATI Radeon HD 6900                                                                                       supported      3   ATI Radeon HD 6900
-ATI Radeon OpenGL                                                                                        supported      0   ATI Radeon
+ATI Radeon OpenGL                                                                                        unsupported    0   ATI Radeon OpenGL
 ATI Radeon RV250                                                                                         supported      0   ATI Radeon RV250
 ATI Radeon RV600                                                                                         supported      1   ATI Radeon RV600
 ATI Radeon RX9550                                                                                        supported      1   ATI Radeon RX9550
 ATI Radeon VE                                                                                            unsupported    0   ATI Radeon VE
-ATI Radeon X1000                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X1200                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X1300                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X13xx                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X1400                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X1500                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X1600                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X16xx                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X1700                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X1800                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X1900                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X19xx                                                                                         supported      0   ATI Radeon X1xxx
-ATI Radeon X1xxx                                                                                         supported      0   ATI Radeon X1xxx
+ATI Radeon X1000                                                                                         supported      1   ATI Radeon X1xxx
+ATI Radeon X1200                                                                                         supported      1   ATI Radeon X1xxx
+ATI Radeon X1300                                                                                         supported      1   ATI Radeon X13xx
+ATI Radeon X13xx                                                                                         supported      1   ATI Radeon X13xx
+ATI Radeon X1400                                                                                         supported      1   ATI Radeon X1xxx
+ATI Radeon X1500                                                                                         supported      2   ATI Radeon X15xx
+ATI Radeon X1600                                                                                         supported      2   ATI Radeon X16xx
+ATI Radeon X16xx                                                                                         supported      2   ATI Radeon X16xx
+ATI Radeon X1700                                                                                         supported      2   ATI Radeon X17xx
+ATI Radeon X1800                                                                                         supported      3   ATI Radeon X18xx
+ATI Radeon X1900                                                                                         supported      3   ATI Radeon X19xx
+ATI Radeon X19xx                                                                                         supported      3   ATI Radeon X19xx
+ATI Radeon X1xxx                                                                                         supported      1   ATI Radeon X1xxx
 ATI Radeon X300                                                                                          supported      0   ATI Radeon X300
 ATI Radeon X500                                                                                          supported      0   ATI Radeon X500
 ATI Radeon X600                                                                                          supported      1   ATI Radeon X600
@@ -138,56 +138,74 @@ ATI Technologies Inc.
 ATI Technologies Inc.  x86                                                                               supported      0   ATI Technologies
 ATI Technologies Inc.  x86/SSE2                                                                          supported      0   ATI Technologies
 ATI Technologies Inc. (Vista) ATI Mobility Radeon HD 5730                                                supported      3   ATI Mobility Radeon HD 5700
-ATI Technologies Inc. 256MB ATI Radeon X1300PRO x86/SSE2                                                 supported      0   ATI Radeon X1xxx
+ATI Technologies Inc. 128MB ATI Radeon X1300 x86/SSE2                                                    supported      1   ATI Radeon X13xx
+ATI Technologies Inc. 256MB ATI Radeon X1300PRO x86/SSE2                                                 supported      1   ATI Radeon X13xx
 ATI Technologies Inc. AMD 760G                                                                           supported      1   ATI 760G/Radeon 3000
 ATI Technologies Inc. AMD 760G (Microsoft WDDM 1.1)                                                      supported      1   ATI 760G/Radeon 3000
 ATI Technologies Inc. AMD 780L                                                                           supported      1   ATI 780L/Radeon 3000
 ATI Technologies Inc. AMD FirePro 2270                                                                   supported      1   ATI FirePro 2000
-ATI Technologies Inc. AMD M860G with ATI Mobility Radeon 4100                                            supported      0   ATI Mobility Radeon 4100
+ATI Technologies Inc. AMD M860G with ATI Mobility Radeon 4100                                            supported      1   ATI Mobility Radeon 4100
 ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4200                                         supported      2   ATI Mobility Radeon HD 4200
 ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4250                                         supported      2   ATI Mobility Radeon HD 4200
+ATI Technologies Inc. AMD RADEON HD 6350                                                                 supported      3   ATI Radeon HD 6300
 ATI Technologies Inc. AMD RADEON HD 6450                                                                 supported      3   ATI Radeon HD 6400
-ATI Technologies Inc. AMD Radeon HD 6200 series Graphics                                                 supported      2   ATI Radeon HD 6200
-ATI Technologies Inc. AMD Radeon HD 6250 Graphics                                                        supported      2   ATI Radeon HD 6200
-ATI Technologies Inc. AMD Radeon HD 6300 series Graphics                                                 supported      2   ATI Radeon HD 6300
-ATI Technologies Inc. AMD Radeon HD 6300M Series                                                         supported      2   ATI Radeon HD 6300
-ATI Technologies Inc. AMD Radeon HD 6310 Graphics                                                        supported      2   ATI Radeon HD 6300
-ATI Technologies Inc. AMD Radeon HD 6310M                                                                supported      2   ATI Radeon HD 6300
-ATI Technologies Inc. AMD Radeon HD 6330M                                                                supported      2   ATI Radeon HD 6300
-ATI Technologies Inc. AMD Radeon HD 6350                                                                 supported      2   ATI Radeon HD 6300
-ATI Technologies Inc. AMD Radeon HD 6370M                                                                supported      2   ATI Radeon HD 6300
-ATI Technologies Inc. AMD Radeon HD 6400M Series                                                         supported      3   ATI Radeon HD 6400
+ATI Technologies Inc. AMD RADEON HD 6670                                                                 supported      3   ATI Radeon HD 6600
+ATI Technologies Inc. AMD Radeon 6600M and 6700M Series                                                  supported      0   ATI Technologies
+ATI Technologies Inc. AMD Radeon HD 6200 series Graphics                                                 supported      3   ATI Radeon HD 6200
+ATI Technologies Inc. AMD Radeon HD 6250 Graphics                                                        supported      3   ATI Radeon HD 6200
+ATI Technologies Inc. AMD Radeon HD 6290 Graphics                                                        supported      3   ATI Radeon HD 6200
+ATI Technologies Inc. AMD Radeon HD 6300 series Graphics                                                 supported      3   ATI Radeon HD 6300
+ATI Technologies Inc. AMD Radeon HD 6300M Series                                                         supported      3   ATI Radeon HD 6300
+ATI Technologies Inc. AMD Radeon HD 6310 Graphics                                                        supported      3   ATI Radeon HD 6300
+ATI Technologies Inc. AMD Radeon HD 6310M                                                                supported      3   ATI Radeon HD 6300
+ATI Technologies Inc. AMD Radeon HD 6330M                                                                supported      3   ATI Radeon HD 6300
+ATI Technologies Inc. AMD Radeon HD 6350                                                                 supported      3   ATI Radeon HD 6300
+ATI Technologies Inc. AMD Radeon HD 6370M                                                                supported      3   ATI Radeon HD 6300
+ATI Technologies Inc. AMD Radeon HD 6400M Series                                                         supported      3   ATI Radeon HD 64xx
 ATI Technologies Inc. AMD Radeon HD 6450                                                                 supported      3   ATI Radeon HD 6400
-ATI Technologies Inc. AMD Radeon HD 6470M                                                                supported      3   ATI Radeon HD 6400
-ATI Technologies Inc. AMD Radeon HD 6490M                                                                supported      3   ATI Radeon HD 6400
-ATI Technologies Inc. AMD Radeon HD 6500M/5600/5700 Series                                               supported      3   ATI Radeon HD 6500
-ATI Technologies Inc. AMD Radeon HD 6530M                                                                supported      3   ATI Radeon HD 6500
-ATI Technologies Inc. AMD Radeon HD 6550M                                                                supported      3   ATI Radeon HD 6500
+ATI Technologies Inc. AMD Radeon HD 6470M                                                                supported      3   ATI Radeon HD 64xx
+ATI Technologies Inc. AMD Radeon HD 6490M                                                                supported      3   ATI Radeon HD 64xx
+ATI Technologies Inc. AMD Radeon HD 6500 Series                                                          supported      3   ATI Radeon HD 6500
+ATI Technologies Inc. AMD Radeon HD 6500M Series                                                         supported      3   ATI Radeon HD 65xx
+ATI Technologies Inc. AMD Radeon HD 6500M/5600/5700 Series                                               supported      3   ATI Radeon HD 65xx
+ATI Technologies Inc. AMD Radeon HD 6530M                                                                supported      3   ATI Radeon HD 65xx
+ATI Technologies Inc. AMD Radeon HD 6550M                                                                supported      3   ATI Radeon HD 65xx
 ATI Technologies Inc. AMD Radeon HD 6570                                                                 supported      3   ATI Radeon HD 6500
-ATI Technologies Inc. AMD Radeon HD 6570M                                                                supported      3   ATI Radeon HD 6500
-ATI Technologies Inc. AMD Radeon HD 6570M/5700 Series                                                    supported      3   ATI Radeon HD 6500
+ATI Technologies Inc. AMD Radeon HD 6570M                                                                supported      3   ATI Radeon HD 65xx
+ATI Technologies Inc. AMD Radeon HD 6570M/5700 Series                                                    supported      3   ATI Radeon HD 65xx
+ATI Technologies Inc. AMD Radeon HD 6600 Series                                                          supported      3   ATI Radeon HD 6600
 ATI Technologies Inc. AMD Radeon HD 6600M Series                                                         supported      3   ATI Radeon HD 66xx
+ATI Technologies Inc. AMD Radeon HD 6630M                                                                supported      3   ATI Radeon HD 66xx
 ATI Technologies Inc. AMD Radeon HD 6650M                                                                supported      3   ATI Radeon HD 66xx
-ATI Technologies Inc. AMD Radeon HD 6670                                                                 supported      3   ATI Radeon HD 66xx
+ATI Technologies Inc. AMD Radeon HD 6670                                                                 supported      3   ATI Radeon HD 6600
 ATI Technologies Inc. AMD Radeon HD 6700 Series                                                          supported      3   ATI Radeon HD 6700
 ATI Technologies Inc. AMD Radeon HD 6750                                                                 supported      3   ATI Radeon HD 6700
 ATI Technologies Inc. AMD Radeon HD 6750M                                                                supported      3   ATI Radeon HD 6700
 ATI Technologies Inc. AMD Radeon HD 6770                                                                 supported      3   ATI Radeon HD 6700
+ATI Technologies Inc. AMD Radeon HD 6770M                                                                supported      3   ATI Radeon HD 6700
 ATI Technologies Inc. AMD Radeon HD 6800 Series                                                          supported      3   ATI Radeon HD 6800
+ATI Technologies Inc. AMD Radeon HD 6800M Series                                                         supported      3   ATI Radeon HD 6800
+ATI Technologies Inc. AMD Radeon HD 6850                                                                 supported      3   ATI Radeon HD 6800
 ATI Technologies Inc. AMD Radeon HD 6850M                                                                supported      3   ATI Radeon HD 6800
 ATI Technologies Inc. AMD Radeon HD 6870                                                                 supported      3   ATI Radeon HD 6800
 ATI Technologies Inc. AMD Radeon HD 6870M                                                                supported      3   ATI Radeon HD 6800
 ATI Technologies Inc. AMD Radeon HD 6900 Series                                                          supported      3   ATI Radeon HD 6900
+ATI Technologies Inc. AMD Radeon HD 6900M Series                                                         supported      3   ATI Radeon HD 6900
 ATI Technologies Inc. AMD Radeon HD 6970M                                                                supported      3   ATI Radeon HD 6900
 ATI Technologies Inc. AMD Radeon HD 6990                                                                 supported      3   ATI Radeon HD 6900
-ATI Technologies Inc. AMD Radeon(TM) HD 6470M                                                            supported      0   ATI Technologies
+ATI Technologies Inc. AMD Radeon(TM) HD 6470M                                                            supported      3   ATI Radeon HD 64xx
+ATI Technologies Inc. AMD Radeon(TM) HD 6480G                                                            supported      3   ATI Radeon HD 64xx
+ATI Technologies Inc. AMD Radeon(TM) HD 6520G                                                            supported      3   ATI Radeon HD 65xx
+ATI Technologies Inc. AMD Radeon(TM) HD 6620G                                                            supported      3   ATI Radeon HD 66xx
+ATI Technologies Inc. AMD Radeon(TM) HD 6630M                                                            supported      3   ATI Radeon HD 66xx
 ATI Technologies Inc. ASUS 5870 Eyefinity 6                                                              supported      0   ATI Technologies
+ATI Technologies Inc. ASUS A9550 Series                                                                  supported      1   ATI ASUS A9xxx
 ATI Technologies Inc. ASUS AH2600 Series                                                                 supported      3   ATI ASUS AH26xx
 ATI Technologies Inc. ASUS AH3450 Series                                                                 supported      1   ATI ASUS AH34xx
 ATI Technologies Inc. ASUS AH3650 Series                                                                 supported      3   ATI ASUS AH36xx
 ATI Technologies Inc. ASUS AH4650 Series                                                                 supported      3   ATI ASUS AH46xx
-ATI Technologies Inc. ASUS ARES                                                                          supported      0   ATI Technologies
-ATI Technologies Inc. ASUS EAH2900 Series                                                                supported      0   ATI Technologies
+ATI Technologies Inc. ASUS ARES                                                                          supported      3   ATI ASUS ARES
+ATI Technologies Inc. ASUS EAH2900 Series                                                                supported      3   ATI ASUS EAH29xx
 ATI Technologies Inc. ASUS EAH3450 Series                                                                supported      1   ATI ASUS AH34xx
 ATI Technologies Inc. ASUS EAH3650 Series                                                                supported      3   ATI ASUS AH36xx
 ATI Technologies Inc. ASUS EAH4350 series                                                                supported      1   ATI ASUS EAH43xx
@@ -208,10 +226,13 @@ ATI Technologies Inc. ASUS EAH5830 Series
 ATI Technologies Inc. ASUS EAH5850 Series                                                                supported      3   ATI ASUS EAH58xx
 ATI Technologies Inc. ASUS EAH5870 Series                                                                supported      3   ATI ASUS EAH58xx
 ATI Technologies Inc. ASUS EAH5970 Series                                                                supported      0   ATI Technologies
-ATI Technologies Inc. ASUS EAH6850 Series                                                                supported      0   ATI Technologies
-ATI Technologies Inc. ASUS EAH6870 Series                                                                supported      0   ATI Technologies
-ATI Technologies Inc. ASUS EAH6950 Series                                                                supported      0   ATI Technologies
-ATI Technologies Inc. ASUS EAH6970 Series                                                                supported      0   ATI Technologies
+ATI Technologies Inc. ASUS EAH6450 Series                                                                supported      3   ATI ASUS EAH6xxx
+ATI Technologies Inc. ASUS EAH6570 Series                                                                supported      3   ATI ASUS EAH6xxx
+ATI Technologies Inc. ASUS EAH6670 Series                                                                supported      3   ATI ASUS EAH6xxx
+ATI Technologies Inc. ASUS EAH6850 Series                                                                supported      3   ATI ASUS EAH6xxx
+ATI Technologies Inc. ASUS EAH6870 Series                                                                supported      3   ATI ASUS EAH6xxx
+ATI Technologies Inc. ASUS EAH6950 Series                                                                supported      3   ATI ASUS EAH6xxx
+ATI Technologies Inc. ASUS EAH6970 Series                                                                supported      3   ATI ASUS EAH6xxx
 ATI Technologies Inc. ASUS EAHG4670 series                                                               supported      0   ATI Technologies
 ATI Technologies Inc. ASUS Extreme AX600 Series                                                          supported      0   ATI Technologies
 ATI Technologies Inc. ASUS Extreme AX600XT-TD                                                            supported      0   ATI Technologies
@@ -232,19 +253,23 @@ ATI Technologies Inc. ATI FirePro V4800
 ATI Technologies Inc. ATI FirePro V4800 (FireGL)                                                         supported      0   ATI FireGL
 ATI Technologies Inc. ATI FirePro V5800                                                                  supported      3   ATI FirePro 5000
 ATI Technologies Inc. ATI FirePro V7800                                                                  supported      3   ATI FirePro 7000
-ATI Technologies Inc. ATI MOBILITY RADEON 9XXX x86/SSE2                                                  supported      0   ATI Mobility Radeon Xxxx
+ATI Technologies Inc. ATI MOBILITY RADEON 9600/9700 Series                                               supported      1   ATI Mobility Radeon 9700
+ATI Technologies Inc. ATI MOBILITY RADEON 9XXX x86/SSE2                                                  supported      0   ATI Technologies
+ATI Technologies Inc. ATI MOBILITY RADEON HD 2300                                                        supported      1   ATI Mobility Radeon HD 2300
 ATI Technologies Inc. ATI MOBILITY RADEON HD 3450                                                        supported      2   ATI Mobility Radeon HD 3400
-ATI Technologies Inc. ATI MOBILITY RADEON X1600                                                          supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI MOBILITY RADEON X2300                                                          supported      0   ATI Mobility Radeon X2xxx
-ATI Technologies Inc. ATI MOBILITY RADEON X2300 HD x86/SSE2                                              supported      0   ATI Mobility Radeon X2xxx
-ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2                                      supported      0   ATI Mobility Radeon X2xxx
-ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/SSE2                                                 supported      0   ATI Mobility Radeon X2xxx
-ATI Technologies Inc. ATI MOBILITY RADEON X300                                                           supported      1   ATI Mobility Radeon X3xx
-ATI Technologies Inc. ATI MOBILITY RADEON X600                                                           supported      1   ATI Mobility Radeon X6xx
-ATI Technologies Inc. ATI MOBILITY RADEON XPRESS 200                                                     supported      0   ATI Mobility Radeon Xxxx
+ATI Technologies Inc. ATI MOBILITY RADEON HD 3650                                                        supported      3   ATI Mobility Radeon HD 3600
+ATI Technologies Inc. ATI MOBILITY RADEON X1600                                                          supported      2   ATI Radeon X16xx
+ATI Technologies Inc. ATI MOBILITY RADEON X2300                                                          supported      1   ATI Radeon X2xxx
+ATI Technologies Inc. ATI MOBILITY RADEON X2300 HD x86/SSE2                                              supported      1   ATI Radeon X2xxx
+ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2                                      supported      1   ATI Radeon X2xxx
+ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/SSE2                                                 supported      1   ATI Radeon X2xxx
+ATI Technologies Inc. ATI MOBILITY RADEON X300                                                           supported      0   ATI Radeon X300
+ATI Technologies Inc. ATI MOBILITY RADEON X600                                                           supported      1   ATI Radeon X600
+ATI Technologies Inc. ATI MOBILITY RADEON X700                                                           supported      1   ATI Radeon X700
+ATI Technologies Inc. ATI MOBILITY RADEON XPRESS 200                                                     supported      0   ATI Radeon Xpress
 ATI Technologies Inc. ATI Mobility FireGL V5700                                                          supported      1   ATI FireGL 5xxx
-ATI Technologies Inc. ATI Mobility Radeon 4100                                                           supported      0   ATI Mobility Radeon 4100
-ATI Technologies Inc. ATI Mobility Radeon Graphics                                                       supported      0   ATI Mobility Radeon
+ATI Technologies Inc. ATI Mobility Radeon 4100                                                           supported      1   ATI Mobility Radeon 4100
+ATI Technologies Inc. ATI Mobility Radeon Graphics                                                       supported      0   ATI Technologies
 ATI Technologies Inc. ATI Mobility Radeon HD 2300                                                        supported      1   ATI Mobility Radeon HD 2300
 ATI Technologies Inc. ATI Mobility Radeon HD 2400                                                        supported      1   ATI Mobility Radeon HD 2400
 ATI Technologies Inc. ATI Mobility Radeon HD 2400 XT                                                     supported      1   ATI Mobility Radeon HD 2400
@@ -252,17 +277,20 @@ ATI Technologies Inc. ATI Mobility Radeon HD 2600
 ATI Technologies Inc. ATI Mobility Radeon HD 2600 XT                                                     supported      3   ATI Mobility Radeon HD 2600
 ATI Technologies Inc. ATI Mobility Radeon HD 2700                                                        supported      3   ATI Mobility Radeon HD 2700
 ATI Technologies Inc. ATI Mobility Radeon HD 3400 Series                                                 supported      2   ATI Mobility Radeon HD 3400
+ATI Technologies Inc. ATI Mobility Radeon HD 3410                                                        supported      2   ATI Mobility Radeon HD 3400
 ATI Technologies Inc. ATI Mobility Radeon HD 3430                                                        supported      2   ATI Mobility Radeon HD 3400
 ATI Technologies Inc. ATI Mobility Radeon HD 3450                                                        supported      2   ATI Mobility Radeon HD 3400
 ATI Technologies Inc. ATI Mobility Radeon HD 3470                                                        supported      2   ATI Mobility Radeon HD 3400
 ATI Technologies Inc. ATI Mobility Radeon HD 3470 Hybrid X2                                              supported      2   ATI Mobility Radeon HD 3400
 ATI Technologies Inc. ATI Mobility Radeon HD 3650                                                        supported      3   ATI Mobility Radeon HD 3600
+ATI Technologies Inc. ATI Mobility Radeon HD 3670                                                        supported      3   ATI Mobility Radeon HD 3600
 ATI Technologies Inc. ATI Mobility Radeon HD 4200                                                        supported      2   ATI Mobility Radeon HD 4200
 ATI Technologies Inc. ATI Mobility Radeon HD 4200 Series                                                 supported      2   ATI Mobility Radeon HD 4200
 ATI Technologies Inc. ATI Mobility Radeon HD 4225                                                        supported      2   ATI Mobility Radeon HD 4200
 ATI Technologies Inc. ATI Mobility Radeon HD 4225 Series                                                 supported      2   ATI Mobility Radeon HD 4200
 ATI Technologies Inc. ATI Mobility Radeon HD 4250                                                        supported      2   ATI Mobility Radeon HD 4200
 ATI Technologies Inc. ATI Mobility Radeon HD 4250 Graphics                                               supported      2   ATI Mobility Radeon HD 4200
+ATI Technologies Inc. ATI Mobility Radeon HD 4250 Series                                                 supported      2   ATI Mobility Radeon HD 4200
 ATI Technologies Inc. ATI Mobility Radeon HD 4270                                                        supported      2   ATI Mobility Radeon HD 4200
 ATI Technologies Inc. ATI Mobility Radeon HD 4300 Series                                                 supported      2   ATI Mobility Radeon HD 4300
 ATI Technologies Inc. ATI Mobility Radeon HD 4300/4500 Series                                            supported      2   ATI Mobility Radeon HD 4300
@@ -283,53 +311,55 @@ ATI Technologies Inc. ATI Mobility Radeon HD 4670
 ATI Technologies Inc. ATI Mobility Radeon HD 4830 Series                                                 supported      3   ATI Mobility Radeon HD 4800
 ATI Technologies Inc. ATI Mobility Radeon HD 4850                                                        supported      3   ATI Mobility Radeon HD 4800
 ATI Technologies Inc. ATI Mobility Radeon HD 4870                                                        supported      3   ATI Mobility Radeon HD 4800
-ATI Technologies Inc. ATI Mobility Radeon HD 5000                                                        supported      0   ATI Mobility Radeon
-ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series                                                 supported      0   ATI Mobility Radeon
-ATI Technologies Inc. ATI Mobility Radeon HD 5145                                                        supported      2   ATI Mobility Radeon HD 5100
-ATI Technologies Inc. ATI Mobility Radeon HD 5165                                                        supported      2   ATI Mobility Radeon HD 5100
+ATI Technologies Inc. ATI Mobility Radeon HD 5000                                                        supported      0   ATI Technologies
+ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series                                                 supported      0   ATI Technologies
+ATI Technologies Inc. ATI Mobility Radeon HD 5145                                                        supported      3   ATI Mobility Radeon HD 5100
+ATI Technologies Inc. ATI Mobility Radeon HD 5165                                                        supported      3   ATI Mobility Radeon HD 5100
 ATI Technologies Inc. ATI Mobility Radeon HD 530v                                                        supported      1   ATI Mobility Radeon HD 530v
-ATI Technologies Inc. ATI Mobility Radeon HD 5400 Series                                                 supported      2   ATI Mobility Radeon HD 5400
+ATI Technologies Inc. ATI Mobility Radeon HD 5400 Series                                                 supported      3   ATI Mobility Radeon HD 5400
 ATI Technologies Inc. ATI Mobility Radeon HD 540v                                                        supported      2   ATI Mobility Radeon HD 540v
-ATI Technologies Inc. ATI Mobility Radeon HD 5430                                                        supported      2   ATI Mobility Radeon HD 5400
-ATI Technologies Inc. ATI Mobility Radeon HD 5450                                                        supported      2   ATI Mobility Radeon HD 5400
-ATI Technologies Inc. ATI Mobility Radeon HD 5450 Series                                                 supported      2   ATI Mobility Radeon HD 5400
+ATI Technologies Inc. ATI Mobility Radeon HD 5430                                                        supported      3   ATI Mobility Radeon HD 5400
+ATI Technologies Inc. ATI Mobility Radeon HD 5450                                                        supported      3   ATI Mobility Radeon HD 5400
+ATI Technologies Inc. ATI Mobility Radeon HD 5450 Series                                                 supported      3   ATI Mobility Radeon HD 5400
 ATI Technologies Inc. ATI Mobility Radeon HD 545v                                                        supported      2   ATI Mobility Radeon HD 545v
-ATI Technologies Inc. ATI Mobility Radeon HD 5470                                                        supported      2   ATI Mobility Radeon HD 5400
+ATI Technologies Inc. ATI Mobility Radeon HD 5470                                                        supported      3   ATI Mobility Radeon HD 5400
 ATI Technologies Inc. ATI Mobility Radeon HD 550v                                                        supported      2   ATI Mobility Radeon HD 550v
-ATI Technologies Inc. ATI Mobility Radeon HD 5600/5700 Series                                            supported      2   ATI Mobility Radeon HD 5600
+ATI Technologies Inc. ATI Mobility Radeon HD 5600/5700 Series                                            supported      3   ATI Mobility Radeon HD 5600
 ATI Technologies Inc. ATI Mobility Radeon HD 560v                                                        supported      2   ATI Mobility Radeon HD 560v
-ATI Technologies Inc. ATI Mobility Radeon HD 5650                                                        supported      2   ATI Mobility Radeon HD 5600
+ATI Technologies Inc. ATI Mobility Radeon HD 5650                                                        supported      3   ATI Mobility Radeon HD 5600
 ATI Technologies Inc. ATI Mobility Radeon HD 5700 Series                                                 supported      3   ATI Mobility Radeon HD 5700
 ATI Technologies Inc. ATI Mobility Radeon HD 5730                                                        supported      3   ATI Mobility Radeon HD 5700
-ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series                                                 supported      0   ATI Mobility Radeon
-ATI Technologies Inc. ATI Mobility Radeon HD 5850                                                        supported      0   ATI Mobility Radeon
-ATI Technologies Inc. ATI Mobility Radeon HD 5870                                                        supported      0   ATI Mobility Radeon
-ATI Technologies Inc. ATI Mobility Radeon HD 6300 series                                                 supported      2   ATI Mobility Radeon HD 6300
-ATI Technologies Inc. ATI Mobility Radeon HD 6370                                                        supported      2   ATI Mobility Radeon HD 6300
+ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series                                                 supported      3   ATI Radeon HD 5800
+ATI Technologies Inc. ATI Mobility Radeon HD 5830 Series                                                 supported      3   ATI Radeon HD 5800
+ATI Technologies Inc. ATI Mobility Radeon HD 5850                                                        supported      3   ATI Radeon HD 5800
+ATI Technologies Inc. ATI Mobility Radeon HD 5870                                                        supported      3   ATI Radeon HD 5800
+ATI Technologies Inc. ATI Mobility Radeon HD 6300 series                                                 supported      3   ATI Mobility Radeon HD 6300
+ATI Technologies Inc. ATI Mobility Radeon HD 6370                                                        supported      3   ATI Mobility Radeon HD 6300
 ATI Technologies Inc. ATI Mobility Radeon HD 6470M                                                       supported      3   ATI Mobility Radeon HD 6400M
 ATI Technologies Inc. ATI Mobility Radeon HD 6550                                                        supported      3   ATI Mobility Radeon HD 6500M
 ATI Technologies Inc. ATI Mobility Radeon HD 6570                                                        supported      3   ATI Mobility Radeon HD 6500M
-ATI Technologies Inc. ATI Mobility Radeon X1300                                                          supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Mobility Radeon X1300 x86/MMX/3DNow!/SSE2                                      supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Mobility Radeon X1300 x86/SSE2                                                 supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Mobility Radeon X1350                                                          supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Mobility Radeon X1350 x86/SSE2                                                 supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Mobility Radeon X1400                                                          supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Mobility Radeon X1400 x86/SSE2                                                 supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Mobility Radeon X1600                                                          supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Mobility Radeon X1600 x86/SSE2                                                 supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Mobility Radeon X1700 x86/SSE2                                                 supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Mobility Radeon X2300                                                          supported      0   ATI Mobility Radeon X2xxx
-ATI Technologies Inc. ATI Mobility Radeon X2300 (Omega 3.8.442)                                          supported      0   ATI Mobility Radeon X2xxx
-ATI Technologies Inc. ATI Mobility Radeon X2300 x86                                                      supported      0   ATI Mobility Radeon X2xxx
-ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2                                      supported      0   ATI Mobility Radeon X2xxx
-ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2                                                 supported      0   ATI Mobility Radeon X2xxx
-ATI Technologies Inc. ATI Mobility Radeon X2500                                                          supported      0   ATI Mobility Radeon X2xxx
-ATI Technologies Inc. ATI Mobility Radeon X2500 x86/SSE2                                                 supported      0   ATI Mobility Radeon X2xxx
+ATI Technologies Inc. ATI Mobility Radeon X1300                                                          supported      1   ATI Radeon X13xx
+ATI Technologies Inc. ATI Mobility Radeon X1300 x86/MMX/3DNow!/SSE2                                      supported      1   ATI Radeon X13xx
+ATI Technologies Inc. ATI Mobility Radeon X1300 x86/SSE2                                                 supported      1   ATI Radeon X13xx
+ATI Technologies Inc. ATI Mobility Radeon X1350                                                          supported      1   ATI Radeon X13xx
+ATI Technologies Inc. ATI Mobility Radeon X1350 x86/SSE2                                                 supported      1   ATI Radeon X13xx
+ATI Technologies Inc. ATI Mobility Radeon X1400                                                          supported      1   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Mobility Radeon X1400 x86/SSE2                                                 supported      1   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Mobility Radeon X1600                                                          supported      2   ATI Radeon X16xx
+ATI Technologies Inc. ATI Mobility Radeon X1600 x86/SSE2                                                 supported      2   ATI Radeon X16xx
+ATI Technologies Inc. ATI Mobility Radeon X1700 x86/SSE2                                                 supported      2   ATI Radeon X17xx
+ATI Technologies Inc. ATI Mobility Radeon X2300                                                          supported      1   ATI Radeon X2xxx
+ATI Technologies Inc. ATI Mobility Radeon X2300 (Omega 3.8.442)                                          supported      1   ATI Radeon X2xxx
+ATI Technologies Inc. ATI Mobility Radeon X2300 x86                                                      supported      1   ATI Radeon X2xxx
+ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2                                      supported      1   ATI Radeon X2xxx
+ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2                                                 supported      1   ATI Radeon X2xxx
+ATI Technologies Inc. ATI Mobility Radeon X2500                                                          supported      1   ATI Radeon X2xxx
+ATI Technologies Inc. ATI Mobility Radeon X2500 x86/SSE2                                                 supported      1   ATI Radeon X2xxx
 ATI Technologies Inc. ATI Mobility Radeon. HD 530v                                                       supported      1   ATI Mobility Radeon HD 530v
-ATI Technologies Inc. ATI Mobility Radeon. HD 5470                                                       supported      2   ATI Mobility Radeon HD 5400
-ATI Technologies Inc. ATI RADEON HD 3200 T25XX by CAMILO                                                 supported      0   ATI Radeon HD 3200
+ATI Technologies Inc. ATI Mobility Radeon. HD 5470                                                       supported      3   ATI Mobility Radeon HD 5400
+ATI Technologies Inc. ATI RADEON HD 3200 T25XX by CAMILO                                                 supported      1   ATI Radeon HD 3200
 ATI Technologies Inc. ATI RADEON XPRESS 1100                                                             supported      0   ATI Radeon Xpress
+ATI Technologies Inc. ATI RADEON XPRESS 1100 x86/SSE2                                                    supported      0   ATI Radeon Xpress
 ATI Technologies Inc. ATI RADEON XPRESS 200 Series                                                       supported      0   ATI Radeon Xpress
 ATI Technologies Inc. ATI RADEON XPRESS 200 Series x86/SSE2                                              supported      0   ATI Radeon Xpress
 ATI Technologies Inc. ATI RADEON XPRESS 200M SERIES                                                      supported      0   ATI Radeon Xpress
@@ -341,14 +371,15 @@ ATI Technologies Inc. ATI Radeon 3000
 ATI Technologies Inc. ATI Radeon 3000 Graphics                                                           supported      0   ATI Radeon 3000
 ATI Technologies Inc. ATI Radeon 3100 Graphics                                                           supported      1   ATI Radeon 3100
 ATI Technologies Inc. ATI Radeon 5xxx series                                                             supported      3   ATI Radeon 5xxx
-ATI Technologies Inc. ATI Radeon 9550 / X1050 Series                                                     supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/MMX/3DNow!/SSE                                  supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/SSE2                                            supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon 9550 / X1050 Series(Microsoft - WDDM)                                   supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon 9600 / X1050 Series                                                     supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon 9600/9550/X1050 Series                                                  supported      0   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Radeon 9550 / X1050 Series                                                     supported      0   ATI Radeon 9500
+ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/MMX/3DNow!/SSE                                  supported      0   ATI Radeon 9500
+ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/SSE2                                            supported      0   ATI Radeon 9500
+ATI Technologies Inc. ATI Radeon 9550 / X1050 Series(Microsoft - WDDM)                                   supported      0   ATI Radeon 9500
+ATI Technologies Inc. ATI Radeon 9600 / X1050 Series                                                     supported      0   ATI Radeon 9600
+ATI Technologies Inc. ATI Radeon 9600/9550/X1050 Series                                                  supported      0   ATI Radeon 9600
 ATI Technologies Inc. ATI Radeon BA Prototype OpenGL Engine                                              supported      0   ATI Technologies
 ATI Technologies Inc. ATI Radeon BB Prototype OpenGL Engine                                              supported      0   ATI Technologies
+ATI Technologies Inc. ATI Radeon Broadway XT Prototype OpenGL Engine                                     supported      0   ATI Technologies
 ATI Technologies Inc. ATI Radeon Cedar PRO Prototype OpenGL Engine                                       supported      2   AMD CEDAR (HD 5450)
 ATI Technologies Inc. ATI Radeon Cypress PRO Prototype OpenGL Engine                                     supported      3   AMD CYPRESS (HD 5800)
 ATI Technologies Inc. ATI Radeon Graphics Processor                                                      supported      0   ATI Technologies
@@ -370,7 +401,7 @@ ATI Technologies Inc. ATI Radeon HD 2600 Series
 ATI Technologies Inc. ATI Radeon HD 2600 XT                                                              supported      2   ATI Radeon HD 2600
 ATI Technologies Inc. ATI Radeon HD 2900 GT                                                              supported      3   ATI Radeon HD 2900
 ATI Technologies Inc. ATI Radeon HD 2900 XT                                                              supported      3   ATI Radeon HD 2900
-ATI Technologies Inc. ATI Radeon HD 3200 Graphics                                                        supported      0   ATI Radeon HD 3200
+ATI Technologies Inc. ATI Radeon HD 3200 Graphics                                                        supported      1   ATI Radeon HD 3200
 ATI Technologies Inc. ATI Radeon HD 3300 Graphics                                                        supported      1   ATI Radeon HD 3300
 ATI Technologies Inc. ATI Radeon HD 3400 Series                                                          supported      1   ATI Radeon HD 3400
 ATI Technologies Inc. ATI Radeon HD 3450                                                                 supported      1   ATI Radeon HD 3400
@@ -392,6 +423,7 @@ ATI Technologies Inc. ATI Radeon HD 4250
 ATI Technologies Inc. ATI Radeon HD 4250 Graphics                                                        supported      1   ATI Radeon HD 4200
 ATI Technologies Inc. ATI Radeon HD 4270                                                                 supported      1   ATI Radeon HD 4200
 ATI Technologies Inc. ATI Radeon HD 4290                                                                 supported      1   ATI Radeon HD 4200
+ATI Technologies Inc. ATI Radeon HD 4290 (Engineering Sample)                                            supported      1   ATI Radeon HD 4200
 ATI Technologies Inc. ATI Radeon HD 4300 Series                                                          supported      1   ATI Radeon HD 4300
 ATI Technologies Inc. ATI Radeon HD 4300/4500 Series                                                     supported      1   ATI Radeon HD 4300
 ATI Technologies Inc. ATI Radeon HD 4350                                                                 supported      1   ATI Radeon HD 4300
@@ -418,9 +450,11 @@ ATI Technologies Inc. ATI Radeon HD 4870 OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 4870 X2                                                              supported      3   ATI Radeon HD 4800
 ATI Technologies Inc. ATI Radeon HD 5400 Series                                                          supported      3   ATI Radeon HD 5400
 ATI Technologies Inc. ATI Radeon HD 5450                                                                 supported      3   ATI Radeon HD 5400
+ATI Technologies Inc. ATI Radeon HD 5470                                                                 supported      3   ATI Radeon HD 5400
 ATI Technologies Inc. ATI Radeon HD 5500 Series                                                          supported      3   ATI Radeon HD 5500
 ATI Technologies Inc. ATI Radeon HD 5570                                                                 supported      3   ATI Radeon HD 5500
 ATI Technologies Inc. ATI Radeon HD 5600 Series                                                          supported      3   ATI Radeon HD 5600
+ATI Technologies Inc. ATI Radeon HD 5600/5700                                                            supported      3   ATI Radeon HD 5600
 ATI Technologies Inc. ATI Radeon HD 5630                                                                 supported      3   ATI Radeon HD 5600
 ATI Technologies Inc. ATI Radeon HD 5670                                                                 supported      3   ATI Radeon HD 5600
 ATI Technologies Inc. ATI Radeon HD 5670 OpenGL Engine                                                   supported      3   ATI Radeon HD 5600
@@ -435,13 +469,14 @@ ATI Technologies Inc. ATI Radeon HD 5870
 ATI Technologies Inc. ATI Radeon HD 5870 OpenGL Engine                                                   supported      3   ATI Radeon HD 5800
 ATI Technologies Inc. ATI Radeon HD 5900 Series                                                          supported      3   ATI Radeon HD 5900
 ATI Technologies Inc. ATI Radeon HD 5970                                                                 supported      3   ATI Radeon HD 5900
-ATI Technologies Inc. ATI Radeon HD 6230                                                                 supported      2   ATI Radeon HD 6200
-ATI Technologies Inc. ATI Radeon HD 6250                                                                 supported      2   ATI Radeon HD 6200
-ATI Technologies Inc. ATI Radeon HD 6350                                                                 supported      2   ATI Radeon HD 6300
-ATI Technologies Inc. ATI Radeon HD 6390                                                                 supported      2   ATI Radeon HD 6300
+ATI Technologies Inc. ATI Radeon HD 6230                                                                 supported      3   ATI Radeon HD 6200
+ATI Technologies Inc. ATI Radeon HD 6250                                                                 supported      3   ATI Radeon HD 6200
+ATI Technologies Inc. ATI Radeon HD 6350                                                                 supported      3   ATI Radeon HD 6300
+ATI Technologies Inc. ATI Radeon HD 6390                                                                 supported      3   ATI Radeon HD 6300
 ATI Technologies Inc. ATI Radeon HD 6490M OpenGL Engine                                                  supported      3   ATI Radeon HD 6400
 ATI Technologies Inc. ATI Radeon HD 6510                                                                 supported      3   ATI Radeon HD 6500
 ATI Technologies Inc. ATI Radeon HD 6570M                                                                supported      3   ATI Radeon HD 6500
+ATI Technologies Inc. ATI Radeon HD 6630M OpenGL Engine                                                  supported      3   ATI Radeon HD 6600
 ATI Technologies Inc. ATI Radeon HD 6750                                                                 supported      3   ATI Radeon HD 6700
 ATI Technologies Inc. ATI Radeon HD 6750M OpenGL Engine                                                  supported      3   ATI Radeon HD 6700
 ATI Technologies Inc. ATI Radeon HD 6770                                                                 supported      3   ATI Radeon HD 6700
@@ -459,21 +494,21 @@ ATI Technologies Inc. ATI Radeon RV790 Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon Redwood PRO Prototype OpenGL Engine                                     supported      3   AMD REDWOOD (HD 5500/5600)
 ATI Technologies Inc. ATI Radeon Redwood XT Prototype OpenGL Engine                                      supported      3   AMD REDWOOD (HD 5500/5600)
 ATI Technologies Inc. ATI Radeon Whistler PRO/LP Prototype OpenGL Engine                                 supported      0   ATI Technologies
-ATI Technologies Inc. ATI Radeon X1050                                                                   supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1050 Series                                                            supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1200                                                                   supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1200 Series                                                            supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1200 Series x86/MMX/3DNow!/SSE2                                        supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1250                                                                   supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1250 x86/MMX/3DNow!/SSE2                                               supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1270                                                                   supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1270 x86/MMX/3DNow!/SSE2                                               supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1300/X1550 Series                                                      supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1550 Series                                                            supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1600 OpenGL Engine                                                     supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1900 OpenGL Engine                                                     supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X1950 GT                                                                supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. ATI Radeon X300/X550/X1050 Series                                                  supported      0   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Radeon X1050                                                                   supported      1   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Radeon X1050 Series                                                            supported      1   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Radeon X1200                                                                   supported      1   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Radeon X1200 Series                                                            supported      1   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Radeon X1200 Series x86/MMX/3DNow!/SSE2                                        supported      1   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Radeon X1250                                                                   supported      1   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Radeon X1250 x86/MMX/3DNow!/SSE2                                               supported      1   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Radeon X1270                                                                   supported      1   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Radeon X1270 x86/MMX/3DNow!/SSE2                                               supported      1   ATI Radeon X1xxx
+ATI Technologies Inc. ATI Radeon X1300/X1550 Series                                                      supported      1   ATI Radeon X13xx
+ATI Technologies Inc. ATI Radeon X1550 Series                                                            supported      2   ATI Radeon X15xx
+ATI Technologies Inc. ATI Radeon X1600 OpenGL Engine                                                     supported      2   ATI Radeon X16xx
+ATI Technologies Inc. ATI Radeon X1900 OpenGL Engine                                                     supported      3   ATI Radeon X19xx
+ATI Technologies Inc. ATI Radeon X1950 GT                                                                supported      3   ATI Radeon X19xx
+ATI Technologies Inc. ATI Radeon X300/X550/X1050 Series                                                  supported      0   ATI Radeon X300
 ATI Technologies Inc. ATI Radeon Xpress 1100                                                             supported      0   ATI Radeon Xpress
 ATI Technologies Inc. ATI Radeon Xpress 1150                                                             supported      0   ATI Radeon Xpress
 ATI Technologies Inc. ATI Radeon Xpress 1150 x86/MMX/3DNow!/SSE2                                         supported      0   ATI Radeon Xpress
@@ -482,18 +517,21 @@ ATI Technologies Inc. ATI Radeon Xpress 1200 Series
 ATI Technologies Inc. ATI Radeon Xpress 1200 Series x86/MMX/3DNow!/SSE2                                  supported      0   ATI Radeon Xpress
 ATI Technologies Inc. ATI Radeon Xpress 1200 x86/MMX/3DNow!/SSE2                                         supported      0   ATI Radeon Xpress
 ATI Technologies Inc. ATI Radeon Xpress 1250                                                             supported      0   ATI Radeon Xpress
+ATI Technologies Inc. ATI Radeon Xpress 1250 x86/MMX/3DNow!/SSE2                                         supported      0   ATI Radeon Xpress
 ATI Technologies Inc. ATI Radeon Xpress 1250 x86/SSE2                                                    supported      0   ATI Radeon Xpress
 ATI Technologies Inc. ATI Radeon Xpress Series                                                           supported      0   ATI Radeon Xpress
+ATI Technologies Inc. ATI Radeon Xpress Series x86/MMX/3DNow!/SSE2                                       supported      0   ATI Radeon Xpress
 ATI Technologies Inc. ATI Yamaha HD 9000                                                                 supported      0   ATI Technologies
 ATI Technologies Inc. ATi RS880M                                                                         supported      1   ATI RS880M
 ATI Technologies Inc. Carte graphique VGA standard                                                       supported      0   ATI Technologies
-ATI Technologies Inc. Diamond Radeon X1550 Series                                                        supported      0   ATI Radeon X1xxx
+ATI Technologies Inc. Diamond Radeon X1550 Series                                                        supported      2   ATI Radeon X15xx
 ATI Technologies Inc. EG JUNIPER                                                                         supported      3   AMD JUNIPER (HD 5700)
 ATI Technologies Inc. EG PARK                                                                            supported      3   AMD PARK
 ATI Technologies Inc. FireGL V3100 Pentium 4 (SSE2)                                                      supported      0   ATI FireGL
 ATI Technologies Inc. FireMV 2400 PCI DDR x86                                                            supported      0   ATI FireMV
 ATI Technologies Inc. FireMV 2400 PCI DDR x86/SSE2                                                       supported      0   ATI FireMV
-ATI Technologies Inc. GeCube Radeon X1550                                                                supported      0   ATI Radeon X1xxx
+ATI Technologies Inc. GeCube Radeon X1550                                                                supported      2   ATI Radeon X15xx
+ATI Technologies Inc. GeForce 9600 GT      x86/SSE2                                                      supported      2   ATI Geforce 9600 GT
 ATI Technologies Inc. Geforce 9500 GT                                                                    supported      2   ATI Geforce 9500 GT
 ATI Technologies Inc. Geforce 9500GT                                                                     supported      2   ATI Geforce 9500 GT
 ATI Technologies Inc. Geforce 9800 GT                                                                    supported      2   ATI Geforce 9800 GT
@@ -502,18 +540,22 @@ ATI Technologies Inc. HIGHTECH EXCALIBUR RADEON 9550SE Series
 ATI Technologies Inc. HIGHTECH EXCALIBUR X700 PRO                                                        supported      0   ATI Technologies
 ATI Technologies Inc. M21 x86/MMX/3DNow!/SSE2                                                            supported      0   ATI Technologies
 ATI Technologies Inc. M76M                                                                               supported      3   ATI M76
-ATI Technologies Inc. MOBILITY RADEON 7500 DDR x86/SSE2                                                  supported      0   ATI Mobility Radeon
-ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86/SSE2                                                  supported      0   ATI Mobility Radeon
-ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86/SSE2                               supported      0   ATI Mobility Radeon
+ATI Technologies Inc. MOBILITY RADEON 7500 DDR x86/SSE2                                                  supported      0   ATI Mobility Radeon 7xxx
+ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86/SSE2                                                  supported      0   ATI Radeon 9000
+ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86/SSE2                               supported      0   ATI Radeon 9000
+ATI Technologies Inc. MOBILITY RADEON 9100 IGP DDR x86/SSE2                                              supported      0   ATI Radeon 9100
 ATI Technologies Inc. MOBILITY RADEON 9600 x86/SSE2                                                      supported      0   ATI Mobility Radeon 9600
 ATI Technologies Inc. MOBILITY RADEON 9700 x86/SSE2                                                      supported      1   ATI Mobility Radeon 9700
-ATI Technologies Inc. MOBILITY RADEON X300 x86/SSE2                                                      supported      1   ATI Mobility Radeon X3xx
-ATI Technologies Inc. MOBILITY RADEON X600 x86/SSE2                                                      supported      1   ATI Mobility Radeon X6xx
-ATI Technologies Inc. MOBILITY RADEON X700 SE x86                                                        supported      1   ATI Mobility Radeon X7xx
-ATI Technologies Inc. MOBILITY RADEON X700 x86/SSE2                                                      supported      1   ATI Mobility Radeon X7xx
+ATI Technologies Inc. MOBILITY RADEON X300 x86/SSE2                                                      supported      0   ATI Radeon X300
+ATI Technologies Inc. MOBILITY RADEON X600 x86/SSE2                                                      supported      1   ATI Radeon X600
+ATI Technologies Inc. MOBILITY RADEON X700 SE x86                                                        supported      1   ATI Radeon X700
+ATI Technologies Inc. MOBILITY RADEON X700 x86/SSE2                                                      supported      1   ATI Radeon X700
+ATI Technologies Inc. MOBILITY RADEON Xpress 200 Series SW TCL x86/MMX/3DNow!/SSE2                       supported      0   ATI Radeon Xpress
 ATI Technologies Inc. MSI RX9550SE                                                                       supported      1   ATI Radeon RX9550
-ATI Technologies Inc. Mobility Radeon X2300 HD                                                           supported      0   ATI Mobility Radeon X2xxx
-ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2                                                  supported      0   ATI Mobility Radeon X2xxx
+ATI Technologies Inc. MSI Radeon X1550 Series                                                            supported      2   ATI Radeon X15xx
+ATI Technologies Inc. Mobility Radeon HD 6000 series                                                     supported      0   ATI Technologies
+ATI Technologies Inc. Mobility Radeon X2300 HD                                                           supported      1   ATI Radeon X2xxx
+ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2                                                  supported      1   ATI Radeon X2xxx
 ATI Technologies Inc. RADEON 7000 DDR x86/MMX/3DNow!/SSE                                                 supported      0   ATI Radeon 7xxx
 ATI Technologies Inc. RADEON 7000 DDR x86/SSE2                                                           supported      0   ATI Radeon 7xxx
 ATI Technologies Inc. RADEON 7500 DDR x86/MMX/3DNow!/SSE2                                                supported      0   ATI Radeon 7xxx
@@ -535,6 +577,7 @@ ATI Technologies Inc. RADEON 9500
 ATI Technologies Inc. RADEON 9550 x86/SSE2                                                               supported      0   ATI Radeon 9500
 ATI Technologies Inc. RADEON 9600 SERIES                                                                 supported      0   ATI Radeon 9600
 ATI Technologies Inc. RADEON 9600 SERIES x86/MMX/3DNow!/SSE2                                             supported      0   ATI Radeon 9600
+ATI Technologies Inc. RADEON 9600 SERIES x86/SSE2                                                        supported      0   ATI Radeon 9600
 ATI Technologies Inc. RADEON 9600 TX x86/SSE2                                                            supported      0   ATI Radeon 9600
 ATI Technologies Inc. RADEON 9600 x86/MMX/3DNow!/SSE2                                                    supported      0   ATI Radeon 9600
 ATI Technologies Inc. RADEON 9600 x86/SSE2                                                               supported      0   ATI Radeon 9600
@@ -549,8 +592,10 @@ ATI Technologies Inc. RADEON X550 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. RADEON X550 x86/SSE2                                                               supported      0   ATI Radeon X500
 ATI Technologies Inc. RADEON X600 Series                                                                 supported      1   ATI Radeon X600
 ATI Technologies Inc. RADEON X600 x86/SSE2                                                               supported      1   ATI Radeon X600
+ATI Technologies Inc. RADEON X600/X550 Series                                                            supported      1   ATI Radeon X600
 ATI Technologies Inc. RADEON X700 PRO x86/SSE2                                                           supported      1   ATI Radeon X700
 ATI Technologies Inc. RADEON X800 SE x86/MMX/3DNow!/SSE2                                                 supported      2   ATI Radeon X800
+ATI Technologies Inc. RADEON X800 XT                                                                     supported      2   ATI Radeon X800
 ATI Technologies Inc. RADEON X800GT                                                                      supported      2   ATI Radeon X800
 ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/MMX/3DNow!/SSE2                                supported      0   ATI Radeon Xpress
 ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/SSE2                                           supported      0   ATI Radeon Xpress
@@ -569,7 +614,10 @@ ATI Technologies Inc. RV410 Pro x86/SSE2
 ATI Technologies Inc. RV790                                                                              supported      3   AMD RV790 (HD 4800)
 ATI Technologies Inc. Radeon (TM) HD 6470M                                                               supported      0   ATI Technologies
 ATI Technologies Inc. Radeon (TM) HD 6490M                                                               supported      0   ATI Technologies
+ATI Technologies Inc. Radeon (TM) HD 6750M                                                               supported      0   ATI Technologies
 ATI Technologies Inc. Radeon (TM) HD 6770M                                                               supported      0   ATI Technologies
+ATI Technologies Inc. Radeon (TM) HD 6850M                                                               supported      0   ATI Technologies
+ATI Technologies Inc. Radeon 7000 DDR x86/SSE                                                            supported      0   ATI Radeon 7xxx
 ATI Technologies Inc. Radeon 7000 DDR x86/SSE2                                                           supported      0   ATI Radeon 7xxx
 ATI Technologies Inc. Radeon 7000 SDR x86/SSE2                                                           supported      0   ATI Radeon 7xxx
 ATI Technologies Inc. Radeon 7500 DDR x86/SSE2                                                           supported      0   ATI Radeon 7xxx
@@ -577,37 +625,43 @@ ATI Technologies Inc. Radeon 9000 DDR x86/SSE2
 ATI Technologies Inc. Radeon DDR x86/MMX/3DNow!/SSE2                                                     supported      0   ATI Radeon DDR
 ATI Technologies Inc. Radeon DDR x86/SSE                                                                 supported      0   ATI Radeon DDR
 ATI Technologies Inc. Radeon DDR x86/SSE2                                                                supported      0   ATI Radeon DDR
-ATI Technologies Inc. Radeon HD 6310                                                                     supported      2   ATI Radeon HD 6300
+ATI Technologies Inc. Radeon HD 6310                                                                     supported      3   ATI Radeon HD 6300
+ATI Technologies Inc. Radeon HD 6470M                                                                    supported      3   ATI Radeon HD 6400
+ATI Technologies Inc. Radeon HD 6490M                                                                    supported      3   ATI Radeon HD 6400
 ATI Technologies Inc. Radeon HD 6800 Series                                                              supported      3   ATI Radeon HD 6800
 ATI Technologies Inc. Radeon SDR x86/SSE2                                                                supported      0   ATI Technologies
-ATI Technologies Inc. Radeon X1300 Series                                                                supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1300 Series x86/MMX/3DNow!/SSE2                                            supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1300 Series x86/SSE2                                                       supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1300/X1550 Series                                                          supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1300/X1550 Series x86/SSE2                                                 supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1550 64-bit (Microsoft - WDDM)                                             supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1550 Series                                                                supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1550 Series x86/SSE2                                                       supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1600                                                                       supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1600 Pro / X1300XT x86/MMX/3DNow!/SSE2                                     supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1600 Series x86/SSE2                                                       supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1600/X1650 Series                                                          supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1650 Series                                                                supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1650 Series x86/MMX/3DNow!/SSE2                                            supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1650 Series x86/SSE2                                                       supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1900 Series x86/MMX/3DNow!/SSE2                                            supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1950 Pro                                                                   supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1950 Pro x86/MMX/3DNow!/SSE2                                               supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1950 Series                                                                supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X1950 Series  (Microsoft - WDDM)                                            supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. Radeon X300/X550/X1050 Series                                                      supported      0   ATI Radeon X1xxx
+ATI Technologies Inc. Radeon X1300 Series                                                                supported      1   ATI Radeon X13xx
+ATI Technologies Inc. Radeon X1300 Series x86/MMX/3DNow!/SSE2                                            supported      1   ATI Radeon X13xx
+ATI Technologies Inc. Radeon X1300 Series x86/SSE2                                                       supported      1   ATI Radeon X13xx
+ATI Technologies Inc. Radeon X1300/X1550 Series                                                          supported      1   ATI Radeon X13xx
+ATI Technologies Inc. Radeon X1300/X1550 Series x86/SSE2                                                 supported      1   ATI Radeon X13xx
+ATI Technologies Inc. Radeon X1550 64-bit (Microsoft - WDDM)                                             supported      2   ATI Radeon X15xx
+ATI Technologies Inc. Radeon X1550 Series                                                                supported      2   ATI Radeon X15xx
+ATI Technologies Inc. Radeon X1550 Series x86/SSE2                                                       supported      2   ATI Radeon X15xx
+ATI Technologies Inc. Radeon X1600                                                                       supported      2   ATI Radeon X16xx
+ATI Technologies Inc. Radeon X1600 Pro / X1300XT x86/MMX/3DNow!/SSE2                                     supported      2   ATI Radeon X16xx
+ATI Technologies Inc. Radeon X1600 Series                                                                supported      2   ATI Radeon X16xx
+ATI Technologies Inc. Radeon X1600 Series x86/SSE2                                                       supported      2   ATI Radeon X16xx
+ATI Technologies Inc. Radeon X1600/1650 Series                                                           supported      2   ATI Radeon X16xx
+ATI Technologies Inc. Radeon X1600/X1650 Series                                                          supported      2   ATI Radeon X16xx
+ATI Technologies Inc. Radeon X1650 Series                                                                supported      2   ATI Radeon X16xx
+ATI Technologies Inc. Radeon X1650 Series x86/MMX/3DNow!/SSE2                                            supported      2   ATI Radeon X16xx
+ATI Technologies Inc. Radeon X1650 Series x86/SSE2                                                       supported      2   ATI Radeon X16xx
+ATI Technologies Inc. Radeon X1900 Series x86/MMX/3DNow!/SSE2                                            supported      3   ATI Radeon X19xx
+ATI Technologies Inc. Radeon X1950 Pro                                                                   supported      3   ATI Radeon X19xx
+ATI Technologies Inc. Radeon X1950 Pro x86/MMX/3DNow!/SSE2                                               supported      3   ATI Radeon X19xx
+ATI Technologies Inc. Radeon X1950 Series                                                                supported      3   ATI Radeon X19xx
+ATI Technologies Inc. Radeon X1950 Series  (Microsoft - WDDM)                                            supported      3   ATI Radeon X19xx
+ATI Technologies Inc. Radeon X300/X550/X1050 Series                                                      supported      0   ATI Radeon X300
 ATI Technologies Inc. Radeon X550/X700 Series                                                            supported      0   ATI Radeon X500
 ATI Technologies Inc. Radeon X550XTX x86/MMX/3DNow!/SSE2                                                 supported      0   ATI Radeon X500
 ATI Technologies Inc. SAPPHIRE RADEON X300SE                                                             supported      0   ATI Radeon X300
 ATI Technologies Inc. SAPPHIRE RADEON X300SE x86/MMX/3DNow!/SSE2                                         supported      0   ATI Radeon X300
 ATI Technologies Inc. SAPPHIRE RADEON X300SE x86/SSE2                                                    supported      0   ATI Radeon X300
-ATI Technologies Inc. SAPPHIRE Radeon X1550 Series                                                       supported      0   ATI Radeon X1xxx
-ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/MMX/3DNow!/SSE2                                   supported      0   ATI Radeon X1xxx
+ATI Technologies Inc. SAPPHIRE Radeon X1550 Series                                                       supported      2   ATI Radeon X15xx
+ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/MMX/3DNow!/SSE2                                   supported      2   ATI Radeon X15xx
+ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/SSE2                                              supported      2   ATI Radeon X15xx
+ATI Technologies Inc. SAPPHIRE Radeon X1550 x86/SSE2                                                     supported      2   ATI Radeon X15xx
 ATI Technologies Inc. Sapphire Radeon HD 3730                                                            supported      3   ATI Radeon HD 3700
 ATI Technologies Inc. Sapphire Radeon HD 3750                                                            supported      3   ATI Radeon HD 3700
 ATI Technologies Inc. Standard VGA Graphics Adapter                                                      supported      0   ATI Technologies
@@ -616,7 +670,7 @@ ATI Technologies Inc. Tul, RADEON  X600 PRO x86/SSE2
 ATI Technologies Inc. Tul, RADEON  X700 PRO                                                              supported      0   ATI Technologies
 ATI Technologies Inc. Tul, RADEON  X700 PRO x86/MMX/3DNow!/SSE2                                          supported      0   ATI Technologies
 ATI Technologies Inc. VisionTek Radeon 4350                                                              supported      0   ATI Technologies
-ATI Technologies Inc. VisionTek Radeon X1550 Series                                                      supported      0   ATI Radeon X1xxx
+ATI Technologies Inc. VisionTek Radeon X1550 Series                                                      supported      2   ATI Radeon X15xx
 ATI Technologies Inc. WRESTLER 9802                                                                      supported      0   ATI Technologies
 ATI Technologies Inc. WRESTLER 9803                                                                      supported      0   ATI Technologies
 ATI Technologies Inc. XFX Radeon HD 4570                                                                 supported      3   ATI Radeon HD 4500
@@ -632,13 +686,14 @@ Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX+/3DNow!
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX/SSE2 TCL DRI2                   supported      1   AMD RV620 (HD 3400)
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV635 9596) 20090101 x86/MMX+/3DNow!+/SSE TCL DRI2           supported      3   AMD RV635 (HD 3600)
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV670 9505) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2          supported      3   AMD RV670 (HD 3800)
+Advanced Micro Devices, Inc. Mesa DRI R600 (RV670 9505) 20090101 x86/MMX/SSE2 TCL DRI2                   supported      3   AMD RV670 (HD 3800)
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV710 9552) 20090101 x86/MMX/SSE2 TCL DRI2                   supported      1   AMD RV710 (HD 4300)
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2          supported      3   AMD RV730 (HD 4600)
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX/SSE2 TCL DRI2                   supported      3   AMD RV730 (HD 4600)
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9498) 20090101  TCL DRI2                               supported      3   AMD RV730 (HD 4600)
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV770 9440) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2          supported      3   AMD RV770 (HD 4800)
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV770 9442) 20090101 x86/MMX/SSE2 TCL DRI2                   supported      3   AMD RV770 (HD 4800)
-Alex Mohr GL Hijacker!                                                                                                      UNRECOGNIZED
+Alex Mohr GL Hijacker!                                                                                                      NO MATCH
 Apple Software Renderer                                                                                  unsupported    0   Apple Software Renderer
 DRI R300 Project Mesa DRI R300 (RS400 5954) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2                   supported      1   ATI R300 (9700)
 DRI R300 Project Mesa DRI R300 (RS400 5975) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2                   supported      1   ATI R300 (9700)
@@ -658,13 +713,15 @@ DRI R300 Project Mesa DRI R300 (RV515 7149) 20090101 x86/MMX/SSE2 TCL DRI2
 DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL                                    supported      1   ATI RV515
 DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL DRI2                               supported      1   ATI RV515
 DRI R300 Project Mesa DRI R300 (RV530 71C4) 20090101 x86/MMX/SSE2 TCL DRI2                               supported      1   ATI RV530
-GPU_CLASS_UNKNOWN                                                                                                           UNRECOGNIZED
-Humper Chromium                                                                                                             UNRECOGNIZED
-Intel                                                                                                                       UNRECOGNIZED
+GPU_CLASS_UNKNOWN                                                                                                           NO MATCH
+Humper 3D-Analyze v2.3 - http://www.tommti-systems.com                                                   supported      0   Humper
+Humper Chromium                                                                                          supported      0   Humper
+Imagination Technologies PowerVR SGX545                                                                                     NO MATCH
+Intel                                                                                                                       NO MATCH
 Intel  HD Graphics Family                                                                                supported      2   Intel HD Graphics
-Intel 3D-Analyze v2.2 - http://www.tommti-systems.com                                                                       UNRECOGNIZED
-Intel 3D-Analyze v2.3 - http://www.tommti-systems.com                                                                       UNRECOGNIZED
-Intel 4 Series Internal Chipset                                                                                             UNRECOGNIZED
+Intel 3D-Analyze v2.2 - http://www.tommti-systems.com                                                                       NO MATCH
+Intel 3D-Analyze v2.3 - http://www.tommti-systems.com                                                                       NO MATCH
+Intel 4 Series Internal Chipset                                                                                             NO MATCH
 Intel 830M                                                                                               unsupported    0   Intel 830M
 Intel 845G                                                                                               unsupported    0   Intel 845G
 Intel 855GM                                                                                              unsupported    0   Intel 855GM
@@ -675,13 +732,14 @@ Intel 945G
 Intel 945GM                                                                                              supported      0   Intel 945GM
 Intel 950                                                                                                supported      0   Intel 950
 Intel 965                                                                                                supported      0   Intel 965
-Intel B43 Express Chipset                                                                                                   UNRECOGNIZED
+Intel B43 Express Chipset                                                                                                   NO MATCH
 Intel Bear Lake                                                                                          unsupported    0   Intel Bear Lake
 Intel Broadwater                                                                                         unsupported    0   Intel Broadwater
 Intel Brookdale                                                                                          unsupported    0   Intel Brookdale
 Intel Cantiga                                                                                            unsupported    0   Intel Cantiga
+Intel EMGD on PowerVR SGX535                                                                                                NO MATCH
 Intel Eaglelake                                                                                          supported      0   Intel Eaglelake
-Intel Familia Mobile 45 Express Chipset (Microsoft Corporation - WDDM 1.1)                                                  UNRECOGNIZED
+Intel Familia Mobile 45 Express Chipset (Microsoft Corporation - WDDM 1.1)                                                  NO MATCH
 Intel G33                                                                                                unsupported    0   Intel G33
 Intel G41                                                                                                supported      0   Intel G41
 Intel G41 Express Chipset                                                                                supported      0   Intel G41
@@ -710,12 +768,12 @@ Intel HD Graphics Family BR-1012-00Y8
 Intel HD Graphics Family BR-1012-00YF                                                                    supported      2   Intel HD Graphics
 Intel HD Graphics Family BR-1012-00ZD                                                                    supported      2   Intel HD Graphics
 Intel HD Graphics Family BR-1102-00ML                                                                    supported      2   Intel HD Graphics
-Intel Inc. Intel GMA 900 OpenGL Engine                                                                                      UNRECOGNIZED
+Intel Inc. Intel GMA 900 OpenGL Engine                                                                                      NO MATCH
 Intel Inc. Intel GMA 950 OpenGL Engine                                                                   supported      0   Intel 950
 Intel Inc. Intel GMA X3100 OpenGL Engine                                                                 supported      0   Intel X3100
 Intel Inc. Intel HD Graphics 3000 OpenGL Engine                                                          supported      2   Intel HD Graphics
 Intel Inc. Intel HD Graphics OpenGL Engine                                                               supported      2   Intel HD Graphics
-Intel Inc. Intel HD xxxx OpenGL Engine                                                                                      UNRECOGNIZED
+Intel Inc. Intel HD xxxx OpenGL Engine                                                                                      NO MATCH
 Intel Intel 845G                                                                                         unsupported    0   Intel 845G
 Intel Intel 855GM                                                                                        unsupported    0   Intel 855GM
 Intel Intel 865G                                                                                         unsupported    0   Intel 865G
@@ -727,39 +785,42 @@ Intel Intel 965/963 Graphics Media Accelerator
 Intel Intel Bear Lake B                                                                                  unsupported    0   Intel Bear Lake
 Intel Intel Broadwater G                                                                                 unsupported    0   Intel Broadwater
 Intel Intel Brookdale-G                                                                                  unsupported    0   Intel Brookdale
-Intel Intel Calistoga                                                                                                       UNRECOGNIZED
+Intel Intel Calistoga                                                                                                       NO MATCH
 Intel Intel Cantiga                                                                                      unsupported    0   Intel Cantiga
 Intel Intel Eaglelake                                                                                    supported      0   Intel Eaglelake
-Intel Intel Grantsdale-G                                                                                                    UNRECOGNIZED
+Intel Intel Generic Renderer                                                                                                NO MATCH
+Intel Intel Grantsdale-G                                                                                                    NO MATCH
 Intel Intel HD Graphics 3000                                                                             supported      2   Intel HD Graphics
-Intel Intel Lakeport                                                                                                        UNRECOGNIZED
+Intel Intel Lakeport                                                                                                        NO MATCH
 Intel Intel Montara-GM                                                                                   unsupported    0   Intel Montara
 Intel Intel Pineview Platform                                                                            supported      0   Intel Pineview
 Intel Intel Springdale-G                                                                                 unsupported    0   Intel Springdale
-Intel Mobile - famiglia Express Chipset 45 (Microsoft Corporation - WDDM 1.1)                                               UNRECOGNIZED
+Intel Mobile - famiglia Express Chipset 45 (Microsoft Corporation - WDDM 1.1)                                               NO MATCH
 Intel Mobile 4 Series                                                                                    supported      0   Intel Mobile 4 Series
 Intel Mobile 4 Series Express Chipset Family                                                             supported      0   Intel Mobile 4 Series
-Intel Mobile 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1)                                                   UNRECOGNIZED
+Intel Mobile 45 Express Chipset Family                                                                                      NO MATCH
+Intel Mobile 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1)                                                   NO MATCH
 Intel Mobile HD Graphics                                                                                 supported      2   Intel HD Graphics
+Intel Mobile Intel(R) 4 Series Express Chipset Family                                                    supported      0   Intel Mobile 4 Series
 Intel Mobile SandyBridge HD Graphics                                                                     supported      2   Intel HD Graphics
 Intel Montara                                                                                            unsupported    0   Intel Montara
 Intel Pineview                                                                                           supported      0   Intel Pineview
-Intel Q45/Q43 Express Chipset                                                                                               UNRECOGNIZED
-Intel Royal BNA Driver                                                                                                      UNRECOGNIZED
+Intel Q45/Q43 Express Chipset                                                                                               NO MATCH
+Intel Royal BNA Driver                                                                                                      NO MATCH
 Intel SandyBridge HD Graphics                                                                            supported      2   Intel HD Graphics
 Intel SandyBridge HD Graphics BR-1006-00V8                                                               supported      2   Intel HD Graphics
 Intel Springdale                                                                                         unsupported    0   Intel Springdale
 Intel X3100                                                                                              supported      0   Intel X3100
-Intergraph wcgdrv 06.05.06.18                                                                                               UNRECOGNIZED
-Intergraph wcgdrv 06.06.00.35                                                                                               UNRECOGNIZED
-LegendgrafiX Mobile 945 Express C/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://Legendgra...                      UNRECOGNIZED
+Intergraph wcgdrv 06.05.06.18                                                                                               NO MATCH
+Intergraph wcgdrv 06.06.00.35                                                                                               NO MATCH
+LegendgrafiX Mobile 945 Express C/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://Legendgra...                      NO MATCH
 LegendgrafiX NVIDIA GeForce GT 430/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://Legendgr...   supported      3   NVIDIA GT 430M
-Linden Lab Headless                                                                                                         UNRECOGNIZED
+Linden Lab Headless                                                                                                         NO MATCH
 Matrox                                                                                                   unsupported    0   Matrox
 Mesa                                                                                                     unsupported    0   Mesa
 Mesa Project Software Rasterizer                                                                         unsupported    0   Mesa
-NVIDIA /PCI/SSE2                                                                                                            UNRECOGNIZED
-NVIDIA /PCI/SSE2/3DNOW!                                                                                                     UNRECOGNIZED
+NVIDIA /PCI/SSE2                                                                                                            NO MATCH
+NVIDIA /PCI/SSE2/3DNOW!                                                                                                     NO MATCH
 NVIDIA 205                                                                                               supported      0   NVIDIA G 205M
 NVIDIA 210                                                                                               supported      1   NVIDIA G 210
 NVIDIA 310                                                                                               supported      2   NVIDIA G 310M
@@ -768,21 +829,25 @@ NVIDIA 315
 NVIDIA 315M                                                                                              supported      2   NVIDIA G 315
 NVIDIA 320M                                                                                              supported      2   NVIDIA G 320M
 NVIDIA C51                                                                                               supported      0   NVIDIA C51
-NVIDIA D10M2-20/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA D10P1-25/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA D10P1-30/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA D10P2-50/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA D11M2-30/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA D12-P1-35/PCI/SSE2                                                                                                   UNRECOGNIZED
-NVIDIA D12U-15/PCI/SSE2                                                                                                     UNRECOGNIZED
-NVIDIA D13M1-40/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA D13P1-40/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA D13U-10/PCI/SSE2                                                                                                     UNRECOGNIZED
-NVIDIA D13U/PCI/SSE2                                                                                                        UNRECOGNIZED
+NVIDIA Corporation GeForce GT 230/PCI/SSE2                                                               supported      2   NVIDIA GT 230M
+NVIDIA Corporation GeForce GTX 285/PCI/SSE2                                                              supported      3   NVIDIA GTX 285
+NVIDIA D10M2-20/PCI/SSE2                                                                                                    NO MATCH
+NVIDIA D10P1-25/PCI/SSE2                                                                                                    NO MATCH
+NVIDIA D10P1-25/PCI/SSE2/3DNOW!                                                                                             NO MATCH
+NVIDIA D10P1-30/PCI/SSE2                                                                                                    NO MATCH
+NVIDIA D10P2-50/PCI/SSE2                                                                                                    NO MATCH
+NVIDIA D11M2-30/PCI/SSE2                                                                                                    NO MATCH
+NVIDIA D12-P1-35/PCI/SSE2                                                                                                   NO MATCH
+NVIDIA D12U-15/PCI/SSE2                                                                                                     NO MATCH
+NVIDIA D13M1-40/PCI/SSE2                                                                                                    NO MATCH
+NVIDIA D13P1-40/PCI/SSE2                                                                                                    NO MATCH
+NVIDIA D13P1-40/PCI/SSE2/3DNOW!                                                                                             NO MATCH
+NVIDIA D13U-10/PCI/SSE2                                                                                                     NO MATCH
+NVIDIA D13U/PCI/SSE2                                                                                                        NO MATCH
 NVIDIA D9M                                                                                               supported      1   NVIDIA D9M
 NVIDIA D9M-20/PCI/SSE2                                                                                   supported      1   NVIDIA D9M
-NVIDIA Entry Graphics/PCI/SSE2                                                                                              UNRECOGNIZED
-NVIDIA Entry Graphics/PCI/SSE2/3DNOW!                                                                                       UNRECOGNIZED
+NVIDIA Entry Graphics/PCI/SSE2                                                                                              NO MATCH
+NVIDIA Entry Graphics/PCI/SSE2/3DNOW!                                                                                       NO MATCH
 NVIDIA G 102M                                                                                            supported      0   NVIDIA G102M
 NVIDIA G 103M                                                                                            supported      0   NVIDIA G103M
 NVIDIA G 105M                                                                                            supported      0   NVIDIA G105M
@@ -793,16 +858,17 @@ NVIDIA G103M
 NVIDIA G105M                                                                                             supported      0   NVIDIA G105M
 NVIDIA G210                                                                                              supported      1   NVIDIA G 210
 NVIDIA G210M                                                                                             supported      1   NVIDIA G 210
-NVIDIA G70/PCI/SSE2                                                                                                         UNRECOGNIZED
+NVIDIA G70/PCI/SSE2                                                                                                         NO MATCH
 NVIDIA G72                                                                                               supported      1   NVIDIA G72
 NVIDIA G73                                                                                               supported      1   NVIDIA G73
 NVIDIA G84                                                                                               supported      2   NVIDIA G84
 NVIDIA G86                                                                                               supported      3   NVIDIA G86
 NVIDIA G92                                                                                               supported      3   NVIDIA G92
-NVIDIA G92-200/PCI/SSE2                                                                                  supported      3   NVIDIA G92
+NVIDIA G92-200/PCI/SSE2                                                                                  supported      0   NVIDIA G 200
 NVIDIA G94                                                                                               supported      3   NVIDIA G94
-NVIDIA G96/PCI/SSE2                                                                                                         UNRECOGNIZED
-NVIDIA G98/PCI/SSE2                                                                                                         UNRECOGNIZED
+NVIDIA G96/PCI/SSE2                                                                                                         NO MATCH
+NVIDIA G98/PCI/SSE2                                                                                                         NO MATCH
+NVIDIA G98/PCI/SSE2/3DNOW!                                                                                                  NO MATCH
 NVIDIA GT 120                                                                                            supported      2   NVIDIA GT 120M
 NVIDIA GT 130                                                                                            supported      2   NVIDIA GT 130M
 NVIDIA GT 130M                                                                                           supported      2   NVIDIA GT 130M
@@ -818,8 +884,8 @@ NVIDIA GT 240
 NVIDIA GT 240M                                                                                           supported      2   NVIDIA GT 240M
 NVIDIA GT 250M                                                                                           supported      2   NVIDIA GT 250M
 NVIDIA GT 260M                                                                                           supported      2   NVIDIA GT 260M
-NVIDIA GT 320                                                                                            supported      2   NVIDIA GT 320M
-NVIDIA GT 320M                                                                                           supported      2   NVIDIA GT 320M
+NVIDIA GT 320                                                                                            supported      2   NVIDIA G 320M
+NVIDIA GT 320M                                                                                           supported      2   NVIDIA G 320M
 NVIDIA GT 330                                                                                            supported      3   NVIDIA GT 330M
 NVIDIA GT 330M                                                                                           supported      3   NVIDIA GT 330M
 NVIDIA GT 340                                                                                            supported      2   NVIDIA GT 340M
@@ -831,7 +897,7 @@ NVIDIA GT 520
 NVIDIA GT 540                                                                                            supported      3   NVIDIA GT 540M
 NVIDIA GT 540M                                                                                           supported      3   NVIDIA GT 540M
 NVIDIA GT-120                                                                                            supported      2   NVIDIA GT 120
-NVIDIA GT200/PCI/SSE2                                                                                                       UNRECOGNIZED
+NVIDIA GT200/PCI/SSE2                                                                                    supported      0   NVIDIA G 200
 NVIDIA GTS 150                                                                                           supported      2   NVIDIA GT 150M
 NVIDIA GTS 240                                                                                           supported      3   NVIDIA GTS 240
 NVIDIA GTS 250                                                                                           supported      3   NVIDIA GTS 250
@@ -858,7 +924,7 @@ NVIDIA GTX 560 Ti
 NVIDIA GTX 570                                                                                           supported      3   NVIDIA GTX 570
 NVIDIA GTX 580                                                                                           supported      3   NVIDIA GTX 580
 NVIDIA GTX 590                                                                                           supported      3   NVIDIA GTX 590
-NVIDIA GeForce                                                                                                              UNRECOGNIZED
+NVIDIA GeForce                                                                                                              NO MATCH
 NVIDIA GeForce 2                                                                                         supported      0   NVIDIA GeForce 2
 NVIDIA GeForce 205/PCI/SSE2                                                                              supported      2   NVIDIA 205
 NVIDIA GeForce 210                                                                                       supported      2   NVIDIA 210
@@ -877,34 +943,35 @@ NVIDIA GeForce 4 Go
 NVIDIA GeForce 4 MX                                                                                      supported      0   NVIDIA GeForce 4
 NVIDIA GeForce 4 Ti                                                                                      supported      0   NVIDIA GeForce 4
 NVIDIA GeForce 405/PCI/SSE2                                                                              supported      1   NVIDIA G 405
-NVIDIA GeForce 6100                                                                                      supported      0   NVIDIA GeForce 6100
-NVIDIA GeForce 6100 nForce 400/PCI/SSE2/3DNOW!                                                           supported      0   NVIDIA GeForce 6100
-NVIDIA GeForce 6100 nForce 405/PCI/SSE2                                                                  supported      0   NVIDIA GeForce 6100
-NVIDIA GeForce 6100 nForce 405/PCI/SSE2/3DNOW!                                                           supported      0   NVIDIA GeForce 6100
-NVIDIA GeForce 6100 nForce 420/PCI/SSE2/3DNOW!                                                           supported      0   NVIDIA GeForce 6100
-NVIDIA GeForce 6100 nForce 430/PCI/SSE2/3DNOW!                                                           supported      0   NVIDIA GeForce 6100
-NVIDIA GeForce 6100/PCI/SSE2/3DNOW!                                                                      supported      0   NVIDIA GeForce 6100
+NVIDIA GeForce 410M/PCI/SSE2                                                                             supported      1   NVIDIA G 410M
+NVIDIA GeForce 6100                                                                                      supported      0   NVIDIA G100
+NVIDIA GeForce 6100 nForce 400/PCI/SSE2/3DNOW!                                                           supported      0   NVIDIA G100
+NVIDIA GeForce 6100 nForce 405/PCI/SSE2                                                                  supported      0   NVIDIA G100
+NVIDIA GeForce 6100 nForce 405/PCI/SSE2/3DNOW!                                                           supported      0   NVIDIA G100
+NVIDIA GeForce 6100 nForce 420/PCI/SSE2/3DNOW!                                                           supported      0   NVIDIA G100
+NVIDIA GeForce 6100 nForce 430/PCI/SSE2/3DNOW!                                                           supported      0   NVIDIA G100
+NVIDIA GeForce 6100/PCI/SSE2/3DNOW!                                                                      supported      0   NVIDIA G100
 NVIDIA GeForce 6150 LE/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA GeForce 6100
 NVIDIA GeForce 6150/PCI/SSE2                                                                             supported      0   NVIDIA GeForce 6100
 NVIDIA GeForce 6150/PCI/SSE2/3DNOW!                                                                      supported      0   NVIDIA GeForce 6100
 NVIDIA GeForce 6150SE nForce 430/PCI/SSE2                                                                supported      0   NVIDIA GeForce 6100
 NVIDIA GeForce 6150SE nForce 430/PCI/SSE2/3DNOW!                                                         supported      0   NVIDIA GeForce 6100
 NVIDIA GeForce 6150SE/PCI/SSE2/3DNOW!                                                                    supported      0   NVIDIA GeForce 6100
-NVIDIA GeForce 6200                                                                                      supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200 A-LE/AGP/SSE/3DNOW!                                                                  supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200 A-LE/AGP/SSE2                                                                        supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200 A-LE/AGP/SSE2/3DNOW!                                                                 supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200 LE/PCI/SSE2                                                                          supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200 LE/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2                                                              supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2/3DNOW!                                                       supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200/AGP/SSE/3DNOW!                                                                       supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200/AGP/SSE2                                                                             supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200/AGP/SSE2/3DNOW!                                                                      supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200/PCI/SSE/3DNOW!                                                                       supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200/PCI/SSE2                                                                             supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200/PCI/SSE2/3DNOW!                                                                      supported      0   NVIDIA GeForce 6200
-NVIDIA GeForce 6200SE TurboCache(TM)/PCI/SSE2/3DNOW!                                                     supported      0   NVIDIA GeForce 6200
+NVIDIA GeForce 6200                                                                                      supported      0   NVIDIA G 200
+NVIDIA GeForce 6200 A-LE/AGP/SSE/3DNOW!                                                                  supported      0   NVIDIA G 200
+NVIDIA GeForce 6200 A-LE/AGP/SSE2                                                                        supported      0   NVIDIA G 200
+NVIDIA GeForce 6200 A-LE/AGP/SSE2/3DNOW!                                                                 supported      0   NVIDIA G 200
+NVIDIA GeForce 6200 LE/PCI/SSE2                                                                          supported      0   NVIDIA G 200
+NVIDIA GeForce 6200 LE/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA G 200
+NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2                                                              supported      0   NVIDIA G 200
+NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2/3DNOW!                                                       supported      0   NVIDIA G 200
+NVIDIA GeForce 6200/AGP/SSE/3DNOW!                                                                       supported      0   NVIDIA G 200
+NVIDIA GeForce 6200/AGP/SSE2                                                                             supported      0   NVIDIA G 200
+NVIDIA GeForce 6200/AGP/SSE2/3DNOW!                                                                      supported      0   NVIDIA G 200
+NVIDIA GeForce 6200/PCI/SSE/3DNOW!                                                                       supported      0   NVIDIA G 200
+NVIDIA GeForce 6200/PCI/SSE2                                                                             supported      0   NVIDIA G 200
+NVIDIA GeForce 6200/PCI/SSE2/3DNOW!                                                                      supported      0   NVIDIA G 200
+NVIDIA GeForce 6200SE TurboCache(TM)/PCI/SSE2/3DNOW!                                                     supported      0   NVIDIA G 200
 NVIDIA GeForce 6500                                                                                      supported      0   NVIDIA GeForce 6500
 NVIDIA GeForce 6500/PCI/SSE2                                                                             supported      0   NVIDIA GeForce 6500
 NVIDIA GeForce 6600                                                                                      supported      1   NVIDIA GeForce 6600
@@ -921,11 +988,13 @@ NVIDIA GeForce 6600/PCI/SSE2
 NVIDIA GeForce 6600/PCI/SSE2/3DNOW!                                                                      supported      1   NVIDIA GeForce 6600
 NVIDIA GeForce 6700                                                                                      supported      2   NVIDIA GeForce 6700
 NVIDIA GeForce 6800                                                                                      supported      2   NVIDIA GeForce 6800
+NVIDIA GeForce 6800 GS/PCI/SSE2                                                                          supported      2   NVIDIA GeForce 6800
 NVIDIA GeForce 6800 GS/PCI/SSE2/3DNOW!                                                                   supported      2   NVIDIA GeForce 6800
 NVIDIA GeForce 6800 GT/AGP/SSE2                                                                          supported      2   NVIDIA GeForce 6800
 NVIDIA GeForce 6800 GT/PCI/SSE2                                                                          supported      2   NVIDIA GeForce 6800
 NVIDIA GeForce 6800 XT/AGP/SSE2                                                                          supported      2   NVIDIA GeForce 6800
 NVIDIA GeForce 6800 XT/PCI/SSE2                                                                          supported      2   NVIDIA GeForce 6800
+NVIDIA GeForce 6800 XT/PCI/SSE2/3DNOW!                                                                   supported      2   NVIDIA GeForce 6800
 NVIDIA GeForce 6800/PCI/SSE2                                                                             supported      2   NVIDIA GeForce 6800
 NVIDIA GeForce 6800/PCI/SSE2/3DNOW!                                                                      supported      2   NVIDIA GeForce 6800
 NVIDIA GeForce 7000                                                                                      supported      0   NVIDIA GeForce 7000
@@ -943,12 +1012,12 @@ NVIDIA GeForce 7050 PV / NVIDIA nForce 630a/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2                                                            supported      0   NVIDIA GeForce 7000
 NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2/3DNOW!                                                     supported      0   NVIDIA GeForce 7000
 NVIDIA GeForce 7050 SE / NVIDIA nForce 630a/PCI/SSE2/3DNOW!                                              supported      0   NVIDIA GeForce 7000
-NVIDIA GeForce 7100                                                                                      supported      0   NVIDIA GeForce 7100
-NVIDIA GeForce 7100 / NVIDIA nForce 620i/PCI/SSE2                                                        supported      0   NVIDIA GeForce 7100
-NVIDIA GeForce 7100 / NVIDIA nForce 630i/PCI/SSE2                                                        supported      0   NVIDIA GeForce 7100
-NVIDIA GeForce 7100 / nForce 630i/PCI/SSE2                                                               supported      0   NVIDIA GeForce 7100
-NVIDIA GeForce 7100 GS/PCI/SSE2                                                                          supported      0   NVIDIA GeForce 7100
-NVIDIA GeForce 7100 GS/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA GeForce 7100
+NVIDIA GeForce 7100                                                                                      supported      0   NVIDIA G100
+NVIDIA GeForce 7100 / NVIDIA nForce 620i/PCI/SSE2                                                        supported      0   NVIDIA G100
+NVIDIA GeForce 7100 / NVIDIA nForce 630i/PCI/SSE2                                                        supported      0   NVIDIA G100
+NVIDIA GeForce 7100 / nForce 630i/PCI/SSE2                                                               supported      0   NVIDIA G100
+NVIDIA GeForce 7100 GS/PCI/SSE2                                                                          supported      0   NVIDIA G100
+NVIDIA GeForce 7100 GS/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA G100
 NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2                                                              supported      0   NVIDIA GeForce 7100
 NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW!                                                       supported      0   NVIDIA GeForce 7100
 NVIDIA GeForce 7300                                                                                      supported      1   NVIDIA GeForce 7300
@@ -960,8 +1029,8 @@ NVIDIA GeForce 7300 GT/PCI/SSE2
 NVIDIA GeForce 7300 GT/PCI/SSE2/3DNOW!                                                                   supported      1   NVIDIA GeForce 7300
 NVIDIA GeForce 7300 LE/PCI/SSE2                                                                          supported      1   NVIDIA GeForce 7300
 NVIDIA GeForce 7300 LE/PCI/SSE2/3DNOW!                                                                   supported      1   NVIDIA GeForce 7300
-NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2                                                                  supported      1   NVIDIA GeForce 7300
-NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2/3DNOW!                                                           supported      1   NVIDIA GeForce 7300
+NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2                                                                  supported      0   NVIDIA G 200
+NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2/3DNOW!                                                           supported      0   NVIDIA G 200
 NVIDIA GeForce 7300 SE/PCI/SSE2                                                                          supported      1   NVIDIA GeForce 7300
 NVIDIA GeForce 7300 SE/PCI/SSE2/3DNOW!                                                                   supported      1   NVIDIA GeForce 7300
 NVIDIA GeForce 7350 LE/PCI/SSE2                                                                          supported      1   NVIDIA GeForce 7300
@@ -982,24 +1051,26 @@ NVIDIA GeForce 7800
 NVIDIA GeForce 7800 GS/AGP/SSE2                                                                          supported      2   NVIDIA GeForce 7800
 NVIDIA GeForce 7800 GS/AGP/SSE2/3DNOW!                                                                   supported      2   NVIDIA GeForce 7800
 NVIDIA GeForce 7800 GT/PCI/SSE2                                                                          supported      2   NVIDIA GeForce 7800
+NVIDIA GeForce 7800 GT/PCI/SSE2/3DNOW!                                                                   supported      2   NVIDIA GeForce 7800
 NVIDIA GeForce 7800 GTX/PCI/SSE2                                                                         supported      2   NVIDIA GeForce 7800
 NVIDIA GeForce 7800 GTX/PCI/SSE2/3DNOW!                                                                  supported      2   NVIDIA GeForce 7800
 NVIDIA GeForce 7900                                                                                      supported      2   NVIDIA GeForce 7900
 NVIDIA GeForce 7900 GS/PCI/SSE2                                                                          supported      2   NVIDIA GeForce 7900
 NVIDIA GeForce 7900 GS/PCI/SSE2/3DNOW!                                                                   supported      2   NVIDIA GeForce 7900
 NVIDIA GeForce 7900 GT/GTO/PCI/SSE2                                                                      supported      2   NVIDIA GeForce 7900
+NVIDIA GeForce 7900 GT/GTO/PCI/SSE2/3DNOW!                                                               supported      2   NVIDIA GeForce 7900
 NVIDIA GeForce 7900 GT/PCI/SSE2/3DNOW!                                                                   supported      2   NVIDIA GeForce 7900
 NVIDIA GeForce 7900 GTX/PCI/SSE2                                                                         supported      2   NVIDIA GeForce 7900
 NVIDIA GeForce 7950 GT/PCI/SSE2                                                                          supported      2   NVIDIA GeForce 7900
 NVIDIA GeForce 7950 GT/PCI/SSE2/3DNOW!                                                                   supported      2   NVIDIA GeForce 7900
-NVIDIA GeForce 8100                                                                                      supported      1   NVIDIA GeForce 8100
-NVIDIA GeForce 8100 / nForce 720a/PCI/SSE2/3DNOW!                                                        supported      1   NVIDIA GeForce 8100
-NVIDIA GeForce 8200                                                                                      supported      1   NVIDIA GeForce 8200
-NVIDIA GeForce 8200/PCI/SSE2                                                                             supported      1   NVIDIA GeForce 8200
-NVIDIA GeForce 8200/PCI/SSE2/3DNOW!                                                                      supported      1   NVIDIA GeForce 8200
-NVIDIA GeForce 8200M                                                                                     supported      1   NVIDIA GeForce 8200M
-NVIDIA GeForce 8200M G/PCI/SSE2                                                                          supported      1   NVIDIA GeForce 8200M
-NVIDIA GeForce 8200M G/PCI/SSE2/3DNOW!                                                                   supported      1   NVIDIA GeForce 8200M
+NVIDIA GeForce 8100                                                                                      supported      0   NVIDIA G100
+NVIDIA GeForce 8100 / nForce 720a/PCI/SSE2/3DNOW!                                                        supported      0   NVIDIA G100
+NVIDIA GeForce 8200                                                                                      supported      0   NVIDIA G 200
+NVIDIA GeForce 8200/PCI/SSE2                                                                             supported      0   NVIDIA G 200
+NVIDIA GeForce 8200/PCI/SSE2/3DNOW!                                                                      supported      0   NVIDIA G 200
+NVIDIA GeForce 8200M                                                                                     supported      0   NVIDIA G 200
+NVIDIA GeForce 8200M G/PCI/SSE2                                                                          supported      0   NVIDIA G 200
+NVIDIA GeForce 8200M G/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA G 200
 NVIDIA GeForce 8300                                                                                      supported      1   NVIDIA GeForce 8300
 NVIDIA GeForce 8300 GS/PCI/SSE2                                                                          supported      1   NVIDIA GeForce 8300
 NVIDIA GeForce 8400                                                                                      supported      1   NVIDIA GeForce 8400
@@ -1045,17 +1116,17 @@ NVIDIA GeForce 8800 GTX/PCI/SSE2
 NVIDIA GeForce 8800 Ultra/PCI/SSE2                                                                       supported      3   NVIDIA GeForce 8800
 NVIDIA GeForce 8800M GTS/PCI/SSE2                                                                        supported      3   NVIDIA GeForce 8800M
 NVIDIA GeForce 8800M GTX/PCI/SSE2                                                                        supported      3   NVIDIA GeForce 8800M
-NVIDIA GeForce 9100                                                                                      supported      0   NVIDIA GeForce 9100
-NVIDIA GeForce 9100/PCI/SSE2                                                                             supported      0   NVIDIA GeForce 9100
-NVIDIA GeForce 9100/PCI/SSE2/3DNOW!                                                                      supported      0   NVIDIA GeForce 9100
-NVIDIA GeForce 9100M                                                                                     supported      0   NVIDIA GeForce 9100M
-NVIDIA GeForce 9100M G/PCI/SSE2                                                                          supported      0   NVIDIA GeForce 9100M
-NVIDIA GeForce 9100M G/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA GeForce 9100M
-NVIDIA GeForce 9200                                                                                      supported      1   NVIDIA GeForce 9200
-NVIDIA GeForce 9200/PCI/SSE2                                                                             supported      1   NVIDIA GeForce 9200
-NVIDIA GeForce 9200/PCI/SSE2/3DNOW!                                                                      supported      1   NVIDIA GeForce 9200
-NVIDIA GeForce 9200M GE/PCI/SSE2                                                                         supported      1   NVIDIA GeForce 9200M
-NVIDIA GeForce 9200M GS/PCI/SSE2                                                                         supported      1   NVIDIA GeForce 9200M
+NVIDIA GeForce 9100                                                                                      supported      0   NVIDIA G100
+NVIDIA GeForce 9100/PCI/SSE2                                                                             supported      0   NVIDIA G100
+NVIDIA GeForce 9100/PCI/SSE2/3DNOW!                                                                      supported      0   NVIDIA G100
+NVIDIA GeForce 9100M                                                                                     supported      0   NVIDIA G100M
+NVIDIA GeForce 9100M G/PCI/SSE2                                                                          supported      0   NVIDIA G100M
+NVIDIA GeForce 9100M G/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA G100M
+NVIDIA GeForce 9200                                                                                      supported      0   NVIDIA G 200
+NVIDIA GeForce 9200/PCI/SSE2                                                                             supported      0   NVIDIA G 200
+NVIDIA GeForce 9200/PCI/SSE2/3DNOW!                                                                      supported      0   NVIDIA G 200
+NVIDIA GeForce 9200M GE/PCI/SSE2                                                                         supported      0   NVIDIA G 200
+NVIDIA GeForce 9200M GS/PCI/SSE2                                                                         supported      0   NVIDIA G 200
 NVIDIA GeForce 9300                                                                                      supported      1   NVIDIA GeForce 9300
 NVIDIA GeForce 9300 / nForce 730i/PCI/SSE2                                                               supported      1   NVIDIA GeForce 9300
 NVIDIA GeForce 9300 GE/PCI/SSE2                                                                          supported      1   NVIDIA GeForce 9300
@@ -1108,16 +1179,16 @@ NVIDIA GeForce 9800M
 NVIDIA GeForce 9800M GS/PCI/SSE2                                                                         supported      3   NVIDIA GeForce 9800M
 NVIDIA GeForce 9800M GT/PCI/SSE2                                                                         supported      3   NVIDIA GeForce 9800M
 NVIDIA GeForce 9800M GTS/PCI/SSE2                                                                        supported      3   NVIDIA GeForce 9800M
-NVIDIA GeForce FX 5100                                                                                   supported      0   NVIDIA GeForce FX 5100
-NVIDIA GeForce FX 5100/AGP/SSE/3DNOW!                                                                    supported      0   NVIDIA GeForce FX 5100
-NVIDIA GeForce FX 5200                                                                                   supported      0   NVIDIA GeForce FX 5200
-NVIDIA GeForce FX 5200/AGP/SSE                                                                           supported      0   NVIDIA GeForce FX 5200
-NVIDIA GeForce FX 5200/AGP/SSE/3DNOW!                                                                    supported      0   NVIDIA GeForce FX 5200
-NVIDIA GeForce FX 5200/AGP/SSE2                                                                          supported      0   NVIDIA GeForce FX 5200
-NVIDIA GeForce FX 5200/AGP/SSE2/3DNOW!                                                                   supported      0   NVIDIA GeForce FX 5200
-NVIDIA GeForce FX 5200/PCI/SSE2                                                                          supported      0   NVIDIA GeForce FX 5200
-NVIDIA GeForce FX 5200/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA GeForce FX 5200
-NVIDIA GeForce FX 5200LE/AGP/SSE2                                                                        supported      0   NVIDIA GeForce FX 5200
+NVIDIA GeForce FX 5100                                                                                   supported      0   NVIDIA G100
+NVIDIA GeForce FX 5100/AGP/SSE/3DNOW!                                                                    supported      0   NVIDIA G100
+NVIDIA GeForce FX 5200                                                                                   supported      0   NVIDIA G 200
+NVIDIA GeForce FX 5200/AGP/SSE                                                                           supported      0   NVIDIA G 200
+NVIDIA GeForce FX 5200/AGP/SSE/3DNOW!                                                                    supported      0   NVIDIA G 200
+NVIDIA GeForce FX 5200/AGP/SSE2                                                                          supported      0   NVIDIA G 200
+NVIDIA GeForce FX 5200/AGP/SSE2/3DNOW!                                                                   supported      0   NVIDIA G 200
+NVIDIA GeForce FX 5200/PCI/SSE2                                                                          supported      0   NVIDIA G 200
+NVIDIA GeForce FX 5200/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA G 200
+NVIDIA GeForce FX 5200LE/AGP/SSE2                                                                        supported      0   NVIDIA G 200
 NVIDIA GeForce FX 5500                                                                                   supported      0   NVIDIA GeForce FX 5500
 NVIDIA GeForce FX 5500/AGP/SSE/3DNOW!                                                                    supported      0   NVIDIA GeForce FX 5500
 NVIDIA GeForce FX 5500/AGP/SSE2                                                                          supported      0   NVIDIA GeForce FX 5500
@@ -1136,17 +1207,19 @@ NVIDIA GeForce FX 5800
 NVIDIA GeForce FX 5900                                                                                   supported      1   NVIDIA GeForce FX 5900
 NVIDIA GeForce FX 5900/AGP/SSE2                                                                          supported      1   NVIDIA GeForce FX 5900
 NVIDIA GeForce FX 5900XT/AGP/SSE2                                                                        supported      1   NVIDIA GeForce FX 5900
-NVIDIA GeForce FX Go5100                                                                                 supported      0   NVIDIA GeForce FX Go5100
-NVIDIA GeForce FX Go5100/AGP/SSE2                                                                        supported      0   NVIDIA GeForce FX Go5100
-NVIDIA GeForce FX Go5200                                                                                 supported      0   NVIDIA GeForce FX Go5200
-NVIDIA GeForce FX Go5200/AGP/SSE2                                                                        supported      0   NVIDIA GeForce FX Go5200
+NVIDIA GeForce FX Go5100                                                                                 supported      0   NVIDIA G100
+NVIDIA GeForce FX Go5100/AGP/SSE2                                                                        supported      0   NVIDIA G100
+NVIDIA GeForce FX Go5200                                                                                 supported      0   NVIDIA G 200
+NVIDIA GeForce FX Go5200/AGP/SSE2                                                                        supported      0   NVIDIA G 200
 NVIDIA GeForce FX Go5300                                                                                 supported      0   NVIDIA GeForce FX Go5300
 NVIDIA GeForce FX Go5600                                                                                 supported      0   NVIDIA GeForce FX Go5600
 NVIDIA GeForce FX Go5600/AGP/SSE2                                                                        supported      0   NVIDIA GeForce FX Go5600
 NVIDIA GeForce FX Go5650/AGP/SSE2                                                                        supported      0   NVIDIA GeForce FX Go5600
 NVIDIA GeForce FX Go5700                                                                                 supported      1   NVIDIA GeForce FX Go5700
+NVIDIA GeForce FX Go5700/AGP/SSE2                                                                        supported      1   NVIDIA GeForce FX Go5700
 NVIDIA GeForce FX Go5xxx/AGP/SSE2                                                                        supported      0   NVIDIA GeForce FX Go5xxx
 NVIDIA GeForce G 103M/PCI/SSE2                                                                           supported      0   NVIDIA G103M
+NVIDIA GeForce G 103M/PCI/SSE2/3DNOW!                                                                    supported      0   NVIDIA G103M
 NVIDIA GeForce G 105M/PCI/SSE2                                                                           supported      0   NVIDIA G105M
 NVIDIA GeForce G 110M/PCI/SSE2                                                                           supported      0   NVIDIA G 110M
 NVIDIA GeForce G100/PCI/SSE2                                                                             supported      0   NVIDIA G100
@@ -1161,7 +1234,7 @@ NVIDIA GeForce G210M/PCI/SSE2
 NVIDIA GeForce G310M/PCI/SSE2                                                                            supported      2   NVIDIA G 310M
 NVIDIA GeForce GT 120/PCI/SSE2                                                                           supported      2   NVIDIA GT 120M
 NVIDIA GeForce GT 120/PCI/SSE2/3DNOW!                                                                    supported      2   NVIDIA GT 120M
-NVIDIA GeForce GT 120M/PCI/SSE2                                                                          supported      2   NVIDIA GT 120M
+NVIDIA GeForce GT 120M/PCI/SSE2                                                                          supported      1   NVIDIA G 120M
 NVIDIA GeForce GT 130M/PCI/SSE2                                                                          supported      2   NVIDIA GT 130M
 NVIDIA GeForce GT 140/PCI/SSE2                                                                           supported      2   NVIDIA GT 140M
 NVIDIA GeForce GT 220/PCI/SSE2                                                                           supported      2   NVIDIA GT 220M
@@ -1173,8 +1246,8 @@ NVIDIA GeForce GT 240
 NVIDIA GeForce GT 240/PCI/SSE2                                                                           supported      2   NVIDIA GT 240M
 NVIDIA GeForce GT 240/PCI/SSE2/3DNOW!                                                                    supported      2   NVIDIA GT 240M
 NVIDIA GeForce GT 240M/PCI/SSE2                                                                          supported      2   NVIDIA GT 240M
-NVIDIA GeForce GT 320/PCI/SSE2                                                                           supported      2   NVIDIA GT 320M
-NVIDIA GeForce GT 320M/PCI/SSE2                                                                          supported      2   NVIDIA GT 320M
+NVIDIA GeForce GT 320/PCI/SSE2                                                                           supported      2   NVIDIA G 320M
+NVIDIA GeForce GT 320M/PCI/SSE2                                                                          supported      2   NVIDIA G 320M
 NVIDIA GeForce GT 325M/PCI/SSE2                                                                          supported      0   NVIDIA GT 325M
 NVIDIA GeForce GT 330/PCI/SSE2                                                                           supported      3   NVIDIA GT 330M
 NVIDIA GeForce GT 330/PCI/SSE2/3DNOW!                                                                    supported      3   NVIDIA GT 330M
@@ -1192,9 +1265,14 @@ NVIDIA GeForce GT 435M/PCI/SSE2
 NVIDIA GeForce GT 440/PCI/SSE2                                                                           supported      3   NVIDIA GT 440M
 NVIDIA GeForce GT 440/PCI/SSE2/3DNOW!                                                                    supported      3   NVIDIA GT 440M
 NVIDIA GeForce GT 445M/PCI/SSE2                                                                          supported      3   NVIDIA GT 445M
+NVIDIA GeForce GT 520/PCI/SSE2                                                                           supported      3   NVIDIA GT 520M
+NVIDIA GeForce GT 520/PCI/SSE2/3DNOW!                                                                    supported      3   NVIDIA GT 520M
 NVIDIA GeForce GT 520M/PCI/SSE2                                                                          supported      3   NVIDIA GT 520M
-NVIDIA GeForce GT 525M/PCI/SSE2                                                                          supported      3   NVIDIA GT 525M
+NVIDIA GeForce GT 525M/PCI/SSE2                                                                          supported      3   NVIDIA GT 520M
+NVIDIA GeForce GT 530/PCI/SSE2                                                                           supported      3   NVIDIA GT 530M
+NVIDIA GeForce GT 530/PCI/SSE2/3DNOW!                                                                    supported      3   NVIDIA GT 530M
 NVIDIA GeForce GT 540M/PCI/SSE2                                                                          supported      3   NVIDIA GT 540M
+NVIDIA GeForce GT 545/PCI/SSE2                                                                           supported      3   NVIDIA GT 540M
 NVIDIA GeForce GT 550M/PCI/SSE2                                                                          supported      3   NVIDIA GT 550M
 NVIDIA GeForce GT 555M/PCI/SSE2                                                                          supported      3   NVIDIA GT 555M
 NVIDIA GeForce GTS 150/PCI/SSE2                                                                          supported      2   NVIDIA GT 150M
@@ -1212,9 +1290,11 @@ NVIDIA GeForce GTX 260/PCI/SSE2
 NVIDIA GeForce GTX 260/PCI/SSE2/3DNOW!                                                                   supported      3   NVIDIA GTX 260
 NVIDIA GeForce GTX 260M/PCI/SSE2                                                                         supported      3   NVIDIA GTX 260
 NVIDIA GeForce GTX 275/PCI/SSE2                                                                          supported      3   NVIDIA GTX 275
+NVIDIA GeForce GTX 275/PCI/SSE2/3DNOW!                                                                   supported      3   NVIDIA GTX 275
 NVIDIA GeForce GTX 280                                                                                   supported      3   NVIDIA GTX 280
 NVIDIA GeForce GTX 280/PCI/SSE2                                                                          supported      3   NVIDIA GTX 280
 NVIDIA GeForce GTX 280M/PCI/SSE2                                                                         supported      3   NVIDIA GTX 280
+NVIDIA GeForce GTX 285                                                                                   supported      3   NVIDIA GTX 285
 NVIDIA GeForce GTX 285/PCI/SSE2                                                                          supported      3   NVIDIA GTX 285
 NVIDIA GeForce GTX 295/PCI/SSE2                                                                          supported      3   NVIDIA GTX 295
 NVIDIA GeForce GTX 460 SE/PCI/SSE2                                                                       supported      3   NVIDIA GTX 460
@@ -1232,6 +1312,8 @@ NVIDIA GeForce GTX 550 Ti/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 560 Ti/PCI/SSE2                                                                       supported      3   NVIDIA GTX 560
 NVIDIA GeForce GTX 560 Ti/PCI/SSE2/3DNOW!                                                                supported      3   NVIDIA GTX 560
 NVIDIA GeForce GTX 560/PCI/SSE2                                                                          supported      3   NVIDIA GTX 560
+NVIDIA GeForce GTX 560/PCI/SSE2/3DNOW!                                                                   supported      3   NVIDIA GTX 560
+NVIDIA GeForce GTX 560M/PCI/SSE2                                                                         supported      3   NVIDIA GTX 560
 NVIDIA GeForce GTX 570/PCI/SSE2                                                                          supported      3   NVIDIA GTX 570
 NVIDIA GeForce GTX 570/PCI/SSE2/3DNOW!                                                                   supported      3   NVIDIA GTX 570
 NVIDIA GeForce GTX 580/PCI/SSE2                                                                          supported      3   NVIDIA GTX 580
@@ -1239,13 +1321,13 @@ NVIDIA GeForce GTX 580/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 580M/PCI/SSE2                                                                         supported      3   NVIDIA GTX 580M
 NVIDIA GeForce GTX 590/PCI/SSE2                                                                          supported      3   NVIDIA GTX 590
 NVIDIA GeForce Go 6                                                                                      supported      1   NVIDIA GeForce Go 6
-NVIDIA GeForce Go 6100                                                                                   supported      0   NVIDIA GeForce Go 6100
-NVIDIA GeForce Go 6100/PCI/SSE2                                                                          supported      0   NVIDIA GeForce Go 6100
-NVIDIA GeForce Go 6100/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA GeForce Go 6100
+NVIDIA GeForce Go 6100                                                                                   supported      0   NVIDIA G100
+NVIDIA GeForce Go 6100/PCI/SSE2                                                                          supported      0   NVIDIA G100
+NVIDIA GeForce Go 6100/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA G100
 NVIDIA GeForce Go 6150/PCI/SSE2                                                                          supported      0   NVIDIA GeForce Go 6100
 NVIDIA GeForce Go 6150/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA GeForce Go 6100
-NVIDIA GeForce Go 6200                                                                                   supported      0   NVIDIA GeForce Go 6200
-NVIDIA GeForce Go 6200/PCI/SSE2                                                                          supported      0   NVIDIA GeForce Go 6200
+NVIDIA GeForce Go 6200                                                                                   supported      0   NVIDIA G 200
+NVIDIA GeForce Go 6200/PCI/SSE2                                                                          supported      0   NVIDIA G 200
 NVIDIA GeForce Go 6400                                                                                   supported      1   NVIDIA GeForce Go 6400
 NVIDIA GeForce Go 6400/PCI/SSE2                                                                          supported      1   NVIDIA GeForce Go 6400
 NVIDIA GeForce Go 6600                                                                                   supported      1   NVIDIA GeForce Go 6600
@@ -1253,9 +1335,9 @@ NVIDIA GeForce Go 6600/PCI/SSE2
 NVIDIA GeForce Go 6800                                                                                   supported      1   NVIDIA GeForce Go 6800
 NVIDIA GeForce Go 6800 Ultra/PCI/SSE2                                                                    supported      1   NVIDIA GeForce Go 6800
 NVIDIA GeForce Go 6800/PCI/SSE2                                                                          supported      1   NVIDIA GeForce Go 6800
-NVIDIA GeForce Go 7200                                                                                   supported      1   NVIDIA GeForce Go 7200
-NVIDIA GeForce Go 7200/PCI/SSE2                                                                          supported      1   NVIDIA GeForce Go 7200
-NVIDIA GeForce Go 7200/PCI/SSE2/3DNOW!                                                                   supported      1   NVIDIA GeForce Go 7200
+NVIDIA GeForce Go 7200                                                                                   supported      0   NVIDIA G 200
+NVIDIA GeForce Go 7200/PCI/SSE2                                                                          supported      0   NVIDIA G 200
+NVIDIA GeForce Go 7200/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA G 200
 NVIDIA GeForce Go 7300                                                                                   supported      1   NVIDIA GeForce Go 7300
 NVIDIA GeForce Go 7300/PCI/SSE2                                                                          supported      1   NVIDIA GeForce Go 7300
 NVIDIA GeForce Go 7300/PCI/SSE2/3DNOW!                                                                   supported      1   NVIDIA GeForce Go 7300
@@ -1266,6 +1348,7 @@ NVIDIA GeForce Go 7600
 NVIDIA GeForce Go 7600/PCI/SSE2                                                                          supported      2   NVIDIA GeForce Go 7600
 NVIDIA GeForce Go 7600/PCI/SSE2/3DNOW!                                                                   supported      2   NVIDIA GeForce Go 7600
 NVIDIA GeForce Go 7700                                                                                   supported      2   NVIDIA GeForce Go 7700
+NVIDIA GeForce Go 7700/PCI/SSE2                                                                          supported      2   NVIDIA GeForce Go 7700
 NVIDIA GeForce Go 7800                                                                                   supported      2   NVIDIA GeForce Go 7800
 NVIDIA GeForce Go 7800 GTX/PCI/SSE2                                                                      supported      2   NVIDIA GeForce Go 7800
 NVIDIA GeForce Go 7900                                                                                   supported      2   NVIDIA GeForce Go 7900
@@ -1283,7 +1366,9 @@ NVIDIA GeForce3/AGP/SSE2
 NVIDIA GeForce4 420 Go 32M/AGP/SSE2                                                                      supported      0   NVIDIA GeForce 4
 NVIDIA GeForce4 420 Go 32M/AGP/SSE2/3DNOW!                                                               supported      0   NVIDIA GeForce 4
 NVIDIA GeForce4 420 Go 32M/PCI/SSE2/3DNOW!                                                               supported      0   NVIDIA GeForce 4
+NVIDIA GeForce4 420 Go/AGP/SSE2                                                                          supported      0   NVIDIA GeForce 4
 NVIDIA GeForce4 440 Go 64M/AGP/SSE2/3DNOW!                                                               supported      0   NVIDIA GeForce 4
+NVIDIA GeForce4 440 Go/AGP/SSE2                                                                          supported      0   NVIDIA GeForce 4
 NVIDIA GeForce4 460 Go/AGP/SSE2                                                                          supported      0   NVIDIA GeForce 4
 NVIDIA GeForce4 MX 4000/AGP/SSE/3DNOW!                                                                   supported      0   NVIDIA GeForce 4
 NVIDIA GeForce4 MX 4000/AGP/SSE2                                                                         supported      0   NVIDIA GeForce 4
@@ -1297,42 +1382,47 @@ NVIDIA GeForce4 MX 440/AGP/SSE2
 NVIDIA GeForce4 MX 440/AGP/SSE2/3DNOW!                                                                   supported      0   NVIDIA GeForce 4
 NVIDIA GeForce4 MX 440SE with AGP8X/AGP/SSE2                                                             supported      0   NVIDIA GeForce 4
 NVIDIA GeForce4 MX Integrated GPU/AGP/SSE/3DNOW!                                                         supported      0   NVIDIA GeForce 4
-NVIDIA GeForce4 Ti 4200 with AGP8X/AGP/SSE                                                               supported      0   NVIDIA GeForce 4
-NVIDIA GeForce4 Ti 4200/AGP/SSE/3DNOW!                                                                   supported      0   NVIDIA GeForce 4
+NVIDIA GeForce4 Ti 4200 with AGP8X/AGP/SSE                                                               supported      0   NVIDIA G 200
+NVIDIA GeForce4 Ti 4200/AGP/SSE/3DNOW!                                                                   supported      0   NVIDIA G 200
 NVIDIA GeForce4 Ti 4400/AGP/SSE2                                                                         supported      0   NVIDIA GeForce 4
-NVIDIA Generic                                                                                                              UNRECOGNIZED
+NVIDIA Generic                                                                                                              NO MATCH
 NVIDIA ION LE/PCI/SSE2                                                                                   supported      2   NVIDIA ION
 NVIDIA ION/PCI/SSE2                                                                                      supported      2   NVIDIA ION
 NVIDIA ION/PCI/SSE2/3DNOW!                                                                               supported      2   NVIDIA ION
-NVIDIA MCP61/PCI/SSE2                                                                                                       UNRECOGNIZED
-NVIDIA MCP61/PCI/SSE2/3DNOW!                                                                                                UNRECOGNIZED
-NVIDIA MCP73/PCI/SSE2                                                                                                       UNRECOGNIZED
-NVIDIA MCP79MH/PCI/SSE2                                                                                                     UNRECOGNIZED
-NVIDIA MCP79MX/PCI/SSE2                                                                                                     UNRECOGNIZED
-NVIDIA MCP7A-O/PCI/SSE2                                                                                                     UNRECOGNIZED
-NVIDIA MCP7A-S/PCI/SSE2                                                                                                     UNRECOGNIZED
-NVIDIA MCP89-EPT/PCI/SSE2                                                                                                   UNRECOGNIZED
-NVIDIA N10M-GE1/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA N10P-GE1/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA N10P-GV2/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA N11M-GE1/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA N11M-GE2/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA N12E-GS-A1/PCI/SSE2                                                                                                  UNRECOGNIZED
-NVIDIA NB9M-GE/PCI/SSE2                                                                                                     UNRECOGNIZED
-NVIDIA NB9M-GE1/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA NB9M-GS/PCI/SSE2                                                                                                     UNRECOGNIZED
-NVIDIA NB9M-NS/PCI/SSE2                                                                                                     UNRECOGNIZED
-NVIDIA NB9P-GE1/PCI/SSE2                                                                                                    UNRECOGNIZED
-NVIDIA NB9P-GS/PCI/SSE2                                                                                                     UNRECOGNIZED
-NVIDIA NV17/AGP/3DNOW!                                                                                                      UNRECOGNIZED
-NVIDIA NV17/AGP/SSE2                                                                                                        UNRECOGNIZED
+NVIDIA MCP61/PCI/SSE2                                                                                    supported      1   NVIDIA MCP61
+NVIDIA MCP61/PCI/SSE2/3DNOW!                                                                             supported      1   NVIDIA MCP61
+NVIDIA MCP73/PCI/SSE2                                                                                    supported      1   NVIDIA MCP73
+NVIDIA MCP79MH/PCI/SSE2                                                                                  supported      1   NVIDIA MCP79
+NVIDIA MCP79MX/PCI/SSE2                                                                                  supported      1   NVIDIA MCP79
+NVIDIA MCP7A-O/PCI/SSE2                                                                                  supported      1   NVIDIA MCP7A
+NVIDIA MCP7A-S/PCI/SSE2                                                                                  supported      1   NVIDIA MCP7A
+NVIDIA MCP89-EPT/PCI/SSE2                                                                                                   NO MATCH
+NVIDIA N10M-GE1/PCI/SSE2                                                                                 supported      1   NVIDIA N10
+NVIDIA N10P-GE1/PCI/SSE2                                                                                 supported      1   NVIDIA N10
+NVIDIA N10P-GV2/PCI/SSE2                                                                                 supported      1   NVIDIA N10
+NVIDIA N11M-GE1/PCI/SSE2                                                                                                    NO MATCH
+NVIDIA N11M-GE2/PCI/SSE2                                                                                                    NO MATCH
+NVIDIA N12E-GS-A1/PCI/SSE2                                                                                                  NO MATCH
+NVIDIA N12P-GVR-B-A1/PCI/SSE2                                                                                               NO MATCH
+NVIDIA N13M-GE1-B-A1/PCI/SSE2                                                                                               NO MATCH
+NVIDIA N13P-GL-A1/PCI/SSE2                                                                                                  NO MATCH
+NVIDIA NB9M-GE/PCI/SSE2                                                                                  supported      1   NVIDIA NB9M
+NVIDIA NB9M-GE1/PCI/SSE2                                                                                 supported      1   NVIDIA NB9M
+NVIDIA NB9M-GS/PCI/SSE2                                                                                  supported      1   NVIDIA NB9M
+NVIDIA NB9M-NS/PCI/SSE2                                                                                  supported      1   NVIDIA NB9M
+NVIDIA NB9P-GE1/PCI/SSE2                                                                                 supported      2   NVIDIA NB9P
+NVIDIA NB9P-GS/PCI/SSE2                                                                                  supported      2   NVIDIA NB9P
+NVIDIA NV17/AGP/3DNOW!                                                                                   supported      0   NVIDIA NV17
+NVIDIA NV17/AGP/SSE2                                                                                     supported      0   NVIDIA NV17
 NVIDIA NV34                                                                                              supported      0   NVIDIA NV34
 NVIDIA NV35                                                                                              supported      0   NVIDIA NV35
-NVIDIA NV36/AGP/SSE/3DNOW!                                                                                                  UNRECOGNIZED
-NVIDIA NV36/AGP/SSE2                                                                                                        UNRECOGNIZED
-NVIDIA NV41/PCI/SSE2                                                                                                        UNRECOGNIZED
+NVIDIA NV36/AGP/SSE/3DNOW!                                                                               supported      1   NVIDIA NV36
+NVIDIA NV36/AGP/SSE2                                                                                     supported      1   NVIDIA NV36
+NVIDIA NV41/PCI/SSE2                                                                                     supported      1   NVIDIA NV41
 NVIDIA NV43                                                                                              supported      1   NVIDIA NV43
+NVIDIA NV43/PCI/SSE2                                                                                     supported      1   NVIDIA NV43
 NVIDIA NV44                                                                                              supported      1   NVIDIA NV44
+NVIDIA NV44/AGP/SSE2                                                                                     supported      1   NVIDIA NV44
 NVIDIA NVIDIA GeForce 210 OpenGL Engine                                                                  supported      2   NVIDIA 210
 NVIDIA NVIDIA GeForce 320M OpenGL Engine                                                                 supported      2   NVIDIA 320M
 NVIDIA NVIDIA GeForce 7300 GT OpenGL Engine                                                              supported      1   NVIDIA GeForce 7300
@@ -1364,22 +1454,28 @@ NVIDIA NVIDIA GeForce GTX 460M OpenGL Engine
 NVIDIA NVIDIA GeForce GTX 465 OpenGL Engine                                                              supported      3   NVIDIA GTX 465
 NVIDIA NVIDIA GeForce GTX 470 OpenGL Engine                                                              supported      3   NVIDIA GTX 470
 NVIDIA NVIDIA GeForce GTX 480 OpenGL Engine                                                              supported      3   NVIDIA GTX 480
-NVIDIA NVIDIA GeForce Pre-Release ION OpenGL Engine                                                                         UNRECOGNIZED
+NVIDIA NVIDIA GeForce Pre-Release GF108 ES OpenGL Engine                                                                    NO MATCH
+NVIDIA NVIDIA GeForce Pre-Release ION OpenGL Engine                                                      supported      2   NVIDIA ION
+NVIDIA NVIDIA GeForce Pre-Release MCP7A-J-DC OpenGL Engine                                               supported      1   NVIDIA MCP7A
 NVIDIA NVIDIA GeForce4 OpenGL Engine                                                                     supported      0   NVIDIA GeForce 4
 NVIDIA NVIDIA NV34MAP OpenGL Engine                                                                      supported      0   NVIDIA NV34
 NVIDIA NVIDIA Quadro 4000 OpenGL Engine                                                                  supported      3   NVIDIA Quadro 4000
 NVIDIA NVIDIA Quadro FX 4800 OpenGL Engine                                                               supported      3   NVIDIA Quadro FX 4800
-NVIDIA NVS 2100M/PCI/SSE2                                                                                supported      2   NVIDIA Quadro NVS 2100M
+NVIDIA NVS 2100M/PCI/SSE2                                                                                supported      0   NVIDIA G100M
 NVIDIA NVS 300/PCI/SSE2                                                                                  supported      0   NVIDIA Quadro NVS
-NVIDIA NVS 3100M/PCI/SSE2                                                                                supported      2   NVIDIA Quadro NVS 3100M
-NVIDIA NVS 4100/PCI/SSE2/3DNOW!                                                                          supported      0   NVIDIA Quadro NVS
-NVIDIA NVS 4200M/PCI/SSE2                                                                                supported      2   NVIDIA Quadro NVS 4200M
-NVIDIA NVS 5100M/PCI/SSE2                                                                                supported      2   NVIDIA Quadro NVS 5100M
-NVIDIA PCI                                                                                                                  UNRECOGNIZED
-NVIDIA Quadro 2000/PCI/SSE2                                                                              supported      3   NVIDIA Quadro 2000 M/D
+NVIDIA NVS 3100M/PCI/SSE2                                                                                supported      0   NVIDIA G100M
+NVIDIA NVS 4100/PCI/SSE2/3DNOW!                                                                          supported      0   NVIDIA G100
+NVIDIA NVS 4200M/PCI/SSE2                                                                                supported      0   NVIDIA G 200
+NVIDIA NVS 5100M/PCI/SSE2                                                                                supported      0   NVIDIA G100M
+NVIDIA PCI                                                                                                                  NO MATCH
+NVIDIA Quadro 1000M/PCI/SSE2                                                                             supported      0   NVIDIA G100
+NVIDIA Quadro 2000/PCI/SSE2                                                                              supported      0   NVIDIA G 200
+NVIDIA Quadro 2000M/PCI/SSE2                                                                             supported      0   NVIDIA G 200
+NVIDIA Quadro 3000M/PCI/SSE2                                                                             supported      3   NVIDIA Quadro 3000M
 NVIDIA Quadro 4000                                                                                       supported      3   NVIDIA Quadro 4000
 NVIDIA Quadro 4000 OpenGL Engine                                                                         supported      3   NVIDIA Quadro 4000
 NVIDIA Quadro 4000/PCI/SSE2                                                                              supported      3   NVIDIA Quadro 4000
+NVIDIA Quadro 4000M/PCI/SSE2                                                                             supported      3   NVIDIA Quadro 4000M
 NVIDIA Quadro 5000/PCI/SSE2                                                                              supported      3   NVIDIA Quadro 50x0 M
 NVIDIA Quadro 5000M/PCI/SSE2                                                                             supported      3   NVIDIA Quadro 50x0 M
 NVIDIA Quadro 600                                                                                        supported      2   NVIDIA Quadro 600
@@ -1387,12 +1483,13 @@ NVIDIA Quadro 600/PCI/SSE2
 NVIDIA Quadro 600/PCI/SSE2/3DNOW!                                                                        supported      2   NVIDIA Quadro 600
 NVIDIA Quadro 6000                                                                                       supported      3   NVIDIA Quadro 6000
 NVIDIA Quadro 6000/PCI/SSE2                                                                              supported      3   NVIDIA Quadro 6000
-NVIDIA Quadro CX/PCI/SSE2                                                                                                   UNRECOGNIZED
+NVIDIA Quadro CX/PCI/SSE2                                                                                supported      3   NVIDIA Quadro CX
 NVIDIA Quadro DCC                                                                                        supported      0   NVIDIA Quadro DCC
 NVIDIA Quadro FX                                                                                         supported      1   NVIDIA Quadro FX
-NVIDIA Quadro FX 1100/AGP/SSE2                                                                           supported      1   NVIDIA Quadro FX
+NVIDIA Quadro FX 1100/AGP/SSE2                                                                           supported      0   NVIDIA G100
 NVIDIA Quadro FX 1400/PCI/SSE2                                                                           supported      2   NVIDIA Quadro 400
 NVIDIA Quadro FX 1500                                                                                    supported      1   NVIDIA Quadro FX
+NVIDIA Quadro FX 1500/PCI/SSE2                                                                           supported      1   NVIDIA Quadro FX
 NVIDIA Quadro FX 1500M/PCI/SSE2                                                                          supported      1   NVIDIA Quadro FX 1500M
 NVIDIA Quadro FX 1600M/PCI/SSE2                                                                          supported      2   NVIDIA Quadro 600
 NVIDIA Quadro FX 1700                                                                                    supported      1   NVIDIA Quadro FX
@@ -1420,7 +1517,9 @@ NVIDIA Quadro FX 4500
 NVIDIA Quadro FX 4600                                                                                    supported      2   NVIDIA Quadro 600
 NVIDIA Quadro FX 4800                                                                                    supported      3   NVIDIA Quadro FX 4800
 NVIDIA Quadro FX 4800/PCI/SSE2                                                                           supported      3   NVIDIA Quadro FX 4800
+NVIDIA Quadro FX 540/PCI/SSE2/3DNOW!                                                                     supported      1   NVIDIA Quadro FX
 NVIDIA Quadro FX 560                                                                                     supported      1   NVIDIA Quadro FX
+NVIDIA Quadro FX 560/PCI/SSE2                                                                            supported      1   NVIDIA Quadro FX
 NVIDIA Quadro FX 5600                                                                                    supported      2   NVIDIA Quadro 600
 NVIDIA Quadro FX 570                                                                                     supported      1   NVIDIA Quadro FX
 NVIDIA Quadro FX 570/PCI/SSE2                                                                            supported      1   NVIDIA Quadro FX
@@ -1431,57 +1530,73 @@ NVIDIA Quadro FX 880M
 NVIDIA Quadro FX 880M/PCI/SSE2                                                                           supported      3   NVIDIA Quadro FX 880M
 NVIDIA Quadro FX Go700/AGP/SSE2                                                                          supported      1   NVIDIA Quadro FX
 NVIDIA Quadro NVS                                                                                        supported      0   NVIDIA Quadro NVS
-NVIDIA Quadro NVS 110M/PCI/SSE2                                                                          supported      0   NVIDIA Quadro NVS 1xxM
+NVIDIA Quadro NVS 110M/PCI/SSE2                                                                          supported      0   NVIDIA G 110M
 NVIDIA Quadro NVS 130M/PCI/SSE2                                                                          supported      0   NVIDIA Quadro NVS 1xxM
 NVIDIA Quadro NVS 135M/PCI/SSE2                                                                          supported      0   NVIDIA Quadro NVS 1xxM
 NVIDIA Quadro NVS 140M/PCI/SSE2                                                                          supported      0   NVIDIA Quadro NVS 1xxM
 NVIDIA Quadro NVS 150M/PCI/SSE2                                                                          supported      0   NVIDIA Quadro NVS 1xxM
 NVIDIA Quadro NVS 160M/PCI/SSE2                                                                          supported      0   NVIDIA Quadro NVS 1xxM
-NVIDIA Quadro NVS 210S/PCI/SSE2/3DNOW!                                                                   supported      0   NVIDIA Quadro NVS
+NVIDIA Quadro NVS 210S/PCI/SSE2/3DNOW!                                                                   supported      1   NVIDIA G 210
 NVIDIA Quadro NVS 285/PCI/SSE2                                                                           supported      0   NVIDIA Quadro NVS
 NVIDIA Quadro NVS 290/PCI/SSE2                                                                           supported      0   NVIDIA Quadro NVS
 NVIDIA Quadro NVS 295/PCI/SSE2                                                                           supported      0   NVIDIA Quadro NVS
-NVIDIA Quadro NVS 320M/PCI/SSE2                                                                          supported      2   NVIDIA Quadro NVS 320M
+NVIDIA Quadro NVS 320M/PCI/SSE2                                                                          supported      2   NVIDIA G 320M
 NVIDIA Quadro NVS 55/280 PCI/PCI/SSE2                                                                    supported      0   NVIDIA Quadro NVS
 NVIDIA Quadro NVS/PCI/SSE2                                                                               supported      0   NVIDIA Quadro NVS
-NVIDIA Quadro PCI-E Series/PCI/SSE2/3DNOW!                                                                                  UNRECOGNIZED
-NVIDIA Quadro VX 200/PCI/SSE2                                                                                               UNRECOGNIZED
-NVIDIA Quadro/AGP/SSE2                                                                                                      UNRECOGNIZED
+NVIDIA Quadro PCI-E Series/PCI/SSE2/3DNOW!                                                                                  NO MATCH
+NVIDIA Quadro VX 200/PCI/SSE2                                                                            supported      0   NVIDIA G 200
+NVIDIA Quadro/AGP/SSE2                                                                                                      NO MATCH
 NVIDIA Quadro2                                                                                           supported      0   NVIDIA Quadro2
 NVIDIA Quadro4                                                                                           supported      0   NVIDIA Quadro4
+NVIDIA Quadro4 750 XGL/AGP/SSE2                                                                          supported      0   NVIDIA Quadro4
 NVIDIA RIVA TNT                                                                                          unsupported    0   NVIDIA RIVA TNT
 NVIDIA RIVA TNT2/AGP/SSE2                                                                                unsupported    0   NVIDIA RIVA TNT
 NVIDIA RIVA TNT2/PCI/3DNOW!                                                                              unsupported    0   NVIDIA RIVA TNT
+NVIDIA Tesla C2050/PCI/SSE2                                                                              supported      0   NVIDIA G 205M
 NVIDIA nForce                                                                                            unsupported    0   NVIDIA nForce
-NVIDIA unknown board/AGP/SSE2                                                                                               UNRECOGNIZED
-NVIDIA unknown board/PCI/SSE2                                                                                               UNRECOGNIZED
-NVIDIA unknown board/PCI/SSE2/3DNOW!                                                                                        UNRECOGNIZED
+NVIDIA nForce 730a/PCI/SSE2                                                                              unsupported    0   NVIDIA nForce
+NVIDIA nForce 730a/PCI/SSE2/3DNOW!                                                                       unsupported    0   NVIDIA nForce
+NVIDIA nForce 750a SLI/PCI/SSE2                                                                          unsupported    0   NVIDIA nForce
+NVIDIA nForce 750a SLI/PCI/SSE2/3DNOW!                                                                   unsupported    0   NVIDIA nForce
+NVIDIA nForce 760i SLI/PCI/SSE2                                                                          unsupported    0   NVIDIA nForce
+NVIDIA nForce 780a SLI/PCI/SSE2/3DNOW!                                                                   unsupported    0   NVIDIA nForce
+NVIDIA nForce 980a/780a SLI/PCI/SSE2                                                                     unsupported    0   NVIDIA nForce
+NVIDIA nForce 980a/780a SLI/PCI/SSE2/3DNOW!                                                              unsupported    0   NVIDIA nForce
+NVIDIA unknown board/AGP/SSE2                                                                            unsupported    0   NVIDIA Generic
+NVIDIA unknown board/PCI/SSE2                                                                            unsupported    0   NVIDIA Generic
+NVIDIA unknown board/PCI/SSE2/3DNOW!                                                                     unsupported    0   NVIDIA Generic
 Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5670 OpenGL Engine                     supported      3   ATI Radeon HD 5600
 Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5750 OpenGL Engine                     supported      3   ATI Radeon HD 5700
 Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5770 OpenGL Engine                     supported      3   ATI Radeon HD 5700
 Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6490M OpenGL Engine                    supported      3   ATI Radeon HD 6400
 Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6750M OpenGL Engine                    supported      3   ATI Radeon HD 6700
-Parallels and Intel Inc. 3D-Analyze v2.3 - http://www.tommti-systems.com                                                    UNRECOGNIZED
+Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6770M OpenGL Engine                    supported      3   ATI Radeon HD 6700
+Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6970M OpenGL Engine                    supported      3   ATI Radeon HD 6900
+Parallels and Intel Inc. 3D-Analyze v2.3 - http://www.tommti-systems.com                                                    NO MATCH
 Parallels and Intel Inc. Parallels using Intel HD Graphics 3000 OpenGL Engine                            supported      2   Intel HD Graphics
 Parallels and NVIDIA Parallels using NVIDIA GeForce 320M OpenGL Engine                                   supported      2   NVIDIA 320M
 Parallels and NVIDIA Parallels using NVIDIA GeForce 9400 OpenGL Engine                                   supported      1   NVIDIA GeForce 9400
 Parallels and NVIDIA Parallels using NVIDIA GeForce GT 120 OpenGL Engine                                 supported      2   NVIDIA GT 120M
 Parallels and NVIDIA Parallels using NVIDIA GeForce GT 330M OpenGL Engine                                supported      3   NVIDIA GT 330M
 Radeon RV350 on Gallium                                                                                  supported      0   ATI RV350 (9600)
-S3                                                                                                                          UNRECOGNIZED
+S3                                                                                                                          NO MATCH
+S3 Fire GL2                                                                                                                 NO MATCH
 S3 Graphics VIA/S3G UniChrome IGP/MMX/K3D                                                                unsupported    0   S3
+S3 Graphics VIA/S3G UniChrome IGP/MMX/SSE                                                                unsupported    0   S3
 S3 Graphics VIA/S3G UniChrome Pro IGP/MMX/SSE                                                            unsupported    0   S3
 S3 Graphics, Incorporated ProSavage/Twister                                                              unsupported    0   S3
 S3 Graphics, Incorporated S3 Graphics Chrome9 HC                                                         unsupported    0   S3
 S3 Graphics, Incorporated S3 Graphics DeltaChrome                                                        unsupported    0   S3
 S3 Graphics, Incorporated VIA Chrome9 HC IGP                                                             unsupported    0   S3
 SiS                                                                                                      unsupported    0   SiS
+SiS 650/M650 VGA                                                                                         unsupported    0   SiS
 SiS 661 VGA                                                                                              unsupported    0   SiS
 SiS 662 VGA                                                                                              unsupported    0   SiS
 SiS 741 VGA                                                                                              unsupported    0   SiS
 SiS 760 VGA                                                                                              unsupported    0   SiS
 SiS 761GX VGA                                                                                            unsupported    0   SiS
 SiS Mirage Graphics3                                                                                     unsupported    0   SiS
+SiS Xabre VGA                                                                                            unsupported    0   SiS
 Trident                                                                                                  unsupported    0   Trident
 Tungsten Graphics                                                                                        unsupported    0   Tungsten Graphics
 Tungsten Graphics, Inc Mesa DRI 865G GEM 20091221 2009Q4 x86/MMX/SSE2                                    unsupported    0   Mesa
@@ -1520,22 +1635,27 @@ Tungsten Graphics, Inc Mesa DRI IGD GEM 20100330 DEVELOPMENT x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI IGDNG_D GEM 20091221 2009Q4 x86/MMX/SSE2                                 unsupported    0   Mesa
 Tungsten Graphics, Inc Mesa DRI Ironlake Desktop GEM 20100330 DEVELOPMENT x86/MMX/SSE2                   unsupported    0   Mesa
 Tungsten Graphics, Inc Mesa DRI Ironlake Mobile GEM 20100330 DEVELOPMENT x86/MMX/SSE2                    unsupported    0   Mesa
+Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset                                      unsupported    0   Mesa
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset 20080716 x86/MMX/SSE2                unsupported    0   Mesa
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20090712 2009Q2 RC3 x86/MMX...   unsupported    0   Mesa
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20091221 2009Q4 x86/MMX/SSE2     unsupported    0   Mesa
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100328 2010Q1                  unsupported    0   Mesa
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT             unsupported    0   Mesa
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MM...   unsupported    0   Mesa
+Tungsten Graphics, Inc. Mesa DRI R200 (RV250 4C66) 20090101 x86/MMX/SSE2 TCL DRI2                        unsupported    0   Mesa
 Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5964) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2               unsupported    0   Mesa
 VIA                                                                                                      unsupported    0   VIA
-VMware, Inc. Gallium 0.3 on SVGA3D; build: RELEASE;                                                                         UNRECOGNIZED
-VMware, Inc. Gallium 0.4 on i915 (chipset: 945GM)                                                                           UNRECOGNIZED
-VMware, Inc. Gallium 0.4 on llvmpipe                                                                                        UNRECOGNIZED
-VMware, Inc. Gallium 0.4 on softpipe                                                                                        UNRECOGNIZED
+VMware, Inc. Gallium 0.3 on SVGA3D; build: RELEASE;                                                                         NO MATCH
+VMware, Inc. Gallium 0.4 on SVGA3D; build: DEBUG; mutex: MSVC Intrinsics                                                    NO MATCH
+VMware, Inc. Gallium 0.4 on SVGA3D; build: RELEASE;                                                                         NO MATCH
+VMware, Inc. Gallium 0.4 on i915 (chipset: 945GM)                                                                           NO MATCH
+VMware, Inc. Gallium 0.4 on llvmpipe                                                                                        NO MATCH
+VMware, Inc. Gallium 0.4 on softpipe                                                                                        NO MATCH
 X.Org Gallium 0.4 on AMD BARTS                                                                           supported      3   AMD BARTS (HD 6800)
 X.Org Gallium 0.4 on AMD CEDAR                                                                           supported      2   AMD CEDAR (HD 5450)
 X.Org Gallium 0.4 on AMD HEMLOCK                                                                         supported      3   AMD HEMLOCK (HD 5970)
 X.Org Gallium 0.4 on AMD JUNIPER                                                                         supported      3   AMD JUNIPER (HD 5700)
+X.Org Gallium 0.4 on AMD PALM                                                                                               NO MATCH
 X.Org Gallium 0.4 on AMD REDWOOD                                                                         supported      3   AMD REDWOOD (HD 5500/5600)
 X.Org Gallium 0.4 on AMD RS780                                                                           supported      0   AMD RS780 (HD 3200)
 X.Org Gallium 0.4 on AMD RS880                                                                           supported      1   AMD RS880 (HD 4200)
@@ -1548,16 +1668,21 @@ X.Org Gallium 0.4 on AMD RV730
 X.Org Gallium 0.4 on AMD RV740                                                                           supported      3   AMD RV740 (HD 4700)
 X.Org Gallium 0.4 on AMD RV770                                                                           supported      3   AMD RV770 (HD 4800)
 X.Org R300 Project Gallium 0.4 on ATI R300                                                               supported      1   ATI R300 (9700)
+X.Org R300 Project Gallium 0.4 on ATI R350                                                               supported      1   ATI R350 (9800)
+X.Org R300 Project Gallium 0.4 on ATI R420                                                               supported      1   ATI R300 (9700)
 X.Org R300 Project Gallium 0.4 on ATI R580                                                               supported      3   ATI R580 (X1900)
 X.Org R300 Project Gallium 0.4 on ATI RC410                                                              unsupported    0   ATI RC410 (Xpress 200)
+X.Org R300 Project Gallium 0.4 on ATI RS480                                                              unsupported    0   ATI RS48x (Xpress 200x)
 X.Org R300 Project Gallium 0.4 on ATI RS482                                                              unsupported    0   ATI RS48x (Xpress 200x)
 X.Org R300 Project Gallium 0.4 on ATI RS600                                                              unsupported    0   ATI RS600 (Xpress 3200)
 X.Org R300 Project Gallium 0.4 on ATI RS690                                                              supported      1   ATI R300 (9700)
+X.Org R300 Project Gallium 0.4 on ATI RS740                                                              supported      1   ATI R300 (9700)
 X.Org R300 Project Gallium 0.4 on ATI RV350                                                              supported      0   ATI RV350 (9600)
 X.Org R300 Project Gallium 0.4 on ATI RV370                                                              supported      0   ATI RV370 (X300)
 X.Org R300 Project Gallium 0.4 on ATI RV410                                                              supported      1   ATI RV410 (X700)
 X.Org R300 Project Gallium 0.4 on ATI RV515                                                              supported      1   ATI RV515
 X.Org R300 Project Gallium 0.4 on ATI RV530                                                              supported      1   ATI RV530
+X.Org R300 Project Gallium 0.4 on ATI RV560                                                              supported      1   ATI R300 (9700)
 X.Org R300 Project Gallium 0.4 on ATI RV570                                                              supported      3   ATI RV570 (X1900 GT/PRO)
 X.Org R300 Project Gallium 0.4 on R420                                                                   supported      1   ATI R300 (9700)
 X.Org R300 Project Gallium 0.4 on R580                                                                   supported      3   ATI R580 (X1900)
@@ -1573,23 +1698,29 @@ X.Org R300 Project Gallium 0.4 on RV410
 X.Org R300 Project Gallium 0.4 on RV515                                                                  supported      1   ATI RV515
 X.Org R300 Project Gallium 0.4 on RV530                                                                  supported      1   ATI RV530
 XGI                                                                                                      unsupported    0   XGI
-nouveau Gallium 0.4 on NV34                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV36                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV46                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV49                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV4A                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV4B                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV4E                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV50                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV84                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV86                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV92                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV94                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV96                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NV98                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NVA0                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NVA3                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NVA5                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NVA8                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NVAA                                                                                                 UNRECOGNIZED
-nouveau Gallium 0.4 on NVAC                                                                                                 UNRECOGNIZED
+nouveau Gallium 0.4 on NV31                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV34                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV36                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV43                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV44                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV46                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV49                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV4A                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV4B                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV4C                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV4E                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV50                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV63                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV67                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV84                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV86                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV92                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV94                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV96                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NV98                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NVA0                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NVA3                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NVA5                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NVA8                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NVAA                                                                                                 NO MATCH
+nouveau Gallium 0.4 on NVAC                                                                                                 NO MATCH
diff --git a/indra/newview/tests/gpus_seen.txt b/indra/newview/tests/gpus_seen.txt
index c807f22b58fc7d04425e7c9819632983150ccb3f..570f92a9b064c85a4b623b1c824e9bfd7e5ed641 100644
--- a/indra/newview/tests/gpus_seen.txt
+++ b/indra/newview/tests/gpus_seen.txt
@@ -135,208 +135,386 @@ ATI Rage 128
 ATI Technologies Inc.
 ATI Technologies Inc.  x86
 ATI Technologies Inc.  x86/SSE2
+ATI Technologies Inc.  x86/SSE2
 ATI Technologies Inc. (Vista) ATI Mobility Radeon HD 5730
+ATI Technologies Inc. 128MB ATI Radeon X1300 x86/SSE2
 ATI Technologies Inc. 256MB ATI Radeon X1300PRO x86/SSE2
 ATI Technologies Inc. AMD 760G
+ATI Technologies Inc. AMD 760G
 ATI Technologies Inc. AMD 760G (Microsoft WDDM 1.1)
 ATI Technologies Inc. AMD 780L
 ATI Technologies Inc. AMD FirePro 2270
 ATI Technologies Inc. AMD M860G with ATI Mobility Radeon 4100
+ATI Technologies Inc. AMD M860G with ATI Mobility Radeon 4100
+ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4200
 ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4200
 ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4250
+ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4250
+ATI Technologies Inc. AMD RADEON HD 6350
+ATI Technologies Inc. AMD RADEON HD 6450
 ATI Technologies Inc. AMD RADEON HD 6450
+ATI Technologies Inc. AMD RADEON HD 6670
+ATI Technologies Inc. AMD Radeon 6600M and 6700M Series
+ATI Technologies Inc. AMD Radeon HD 6200 series Graphics
 ATI Technologies Inc. AMD Radeon HD 6200 series Graphics
 ATI Technologies Inc. AMD Radeon HD 6250 Graphics
+ATI Technologies Inc. AMD Radeon HD 6250 Graphics
+ATI Technologies Inc. AMD Radeon HD 6290 Graphics
+ATI Technologies Inc. AMD Radeon HD 6300 series Graphics
 ATI Technologies Inc. AMD Radeon HD 6300 series Graphics
 ATI Technologies Inc. AMD Radeon HD 6300M Series
+ATI Technologies Inc. AMD Radeon HD 6300M Series
+ATI Technologies Inc. AMD Radeon HD 6310 Graphics
 ATI Technologies Inc. AMD Radeon HD 6310 Graphics
 ATI Technologies Inc. AMD Radeon HD 6310M
+ATI Technologies Inc. AMD Radeon HD 6310M
+ATI Technologies Inc. AMD Radeon HD 6330M
 ATI Technologies Inc. AMD Radeon HD 6330M
 ATI Technologies Inc. AMD Radeon HD 6350
 ATI Technologies Inc. AMD Radeon HD 6370M
+ATI Technologies Inc. AMD Radeon HD 6370M
 ATI Technologies Inc. AMD Radeon HD 6400M Series
+ATI Technologies Inc. AMD Radeon HD 6400M Series
+ATI Technologies Inc. AMD Radeon HD 6450
 ATI Technologies Inc. AMD Radeon HD 6450
 ATI Technologies Inc. AMD Radeon HD 6470M
+ATI Technologies Inc. AMD Radeon HD 6470M
+ATI Technologies Inc. AMD Radeon HD 6490M
 ATI Technologies Inc. AMD Radeon HD 6490M
+ATI Technologies Inc. AMD Radeon HD 6500 Series
+ATI Technologies Inc. AMD Radeon HD 6500M Series
 ATI Technologies Inc. AMD Radeon HD 6500M/5600/5700 Series
+ATI Technologies Inc. AMD Radeon HD 6500M/5600/5700 Series
+ATI Technologies Inc. AMD Radeon HD 6530M
 ATI Technologies Inc. AMD Radeon HD 6530M
 ATI Technologies Inc. AMD Radeon HD 6550M
+ATI Technologies Inc. AMD Radeon HD 6550M
 ATI Technologies Inc. AMD Radeon HD 6570
+ATI Technologies Inc. AMD Radeon HD 6570
+ATI Technologies Inc. AMD Radeon HD 6570M
 ATI Technologies Inc. AMD Radeon HD 6570M
 ATI Technologies Inc. AMD Radeon HD 6570M/5700 Series
+ATI Technologies Inc. AMD Radeon HD 6570M/5700 Series
+ATI Technologies Inc. AMD Radeon HD 6600 Series
 ATI Technologies Inc. AMD Radeon HD 6600M Series
+ATI Technologies Inc. AMD Radeon HD 6630M
+ATI Technologies Inc. AMD Radeon HD 6650M
 ATI Technologies Inc. AMD Radeon HD 6650M
 ATI Technologies Inc. AMD Radeon HD 6670
+ATI Technologies Inc. AMD Radeon HD 6670
+ATI Technologies Inc. AMD Radeon HD 6700 Series
 ATI Technologies Inc. AMD Radeon HD 6700 Series
 ATI Technologies Inc. AMD Radeon HD 6750
+ATI Technologies Inc. AMD Radeon HD 6750
 ATI Technologies Inc. AMD Radeon HD 6750M
+ATI Technologies Inc. AMD Radeon HD 6750M
+ATI Technologies Inc. AMD Radeon HD 6770
 ATI Technologies Inc. AMD Radeon HD 6770
+ATI Technologies Inc. AMD Radeon HD 6770M
 ATI Technologies Inc. AMD Radeon HD 6800 Series
+ATI Technologies Inc. AMD Radeon HD 6800 Series
+ATI Technologies Inc. AMD Radeon HD 6800M Series
+ATI Technologies Inc. AMD Radeon HD 6850
+ATI Technologies Inc. AMD Radeon HD 6850M
 ATI Technologies Inc. AMD Radeon HD 6850M
 ATI Technologies Inc. AMD Radeon HD 6870
+ATI Technologies Inc. AMD Radeon HD 6870
+ATI Technologies Inc. AMD Radeon HD 6870M
 ATI Technologies Inc. AMD Radeon HD 6870M
 ATI Technologies Inc. AMD Radeon HD 6900 Series
+ATI Technologies Inc. AMD Radeon HD 6900 Series
+ATI Technologies Inc. AMD Radeon HD 6900M Series
 ATI Technologies Inc. AMD Radeon HD 6970M
+ATI Technologies Inc. AMD Radeon HD 6970M
+ATI Technologies Inc. AMD Radeon HD 6990
 ATI Technologies Inc. AMD Radeon HD 6990
 ATI Technologies Inc. AMD Radeon(TM) HD 6470M
+ATI Technologies Inc. AMD Radeon(TM) HD 6470M
+ATI Technologies Inc. AMD Radeon(TM) HD 6470M
+ATI Technologies Inc. AMD Radeon(TM) HD 6480G
+ATI Technologies Inc. AMD Radeon(TM) HD 6520G
+ATI Technologies Inc. AMD Radeon(TM) HD 6620G
+ATI Technologies Inc. AMD Radeon(TM) HD 6630M
 ATI Technologies Inc. ASUS 5870 Eyefinity 6
+ATI Technologies Inc. ASUS A9550 Series
 ATI Technologies Inc. ASUS AH2600 Series
 ATI Technologies Inc. ASUS AH3450 Series
 ATI Technologies Inc. ASUS AH3650 Series
+ATI Technologies Inc. ASUS AH3650 Series
 ATI Technologies Inc. ASUS AH4650 Series
 ATI Technologies Inc. ASUS ARES
+ATI Technologies Inc. ASUS ARES
 ATI Technologies Inc. ASUS EAH2900 Series
 ATI Technologies Inc. ASUS EAH3450 Series
+ATI Technologies Inc. ASUS EAH3450 Series
 ATI Technologies Inc. ASUS EAH3650 Series
+ATI Technologies Inc. ASUS EAH3650 Series
+ATI Technologies Inc. ASUS EAH4350 series
 ATI Technologies Inc. ASUS EAH4350 series
 ATI Technologies Inc. ASUS EAH4550 series
+ATI Technologies Inc. ASUS EAH4550 series
 ATI Technologies Inc. ASUS EAH4650 series
 ATI Technologies Inc. ASUS EAH4670 series
+ATI Technologies Inc. ASUS EAH4670 series
 ATI Technologies Inc. ASUS EAH4750 Series
 ATI Technologies Inc. ASUS EAH4770 Series
+ATI Technologies Inc. ASUS EAH4770 Series
+ATI Technologies Inc. ASUS EAH4770 series
 ATI Technologies Inc. ASUS EAH4770 series
 ATI Technologies Inc. ASUS EAH4850 series
 ATI Technologies Inc. ASUS EAH5450 Series
+ATI Technologies Inc. ASUS EAH5450 Series
 ATI Technologies Inc. ASUS EAH5550 Series
+ATI Technologies Inc. ASUS EAH5550 Series
+ATI Technologies Inc. ASUS EAH5570 series
 ATI Technologies Inc. ASUS EAH5570 series
 ATI Technologies Inc. ASUS EAH5670 Series
+ATI Technologies Inc. ASUS EAH5670 Series
+ATI Technologies Inc. ASUS EAH5750 Series
 ATI Technologies Inc. ASUS EAH5750 Series
 ATI Technologies Inc. ASUS EAH5770 Series
+ATI Technologies Inc. ASUS EAH5770 Series
 ATI Technologies Inc. ASUS EAH5830 Series
 ATI Technologies Inc. ASUS EAH5850 Series
+ATI Technologies Inc. ASUS EAH5850 Series
+ATI Technologies Inc. ASUS EAH5870 Series
 ATI Technologies Inc. ASUS EAH5870 Series
 ATI Technologies Inc. ASUS EAH5970 Series
+ATI Technologies Inc. ASUS EAH5970 Series
+ATI Technologies Inc. ASUS EAH6450 Series
+ATI Technologies Inc. ASUS EAH6570 Series
+ATI Technologies Inc. ASUS EAH6670 Series
+ATI Technologies Inc. ASUS EAH6850 Series
 ATI Technologies Inc. ASUS EAH6850 Series
 ATI Technologies Inc. ASUS EAH6870 Series
+ATI Technologies Inc. ASUS EAH6870 Series
+ATI Technologies Inc. ASUS EAH6950 Series
 ATI Technologies Inc. ASUS EAH6950 Series
 ATI Technologies Inc. ASUS EAH6970 Series
+ATI Technologies Inc. ASUS EAH6970 Series
 ATI Technologies Inc. ASUS EAHG4670 series
 ATI Technologies Inc. ASUS Extreme AX600 Series
+ATI Technologies Inc. ASUS Extreme AX600 Series
+ATI Technologies Inc. ASUS Extreme AX600XT-TD
 ATI Technologies Inc. ASUS Extreme AX600XT-TD
 ATI Technologies Inc. ASUS X1300 Series x86/SSE2
 ATI Technologies Inc. ASUS X1550 Series
 ATI Technologies Inc. ASUS X1950 Series x86/SSE2
 ATI Technologies Inc. ASUS X800 Series
+ATI Technologies Inc. ASUS X800 Series
 ATI Technologies Inc. ASUS X850 Series
 ATI Technologies Inc. ATI All-in-Wonder HD
 ATI Technologies Inc. ATI FirePro 2260
+ATI Technologies Inc. ATI FirePro 2260
 ATI Technologies Inc. ATI FirePro 2450
 ATI Technologies Inc. ATI FirePro M5800
+ATI Technologies Inc. ATI FirePro M5800
+ATI Technologies Inc. ATI FirePro M7740
 ATI Technologies Inc. ATI FirePro M7740
 ATI Technologies Inc. ATI FirePro M7820
+ATI Technologies Inc. ATI FirePro M7820
 ATI Technologies Inc. ATI FirePro V3700 (FireGL)
 ATI Technologies Inc. ATI FirePro V3800
 ATI Technologies Inc. ATI FirePro V4800
 ATI Technologies Inc. ATI FirePro V4800 (FireGL)
 ATI Technologies Inc. ATI FirePro V5800
 ATI Technologies Inc. ATI FirePro V7800
+ATI Technologies Inc. ATI MOBILITY RADEON 9600/9700 Series
+ATI Technologies Inc. ATI MOBILITY RADEON 9XXX x86/SSE2
 ATI Technologies Inc. ATI MOBILITY RADEON 9XXX x86/SSE2
+ATI Technologies Inc. ATI MOBILITY RADEON HD 2300
 ATI Technologies Inc. ATI MOBILITY RADEON HD 3450
+ATI Technologies Inc. ATI MOBILITY RADEON HD 3650
+ATI Technologies Inc. ATI MOBILITY RADEON X1600
 ATI Technologies Inc. ATI MOBILITY RADEON X1600
 ATI Technologies Inc. ATI MOBILITY RADEON X2300
+ATI Technologies Inc. ATI MOBILITY RADEON X2300
 ATI Technologies Inc. ATI MOBILITY RADEON X2300 HD x86/SSE2
 ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/SSE2
 ATI Technologies Inc. ATI MOBILITY RADEON X300
+ATI Technologies Inc. ATI MOBILITY RADEON X300
 ATI Technologies Inc. ATI MOBILITY RADEON X600
+ATI Technologies Inc. ATI MOBILITY RADEON X700
+ATI Technologies Inc. ATI MOBILITY RADEON XPRESS 200
 ATI Technologies Inc. ATI MOBILITY RADEON XPRESS 200
 ATI Technologies Inc. ATI Mobility FireGL V5700
+ATI Technologies Inc. ATI Mobility FireGL V5700
+ATI Technologies Inc. ATI Mobility Radeon 4100
 ATI Technologies Inc. ATI Mobility Radeon 4100
 ATI Technologies Inc. ATI Mobility Radeon Graphics
+ATI Technologies Inc. ATI Mobility Radeon Graphics
 ATI Technologies Inc. ATI Mobility Radeon HD 2300
+ATI Technologies Inc. ATI Mobility Radeon HD 2300
+ATI Technologies Inc. ATI Mobility Radeon HD 2400
 ATI Technologies Inc. ATI Mobility Radeon HD 2400
 ATI Technologies Inc. ATI Mobility Radeon HD 2400 XT
+ATI Technologies Inc. ATI Mobility Radeon HD 2400 XT
+ATI Technologies Inc. ATI Mobility Radeon HD 2600
 ATI Technologies Inc. ATI Mobility Radeon HD 2600
 ATI Technologies Inc. ATI Mobility Radeon HD 2600 XT
 ATI Technologies Inc. ATI Mobility Radeon HD 2700
+ATI Technologies Inc. ATI Mobility Radeon HD 2700
+ATI Technologies Inc. ATI Mobility Radeon HD 3400 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 3400 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 3410
+ATI Technologies Inc. ATI Mobility Radeon HD 3430
 ATI Technologies Inc. ATI Mobility Radeon HD 3430
 ATI Technologies Inc. ATI Mobility Radeon HD 3450
+ATI Technologies Inc. ATI Mobility Radeon HD 3450
+ATI Technologies Inc. ATI Mobility Radeon HD 3470
 ATI Technologies Inc. ATI Mobility Radeon HD 3470
 ATI Technologies Inc. ATI Mobility Radeon HD 3470 Hybrid X2
 ATI Technologies Inc. ATI Mobility Radeon HD 3650
+ATI Technologies Inc. ATI Mobility Radeon HD 3650
+ATI Technologies Inc. ATI Mobility Radeon HD 3670
+ATI Technologies Inc. ATI Mobility Radeon HD 4200
 ATI Technologies Inc. ATI Mobility Radeon HD 4200
 ATI Technologies Inc. ATI Mobility Radeon HD 4200 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4200 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 4225
 ATI Technologies Inc. ATI Mobility Radeon HD 4225 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4225 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4250
 ATI Technologies Inc. ATI Mobility Radeon HD 4250
 ATI Technologies Inc. ATI Mobility Radeon HD 4250 Graphics
+ATI Technologies Inc. ATI Mobility Radeon HD 4250 Graphics
+ATI Technologies Inc. ATI Mobility Radeon HD 4250 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 4270
 ATI Technologies Inc. ATI Mobility Radeon HD 4300 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4300 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 4300/4500 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4300/4500 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4330
 ATI Technologies Inc. ATI Mobility Radeon HD 4330
 ATI Technologies Inc. ATI Mobility Radeon HD 4330 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 4350
 ATI Technologies Inc. ATI Mobility Radeon HD 4350 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4350 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 4500/5100 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4500/5100 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 4530
+ATI Technologies Inc. ATI Mobility Radeon HD 4530
+ATI Technologies Inc. ATI Mobility Radeon HD 4530 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 4530 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 4550
+ATI Technologies Inc. ATI Mobility Radeon HD 4550
+ATI Technologies Inc. ATI Mobility Radeon HD 4570
 ATI Technologies Inc. ATI Mobility Radeon HD 4570
 ATI Technologies Inc. ATI Mobility Radeon HD 4600 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4600 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4650
 ATI Technologies Inc. ATI Mobility Radeon HD 4650
 ATI Technologies Inc. ATI Mobility Radeon HD 4650 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4650 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 4670
 ATI Technologies Inc. ATI Mobility Radeon HD 4670
 ATI Technologies Inc. ATI Mobility Radeon HD 4830 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 4850
 ATI Technologies Inc. ATI Mobility Radeon HD 4870
+ATI Technologies Inc. ATI Mobility Radeon HD 4870
+ATI Technologies Inc. ATI Mobility Radeon HD 5000
 ATI Technologies Inc. ATI Mobility Radeon HD 5000
 ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 5145
 ATI Technologies Inc. ATI Mobility Radeon HD 5145
 ATI Technologies Inc. ATI Mobility Radeon HD 5165
+ATI Technologies Inc. ATI Mobility Radeon HD 5165
 ATI Technologies Inc. ATI Mobility Radeon HD 530v
+ATI Technologies Inc. ATI Mobility Radeon HD 530v
+ATI Technologies Inc. ATI Mobility Radeon HD 5400 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 5400 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 540v
 ATI Technologies Inc. ATI Mobility Radeon HD 5430
+ATI Technologies Inc. ATI Mobility Radeon HD 5430
+ATI Technologies Inc. ATI Mobility Radeon HD 5450
 ATI Technologies Inc. ATI Mobility Radeon HD 5450
 ATI Technologies Inc. ATI Mobility Radeon HD 5450 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 5450 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 545v
 ATI Technologies Inc. ATI Mobility Radeon HD 545v
 ATI Technologies Inc. ATI Mobility Radeon HD 5470
+ATI Technologies Inc. ATI Mobility Radeon HD 5470
 ATI Technologies Inc. ATI Mobility Radeon HD 550v
+ATI Technologies Inc. ATI Mobility Radeon HD 550v
+ATI Technologies Inc. ATI Mobility Radeon HD 5600/5700 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 5600/5700 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 560v
 ATI Technologies Inc. ATI Mobility Radeon HD 5650
+ATI Technologies Inc. ATI Mobility Radeon HD 5650
+ATI Technologies Inc. ATI Mobility Radeon HD 5700 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 5700 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 5730
+ATI Technologies Inc. ATI Mobility Radeon HD 5730
+ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series
 ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 5830 Series
+ATI Technologies Inc. ATI Mobility Radeon HD 5850
 ATI Technologies Inc. ATI Mobility Radeon HD 5850
 ATI Technologies Inc. ATI Mobility Radeon HD 5870
+ATI Technologies Inc. ATI Mobility Radeon HD 5870
+ATI Technologies Inc. ATI Mobility Radeon HD 6300 series
 ATI Technologies Inc. ATI Mobility Radeon HD 6300 series
 ATI Technologies Inc. ATI Mobility Radeon HD 6370
+ATI Technologies Inc. ATI Mobility Radeon HD 6370
 ATI Technologies Inc. ATI Mobility Radeon HD 6470M
 ATI Technologies Inc. ATI Mobility Radeon HD 6550
+ATI Technologies Inc. ATI Mobility Radeon HD 6550
 ATI Technologies Inc. ATI Mobility Radeon HD 6570
+ATI Technologies Inc. ATI Mobility Radeon HD 6570
+ATI Technologies Inc. ATI Mobility Radeon X1300
 ATI Technologies Inc. ATI Mobility Radeon X1300
 ATI Technologies Inc. ATI Mobility Radeon X1300 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Mobility Radeon X1300 x86/SSE2
+ATI Technologies Inc. ATI Mobility Radeon X1300 x86/SSE2
 ATI Technologies Inc. ATI Mobility Radeon X1350
 ATI Technologies Inc. ATI Mobility Radeon X1350 x86/SSE2
 ATI Technologies Inc. ATI Mobility Radeon X1400
+ATI Technologies Inc. ATI Mobility Radeon X1400
+ATI Technologies Inc. ATI Mobility Radeon X1400 x86/SSE2
 ATI Technologies Inc. ATI Mobility Radeon X1400 x86/SSE2
 ATI Technologies Inc. ATI Mobility Radeon X1600
+ATI Technologies Inc. ATI Mobility Radeon X1600
+ATI Technologies Inc. ATI Mobility Radeon X1600 x86/SSE2
 ATI Technologies Inc. ATI Mobility Radeon X1600 x86/SSE2
 ATI Technologies Inc. ATI Mobility Radeon X1700 x86/SSE2
 ATI Technologies Inc. ATI Mobility Radeon X2300
+ATI Technologies Inc. ATI Mobility Radeon X2300
 ATI Technologies Inc. ATI Mobility Radeon X2300 (Omega 3.8.442)
 ATI Technologies Inc. ATI Mobility Radeon X2300 x86
+ATI Technologies Inc. ATI Mobility Radeon X2300 x86
+ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2
+ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2
+ATI Technologies Inc. ATI Mobility Radeon X2500
 ATI Technologies Inc. ATI Mobility Radeon X2500
 ATI Technologies Inc. ATI Mobility Radeon X2500 x86/SSE2
 ATI Technologies Inc. ATI Mobility Radeon. HD 530v
+ATI Technologies Inc. ATI Mobility Radeon. HD 530v
+ATI Technologies Inc. ATI Mobility Radeon. HD 5470
 ATI Technologies Inc. ATI Mobility Radeon. HD 5470
 ATI Technologies Inc. ATI RADEON HD 3200 T25XX by CAMILO
 ATI Technologies Inc. ATI RADEON XPRESS 1100
+ATI Technologies Inc. ATI RADEON XPRESS 1100 x86/SSE2
+ATI Technologies Inc. ATI RADEON XPRESS 200 Series
 ATI Technologies Inc. ATI RADEON XPRESS 200 Series
 ATI Technologies Inc. ATI RADEON XPRESS 200 Series x86/SSE2
 ATI Technologies Inc. ATI RADEON XPRESS 200M SERIES
 ATI Technologies Inc. ATI Radeon
 ATI Technologies Inc. ATI Radeon 2100
+ATI Technologies Inc. ATI Radeon 2100
 ATI Technologies Inc. ATI Radeon 2100 (Microsoft - WDDM)
 ATI Technologies Inc. ATI Radeon 2100 Graphics
 ATI Technologies Inc. ATI Radeon 3000
+ATI Technologies Inc. ATI Radeon 3000
 ATI Technologies Inc. ATI Radeon 3000 Graphics
+ATI Technologies Inc. ATI Radeon 3000 Graphics
+ATI Technologies Inc. ATI Radeon 3100 Graphics
 ATI Technologies Inc. ATI Radeon 3100 Graphics
 ATI Technologies Inc. ATI Radeon 5xxx series
 ATI Technologies Inc. ATI Radeon 9550 / X1050 Series
@@ -347,143 +525,239 @@ ATI Technologies Inc. ATI Radeon 9600 / X1050 Series
 ATI Technologies Inc. ATI Radeon 9600/9550/X1050 Series
 ATI Technologies Inc. ATI Radeon BA Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon BB Prototype OpenGL Engine
+ATI Technologies Inc. ATI Radeon Broadway XT Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon Cedar PRO Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon Cypress PRO Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon Graphics Processor
+ATI Technologies Inc. ATI Radeon Graphics Processor
 ATI Technologies Inc. ATI Radeon HD 2200 Graphics
 ATI Technologies Inc. ATI Radeon HD 2350
 ATI Technologies Inc. ATI Radeon HD 2400
+ATI Technologies Inc. ATI Radeon HD 2400
+ATI Technologies Inc. ATI Radeon HD 2400 OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 2400 OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 2400 PRO
 ATI Technologies Inc. ATI Radeon HD 2400 PRO AGP
 ATI Technologies Inc. ATI Radeon HD 2400 Pro
+ATI Technologies Inc. ATI Radeon HD 2400 Pro
+ATI Technologies Inc. ATI Radeon HD 2400 Series
 ATI Technologies Inc. ATI Radeon HD 2400 Series
 ATI Technologies Inc. ATI Radeon HD 2400 XT
+ATI Technologies Inc. ATI Radeon HD 2400 XT
+ATI Technologies Inc. ATI Radeon HD 2400 XT OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 2400 XT OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 2600 OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 2600 PRO
 ATI Technologies Inc. ATI Radeon HD 2600 PRO OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 2600 PRO OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 2600 Pro
 ATI Technologies Inc. ATI Radeon HD 2600 Pro
 ATI Technologies Inc. ATI Radeon HD 2600 Series
 ATI Technologies Inc. ATI Radeon HD 2600 XT
+ATI Technologies Inc. ATI Radeon HD 2600 XT
 ATI Technologies Inc. ATI Radeon HD 2900 GT
 ATI Technologies Inc. ATI Radeon HD 2900 XT
 ATI Technologies Inc. ATI Radeon HD 3200 Graphics
+ATI Technologies Inc. ATI Radeon HD 3200 Graphics
 ATI Technologies Inc. ATI Radeon HD 3300 Graphics
 ATI Technologies Inc. ATI Radeon HD 3400 Series
+ATI Technologies Inc. ATI Radeon HD 3400 Series
 ATI Technologies Inc. ATI Radeon HD 3450
+ATI Technologies Inc. ATI Radeon HD 3450
+ATI Technologies Inc. ATI Radeon HD 3450 - Dell Optiplex
 ATI Technologies Inc. ATI Radeon HD 3450 - Dell Optiplex
 ATI Technologies Inc. ATI Radeon HD 3470
 ATI Technologies Inc. ATI Radeon HD 3470 - Dell Optiplex
 ATI Technologies Inc. ATI Radeon HD 3550
+ATI Technologies Inc. ATI Radeon HD 3550
 ATI Technologies Inc. ATI Radeon HD 3600 Series
+ATI Technologies Inc. ATI Radeon HD 3600 Series
+ATI Technologies Inc. ATI Radeon HD 3650
 ATI Technologies Inc. ATI Radeon HD 3650
 ATI Technologies Inc. ATI Radeon HD 3650 AGP
 ATI Technologies Inc. ATI Radeon HD 3730
 ATI Technologies Inc. ATI Radeon HD 3800 Series
+ATI Technologies Inc. ATI Radeon HD 3800 Series
+ATI Technologies Inc. ATI Radeon HD 3850
 ATI Technologies Inc. ATI Radeon HD 3850
 ATI Technologies Inc. ATI Radeon HD 3850 AGP
 ATI Technologies Inc. ATI Radeon HD 3870
+ATI Technologies Inc. ATI Radeon HD 3870
 ATI Technologies Inc. ATI Radeon HD 3870 X2
 ATI Technologies Inc. ATI Radeon HD 4200
+ATI Technologies Inc. ATI Radeon HD 4200
+ATI Technologies Inc. ATI Radeon HD 4250
 ATI Technologies Inc. ATI Radeon HD 4250
 ATI Technologies Inc. ATI Radeon HD 4250 Graphics
+ATI Technologies Inc. ATI Radeon HD 4250 Graphics
+ATI Technologies Inc. ATI Radeon HD 4270
 ATI Technologies Inc. ATI Radeon HD 4270
 ATI Technologies Inc. ATI Radeon HD 4290
+ATI Technologies Inc. ATI Radeon HD 4290
+ATI Technologies Inc. ATI Radeon HD 4290 (Engineering Sample)
 ATI Technologies Inc. ATI Radeon HD 4300 Series
+ATI Technologies Inc. ATI Radeon HD 4300 Series
+ATI Technologies Inc. ATI Radeon HD 4300/4500 Series
 ATI Technologies Inc. ATI Radeon HD 4300/4500 Series
 ATI Technologies Inc. ATI Radeon HD 4350
+ATI Technologies Inc. ATI Radeon HD 4350
 ATI Technologies Inc. ATI Radeon HD 4350 (Microsoft WDDM 1.1)
 ATI Technologies Inc. ATI Radeon HD 4450
+ATI Technologies Inc. ATI Radeon HD 4450
 ATI Technologies Inc. ATI Radeon HD 4500 Series
 ATI Technologies Inc. ATI Radeon HD 4550
+ATI Technologies Inc. ATI Radeon HD 4550
+ATI Technologies Inc. ATI Radeon HD 4600 Series
 ATI Technologies Inc. ATI Radeon HD 4600 Series
 ATI Technologies Inc. ATI Radeon HD 4650
+ATI Technologies Inc. ATI Radeon HD 4650
 ATI Technologies Inc. ATI Radeon HD 4670
+ATI Technologies Inc. ATI Radeon HD 4670
+ATI Technologies Inc. ATI Radeon HD 4670 OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 4670 OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 4700 Series
+ATI Technologies Inc. ATI Radeon HD 4700 Series
+ATI Technologies Inc. ATI Radeon HD 4720
 ATI Technologies Inc. ATI Radeon HD 4720
 ATI Technologies Inc. ATI Radeon HD 4730
+ATI Technologies Inc. ATI Radeon HD 4730
+ATI Technologies Inc. ATI Radeon HD 4730 Series
 ATI Technologies Inc. ATI Radeon HD 4730 Series
 ATI Technologies Inc. ATI Radeon HD 4750
 ATI Technologies Inc. ATI Radeon HD 4770
+ATI Technologies Inc. ATI Radeon HD 4770
 ATI Technologies Inc. ATI Radeon HD 4800 Series
+ATI Technologies Inc. ATI Radeon HD 4800 Series
+ATI Technologies Inc. ATI Radeon HD 4850
 ATI Technologies Inc. ATI Radeon HD 4850
 ATI Technologies Inc. ATI Radeon HD 4850 OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 4850 OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 4850 Series
 ATI Technologies Inc. ATI Radeon HD 4870
+ATI Technologies Inc. ATI Radeon HD 4870
 ATI Technologies Inc. ATI Radeon HD 4870 OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 4870 X2
+ATI Technologies Inc. ATI Radeon HD 4870 X2
+ATI Technologies Inc. ATI Radeon HD 5400 Series
 ATI Technologies Inc. ATI Radeon HD 5400 Series
 ATI Technologies Inc. ATI Radeon HD 5450
+ATI Technologies Inc. ATI Radeon HD 5450
+ATI Technologies Inc. ATI Radeon HD 5470
 ATI Technologies Inc. ATI Radeon HD 5500 Series
+ATI Technologies Inc. ATI Radeon HD 5500 Series
+ATI Technologies Inc. ATI Radeon HD 5570
 ATI Technologies Inc. ATI Radeon HD 5570
 ATI Technologies Inc. ATI Radeon HD 5600 Series
+ATI Technologies Inc. ATI Radeon HD 5600 Series
+ATI Technologies Inc. ATI Radeon HD 5600/5700
 ATI Technologies Inc. ATI Radeon HD 5630
 ATI Technologies Inc. ATI Radeon HD 5670
+ATI Technologies Inc. ATI Radeon HD 5670
 ATI Technologies Inc. ATI Radeon HD 5670 OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 5670 OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 5700 Series
 ATI Technologies Inc. ATI Radeon HD 5700 Series
 ATI Technologies Inc. ATI Radeon HD 5750
+ATI Technologies Inc. ATI Radeon HD 5750
 ATI Technologies Inc. ATI Radeon HD 5750 OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 5750 OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 5770
 ATI Technologies Inc. ATI Radeon HD 5770
 ATI Technologies Inc. ATI Radeon HD 5770 OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 5770 OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 5800 Series
 ATI Technologies Inc. ATI Radeon HD 5800 Series
 ATI Technologies Inc. ATI Radeon HD 5850
+ATI Technologies Inc. ATI Radeon HD 5850
 ATI Technologies Inc. ATI Radeon HD 5870
 ATI Technologies Inc. ATI Radeon HD 5870 OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 5870 OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 5900 Series
 ATI Technologies Inc. ATI Radeon HD 5900 Series
 ATI Technologies Inc. ATI Radeon HD 5970
 ATI Technologies Inc. ATI Radeon HD 6230
+ATI Technologies Inc. ATI Radeon HD 6230
+ATI Technologies Inc. ATI Radeon HD 6250
 ATI Technologies Inc. ATI Radeon HD 6250
 ATI Technologies Inc. ATI Radeon HD 6350
 ATI Technologies Inc. ATI Radeon HD 6390
 ATI Technologies Inc. ATI Radeon HD 6490M OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 6490M OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 6510
 ATI Technologies Inc. ATI Radeon HD 6510
 ATI Technologies Inc. ATI Radeon HD 6570M
+ATI Technologies Inc. ATI Radeon HD 6570M
+ATI Technologies Inc. ATI Radeon HD 6630M OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 6750
 ATI Technologies Inc. ATI Radeon HD 6750M OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 6750M OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 6770
 ATI Technologies Inc. ATI Radeon HD 6770
 ATI Technologies Inc. ATI Radeon HD 6770M OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 6770M OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD 6800 Series
 ATI Technologies Inc. ATI Radeon HD 6970M OpenGL Engine
+ATI Technologies Inc. ATI Radeon HD 6970M OpenGL Engine
 ATI Technologies Inc. ATI Radeon HD3750
 ATI Technologies Inc. ATI Radeon HD4300/HD4500 series
+ATI Technologies Inc. ATI Radeon HD4300/HD4500 series
+ATI Technologies Inc. ATI Radeon HD4670
 ATI Technologies Inc. ATI Radeon HD4670
 ATI Technologies Inc. ATI Radeon Juniper LE Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon RV710 Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon RV730 Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon RV770 Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon RV790 Prototype OpenGL Engine
+ATI Technologies Inc. ATI Radeon RV790 Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon Redwood PRO Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon Redwood XT Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon Whistler PRO/LP Prototype OpenGL Engine
 ATI Technologies Inc. ATI Radeon X1050
 ATI Technologies Inc. ATI Radeon X1050 Series
 ATI Technologies Inc. ATI Radeon X1200
+ATI Technologies Inc. ATI Radeon X1200
 ATI Technologies Inc. ATI Radeon X1200 Series
+ATI Technologies Inc. ATI Radeon X1200 Series
+ATI Technologies Inc. ATI Radeon X1200 Series x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Radeon X1200 Series x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Radeon X1250
+ATI Technologies Inc. ATI Radeon X1250
 ATI Technologies Inc. ATI Radeon X1250 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Radeon X1270
+ATI Technologies Inc. ATI Radeon X1270
+ATI Technologies Inc. ATI Radeon X1270 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Radeon X1270 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Radeon X1300/X1550 Series
 ATI Technologies Inc. ATI Radeon X1550 Series
+ATI Technologies Inc. ATI Radeon X1550 Series
+ATI Technologies Inc. ATI Radeon X1600 OpenGL Engine
 ATI Technologies Inc. ATI Radeon X1600 OpenGL Engine
 ATI Technologies Inc. ATI Radeon X1900 OpenGL Engine
+ATI Technologies Inc. ATI Radeon X1900 OpenGL Engine
 ATI Technologies Inc. ATI Radeon X1950 GT
 ATI Technologies Inc. ATI Radeon X300/X550/X1050 Series
+ATI Technologies Inc. ATI Radeon X300/X550/X1050 Series
 ATI Technologies Inc. ATI Radeon Xpress 1100
 ATI Technologies Inc. ATI Radeon Xpress 1150
+ATI Technologies Inc. ATI Radeon Xpress 1150
 ATI Technologies Inc. ATI Radeon Xpress 1150 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Radeon Xpress 1200
+ATI Technologies Inc. ATI Radeon Xpress 1200
 ATI Technologies Inc. ATI Radeon Xpress 1200 Series
+ATI Technologies Inc. ATI Radeon Xpress 1200 Series
+ATI Technologies Inc. ATI Radeon Xpress 1200 Series x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Radeon Xpress 1200 Series x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Radeon Xpress 1200 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Radeon Xpress 1250
+ATI Technologies Inc. ATI Radeon Xpress 1250
+ATI Technologies Inc. ATI Radeon Xpress 1250 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Radeon Xpress 1250 x86/SSE2
 ATI Technologies Inc. ATI Radeon Xpress Series
+ATI Technologies Inc. ATI Radeon Xpress Series
+ATI Technologies Inc. ATI Radeon Xpress Series x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. ATI Yamaha HD 9000
 ATI Technologies Inc. ATi RS880M
+ATI Technologies Inc. ATi RS880M
 ATI Technologies Inc. Carte graphique VGA standard
 ATI Technologies Inc. Diamond Radeon X1550 Series
 ATI Technologies Inc. EG JUNIPER
@@ -491,7 +765,9 @@ ATI Technologies Inc. EG PARK
 ATI Technologies Inc. FireGL V3100 Pentium 4 (SSE2)
 ATI Technologies Inc. FireMV 2400 PCI DDR x86
 ATI Technologies Inc. FireMV 2400 PCI DDR x86/SSE2
+ATI Technologies Inc. FireMV 2400 PCI DDR x86/SSE2
 ATI Technologies Inc. GeCube Radeon X1550
+ATI Technologies Inc. GeForce 9600 GT      x86/SSE2
 ATI Technologies Inc. Geforce 9500 GT
 ATI Technologies Inc. Geforce 9500GT
 ATI Technologies Inc. Geforce 9800 GT
@@ -501,98 +777,153 @@ ATI Technologies Inc. HIGHTECH EXCALIBUR X700 PRO
 ATI Technologies Inc. M21 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. M76M
 ATI Technologies Inc. MOBILITY RADEON 7500 DDR x86/SSE2
+ATI Technologies Inc. MOBILITY RADEON 7500 DDR x86/SSE2
+ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86/SSE2
 ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86/SSE2
 ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86/SSE2
+ATI Technologies Inc. MOBILITY RADEON 9100 IGP DDR x86/SSE2
+ATI Technologies Inc. MOBILITY RADEON 9600 x86/SSE2
 ATI Technologies Inc. MOBILITY RADEON 9600 x86/SSE2
 ATI Technologies Inc. MOBILITY RADEON 9700 x86/SSE2
 ATI Technologies Inc. MOBILITY RADEON X300 x86/SSE2
+ATI Technologies Inc. MOBILITY RADEON X300 x86/SSE2
+ATI Technologies Inc. MOBILITY RADEON X600 x86/SSE2
 ATI Technologies Inc. MOBILITY RADEON X600 x86/SSE2
 ATI Technologies Inc. MOBILITY RADEON X700 SE x86
 ATI Technologies Inc. MOBILITY RADEON X700 x86/SSE2
+ATI Technologies Inc. MOBILITY RADEON X700 x86/SSE2
+ATI Technologies Inc. MOBILITY RADEON Xpress 200 Series SW TCL x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. MSI RX9550SE
+ATI Technologies Inc. MSI Radeon X1550 Series
+ATI Technologies Inc. Mobility Radeon HD 6000 series
 ATI Technologies Inc. Mobility Radeon X2300 HD
+ATI Technologies Inc. Mobility Radeon X2300 HD
+ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2
 ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2
 ATI Technologies Inc. RADEON 7000 DDR x86/MMX/3DNow!/SSE
 ATI Technologies Inc. RADEON 7000 DDR x86/SSE2
 ATI Technologies Inc. RADEON 7500 DDR x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. RADEON 7500 DDR x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. RADEON 7500 DDR x86/SSE2
 ATI Technologies Inc. RADEON 9100 IGP DDR x86/SSE2
 ATI Technologies Inc. RADEON 9200 DDR x86/MMX/3DNow!/SSE
 ATI Technologies Inc. RADEON 9200 DDR x86/SSE2
 ATI Technologies Inc. RADEON 9200 PRO DDR x86/MMX/3DNow!/SSE
 ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE
+ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE
+ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE
+ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE
+ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE2
 ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE2
 ATI Technologies Inc. RADEON 9200SE DDR x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. RADEON 9200SE DDR x86/SSE2
 ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE
+ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE
 ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/SSE2
+ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/SSE2
 ATI Technologies Inc. RADEON 9500
 ATI Technologies Inc. RADEON 9550 x86/SSE2
 ATI Technologies Inc. RADEON 9600 SERIES
 ATI Technologies Inc. RADEON 9600 SERIES x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. RADEON 9600 SERIES x86/SSE2
+ATI Technologies Inc. RADEON 9600 TX x86/SSE2
 ATI Technologies Inc. RADEON 9600 TX x86/SSE2
 ATI Technologies Inc. RADEON 9600 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. RADEON 9600 x86/SSE2
+ATI Technologies Inc. RADEON 9600 x86/SSE2
 ATI Technologies Inc. RADEON 9700 PRO x86/MMX/3DNow!/SSE
 ATI Technologies Inc. RADEON 9800 PRO
 ATI Technologies Inc. RADEON 9800 x86/SSE2
 ATI Technologies Inc. RADEON IGP 340M DDR x86/SSE2
+ATI Technologies Inc. RADEON IGP 340M DDR x86/SSE2
 ATI Technologies Inc. RADEON X300 Series x86/SSE2
 ATI Technologies Inc. RADEON X300 x86/SSE2
+ATI Technologies Inc. RADEON X300 x86/SSE2
+ATI Technologies Inc. RADEON X300/X550 Series x86/SSE2
 ATI Technologies Inc. RADEON X300/X550 Series x86/SSE2
 ATI Technologies Inc. RADEON X550 x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. RADEON X550 x86/SSE2
 ATI Technologies Inc. RADEON X600 Series
 ATI Technologies Inc. RADEON X600 x86/SSE2
+ATI Technologies Inc. RADEON X600 x86/SSE2
+ATI Technologies Inc. RADEON X600/X550 Series
 ATI Technologies Inc. RADEON X700 PRO x86/SSE2
 ATI Technologies Inc. RADEON X800 SE x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. RADEON X800 XT
 ATI Technologies Inc. RADEON X800GT
 ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/SSE2
 ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/SSE2
 ATI Technologies Inc. RADEON XPRESS 200 Series x86/SSE2
 ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/SSE2
 ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/SSE2
 ATI Technologies Inc. RADEON XPRESS 200M Series x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. RADEON XPRESS 200M Series x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. RADEON XPRESS 200M Series x86/SSE2
 ATI Technologies Inc. RADEON XPRESS Series x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. RADEON XPRESS Series x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. RADEON XPRESS Series x86/SSE2
 ATI Technologies Inc. RADEON XPRESS Series x86/SSE2
 ATI Technologies Inc. RS740
 ATI Technologies Inc. RS780C
 ATI Technologies Inc. RS780M
+ATI Technologies Inc. RS780M
+ATI Technologies Inc. RS880
 ATI Technologies Inc. RS880
 ATI Technologies Inc. RV410 Pro x86/SSE2
 ATI Technologies Inc. RV790
+ATI Technologies Inc. RV790
+ATI Technologies Inc. Radeon (TM) HD 6470M
 ATI Technologies Inc. Radeon (TM) HD 6470M
 ATI Technologies Inc. Radeon (TM) HD 6490M
+ATI Technologies Inc. Radeon (TM) HD 6490M
+ATI Technologies Inc. Radeon (TM) HD 6750M
+ATI Technologies Inc. Radeon (TM) HD 6770M
 ATI Technologies Inc. Radeon (TM) HD 6770M
+ATI Technologies Inc. Radeon (TM) HD 6850M
+ATI Technologies Inc. Radeon 7000 DDR x86/SSE
 ATI Technologies Inc. Radeon 7000 DDR x86/SSE2
 ATI Technologies Inc. Radeon 7000 SDR x86/SSE2
 ATI Technologies Inc. Radeon 7500 DDR x86/SSE2
+ATI Technologies Inc. Radeon 7500 DDR x86/SSE2
 ATI Technologies Inc. Radeon 9000 DDR x86/SSE2
 ATI Technologies Inc. Radeon DDR x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. Radeon DDR x86/SSE
 ATI Technologies Inc. Radeon DDR x86/SSE2
 ATI Technologies Inc. Radeon HD 6310
+ATI Technologies Inc. Radeon HD 6310
+ATI Technologies Inc. Radeon HD 6470M
+ATI Technologies Inc. Radeon HD 6490M
 ATI Technologies Inc. Radeon HD 6800 Series
+ATI Technologies Inc. Radeon HD 6800 Series
+ATI Technologies Inc. Radeon SDR x86/SSE2
 ATI Technologies Inc. Radeon SDR x86/SSE2
 ATI Technologies Inc. Radeon X1300 Series
 ATI Technologies Inc. Radeon X1300 Series x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. Radeon X1300 Series x86/SSE2
 ATI Technologies Inc. Radeon X1300/X1550 Series
+ATI Technologies Inc. Radeon X1300/X1550 Series
 ATI Technologies Inc. Radeon X1300/X1550 Series x86/SSE2
 ATI Technologies Inc. Radeon X1550 64-bit (Microsoft - WDDM)
 ATI Technologies Inc. Radeon X1550 Series
 ATI Technologies Inc. Radeon X1550 Series x86/SSE2
 ATI Technologies Inc. Radeon X1600
 ATI Technologies Inc. Radeon X1600 Pro / X1300XT x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. Radeon X1600 Series
 ATI Technologies Inc. Radeon X1600 Series x86/SSE2
+ATI Technologies Inc. Radeon X1600/1650 Series
 ATI Technologies Inc. Radeon X1600/X1650 Series
 ATI Technologies Inc. Radeon X1650 Series
+ATI Technologies Inc. Radeon X1650 Series
 ATI Technologies Inc. Radeon X1650 Series x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. Radeon X1650 Series x86/SSE2
+ATI Technologies Inc. Radeon X1650 Series x86/SSE2
 ATI Technologies Inc. Radeon X1900 Series x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. Radeon X1950 Pro
 ATI Technologies Inc. Radeon X1950 Pro x86/MMX/3DNow!/SSE2
@@ -602,18 +933,24 @@ ATI Technologies Inc. Radeon X300/X550/X1050 Series
 ATI Technologies Inc. Radeon X550/X700 Series
 ATI Technologies Inc. Radeon X550XTX x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. SAPPHIRE RADEON X300SE
+ATI Technologies Inc. SAPPHIRE RADEON X300SE
 ATI Technologies Inc. SAPPHIRE RADEON X300SE x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. SAPPHIRE RADEON X300SE x86/SSE2
 ATI Technologies Inc. SAPPHIRE Radeon X1550 Series
 ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/MMX/3DNow!/SSE2
+ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/SSE2
+ATI Technologies Inc. SAPPHIRE Radeon X1550 x86/SSE2
+ATI Technologies Inc. Sapphire Radeon HD 3730
 ATI Technologies Inc. Sapphire Radeon HD 3730
 ATI Technologies Inc. Sapphire Radeon HD 3750
 ATI Technologies Inc. Standard VGA Graphics Adapter
+ATI Technologies Inc. Standard VGA Graphics Adapter
 ATI Technologies Inc. Tul, RADEON  X600 PRO
 ATI Technologies Inc. Tul, RADEON  X600 PRO x86/SSE2
 ATI Technologies Inc. Tul, RADEON  X700 PRO
 ATI Technologies Inc. Tul, RADEON  X700 PRO x86/MMX/3DNow!/SSE2
 ATI Technologies Inc. VisionTek Radeon 4350
+ATI Technologies Inc. VisionTek Radeon 4350
 ATI Technologies Inc. VisionTek Radeon X1550 Series
 ATI Technologies Inc. WRESTLER 9802
 ATI Technologies Inc. WRESTLER 9803
@@ -630,6 +967,7 @@ Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX+/3DNow!
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX/SSE2 TCL DRI2
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV635 9596) 20090101 x86/MMX+/3DNow!+/SSE TCL DRI2
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV670 9505) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2
+Advanced Micro Devices, Inc. Mesa DRI R600 (RV670 9505) 20090101 x86/MMX/SSE2 TCL DRI2
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV710 9552) 20090101 x86/MMX/SSE2 TCL DRI2
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2
 Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX/SSE2 TCL DRI2
@@ -648,6 +986,7 @@ DRI R300 Project Mesa DRI R300 (RV350 4153) 20090101 AGP 8x x86/MMX+/3DNow!+/SSE
 DRI R300 Project Mesa DRI R300 (RV380 3150) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2
 DRI R300 Project Mesa DRI R300 (RV380 3150) 20090101 x86/MMX/SSE2 TCL DRI2
 DRI R300 Project Mesa DRI R300 (RV380 5B60) 20090101 x86/MMX/SSE2 TCL DRI2
+DRI R300 Project Mesa DRI R300 (RV380 5B60) 20090101 x86/MMX/SSE2 TCL DRI2
 DRI R300 Project Mesa DRI R300 (RV380 5B62) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2
 DRI R300 Project Mesa DRI R300 (RV515 7145) 20090101 x86/MMX/SSE2 TCL DRI2
 DRI R300 Project Mesa DRI R300 (RV515 7146) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2
@@ -657,11 +996,17 @@ DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL
 DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL DRI2
 DRI R300 Project Mesa DRI R300 (RV530 71C4) 20090101 x86/MMX/SSE2 TCL DRI2
 GPU_CLASS_UNKNOWN
+Humper 3D-Analyze v2.3 - http://www.tommti-systems.com
 Humper Chromium
+Humper Chromium
+Imagination Technologies PowerVR SGX545
 Intel
 Intel  HD Graphics Family
+Intel  HD Graphics Family
 Intel 3D-Analyze v2.2 - http://www.tommti-systems.com
 Intel 3D-Analyze v2.3 - http://www.tommti-systems.com
+Intel 3D-Analyze v2.3 - http://www.tommti-systems.com
+Intel 4 Series Internal Chipset
 Intel 4 Series Internal Chipset
 Intel 830M
 Intel 845G
@@ -674,19 +1019,26 @@ Intel 945GM
 Intel 950
 Intel 965
 Intel B43 Express Chipset
+Intel B43 Express Chipset
 Intel Bear Lake
 Intel Broadwater
 Intel Brookdale
 Intel Cantiga
+Intel EMGD on PowerVR SGX535
 Intel Eaglelake
 Intel Familia Mobile 45 Express Chipset (Microsoft Corporation - WDDM 1.1)
+Intel Familia Mobile 45 Express Chipset (Microsoft Corporation - WDDM 1.1)
 Intel G33
 Intel G41
 Intel G41 Express Chipset
+Intel G41 Express Chipset
 Intel G45
 Intel G45/G43 Express Chipset
+Intel G45/G43 Express Chipset
+Intel Graphics Media Accelerator HD
 Intel Graphics Media Accelerator HD
 Intel HD Graphics
+Intel HD Graphics
 Intel HD Graphics 100
 Intel HD Graphics 200
 Intel HD Graphics 200 BR-1101-00SH
@@ -695,6 +1047,7 @@ Intel HD Graphics 200 BR-1101-00SK
 Intel HD Graphics 200 BR-1101-01M5
 Intel HD Graphics 200 BR-1101-01M6
 Intel HD Graphics BR-1004-01Y1
+Intel HD Graphics BR-1004-01Y1
 Intel HD Graphics BR-1006-0364
 Intel HD Graphics BR-1006-0365
 Intel HD Graphics BR-1006-0366
@@ -704,45 +1057,73 @@ Intel HD Graphics BR-1101-04SZ
 Intel HD Graphics BR-1101-04T0
 Intel HD Graphics BR-1101-04T9
 Intel HD Graphics Family
+Intel HD Graphics Family
 Intel HD Graphics Family BR-1012-00Y8
 Intel HD Graphics Family BR-1012-00YF
 Intel HD Graphics Family BR-1012-00ZD
 Intel HD Graphics Family BR-1102-00ML
 Intel Inc. Intel GMA 900 OpenGL Engine
+Intel Inc. Intel GMA 900 OpenGL Engine
+Intel Inc. Intel GMA 950 OpenGL Engine
 Intel Inc. Intel GMA 950 OpenGL Engine
 Intel Inc. Intel GMA X3100 OpenGL Engine
+Intel Inc. Intel GMA X3100 OpenGL Engine
+Intel Inc. Intel HD Graphics 3000 OpenGL Engine
 Intel Inc. Intel HD Graphics 3000 OpenGL Engine
 Intel Inc. Intel HD Graphics OpenGL Engine
+Intel Inc. Intel HD Graphics OpenGL Engine
 Intel Inc. Intel HD xxxx OpenGL Engine
 Intel Intel 845G
+Intel Intel 845G
 Intel Intel 855GM
+Intel Intel 855GM
+Intel Intel 865G
 Intel Intel 865G
 Intel Intel 915G
+Intel Intel 915G
 Intel Intel 915GM
+Intel Intel 915GM
+Intel Intel 945G
 Intel Intel 945G
 Intel Intel 945GM
+Intel Intel 945GM
+Intel Intel 965/963 Graphics Media Accelerator
 Intel Intel 965/963 Graphics Media Accelerator
 Intel Intel Bear Lake B
+Intel Intel Bear Lake B
 Intel Intel Broadwater G
 Intel Intel Brookdale-G
+Intel Intel Brookdale-G
 Intel Intel Calistoga
 Intel Intel Cantiga
+Intel Intel Cantiga
 Intel Intel Eaglelake
+Intel Intel Eaglelake
+Intel Intel Generic Renderer
+Intel Intel Grantsdale-G
 Intel Intel Grantsdale-G
 Intel Intel HD Graphics 3000
 Intel Intel Lakeport
 Intel Intel Montara-GM
 Intel Intel Pineview Platform
+Intel Intel Pineview Platform
 Intel Intel Springdale-G
 Intel Mobile - famiglia Express Chipset 45 (Microsoft Corporation - WDDM 1.1)
 Intel Mobile 4 Series
 Intel Mobile 4 Series Express Chipset Family
+Intel Mobile 4 Series Express Chipset Family
+Intel Mobile 45 Express Chipset Family
 Intel Mobile 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1)
+Intel Mobile 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1)
+Intel Mobile HD Graphics
 Intel Mobile HD Graphics
+Intel Mobile Intel(R) 4 Series Express Chipset Family
 Intel Mobile SandyBridge HD Graphics
 Intel Montara
 Intel Pineview
 Intel Q45/Q43 Express Chipset
+Intel Q45/Q43 Express Chipset
+Intel Royal BNA Driver
 Intel Royal BNA Driver
 Intel SandyBridge HD Graphics
 Intel SandyBridge HD Graphics BR-1006-00V8
@@ -750,14 +1131,18 @@ Intel Springdale
 Intel X3100
 Intergraph wcgdrv 06.05.06.18
 Intergraph wcgdrv 06.06.00.35
+Intergraph wcgdrv 06.06.00.35
 LegendgrafiX Mobile 945 Express C/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://LegendgrafiX.tk
 LegendgrafiX NVIDIA GeForce GT 430/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://LegendgrafiX.tk
 Linden Lab Headless
 Matrox
 Mesa
 Mesa Project Software Rasterizer
+Mesa Project Software Rasterizer
+NVIDIA /PCI/SSE2
 NVIDIA /PCI/SSE2
 NVIDIA /PCI/SSE2/3DNOW!
+NVIDIA /PCI/SSE2/3DNOW!
 NVIDIA 205
 NVIDIA 210
 NVIDIA 310
@@ -766,8 +1151,13 @@ NVIDIA 315
 NVIDIA 315M
 NVIDIA 320M
 NVIDIA C51
+NVIDIA Corporation GeForce GT 230/PCI/SSE2
+NVIDIA Corporation GeForce GTX 285/PCI/SSE2
+NVIDIA D10M2-20/PCI/SSE2
 NVIDIA D10M2-20/PCI/SSE2
 NVIDIA D10P1-25/PCI/SSE2
+NVIDIA D10P1-25/PCI/SSE2
+NVIDIA D10P1-25/PCI/SSE2/3DNOW!
 NVIDIA D10P1-30/PCI/SSE2
 NVIDIA D10P2-50/PCI/SSE2
 NVIDIA D11M2-30/PCI/SSE2
@@ -775,11 +1165,16 @@ NVIDIA D12-P1-35/PCI/SSE2
 NVIDIA D12U-15/PCI/SSE2
 NVIDIA D13M1-40/PCI/SSE2
 NVIDIA D13P1-40/PCI/SSE2
+NVIDIA D13P1-40/PCI/SSE2
+NVIDIA D13P1-40/PCI/SSE2/3DNOW!
 NVIDIA D13U-10/PCI/SSE2
 NVIDIA D13U/PCI/SSE2
+NVIDIA D13U/PCI/SSE2
 NVIDIA D9M
 NVIDIA D9M-20/PCI/SSE2
 NVIDIA Entry Graphics/PCI/SSE2
+NVIDIA Entry Graphics/PCI/SSE2
+NVIDIA Entry Graphics/PCI/SSE2/3DNOW!
 NVIDIA Entry Graphics/PCI/SSE2/3DNOW!
 NVIDIA G 102M
 NVIDIA G 103M
@@ -800,7 +1195,10 @@ NVIDIA G92
 NVIDIA G92-200/PCI/SSE2
 NVIDIA G94
 NVIDIA G96/PCI/SSE2
+NVIDIA G96/PCI/SSE2
+NVIDIA G98/PCI/SSE2
 NVIDIA G98/PCI/SSE2
+NVIDIA G98/PCI/SSE2/3DNOW!
 NVIDIA GT 120
 NVIDIA GT 130
 NVIDIA GT 130M
@@ -809,6 +1207,8 @@ NVIDIA GT 150
 NVIDIA GT 160M
 NVIDIA GT 220
 NVIDIA GT 220/PCI/SSE2
+NVIDIA GT 220/PCI/SSE2
+NVIDIA GT 220/PCI/SSE2/3DNOW!
 NVIDIA GT 220/PCI/SSE2/3DNOW!
 NVIDIA GT 230
 NVIDIA GT 230M
@@ -859,58 +1259,89 @@ NVIDIA GTX 590
 NVIDIA GeForce
 NVIDIA GeForce 2
 NVIDIA GeForce 205/PCI/SSE2
+NVIDIA GeForce 205/PCI/SSE2
 NVIDIA GeForce 210
 NVIDIA GeForce 210/PCI/SSE2
+NVIDIA GeForce 210/PCI/SSE2
+NVIDIA GeForce 210/PCI/SSE2/3DNOW!
 NVIDIA GeForce 210/PCI/SSE2/3DNOW!
 NVIDIA GeForce 3
 NVIDIA GeForce 305M/PCI/SSE2
+NVIDIA GeForce 305M/PCI/SSE2
+NVIDIA GeForce 310/PCI/SSE2
 NVIDIA GeForce 310/PCI/SSE2
 NVIDIA GeForce 310/PCI/SSE2/3DNOW!
+NVIDIA GeForce 310/PCI/SSE2/3DNOW!
+NVIDIA GeForce 310M/PCI/SSE2
 NVIDIA GeForce 310M/PCI/SSE2
 NVIDIA GeForce 315/PCI/SSE2
+NVIDIA GeForce 315/PCI/SSE2
+NVIDIA GeForce 315/PCI/SSE2/3DNOW!
 NVIDIA GeForce 315/PCI/SSE2/3DNOW!
 NVIDIA GeForce 315M/PCI/SSE2
+NVIDIA GeForce 315M/PCI/SSE2
 NVIDIA GeForce 320M/PCI/SSE2
 NVIDIA GeForce 4 Go
 NVIDIA GeForce 4 MX
 NVIDIA GeForce 4 Ti
 NVIDIA GeForce 405/PCI/SSE2
+NVIDIA GeForce 405/PCI/SSE2
+NVIDIA GeForce 410M/PCI/SSE2
 NVIDIA GeForce 6100
 NVIDIA GeForce 6100 nForce 400/PCI/SSE2/3DNOW!
+NVIDIA GeForce 6100 nForce 400/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6100 nForce 405/PCI/SSE2
 NVIDIA GeForce 6100 nForce 405/PCI/SSE2/3DNOW!
+NVIDIA GeForce 6100 nForce 405/PCI/SSE2/3DNOW!
+NVIDIA GeForce 6100 nForce 420/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6100 nForce 420/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6100 nForce 430/PCI/SSE2/3DNOW!
+NVIDIA GeForce 6100 nForce 430/PCI/SSE2/3DNOW!
+NVIDIA GeForce 6100/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6100/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6150 LE/PCI/SSE2/3DNOW!
+NVIDIA GeForce 6150 LE/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6150/PCI/SSE2
 NVIDIA GeForce 6150/PCI/SSE2/3DNOW!
+NVIDIA GeForce 6150/PCI/SSE2/3DNOW!
+NVIDIA GeForce 6150SE nForce 430/PCI/SSE2
 NVIDIA GeForce 6150SE nForce 430/PCI/SSE2
 NVIDIA GeForce 6150SE nForce 430/PCI/SSE2/3DNOW!
+NVIDIA GeForce 6150SE nForce 430/PCI/SSE2/3DNOW!
+NVIDIA GeForce 6150SE/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6150SE/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6200
 NVIDIA GeForce 6200 A-LE/AGP/SSE/3DNOW!
 NVIDIA GeForce 6200 A-LE/AGP/SSE2
 NVIDIA GeForce 6200 A-LE/AGP/SSE2/3DNOW!
 NVIDIA GeForce 6200 LE/PCI/SSE2
+NVIDIA GeForce 6200 LE/PCI/SSE2
 NVIDIA GeForce 6200 LE/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2
+NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2
 NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6200/AGP/SSE/3DNOW!
+NVIDIA GeForce 6200/AGP/SSE/3DNOW!
+NVIDIA GeForce 6200/AGP/SSE2
 NVIDIA GeForce 6200/AGP/SSE2
 NVIDIA GeForce 6200/AGP/SSE2/3DNOW!
 NVIDIA GeForce 6200/PCI/SSE/3DNOW!
 NVIDIA GeForce 6200/PCI/SSE2
+NVIDIA GeForce 6200/PCI/SSE2
+NVIDIA GeForce 6200/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6200/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6200SE TurboCache(TM)/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6500
 NVIDIA GeForce 6500/PCI/SSE2
+NVIDIA GeForce 6500/PCI/SSE2
 NVIDIA GeForce 6600
 NVIDIA GeForce 6600 GT/AGP/SSE/3DNOW!
 NVIDIA GeForce 6600 GT/AGP/SSE2
+NVIDIA GeForce 6600 GT/AGP/SSE2
 NVIDIA GeForce 6600 GT/PCI/SSE/3DNOW!
 NVIDIA GeForce 6600 GT/PCI/SSE2
 NVIDIA GeForce 6600 GT/PCI/SSE2/3DNOW!
+NVIDIA GeForce 6600 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6600 LE/PCI/SSE2
 NVIDIA GeForce 6600/AGP/SSE/3DNOW!
 NVIDIA GeForce 6600/AGP/SSE2
@@ -919,50 +1350,78 @@ NVIDIA GeForce 6600/PCI/SSE2
 NVIDIA GeForce 6600/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6700
 NVIDIA GeForce 6800
+NVIDIA GeForce 6800 GS/PCI/SSE2
 NVIDIA GeForce 6800 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6800 GT/AGP/SSE2
 NVIDIA GeForce 6800 GT/PCI/SSE2
 NVIDIA GeForce 6800 XT/AGP/SSE2
 NVIDIA GeForce 6800 XT/PCI/SSE2
+NVIDIA GeForce 6800 XT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 6800/PCI/SSE2
 NVIDIA GeForce 6800/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7000
 NVIDIA GeForce 7000M
 NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2
 NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2
+NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2
 NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7050 / NVIDIA nForce 610i/PCI/SSE2
 NVIDIA GeForce 7050 / NVIDIA nForce 610i/PCI/SSE2
 NVIDIA GeForce 7050 / NVIDIA nForce 620i/PCI/SSE2
 NVIDIA GeForce 7050 / nForce 610i/PCI/SSE2
+NVIDIA GeForce 7050 / nForce 610i/PCI/SSE2
+NVIDIA GeForce 7050 / nForce 620i/PCI/SSE2
 NVIDIA GeForce 7050 / nForce 620i/PCI/SSE2
 NVIDIA GeForce 7050 PV / NVIDIA nForce 630a/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7050 PV / NVIDIA nForce 630a/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2
 NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7050 SE / NVIDIA nForce 630a/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7100
 NVIDIA GeForce 7100 / NVIDIA nForce 620i/PCI/SSE2
+NVIDIA GeForce 7100 / NVIDIA nForce 620i/PCI/SSE2
+NVIDIA GeForce 7100 / NVIDIA nForce 630i/PCI/SSE2
 NVIDIA GeForce 7100 / NVIDIA nForce 630i/PCI/SSE2
 NVIDIA GeForce 7100 / nForce 630i/PCI/SSE2
+NVIDIA GeForce 7100 / nForce 630i/PCI/SSE2
+NVIDIA GeForce 7100 GS/PCI/SSE2
 NVIDIA GeForce 7100 GS/PCI/SSE2
 NVIDIA GeForce 7100 GS/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7100 GS/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2
 NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2
 NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7300
 NVIDIA GeForce 7300 GS/PCI/SSE2
+NVIDIA GeForce 7300 GS/PCI/SSE2
+NVIDIA GeForce 7300 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7300 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7300 GT/AGP/SSE2
 NVIDIA GeForce 7300 GT/AGP/SSE2/3DNOW!
 NVIDIA GeForce 7300 GT/PCI/SSE2
+NVIDIA GeForce 7300 GT/PCI/SSE2
+NVIDIA GeForce 7300 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7300 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7300 LE/PCI/SSE2
+NVIDIA GeForce 7300 LE/PCI/SSE2
 NVIDIA GeForce 7300 LE/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7300 LE/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2
 NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2
 NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7300 SE/PCI/SSE2
+NVIDIA GeForce 7300 SE/PCI/SSE2
+NVIDIA GeForce 7300 SE/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7300 SE/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7350 LE/PCI/SSE2
+NVIDIA GeForce 7350 LE/PCI/SSE2
 NVIDIA GeForce 7500
 NVIDIA GeForce 7500 LE/PCI/SSE2
 NVIDIA GeForce 7500 LE/PCI/SSE2/3DNOW!
@@ -970,22 +1429,30 @@ NVIDIA GeForce 7600
 NVIDIA GeForce 7600 GS/AGP/SSE2
 NVIDIA GeForce 7600 GS/AGP/SSE2/3DNOW!
 NVIDIA GeForce 7600 GS/PCI/SSE2
+NVIDIA GeForce 7600 GS/PCI/SSE2
+NVIDIA GeForce 7600 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7600 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7600 GT/AGP/SSE/3DNOW!
 NVIDIA GeForce 7600 GT/AGP/SSE2
 NVIDIA GeForce 7600 GT/PCI/SSE2
+NVIDIA GeForce 7600 GT/PCI/SSE2
 NVIDIA GeForce 7600 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7650 GS/PCI/SSE2
 NVIDIA GeForce 7800
 NVIDIA GeForce 7800 GS/AGP/SSE2
 NVIDIA GeForce 7800 GS/AGP/SSE2/3DNOW!
 NVIDIA GeForce 7800 GT/PCI/SSE2
+NVIDIA GeForce 7800 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7800 GTX/PCI/SSE2
 NVIDIA GeForce 7800 GTX/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7800 GTX/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7900
 NVIDIA GeForce 7900 GS/PCI/SSE2
+NVIDIA GeForce 7900 GS/PCI/SSE2
 NVIDIA GeForce 7900 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7900 GT/GTO/PCI/SSE2
+NVIDIA GeForce 7900 GT/GTO/PCI/SSE2/3DNOW!
+NVIDIA GeForce 7900 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7900 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 7900 GTX/PCI/SSE2
 NVIDIA GeForce 7950 GT/PCI/SSE2
@@ -994,123 +1461,186 @@ NVIDIA GeForce 8100
 NVIDIA GeForce 8100 / nForce 720a/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8200
 NVIDIA GeForce 8200/PCI/SSE2
+NVIDIA GeForce 8200/PCI/SSE2
+NVIDIA GeForce 8200/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8200/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8200M
 NVIDIA GeForce 8200M G/PCI/SSE2
+NVIDIA GeForce 8200M G/PCI/SSE2
+NVIDIA GeForce 8200M G/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8200M G/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8300
 NVIDIA GeForce 8300 GS/PCI/SSE2
+NVIDIA GeForce 8300 GS/PCI/SSE2
 NVIDIA GeForce 8400
 NVIDIA GeForce 8400 GS/PCI/SSE/3DNOW!
 NVIDIA GeForce 8400 GS/PCI/SSE2
+NVIDIA GeForce 8400 GS/PCI/SSE2
+NVIDIA GeForce 8400 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8400 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8400/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8400GS/PCI/SSE2
+NVIDIA GeForce 8400GS/PCI/SSE2
+NVIDIA GeForce 8400GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8400GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8400M
 NVIDIA GeForce 8400M G/PCI/SSE2
+NVIDIA GeForce 8400M G/PCI/SSE2
+NVIDIA GeForce 8400M G/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8400M G/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8400M GS/PCI/SSE2
+NVIDIA GeForce 8400M GS/PCI/SSE2
 NVIDIA GeForce 8400M GS/PCI/SSE2/3DNOW!
+NVIDIA GeForce 8400M GS/PCI/SSE2/3DNOW!
+NVIDIA GeForce 8400M GT/PCI/SSE2
 NVIDIA GeForce 8400M GT/PCI/SSE2
 NVIDIA GeForce 8500
 NVIDIA GeForce 8500 GT/PCI/SSE2
+NVIDIA GeForce 8500 GT/PCI/SSE2
+NVIDIA GeForce 8500 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8500 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8600
 NVIDIA GeForce 8600 GS/PCI/SSE2
+NVIDIA GeForce 8600 GS/PCI/SSE2
 NVIDIA GeForce 8600 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8600 GT/PCI/SSE2
+NVIDIA GeForce 8600 GT/PCI/SSE2
+NVIDIA GeForce 8600 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8600 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8600 GTS/PCI/SSE2
 NVIDIA GeForce 8600 GTS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8600GS/PCI/SSE2
+NVIDIA GeForce 8600GS/PCI/SSE2
 NVIDIA GeForce 8600M
 NVIDIA GeForce 8600M GS/PCI/SSE2
 NVIDIA GeForce 8600M GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8600M GT/PCI/SSE2
+NVIDIA GeForce 8600M GT/PCI/SSE2
 NVIDIA GeForce 8700
 NVIDIA GeForce 8700M
 NVIDIA GeForce 8700M GT/PCI/SSE2
+NVIDIA GeForce 8700M GT/PCI/SSE2
 NVIDIA GeForce 8800
 NVIDIA GeForce 8800 GS/PCI/SSE2
 NVIDIA GeForce 8800 GT/PCI/SSE2
+NVIDIA GeForce 8800 GT/PCI/SSE2
+NVIDIA GeForce 8800 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8800 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8800 GTS 512/PCI/SSE2
 NVIDIA GeForce 8800 GTS 512/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8800 GTS/PCI/SSE2
+NVIDIA GeForce 8800 GTS/PCI/SSE2
 NVIDIA GeForce 8800 GTS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 8800 GTX/PCI/SSE2
 NVIDIA GeForce 8800 Ultra/PCI/SSE2
 NVIDIA GeForce 8800M GTS/PCI/SSE2
+NVIDIA GeForce 8800M GTS/PCI/SSE2
+NVIDIA GeForce 8800M GTX/PCI/SSE2
 NVIDIA GeForce 8800M GTX/PCI/SSE2
 NVIDIA GeForce 9100
 NVIDIA GeForce 9100/PCI/SSE2
+NVIDIA GeForce 9100/PCI/SSE2
 NVIDIA GeForce 9100/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9100M
 NVIDIA GeForce 9100M G/PCI/SSE2
+NVIDIA GeForce 9100M G/PCI/SSE2
 NVIDIA GeForce 9100M G/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9200
 NVIDIA GeForce 9200/PCI/SSE2
+NVIDIA GeForce 9200/PCI/SSE2
 NVIDIA GeForce 9200/PCI/SSE2/3DNOW!
+NVIDIA GeForce 9200/PCI/SSE2/3DNOW!
+NVIDIA GeForce 9200M GE/PCI/SSE2
 NVIDIA GeForce 9200M GE/PCI/SSE2
 NVIDIA GeForce 9200M GS/PCI/SSE2
+NVIDIA GeForce 9200M GS/PCI/SSE2
 NVIDIA GeForce 9300
 NVIDIA GeForce 9300 / nForce 730i/PCI/SSE2
 NVIDIA GeForce 9300 GE/PCI/SSE2
+NVIDIA GeForce 9300 GE/PCI/SSE2
+NVIDIA GeForce 9300 GE/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9300 GE/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9300 GS/PCI/SSE2
+NVIDIA GeForce 9300 GS/PCI/SSE2
+NVIDIA GeForce 9300 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9300 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9300 SE/PCI/SSE2
 NVIDIA GeForce 9300M
 NVIDIA GeForce 9300M G/PCI/SSE2
+NVIDIA GeForce 9300M G/PCI/SSE2
 NVIDIA GeForce 9300M G/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9300M GS/PCI/SSE2
+NVIDIA GeForce 9300M GS/PCI/SSE2
 NVIDIA GeForce 9300M GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9400
 NVIDIA GeForce 9400 GT/PCI/SSE2
+NVIDIA GeForce 9400 GT/PCI/SSE2
+NVIDIA GeForce 9400 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9400 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9400/PCI/SSE2
 NVIDIA GeForce 9400M
 NVIDIA GeForce 9400M G/PCI/SSE2
+NVIDIA GeForce 9400M G/PCI/SSE2
+NVIDIA GeForce 9400M/PCI/SSE2
 NVIDIA GeForce 9400M/PCI/SSE2
 NVIDIA GeForce 9500
 NVIDIA GeForce 9500 GS/PCI/SSE2
+NVIDIA GeForce 9500 GS/PCI/SSE2
 NVIDIA GeForce 9500 GS/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9500 GT/PCI/SSE2
+NVIDIA GeForce 9500 GT/PCI/SSE2
+NVIDIA GeForce 9500 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9500 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9500M
 NVIDIA GeForce 9500M GS/PCI/SSE2
+NVIDIA GeForce 9500M GS/PCI/SSE2
 NVIDIA GeForce 9600
 NVIDIA GeForce 9600 GS/PCI/SSE2
 NVIDIA GeForce 9600 GSO 512/PCI/SSE2
 NVIDIA GeForce 9600 GSO/PCI/SSE2
 NVIDIA GeForce 9600 GSO/PCI/SSE2/3DNOW!
+NVIDIA GeForce 9600 GSO/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9600 GT/PCI/SSE2
+NVIDIA GeForce 9600 GT/PCI/SSE2
+NVIDIA GeForce 9600 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9600 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9600M
 NVIDIA GeForce 9600M GS/PCI/SSE2
+NVIDIA GeForce 9600M GS/PCI/SSE2
+NVIDIA GeForce 9600M GT/PCI/SSE2
 NVIDIA GeForce 9600M GT/PCI/SSE2
 NVIDIA GeForce 9650M GT/PCI/SSE2
+NVIDIA GeForce 9650M GT/PCI/SSE2
 NVIDIA GeForce 9700M
 NVIDIA GeForce 9700M GT/PCI/SSE2
 NVIDIA GeForce 9700M GTS/PCI/SSE2
+NVIDIA GeForce 9700M GTS/PCI/SSE2
 NVIDIA GeForce 9800
 NVIDIA GeForce 9800 GT/PCI/SSE2
+NVIDIA GeForce 9800 GT/PCI/SSE2
+NVIDIA GeForce 9800 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9800 GT/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9800 GTX+/PCI/SSE2
+NVIDIA GeForce 9800 GTX+/PCI/SSE2
 NVIDIA GeForce 9800 GTX+/PCI/SSE2/3DNOW!
 NVIDIA GeForce 9800 GTX/9800 GTX+/PCI/SSE2
+NVIDIA GeForce 9800 GTX/9800 GTX+/PCI/SSE2
 NVIDIA GeForce 9800 GTX/PCI/SSE2
 NVIDIA GeForce 9800 GX2/PCI/SSE2
 NVIDIA GeForce 9800M
 NVIDIA GeForce 9800M GS/PCI/SSE2
+NVIDIA GeForce 9800M GS/PCI/SSE2
+NVIDIA GeForce 9800M GT/PCI/SSE2
 NVIDIA GeForce 9800M GT/PCI/SSE2
 NVIDIA GeForce 9800M GTS/PCI/SSE2
+NVIDIA GeForce 9800M GTS/PCI/SSE2
 NVIDIA GeForce FX 5100
 NVIDIA GeForce FX 5100/AGP/SSE/3DNOW!
 NVIDIA GeForce FX 5200
 NVIDIA GeForce FX 5200/AGP/SSE
 NVIDIA GeForce FX 5200/AGP/SSE/3DNOW!
+NVIDIA GeForce FX 5200/AGP/SSE/3DNOW!
+NVIDIA GeForce FX 5200/AGP/SSE2
 NVIDIA GeForce FX 5200/AGP/SSE2
 NVIDIA GeForce FX 5200/AGP/SSE2/3DNOW!
 NVIDIA GeForce FX 5200/PCI/SSE2
@@ -1119,11 +1649,16 @@ NVIDIA GeForce FX 5200LE/AGP/SSE2
 NVIDIA GeForce FX 5500
 NVIDIA GeForce FX 5500/AGP/SSE/3DNOW!
 NVIDIA GeForce FX 5500/AGP/SSE2
+NVIDIA GeForce FX 5500/AGP/SSE2
 NVIDIA GeForce FX 5500/AGP/SSE2/3DNOW!
+NVIDIA GeForce FX 5500/AGP/SSE2/3DNOW!
+NVIDIA GeForce FX 5500/PCI/SSE2
 NVIDIA GeForce FX 5500/PCI/SSE2
 NVIDIA GeForce FX 5500/PCI/SSE2/3DNOW!
+NVIDIA GeForce FX 5500/PCI/SSE2/3DNOW!
 NVIDIA GeForce FX 5600
 NVIDIA GeForce FX 5600/AGP/SSE2
+NVIDIA GeForce FX 5600/AGP/SSE2
 NVIDIA GeForce FX 5600/AGP/SSE2/3DNOW!
 NVIDIA GeForce FX 5600XT/AGP/SSE2/3DNOW!
 NVIDIA GeForce FX 5700
@@ -1138,136 +1673,239 @@ NVIDIA GeForce FX Go5100
 NVIDIA GeForce FX Go5100/AGP/SSE2
 NVIDIA GeForce FX Go5200
 NVIDIA GeForce FX Go5200/AGP/SSE2
+NVIDIA GeForce FX Go5200/AGP/SSE2
 NVIDIA GeForce FX Go5300
 NVIDIA GeForce FX Go5600
 NVIDIA GeForce FX Go5600/AGP/SSE2
+NVIDIA GeForce FX Go5600/AGP/SSE2
 NVIDIA GeForce FX Go5650/AGP/SSE2
 NVIDIA GeForce FX Go5700
+NVIDIA GeForce FX Go5700/AGP/SSE2
 NVIDIA GeForce FX Go5xxx/AGP/SSE2
+NVIDIA GeForce FX Go5xxx/AGP/SSE2
+NVIDIA GeForce G 103M/PCI/SSE2
 NVIDIA GeForce G 103M/PCI/SSE2
+NVIDIA GeForce G 103M/PCI/SSE2/3DNOW!
 NVIDIA GeForce G 105M/PCI/SSE2
+NVIDIA GeForce G 105M/PCI/SSE2
+NVIDIA GeForce G 110M/PCI/SSE2
 NVIDIA GeForce G 110M/PCI/SSE2
 NVIDIA GeForce G100/PCI/SSE2
+NVIDIA GeForce G100/PCI/SSE2
+NVIDIA GeForce G100/PCI/SSE2/3DNOW!
 NVIDIA GeForce G100/PCI/SSE2/3DNOW!
 NVIDIA GeForce G102M/PCI/SSE2
+NVIDIA GeForce G102M/PCI/SSE2
+NVIDIA GeForce G105M/PCI/SSE2
 NVIDIA GeForce G105M/PCI/SSE2
 NVIDIA GeForce G200/PCI/SSE2
+NVIDIA GeForce G200/PCI/SSE2
+NVIDIA GeForce G205M/PCI/SSE2
 NVIDIA GeForce G205M/PCI/SSE2
 NVIDIA GeForce G210/PCI/SSE2
+NVIDIA GeForce G210/PCI/SSE2
+NVIDIA GeForce G210/PCI/SSE2/3DNOW!
 NVIDIA GeForce G210/PCI/SSE2/3DNOW!
 NVIDIA GeForce G210M/PCI/SSE2
+NVIDIA GeForce G210M/PCI/SSE2
 NVIDIA GeForce G310M/PCI/SSE2
 NVIDIA GeForce GT 120/PCI/SSE2
+NVIDIA GeForce GT 120/PCI/SSE2
 NVIDIA GeForce GT 120/PCI/SSE2/3DNOW!
 NVIDIA GeForce GT 120M/PCI/SSE2
 NVIDIA GeForce GT 130M/PCI/SSE2
+NVIDIA GeForce GT 130M/PCI/SSE2
+NVIDIA GeForce GT 140/PCI/SSE2
 NVIDIA GeForce GT 140/PCI/SSE2
 NVIDIA GeForce GT 220/PCI/SSE2
+NVIDIA GeForce GT 220/PCI/SSE2
+NVIDIA GeForce GT 220/PCI/SSE2/3DNOW!
 NVIDIA GeForce GT 220/PCI/SSE2/3DNOW!
 NVIDIA GeForce GT 220M/PCI/SSE2
+NVIDIA GeForce GT 220M/PCI/SSE2
+NVIDIA GeForce GT 230/PCI/SSE2
 NVIDIA GeForce GT 230/PCI/SSE2
 NVIDIA GeForce GT 230M/PCI/SSE2
+NVIDIA GeForce GT 230M/PCI/SSE2
 NVIDIA GeForce GT 240
 NVIDIA GeForce GT 240/PCI/SSE2
+NVIDIA GeForce GT 240/PCI/SSE2
 NVIDIA GeForce GT 240/PCI/SSE2/3DNOW!
+NVIDIA GeForce GT 240/PCI/SSE2/3DNOW!
+NVIDIA GeForce GT 240M/PCI/SSE2
 NVIDIA GeForce GT 240M/PCI/SSE2
 NVIDIA GeForce GT 320/PCI/SSE2
 NVIDIA GeForce GT 320M/PCI/SSE2
+NVIDIA GeForce GT 320M/PCI/SSE2
 NVIDIA GeForce GT 325M/PCI/SSE2
 NVIDIA GeForce GT 330/PCI/SSE2
+NVIDIA GeForce GT 330/PCI/SSE2
 NVIDIA GeForce GT 330/PCI/SSE2/3DNOW!
 NVIDIA GeForce GT 330M/PCI/SSE2
+NVIDIA GeForce GT 330M/PCI/SSE2
+NVIDIA GeForce GT 335M/PCI/SSE2
 NVIDIA GeForce GT 335M/PCI/SSE2
 NVIDIA GeForce GT 340/PCI/SSE2
+NVIDIA GeForce GT 340/PCI/SSE2
+NVIDIA GeForce GT 340/PCI/SSE2/3DNOW!
 NVIDIA GeForce GT 340/PCI/SSE2/3DNOW!
 NVIDIA GeForce GT 415M/PCI/SSE2
+NVIDIA GeForce GT 415M/PCI/SSE2
+NVIDIA GeForce GT 420/PCI/SSE2
 NVIDIA GeForce GT 420/PCI/SSE2
 NVIDIA GeForce GT 420M/PCI/SSE2
+NVIDIA GeForce GT 420M/PCI/SSE2
+NVIDIA GeForce GT 425M/PCI/SSE2
 NVIDIA GeForce GT 425M/PCI/SSE2
 NVIDIA GeForce GT 430/PCI/SSE2
+NVIDIA GeForce GT 430/PCI/SSE2
+NVIDIA GeForce GT 430/PCI/SSE2/3DNOW!
 NVIDIA GeForce GT 430/PCI/SSE2/3DNOW!
 NVIDIA GeForce GT 435M/PCI/SSE2
+NVIDIA GeForce GT 435M/PCI/SSE2
+NVIDIA GeForce GT 440/PCI/SSE2
 NVIDIA GeForce GT 440/PCI/SSE2
 NVIDIA GeForce GT 440/PCI/SSE2/3DNOW!
+NVIDIA GeForce GT 440/PCI/SSE2/3DNOW!
+NVIDIA GeForce GT 445M/PCI/SSE2
 NVIDIA GeForce GT 445M/PCI/SSE2
+NVIDIA GeForce GT 520/PCI/SSE2
+NVIDIA GeForce GT 520/PCI/SSE2/3DNOW!
 NVIDIA GeForce GT 520M/PCI/SSE2
+NVIDIA GeForce GT 520M/PCI/SSE2
+NVIDIA GeForce GT 525M/PCI/SSE2
 NVIDIA GeForce GT 525M/PCI/SSE2
+NVIDIA GeForce GT 530/PCI/SSE2
+NVIDIA GeForce GT 530/PCI/SSE2/3DNOW!
 NVIDIA GeForce GT 540M/PCI/SSE2
+NVIDIA GeForce GT 540M/PCI/SSE2
+NVIDIA GeForce GT 545/PCI/SSE2
+NVIDIA GeForce GT 550M/PCI/SSE2
 NVIDIA GeForce GT 550M/PCI/SSE2
 NVIDIA GeForce GT 555M/PCI/SSE2
+NVIDIA GeForce GT 555M/PCI/SSE2
+NVIDIA GeForce GTS 150/PCI/SSE2
 NVIDIA GeForce GTS 150/PCI/SSE2
 NVIDIA GeForce GTS 160M/PCI/SSE2
+NVIDIA GeForce GTS 160M/PCI/SSE2
+NVIDIA GeForce GTS 240/PCI/SSE2
 NVIDIA GeForce GTS 240/PCI/SSE2
 NVIDIA GeForce GTS 250/PCI/SSE2
+NVIDIA GeForce GTS 250/PCI/SSE2
+NVIDIA GeForce GTS 250/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTS 250/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTS 250M/PCI/SSE2
 NVIDIA GeForce GTS 350M/PCI/SSE2
+NVIDIA GeForce GTS 350M/PCI/SSE2
+NVIDIA GeForce GTS 360M/PCI/SSE2
 NVIDIA GeForce GTS 360M/PCI/SSE2
 NVIDIA GeForce GTS 450/PCI/SSE2
+NVIDIA GeForce GTS 450/PCI/SSE2
+NVIDIA GeForce GTS 450/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTS 450/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTS 455/PCI/SSE2
 NVIDIA GeForce GTX 260/PCI/SSE2
+NVIDIA GeForce GTX 260/PCI/SSE2
+NVIDIA GeForce GTX 260/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 260/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 260M/PCI/SSE2
+NVIDIA GeForce GTX 260M/PCI/SSE2
+NVIDIA GeForce GTX 275/PCI/SSE2
 NVIDIA GeForce GTX 275/PCI/SSE2
+NVIDIA GeForce GTX 275/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 280
 NVIDIA GeForce GTX 280/PCI/SSE2
 NVIDIA GeForce GTX 280M/PCI/SSE2
+NVIDIA GeForce GTX 285
+NVIDIA GeForce GTX 285/PCI/SSE2
+NVIDIA GeForce GTX 285/PCI/SSE2
 NVIDIA GeForce GTX 285/PCI/SSE2
 NVIDIA GeForce GTX 295/PCI/SSE2
+NVIDIA GeForce GTX 295/PCI/SSE2
+NVIDIA GeForce GTX 460 SE/PCI/SSE2
 NVIDIA GeForce GTX 460 SE/PCI/SSE2
 NVIDIA GeForce GTX 460 SE/PCI/SSE2/3DNOW!
+NVIDIA GeForce GTX 460 SE/PCI/SSE2/3DNOW!
+NVIDIA GeForce GTX 460/PCI/SSE2
 NVIDIA GeForce GTX 460/PCI/SSE2
 NVIDIA GeForce GTX 460/PCI/SSE2/3DNOW!
+NVIDIA GeForce GTX 460/PCI/SSE2/3DNOW!
+NVIDIA GeForce GTX 460M/PCI/SSE2
 NVIDIA GeForce GTX 460M/PCI/SSE2
 NVIDIA GeForce GTX 465/PCI/SSE2
+NVIDIA GeForce GTX 465/PCI/SSE2
+NVIDIA GeForce GTX 465/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 465/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 470/PCI/SSE2
+NVIDIA GeForce GTX 470/PCI/SSE2
 NVIDIA GeForce GTX 470/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 480/PCI/SSE2
 NVIDIA GeForce GTX 550 Ti/PCI/SSE2
+NVIDIA GeForce GTX 550 Ti/PCI/SSE2
 NVIDIA GeForce GTX 550 Ti/PCI/SSE2/3DNOW!
+NVIDIA GeForce GTX 550 Ti/PCI/SSE2/3DNOW!
+NVIDIA GeForce GTX 560 Ti/PCI/SSE2
 NVIDIA GeForce GTX 560 Ti/PCI/SSE2
 NVIDIA GeForce GTX 560 Ti/PCI/SSE2/3DNOW!
+NVIDIA GeForce GTX 560 Ti/PCI/SSE2/3DNOW!
+NVIDIA GeForce GTX 560/PCI/SSE2
 NVIDIA GeForce GTX 560/PCI/SSE2
+NVIDIA GeForce GTX 560/PCI/SSE2/3DNOW!
+NVIDIA GeForce GTX 560M/PCI/SSE2
 NVIDIA GeForce GTX 570/PCI/SSE2
+NVIDIA GeForce GTX 570/PCI/SSE2
+NVIDIA GeForce GTX 570/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 570/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 580/PCI/SSE2
+NVIDIA GeForce GTX 580/PCI/SSE2
+NVIDIA GeForce GTX 580/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 580/PCI/SSE2/3DNOW!
 NVIDIA GeForce GTX 580M/PCI/SSE2
 NVIDIA GeForce GTX 590/PCI/SSE2
+NVIDIA GeForce GTX 590/PCI/SSE2
 NVIDIA GeForce Go 6
 NVIDIA GeForce Go 6100
 NVIDIA GeForce Go 6100/PCI/SSE2
 NVIDIA GeForce Go 6100/PCI/SSE2/3DNOW!
+NVIDIA GeForce Go 6100/PCI/SSE2/3DNOW!
 NVIDIA GeForce Go 6150/PCI/SSE2
 NVIDIA GeForce Go 6150/PCI/SSE2/3DNOW!
+NVIDIA GeForce Go 6150/PCI/SSE2/3DNOW!
 NVIDIA GeForce Go 6200
 NVIDIA GeForce Go 6200/PCI/SSE2
 NVIDIA GeForce Go 6400
 NVIDIA GeForce Go 6400/PCI/SSE2
+NVIDIA GeForce Go 6400/PCI/SSE2
 NVIDIA GeForce Go 6600
 NVIDIA GeForce Go 6600/PCI/SSE2
+NVIDIA GeForce Go 6600/PCI/SSE2
 NVIDIA GeForce Go 6800
 NVIDIA GeForce Go 6800 Ultra/PCI/SSE2
+NVIDIA GeForce Go 6800 Ultra/PCI/SSE2
 NVIDIA GeForce Go 6800/PCI/SSE2
 NVIDIA GeForce Go 7200
 NVIDIA GeForce Go 7200/PCI/SSE2
 NVIDIA GeForce Go 7200/PCI/SSE2/3DNOW!
 NVIDIA GeForce Go 7300
 NVIDIA GeForce Go 7300/PCI/SSE2
+NVIDIA GeForce Go 7300/PCI/SSE2
 NVIDIA GeForce Go 7300/PCI/SSE2/3DNOW!
 NVIDIA GeForce Go 7400
 NVIDIA GeForce Go 7400/PCI/SSE2
+NVIDIA GeForce Go 7400/PCI/SSE2
 NVIDIA GeForce Go 7400/PCI/SSE2/3DNOW!
 NVIDIA GeForce Go 7600
 NVIDIA GeForce Go 7600/PCI/SSE2
+NVIDIA GeForce Go 7600/PCI/SSE2
+NVIDIA GeForce Go 7600/PCI/SSE2/3DNOW!
 NVIDIA GeForce Go 7600/PCI/SSE2/3DNOW!
 NVIDIA GeForce Go 7700
+NVIDIA GeForce Go 7700/PCI/SSE2
 NVIDIA GeForce Go 7800
 NVIDIA GeForce Go 7800 GTX/PCI/SSE2
 NVIDIA GeForce Go 7900
 NVIDIA GeForce Go 7900 GS/PCI/SSE2
+NVIDIA GeForce Go 7900 GS/PCI/SSE2
 NVIDIA GeForce Go 7900 GTX/PCI/SSE2
 NVIDIA GeForce Go 7950 GTX/PCI/SSE2
 NVIDIA GeForce PCX
@@ -1275,15 +1913,20 @@ NVIDIA GeForce2 GTS/AGP/SSE
 NVIDIA GeForce2 MX/AGP/3DNOW!
 NVIDIA GeForce2 MX/AGP/SSE/3DNOW!
 NVIDIA GeForce2 MX/AGP/SSE2
+NVIDIA GeForce2 MX/AGP/SSE2
 NVIDIA GeForce2 MX/PCI/SSE2
 NVIDIA GeForce3/AGP/SSE/3DNOW!
 NVIDIA GeForce3/AGP/SSE2
 NVIDIA GeForce4 420 Go 32M/AGP/SSE2
 NVIDIA GeForce4 420 Go 32M/AGP/SSE2/3DNOW!
 NVIDIA GeForce4 420 Go 32M/PCI/SSE2/3DNOW!
+NVIDIA GeForce4 420 Go/AGP/SSE2
 NVIDIA GeForce4 440 Go 64M/AGP/SSE2/3DNOW!
+NVIDIA GeForce4 440 Go/AGP/SSE2
 NVIDIA GeForce4 460 Go/AGP/SSE2
 NVIDIA GeForce4 MX 4000/AGP/SSE/3DNOW!
+NVIDIA GeForce4 MX 4000/AGP/SSE/3DNOW!
+NVIDIA GeForce4 MX 4000/AGP/SSE2
 NVIDIA GeForce4 MX 4000/AGP/SSE2
 NVIDIA GeForce4 MX 4000/PCI/3DNOW!
 NVIDIA GeForce4 MX 4000/PCI/SSE/3DNOW!
@@ -1291,97 +1934,161 @@ NVIDIA GeForce4 MX 4000/PCI/SSE2
 NVIDIA GeForce4 MX 420/AGP/SSE/3DNOW!
 NVIDIA GeForce4 MX 420/AGP/SSE2
 NVIDIA GeForce4 MX 440 with AGP8X/AGP/SSE2
+NVIDIA GeForce4 MX 440 with AGP8X/AGP/SSE2
+NVIDIA GeForce4 MX 440/AGP/SSE2
 NVIDIA GeForce4 MX 440/AGP/SSE2
 NVIDIA GeForce4 MX 440/AGP/SSE2/3DNOW!
 NVIDIA GeForce4 MX 440SE with AGP8X/AGP/SSE2
+NVIDIA GeForce4 MX 440SE with AGP8X/AGP/SSE2
+NVIDIA GeForce4 MX Integrated GPU/AGP/SSE/3DNOW!
 NVIDIA GeForce4 MX Integrated GPU/AGP/SSE/3DNOW!
 NVIDIA GeForce4 Ti 4200 with AGP8X/AGP/SSE
 NVIDIA GeForce4 Ti 4200/AGP/SSE/3DNOW!
 NVIDIA GeForce4 Ti 4400/AGP/SSE2
 NVIDIA Generic
 NVIDIA ION LE/PCI/SSE2
+NVIDIA ION LE/PCI/SSE2
+NVIDIA ION/PCI/SSE2
 NVIDIA ION/PCI/SSE2
 NVIDIA ION/PCI/SSE2/3DNOW!
+NVIDIA ION/PCI/SSE2/3DNOW!
+NVIDIA MCP61/PCI/SSE2
 NVIDIA MCP61/PCI/SSE2
 NVIDIA MCP61/PCI/SSE2/3DNOW!
+NVIDIA MCP61/PCI/SSE2/3DNOW!
+NVIDIA MCP73/PCI/SSE2
 NVIDIA MCP73/PCI/SSE2
 NVIDIA MCP79MH/PCI/SSE2
+NVIDIA MCP79MH/PCI/SSE2
+NVIDIA MCP79MX/PCI/SSE2
 NVIDIA MCP79MX/PCI/SSE2
 NVIDIA MCP7A-O/PCI/SSE2
+NVIDIA MCP7A-O/PCI/SSE2
 NVIDIA MCP7A-S/PCI/SSE2
 NVIDIA MCP89-EPT/PCI/SSE2
+NVIDIA MCP89-EPT/PCI/SSE2
 NVIDIA N10M-GE1/PCI/SSE2
+NVIDIA N10M-GE1/PCI/SSE2
+NVIDIA N10P-GE1/PCI/SSE2
 NVIDIA N10P-GE1/PCI/SSE2
 NVIDIA N10P-GV2/PCI/SSE2
+NVIDIA N10P-GV2/PCI/SSE2
+NVIDIA N11M-GE1/PCI/SSE2
 NVIDIA N11M-GE1/PCI/SSE2
 NVIDIA N11M-GE2/PCI/SSE2
+NVIDIA N11M-GE2/PCI/SSE2
 NVIDIA N12E-GS-A1/PCI/SSE2
+NVIDIA N12P-GVR-B-A1/PCI/SSE2
+NVIDIA N13M-GE1-B-A1/PCI/SSE2
+NVIDIA N13P-GL-A1/PCI/SSE2
+NVIDIA NB9M-GE/PCI/SSE2
 NVIDIA NB9M-GE/PCI/SSE2
 NVIDIA NB9M-GE1/PCI/SSE2
+NVIDIA NB9M-GE1/PCI/SSE2
+NVIDIA NB9M-GS/PCI/SSE2
 NVIDIA NB9M-GS/PCI/SSE2
 NVIDIA NB9M-NS/PCI/SSE2
+NVIDIA NB9M-NS/PCI/SSE2
+NVIDIA NB9P-GE1/PCI/SSE2
 NVIDIA NB9P-GE1/PCI/SSE2
 NVIDIA NB9P-GS/PCI/SSE2
 NVIDIA NV17/AGP/3DNOW!
 NVIDIA NV17/AGP/SSE2
+NVIDIA NV17/AGP/SSE2
 NVIDIA NV34
 NVIDIA NV35
 NVIDIA NV36/AGP/SSE/3DNOW!
 NVIDIA NV36/AGP/SSE2
 NVIDIA NV41/PCI/SSE2
 NVIDIA NV43
+NVIDIA NV43/PCI/SSE2
 NVIDIA NV44
+NVIDIA NV44/AGP/SSE2
+NVIDIA NVIDIA GeForce 210 OpenGL Engine
 NVIDIA NVIDIA GeForce 210 OpenGL Engine
 NVIDIA NVIDIA GeForce 320M OpenGL Engine
+NVIDIA NVIDIA GeForce 320M OpenGL Engine
+NVIDIA NVIDIA GeForce 7300 GT OpenGL Engine
 NVIDIA NVIDIA GeForce 7300 GT OpenGL Engine
 NVIDIA NVIDIA GeForce 7600 GT OpenGL Engine
 NVIDIA NVIDIA GeForce 8600M GT OpenGL Engine
+NVIDIA NVIDIA GeForce 8600M GT OpenGL Engine
+NVIDIA NVIDIA GeForce 8800 GS OpenGL Engine
 NVIDIA NVIDIA GeForce 8800 GS OpenGL Engine
 NVIDIA NVIDIA GeForce 8800 GT OpenGL Engine
+NVIDIA NVIDIA GeForce 8800 GT OpenGL Engine
+NVIDIA NVIDIA GeForce 9400 OpenGL Engine
 NVIDIA NVIDIA GeForce 9400 OpenGL Engine
 NVIDIA NVIDIA GeForce 9400M OpenGL Engine
+NVIDIA NVIDIA GeForce 9400M OpenGL Engine
 NVIDIA NVIDIA GeForce 9500 GT OpenGL Engine
 NVIDIA NVIDIA GeForce 9600M GT OpenGL Engine
+NVIDIA NVIDIA GeForce 9600M GT OpenGL Engine
 NVIDIA NVIDIA GeForce GT 120 OpenGL Engine
+NVIDIA NVIDIA GeForce GT 120 OpenGL Engine
+NVIDIA NVIDIA GeForce GT 130 OpenGL Engine
 NVIDIA NVIDIA GeForce GT 130 OpenGL Engine
 NVIDIA NVIDIA GeForce GT 220 OpenGL Engine
 NVIDIA NVIDIA GeForce GT 230M OpenGL Engine
 NVIDIA NVIDIA GeForce GT 240M OpenGL Engine
 NVIDIA NVIDIA GeForce GT 330M OpenGL Engine
+NVIDIA NVIDIA GeForce GT 330M OpenGL Engine
 NVIDIA NVIDIA GeForce GT 420M OpenGL Engine
 NVIDIA NVIDIA GeForce GT 425M OpenGL Engine
 NVIDIA NVIDIA GeForce GT 430 OpenGL Engine
+NVIDIA NVIDIA GeForce GT 430 OpenGL Engine
 NVIDIA NVIDIA GeForce GT 440 OpenGL Engine
 NVIDIA NVIDIA GeForce GT 540M OpenGL Engine
 NVIDIA NVIDIA GeForce GTS 240 OpenGL Engine
 NVIDIA NVIDIA GeForce GTS 250 OpenGL Engine
+NVIDIA NVIDIA GeForce GTS 250 OpenGL Engine
+NVIDIA NVIDIA GeForce GTS 450 OpenGL Engine
 NVIDIA NVIDIA GeForce GTS 450 OpenGL Engine
 NVIDIA NVIDIA GeForce GTX 285 OpenGL Engine
 NVIDIA NVIDIA GeForce GTX 460 OpenGL Engine
+NVIDIA NVIDIA GeForce GTX 460 OpenGL Engine
 NVIDIA NVIDIA GeForce GTX 460M OpenGL Engine
 NVIDIA NVIDIA GeForce GTX 465 OpenGL Engine
 NVIDIA NVIDIA GeForce GTX 470 OpenGL Engine
 NVIDIA NVIDIA GeForce GTX 480 OpenGL Engine
+NVIDIA NVIDIA GeForce GTX 480 OpenGL Engine
+NVIDIA NVIDIA GeForce Pre-Release GF108 ES OpenGL Engine
 NVIDIA NVIDIA GeForce Pre-Release ION OpenGL Engine
+NVIDIA NVIDIA GeForce Pre-Release ION OpenGL Engine
+NVIDIA NVIDIA GeForce Pre-Release MCP7A-J-DC OpenGL Engine
 NVIDIA NVIDIA GeForce4 OpenGL Engine
 NVIDIA NVIDIA NV34MAP OpenGL Engine
 NVIDIA NVIDIA Quadro 4000 OpenGL Engine
+NVIDIA NVIDIA Quadro 4000 OpenGL Engine
 NVIDIA NVIDIA Quadro FX 4800 OpenGL Engine
 NVIDIA NVS 2100M/PCI/SSE2
+NVIDIA NVS 2100M/PCI/SSE2
+NVIDIA NVS 300/PCI/SSE2
 NVIDIA NVS 300/PCI/SSE2
 NVIDIA NVS 3100M/PCI/SSE2
+NVIDIA NVS 3100M/PCI/SSE2
 NVIDIA NVS 4100/PCI/SSE2/3DNOW!
 NVIDIA NVS 4200M/PCI/SSE2
+NVIDIA NVS 4200M/PCI/SSE2
+NVIDIA NVS 5100M/PCI/SSE2
 NVIDIA NVS 5100M/PCI/SSE2
 NVIDIA PCI
+NVIDIA Quadro 1000M/PCI/SSE2
+NVIDIA Quadro 2000/PCI/SSE2
 NVIDIA Quadro 2000/PCI/SSE2
+NVIDIA Quadro 2000M/PCI/SSE2
+NVIDIA Quadro 3000M/PCI/SSE2
 NVIDIA Quadro 4000
 NVIDIA Quadro 4000 OpenGL Engine
 NVIDIA Quadro 4000/PCI/SSE2
+NVIDIA Quadro 4000/PCI/SSE2
+NVIDIA Quadro 4000M/PCI/SSE2
+NVIDIA Quadro 5000/PCI/SSE2
 NVIDIA Quadro 5000/PCI/SSE2
 NVIDIA Quadro 5000M/PCI/SSE2
 NVIDIA Quadro 600
 NVIDIA Quadro 600/PCI/SSE2
+NVIDIA Quadro 600/PCI/SSE2
 NVIDIA Quadro 600/PCI/SSE2/3DNOW!
 NVIDIA Quadro 6000
 NVIDIA Quadro 6000/PCI/SSE2
@@ -1390,16 +2097,22 @@ NVIDIA Quadro DCC
 NVIDIA Quadro FX
 NVIDIA Quadro FX 1100/AGP/SSE2
 NVIDIA Quadro FX 1400/PCI/SSE2
+NVIDIA Quadro FX 1400/PCI/SSE2
 NVIDIA Quadro FX 1500
+NVIDIA Quadro FX 1500/PCI/SSE2
 NVIDIA Quadro FX 1500M/PCI/SSE2
 NVIDIA Quadro FX 1600M/PCI/SSE2
+NVIDIA Quadro FX 1600M/PCI/SSE2
 NVIDIA Quadro FX 1700
 NVIDIA Quadro FX 1700M/PCI/SSE2
 NVIDIA Quadro FX 1800
 NVIDIA Quadro FX 1800/PCI/SSE2
 NVIDIA Quadro FX 1800M/PCI/SSE2
 NVIDIA Quadro FX 2500M/PCI/SSE2
+NVIDIA Quadro FX 2500M/PCI/SSE2
 NVIDIA Quadro FX 2700M/PCI/SSE2
+NVIDIA Quadro FX 2700M/PCI/SSE2
+NVIDIA Quadro FX 2800M/PCI/SSE2
 NVIDIA Quadro FX 2800M/PCI/SSE2
 NVIDIA Quadro FX 3400
 NVIDIA Quadro FX 3450
@@ -1411,75 +2124,125 @@ NVIDIA Quadro FX 370
 NVIDIA Quadro FX 370/PCI/SSE2
 NVIDIA Quadro FX 3700
 NVIDIA Quadro FX 3700M/PCI/SSE2
+NVIDIA Quadro FX 3700M/PCI/SSE2
 NVIDIA Quadro FX 370M/PCI/SSE2
 NVIDIA Quadro FX 3800
 NVIDIA Quadro FX 3800M/PCI/SSE2
+NVIDIA Quadro FX 3800M/PCI/SSE2
 NVIDIA Quadro FX 4500
 NVIDIA Quadro FX 4600
 NVIDIA Quadro FX 4800
 NVIDIA Quadro FX 4800/PCI/SSE2
+NVIDIA Quadro FX 540/PCI/SSE2/3DNOW!
 NVIDIA Quadro FX 560
+NVIDIA Quadro FX 560/PCI/SSE2
 NVIDIA Quadro FX 5600
 NVIDIA Quadro FX 570
 NVIDIA Quadro FX 570/PCI/SSE2
 NVIDIA Quadro FX 570M/PCI/SSE2
 NVIDIA Quadro FX 580/PCI/SSE2
+NVIDIA Quadro FX 580/PCI/SSE2
+NVIDIA Quadro FX 770M/PCI/SSE2
 NVIDIA Quadro FX 770M/PCI/SSE2
 NVIDIA Quadro FX 880M
 NVIDIA Quadro FX 880M/PCI/SSE2
+NVIDIA Quadro FX 880M/PCI/SSE2
 NVIDIA Quadro FX Go700/AGP/SSE2
 NVIDIA Quadro NVS
 NVIDIA Quadro NVS 110M/PCI/SSE2
+NVIDIA Quadro NVS 110M/PCI/SSE2
 NVIDIA Quadro NVS 130M/PCI/SSE2
 NVIDIA Quadro NVS 135M/PCI/SSE2
+NVIDIA Quadro NVS 135M/PCI/SSE2
+NVIDIA Quadro NVS 140M/PCI/SSE2
 NVIDIA Quadro NVS 140M/PCI/SSE2
 NVIDIA Quadro NVS 150M/PCI/SSE2
+NVIDIA Quadro NVS 150M/PCI/SSE2
+NVIDIA Quadro NVS 160M/PCI/SSE2
 NVIDIA Quadro NVS 160M/PCI/SSE2
 NVIDIA Quadro NVS 210S/PCI/SSE2/3DNOW!
 NVIDIA Quadro NVS 285/PCI/SSE2
+NVIDIA Quadro NVS 285/PCI/SSE2
+NVIDIA Quadro NVS 290/PCI/SSE2
 NVIDIA Quadro NVS 290/PCI/SSE2
 NVIDIA Quadro NVS 295/PCI/SSE2
 NVIDIA Quadro NVS 320M/PCI/SSE2
+NVIDIA Quadro NVS 320M/PCI/SSE2
 NVIDIA Quadro NVS 55/280 PCI/PCI/SSE2
 NVIDIA Quadro NVS/PCI/SSE2
 NVIDIA Quadro PCI-E Series/PCI/SSE2/3DNOW!
 NVIDIA Quadro VX 200/PCI/SSE2
+NVIDIA Quadro VX 200/PCI/SSE2
+NVIDIA Quadro/AGP/SSE2
 NVIDIA Quadro/AGP/SSE2
 NVIDIA Quadro2
 NVIDIA Quadro4
+NVIDIA Quadro4 750 XGL/AGP/SSE2
 NVIDIA RIVA TNT
 NVIDIA RIVA TNT2/AGP/SSE2
 NVIDIA RIVA TNT2/PCI/3DNOW!
+NVIDIA Tesla C2050/PCI/SSE2
 NVIDIA nForce
+NVIDIA nForce 730a/PCI/SSE2
+NVIDIA nForce 730a/PCI/SSE2/3DNOW!
+NVIDIA nForce 750a SLI/PCI/SSE2
+NVIDIA nForce 750a SLI/PCI/SSE2/3DNOW!
+NVIDIA nForce 760i SLI/PCI/SSE2
+NVIDIA nForce 780a SLI/PCI/SSE2/3DNOW!
+NVIDIA nForce 980a/780a SLI/PCI/SSE2
+NVIDIA nForce 980a/780a SLI/PCI/SSE2/3DNOW!
 NVIDIA unknown board/AGP/SSE2
 NVIDIA unknown board/PCI/SSE2
 NVIDIA unknown board/PCI/SSE2/3DNOW!
 Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5670 OpenGL Engine
+Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5670 OpenGL Engine
 Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5750 OpenGL Engine
+Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5750 OpenGL Engine
+Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5770 OpenGL Engine
 Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5770 OpenGL Engine
 Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6490M OpenGL Engine
+Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6490M OpenGL Engine
+Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6750M OpenGL Engine
 Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6750M OpenGL Engine
+Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6770M OpenGL Engine
+Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6970M OpenGL Engine
 Parallels and Intel Inc. 3D-Analyze v2.3 - http://www.tommti-systems.com
 Parallels and Intel Inc. Parallels using Intel HD Graphics 3000 OpenGL Engine
+Parallels and Intel Inc. Parallels using Intel HD Graphics 3000 OpenGL Engine
+Parallels and NVIDIA Parallels using NVIDIA GeForce 320M OpenGL Engine
 Parallels and NVIDIA Parallels using NVIDIA GeForce 320M OpenGL Engine
 Parallels and NVIDIA Parallels using NVIDIA GeForce 9400 OpenGL Engine
 Parallels and NVIDIA Parallels using NVIDIA GeForce GT 120 OpenGL Engine
+Parallels and NVIDIA Parallels using NVIDIA GeForce GT 120 OpenGL Engine
+Parallels and NVIDIA Parallels using NVIDIA GeForce GT 330M OpenGL Engine
 Parallels and NVIDIA Parallels using NVIDIA GeForce GT 330M OpenGL Engine
 Radeon RV350 on Gallium
 S3
+S3 Fire GL2
 S3 Graphics VIA/S3G UniChrome IGP/MMX/K3D
+S3 Graphics VIA/S3G UniChrome IGP/MMX/SSE
+S3 Graphics VIA/S3G UniChrome Pro IGP/MMX/SSE
 S3 Graphics VIA/S3G UniChrome Pro IGP/MMX/SSE
 S3 Graphics, Incorporated ProSavage/Twister
 S3 Graphics, Incorporated S3 Graphics Chrome9 HC
+S3 Graphics, Incorporated S3 Graphics Chrome9 HC
 S3 Graphics, Incorporated S3 Graphics DeltaChrome
+S3 Graphics, Incorporated S3 Graphics DeltaChrome
+S3 Graphics, Incorporated VIA Chrome9 HC IGP
 S3 Graphics, Incorporated VIA Chrome9 HC IGP
 SiS
+SiS 650/M650 VGA
+SiS 661 VGA
 SiS 661 VGA
 SiS 662 VGA
 SiS 741 VGA
 SiS 760 VGA
+SiS 760 VGA
 SiS 761GX VGA
+SiS 761GX VGA
+SiS Mirage Graphics3
 SiS Mirage Graphics3
+SiS Xabre VGA
 Trident
 Tungsten Graphics
 Tungsten Graphics, Inc Mesa DRI 865G GEM 20091221 2009Q4 x86/MMX/SSE2
@@ -1489,6 +2252,7 @@ Tungsten Graphics, Inc Mesa DRI 915G GEM 20100330 DEVELOPMENT x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 915GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 915GM GEM 20091221 2009Q4 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 915GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2
+Tungsten Graphics, Inc Mesa DRI 915GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 945G
 Tungsten Graphics, Inc Mesa DRI 945G GEM 20091221 2009Q4 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 945G GEM 20100330 DEVELOPMENT
@@ -1497,18 +2261,23 @@ Tungsten Graphics, Inc Mesa DRI 945GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 945GM GEM 20091221 2009Q4 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100328 2010Q1 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2
+Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 945GME  x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 945GME 20061017
 Tungsten Graphics, Inc Mesa DRI 945GME GEM 20090712 2009Q2 RC3 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 945GME GEM 20091221 2009Q4 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 945GME GEM 20100330 DEVELOPMENT x86/MMX/SSE2
+Tungsten Graphics, Inc Mesa DRI 945GME GEM 20100330 DEVELOPMENT x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 965GM GEM 20090326 2009Q1 RC2 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 965GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 965GM GEM 20091221 2009Q4 x86/MMX/SSE2
+Tungsten Graphics, Inc Mesa DRI 965GM GEM 20091221 2009Q4 x86/MMX/SSE2
+Tungsten Graphics, Inc Mesa DRI 965GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI 965GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI G33 20061017 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI G33 GEM 20090712 2009Q2 RC3 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI G33 GEM 20091221 2009Q4 x86/MMX/SSE2
+Tungsten Graphics, Inc Mesa DRI G33 GEM 20091221 2009Q4 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI G41 GEM 20091221 2009Q4 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI G41 GEM 20100330 DEVELOPMENT x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI GMA500 20081116 - 5.0.1.0046 x86/MMX/SSE2
@@ -1518,44 +2287,83 @@ Tungsten Graphics, Inc Mesa DRI IGD GEM 20100330 DEVELOPMENT x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI IGDNG_D GEM 20091221 2009Q4 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI Ironlake Desktop GEM 20100330 DEVELOPMENT x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI Ironlake Mobile GEM 20100330 DEVELOPMENT x86/MMX/SSE2
+Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset 20080716 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20090712 2009Q2 RC3 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20091221 2009Q4 x86/MMX/SSE2
+Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20091221 2009Q4 x86/MMX/SSE2
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100328 2010Q1
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT
 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MMX/SSE2
+Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MMX/SSE2
+Tungsten Graphics, Inc. Mesa DRI R200 (RV250 4C66) 20090101 x86/MMX/SSE2 TCL DRI2
 Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5964) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2
 VIA
 VMware, Inc. Gallium 0.3 on SVGA3D; build: RELEASE;
+VMware, Inc. Gallium 0.3 on SVGA3D; build: RELEASE;
+VMware, Inc. Gallium 0.4 on SVGA3D; build: DEBUG; mutex: MSVC Intrinsics
+VMware, Inc. Gallium 0.4 on SVGA3D; build: RELEASE;
+VMware, Inc. Gallium 0.4 on i915 (chipset: 945GM)
 VMware, Inc. Gallium 0.4 on i915 (chipset: 945GM)
 VMware, Inc. Gallium 0.4 on llvmpipe
+VMware, Inc. Gallium 0.4 on llvmpipe
+VMware, Inc. Gallium 0.4 on softpipe
 VMware, Inc. Gallium 0.4 on softpipe
 X.Org Gallium 0.4 on AMD BARTS
+X.Org Gallium 0.4 on AMD BARTS
+X.Org Gallium 0.4 on AMD CEDAR
 X.Org Gallium 0.4 on AMD CEDAR
 X.Org Gallium 0.4 on AMD HEMLOCK
 X.Org Gallium 0.4 on AMD JUNIPER
+X.Org Gallium 0.4 on AMD JUNIPER
+X.Org Gallium 0.4 on AMD PALM
+X.Org Gallium 0.4 on AMD REDWOOD
 X.Org Gallium 0.4 on AMD REDWOOD
 X.Org Gallium 0.4 on AMD RS780
+X.Org Gallium 0.4 on AMD RS780
+X.Org Gallium 0.4 on AMD RS880
 X.Org Gallium 0.4 on AMD RS880
 X.Org Gallium 0.4 on AMD RV610
+X.Org Gallium 0.4 on AMD RV610
+X.Org Gallium 0.4 on AMD RV620
 X.Org Gallium 0.4 on AMD RV620
 X.Org Gallium 0.4 on AMD RV630
+X.Org Gallium 0.4 on AMD RV630
+X.Org Gallium 0.4 on AMD RV635
 X.Org Gallium 0.4 on AMD RV635
 X.Org Gallium 0.4 on AMD RV710
+X.Org Gallium 0.4 on AMD RV710
+X.Org Gallium 0.4 on AMD RV730
 X.Org Gallium 0.4 on AMD RV730
 X.Org Gallium 0.4 on AMD RV740
+X.Org Gallium 0.4 on AMD RV740
 X.Org Gallium 0.4 on AMD RV770
 X.Org R300 Project Gallium 0.4 on ATI R300
+X.Org R300 Project Gallium 0.4 on ATI R350
+X.Org R300 Project Gallium 0.4 on ATI R420
+X.Org R300 Project Gallium 0.4 on ATI R580
 X.Org R300 Project Gallium 0.4 on ATI R580
 X.Org R300 Project Gallium 0.4 on ATI RC410
+X.Org R300 Project Gallium 0.4 on ATI RC410
+X.Org R300 Project Gallium 0.4 on ATI RS480
+X.Org R300 Project Gallium 0.4 on ATI RS482
 X.Org R300 Project Gallium 0.4 on ATI RS482
 X.Org R300 Project Gallium 0.4 on ATI RS600
 X.Org R300 Project Gallium 0.4 on ATI RS690
+X.Org R300 Project Gallium 0.4 on ATI RS690
+X.Org R300 Project Gallium 0.4 on ATI RS740
+X.Org R300 Project Gallium 0.4 on ATI RV350
 X.Org R300 Project Gallium 0.4 on ATI RV350
 X.Org R300 Project Gallium 0.4 on ATI RV370
+X.Org R300 Project Gallium 0.4 on ATI RV370
+X.Org R300 Project Gallium 0.4 on ATI RV410
 X.Org R300 Project Gallium 0.4 on ATI RV410
 X.Org R300 Project Gallium 0.4 on ATI RV515
+X.Org R300 Project Gallium 0.4 on ATI RV515
+X.Org R300 Project Gallium 0.4 on ATI RV530
 X.Org R300 Project Gallium 0.4 on ATI RV530
+X.Org R300 Project Gallium 0.4 on ATI RV560
+X.Org R300 Project Gallium 0.4 on ATI RV570
 X.Org R300 Project Gallium 0.4 on ATI RV570
 X.Org R300 Project Gallium 0.4 on R420
 X.Org R300 Project Gallium 0.4 on R580
@@ -1571,23 +2379,44 @@ X.Org R300 Project Gallium 0.4 on RV410
 X.Org R300 Project Gallium 0.4 on RV515
 X.Org R300 Project Gallium 0.4 on RV530
 XGI
+nouveau Gallium 0.4 on NV31
+nouveau Gallium 0.4 on NV34
 nouveau Gallium 0.4 on NV34
 nouveau Gallium 0.4 on NV36
+nouveau Gallium 0.4 on NV43
+nouveau Gallium 0.4 on NV44
+nouveau Gallium 0.4 on NV46
 nouveau Gallium 0.4 on NV46
 nouveau Gallium 0.4 on NV49
 nouveau Gallium 0.4 on NV4A
+nouveau Gallium 0.4 on NV4A
 nouveau Gallium 0.4 on NV4B
+nouveau Gallium 0.4 on NV4B
+nouveau Gallium 0.4 on NV4C
 nouveau Gallium 0.4 on NV4E
 nouveau Gallium 0.4 on NV50
+nouveau Gallium 0.4 on NV63
+nouveau Gallium 0.4 on NV67
+nouveau Gallium 0.4 on NV84
 nouveau Gallium 0.4 on NV84
 nouveau Gallium 0.4 on NV86
+nouveau Gallium 0.4 on NV86
+nouveau Gallium 0.4 on NV92
 nouveau Gallium 0.4 on NV92
 nouveau Gallium 0.4 on NV94
+nouveau Gallium 0.4 on NV94
+nouveau Gallium 0.4 on NV96
 nouveau Gallium 0.4 on NV96
 nouveau Gallium 0.4 on NV98
+nouveau Gallium 0.4 on NV98
+nouveau Gallium 0.4 on NVA0
 nouveau Gallium 0.4 on NVA0
 nouveau Gallium 0.4 on NVA3
 nouveau Gallium 0.4 on NVA5
+nouveau Gallium 0.4 on NVA5
+nouveau Gallium 0.4 on NVA8
 nouveau Gallium 0.4 on NVA8
 nouveau Gallium 0.4 on NVAA
+nouveau Gallium 0.4 on NVAA
+nouveau Gallium 0.4 on NVAC
 nouveau Gallium 0.4 on NVAC
diff --git a/scripts/gpu_table_tester b/scripts/gpu_table_tester
index 52b1c8f31dca293e14a213a5e73cec0d023e8028..9bc958636dc9a899089c700cdef4f0708bf29ff0 100755
--- a/scripts/gpu_table_tester
+++ b/scripts/gpu_table_tester
@@ -26,25 +26,35 @@ use Getopt::Long;
 
 ( $MyName = $0 ) =~ s|.*/||;
 my $mini_HELP = "
-  $MyName --gpu-table <gpu_table.txt> 
-          [ --unrecognized-only ]
-          [ --table-only ]
-          [ <gpu-strings-file> ...]
+  $MyName {--gpu-table|-g} <gpu_table.txt> {--table-only|-t}
   
-  Checks for duplicates and invalid lines in the gpu_table.txt file.
+    Checks for duplicates and invalid lines in the gpu_table.txt file.
 
-  Unless the '--table-only' option is specified, it also tests the recognition of 
-  values in the gpu-strings-files (or standard input if no files are given).  
+  $MyName {--gpu-table|-g} <gpu_table.txt> [ <gpu-strings-file> ... ]
+          [{--unmatched|-u}]
 
-  If the --unrecognized-only option is specified, then no output is produced for
-  values that are matched, otherwise a line is output for each input line that
-  describes the results of attempting to match the value on that line.
+    Tests the recognition of values in the gpu-strings-files (or 
+    standard input if no files are given).   The results of attempting to match 
+    each input line are displayed in report form, showing:
+     - NO MATCH, unsupported, or supported
+     - the class of the GPU
+     - the label for the recognizer line from the gpu_table that it matched
+
+    If the --unmatched option is specified, then no output is produced for
+    values that are matched.
+
+  $MyName {--gpu-table|-g} <gpu_table.txt> {--diff|-d} <old_results> [ <gpu-strings-file> ...]
+
+    With the --diff option, the report compares the current results to <old-results>,
+    which should be the output from a previous run without --diff.  The report shows each
+    input value with the old result and the new result if it is different.
 ";
 
-&GetOptions("help"              => \$Help,
-            "gpu-table=s"       => \$GpuTable,
-            "unrecognized-only" => \$UnrecognizedOnly,
-            "table-only"        => \$TableOnly
+&GetOptions("help"               => \$Help
+            ,"unmatched"         => \$UnMatchedOnly
+            ,"table-only"        => \$TableOnly
+            ,"gpu-table=s"       => \$GpuTable
+            ,"diff=s"            => \$Diff
     )
     || die "$mini_HELP";
 
@@ -55,6 +65,7 @@ if ($Help)
 }
 
 $ErrorsSeen = 0;
+$NoMatch = 'NO MATCH'; # constant
 
 die "Must specify a --gpu-table <gpu_table.txt> value"
     unless $GpuTable;
@@ -62,19 +73,19 @@ die "Must specify a --gpu-table <gpu_table.txt> value"
 open(GPUS, "<$GpuTable")
     || die "Failed to open gpu table '$GpuTable':\n\t$!\n";
 
-# Parse the GPU table into these table, indexed by the name
+# Parse the GPU table into these tables, indexed by the name
 my %NameLine;       # name -> line number on which a given name was found (catches duplicate names)
 my %RecognizerLine; # name -> line number on which a given name was found (catches duplicate names)
 my %Name;           # recognizer -> name
 my %Recognizer;     # name -> recognizer
 my %Class;          # recognizer -> class
 my %Supported;      # recognizer -> supported
-my @InOrder;        # records the order of the recognizers
+my @InOrder;        # lowercased recognizers in file order - these are the ones really used to match
 
-$Name{'UNRECOGNIZED'}      = 'UNRECOGNIZED';
-$NameLine{'UNRECOGNIZED'}  = '(hard-coded)'; # use this for error messages in table parsing
-$Class{'UNRECOGNIZED'}     = '';
-$Supported{'UNRECOGNIZED'} = '';
+$Name{$NoMatch}      = $NoMatch;
+$NameLine{$NoMatch}  = '(hard-coded)'; # use this for error messages in table parsing
+$Class{$NoMatch}     = '';
+$Supported{$NoMatch} = '';
 
 while (<GPUS>)
 {
@@ -142,15 +153,19 @@ print STDERR "\n" if $ErrorsSeen;
 
 exit $ErrorsSeen if $TableOnly;
 
+
+# Loop over input lines, find the results for each 
 my %RecognizedBy;
-while (<>)
+while (<>) 
 {
     chomp;
+    my $lcInput = lc $_;  # the real gpu table parser lowercases the input string
     my $recognizer;
-    $RecognizedBy{$_} = 'UNRECOGNIZED';
+    $RecognizedBy{$_} = $NoMatch;
     foreach $recognizer ( @InOrder ) # note early exit if recognized
     {
-        if ( m/$recognizer/ )
+        my $lcRecognizer = lc $recognizer; # the real gpu table parser lowercases the recognizer
+        if ( $lcInput =~ m/$lcRecognizer/ )
         {
             $RecognizedBy{$_} = $recognizer;
             last; # exit recognizer loop
@@ -158,8 +173,6 @@ while (<>)
     }
 }
 
-## Print results. 
-## For each input, show supported or unsupported, the class, and the recognizer name
 format STDOUT_TOP =
 GPU String                                                                                               Supported?  Class  Recognizer
 ------------------------------------------------------------------------------------------------------   ----------- -----  ------------------------------------
@@ -169,10 +182,81 @@ format STDOUT =
 $_, $Supported{$RecognizedBy{$_}},$Class{$RecognizedBy{$_}},$Name{$RecognizedBy{$_}}
 .
 
-foreach ( sort keys %RecognizedBy )
+my $ReportLineTemplate = "A102xxxA12xxxAA*"; # MUST match the format STDOUT above
+
+format DIFF_TOP =
+                                                                                                         ------ OLD ------   ------ NEW ------
+GPU String                                                                                               Supported?  Class   Supported?  Class
+------------------------------------------------------------------------------------------------------   ----------- -----   ----------- -----
+.                                                                                                                                             
+
+my ( $oldSupported, $oldClass, $newSupported, $newClass );
+
+format DIFF =                                                                                                                                 
+@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<...   @<<<<<<<<<<   @>    @<<<<<<<<<<   @> 
+$_,                                                                                                $oldSupported, $oldClass, $newSupported, $newClass
+.
+
+if ( ! $Diff )
 {
-    write if ! $UnrecognizedOnly || $Name{$RecognizedBy{$_}} eq 'UNRECOGNIZED';
-    $-++; # suppresses pagination
+    ## Print results. 
+    ## For each input, show supported or unsupported, the class, and the recognizer name
+
+    foreach ( sort keys %RecognizedBy )
+    {
+        write if ! $UnMatchedOnly || $Name{$RecognizedBy{$_}} eq $NoMatch;
+        $-++; # suppresses pagination
+    }
+}
+else
+{
+    open OLD, "<$Diff"
+        || die "Failed to open --diff file '$Diff'\n\t$!\n";
+    my $discard = 2;
+    while ( <OLD> )
+    {
+        if ( $discard > 0 )
+        {
+            my ( $gpu, $supported, $class ) = unpack $ReportLineTemplate;
+            $gpu =~ s/\s*$//;
+            ( $OldSupported{$gpu} = $supported ) =~ s/\s*$//;
+            ( $OldClass{$gpu} = $class ) =~ s/\s*$//;
+        }
+        else
+        {
+            $discard--;
+        }
+    }
+    close OLD;
+
+    $FORMAT_TOP_NAME = DIFF_TOP;
+    $FORMAT_NAME = DIFF;
+    foreach ( sort keys %RecognizedBy )
+    {
+        $newSupported = $Supported{$RecognizedBy{$_}} || $NoMatch;
+        $newClass     = $Class{$RecognizedBy{$_}};
+
+        if ( ! defined $OldSupported{$_} )
+        {
+            $oldSupported = 'NEW';
+            $oldClass = '-';
+        }
+        else
+        {
+            $oldSupported = $OldSupported{$_} || $NoMatch;
+            $oldClass     = $OldClass{$_};
+
+            if (   ( $oldSupported eq $newSupported )
+                && ( $oldClass     eq $newClass )
+                )
+            {
+                $newSupported = '';
+                $newClass = '';
+            }
+        }
+        write;
+        $-++; # suppresses pagination
+    }
 }
 
 exit $ErrorsSeen;