From 942823db091c0b10a80cbfc5994008624f18d318 Mon Sep 17 00:00:00 2001 From: "Boroondas Gupte (patch by Aleric Inglewood)" Date: Sun, 3 Apr 2011 14:34:44 +0200 Subject: OPEN-38: Fixes for viewer-autobuild for standalone Reviewed at https://codereview.secondlife.com/r/167/ (The patch to create this commit was taken from there, too. That patch was made relative to 5f0ab9443ece. Applied cleanly to the (earlier) 43b4b7927c00.) Also fixes OPEN-36 --- indra/cmake/FindGLH.cmake | 30 ++++++++++++++++++++++++++++++ indra/cmake/GLH.cmake | 11 +++++++++++ indra/cmake/LLRender.cmake | 2 ++ indra/cmake/LLSharedLibs.cmake | 24 +++++++++++------------- indra/cmake/Linking.cmake | 29 +++++++++++++---------------- indra/linux_crash_logger/CMakeLists.txt | 1 + 6 files changed, 68 insertions(+), 29 deletions(-) create mode 100644 indra/cmake/FindGLH.cmake create mode 100644 indra/cmake/GLH.cmake diff --git a/indra/cmake/FindGLH.cmake b/indra/cmake/FindGLH.cmake new file mode 100644 index 0000000000..3d16adaf03 --- /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 0000000000..911dbe4017 --- /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 c47e8878e9..8427928151 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 e29076c738..cafaf1ca3f 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 07db6ab257..c5f9e2c579 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 ab62a0d0af..98ebdc7487 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) -- cgit v1.2.3 From 13458a96c7f9b77fe22f831baf418633cc38fad6 Mon Sep 17 00:00:00 2001 From: Boroondas Gupte Date: Wed, 6 Apr 2011 03:33:53 +0200 Subject: contributions.txt entry for OPEN-38 --- doc/contributions.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/contributions.txt b/doc/contributions.txt index 4e91bbdd36..d604cc0d15 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -61,6 +61,7 @@ Aimee Trescothick Alejandro Rosenthal VWR-1184 Aleric Inglewood + OPEN-38 SNOW-240 SNOW-522 SNOW-626 -- cgit v1.2.3 From 45b1b6ff3b030c0372f1efff2baad989b02725a9 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Wed, 3 Aug 2011 16:04:45 -0400 Subject: CHOP-763: Remove redundant KEY string names from llwindowlistener.cpp. A couple of the lookup tables in llwindowlistener.cpp essentially duplicated LLKeyboard::keyFromString() and maskFromString(). Remove those tables and use LLKeyboard lookup methods instead. --- indra/llwindow/llwindowlistener.cpp | 135 +++++++++--------------------------- 1 file changed, 31 insertions(+), 104 deletions(-) diff --git a/indra/llwindow/llwindowlistener.cpp b/indra/llwindow/llwindowlistener.cpp index 91b99d83c6..006aaa75e7 100644 --- a/indra/llwindow/llwindowlistener.cpp +++ b/indra/llwindow/llwindowlistener.cpp @@ -41,10 +41,10 @@ LLWindowListener::LLWindowListener(LLWindowCallbacks *window, const KeyboardGett 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 )"; + "(integer keycode values, or keysym string from any addKeyName() call in\n" + "http://hg.secondlife.com/viewer-development/src/tip/indra/llwindow/llkeyboard.cpp )"; std::string mask = - "Specify optional [\"mask\"] as an array containing any of \"CONTROL\", \"ALT\",\n" + "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."; @@ -104,118 +104,41 @@ protected: } }; -// for WhichKeysym. KeyProxy is like the typedef KEY, except that KeyProxy() -// (default-constructed) is guaranteed to have the value KEY_NONE. -class KeyProxy +// helper for getMask() +static MASK lookupMask_(const std::string& maskname) { -public: - KeyProxy(KEY k): mKey(k) {} - KeyProxy(): mKey(KEY_NONE) {} - operator KEY() const { return mKey; } - -private: - KEY mKey; -}; - -struct WhichKeysym: public StringLookup -{ - WhichKeysym(): StringLookup("keysym") + // 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") { - 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); + return MASK_MAC_CONTROL; } -}; -static WhichKeysym keysyms; - -struct WhichMask: public StringLookup -{ - WhichMask(): StringLookup("shift mask") + else { - 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 + // 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; } -}; -static WhichMask masks; +} static MASK getMask(const LLSD& event) { - MASK mask(MASK_NONE); 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 |= masks.lookup(*ai); + mask |= lookupMask_(*ai); } return mask; } @@ -224,7 +147,11 @@ static KEY getKEY(const LLSD& event) { if (event.has("keysym")) { - return keysyms.lookup(event["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")) { -- cgit v1.2.3 From a44fb94af2974fce07575f30f5dcaff9729d9ba9 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 11 Aug 2011 17:41:54 -0400 Subject: CHOP-763: Reduce redundancy in LLView::childrenHandle*() methods. There were 13 different methods that were more or less clones of each other. Consolidate those down to 5 variations on the basic method body, where each variation has good (commented!) reason to differ. Use helper methods to further simplify the remaining distinct method bodies. Use BOOST_FOREACH() to improve readability of iterating over mChildList. --- indra/llui/llview.cpp | 496 ++++++++++++-------------------------------------- indra/llui/llview.h | 17 ++ 2 files changed, 129 insertions(+), 384 deletions(-) diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 8803d106ba..f41e43c0cf 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -32,6 +32,7 @@ #include #include +#include #include "llrender.h" #include "llevent.h" @@ -346,13 +347,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(*iter)); + controls.push_back(static_cast(viewp)); } } return controls; @@ -574,9 +573,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 +600,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,39 +643,71 @@ void LLView::onMouseLeave(S32 x, S32 y, MASK mask) //llinfos << "Mouse left " << getName() << llendl; } +bool LLView::visibleAndContains(S32 local_x, S32 local_y) +{ + return pointInView(local_x, local_y) + && getVisible(); +} -LLView* LLView::childrenHandleToolTip(S32 x, S32 y, MASK mask) +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; + } +} + +// XDATA might be MASK, or S32 clicks +template +LLView* LLView::childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra) { - 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()) + + if (!viewp->visibleEnabledAndContains(local_x, local_y)) { continue; } - if (viewp->handleToolTip(local_x, local_y, mask) ) + if ((viewp->*method)( local_x, local_y, extra ) + || 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::childrenHandleToolTip(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; + // Differs from childrenHandleMouseEvent() in that we want to offer + // tooltips even for disabled widgets. + if(!viewp->visibleAndContains(local_x, local_y)) + { + continue; } - if (viewp->blockMouseEvent(local_x, local_y)) + if (viewp->handleToolTip(local_x, local_y, mask) + || viewp->blockMouseEvent(local_x, local_y)) { - handled_view = viewp; - break; + viewp->logMouseEvent(); + return viewp; } } - return handled_view; + return NULL; } @@ -686,13 +715,11 @@ LLView* LLView::childFromPoint(S32 x, S32 y) { 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; } @@ -822,36 +849,31 @@ LLView* LLView::childrenHandleDragAndDrop(S32 x, S32 y, MASK mask, 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) + // default to not accepting drag and drop, will be overridden by handler + *accept = ACCEPT_NO; + + 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() || - !viewp->getEnabled()) + if( !viewp->visibleEnabledAndContains(local_x, local_y)) { continue; } + + // 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)) + tooltip_msg) + || viewp->blockMouseEvent(local_x, local_y)) { - handled_view = viewp; - break; - } - - if (viewp->blockMouseEvent(x, y)) - { - *accept = ACCEPT_NO; - handled_view = viewp; - break; + return viewp; } } - return handled_view; + return NULL; } void LLView::onMouseCaptureLost() @@ -906,388 +928,100 @@ BOOL LLView::handleMiddleMouseUp(S32 x, S32 y, MASK mask) 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; + return childrenHandleMouseEvent(&LLView::handleScrollWheel, x, y, clicks); } LLView* LLView::childrenHandleHover(S32 x, S32 y, MASK mask) { - LLView* handled_view = NULL; - if (getVisible() && getEnabled() ) + BOOST_FOREACH(LLView* viewp, mChildList) { - for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it) + S32 local_x = x - viewp->getRect().mLeft; + S32 local_y = y - viewp->getRect().mBottom; + if(!viewp->visibleEnabledAndContains(local_x, local_y)) { - 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; - } + continue; + } - if (viewp->blockMouseEvent(local_x, local_y)) - { - LLUI::sWindow->setCursor(viewp->getHoverCursor()); + // This call differentiates this method from childrenHandleMouseEvent(). + LLUI::sWindow->setCursor(viewp->getHoverCursor()); - handled_view = viewp; - break; - } + if (viewp->handleHover(local_x, local_y, mask) + || viewp->blockMouseEvent(local_x, local_y)) + { + viewp->logMouseEvent(); + return viewp; } } - return handled_view; + return NULL; } -// Called during downward traversal -LLView* LLView::childrenHandleKey(KEY key, MASK mask) +template +LLView* LLView::childrenHandleCharEvent(const std::string& desc, const METHOD& method, + CHARTYPE c, MASK mask) { - LLView* handled_view = NULL; - if ( getVisible() && getEnabled() ) { - for ( child_list_iter_t child_it = mChildList.begin(); child_it != mChildList.end(); ++child_it) + BOOST_FOREACH(LLView* viewp, mChildList) { - LLView* viewp = *child_it; - if (viewp->handleKey(key, mask, TRUE)) + if ((viewp->*method)(c, mask, TRUE)) { if (LLView::sDebugKeys) { - llinfos << "Key handled by " << viewp->getName() << llendl; + llinfos << desc << " handled by " << viewp->getName() << llendl; } - handled_view = viewp; - break; + return viewp; } } } + return NULL; +} - return handled_view; +// Called during downward traversal +LLView* LLView::childrenHandleKey(KEY key, MASK mask) +{ + 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() @@ -1460,9 +1194,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()) @@ -1525,10 +1258,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()) @@ -1689,11 +1420,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) { @@ -1703,9 +1432,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 ) @@ -2811,9 +2539,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; } diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 594a5eec6b..daea46d330 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -516,6 +516,9 @@ 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); @@ -541,6 +544,20 @@ protected: private: + template + LLView* childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra); + + template + 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; -- cgit v1.2.3 From a548fd52e3c938614f213ae7f2b1aa9cbf05b23f Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 11 Aug 2011 17:54:27 -0400 Subject: CHOP-763: Collect nontrivial LLView::childrenHandle*() methods. There are 5 remaining childrenHandleSomething() methods with nontrivial bodies -- the rest all forward to one of those 5. Move them all to be physically adjacent in the source file to make it easy to compare/maintain. --- indra/llui/llview.cpp | 158 +++++++++++++++++++++++++------------------------- 1 file changed, 78 insertions(+), 80 deletions(-) diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index f41e43c0cf..6d0bd4d520 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -663,6 +663,27 @@ void LLView::logMouseEvent() } } +template +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 LLView* LLView::childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra) @@ -710,6 +731,63 @@ LLView* LLView::childrenHandleToolTip(S32 x, S32 y, MASK mask) return NULL; } +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; + } + + // 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)) + { + return viewp; + } + } + 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()); + + 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) { @@ -842,40 +920,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) -{ - // 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; - } - - // 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)) - { - return viewp; - } - } - return NULL; -} - void LLView::onMouseCaptureLost() { } @@ -925,57 +969,11 @@ BOOL LLView::handleMiddleMouseUp(S32 x, S32 y, MASK mask) return childrenHandleMiddleMouseUp( x, y, mask ) != NULL; } - LLView* LLView::childrenHandleScrollWheel(S32 x, S32 y, S32 clicks) { return childrenHandleMouseEvent(&LLView::handleScrollWheel, x, y, clicks); } -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()); - - if (viewp->handleHover(local_x, local_y, mask) - || viewp->blockMouseEvent(local_x, local_y)) - { - viewp->logMouseEvent(); - return viewp; - } - } - return NULL; -} - -template -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; -} - // Called during downward traversal LLView* LLView::childrenHandleKey(KEY key, MASK mask) { -- cgit v1.2.3 From f7a6ed85e40f53e5e28868bf34ac4dbc9bb204fb Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 25 Aug 2011 14:40:53 -0400 Subject: CHOP-763: Add LLView::TemporaryDrilldownFunc to support UI injection. Instead of unconditionally calling LLView::pointInView(), LLView::visibleAndContains() now consults a class-static boost::function called sDrilldown -- which is initialized to LLView::pointInView(). Introduce LLView::TemporaryDrilldownFunc, instantiated with a callable whose signature is compatible with LLView::pointInView(). This replaces sDrilldown, but only for the life of the TemporaryDrilldownFunc object. Introduce llview::TargetEvent, an object intended to serve as a TemporaryDrilldownFunc callable. Construct it with a desired target LLView* and pass it to TemporaryDrilldownFunc. When called with each candidate child LLView*, instead of selecting the one containing the particular (x, y) point, it selects the one that will lead to the ultimate desired target LLView*. Add optional 'recur' param to LLView::childFromPoint(); default is current one-level behavior. But when you pass recur=true, it should return the frontmost visible leaf LLView containing the passed (x, y) point. --- indra/llui/CMakeLists.txt | 2 ++ indra/llui/llview.cpp | 18 ++++++++++++--- indra/llui/llview.h | 31 ++++++++++++++++++++++++- indra/llui/llviewinject.cpp | 49 +++++++++++++++++++++++++++++++++++++++ indra/llui/llviewinject.h | 56 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 152 insertions(+), 4 deletions(-) create mode 100644 indra/llui/llviewinject.cpp create mode 100644 indra/llui/llviewinject.h diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt index 0bbdcfd6ff..9419f24809 100644 --- a/indra/llui/CMakeLists.txt +++ b/indra/llui/CMakeLists.txt @@ -111,6 +111,7 @@ set(llui_SOURCE_FILES llurlmatch.cpp llurlregistry.cpp llviewborder.cpp + llviewinject.cpp llviewmodel.cpp llview.cpp llviewquery.cpp @@ -214,6 +215,7 @@ set(llui_HEADER_FILES llurlmatch.h llurlregistry.h llviewborder.h + llviewinject.h llviewmodel.h llview.h llviewquery.h diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 6d0bd4d520..56b09791a4 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include "llrender.h" #include "llevent.h" @@ -67,6 +68,8 @@ S32 LLView::sLastLeftXML = S32_MIN; S32 LLView::sLastBottomXML = S32_MIN; std::vector 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; @@ -645,7 +648,7 @@ void LLView::onMouseLeave(S32 x, S32 y, MASK mask) bool LLView::visibleAndContains(S32 local_x, S32 local_y) { - return pointInView(local_x, local_y) + return sDrilldown(this, local_x, local_y) && getVisible(); } @@ -789,10 +792,11 @@ LLView* LLView::childrenHandleHover(S32 x, S32 y, MASK mask) return NULL; } -LLView* LLView::childFromPoint(S32 x, S32 y) +LLView* LLView::childFromPoint(S32 x, S32 y, bool recur) { - if (!getVisible() ) + if (!getVisible()) return false; + BOOST_FOREACH(LLView* viewp, mChildList) { S32 local_x = x - viewp->getRect().mLeft; @@ -801,6 +805,14 @@ LLView* LLView::childFromPoint(S32 x, S32 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) + { + return viewp->childFromPoint(local_x, local_y, recur); + } return viewp; } diff --git a/indra/llui/llview.h b/indra/llui/llview.h index daea46d330..67634938fb 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -50,6 +50,7 @@ #include "llfocusmgr.h" #include +#include class LLSD; @@ -437,7 +438,7 @@ public: /*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); @@ -599,7 +600,35 @@ private: LLView& getDefaultWidgetContainer() const; + // This allows special mouse-event targeting logic for testing. + typedef boost::function 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: + 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 0000000000..46c5839f8e --- /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 0000000000..0de3d155c4 --- /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 + +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 ChildMap; + ChildMap mChildMap; + }; + +} // llview namespace + +#endif /* ! defined(LL_LLVIEWINJECT_H) */ -- cgit v1.2.3 From 79f14b7febf512e96a7d63eff8e6db895a7e72cf Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 25 Aug 2011 14:54:38 -0400 Subject: CHOP-763: Move llwindowlistener.{h,cpp} from llwindow to newview. Instantiate LLWindowListener on LLViewerWindow instead of on LLWindow. This permits LLWindowListener to use machinery from llui, e.g. LLUI::resolvePath(). Document planned new ["path"], ["reply"] params to "keyDown", "keyUp", "mouseDown", "mouseUp", "mouseMove" operations; document relationship between ["path"] and ["x"] and ["y"]. NEW PARAMS NOT YET IMPLEMENTED. --- indra/llwindow/CMakeLists.txt | 2 - indra/llwindow/llwindow.cpp | 9 -- indra/llwindow/llwindow.h | 2 - indra/llwindow/llwindowlistener.cpp | 234 ---------------------------------- indra/llwindow/llwindowlistener.h | 55 -------- indra/newview/CMakeLists.txt | 2 + indra/newview/llviewerwindow.cpp | 9 +- indra/newview/llviewerwindow.h | 4 +- indra/newview/llwindowlistener.cpp | 247 ++++++++++++++++++++++++++++++++++++ indra/newview/llwindowlistener.h | 55 ++++++++ 10 files changed, 315 insertions(+), 304 deletions(-) delete mode 100644 indra/llwindow/llwindowlistener.cpp delete mode 100644 indra/llwindow/llwindowlistener.h create mode 100644 indra/newview/llwindowlistener.cpp create mode 100644 indra/newview/llwindowlistener.h diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt index 3d89867bc1..341bddfffd 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 71a5df910d..dc3a1099b1 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 // @@ -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 6bdc01ae88..e8a86a1880 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 @@ protected: 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 006aaa75e7..0000000000 --- a/indra/llwindow/llwindowlistener.cpp +++ /dev/null @@ -1,234 +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 - -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 string from any addKeyName() call in\n" - "http://hg.secondlife.com/viewer-development/src/tip/indra/llwindow/llkeyboard.cpp )"; - 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 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 -class StringLookup -{ -private: - std::string mDesc; - typedef std::map 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)); - } -}; - -// helper for getMask() -static 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; - } -} - -static 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; -} - -static 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]); - } -} - -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 -{ - WhichButton(): StringLookup("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/llwindow/llwindowlistener.h b/indra/llwindow/llwindowlistener.h deleted file mode 100644 index 74e577ff93..0000000000 --- a/indra/llwindow/llwindowlistener.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - * @file llwindowlistener.h - * @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$ - */ - -#ifndef LL_LLWINDOWLISTENER_H -#define LL_LLWINDOWLISTENER_H - -#include "lleventapi.h" -#include - -class LLKeyboard; -class LLWindowCallbacks; - -class LLWindowListener : public LLEventAPI -{ -public: - typedef boost::function KeyboardGetter; - LLWindowListener(LLWindowCallbacks * window, const KeyboardGetter& kbgetter); - - void keyDown(LLSD const & evt); - void keyUp(LLSD const & evt); - void mouseDown(LLSD const & evt); - void mouseUp(LLSD const & evt); - void mouseMove(LLSD const & evt); - void mouseScroll(LLSD const & evt); - -private: - LLWindowCallbacks * mWindow; - KeyboardGetter mKbGetter; -}; - - -#endif // LL_LLWINDOWLISTENER_H diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 935dd2e887..bd080f2ac4 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -599,6 +599,7 @@ set(viewer_SOURCE_FILES llweb.cpp llwebsharing.cpp llwind.cpp + llwindowlistener.cpp llwlanimator.cpp llwldaycycle.cpp llwlhandlers.cpp @@ -1153,6 +1154,7 @@ set(viewer_HEADER_FILES llweb.h llwebsharing.h llwind.h + llwindowlistener.h llwlanimator.h llwldaycycle.h llwlhandlers.h diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 988c4ed1a2..0501b61592 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #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" @@ -1552,7 +1554,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(&LLNotification::getType, "alert")); diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index ff49ed1f62..48599ebb00 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 @@ protected: bool mStatesDirty; U32 mCurrResolutionIndex; - boost::scoped_ptr mViewerWindowListener; + boost::scoped_ptr mWindowListener; + boost::scoped_ptr mViewerWindowListener; protected: static std::string sSnapshotBaseName; diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp new file mode 100644 index 0000000000..e5deaa42cf --- /dev/null +++ b/indra/newview/llwindowlistener.cpp @@ -0,0 +1,247 @@ +/** + * @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 "llui.h" +#include + +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 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("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 +class StringLookup +{ +private: + std::string mDesc; + typedef std::map 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)); + } +}; + +// helper for getMask() +static 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; + } +} + +static 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; +} + +static 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]); + } +} + +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 +{ + WhichButton(): StringLookup("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/newview/llwindowlistener.h b/indra/newview/llwindowlistener.h new file mode 100644 index 0000000000..74e577ff93 --- /dev/null +++ b/indra/newview/llwindowlistener.h @@ -0,0 +1,55 @@ +/** + * @file llwindowlistener.h + * @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$ + */ + +#ifndef LL_LLWINDOWLISTENER_H +#define LL_LLWINDOWLISTENER_H + +#include "lleventapi.h" +#include + +class LLKeyboard; +class LLWindowCallbacks; + +class LLWindowListener : public LLEventAPI +{ +public: + typedef boost::function KeyboardGetter; + LLWindowListener(LLWindowCallbacks * window, const KeyboardGetter& kbgetter); + + void keyDown(LLSD const & evt); + void keyUp(LLSD const & evt); + void mouseDown(LLSD const & evt); + void mouseUp(LLSD const & evt); + void mouseMove(LLSD const & evt); + void mouseScroll(LLSD const & evt); + +private: + LLWindowCallbacks * mWindow; + KeyboardGetter mKbGetter; +}; + + +#endif // LL_LLWINDOWLISTENER_H -- cgit v1.2.3 From 1d31559b30a32c4ebfde7dc2c42baef840be7c4d Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Fri, 26 Aug 2011 15:06:14 -0500 Subject: implement path option for key events. --- indra/newview/llwindowlistener.cpp | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index e5deaa42cf..3d756ef9b9 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -29,9 +29,13 @@ #include "llwindowlistener.h" #include "llcoord.h" +#include "llfocusmgr.h" #include "llkeyboard.h" #include "llwindowcallbacks.h" #include "llui.h" +#include "llview.h" +#include "llviewerwindow.h" +#include "llrootview.h" #include LLWindowListener::LLWindowListener(LLWindowCallbacks *window, const KeyboardGetter& kbgetter) @@ -117,8 +121,10 @@ protected: } }; +namespace { + // helper for getMask() -static MASK lookupMask_(const std::string& maskname) +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. @@ -136,7 +142,7 @@ static MASK lookupMask_(const std::string& maskname) } } -static MASK getMask(const LLSD& event) +MASK getMask(const LLSD& event) { LLSD masknames(event["mask"]); if (! masknames.isArray()) @@ -156,7 +162,7 @@ static MASK getMask(const LLSD& event) return mask; } -static KEY getKEY(const LLSD& event) +KEY getKEY(const LLSD& event) { if (event.has("keysym")) { @@ -176,13 +182,36 @@ static KEY getKEY(const LLSD& event) } } +} // namespace + void LLWindowListener::keyDown(LLSD const & evt) { - mKbGetter()->handleTranslatedKeyDown(getKEY(evt), getMask(evt)); + if (evt.has("path")) + { + LLView * target_view = + LLUI::resolvePath(gViewerWindow->getRootView(), evt["path"]); + if ((target_view != 0) && target_view->isAvailable()) + { + gFocusMgr.setKeyboardFocus(target_view); + KEY key = getKEY(evt); + MASK mask = getMask(evt); + if (!target_view->handleKey(key, mask, true)) target_view->handleUnicodeChar(key, true); + } + else + { + ; // TODO: Don't silently fail if target not available. + } + } + else + { + mKbGetter()->handleTranslatedKeyDown(getKEY(evt), getMask(evt)); + } } void LLWindowListener::keyUp(LLSD const & evt) { + if (evt.has("path")) return; // LLView only handles key down. + mKbGetter()->handleTranslatedKeyUp(getKEY(evt), getMask(evt)); } -- cgit v1.2.3 From 34a620523a7f4511c8f008f2e9a9428f41281480 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 29 Aug 2011 13:27:17 -0500 Subject: a better way to inject key events. --- indra/newview/llwindowlistener.cpp | 27 ++++++++++++++++++++++----- indra/newview/llwindowlistener.h | 6 +++--- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index 3d756ef9b9..4cadc8773d 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -35,10 +35,11 @@ #include "llui.h" #include "llview.h" #include "llviewerwindow.h" +#include "llviewerkeyboard.h" #include "llrootview.h" #include -LLWindowListener::LLWindowListener(LLWindowCallbacks *window, const KeyboardGetter& kbgetter) +LLWindowListener::LLWindowListener(LLViewerWindow *window, const KeyboardGetter& kbgetter) : LLEventAPI("LLWindow", "Inject input events into the LLWindow instance"), mWindow(window), mKbGetter(kbgetter) @@ -195,7 +196,8 @@ void LLWindowListener::keyDown(LLSD const & evt) gFocusMgr.setKeyboardFocus(target_view); KEY key = getKEY(evt); MASK mask = getMask(evt); - if (!target_view->handleKey(key, mask, true)) target_view->handleUnicodeChar(key, true); + gViewerKeyboard.handleKey(key, mask, false); + if(key < 0x80) mWindow->handleUnicodeChar(key, mask); } else { @@ -210,9 +212,24 @@ void LLWindowListener::keyDown(LLSD const & evt) void LLWindowListener::keyUp(LLSD const & evt) { - if (evt.has("path")) return; // LLView only handles key down. - - mKbGetter()->handleTranslatedKeyUp(getKEY(evt), getMask(evt)); + if (evt.has("path")) + { + LLView * target_view = + LLUI::resolvePath(gViewerWindow->getRootView(), evt["path"]); + if ((target_view != 0) && target_view->isAvailable()) + { + gFocusMgr.setKeyboardFocus(target_view); + mKbGetter()->handleTranslatedKeyUp(getKEY(evt), getMask(evt)); + } + else + { + ; // TODO: Don't silently fail if target not available. + } + } + else + { + mKbGetter()->handleTranslatedKeyUp(getKEY(evt), getMask(evt)); + } } // for WhichButton diff --git a/indra/newview/llwindowlistener.h b/indra/newview/llwindowlistener.h index 74e577ff93..26adff35ff 100644 --- a/indra/newview/llwindowlistener.h +++ b/indra/newview/llwindowlistener.h @@ -31,13 +31,13 @@ #include class LLKeyboard; -class LLWindowCallbacks; +class LLViewerWindow; class LLWindowListener : public LLEventAPI { public: typedef boost::function KeyboardGetter; - LLWindowListener(LLWindowCallbacks * window, const KeyboardGetter& kbgetter); + LLWindowListener(LLViewerWindow * window, const KeyboardGetter& kbgetter); void keyDown(LLSD const & evt); void keyUp(LLSD const & evt); @@ -47,7 +47,7 @@ public: void mouseScroll(LLSD const & evt); private: - LLWindowCallbacks * mWindow; + LLViewerWindow * mWindow; KeyboardGetter mKbGetter; }; -- cgit v1.2.3 From f08d7fba9f2134a687169d8da478a44bdbe16955 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Mon, 29 Aug 2011 15:57:32 -0400 Subject: CHOP-763: Implement widget-pathname-based routing for mouse events. Send mouseDown(), mouseUp(), mouseMove() through static mouseEvent() helper function. Process new optional ["path"] param, validating corresponding LLView and capturing certain information about it for caller. Synthesize (x, y) pos if need be. Use LLView::TemporaryDrilldownFunc and llview::TargetEvent to temporarily hijack normal LLView mouse-event propagation. Define Response helper class to capture LLSD blob about the current request and ensure it gets sent on return. --- indra/newview/llwindowlistener.cpp | 199 ++++++++++++++++++++++++++++++++++--- 1 file changed, 183 insertions(+), 16 deletions(-) diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index 4cadc8773d..84126b7738 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -34,10 +34,19 @@ #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 #include +#include +#include +#include + +namespace bll = boost::lambda; LLWindowListener::LLWindowListener(LLViewerWindow *window, const KeyboardGetter& kbgetter) : LLEventAPI("LLWindow", "Inject input events into the LLWindow instance"), @@ -233,12 +242,12 @@ void LLWindowListener::keyUp(LLSD const & evt) } // for WhichButton -typedef BOOL (LLWindowCallbacks::*MouseFunc)(LLWindow *, LLCoordGL, MASK); +typedef BOOL (LLWindowCallbacks::*MouseMethod)(LLWindow *, LLCoordGL, MASK); struct Actions { - Actions(const MouseFunc& d, const MouseFunc& u): down(d), up(u), valid(true) {} + Actions(const MouseMethod& d, const MouseMethod& u): down(d), up(u), valid(true) {} Actions(): valid(false) {} - MouseFunc down, up; + MouseMethod down, up; bool valid; }; @@ -256,38 +265,196 @@ struct WhichButton: public StringLookup }; static WhichButton buttons; -static LLCoordGL getPos(const LLSD& event) +struct Response +{ + Response(const LLSD& seed, const LLSD& request, const LLSD::String& replyKey="reply"): + mResp(seed), + mReq(request), + mKey(replyKey) + {} + + ~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 warn(const std::string& warning) + { + LL_WARNS("LLWindowListener") << warning << LL_ENDL; + mResp["warnings"].append(warning); + } + + void error(const std::string& error) + { + // Use LL_WARNS rather than LL_ERROR: we don't want the viewer to shut + // down altogether. + LL_WARNS("LLWindowListener") << error << LL_ENDL; + + mResp["error"] = error; + } + + // set other keys... + LLSD& operator[](const LLSD::String& key) { return mResp[key]; } + + LLSD mResp, mReq; + LLSD::String mKey; +}; + +typedef boost::function MouseFunc; + +static void mouseEvent(const MouseFunc& func, const LLSD& request) { - return LLCoordGL(event["x"].asInteger(), event["y"].asInteger()); + // Ensure we send response + 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 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 << "'")); + return; + } + + // Get info about this LLView* for when we send response. + response["path"] = target->getPathname(); + response["class"] = typeid(*target).name(); + bool visible_chain(target->isInVisibleChain()); + bool enabled_chain(target->isInEnabledChain()); + response["visible"] = target->getVisible(); + response["visible_chain"] = visible_chain; + response["enabled"] = target->getEnabled(); + response["enabled_chain"] = enabled_chain; + response["available"] = target->isAvailable(); + // Don't show caller the LLView's own relative rectangle; that only + // tells its dimensions. Provide actual location on screen. + LLRect rect(target->calcScreenRect()); + response["rect"] = LLSDMap("left", rect.mLeft)("top", rect.mTop)("right", rect.mRight)("bottom", rect.mBottom); + + // 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 (! visible_chain) + { + 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 (! enabled_chain) + { + response.warn(STRINGIZE(request["op"].asString() << " request " + "specified \"path\" not currently enabled: '" + << path << "'")); + } + + if (! has_pos) + { + 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 << ")")); + } + + // 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 '" << frontmost->getPathname() << "'")); + } + + // 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 & evt) +void LLWindowListener::mouseDown(LLSD const & request) { - Actions actions(buttons.lookup(evt["button"])); + Actions actions(buttons.lookup(request["button"])); if (actions.valid) { - (mWindow->*(actions.down))(NULL, getPos(evt), getMask(evt)); + // 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(NULL), bll::_1, bll::_2), + request); } } -void LLWindowListener::mouseUp(LLSD const & evt) +void LLWindowListener::mouseUp(LLSD const & request) { - Actions actions(buttons.lookup(evt["button"])); + Actions actions(buttons.lookup(request["button"])); if (actions.valid) { - (mWindow->*(actions.up))(NULL, getPos(evt), getMask(evt)); + mouseEvent(bll::bind(actions.up, mWindow, + static_cast(NULL), bll::_1, bll::_2), + request); } } -void LLWindowListener::mouseMove(LLSD const & evt) +void LLWindowListener::mouseMove(LLSD const & request) { - mWindow->handleMouseMove(NULL, getPos(evt), getMask(evt)); + // 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(NULL), bll::_1, bll::_2), + true), + request); } -void LLWindowListener::mouseScroll(LLSD const & evt) +void LLWindowListener::mouseScroll(LLSD const & request) { - S32 clicks = evt["clicks"].asInteger(); + S32 clicks = request["clicks"].asInteger(); mWindow->handleScrollWheel(NULL, clicks); } - -- cgit v1.2.3 From 5fb224bb8196e77259bef2a0ef60e82533c358a2 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Tue, 30 Aug 2011 09:52:25 -0400 Subject: CHOP-763: make sendReply() treat replyKey as optional. It's not worth bothering to tweak reply LLSD or attempt to send it if the incoming request has no replyKey, in effect not requesting a reply. This supports LLEventAPI operations for which the caller might or might not care about a reply, invoked using either send() (fire and forget) or request() (send request, wait for response). This logic should be central, instead of having to perform that test in every caller that cares. The major alternative would have been to treat missing replyKey as an error (whether LL_ERRS or exception). But since there's already a mechanism by which an LLEventAPI operation method can stipulate its replyKey as required, at this level we can let it be optional. --- indra/llcommon/llevents.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/indra/llcommon/llevents.cpp b/indra/llcommon/llevents.cpp index ff03506e84..db1ea4792b 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 -- cgit v1.2.3 From 6e8ba7e1179c0ac8c3a085e010992ea91fb15114 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Tue, 30 Aug 2011 09:53:43 -0400 Subject: CHOP-763: Introduce LLView::getPathname(). --- indra/llui/llview.cpp | 19 +++++++++++++++++++ indra/llui/llview.h | 1 + 2 files changed, 20 insertions(+) diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 56b09791a4..474b568a87 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -31,6 +31,7 @@ #include "llview.h" #include +#include #include #include #include @@ -430,6 +431,24 @@ BOOL LLView::isInEnabledChain() const return enabled; } +static void buildPathname(std::ostream& out, const LLView* view) +{ + if (view) + { + // While we're not yet at root level, keep recurring towards top + 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(); +} + // virtual BOOL LLView::canFocusChildren() const { diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 67634938fb..11f25bcd7f 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -444,6 +444,7 @@ public: virtual void onMouseEnter(S32 x, S32 y, MASK mask); virtual void onMouseLeave(S32 x, S32 y, MASK mask); + std::string getPathname() const; template T* findChild(const std::string& name, BOOL recurse = TRUE) const { -- cgit v1.2.3 From 12dbf4c7b4a7bf64acaa7207c8bceffb64f021b3 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Tue, 30 Aug 2011 11:30:51 -0400 Subject: CHOP-763: Add Windows magic precompiled header #include. --- indra/newview/llwindowlistener.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index 84126b7738..8d794e5380 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -24,6 +24,7 @@ * $/LicenseInfo$ */ +#include "llviewerprecompiledheaders.h" #include "linden_common.h" #include "llwindowlistener.h" -- cgit v1.2.3 From f08de06bf223c9876bd7495e36f61b19022938a7 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Tue, 30 Aug 2011 13:30:18 -0500 Subject: fix crash bug; exclude root from path. --- indra/llui/llview.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 474b568a87..0c8e3bace4 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -433,13 +433,20 @@ BOOL LLView::isInEnabledChain() const static void buildPathname(std::ostream& out, const LLView* view) { - if (view) + if (view == 0) return; + + if (view->getParent() != 0) { - // While we're not yet at root level, keep recurring towards top buildPathname(out, view->getParent()); + + // Build pathname into ostream on the way back from recursion. + out << '/' << view->getName(); } - // Build pathname into ostream on the way back from recursion. - out << '/' << view->getName(); + else + { + ; // Don't include root in the path. + } + } std::string LLView::getPathname() const -- cgit v1.2.3 From 713aa42f61d6d5791b26f56a73bd7cf7abb76f0d Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Tue, 30 Aug 2011 13:37:10 -0500 Subject: add responses to key events. --- indra/newview/llwindowlistener.cpp | 142 ++++++++++++++++++++++--------------- 1 file changed, 85 insertions(+), 57 deletions(-) diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index 8d794e5380..84a490f661 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -134,6 +134,57 @@ protected: namespace { +class Response +{ +public: + Response(const LLSD& seed, const LLSD& request, const LLSD::String& replyKey="reply"): + mResp(seed), + mReq(request), + mKey(replyKey) + {} + + ~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 warn(const std::string& warning) + { + LL_WARNS("LLWindowListener") << warning << LL_ENDL; + mResp["warnings"].append(warning); + } + + void error(const std::string& error) + { + // Use LL_WARNS rather than LL_ERROR: we don't want the viewer to shut + // down altogether. + LL_WARNS("LLWindowListener") << error << LL_ENDL; + + mResp["error"] = error; + } + + // set other keys... + LLSD& operator[](const LLSD::String& key) { return mResp[key]; } + + LLSD mResp, mReq; + LLSD::String mKey; +}; + +void insertViewInformation(Response & response, LLView * target) +{ + // Get info about this LLView* for when we send response. + response["path"] = target->getPathname(); + response["class"] = typeid(*target).name(); + response["visible"] = target->getVisible(); + response["visible_chain"] = target->isInVisibleChain(); + response["enabled"] = target->getEnabled(); + response["enabled_chain"] = target->isInEnabledChain(); + response["available"] = target->isAvailable(); +} + // helper for getMask() MASK lookupMask_(const std::string& maskname) { @@ -197,12 +248,22 @@ KEY getKEY(const LLSD& event) void LLWindowListener::keyDown(LLSD const & evt) { + Response response(LLSD(), evt); + if (evt.has("path")) { + std::string path(evt["path"]); LLView * target_view = - LLUI::resolvePath(gViewerWindow->getRootView(), evt["path"]); - if ((target_view != 0) && target_view->isAvailable()) + LLUI::resolvePath(gViewerWindow->getRootView(), path); + if (target_view == 0) + { + response.error(STRINGIZE(evt["op"].asString() << " request " + "specified invalid \"path\": '" << path << "'")); + } + else if(target_view->isAvailable()) { + insertViewInformation(response, target_view); + gFocusMgr.setKeyboardFocus(target_view); KEY key = getKEY(evt); MASK mask = getMask(evt); @@ -211,7 +272,9 @@ void LLWindowListener::keyDown(LLSD const & evt) } else { - ; // TODO: Don't silently fail if target not available. + response.error(STRINGIZE(evt["op"].asString() << " request " + "element specified byt \"path\": '" << path << "'" + << " is not visible")); } } else @@ -222,18 +285,30 @@ void LLWindowListener::keyDown(LLSD const & 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(gViewerWindow->getRootView(), evt["path"]); - if ((target_view != 0) && target_view->isAvailable()) + LLUI::resolvePath(gViewerWindow->getRootView(), path); + if (target_view == 0 ) + { + response.error(STRINGIZE(evt["op"].asString() << " request " + "specified invalid \"path\": '" << path << "'")); + } + else if (target_view->isAvailable()) { + insertViewInformation(response, target_view); + gFocusMgr.setKeyboardFocus(target_view); mKbGetter()->handleTranslatedKeyUp(getKEY(evt), getMask(evt)); } else { - ; // TODO: Don't silently fail if target not available. + response.error(STRINGIZE(evt["op"].asString() << " request " + "element specified byt \"path\": '" << path << "'" + << " is not visible")); } } else @@ -266,44 +341,6 @@ struct WhichButton: public StringLookup }; static WhichButton buttons; -struct Response -{ - Response(const LLSD& seed, const LLSD& request, const LLSD::String& replyKey="reply"): - mResp(seed), - mReq(request), - mKey(replyKey) - {} - - ~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 warn(const std::string& warning) - { - LL_WARNS("LLWindowListener") << warning << LL_ENDL; - mResp["warnings"].append(warning); - } - - void error(const std::string& error) - { - // Use LL_WARNS rather than LL_ERROR: we don't want the viewer to shut - // down altogether. - LL_WARNS("LLWindowListener") << error << LL_ENDL; - - mResp["error"] = error; - } - - // set other keys... - LLSD& operator[](const LLSD::String& key) { return mResp[key]; } - - LLSD mResp, mReq; - LLSD::String mKey; -}; - typedef boost::function MouseFunc; static void mouseEvent(const MouseFunc& func, const LLSD& request) @@ -340,19 +377,10 @@ static void mouseEvent(const MouseFunc& func, const LLSD& request) { return response.error(STRINGIZE(request["op"].asString() << " request " "specified invalid \"path\": '" << path << "'")); - return; } - // Get info about this LLView* for when we send response. - response["path"] = target->getPathname(); - response["class"] = typeid(*target).name(); - bool visible_chain(target->isInVisibleChain()); - bool enabled_chain(target->isInEnabledChain()); - response["visible"] = target->getVisible(); - response["visible_chain"] = visible_chain; - response["enabled"] = target->getEnabled(); - response["enabled_chain"] = enabled_chain; - response["available"] = target->isAvailable(); + insertViewInformation(response, target); + // Don't show caller the LLView's own relative rectangle; that only // tells its dimensions. Provide actual location on screen. LLRect rect(target->calcScreenRect()); @@ -360,7 +388,7 @@ static void mouseEvent(const MouseFunc& func, const LLSD& request) // 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 (! visible_chain) + if (! target->isInVisibleChain()) { return response.error(STRINGIZE(request["op"].asString() << " request " "specified \"path\" not currently visible: '" @@ -369,7 +397,7 @@ static void mouseEvent(const MouseFunc& func, const LLSD& request) // 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 (! enabled_chain) + if (! target->isInEnabledChain()) { response.warn(STRINGIZE(request["op"].asString() << " request " "specified \"path\" not currently enabled: '" -- cgit v1.2.3 From 71aec7439c1a8027880ac06d99f923ab8fa7111b Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Tue, 30 Aug 2011 15:22:44 -0400 Subject: CHOP-763: Introduce static LLView::getPathname(LLView*). Use it for LLWindowListener to safely report an LLView* which might be NULL. --- indra/llui/llview.cpp | 27 ++++++++++++++++----------- indra/llui/llview.h | 2 ++ indra/newview/llwindowlistener.cpp | 4 ++-- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 0c8e3bace4..77abb1c6bf 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -433,20 +433,15 @@ BOOL LLView::isInEnabledChain() const static void buildPathname(std::ostream& out, const LLView* view) { - if (view == 0) return; - - if (view->getParent() != 0) + if (! (view && view->getParent())) { - buildPathname(out, view->getParent()); - - // Build pathname into ostream on the way back from recursion. - out << '/' << view->getName(); - } - else - { - ; // Don't include root in the path. + 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 @@ -456,6 +451,16 @@ std::string LLView::getPathname() const return out.str(); } +//static +std::string LLView::getPathname(const LLView* view) +{ + if (! view) + { + return "NULL"; + } + return view->getPathname(); +} + // virtual BOOL LLView::canFocusChildren() const { diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 11f25bcd7f..97151c4fb4 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -445,6 +445,8 @@ public: 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 T* findChild(const std::string& name, BOOL recurse = TRUE) const { diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index 84a490f661..05cb798732 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -273,7 +273,7 @@ void LLWindowListener::keyDown(LLSD const & evt) else { response.error(STRINGIZE(evt["op"].asString() << " request " - "element specified byt \"path\": '" << path << "'" + "element specified by \"path\": '" << path << "'" << " is not visible")); } } @@ -421,7 +421,7 @@ static void mouseEvent(const MouseFunc& func, const LLSD& request) response.warn(STRINGIZE(request["op"].asString() << " request " "specified \"path\" = '" << path << "', but frontmost LLView at (" << pos.mX << ", " << pos.mY - << ") is '" << frontmost->getPathname() << "'")); + << ") is '" << LLView::getPathname(frontmost) << "'")); } // Instantiate a TemporaryDrilldownFunc to route incoming mouse events -- cgit v1.2.3 From 54399f1f87af40633035df9ec1cbadf139844621 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 1 Sep 2011 13:01:08 -0400 Subject: CHOP-763: publish LLControlGroup::typeStringToEnum(), typeEnumToString() These LLControlGroup methods were marked 'protected'. But they're important for introspection: LLControlVariable::type() returns an eControlType; understanding that value outside a C++ context requires typeEnumToString(). --- indra/llxml/llcontrol.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/llxml/llcontrol.h b/indra/llxml/llcontrol.h index e402061e1f..31eb59c16e 100644 --- a/indra/llxml/llcontrol.h +++ b/indra/llxml/llcontrol.h @@ -185,9 +185,10 @@ protected: 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(); -- cgit v1.2.3 From 3ddf3aef9b2f2bb85932bd33b9daac5e59d3018a Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 1 Sep 2011 13:12:23 -0400 Subject: CHOP-763: Promote Response class from llwindowlistener.cpp to LLEventAPI. This is a generally-useful idiom, extending the sendReply() convenience function -- it shouldn't remain buried in a single .cpp file. --- indra/llcommon/lleventapi.cpp | 30 +++++++++++++++ indra/llcommon/lleventapi.h | 78 ++++++++++++++++++++++++++++++++++++++ indra/newview/llwindowlistener.cpp | 43 +-------------------- 3 files changed, 110 insertions(+), 41 deletions(-) diff --git a/indra/llcommon/lleventapi.cpp b/indra/llcommon/lleventapi.cpp index 4270c8b511..ff5459c1eb 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 d75d521e8e..332dee9550 100644 --- a/indra/llcommon/lleventapi.h +++ b/indra/llcommon/lleventapi.h @@ -76,6 +76,84 @@ public: 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 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 (! + * request.has(replyKey)), 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]; } + + LLSD mResp, mReq; + LLSD::String mKey; + }; + private: std::string mDesc; }; diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index 05cb798732..3e3287032c 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -134,46 +134,7 @@ protected: namespace { -class Response -{ -public: - Response(const LLSD& seed, const LLSD& request, const LLSD::String& replyKey="reply"): - mResp(seed), - mReq(request), - mKey(replyKey) - {} - - ~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 warn(const std::string& warning) - { - LL_WARNS("LLWindowListener") << warning << LL_ENDL; - mResp["warnings"].append(warning); - } - - void error(const std::string& error) - { - // Use LL_WARNS rather than LL_ERROR: we don't want the viewer to shut - // down altogether. - LL_WARNS("LLWindowListener") << error << LL_ENDL; - - mResp["error"] = error; - } - - // set other keys... - LLSD& operator[](const LLSD::String& key) { return mResp[key]; } - - LLSD mResp, mReq; - LLSD::String mKey; -}; - -void insertViewInformation(Response & response, LLView * target) +void insertViewInformation(LLEventAPI::Response & response, LLView * target) { // Get info about this LLView* for when we send response. response["path"] = target->getPathname(); @@ -346,7 +307,7 @@ typedef boost::function MouseFunc; static void mouseEvent(const MouseFunc& func, const LLSD& request) { // Ensure we send response - Response response(LLSD(), request); + 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()); -- cgit v1.2.3 From 7215d1a9a9e6220d8744b662ab96feb41fc66ec8 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 1 Sep 2011 14:05:37 -0400 Subject: CHOP-763: Extend LLEventAPI "LLViewerControl" API; add queries. This is a significant refactoring of planned (but as yet unimplemented) work, though in fact it's almost completely compatible with the only implemented operation. The set() operation now requires op="set", where before that was inferred because set() was the only possibility. Whereas before LLViewerControlListener dispatched to different bound methods on the "group" key, with four known "group" string values, it now dispatches on the "op" key, supporting "set", "toggle", "get", "groups", "vars" -- the last two exposing query functionality. LLControlGroup is actually derived from LLInstanceTracker, keyed on string names, so we can look up instances using LLControlGroup::getInstance(const std::string&), or enumerate all such names. LLControlGroup similarly permits iterating over all defined LLControlVariables. The static LLViewerControlListener instance has been wrapped in an unnamed namespace and removed from llviewercontrollistener.h. The availability of the API depends on LLEventPumps::obtain(), rather than normal C++ visibility. --- indra/newview/llviewercontrollistener.cpp | 231 +++++++++++++++++++++--------- indra/newview/llviewercontrollistener.h | 10 +- 2 files changed, 169 insertions(+), 72 deletions(-) diff --git a/indra/newview/llviewercontrollistener.cpp b/indra/newview/llviewercontrollistener.cpp index 8bc25fa281..361b96221c 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 -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 fd211b97af..2e72046924 100644 --- a/indra/newview/llviewercontrollistener.h +++ b/indra/newview/llviewercontrollistener.h @@ -40,11 +40,11 @@ public: 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 -- cgit v1.2.3 From 654cd3f89786e5c19cf26472ccf5a402a22ea661 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Sun, 4 Sep 2011 07:08:23 -0400 Subject: CHOP-763: Make LLView::TemporaryDrilldownFunc boost::noncopyable. Code review with Alain turned up the fact that TemporaryDrilldownFunc, simple to the point of naivety, doesn't address the case of its being copied. Making it boost::noncopyable should turn any such usage into a compile error. --- indra/llui/llview.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 97151c4fb4..fcae75c447 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -51,6 +51,7 @@ #include #include +#include class LLSD; @@ -614,7 +615,7 @@ public: // LLView::TemporaryDrilldownFunc scoped_func(myfunctor); // // ... test with myfunctor ... // } // exiting block restores original LLView::sDrilldown - class TemporaryDrilldownFunc + class TemporaryDrilldownFunc: public boost::noncopyable { public: TemporaryDrilldownFunc(const DrilldownFunc& func): -- cgit v1.2.3 From ecba41419f6470cc3d85bbb277ef88ebbf266feb Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Tue, 6 Sep 2011 13:25:27 -0400 Subject: CHOP-763: Nested LLEventAPI::Response class needs LL_COMMON_API too. Apparently the outer class's LL_COMMON_API marker affects all outer class members, but not nested classes. Making it explicit fixes Windows link errors. --- indra/llcommon/lleventapi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/llcommon/lleventapi.h b/indra/llcommon/lleventapi.h index 332dee9550..64d038ade4 100644 --- a/indra/llcommon/lleventapi.h +++ b/indra/llcommon/lleventapi.h @@ -95,7 +95,7 @@ public: * } * @endcode */ - class Response + class LL_COMMON_API Response { public: /** -- cgit v1.2.3 From 7a47afc89cd0aec9eeb5eeaaa256ecf890036432 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Wed, 7 Sep 2011 14:36:39 -0500 Subject: add getInfo command to get state information about a ui element --- indra/newview/llwindowlistener.cpp | 30 ++++++++++++++++++++++++++++++ indra/newview/llwindowlistener.h | 1 + 2 files changed, 31 insertions(+) diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index 05cb798732..eb44a702a4 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -82,6 +82,7 @@ LLWindowListener::LLWindowListener(LLViewerWindow *window, const KeyboardGetter& "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); add("keyDown", keySomething + "keypress event.\n" + keyExplain + mask, &LLWindowListener::keyDown); @@ -246,6 +247,35 @@ KEY getKEY(const LLSD& event) } // 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(gViewerWindow->getRootView(), path); + if (target_view != 0) + { + insertViewInformation(response, target_view); + LLRect rect(target_view->calcScreenRect()); + response["rect"] = LLSDMap("left", rect.mLeft)("top", rect.mTop) + ("right", rect.mRight)("bottom", rect.mBottom); + } + 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::keyDown(LLSD const & evt) { Response response(LLSD(), evt); diff --git a/indra/newview/llwindowlistener.h b/indra/newview/llwindowlistener.h index 26adff35ff..29c3575258 100644 --- a/indra/newview/llwindowlistener.h +++ b/indra/newview/llwindowlistener.h @@ -39,6 +39,7 @@ public: typedef boost::function KeyboardGetter; LLWindowListener(LLViewerWindow * window, const KeyboardGetter& kbgetter); + void getInfo(LLSD const & evt); void keyDown(LLSD const & evt); void keyUp(LLSD const & evt); void mouseDown(LLSD const & evt); -- cgit v1.2.3 From 2d19a2002501d44ce18080b6f26ceaf2dbf796e9 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Thu, 8 Sep 2011 09:46:04 -0500 Subject: add getInfo to LLView to get state information about ui elements. --- indra/llcommon/lleventapi.h | 5 +++++ indra/llui/lluictrl.cpp | 6 ++++++ indra/llui/lluictrl.h | 4 +++- indra/llui/llview.cpp | 22 ++++++++++++++++++++++ indra/llui/llview.h | 6 +++++- indra/newview/llwindowlistener.cpp | 29 +++++------------------------ 6 files changed, 46 insertions(+), 26 deletions(-) diff --git a/indra/llcommon/lleventapi.h b/indra/llcommon/lleventapi.h index 64d038ade4..1a37d780b6 100644 --- a/indra/llcommon/lleventapi.h +++ b/indra/llcommon/lleventapi.h @@ -149,6 +149,11 @@ public: * @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; diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp index d58df5801b..9b9e2ddb55 100644 --- a/indra/llui/lluictrl.cpp +++ b/indra/llui/lluictrl.cpp @@ -1045,3 +1045,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 09bed9b958..8a8b589e9c 100644 --- a/indra/llui/lluictrl.h +++ b/indra/llui/lluictrl.h @@ -301,7 +301,9 @@ protected: 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 a630a03c92..e2b9527cc5 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -47,6 +47,7 @@ #include "v3color.h" #include "lluictrlfactory.h" #include "lltooltip.h" +#include "llsdutil.h" // for ui edit hack #include "llbutton.h" @@ -2606,3 +2607,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 fcae75c447..fe15307a5d 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -516,6 +516,9 @@ public: 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(); @@ -546,7 +549,8 @@ protected: LLView* childrenHandleToolTip(S32 x, S32 y, MASK mask); ECursorType mHoverCursor; - + + virtual void addInfo(LLSD & info); private: template diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index d497964f6c..ac8e981c4e 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -135,18 +135,6 @@ protected: namespace { -void insertViewInformation(LLEventAPI::Response & response, LLView * target) -{ - // Get info about this LLView* for when we send response. - response["path"] = target->getPathname(); - response["class"] = typeid(*target).name(); - response["visible"] = target->getVisible(); - response["visible_chain"] = target->isInVisibleChain(); - response["enabled"] = target->getEnabled(); - response["enabled_chain"] = target->isInEnabledChain(); - response["available"] = target->isAvailable(); -} - // helper for getMask() MASK lookupMask_(const std::string& maskname) { @@ -219,10 +207,7 @@ void LLWindowListener::getInfo(LLSD const & evt) LLUI::resolvePath(gViewerWindow->getRootView(), path); if (target_view != 0) { - insertViewInformation(response, target_view); - LLRect rect(target_view->calcScreenRect()); - response["rect"] = LLSDMap("left", rect.mLeft)("top", rect.mTop) - ("right", rect.mRight)("bottom", rect.mBottom); + response.setResponse(target_view->getInfo()); } else { @@ -253,7 +238,7 @@ void LLWindowListener::keyDown(LLSD const & evt) } else if(target_view->isAvailable()) { - insertViewInformation(response, target_view); + response.setResponse(target_view->getInfo()); gFocusMgr.setKeyboardFocus(target_view); KEY key = getKEY(evt); @@ -290,7 +275,7 @@ void LLWindowListener::keyUp(LLSD const & evt) } else if (target_view->isAvailable()) { - insertViewInformation(response, target_view); + response.setResponse(target_view->getInfo()); gFocusMgr.setKeyboardFocus(target_view); mKbGetter()->handleTranslatedKeyUp(getKEY(evt), getMask(evt)); @@ -370,12 +355,7 @@ static void mouseEvent(const MouseFunc& func, const LLSD& request) "specified invalid \"path\": '" << path << "'")); } - insertViewInformation(response, target); - - // Don't show caller the LLView's own relative rectangle; that only - // tells its dimensions. Provide actual location on screen. - LLRect rect(target->calcScreenRect()); - response["rect"] = LLSDMap("left", rect.mLeft)("top", rect.mTop)("right", rect.mRight)("bottom", rect.mBottom); + 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. @@ -397,6 +377,7 @@ static void mouseEvent(const MouseFunc& func, const LLSD& request) 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? -- cgit v1.2.3 From 3958c5fe71595cf925c6de0e3d2283a98d125a43 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Mon, 12 Sep 2011 12:10:46 -0400 Subject: make script executable --- scripts/gpu_table_tester | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 scripts/gpu_table_tester diff --git a/scripts/gpu_table_tester b/scripts/gpu_table_tester old mode 100644 new mode 100755 -- cgit v1.2.3 From 6c253482a610ae98dfd900c29d6c6ee12708b17e Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Mon, 12 Sep 2011 16:27:58 -0400 Subject: VWR-25897: remove regexp subexpressions that cause backtracking (recursion) without changing what is recognized --- indra/newview/gpu_table.txt | 188 ++++++++++++++++++++++---------------------- 1 file changed, 94 insertions(+), 94 deletions(-) diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index 6ed4e3b7f7..80d193d2a7 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -205,20 +205,20 @@ 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 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 +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|ANTILLES).* 3 1 AMD BARTS (HD 6800) .*(AMD|ATI).*(Barts|BARTS).* 3 1 AMD CAICOS (HD 6400) .*(AMD|ATI).*(Caicos|CAICOS).* 3 1 @@ -230,20 +230,20 @@ 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 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 @@ -255,7 +255,7 @@ 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 R300 (9700) .*R300.* 1 1 ATI Radeon .*ATI.*Radeon.* 0 1 Intel X3100 .*Intel.*X3100.* 0 1 Intel 830M .*Intel.*830M 0 0 @@ -311,70 +311,70 @@ 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 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 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 GeForce .*GeForce 256.* 0 0 NVIDIA GeForce 2 .*GeForce ?2 ?.* 0 1 NVIDIA GeForce 3 .*GeForce ?3 ?.* 0 1 @@ -477,10 +477,10 @@ NVIDIA nForce .*NVIDIA *nForce.* 0 0 NVIDIA MCP78 .*NVIDIA *MCP78.* 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 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 -- cgit v1.2.3 From 993dff2ea01c7b11ea7cfc0bffa66adac2a70f82 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Mon, 12 Sep 2011 23:06:43 -0400 Subject: Fix new LLView::childFromPoint(recur=true) behavior: was always NULL. The recursive logic always used to recur to the point where there were no children -- where the next level of recursion returned NULL -- and then return that NULL. Fix so when that lowest-level call returns NULL, we return one level above that. --- indra/llui/llview.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index e2b9527cc5..f457ff1052 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -843,7 +843,12 @@ LLView* LLView::childFromPoint(S32 x, S32 y, bool recur) // top-level child? if (recur) { - return viewp->childFromPoint(local_x, local_y, 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; -- cgit v1.2.3 From 74c8c5c6aff988ca75753936ca70abad05bf99d3 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Mon, 12 Sep 2011 23:09:51 -0400 Subject: CHOP-763: Turn off simulated-mouse-event childFromPoint() warnings. Initial implementation of "LLWindow" operations "mouseDown" etc. would always produce a warning in the response to the effect that the target LLView wasn't frontmost. These warnings were spurious; conversation with Richard makes it seem unlikely that the warning can be made real. Suppressing. --- indra/newview/llwindowlistener.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index ac8e981c4e..6b3ae98ffc 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -385,6 +385,11 @@ static void mouseEvent(const MouseFunc& func, const LLSD& request) << 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); @@ -395,6 +400,7 @@ static void mouseEvent(const MouseFunc& func, const LLSD& request) << "', 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 -- cgit v1.2.3 From b937096c4eb9580fbeea9573acd4736f46da04b8 Mon Sep 17 00:00:00 2001 From: "Tank@Tank_PC.ftrdhcpuser.net" Date: Mon, 12 Sep 2011 23:57:49 -0700 Subject: Fix typo in textures.xml --- indra/newview/skins/default/textures/textures.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 799cd907dc..6360b8cb5a 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -119,7 +119,7 @@ with the same filename but different name - + -- cgit v1.2.3 From 5b42f6f25b9b8fa4bc3ccfe37069a447f89c6327 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 13 Sep 2011 10:00:03 -0400 Subject: modify gpu_table_tester to lowercase things the way that the real gpu table parser does --- scripts/gpu_table_tester | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/scripts/gpu_table_tester b/scripts/gpu_table_tester index 52b1c8f31d..2ad7ffc01e 100755 --- a/scripts/gpu_table_tester +++ b/scripts/gpu_table_tester @@ -62,14 +62,14 @@ die "Must specify a --gpu-table 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 @@ -126,7 +126,8 @@ while () if ($errsOnLine == $ErrorsSeen) # no errors found on this line { - push @InOrder,$regex; + $lcregex = $regex; # the real gpu table parser lowercases each recognizer + push @InOrder,$lcregex; $NameLine{$name} = $INPUT_LINE_NUMBER; $RecognizerLine{$regex} = $INPUT_LINE_NUMBER; $Name{$regex} = $name; @@ -142,10 +143,13 @@ print STDERR "\n" if $ErrorsSeen; exit $ErrorsSeen if $TableOnly; + my %RecognizedBy; -while (<>) +while (<>) # Loop over input lines { chomp; + my $lowerInput = $_; + lc lowerInput; # the real gpu table parser lowercases the input string my $recognizer; $RecognizedBy{$_} = 'UNRECOGNIZED'; foreach $recognizer ( @InOrder ) # note early exit if recognized -- cgit v1.2.3 From 0665d3f2e65b75db55134b5ad3fc1c8182b05f9e Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 13 Sep 2011 10:51:31 -0400 Subject: lowercase gpu string and recognizers in gpu_table_tester to match the behavior of the real code --- indra/newview/tests/gpus_results.txt | 14 +++++++------- scripts/gpu_table_tester | 9 ++++----- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt index 7e9a064921..280952e7c5 100644 --- a/indra/newview/tests/gpus_results.txt +++ b/indra/newview/tests/gpus_results.txt @@ -26,7 +26,7 @@ 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 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 @@ -502,9 +502,9 @@ 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 Mobility Radeon Xxxx +ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86/SSE2 supported 0 ATI Mobility Radeon Xxxx 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 @@ -1453,9 +1453,9 @@ NVIDIA RIVA TNT NVIDIA RIVA TNT2/AGP/SSE2 unsupported 0 NVIDIA RIVA TNT NVIDIA RIVA TNT2/PCI/3DNOW! unsupported 0 NVIDIA RIVA TNT NVIDIA nForce unsupported 0 NVIDIA nForce -NVIDIA unknown board/AGP/SSE2 UNRECOGNIZED -NVIDIA unknown board/PCI/SSE2 UNRECOGNIZED -NVIDIA unknown board/PCI/SSE2/3DNOW! UNRECOGNIZED +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 diff --git a/scripts/gpu_table_tester b/scripts/gpu_table_tester index 2ad7ffc01e..4edf649994 100755 --- a/scripts/gpu_table_tester +++ b/scripts/gpu_table_tester @@ -126,8 +126,7 @@ while () if ($errsOnLine == $ErrorsSeen) # no errors found on this line { - $lcregex = $regex; # the real gpu table parser lowercases each recognizer - push @InOrder,$lcregex; + push @InOrder,$regex; $NameLine{$name} = $INPUT_LINE_NUMBER; $RecognizerLine{$regex} = $INPUT_LINE_NUMBER; $Name{$regex} = $name; @@ -148,13 +147,13 @@ my %RecognizedBy; while (<>) # Loop over input lines { chomp; - my $lowerInput = $_; - lc lowerInput; # the real gpu table parser lowercases the input string + my $lcInput = lc $_; # the real gpu table parser lowercases the input string my $recognizer; $RecognizedBy{$_} = 'UNRECOGNIZED'; 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 -- cgit v1.2.3 From d982b33f708181b7d1007c5a993445a054f0cc16 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 13 Sep 2011 11:20:16 -0400 Subject: simplify recognizers in gpu table that used alternation just for case differences (document that these are not needed) --- indra/newview/gpu_table.txt | 272 ++++++++++++++++++----------------- indra/newview/tests/gpus_results.txt | 2 +- 2 files changed, 139 insertions(+), 135 deletions(-) diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index 80d193d2a7..9dad3fe762 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 -// +// Fields are separated by one or more tab (not space) characters +// // // 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,7 @@ 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 A9xxx .*ATI.*ASUS.*A9.* 1 1 ATI ASUS AH24xx .*ATI.*ASUS.*AH24.* 1 1 ATI ASUS AH26xx .*ATI.*ASUS.*AH26.* 3 1 @@ -85,125 +89,125 @@ 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 Mobility Radeon 4100 .*ATI.*Mobility.*41.* 0 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.* 2 1 +ATI Mobility Radeon HD 5300 .*ATI.*Mobility.*HD *53.* 2 1 +ATI Mobility Radeon HD 5400 .*ATI.*Mobility.*HD *54.* 2 1 +ATI Mobility Radeon HD 5500 .*ATI.*Mobility.*HD *55.* 2 1 +ATI Mobility Radeon HD 5600 .*ATI.*Mobility.*HD *56.* 2 1 +ATI Mobility Radeon HD 5700 .*ATI.*Mobility.*HD *57.* 3 1 +ATI Mobility Radeon HD 6200 .*ATI.*Mobility.*HD *62.* 2 1 +ATI Mobility Radeon HD 6300 .*ATI.*Mobility.*HD *63.* 2 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 Mobility Radeon X1xxx .*ATI.*Mobility.*X1.* 0 1 +ATI Mobility Radeon X2xxx .*ATI.*Mobility.*X2.* 0 1 +ATI Mobility Radeon X3xx .*ATI.*Mobility.*X3.* 1 1 +ATI Mobility Radeon X6xx .*ATI.*Mobility.*X6.* 1 1 +ATI Mobility Radeon X7xx .*ATI.*Mobility.*X7.* 1 1 +ATI Mobility Radeon Xxxx .*ATI.*Mobility.*X.* 0 1 +ATI Mobility Radeon .*ATI.*Mobility.* 0 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.* 0 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 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.* 2 1 +ATI Radeon HD 6300 .*ATI.*Radeon HD *63.* 2 1 +ATI Radeon HD 6400 .*ATI.*Radeon HD *64.* 3 1 +ATI Radeon HD 6500 .*ATI.*Radeon HD *65.* 3 1 +ATI Radeon HD 66xx .*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 X1000 .*ATI.*Radeon *X10.* 0 1 +ATI Radeon X1200 .*ATI.*Radeon *X12.* 0 1 +ATI Radeon X1300 .*ATI.*Radeon *X13.* 1 1 +ATI Radeon X1400 .*ATI.*Radeon *X14.* 1 1 +ATI Radeon X1500 .*ATI.*Radeon *X15.* 1 1 +ATI Radeon X1600 .*ATI.*Radeon *X16.* 1 1 +ATI Radeon X1700 .*ATI.*Radeon *X17.* 1 1 +ATI Radeon X1800 .*ATI.*Radeon *X18.* 3 1 +ATI Radeon X1900 .*ATI.*Radeon *X19.* 3 1 +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) .*R350.* 1 1 ATI R580 (X1900) .*R580.* 3 1 @@ -219,17 +223,17 @@ 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|ANTILLES).* 3 1 -AMD BARTS (HD 6800) .*(AMD|ATI).*(Barts|BARTS).* 3 1 -AMD CAICOS (HD 6400) .*(AMD|ATI).*(Caicos|CAICOS).* 3 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 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 @@ -246,7 +250,7 @@ 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 +259,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) .*R300.* 1 1 -ATI Radeon .*ATI.*Radeon.* 0 1 +ATI R300 (9700) .*R300.* 1 1 +ATI Radeon .*ATI.*Radeon.* 0 1 Intel X3100 .*Intel.*X3100.* 0 1 Intel 830M .*Intel.*830M 0 0 Intel 845G .*Intel.*845G 0 0 @@ -273,7 +277,7 @@ 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 diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt index 280952e7c5..8723554ee6 100644 --- a/indra/newview/tests/gpus_results.txt +++ b/indra/newview/tests/gpus_results.txt @@ -108,7 +108,7 @@ 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 -- cgit v1.2.3 From 48e1a563abfb64b119c47343d0340c8e14c188d5 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 13 Sep 2011 12:40:37 -0400 Subject: VWR-26622: correct recognition of Intel Mobile 4 Series GPUs --- doc/contributions.txt | 1 + indra/newview/gpu_table.txt | 2 +- indra/newview/tests/gpus_results.txt | 1 + indra/newview/tests/gpus_seen.txt | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/contributions.txt b/doc/contributions.txt index 5930bab04f..94f8110aed 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -1029,6 +1029,7 @@ Synystyr Texan Takeda Terrawyng TankMaster Finesmith STORM-1100 + VWR-26622 Talamasca Tali Rosca Tayra Dagostino diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index 9dad3fe762..86e3bac186 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -283,7 +283,7 @@ 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 diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt index 8723554ee6..39ad5bf695 100644 --- a/indra/newview/tests/gpus_results.txt +++ b/indra/newview/tests/gpus_results.txt @@ -741,6 +741,7 @@ Intel Mobile 4 Series Intel Mobile 4 Series Express Chipset Family supported 0 Intel Mobile 4 Series Intel Mobile 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1) UNRECOGNIZED Intel Mobile HD Graphics supported 2 Intel HD Graphics +Intel Mobile 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 diff --git a/indra/newview/tests/gpus_seen.txt b/indra/newview/tests/gpus_seen.txt index c807f22b58..98b4adcf39 100644 --- a/indra/newview/tests/gpus_seen.txt +++ b/indra/newview/tests/gpus_seen.txt @@ -739,6 +739,7 @@ Intel Mobile 4 Series Intel Mobile 4 Series Express Chipset Family Intel Mobile 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1) Intel Mobile HD Graphics +Intel Mobile Intel(R) 4 Series Express Chipset Family Intel Mobile SandyBridge HD Graphics Intel Montara Intel Pineview -- cgit v1.2.3 From 4d54531716a4ab54f86859a16a50ebb9863e8861 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 13 Sep 2011 12:43:11 -0400 Subject: VWR-26081: improve recognition of Radeon 64xxM series GPUs --- indra/newview/gpu_table.txt | 1 + indra/newview/tests/gpus_results.txt | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index 86e3bac186..5ad00b5252 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -101,6 +101,7 @@ 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 Radeon HD 64xxM .*ATI.*AMD Radeon.* HD [67]4..M 3 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 diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt index 39ad5bf695..2d7df8f0dc 100644 --- a/indra/newview/tests/gpus_results.txt +++ b/indra/newview/tests/gpus_results.txt @@ -156,10 +156,10 @@ ATI Technologies Inc. AMD Radeon HD 6310M 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 6400M Series supported 3 ATI Radeon HD 64xxM 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 6470M supported 3 ATI Radeon HD 64xxM +ATI Technologies Inc. AMD Radeon HD 6490M supported 3 ATI Radeon HD 64xxM 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 @@ -180,7 +180,7 @@ ATI Technologies Inc. AMD Radeon HD 6870M ATI Technologies Inc. AMD Radeon HD 6900 Series supported 3 ATI Radeon HD 6900 ATI Technologies Inc. AMD Radeon HD 6970M supported 3 ATI Radeon HD 6900 ATI Technologies Inc. AMD Radeon HD 6990 supported 3 ATI Radeon HD 6900 -ATI Technologies Inc. AMD Radeon(TM) HD 6470M supported 0 ATI Technologies +ATI Technologies Inc. AMD Radeon(TM) HD 6470M supported 3 ATI Radeon HD 64xxM ATI Technologies Inc. ASUS 5870 Eyefinity 6 supported 0 ATI Technologies ATI Technologies Inc. ASUS AH2600 Series supported 3 ATI ASUS AH26xx ATI Technologies Inc. ASUS AH3450 Series supported 1 ATI ASUS AH34xx -- cgit v1.2.3 From 27222454648eddc04ce1e96ff3ecd7fcf950768b Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Tue, 13 Sep 2011 16:25:36 -0400 Subject: Quiet "may be using uninitialized variable" warnings. --- indra/newview/llviewermessage.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 68745d5aeb..501d371912 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -2854,8 +2854,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; -- cgit v1.2.3 From 773a8e499e3a62043a5247774a4c14cde20b8cd4 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Mon, 19 Sep 2011 22:21:42 -0400 Subject: CHOP-763: Add LLWindowListener::getPaths() operation. Sometimes an LLWindowListener request turns up a bad-LLView-path error, begging the question: under such circumstances, what ARE the valid paths? Introduce a query to answer that question. --- indra/newview/llwindowlistener.cpp | 52 +++++++++++++++++++++++++++++++++----- indra/newview/llwindowlistener.h | 1 + 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index 6b3ae98ffc..28f959eb71 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -82,7 +82,16 @@ LLWindowListener::LLWindowListener(LLViewerWindow *window, const KeyboardGetter& "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); + 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); @@ -203,8 +212,7 @@ void LLWindowListener::getInfo(LLSD const & evt) if (evt.has("path")) { std::string path(evt["path"]); - LLView * target_view = - LLUI::resolvePath(gViewerWindow->getRootView(), path); + LLView * target_view = LLUI::resolvePath(LLUI::getRootView(), path); if (target_view != 0) { response.setResponse(target_view->getInfo()); @@ -222,6 +230,38 @@ void LLWindowListener::getInfo(LLSD const & evt) } } +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); @@ -229,8 +269,7 @@ void LLWindowListener::keyDown(LLSD const & evt) if (evt.has("path")) { std::string path(evt["path"]); - LLView * target_view = - LLUI::resolvePath(gViewerWindow->getRootView(), path); + LLView * target_view = LLUI::resolvePath(LLUI::getRootView(), path); if (target_view == 0) { response.error(STRINGIZE(evt["op"].asString() << " request " @@ -266,8 +305,7 @@ void LLWindowListener::keyUp(LLSD const & evt) if (evt.has("path")) { std::string path(evt["path"]); - LLView * target_view = - LLUI::resolvePath(gViewerWindow->getRootView(), path); + LLView * target_view = LLUI::resolvePath(LLUI::getRootView(), path); if (target_view == 0 ) { response.error(STRINGIZE(evt["op"].asString() << " request " diff --git a/indra/newview/llwindowlistener.h b/indra/newview/llwindowlistener.h index 29c3575258..7af5ab3b9f 100644 --- a/indra/newview/llwindowlistener.h +++ b/indra/newview/llwindowlistener.h @@ -40,6 +40,7 @@ public: 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); -- cgit v1.2.3 From 466b9d7aebff91472ba156b1b9709a42d04e41aa Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Fri, 23 Sep 2011 10:18:01 -0400 Subject: add --diff option to display change report, other minor improvements --- scripts/gpu_table_tester | 131 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 106 insertions(+), 25 deletions(-) diff --git a/scripts/gpu_table_tester b/scripts/gpu_table_tester index 4edf649994..e1e840e2d4 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 - [ --unrecognized-only ] - [ --table-only ] - [ ...] + $MyName {--gpu-table|-g} {--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} [ ... ] + [{--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} {--diff|-d} [ ...] + + With the --diff option, the report compares the current results to , + 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" => \$UnMatchedOnlly + ,"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 value" unless $GpuTable; @@ -71,10 +82,10 @@ my %Class; # recognizer -> class my %Supported; # recognizer -> supported 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 () { @@ -143,13 +154,14 @@ print STDERR "\n" if $ErrorsSeen; exit $ErrorsSeen if $TableOnly; +# Loop over input lines, find the results for each my %RecognizedBy; -while (<>) # Loop over input lines +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 { my $lcRecognizer = lc $recognizer; # the real gpu table parser lowercases the recognizer @@ -161,8 +173,6 @@ while (<>) # Loop over input lines } } -## Print results. -## For each input, show supported or unsupported, the class, and the recognizer name format STDOUT_TOP = GPU String Supported? Class Recognizer ------------------------------------------------------------------------------------------------------ ----------- ----- ------------------------------------ @@ -172,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 ( ) + { + 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; -- cgit v1.2.3 From dc3a4f1c272e806d17369041960a66b89c14aa30 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Fri, 23 Sep 2011 11:05:33 -0400 Subject: Improve recognition of many ATI cards (some changes are reorderings) --- indra/newview/gpu_table.txt | 146 +++++++++++++++++++++----------------------- 1 file changed, 68 insertions(+), 78 deletions(-) diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index 5ad00b5252..21cb988819 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -63,12 +63,16 @@ 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 Display Adapter .*ATI.*display adapter.* 0 1 ATI FireGL 5200 .*ATI.*FireGL V52.* 0 1 ATI FireGL 5xxx .*ATI.*FireGL V5.* 1 1 @@ -78,8 +82,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 @@ -89,7 +94,7 @@ 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.*41.* 0 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 @@ -116,75 +121,69 @@ 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.* 2 1 -ATI Mobility Radeon HD 5300 .*ATI.*Mobility.*HD *53.* 2 1 -ATI Mobility Radeon HD 5400 .*ATI.*Mobility.*HD *54.* 2 1 -ATI Mobility Radeon HD 5500 .*ATI.*Mobility.*HD *55.* 2 1 -ATI Mobility Radeon HD 5600 .*ATI.*Mobility.*HD *56.* 2 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.* 2 1 -ATI Mobility Radeon HD 6300 .*ATI.*Mobility.*HD *63.* 2 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 Mobility Radeon X1xxx .*ATI.*Mobility.*X1.* 0 1 -ATI Mobility Radeon X2xxx .*ATI.*Mobility.*X2.* 0 1 -ATI Mobility Radeon X3xx .*ATI.*Mobility.*X3.* 1 1 -ATI Mobility Radeon X6xx .*ATI.*Mobility.*X6.* 1 1 -ATI Mobility Radeon X7xx .*ATI.*Mobility.*X7.* 1 1 -ATI Mobility Radeon Xxxx .*ATI.*Mobility.*X.* 0 1 -ATI Mobility Radeon .*ATI.*Mobility.* 0 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.* 0 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 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.* 2 1 -ATI Radeon HD 6300 .*ATI.*Radeon HD *63.* 2 1 -ATI Radeon HD 6400 .*ATI.*Radeon HD *64.* 3 1 -ATI Radeon HD 6500 .*ATI.*Radeon HD *65.* 3 1 -ATI Radeon HD 66xx .*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 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 66xx .*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 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 @@ -192,15 +191,6 @@ ATI Radeon RX800 .*ATI.*Radeon *RX80.* 2 1 ATI RS880M .*ATI.*RS880M 1 1 ATI Radeon RX9550 .*ATI.*RX9550.* 1 1 ATI Radeon VE .*ATI.*Radeon.*VE.* 0 0 -ATI Radeon X1000 .*ATI.*Radeon *X10.* 0 1 -ATI Radeon X1200 .*ATI.*Radeon *X12.* 0 1 -ATI Radeon X1300 .*ATI.*Radeon *X13.* 1 1 -ATI Radeon X1400 .*ATI.*Radeon *X14.* 1 1 -ATI Radeon X1500 .*ATI.*Radeon *X15.* 1 1 -ATI Radeon X1600 .*ATI.*Radeon *X16.* 1 1 -ATI Radeon X1700 .*ATI.*Radeon *X17.* 1 1 -ATI Radeon X1800 .*ATI.*Radeon *X18.* 3 1 -ATI Radeon X1900 .*ATI.*Radeon *X19.* 3 1 ATI Radeon X300 .*ATI.*Radeon *X3.* 0 1 ATI Radeon X400 .*ATI.*Radeon X4.* 0 1 ATI Radeon X500 .*ATI.*Radeon X5.* 0 1 @@ -261,7 +251,7 @@ ATI FirePro M .*ATI.*FirePro M.* 3 1 ATI Technologies .*ATI *Technologies.* 0 1 // This entry is last to work around the "R300" driver problem. ATI R300 (9700) .*R300.* 1 1 -ATI Radeon .*ATI.*Radeon.* 0 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 -- cgit v1.2.3 From 2b66777a3b392a3e788333647631d27842ea6fcd Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Fri, 23 Sep 2011 11:12:14 -0400 Subject: update gpus seen and recognition results for them --- indra/newview/tests/gpus_results.txt | 628 +++++++++++++++----------- indra/newview/tests/gpus_seen.txt | 828 +++++++++++++++++++++++++++++++++++ 2 files changed, 1207 insertions(+), 249 deletions(-) diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt index 2d7df8f0dc..0b349b481d 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,7 +25,7 @@ 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 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 @@ -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 0 ATI Radeon +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,8 +103,8 @@ 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 @@ -113,19 +113,19 @@ 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,50 +138,68 @@ 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 6670 supported 3 ATI Radeon HD 66xx +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 64xxM 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 64xxM ATI Technologies Inc. AMD Radeon HD 6490M supported 3 ATI Radeon HD 64xxM +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 6500 ATI Technologies Inc. AMD Radeon HD 6500M/5600/5700 Series supported 3 ATI Radeon HD 6500 ATI Technologies Inc. AMD Radeon HD 6530M supported 3 ATI Radeon HD 6500 ATI Technologies Inc. AMD Radeon HD 6550M supported 3 ATI Radeon HD 6500 ATI Technologies Inc. AMD Radeon HD 6570 supported 3 ATI Radeon HD 6500 ATI Technologies Inc. AMD Radeon HD 6570M supported 3 ATI Radeon HD 6500 ATI Technologies Inc. AMD Radeon HD 6570M/5700 Series supported 3 ATI Radeon HD 6500 +ATI Technologies Inc. AMD Radeon HD 6600 Series supported 3 ATI Radeon HD 66xx 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 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 3 ATI Radeon HD 64xxM +ATI Technologies Inc. AMD Radeon(TM) HD 6480G supported 0 ATI Technologies +ATI Technologies Inc. AMD Radeon(TM) HD 6520G supported 0 ATI Technologies +ATI Technologies Inc. AMD Radeon(TM) HD 6620G supported 0 ATI Technologies +ATI Technologies Inc. AMD Radeon(TM) HD 6630M supported 0 ATI Technologies 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 @@ -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 0 ATI Technologies +ATI Technologies Inc. ATI MOBILITY RADEON X2300 HD x86/SSE2 supported 0 ATI Technologies +ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2 supported 0 ATI Technologies +ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/SSE2 supported 0 ATI Technologies +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 1 ATI Mobility Radeon 4100 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 0 ATI Technologies +ATI Technologies Inc. ATI Mobility Radeon X2300 (Omega 3.8.442) supported 0 ATI Technologies +ATI Technologies Inc. ATI Mobility Radeon X2300 x86 supported 0 ATI Technologies +ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2 supported 0 ATI Technologies +ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2 supported 0 ATI Technologies +ATI Technologies Inc. ATI Mobility Radeon X2500 supported 0 ATI Technologies +ATI Technologies Inc. ATI Mobility Radeon X2500 x86/SSE2 supported 0 ATI Technologies 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 66xx 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 @@ -503,17 +541,21 @@ ATI Technologies Inc. HIGHTECH EXCALIBUR X700 PRO 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 7xxx -ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86/SSE2 supported 0 ATI Mobility Radeon Xxxx -ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86/SSE2 supported 0 ATI Mobility Radeon Xxxx +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 0 ATI Technologies +ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2 supported 0 ATI Technologies 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 NO MATCH +Humper Chromium NO MATCH +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,40 +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 @@ -769,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 NO MATCH +NVIDIA Corporation GeForce GTX 285/PCI/SSE2 NO MATCH +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 @@ -794,7 +858,7 @@ 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 @@ -802,8 +866,9 @@ NVIDIA G86 NVIDIA G92 supported 3 NVIDIA G92 NVIDIA G92-200/PCI/SSE2 supported 3 NVIDIA G92 NVIDIA G94 supported 3 NVIDIA G94 -NVIDIA G96/PCI/SSE2 UNRECOGNIZED -NVIDIA G98/PCI/SSE2 UNRECOGNIZED +NVIDIA 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 @@ -832,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 NO MATCH NVIDIA GTS 150 supported 2 NVIDIA GT 150M NVIDIA GTS 240 supported 3 NVIDIA GTS 240 NVIDIA GTS 250 supported 3 NVIDIA GTS 250 @@ -859,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 @@ -878,6 +943,7 @@ 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 410M/PCI/SSE2 supported 1 NVIDIA G 410M 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 @@ -922,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 @@ -983,12 +1051,14 @@ 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 @@ -1146,8 +1216,10 @@ 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 @@ -1193,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 530/PCI/SSE2 NO MATCH +NVIDIA GeForce GT 530/PCI/SSE2/3DNOW! NO MATCH NVIDIA GeForce GT 540M/PCI/SSE2 supported 3 NVIDIA GT 540M +NVIDIA GeForce GT 545/PCI/SSE2 NO MATCH 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 @@ -1213,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 @@ -1233,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 @@ -1267,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 @@ -1284,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 @@ -1301,39 +1385,44 @@ NVIDIA GeForce4 MX Integrated GPU/AGP/SSE/3DNOW! NVIDIA GeForce4 Ti 4200 with AGP8X/AGP/SSE supported 0 NVIDIA GeForce 4 NVIDIA GeForce4 Ti 4200/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 4 NVIDIA GeForce4 Ti 4400/AGP/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA Generic UNRECOGNIZED +NVIDIA 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 NO MATCH +NVIDIA MCP61/PCI/SSE2/3DNOW! NO MATCH +NVIDIA MCP73/PCI/SSE2 NO MATCH +NVIDIA MCP79MH/PCI/SSE2 NO MATCH +NVIDIA MCP79MX/PCI/SSE2 NO MATCH +NVIDIA MCP7A-O/PCI/SSE2 NO MATCH +NVIDIA MCP7A-S/PCI/SSE2 NO MATCH +NVIDIA MCP89-EPT/PCI/SSE2 NO MATCH +NVIDIA N10M-GE1/PCI/SSE2 NO MATCH +NVIDIA N10P-GE1/PCI/SSE2 NO MATCH +NVIDIA N10P-GV2/PCI/SSE2 NO MATCH +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 NO MATCH +NVIDIA NB9M-GE1/PCI/SSE2 NO MATCH +NVIDIA NB9M-GS/PCI/SSE2 NO MATCH +NVIDIA NB9M-NS/PCI/SSE2 NO MATCH +NVIDIA NB9P-GE1/PCI/SSE2 NO MATCH +NVIDIA NB9P-GS/PCI/SSE2 NO MATCH +NVIDIA NV17/AGP/3DNOW! NO MATCH +NVIDIA NV17/AGP/SSE2 NO MATCH 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! NO MATCH +NVIDIA NV36/AGP/SSE2 NO MATCH +NVIDIA NV41/PCI/SSE2 NO MATCH 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 @@ -1365,7 +1454,9 @@ 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 NO MATCH +NVIDIA NVIDIA GeForce Pre-Release MCP7A-J-DC OpenGL Engine NO MATCH 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 @@ -1376,11 +1467,15 @@ NVIDIA NVS 3100M/PCI/SSE2 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 PCI NO MATCH +NVIDIA Quadro 1000M/PCI/SSE2 supported 2 NVIDIA Quadro 1000M NVIDIA Quadro 2000/PCI/SSE2 supported 3 NVIDIA Quadro 2000 M/D +NVIDIA Quadro 2000M/PCI/SSE2 supported 3 NVIDIA Quadro 2000 M/D +NVIDIA Quadro 3000M/PCI/SSE2 NO MATCH 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 @@ -1388,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 NO MATCH NVIDIA Quadro DCC supported 0 NVIDIA Quadro DCC NVIDIA Quadro FX supported 1 NVIDIA Quadro FX NVIDIA Quadro FX 1100/AGP/SSE2 supported 1 NVIDIA Quadro FX NVIDIA Quadro FX 1400/PCI/SSE2 supported 2 NVIDIA Quadro 400 NVIDIA Quadro FX 1500 supported 1 NVIDIA Quadro FX +NVIDIA Quadro FX 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 @@ -1421,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 @@ -1445,15 +1543,25 @@ NVIDIA Quadro NVS 295/PCI/SSE2 NVIDIA Quadro NVS 320M/PCI/SSE2 supported 2 NVIDIA Quadro NVS 320M NVIDIA Quadro NVS 55/280 PCI/PCI/SSE2 supported 0 NVIDIA Quadro NVS NVIDIA Quadro NVS/PCI/SSE2 supported 0 NVIDIA Quadro NVS -NVIDIA Quadro PCI-E Series/PCI/SSE2/3DNOW! UNRECOGNIZED -NVIDIA Quadro VX 200/PCI/SSE2 UNRECOGNIZED -NVIDIA Quadro/AGP/SSE2 UNRECOGNIZED +NVIDIA Quadro PCI-E Series/PCI/SSE2/3DNOW! NO MATCH +NVIDIA Quadro VX 200/PCI/SSE2 NO MATCH +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 NO MATCH NVIDIA nForce unsupported 0 NVIDIA nForce +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 @@ -1462,27 +1570,33 @@ Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5750 OpenGL En 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 @@ -1521,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) @@ -1549,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) @@ -1574,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 98b4adcf39..570f92a9b0 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,46 +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 @@ -751,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 @@ -767,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 @@ -776,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 @@ -801,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 @@ -810,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 @@ -860,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 @@ -920,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! @@ -971,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 @@ -995,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 @@ -1120,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 @@ -1139,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 @@ -1276,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! @@ -1292,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 @@ -1391,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 @@ -1412,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 @@ -1490,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 @@ -1498,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 @@ -1519,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 @@ -1572,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 -- cgit v1.2.3 From ddc74472e9273075e3b2b2f13e7f32ed50771933 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Fri, 23 Sep 2011 13:03:11 -0400 Subject: improve recognition of some more ATI Radeon cards, allow class zero use for Humper virtual machines --- doc/contributions.txt | 1 + indra/newview/gpu_table.txt | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/contributions.txt b/doc/contributions.txt index 94f8110aed..54392cf724 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -1029,6 +1029,7 @@ Synystyr Texan Takeda Terrawyng TankMaster Finesmith STORM-1100 + STORM-1602 VWR-26622 Talamasca Tali Rosca diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index 21cb988819..e95d4d9401 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -94,6 +94,9 @@ ATI M56 .*ATI.*M56.* 1 1 ATI M71 .*ATI.*M71.* 1 1 ATI M72 .*ATI.*M72.* 1 1 ATI M76 .*ATI.*M76.* 3 1 +ATI Radeon HD 64xx .*ATI.*AMD Radeon.* HD [67]4..[MG] 3 1 +ATI Radeon HD 65xx .*ATI.*AMD Radeon.* HD [67]5..[MG] 3 1 +ATI Radeon HD 66xx .*ATI.*AMD Radeon.* HD [67]6..[MG] 3 1 ATI Mobility Radeon 4100 .*ATI.*Mobility.*41.* 1 1 ATI Mobility Radeon 7xxx .*ATI.*Mobility.*Radeon 7.* 0 1 ATI Mobility Radeon 8xxx .*ATI.*Mobility.*Radeon 8.* 0 1 @@ -106,7 +109,6 @@ 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 Radeon HD 64xxM .*ATI.*AMD Radeon.* HD [67]4..M 3 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 @@ -166,7 +168,7 @@ 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 66xx .*ATI.*Radeon HD *66.. 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 @@ -512,3 +514,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 -- cgit v1.2.3 From c0410361de85203630b72150ace398c40aa2a1b7 Mon Sep 17 00:00:00 2001 From: "jaeger_reg@tank-pc.ftrdhcpuser.net" Date: Mon, 26 Sep 2011 13:16:17 -0700 Subject: Statistic floater update to improve displayed info. --- doc/contributions.txt | 1 + .../newview/skins/default/xui/en/floater_stats.xml | 339 ++++++++++++++------- 2 files changed, 238 insertions(+), 102 deletions(-) diff --git a/doc/contributions.txt b/doc/contributions.txt index bcdc5a63d2..d58b313755 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -1032,6 +1032,7 @@ Synystyr Texan Takeda Terrawyng TankMaster Finesmith STORM-1100 + STORM-1258 Talamasca Tali Rosca Tayra Dagostino diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml index b87cb9a433..406114294d 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"> - + width="260"> + + @@ -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"> @@ -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"> - + - + bar_max="10000" + tick_spacing="1000" + label_spacing="2000" + precision="0" + show_per_sec="false" + show_bar="false"> + - + bar_max="200000" + tick_spacing="25000" + label_spacing="50000" + precision="0" + show_bar="false"> + @@ -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"> + - + show_per_sec="false" + show_bar="false"> + - + show_per_sec="false" + show_bar="false"> + - + show_per_sec="false" + show_bar="false"> + - + show_per_sec="false" + show_bar="false"> + - + @@ -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" > @@ -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" > @@ -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" > @@ -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" > @@ -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" > @@ -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" > @@ -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"> - + @@ -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" > + + + + + + + + + + + + + + + + -- cgit v1.2.3 From a7076142429eb604e4f756223b70ff85a5ea3490 Mon Sep 17 00:00:00 2001 From: "Debi King (Dessie)" Date: Mon, 3 Oct 2011 11:18:55 -0400 Subject: Added tag DRTVWR-84_3.0.3-release, 3.0.3-release for changeset 0496d2f74043 --- .hgtags | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.hgtags b/.hgtags index cc9e7fc2c7..aa2aed3367 100644 --- a/.hgtags +++ b/.hgtags @@ -191,3 +191,5 @@ b95ddac176ac944efdc85cbee94ac2e1eab44c79 3.0.3-start 6694f3f062aa45f64ab391d25a3eb3d5eb1b0871 3.0.3-beta1 61aa7974df089e8621fe9a4c69bcdefdb3cc208a DRTVWR-89_3.0.3-beta2 61aa7974df089e8621fe9a4c69bcdefdb3cc208a 3.0.3-beta2 +0496d2f74043cf4e6058e76ac3db03d44cff42ce DRTVWR-84_3.0.3-release +0496d2f74043cf4e6058e76ac3db03d44cff42ce 3.0.3-release -- cgit v1.2.3 From 5ef05e151d24e15a175d4f78ff17b6abdd36bbc4 Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Wed, 5 Oct 2011 15:21:10 -0600 Subject: fix for SH-2434: Mac viewer sometimes freezes at start up and must be force quit. --- indra/llcommon/llqueuedthread.cpp | 7 ++++++- indra/llcommon/llqueuedthread.h | 2 +- indra/llcommon/llworkerthread.cpp | 4 ++-- indra/llcommon/llworkerthread.h | 2 +- indra/newview/lltexturefetch.cpp | 2 +- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/indra/llcommon/llqueuedthread.cpp b/indra/llcommon/llqueuedthread.cpp index efd9c4b68f..5dee7a3541 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 a53b22f6fc..499d13a792 100644 --- a/indra/llcommon/llqueuedthread.h +++ b/indra/llcommon/llqueuedthread.h @@ -149,7 +149,7 @@ public: 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 6b308bb917..e186621503 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 bef5ef53fe..973b78ca01 100644 --- a/indra/llcommon/llworkerthread.h +++ b/indra/llcommon/llworkerthread.h @@ -83,7 +83,7 @@ private: 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/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index e9be45ffd0..a6e0d4530a 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), -- cgit v1.2.3 From 6095127468f91770abe276b7d55754bbec228df3 Mon Sep 17 00:00:00 2001 From: "Debi King (Dessie)" Date: Thu, 6 Oct 2011 13:55:47 -0400 Subject: Added tag DRTVWR-93_3.1.0-beta1, 3.1.0-beta1 for changeset 2657fa785bbf --- .hgtags | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.hgtags b/.hgtags index e3edb9f17e..ce40e797f8 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 -- cgit v1.2.3 From 066d63022bbd073dd990ede491f111370fcaa879 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Thu, 6 Oct 2011 16:30:32 -0400 Subject: fix typo in flag for -u option --- scripts/gpu_table_tester | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/gpu_table_tester b/scripts/gpu_table_tester index e1e840e2d4..9bc958636d 100755 --- a/scripts/gpu_table_tester +++ b/scripts/gpu_table_tester @@ -51,7 +51,7 @@ my $mini_HELP = " "; &GetOptions("help" => \$Help - ,"unmatched" => \$UnMatchedOnlly + ,"unmatched" => \$UnMatchedOnly ,"table-only" => \$TableOnly ,"gpu-table=s" => \$GpuTable ,"diff=s" => \$Diff -- cgit v1.2.3 From fd91f09e19f937cb7e2f779c4e146064415ad427 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Thu, 6 Oct 2011 16:37:11 -0400 Subject: STORM-1602 improvements from leliel Mirihi, and more optimizations --- doc/contributions.txt | 1 + indra/newview/gpu_table.txt | 410 +++++++++++++++++++++++--------------------- 2 files changed, 215 insertions(+), 196 deletions(-) diff --git a/doc/contributions.txt b/doc/contributions.txt index 54392cf724..99472f6380 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -619,6 +619,7 @@ Latif Khalifa VWR-5370 leliel Mirihi STORM-1100 + STORM-1602 len Starship Lisa Lowe CT-218 diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index e95d4d9401..c5e66d2682 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -44,6 +44,7 @@ ATI All-in-Wonder X1800 .*ATI.*All-in-Wonder X18.* 3 1 ATI All-in-Wonder X1900 .*ATI.*All-in-Wonder X19.* 3 1 ATI All-in-Wonder PCI-E .*ATI.*All-in-Wonder.*PCI-E.* 1 1 ATI All-in-Wonder Radeon .*ATI.*All-in-Wonder Radeon.* 0 1 +ATI ASUS ARES .*ATI.*ASUS.*ARES.* 3 1 ATI ASUS A9xxx .*ATI.*ASUS.*A9.* 1 1 ATI ASUS AH24xx .*ATI.*ASUS.*AH24.* 1 1 ATI ASUS AH26xx .*ATI.*ASUS.*AH26.* 3 1 @@ -55,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 @@ -73,6 +75,7 @@ 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 @@ -97,7 +100,7 @@ ATI M76 .*ATI.*M76.* 3 1 ATI Radeon HD 64xx .*ATI.*AMD Radeon.* HD [67]4..[MG] 3 1 ATI Radeon HD 65xx .*ATI.*AMD Radeon.* HD [67]5..[MG] 3 1 ATI Radeon HD 66xx .*ATI.*AMD Radeon.* HD [67]6..[MG] 3 1 -ATI Mobility Radeon 4100 .*ATI.*Mobility.*41.* 1 1 +ATI Mobility Radeon 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 @@ -194,12 +197,12 @@ ATI RS880M .*ATI.*RS880M 1 1 ATI Radeon RX9550 .*ATI.*RX9550.* 1 1 ATI Radeon VE .*ATI.*Radeon.*VE.* 0 0 ATI Radeon X300 .*ATI.*Radeon *X3.* 0 1 -ATI Radeon X400 .*ATI.*Radeon X4.* 0 1 -ATI Radeon X500 .*ATI.*Radeon X5.* 0 1 -ATI Radeon X600 .*ATI.*Radeon X6.* 1 1 -ATI Radeon X700 .*ATI.*Radeon X7.* 1 1 -ATI Radeon X800 .*ATI.*Radeon X8.* 2 1 -ATI Radeon X900 .*ATI.*Radeon X9.* 2 1 +ATI Radeon 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) .*R350.* 1 1 @@ -285,196 +288,210 @@ 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.* 3 1 +NVIDIA Quadro 3000M .*Quadro.*3000M.* 3 1 NVIDIA Quadro 4000M .*Quadro.*4000M.* 3 1 NVIDIA Quadro 4000 .*Quadro *4000.* 3 1 NVIDIA Quadro 50x0 M .*Quadro.*50.0.* 3 1 @@ -483,6 +500,7 @@ 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 @@ -495,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 -- cgit v1.2.3 From f8fc12860843ba0799c8faf7f9b00bd6e63c3ecc Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Thu, 6 Oct 2011 16:41:36 -0400 Subject: update recognition results for storm-1602 --- indra/newview/tests/gpus_results.txt | 330 +++++++++++++++++------------------ 1 file changed, 165 insertions(+), 165 deletions(-) diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt index 0b349b481d..f13b832ffd 100644 --- a/indra/newview/tests/gpus_results.txt +++ b/indra/newview/tests/gpus_results.txt @@ -60,7 +60,7 @@ ATI Mobility Radeon HD 4800 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 0 ATI Radeon +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 @@ -149,7 +149,7 @@ ATI Technologies Inc. AMD M880G with 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 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 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 @@ -161,23 +161,23 @@ ATI Technologies Inc. AMD Radeon HD 6310M 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 64xxM +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 64xxM -ATI Technologies Inc. AMD Radeon HD 6490M supported 3 ATI Radeon HD 64xxM +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 6500 -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 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 6600 Series supported 3 ATI Radeon HD 66xx +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 @@ -193,19 +193,19 @@ ATI Technologies Inc. AMD Radeon HD 6900 Series 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 3 ATI Radeon HD 64xxM -ATI Technologies Inc. AMD Radeon(TM) HD 6480G supported 0 ATI Technologies -ATI Technologies Inc. AMD Radeon(TM) HD 6520G supported 0 ATI Technologies -ATI Technologies Inc. AMD Radeon(TM) HD 6620G supported 0 ATI Technologies -ATI Technologies Inc. AMD Radeon(TM) HD 6630M 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 @@ -259,10 +259,10 @@ ATI Technologies Inc. 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 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 0 ATI Technologies -ATI Technologies Inc. ATI MOBILITY RADEON X2300 HD x86/SSE2 supported 0 ATI Technologies -ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2 supported 0 ATI Technologies -ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/SSE2 supported 0 ATI Technologies +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 @@ -277,7 +277,7 @@ 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 1 ATI Mobility Radeon 4100 +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 @@ -348,13 +348,13 @@ ATI Technologies Inc. ATI Mobility Radeon X1400 x86/SSE2 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 0 ATI Technologies -ATI Technologies Inc. ATI Mobility Radeon X2300 (Omega 3.8.442) supported 0 ATI Technologies -ATI Technologies Inc. ATI Mobility Radeon X2300 x86 supported 0 ATI Technologies -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2 supported 0 ATI Technologies -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2 supported 0 ATI Technologies -ATI Technologies Inc. ATI Mobility Radeon X2500 supported 0 ATI Technologies -ATI Technologies Inc. ATI Mobility Radeon X2500 x86/SSE2 supported 0 ATI Technologies +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 3 ATI Mobility Radeon HD 5400 ATI Technologies Inc. ATI RADEON HD 3200 T25XX by CAMILO supported 1 ATI Radeon HD 3200 @@ -476,7 +476,7 @@ ATI Technologies Inc. ATI Radeon HD 6390 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 66xx +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 @@ -554,8 +554,8 @@ ATI Technologies Inc. MOBILITY RADEON Xpress 200 Series SW TCL x86/MMX/3DNow!/SS ATI Technologies Inc. MSI RX9550SE supported 1 ATI Radeon RX9550 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 0 ATI Technologies -ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2 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 @@ -714,8 +714,8 @@ 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 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 NO MATCH -Humper 3D-Analyze v2.3 - http://www.tommti-systems.com NO MATCH -Humper Chromium 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 @@ -829,8 +829,8 @@ NVIDIA 315 NVIDIA 315M supported 2 NVIDIA G 315 NVIDIA 320M supported 2 NVIDIA G 320M NVIDIA C51 supported 0 NVIDIA C51 -NVIDIA Corporation GeForce GT 230/PCI/SSE2 NO MATCH -NVIDIA Corporation GeForce GTX 285/PCI/SSE2 NO MATCH +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 @@ -864,7 +864,7 @@ 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 NO MATCH NVIDIA G98/PCI/SSE2 NO MATCH @@ -884,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 @@ -897,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 NO MATCH +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 @@ -944,34 +944,34 @@ NVIDIA GeForce 4 MX NVIDIA GeForce 4 Ti supported 0 NVIDIA GeForce 4 NVIDIA GeForce 405/PCI/SSE2 supported 1 NVIDIA G 405 NVIDIA GeForce 410M/PCI/SSE2 supported 1 NVIDIA G 410M -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 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 @@ -1012,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 @@ -1029,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 @@ -1063,14 +1063,14 @@ NVIDIA GeForce 7900 GT/PCI/SSE2/3DNOW! 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 @@ -1116,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 @@ -1179,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 @@ -1207,10 +1207,10 @@ 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 @@ -1234,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 @@ -1246,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 @@ -1268,11 +1268,11 @@ NVIDIA GeForce GT 445M/PCI/SSE2 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 530/PCI/SSE2 NO MATCH -NVIDIA GeForce GT 530/PCI/SSE2/3DNOW! NO MATCH +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 NO MATCH +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 @@ -1321,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 @@ -1335,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 @@ -1382,43 +1382,43 @@ 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 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 NO MATCH -NVIDIA MCP61/PCI/SSE2/3DNOW! NO MATCH -NVIDIA MCP73/PCI/SSE2 NO MATCH -NVIDIA MCP79MH/PCI/SSE2 NO MATCH -NVIDIA MCP79MX/PCI/SSE2 NO MATCH -NVIDIA MCP7A-O/PCI/SSE2 NO MATCH -NVIDIA MCP7A-S/PCI/SSE2 NO MATCH +NVIDIA ION LE/PCI/SSE2 NO MATCH +NVIDIA ION/PCI/SSE2 NO MATCH +NVIDIA ION/PCI/SSE2/3DNOW! NO MATCH +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 NO MATCH -NVIDIA N10P-GE1/PCI/SSE2 NO MATCH -NVIDIA N10P-GV2/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 NO MATCH -NVIDIA NB9M-GE1/PCI/SSE2 NO MATCH -NVIDIA NB9M-GS/PCI/SSE2 NO MATCH -NVIDIA NB9M-NS/PCI/SSE2 NO MATCH -NVIDIA NB9P-GE1/PCI/SSE2 NO MATCH -NVIDIA NB9P-GS/PCI/SSE2 NO MATCH -NVIDIA NV17/AGP/3DNOW! NO MATCH -NVIDIA NV17/AGP/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! NO MATCH -NVIDIA NV36/AGP/SSE2 NO MATCH -NVIDIA NV41/PCI/SSE2 NO MATCH +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 @@ -1455,23 +1455,23 @@ NVIDIA NVIDIA GeForce GTX 465 OpenGL Engine 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 GF108 ES OpenGL Engine NO MATCH -NVIDIA NVIDIA GeForce Pre-Release ION OpenGL Engine NO MATCH -NVIDIA NVIDIA GeForce Pre-Release MCP7A-J-DC 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 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 2 NVIDIA Quadro 1000M -NVIDIA Quadro 2000/PCI/SSE2 supported 3 NVIDIA Quadro 2000 M/D -NVIDIA Quadro 2000M/PCI/SSE2 supported 3 NVIDIA Quadro 2000 M/D -NVIDIA Quadro 3000M/PCI/SSE2 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 @@ -1483,10 +1483,10 @@ 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 NO MATCH +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 @@ -1530,21 +1530,21 @@ 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! NO MATCH -NVIDIA Quadro VX 200/PCI/SSE2 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 @@ -1552,7 +1552,7 @@ NVIDIA Quadro4 750 XGL/AGP/SSE2 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 NO MATCH +NVIDIA Tesla C2050/PCI/SSE2 supported 0 NVIDIA G 205M NVIDIA nForce unsupported 0 NVIDIA nForce NVIDIA nForce 730a/PCI/SSE2 unsupported 0 NVIDIA nForce NVIDIA nForce 730a/PCI/SSE2/3DNOW! unsupported 0 NVIDIA nForce -- cgit v1.2.3 From e5f558250b5553b2f3d37fc81efe202927a47d3f Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Thu, 6 Oct 2011 19:52:50 -0400 Subject: storm-1602 fix NVIDIA ION recognition --- indra/newview/gpu_table.txt | 4 ++-- indra/newview/tests/gpus_results.txt | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index c5e66d2682..b7d951e018 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -461,8 +461,8 @@ 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 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 diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt index f13b832ffd..68e2e688cb 100644 --- a/indra/newview/tests/gpus_results.txt +++ b/indra/newview/tests/gpus_results.txt @@ -1386,9 +1386,9 @@ NVIDIA GeForce4 Ti 4200 with AGP8X/AGP/SSE 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 NO MATCH -NVIDIA ION LE/PCI/SSE2 NO MATCH -NVIDIA ION/PCI/SSE2 NO MATCH -NVIDIA ION/PCI/SSE2/3DNOW! 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 supported 1 NVIDIA MCP61 NVIDIA MCP61/PCI/SSE2/3DNOW! supported 1 NVIDIA MCP61 NVIDIA MCP73/PCI/SSE2 supported 1 NVIDIA MCP73 -- cgit v1.2.3 From 956c145cc5a71c20256a69ce448ca6a3f79ea14d Mon Sep 17 00:00:00 2001 From: Aaron Stone Date: Thu, 6 Oct 2011 20:15:18 -0400 Subject: VWR-27090 Allow Calling Cards to carry the "(link)" suffix in the Inventory pane --- indra/newview/llinventorybridge.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index a36aa3dedf..5e2d2fa3f2 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) { -- cgit v1.2.3 From 32764f8b1d3398aed0ac959a3f5d1b95aaa1bad1 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Thu, 6 Oct 2011 20:33:50 -0400 Subject: adjust parameters on Snowstorm team builds --- BuildParams | 2 ++ 1 file changed, 2 insertions(+) diff --git a/BuildParams b/BuildParams index b62d7b7af1..caf3cc932a 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 -- cgit v1.2.3 From 61c3b55bd065f28f96a5a170b830874c8c8fa517 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 11 Oct 2011 09:26:40 -0400 Subject: expand tabs for coding policy --- indra/cmake/LLSharedLibs.cmake | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/indra/cmake/LLSharedLibs.cmake b/indra/cmake/LLSharedLibs.cmake index cafaf1ca3f..14dd67f32f 100644 --- a/indra/cmake/LLSharedLibs.cmake +++ b/indra/cmake/LLSharedLibs.cmake @@ -42,13 +42,13 @@ macro(ll_stage_sharedlib DSO_TARGET) # 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) + 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( -- cgit v1.2.3