diff options
| author | Andrey Lihatskiy <118752495+marchcat@users.noreply.github.com> | 2025-12-23 14:24:17 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-23 14:24:17 +0200 |
| commit | f27b86c8fac5c1a9db93cd05aaf7480162006951 (patch) | |
| tree | 5969f6504786c0752c805bc833d6aef513a8387f | |
| parent | 9f9df3e55e4994cc2942a8e19c267b793e61cfb1 (diff) | |
| parent | 259d28cd788cb6150cffde8f11cde2887c2e3bcb (diff) | |
Merge pull request #5185 from secondlife/marchcat/slua-linux
Update SLua editor with recent Linux branch changes
124 files changed, 244 insertions, 15248 deletions
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index df927eb187..b6b3ba55ac 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -45,6 +45,7 @@ jobs: matrix: runner: ${{ fromJson((github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/Second_Life')) && '["windows-large","macos-15-xlarge","linux-large"]' || '["windows-2022","macos-15-xlarge","ubuntu-22.04"]') }} configuration: ${{ fromJson(needs.setup.outputs.configurations) }} + build_variant: [Viewer, Tests] runs-on: ${{ matrix.runner }} outputs: viewer_channel: ${{ steps.build.outputs.viewer_channel }} @@ -68,9 +69,9 @@ jobs: DEVELOPER_DIR: "/Applications/Xcode_16.4.app/Contents/Developer" # Ensure that Linden viewer builds engage Bugsplat. BUGSPLAT_DB: ${{ needs.setup.outputs.bugsplat_db }} - build_coverity: false build_log_dir: ${{ github.workspace }}/.logs - build_viewer: true + build_viewer: ${{ matrix.build_variant == 'Viewer' }} + build_tests: ${{ matrix.build_variant == 'Tests' }} BUILDSCRIPTS_SHARED: ${{ github.workspace }}/.shared # extracted and committed to viewer repo BUILDSCRIPTS_SUPPORT_FUNCTIONS: ${{ github.workspace }}/buildscripts_support_functions @@ -91,9 +92,9 @@ jobs: ref: ${{ github.event.pull_request.head.sha || github.sha }} - name: Linux Disk Cleanup - if: runner.os == 'Linux' + if: matrix.build_variant == 'Viewer' && runner.os == 'Linux' run: | - # Prune various unused files from linux builder to fix free runner disk space exhaustion + # Prune various unused files from linux builder for Viewer build to fix runner disk space exhaustion df -h sudo docker container prune -f sudo docker image prune -a -f @@ -129,8 +130,9 @@ jobs: uses: actions/cache@v4 with: path: .autobuild-installables - key: ${{ runner.os }}-64-${{ matrix.configuration }}-${{ hashFiles('autobuild.xml') }} + key: ${{ runner.os }}-64-${{ matrix.configuration }}-${{ matrix.build_variant }}-${{ hashFiles('autobuild.xml') }} restore-keys: | + ${{ runner.os }}-64-${{ matrix.configuration }}-${{ matrix.build_variant }}- ${{ runner.os }}-64-${{ matrix.configuration }}- ${{ runner.os }}-64- @@ -293,8 +295,8 @@ jobs: echo "artifact=$RUNNER_OS$cfg_suffix" >> $GITHUB_OUTPUT - name: Upload executable - if: steps.build.outputs.viewer_app uses: actions/upload-artifact@v4 + if: matrix.build_variant == 'Viewer' && steps.build.outputs.viewer_app with: name: "${{ steps.build.outputs.artifact }}-app" path: | @@ -303,14 +305,15 @@ jobs: # The other upload of nontrivial size is the symbol file. Use a distinct # artifact for that too. - name: Upload symbol file - if: steps.build.outputs.symbolfile uses: actions/upload-artifact@v4 + if: matrix.build_variant == 'Viewer' && steps.build.outputs.symbolfile with: name: "${{ steps.build.outputs.artifact }}-symbols" path: ${{ steps.build.outputs.symbolfile }} - name: Upload metadata uses: actions/upload-artifact@v4 + if: matrix.build_variant == 'Viewer' with: name: "${{ steps.build.outputs.artifact }}-metadata" # emitted by build.sh, possibly multiple lines @@ -320,7 +323,7 @@ jobs: - name: Upload physics package uses: actions/upload-artifact@v4 # should only be set for viewer-private - if: matrix.configuration == 'Release' && steps.build.outputs.physicstpv + if: matrix.build_variant == 'Viewer' && matrix.configuration == 'Release' && steps.build.outputs.physicstpv with: name: "${{ steps.build.outputs.artifact }}-physics" # emitted by build.sh, zero or one lines @@ -329,7 +332,7 @@ jobs: - name: Upload appearance utility package uses: actions/upload-artifact@v4 - if: steps.build.outputs.appearanceutility + if: matrix.build_variant == 'Viewer' && steps.build.outputs.appearanceutility with: name: "${{ steps.build.outputs.artifact }}-appearanceutility" # emitted by build.sh, zero or one lines @@ -150,6 +150,7 @@ pre_build() RELEASE_CRASH_REPORTING=OFF HAVOK=OFF + TESTING=OFF SIGNING=() if [[ "$variant" != *OS ]] then @@ -171,6 +172,11 @@ pre_build() RELEASE_CRASH_REPORTING=OFF fi + if $build_tests + then + TESTING=ON + fi + if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" ] then case "$arch" in @@ -195,7 +201,7 @@ pre_build() "$autobuild" configure --quiet -c $variant \ ${eval_autobuild_configure_parameters:---} \ - -DLL_TESTS:BOOL=ON \ + -DLL_TESTS:BOOL="$TESTING" \ -DPACKAGE:BOOL=ON \ -DHAVOK:BOOL="$HAVOK" \ -DRELEASE_CRASH_REPORTING:BOOL="$RELEASE_CRASH_REPORTING" \ @@ -246,7 +252,18 @@ package_llphysicsextensions_tpv() build() { local variant="$1" - if $build_viewer + if $build_tests + then + begin_section "autobuild $variant tests" + # honor autobuild_build_parameters same as sling-buildscripts + export CTEST_OUTPUT_ON_FAILURE=1 # Output log on test failure + eval_autobuild_build_parameters=$(eval $(echo echo $autobuild_build_parameters)) + "$autobuild" build --no-configure -c $variant \ + $eval_autobuild_build_parameters -- --target BUILD_AND_RUN_TESTS \ + || fatal "failed building $variant tests" + echo true >"$build_dir"/build_ok + end_section "autobuild $variant tests" + elif $build_viewer then begin_section "autobuild $variant" # honor autobuild_build_parameters same as sling-buildscripts @@ -254,10 +271,6 @@ build() "$autobuild" build --no-configure -c $variant \ $eval_autobuild_build_parameters \ || fatal "failed building $variant" - - ctest -C Release --test-dir "${build_dir}" --output-on-failure -j $(nproc --all) \ - || fatal "failed testing $variant" - echo true >"$build_dir"/build_ok end_section "autobuild $variant" diff --git a/indra/integration_tests/llimage_libtest/llimage_libtest.cpp b/indra/integration_tests/llimage_libtest/llimage_libtest.cpp index b82ced2f8d..85c5a8cdd4 100644 --- a/indra/integration_tests/llimage_libtest/llimage_libtest.cpp +++ b/indra/integration_tests/llimage_libtest/llimage_libtest.cpp @@ -530,7 +530,7 @@ int main(int argc, char** argv) } else { - LLFastTimer::sMetricLog = TRUE; + LLFastTimer::sMetricLog = true; LLFastTimer::sLogName = test_name; arg += 1; // Skip that arg now we know it's a valid test name if ((arg + 1) == argc) // Break out of the loop if we reach the end of the arg list diff --git a/indra/integration_tests/llui_libtest/llui_libtest.cpp b/indra/integration_tests/llui_libtest/llui_libtest.cpp index efb9c47a91..86783049cb 100644 --- a/indra/integration_tests/llui_libtest/llui_libtest.cpp +++ b/indra/integration_tests/llui_libtest/llui_libtest.cpp @@ -187,7 +187,7 @@ void export_test_floaters() LLXMLNodePtr output_node = new LLXMLNode(); LLFloater* floater = new LLFloater(LLSD()); floater->buildFromFile( filename, - // FALSE, // don't open floater + // false, // don't open floater output_node); std::string out_filename = gDirUtilp->add(xui_dir, filename); std::string::size_type extension_pos = out_filename.rfind(".xml"); diff --git a/indra/llcharacter/CMakeLists.txt b/indra/llcharacter/CMakeLists.txt index 1f019e6aef..0d7802279a 100644 --- a/indra/llcharacter/CMakeLists.txt +++ b/indra/llcharacter/CMakeLists.txt @@ -74,3 +74,15 @@ target_link_libraries( if (USE_PRECOMPILED_HEADERS) target_precompile_headers(llcharacter REUSE_FROM llprecompiled) endif () + + +if (LL_TESTS) + include(LLAddBuildTest) +# SET(llcharacter_TEST_SOURCE_FILES +# ) +# LL_ADD_PROJECT_UNIT_TESTS(llcharacter "${llcharacter_TEST_SOURCE_FILES}") + + #set(TEST_DEBUG on) + set(test_libs llcommon llmath) + LL_ADD_INTEGRATION_TEST(lljoint "lljoint.cpp" "${test_libs}") +endif() diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index f8c24368b2..b41ffb6dbf 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -22,7 +22,6 @@ set(llcommon_SOURCE_FILES llapr.cpp llassettype.cpp llatomic.cpp - llbase32.cpp llbase64.cpp llbitpack.cpp llcallbacklist.cpp @@ -85,7 +84,6 @@ set(llcommon_SOURCE_FILES llsdutil.cpp llsingleton.cpp llstacktrace.cpp - llstreamqueue.cpp llstreamtools.cpp llstring.cpp llstringtable.cpp @@ -117,8 +115,6 @@ set(llcommon_HEADER_FILES chrono.h classic_callback.h commoncontrol.h - ctype_workaround.h - fix_macros.h fsyspath.h function_types.h indra_constants.h @@ -129,7 +125,6 @@ set(llcommon_HEADER_FILES llapr.h llassettype.h llatomic.h - llbase32.h llbase64.h llbitpack.h llboost.h @@ -217,7 +212,6 @@ set(llcommon_HEADER_FILES llsingleton.h llstacktrace.h llstl.h - llstreamqueue.h llstreamtools.h llstrider.h llstring.h @@ -249,7 +243,6 @@ set(llcommon_HEADER_FILES threadpool.h threadpool_fwd.h threadsafeschedule.h - timer.h tuple.h u64.h workqueue.h @@ -317,16 +310,20 @@ if (LL_TESTS) LL_ADD_INTEGRATION_TEST(classic_callback "" "${test_libs}") LL_ADD_INTEGRATION_TEST(commonmisc "" "${test_libs}") LL_ADD_INTEGRATION_TEST(lazyeventapi "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llapp "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llbase64 "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llcond "" "${test_libs}") LL_ADD_INTEGRATION_TEST(lldate "" "${test_libs}") LL_ADD_INTEGRATION_TEST(lldeadmantimer "" "${test_libs}") LL_ADD_INTEGRATION_TEST(lldependencies "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(lldoubledispatch "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llerror "" "${test_libs}") LL_ADD_INTEGRATION_TEST(lleventcoro "" "${test_libs}") LL_ADD_INTEGRATION_TEST(lleventdispatcher "" "${test_libs}") LL_ADD_INTEGRATION_TEST(lleventfilter "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llevents "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llframetimer "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llhttpdate "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llheteromap "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llinstancetracker "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llleap "" "${test_libs}") @@ -336,9 +333,11 @@ if (LL_TESTS) LL_ADD_INTEGRATION_TEST(llprocessor "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llprocinfo "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llrand "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llsd "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llsdserialize "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llsdutil "" "llcommon;llmath") LL_ADD_INTEGRATION_TEST(llsingleton "" "${test_libs}") - LL_ADD_INTEGRATION_TEST(llstreamqueue "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llstreamtools "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llstring "" "${test_libs}") LL_ADD_INTEGRATION_TEST(lltrace "" "${test_libs}") LL_ADD_INTEGRATION_TEST(lltreeiterators "" "${test_libs}") @@ -354,4 +353,11 @@ if (LL_TESTS) ## throwing and catching exceptions. ##LL_ADD_INTEGRATION_TEST(llexception "" "${test_libs}") + # Skip precompiled header for tests that need special handling + set_source_files_properties( + tests/llsd_test.cpp + PROPERTIES + SKIP_PRECOMPILE_HEADERS TRUE + ) + endif (LL_TESTS) diff --git a/indra/llcommon/StackWalker.cpp b/indra/llcommon/StackWalker.cpp index 77ae4db4bd..a281fe83f6 100644 --- a/indra/llcommon/StackWalker.cpp +++ b/indra/llcommon/StackWalker.cpp @@ -904,7 +904,7 @@ bool StackWalker::LoadModules() SetLastError(ERROR_DLL_INIT_FAILED); return false; } - if (m_modulesLoaded != FALSE) + if (m_modulesLoaded) return true; // Build the sym-path: diff --git a/indra/llcommon/ctype_workaround.h b/indra/llcommon/ctype_workaround.h deleted file mode 100644 index 89a47fe3db..0000000000 --- a/indra/llcommon/ctype_workaround.h +++ /dev/null @@ -1,54 +0,0 @@ -/** - * @file ctype_workaround.h - * @brief The workaround is to create some legacy symbols that point - * to the correct symbols, which avoids link errors. - * - * $LicenseInfo:firstyear=2006&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 _CTYPE_WORKAROUND_H_ -#define _CTYPE_WORKAROUND_H_ - -/** - * the CTYPE_WORKAROUND is needed for linux dev stations that don't - * have the broken libc6 packages needed by our out-of-date static - * libs (such as libcrypto and libcurl). - * - * -- Leviathan 20060113 -*/ - -#include <cctype> - -__const unsigned short int *__ctype_b; -__const __int32_t *__ctype_tolower; -__const __int32_t *__ctype_toupper; - -// call this function at the beginning of main() -void ctype_workaround() -{ - __ctype_b = *(__ctype_b_loc()); - __ctype_toupper = *(__ctype_toupper_loc()); - __ctype_tolower = *(__ctype_tolower_loc()); -} - -#endif - diff --git a/indra/llcommon/fix_macros.h b/indra/llcommon/fix_macros.h deleted file mode 100644 index ed6c26a371..0000000000 --- a/indra/llcommon/fix_macros.h +++ /dev/null @@ -1,21 +0,0 @@ -/** - * @file fix_macros.h - * @author Nat Goodspeed - * @date 2012-11-16 - * @brief The Mac system headers seem to #define macros with obnoxiously - * generic names, preventing any library from using those names. We've - * had to fix these in so many places that it's worth making a header - * file to handle it. - * - * $LicenseInfo:firstyear=2012&license=viewerlgpl$ - * Copyright (c) 2012, Linden Research, Inc. - * $/LicenseInfo$ - */ - -// DON'T use an #include guard: every time we encounter this header, #undef -// these macros all over again. - -// who injects MACROS with such generic names?! Grr. -#ifdef check -#undef check -#endif diff --git a/indra/llcommon/llapr.h b/indra/llcommon/llapr.h index 11e474b5dd..0e1e4277e7 100644 --- a/indra/llcommon/llapr.h +++ b/indra/llcommon/llapr.h @@ -40,7 +40,7 @@ #include "llstring.h" -#include "mutex.h" +#include <mutex> struct apr_dso_handle_t; /** diff --git a/indra/llcommon/llbase32.cpp b/indra/llcommon/llbase32.cpp deleted file mode 100644 index 979114fe86..0000000000 --- a/indra/llcommon/llbase32.cpp +++ /dev/null @@ -1,238 +0,0 @@ -/** - * @file llbase32.cpp - * @brief base32 encoding that returns a std::string - * @author James Cook - * - * Based on code from bitter - * http://ghostwhitecrab.com/bitter/ - * - * Some parts of this file are: - * $LicenseInfo:firstyear=2007&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$ - */ - -/** - * Copyright (c) 2006 Christian Biere <christianbiere@gmx.de> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the authors nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "linden_common.h" - -#include "llbase32.h" - -#include <string> - -// bitter - base32.c starts here - -/* - * See RFC 3548 for details about Base 32 encoding: - * http://www.faqs.org/rfcs/rfc3548.html - */ - -static const char base32_alphabet[32] = { - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', - 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', - 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', - 'Y', 'Z', '2', '3', '4', '5', '6', '7' -}; - -size_t -base32_encode(char *dst, size_t size, const void *data, size_t len) -{ - size_t i = 0; - const U8 *p = (const U8*)data; - const char *end = &dst[size]; - char *q = dst; - - do { - size_t j, k; - U8 x[5]; - char s[8]; - - switch (len - i) { - case 4: k = 7; break; - case 3: k = 5; break; - case 2: k = 3; break; - case 1: k = 2; break; - default: - k = 8; - } - - for (j = 0; j < 5; j++) - x[j] = i < len ? p[i++] : 0; - -/* - +-------+-----------+--------+ - | target| source | source | - | byte | bits | byte | - +-------+-----------+--------+ - | 0 | 7 6 5 4 3 | 0 | - | 1 | 2 1 0 7 6 | 0-1 | - | 2 | 5 4 3 2 1 | 1 | - | 3 | 0 7 6 5 4 | 1-2 | - | 4 | 3 2 1 0 7 | 2-3 | - | 5 | 6 5 4 3 2 | 3 | - | 6 | 1 0 7 6 5 | 3-4 | - | 7 | 4 3 2 1 0 | 4 | - +-------+-----------+--------+ - -*/ - - s[0] = (x[0] >> 3); - s[1] = ((x[0] & 0x07) << 2) | (x[1] >> 6); - s[2] = (x[1] >> 1) & 0x1f; - s[3] = ((x[1] & 0x01) << 4) | (x[2] >> 4); - s[4] = ((x[2] & 0x0f) << 1) | (x[3] >> 7); - s[5] = (x[3] >> 2) & 0x1f; - s[6] = ((x[3] & 0x03) << 3) | (x[4] >> 5); - s[7] = x[4] & 0x1f; - - for (j = 0; j < k && q != end; j++) - *q++ = base32_alphabet[(U8) s[j]]; - - } while (i < len); - - return q - dst; -} - -/* *TODO: Implement base32 encode. - -static inline int -ascii_toupper(int c) -{ - return c >= 97 && c <= 122 ? c - 32 : c; -} - -static inline int -ascii_tolower(int c) -{ - return c >= 65 && c <= 90 ? c + 32 : c; -} - - -static char base32_map[(unsigned char) -1]; - -size_t -base32_decode(char *dst, size_t size, const void *data, size_t len) -{ - const char *end = &dst[size]; - const unsigned char *p = data; - char *q = dst; - size_t i; - unsigned max_pad = 3; - - if (0 == base32_map[0]) { - for (i = 0; i < LL_ARRAY_SIZE(base32_map); i++) { - const char *x; - - x = memchr(base32_alphabet, ascii_toupper(i), sizeof base32_alphabet); - base32_map[i] = x ? (x - base32_alphabet) : (unsigned char) -1; - } - } - - for (i = 0; i < len && max_pad > 0; i++) { - unsigned char c; - char s[8]; - size_t j; - - c = p[i]; - if ('=' == c) { - max_pad--; - c = 0; - } else { - c = base32_map[c]; - if ((unsigned char) -1 == c) { - return -1; - } - } - - j = i % LL_ARRAY_SIZE(s); - s[j] = c; - - if (7 == j) { - char b[5]; - - b[0] = ((s[0] << 3) & 0xf8) | ((s[1] >> 2) & 0x07); - b[1] = ((s[1] & 0x03) << 6) | ((s[2] & 0x1f) << 1) | ((s[3] >> 4) & 1); - b[2] = ((s[3] & 0x0f) << 4) | ((s[4] >> 1) & 0x0f); - b[3] = ((s[4] & 1) << 7) | ((s[5] & 0x1f) << 2) | ((s[6] >> 3) & 0x03); - b[4] = ((s[6] & 0x07) << 5) | (s[7] & 0x1f); - - for (j = 0; j < LL_ARRAY_SIZE(b); j++) { - if (q != end) - *q = b[j]; - q++; - } - } - } - - return q - dst; -} -*/ - - -// The following is -// Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. -// static -std::string LLBase32::encode(const U8* input, size_t input_size) -{ - std::string output; - if (input) - { - // Each 5 byte chunk of input is represented by an - // 8 byte chunk of output. - size_t input_chunks = (input_size + 4) / 5; - size_t output_size = input_chunks * 8; - - output.resize(output_size); - - size_t encoded = base32_encode(&output[0], output_size, input, input_size); - - LL_INFOS() << "encoded " << encoded << " into buffer of size " - << output_size << LL_ENDL; - } - return output; -} diff --git a/indra/llcommon/llbase32.h b/indra/llcommon/llbase32.h deleted file mode 100644 index 8cfbd7ef53..0000000000 --- a/indra/llcommon/llbase32.h +++ /dev/null @@ -1,37 +0,0 @@ -/** - * @file llbase32.h - * @brief base32 encoding that returns a std::string - * @author James Cook - * - * $LicenseInfo:firstyear=2007&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 LLBASE32_H -#define LLBASE32_H - -class LL_COMMON_API LLBase32 -{ -public: - static std::string encode(const U8* input, size_t input_size); -}; - -#endif diff --git a/indra/llcommon/llcond.h b/indra/llcommon/llcond.h index 2df1719941..b72ea33dea 100644 --- a/indra/llcommon/llcond.h +++ b/indra/llcommon/llcond.h @@ -17,7 +17,7 @@ #include "llunits.h" #include "llcoros.h" #include LLCOROS_MUTEX_HEADER -#include "mutex.h" +#include <mutex> #include <chrono> /** diff --git a/indra/llcommon/llcoros.h b/indra/llcommon/llcoros.h index 9df52b6ed5..602c65b9ba 100644 --- a/indra/llcommon/llcoros.h +++ b/indra/llcommon/llcoros.h @@ -34,10 +34,10 @@ #include <boost/fiber/future/future.hpp> #include <boost/fiber/future/promise.hpp> #include <boost/fiber/recursive_mutex.hpp> -#include "mutex.h" #include "llsingleton.h" #include "llinstancetracker.h" #include <functional> +#include <mutex> #include <string> #include <exception> #include <queue> diff --git a/indra/llcommon/llfixedbuffer.h b/indra/llcommon/llfixedbuffer.h index 1234d2014f..d2cd660c18 100644 --- a/indra/llcommon/llfixedbuffer.h +++ b/indra/llcommon/llfixedbuffer.h @@ -27,7 +27,7 @@ #ifndef LL_LLFIXEDBUFFER_H #define LL_LLFIXEDBUFFER_H -#include "timer.h" +#include "lltimer.h" #include <deque> #include <string> #include "llstring.h" diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h index 5a7f27e688..734365767d 100644 --- a/indra/llcommon/llinstancetracker.h +++ b/indra/llcommon/llinstancetracker.h @@ -37,7 +37,7 @@ #include <memory> #include <type_traits> -#include "mutex.h" +#include <mutex> #include <boost/iterator/transform_iterator.hpp> #include <boost/iterator/indirect_iterator.hpp> diff --git a/indra/llcommon/llmutex.h b/indra/llcommon/llmutex.h index f3615a1270..bc3d8fed06 100644 --- a/indra/llcommon/llmutex.h +++ b/indra/llcommon/llmutex.h @@ -30,7 +30,7 @@ #include "stdtypes.h" #include "llthread.h" -#include "mutex.h" +#include <mutex> #include <shared_mutex> #include <unordered_map> #include <condition_variable> diff --git a/indra/llcommon/llsdjson.cpp b/indra/llcommon/llsdjson.cpp index 542a3c26e3..9abca48670 100644 --- a/indra/llcommon/llsdjson.cpp +++ b/indra/llcommon/llsdjson.cpp @@ -26,7 +26,6 @@ // Must turn on conditional declarations in header file so definitions end up // with proper linkage. -#define LLSD_DEBUG_INFO #include "linden_common.h" #include "llsdjson.h" diff --git a/indra/llcommon/llsingleton.h b/indra/llcommon/llsingleton.h index 3fba8602ee..81e69ab63c 100644 --- a/indra/llcommon/llsingleton.h +++ b/indra/llcommon/llsingleton.h @@ -30,7 +30,7 @@ #include <list> #include <typeinfo> #include <vector> -#include "mutex.h" +#include <mutex> #include "lockstatic.h" #include "llthread.h" // on_main_thread() #include "llmainthreadtask.h" diff --git a/indra/llcommon/llstreamqueue.cpp b/indra/llcommon/llstreamqueue.cpp deleted file mode 100644 index 981d913749..0000000000 --- a/indra/llcommon/llstreamqueue.cpp +++ /dev/null @@ -1,24 +0,0 @@ -/** - * @file llstreamqueue.cpp - * @author Nat Goodspeed - * @date 2012-01-05 - * @brief Implementation for llstreamqueue. - * - * $LicenseInfo:firstyear=2012&license=viewerlgpl$ - * Copyright (c) 2012, Linden Research, Inc. - * $/LicenseInfo$ - */ - -// Precompiled header -#include "linden_common.h" -// associated header -#include "llstreamqueue.h" -// STL headers -// std headers -// external library headers -// other Linden headers - -// As of this writing, llstreamqueue.h is entirely template-based, therefore -// we don't strictly need a corresponding .cpp file. However, our CMake test -// macro assumes one. Here it is. -bool llstreamqueue_cpp_ignored = true; diff --git a/indra/llcommon/llstreamqueue.h b/indra/llcommon/llstreamqueue.h deleted file mode 100644 index 01689457dd..0000000000 --- a/indra/llcommon/llstreamqueue.h +++ /dev/null @@ -1,240 +0,0 @@ -/** - * @file llstreamqueue.h - * @author Nat Goodspeed - * @date 2012-01-04 - * @brief Definition of LLStreamQueue - * - * $LicenseInfo:firstyear=2012&license=viewerlgpl$ - * Copyright (c) 2012, Linden Research, Inc. - * $/LicenseInfo$ - */ - -#if ! defined(LL_LLSTREAMQUEUE_H) -#define LL_LLSTREAMQUEUE_H - -#include <string> -#include <list> -#include <iosfwd> // std::streamsize -#include <boost/iostreams/categories.hpp> - -/** - * This class is a growable buffer between a producer and consumer. It serves - * as a queue usable with Boost.Iostreams -- hence, a "stream queue." - * - * This is especially useful for buffering nonblocking I/O. For instance, we - * want application logic to be able to serialize LLSD to a std::ostream. We - * may write more data than the destination pipe can handle all at once, but - * it's imperative NOT to block the application-level serialization call. So - * we buffer it instead. Successive frames can try nonblocking writes to the - * destination pipe until all buffered data has been sent. - * - * Similarly, we want application logic be able to deserialize LLSD from a - * std::istream. Again, we must not block that deserialize call waiting for - * more data to arrive from the input pipe! Instead we build up a buffer over - * a number of frames, using successive nonblocking reads, until we have - * "enough" data to be able to present it through a std::istream. - * - * @note The use cases for this class overlap somewhat with those for the - * LLIOPipe/LLPumpIO hierarchies, and indeed we considered using those. This - * class has two virtues over the older machinery: - * - * # It's vastly simpler -- way fewer concepts. It's not clear to me whether - * there were ever LLIOPipe/etc. use cases that demanded all the fanciness - * rolled in, or whether they were simply overdesigned. In any case, no - * remaining Lindens will admit to familiarity with those classes -- and - * they're sufficiently obtuse that it would take considerable learning - * curve to figure out how to use them properly. The bottom line is that - * current management is not keen on any more engineers climbing that curve. - * # This class is designed around available components such as std::string, - * std::list, Boost.Iostreams. There's less proprietary code. - */ -template <typename Ch> -class LLGenericStreamQueue -{ -public: - LLGenericStreamQueue(): - mSize(0), - mClosed(false) - {} - - /** - * Boost.Iostreams Source Device facade for use with other Boost.Iostreams - * functionality. LLGenericStreamQueue doesn't quite fit any of the Boost - * 1.48 Iostreams concepts; instead it behaves as both a Sink and a - * Source. This is its Source facade. - */ - struct Source - { - typedef Ch char_type; - typedef boost::iostreams::source_tag category; - - /// Bind the underlying LLGenericStreamQueue - Source(LLGenericStreamQueue& sq): - mStreamQueue(sq) - {} - - // Read up to n characters from the underlying data source into the - // buffer s, returning the number of characters read; return -1 to - // indicate EOF - std::streamsize read(Ch* s, std::streamsize n) - { - return mStreamQueue.read(s, n); - } - - LLGenericStreamQueue& mStreamQueue; - }; - - /** - * Boost.Iostreams Sink Device facade for use with other Boost.Iostreams - * functionality. LLGenericStreamQueue doesn't quite fit any of the Boost - * 1.48 Iostreams concepts; instead it behaves as both a Sink and a - * Source. This is its Sink facade. - */ - struct Sink - { - typedef Ch char_type; - typedef boost::iostreams::sink_tag category; - - /// Bind the underlying LLGenericStreamQueue - Sink(LLGenericStreamQueue& sq): - mStreamQueue(sq) - {} - - /// Write up to n characters from the buffer s to the output sequence, - /// returning the number of characters written - std::streamsize write(const Ch* s, std::streamsize n) - { - return mStreamQueue.write(s, n); - } - - /// Send EOF to consumer - void close() - { - mStreamQueue.close(); - } - - LLGenericStreamQueue& mStreamQueue; - }; - - /// Present Boost.Iostreams Source facade - Source asSource() { return Source(*this); } - /// Present Boost.Iostreams Sink facade - Sink asSink() { return Sink(*this); } - - /// append data to buffer - std::streamsize write(const Ch* s, std::streamsize n) - { - // Unclear how often we might be asked to write 0 bytes -- perhaps a - // naive caller responding to an unready nonblocking read. But if we - // do get such a call, don't add a completely empty BufferList entry. - if (n == 0) - return n; - // We could implement this using a single std::string object, a la - // ostringstream. But the trouble with appending to a string is that - // you might have to recopy all previous contents to grow its size. If - // we want this to scale to large data volumes, better to allocate - // individual pieces. - mBuffer.push_back(string(s, n)); - mSize += n; - return n; - } - - /** - * Inform this LLGenericStreamQueue that no further data are forthcoming. - * For our purposes, close() is strictly a producer-side operation; - * there's little point in closing the consumer side. - */ - void close() - { - mClosed = true; - } - - /// consume data from buffer - std::streamsize read(Ch* s, std::streamsize n) - { - // read() is actually a convenience method for peek() followed by - // skip(). - std::streamsize got(peek(s, n)); - // We can only skip() as many characters as we can peek(); ignore - // skip() return here. - skip(n); - return got; - } - - /// Retrieve data from buffer without consuming. Like read(), return -1 on - /// EOF. - std::streamsize peek(Ch* s, std::streamsize n) const; - - /// Consume data from buffer without retrieving. Unlike read() and peek(), - /// at EOF we simply skip 0 characters. - std::streamsize skip(std::streamsize n); - - /// How many characters do we currently have buffered? - std::streamsize size() const - { - return mSize; - } - -private: - typedef std::basic_string<Ch> string; - typedef std::list<string> BufferList; - BufferList mBuffer; - std::streamsize mSize; - bool mClosed; -}; - -template <typename Ch> -std::streamsize LLGenericStreamQueue<Ch>::peek(Ch* s, std::streamsize n) const -{ - // Here we may have to build up 'n' characters from an arbitrary - // number of individual BufferList entries. - typename BufferList::const_iterator bli(mBuffer.begin()), blend(mBuffer.end()); - // Indicate EOF if producer has closed the pipe AND we've exhausted - // all previously-buffered data. - if (mClosed && bli == blend) - { - return -1; - } - // Here either producer hasn't yet closed, or we haven't yet exhausted - // remaining data. - std::streamsize needed(n), got(0); - // Loop until either we run out of BufferList entries or we've - // completely satisfied the request. - for ( ; bli != blend && needed; ++bli) - { - std::streamsize chunk(std::min(needed, std::streamsize(bli->length()))); - std::copy(bli->begin(), bli->begin() + chunk, s); - needed -= chunk; - s += chunk; - got += chunk; - } - return got; -} - -template <typename Ch> -std::streamsize LLGenericStreamQueue<Ch>::skip(std::streamsize n) -{ - typename BufferList::iterator bli(mBuffer.begin()), blend(mBuffer.end()); - std::streamsize toskip(n), skipped(0); - while (bli != blend && (size_t)toskip >= bli->length()) - { - std::streamsize chunk(bli->length()); - typename BufferList::iterator zap(bli++); - mBuffer.erase(zap); - mSize -= chunk; - toskip -= chunk; - skipped += chunk; - } - if (bli != blend && toskip) - { - bli->erase(bli->begin(), bli->begin() + toskip); - mSize -= toskip; - skipped += toskip; - } - return skipped; -} - -typedef LLGenericStreamQueue<char> LLStreamQueue; -typedef LLGenericStreamQueue<wchar_t> LLWStreamQueue; - -#endif /* ! defined(LL_LLSTREAMQUEUE_H) */ diff --git a/indra/llcommon/llthreadsafequeue.h b/indra/llcommon/llthreadsafequeue.h index 1a1d06a6fd..2a18b4a438 100644 --- a/indra/llcommon/llthreadsafequeue.h +++ b/indra/llcommon/llthreadsafequeue.h @@ -32,7 +32,7 @@ #include <boost/fiber/timed_mutex.hpp> #include LLCOROS_CONDVAR_HEADER #include "llexception.h" -#include "mutex.h" +#include <mutex> #include <chrono> #include <queue> #include <string> diff --git a/indra/llcommon/lockstatic.h b/indra/llcommon/lockstatic.h index 7cc9b7eec0..db4c7af0ec 100644 --- a/indra/llcommon/lockstatic.h +++ b/indra/llcommon/lockstatic.h @@ -13,7 +13,7 @@ #if ! defined(LL_LOCKSTATIC_H) #define LL_LOCKSTATIC_H -#include "mutex.h" // std::unique_lock +#include <mutex> // std::unique_lock namespace llthread { diff --git a/indra/llcommon/mutex.h b/indra/llcommon/mutex.h deleted file mode 100644 index 82e46315e2..0000000000 --- a/indra/llcommon/mutex.h +++ /dev/null @@ -1,22 +0,0 @@ -/** - * @file mutex.h - * @author Nat Goodspeed - * @date 2019-12-03 - * @brief Wrap <mutex> in odious boilerplate - * - * $LicenseInfo:firstyear=2019&license=viewerlgpl$ - * Copyright (c) 2019, Linden Research, Inc. - * $/LicenseInfo$ - */ - -#if LL_WINDOWS -#pragma warning (push) -#pragma warning (disable:4265) -#endif -// warning C4265: 'std::_Pad' : class has virtual functions, but destructor is not virtual - -#include <mutex> - -#if LL_WINDOWS -#pragma warning (pop) -#endif diff --git a/indra/llcommon/tests/llallocator_heap_profile_test.cpp b/indra/llcommon/tests/llallocator_heap_profile_test.cpp deleted file mode 100644 index da8b54ffc0..0000000000 --- a/indra/llcommon/tests/llallocator_heap_profile_test.cpp +++ /dev/null @@ -1,144 +0,0 @@ -/** - * @file llallocator_heap_profile_test.cpp - * @author Brad Kittenbrink - * @date 2008-02- - * @brief Test for llallocator_heap_profile.cpp. - * - * $LicenseInfo:firstyear=2009&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 "../llallocator_heap_profile.h" -#include "../test/lltut.h" - -namespace tut -{ - struct llallocator_heap_profile_data - { - LLAllocatorHeapProfile prof; - - static char const * const sample_win_profile; - // *TODO - get test output from mac/linux tcmalloc - static char const * const sample_mac_profile; - static char const * const sample_lin_profile; - - static char const * const crash_testcase; - }; - typedef test_group<llallocator_heap_profile_data> factory; - typedef factory::object object; -} -namespace -{ - tut::factory llallocator_heap_profile_test_factory("LLAllocatorHeapProfile"); -} - -namespace tut -{ - template<> template<> - void object::test<1>() - { - prof.parse(sample_win_profile); - - ensure_equals("count lines", prof.mLines.size() , 5); - ensure_equals("alloc counts", prof.mLines[0].mLiveCount, 2131854U); - ensure_equals("alloc counts", prof.mLines[0].mLiveSize, 2245710106ULL); - ensure_equals("alloc counts", prof.mLines[0].mTotalCount, 14069198U); - ensure_equals("alloc counts", prof.mLines[0].mTotalSize, 4295177308ULL); - ensure_equals("count markers", prof.mLines[0].mTrace.size(), 0); - ensure_equals("count markers", prof.mLines[1].mTrace.size(), 0); - ensure_equals("count markers", prof.mLines[2].mTrace.size(), 4); - ensure_equals("count markers", prof.mLines[3].mTrace.size(), 6); - ensure_equals("count markers", prof.mLines[4].mTrace.size(), 7); - - //prof.dump(std::cout); - } - - template<> template<> - void object::test<2>() - { - prof.parse(crash_testcase); - - ensure_equals("count lines", prof.mLines.size(), 2); - ensure_equals("alloc counts", prof.mLines[0].mLiveCount, 3U); - ensure_equals("alloc counts", prof.mLines[0].mLiveSize, 1049652ULL); - ensure_equals("alloc counts", prof.mLines[0].mTotalCount, 8U); - ensure_equals("alloc counts", prof.mLines[0].mTotalSize, 1049748ULL); - ensure_equals("count markers", prof.mLines[0].mTrace.size(), 0); - ensure_equals("count markers", prof.mLines[1].mTrace.size(), 0); - - //prof.dump(std::cout); - } - - template<> template<> - void object::test<3>() - { - // test that we don't crash on edge case data - prof.parse(""); - ensure("emtpy on error", prof.mLines.empty()); - - prof.parse("heap profile:"); - ensure("emtpy on error", prof.mLines.empty()); - } - -char const * const llallocator_heap_profile_data::sample_win_profile = -"heap profile: 2131854: 2245710106 [14069198: 4295177308] @\n" -"308592: 1073398388 [966564: 1280998739] @\n" -"462651: 375969538 [1177377: 753561247] @ 2 3 6 1\n" -"314744: 206611283 [2008722: 570934755] @ 2 3 3 7 21 32\n" -"277152: 82862770 [621961: 168503640] @ 2 3 3 7 21 32 87\n" -"\n" -"MAPPED_LIBRARIES:\n" -"00400000-02681000 r-xp 00000000 00:00 0 c:\\proj\\tcmalloc-eval-9\\indra\\build-vc80\\newview\\RelWithDebInfo\\secondlife-bin.exe\n" -"77280000-773a7000 r-xp 00000000 00:00 0 C:\\Windows\\system32\\ntdll.dll\n" -"76df0000-76ecb000 r-xp 00000000 00:00 0 C:\\Windows\\system32\\kernel32.dll\n" -"76000000-76073000 r-xp 00000000 00:00 0 C:\\Windows\\system32\\comdlg32.dll\n" -"75ee0000-75f8a000 r-xp 00000000 00:00 0 C:\\Windows\\system32\\msvcrt.dll\n" -"76c30000-76c88000 r-xp 00000000 00:00 0 C:\\Windows\\system32\\SHLWAPI.dll\n" -"75f90000-75fdb000 r-xp 00000000 00:00 0 C:\\Windows\\system32\\GDI32.dll\n" -"77420000-774bd000 r-xp 00000000 00:00 0 C:\\Windows\\system32\\USER32.dll\n" -"75e10000-75ed6000 r-xp 00000000 00:00 0 C:\\Windows\\system32\\ADVAPI32.dll\n" -"75b00000-75bc2000 r-xp 00000000 00:00 0 C:\\Windows\\system32\\RPCRT4.dll\n" -"72ca0000-72d25000 r-xp 00000000 00:00 0 C:\\Windows\\WinSxS\\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.6001.18000_none_886786f450a74a05\\COMCTL32.dll\n" -"76120000-76c30000 r-xp 00000000 00:00 0 C:\\Windows\\system32\\SHELL32.dll\n" -"71ce0000-71d13000 r-xp 00000000 00:00 0 C:\\Windows\\system32\\DINPUT8.dll\n"; - - -char const * const llallocator_heap_profile_data::crash_testcase = -"heap profile: 3: 1049652 [ 8: 1049748] @\n" -" 3: 1049652 [ 8: 1049748] @\n" -"\n" -"MAPPED_LIBRARIES:\n" -"00400000-004d5000 r-xp 00000000 00:00 0 c:\\code\\linden\\tcmalloc\\indra\\build-vc80\\llcommon\\RelWithDebInfo\\llallocator_test.exe\n" -"7c900000-7c9af000 r-xp 00000000 00:00 0 C:\\WINDOWS\\system32\\ntdll.dll\n" -"7c800000-7c8f6000 r-xp 00000000 00:00 0 C:\\WINDOWS\\system32\\kernel32.dll\n" -"77dd0000-77e6b000 r-xp 00000000 00:00 0 C:\\WINDOWS\\system32\\ADVAPI32.dll\n" -"77e70000-77f02000 r-xp 00000000 00:00 0 C:\\WINDOWS\\system32\\RPCRT4.dll\n" -"77fe0000-77ff1000 r-xp 00000000 00:00 0 C:\\WINDOWS\\system32\\Secur32.dll\n" -"71ab0000-71ac7000 r-xp 00000000 00:00 0 C:\\WINDOWS\\system32\\WS2_32.dll\n" -"77c10000-77c68000 r-xp 00000000 00:00 0 C:\\WINDOWS\\system32\\msvcrt.dll\n" -"71aa0000-71aa8000 r-xp 00000000 00:00 0 C:\\WINDOWS\\system32\\WS2HELP.dll\n" -"76bf0000-76bfb000 r-xp 00000000 00:00 0 C:\\WINDOWS\\system32\\PSAPI.DLL\n" -"5b860000-5b8b5000 r-xp 00000000 00:00 0 C:\\WINDOWS\\system32\\NETAPI32.dll\n" -"10000000-10041000 r-xp 00000000 00:00 0 c:\\code\\linden\\tcmalloc\\indra\\build-vc80\\llcommon\\RelWithDebInfo\\libtcmalloc_minimal.dll\n" -"7c420000-7c4a7000 r-xp 00000000 00:00 0 C:\\WINDOWS\\WinSxS\\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.1433_x-ww_5cf844d2\\MSVCP80.dll\n" -"78130000-781cb000 r-xp 00000000 00:00 0 C:\\WINDOWS\\WinSxS\\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.1433_x-ww_5cf844d2\\MSVCR80.dll\n"; - -} diff --git a/indra/llcommon/tests/llallocator_test.cpp b/indra/llcommon/tests/llallocator_test.cpp deleted file mode 100644 index a7573641c7..0000000000 --- a/indra/llcommon/tests/llallocator_test.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/** - * @file llallocator_test.cpp - * @author Brad Kittenbrink - * @date 2008-02- - * @brief Test for llallocator.cpp. - * - * $LicenseInfo:firstyear=2009&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 "../llallocator.h" -#include "../test/lltut.h" - -namespace tut -{ - struct llallocator_data - { - LLAllocator llallocator; - }; - typedef test_group<llallocator_data> factory; - typedef factory::object object; -} -namespace -{ - tut::factory llallocator_test_factory("LLAllocator"); -} - -namespace tut -{ - template<> template<> - void object::test<1>() - { - llallocator.setProfilingEnabled(false); - ensure("Profiler disable", !llallocator.isProfiling()); - } - -#if LL_USE_TCMALLOC - template<> template<> - void object::test<2>() - { - llallocator.setProfilingEnabled(true); - ensure("Profiler enable", llallocator.isProfiling()); - } - - template <> template <> - void object::test<3>() - { - llallocator.setProfilingEnabled(true); - - char * test_alloc = new char[1024]; - - llallocator.getProfile(); - - delete [] test_alloc; - - llallocator.getProfile(); - - // *NOTE - this test isn't ensuring anything right now other than no - // exceptions are thrown. - } -#endif // LL_USE_TCMALLOC -}; diff --git a/indra/test/llapp_tut.cpp b/indra/llcommon/tests/llapp_test.cpp index 114af6edbf..114af6edbf 100644 --- a/indra/test/llapp_tut.cpp +++ b/indra/llcommon/tests/llapp_test.cpp diff --git a/indra/test/lldoubledispatch_tut.cpp b/indra/llcommon/tests/lldoubledispatch_test.cpp index 79c4edc058..79c4edc058 100644 --- a/indra/test/lldoubledispatch_tut.cpp +++ b/indra/llcommon/tests/lldoubledispatch_test.cpp diff --git a/indra/test/llevents_tut.cpp b/indra/llcommon/tests/llevents_test.cpp index c5d5dcb9d4..c5d5dcb9d4 100644 --- a/indra/test/llevents_tut.cpp +++ b/indra/llcommon/tests/llevents_test.cpp diff --git a/indra/test/llhttpdate_tut.cpp b/indra/llcommon/tests/llhttpdate_test.cpp index b580b09a9f..b580b09a9f 100644 --- a/indra/test/llhttpdate_tut.cpp +++ b/indra/llcommon/tests/llhttpdate_test.cpp diff --git a/indra/llcommon/tests/lllazy_test.cpp b/indra/llcommon/tests/lllazy_test.cpp deleted file mode 100644 index 923fe952a9..0000000000 --- a/indra/llcommon/tests/lllazy_test.cpp +++ /dev/null @@ -1,239 +0,0 @@ -/** - * @file lllazy_test.cpp - * @author Nat Goodspeed - * @date 2009-01-28 - * @brief Tests of lllazy.h. - * - * $LicenseInfo:firstyear=2009&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$ - */ - -// Precompiled header -#include "linden_common.h" -// associated header -#include "lllazy.h" -// STL headers -#include <iostream> -// std headers -// external library headers -#include <boost/lambda/construct.hpp> -#include <boost/lambda/bind.hpp> -// other Linden headers -#include "../test/lltut.h" -#include "../test/catch_and_store_what_in.h" - -namespace bll = boost::lambda; - -/***************************************************************************** -* Test classes -*****************************************************************************/ - -// Let's say that because of its many external dependencies, YuckyFoo is very -// hard to instantiate in a test harness. -class YuckyFoo -{ -public: - virtual ~YuckyFoo() {} - virtual std::string whoami() const { return "YuckyFoo"; } -}; - -// Let's further suppose that YuckyBar is another hard-to-instantiate class. -class YuckyBar -{ -public: - YuckyBar(const std::string& which): - mWhich(which) - {} - virtual ~YuckyBar() {} - - virtual std::string identity() const { return std::string("YuckyBar(") + mWhich + ")"; } - -private: - const std::string mWhich; -}; - -// Pretend that this class would be tough to test because, up until we started -// trying to test it, it contained instances of both YuckyFoo and YuckyBar. -// Now we've refactored so it contains LLLazy<YuckyFoo> and LLLazy<YuckyBar>. -// More than that, it contains them by virtue of deriving from -// LLLazyBase<YuckyFoo> and LLLazyBase<YuckyBar>. -// We postulate two different LLLazyBases because, with only one, you need not -// specify *which* get()/set() method you're talking about. That's a simpler -// case. -class NeedsTesting: public LLLazyBase<YuckyFoo>, public LLLazyBase<YuckyBar> -{ -public: - NeedsTesting(): - // mYuckyBar("RealYuckyBar") - LLLazyBase<YuckyBar>(bll::bind(bll::new_ptr<YuckyBar>(), "RealYuckyBar")) - {} - virtual ~NeedsTesting() {} - - virtual std::string describe() const - { - return std::string("NeedsTesting(") + getLazy<YuckyFoo>(this).whoami() + ", " + - getLazy<YuckyBar>(this).identity() + ")"; - } - -private: - // These instance members were moved to LLLazyBases: - // YuckyFoo mYuckyFoo; - // YuckyBar mYuckyBar; -}; - -// Fake up a test YuckyFoo class -class TestFoo: public YuckyFoo -{ -public: - virtual std::string whoami() const { return "TestFoo"; } -}; - -// and a test YuckyBar -class TestBar: public YuckyBar -{ -public: - TestBar(const std::string& which): YuckyBar(which) {} - virtual std::string identity() const - { - return std::string("TestBar(") + YuckyBar::identity() + ")"; - } -}; - -// So here's a test subclass of NeedsTesting that uses TestFoo and TestBar -// instead of YuckyFoo and YuckyBar. -class TestNeedsTesting: public NeedsTesting -{ -public: - TestNeedsTesting() - { - // Exercise setLazy(T*) - setLazy<YuckyFoo>(this, new TestFoo()); - // Exercise setLazy(Factory) - setLazy<YuckyBar>(this, bll::bind(bll::new_ptr<TestBar>(), "TestYuckyBar")); - } - - virtual std::string describe() const - { - return std::string("TestNeedsTesting(") + NeedsTesting::describe() + ")"; - } - - void toolate() - { - setLazy<YuckyFoo>(this, new TestFoo()); - } -}; - -// This class tests having an explicit LLLazy<T> instance as a named member, -// rather than deriving from LLLazyBase<T>. -class LazyMember -{ -public: - YuckyFoo& getYuckyFoo() { return *mYuckyFoo; } - std::string whoisit() const { return mYuckyFoo->whoami(); } - -protected: - LLLazy<YuckyFoo> mYuckyFoo; -}; - -// This is a test subclass of the above, dynamically replacing the -// LLLazy<YuckyFoo> member. -class TestLazyMember: public LazyMember -{ -public: - // use factory setter - TestLazyMember() - { - mYuckyFoo.set(bll::new_ptr<TestFoo>()); - } - - // use instance setter - TestLazyMember(YuckyFoo* instance) - { - mYuckyFoo.set(instance); - } -}; - -/***************************************************************************** -* TUT -*****************************************************************************/ -namespace tut -{ - struct lllazy_data - { - }; - typedef test_group<lllazy_data> lllazy_group; - typedef lllazy_group::object lllazy_object; - lllazy_group lllazygrp("lllazy"); - - template<> template<> - void lllazy_object::test<1>() - { - // Instantiate an official one, just because we can - NeedsTesting nt; - // and a test one - TestNeedsTesting tnt; -// std::cout << nt.describe() << '\n'; - ensure_equals(nt.describe(), "NeedsTesting(YuckyFoo, YuckyBar(RealYuckyBar))"); -// std::cout << tnt.describe() << '\n'; - ensure_equals(tnt.describe(), - "TestNeedsTesting(NeedsTesting(TestFoo, TestBar(YuckyBar(TestYuckyBar))))"); - } - - template<> template<> - void lllazy_object::test<2>() - { - TestNeedsTesting tnt; - std::string threw = catch_what<LLLazyCommon::InstanceChange>([&tnt](){ - tnt.toolate(); - }); - ensure_contains("InstanceChange exception", threw, "replace LLLazy instance"); - } - - template<> template<> - void lllazy_object::test<3>() - { - { - LazyMember lm; - // operator*() on-demand instantiation - ensure_equals(lm.getYuckyFoo().whoami(), "YuckyFoo"); - } - { - LazyMember lm; - // operator->() on-demand instantiation - ensure_equals(lm.whoisit(), "YuckyFoo"); - } - } - - template<> template<> - void lllazy_object::test<4>() - { - { - // factory setter - TestLazyMember tlm; - ensure_equals(tlm.whoisit(), "TestFoo"); - } - { - // instance setter - TestLazyMember tlm(new TestFoo()); - ensure_equals(tlm.whoisit(), "TestFoo"); - } - } -} // namespace tut diff --git a/indra/llcommon/tests/llmemtype_test.cpp b/indra/llcommon/tests/llmemtype_test.cpp deleted file mode 100644 index 2d64d342ae..0000000000 --- a/indra/llcommon/tests/llmemtype_test.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/** - * @file llmemtype_test.cpp - * @author Palmer Truelson - * @date 2008-03- - * @brief Test for llmemtype.cpp. - * - * $LicenseInfo:firstyear=2009&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 "../llmemtype.h" -#include "../test/lltut.h" -#include "../llallocator.h" - - -#include <stack> - -std::stack<S32> memTypeStack; - -void LLAllocator::pushMemType(S32 i) -{ - memTypeStack.push(i); -} - -S32 LLAllocator::popMemType(void) -{ - S32 ret = memTypeStack.top(); - memTypeStack.pop(); - return ret; -} - -namespace tut -{ - struct llmemtype_data - { - }; - - typedef test_group<llmemtype_data> factory; - typedef factory::object object; -} -namespace -{ - tut::factory llmemtype_test_factory("LLMemType"); -} - -namespace tut -{ - template<> template<> - void object::test<1>() - { - ensure("Simplest test ever", true); - } - - // test with no scripts - template<> template<> - void object::test<2>() - { - { - LLMemType m1(LLMemType::MTYPE_INIT); - } - ensure("Test that you can construct and destruct the mem type"); - } - - // test creation and stack testing - template<> template<> - void object::test<3>() - { - { - ensure("Test that creation and destruction properly inc/dec the stack"); - ensure_equals(memTypeStack.size(), 0); - { - LLMemType m1(LLMemType::MTYPE_INIT); - ensure_equals(memTypeStack.size(), 1); - LLMemType m2(LLMemType::MTYPE_STARTUP); - ensure_equals(memTypeStack.size(), 2); - } - ensure_equals(memTypeStack.size(), 0); - } - } - - // test with no scripts - template<> template<> - void object::test<4>() - { - // catch the begining and end - std::string test_name = LLMemType::getNameFromID(LLMemType::MTYPE_INIT.mID); - ensure_equals("Init name", test_name, "Init"); - - std::string test_name2 = LLMemType::getNameFromID(LLMemType::MTYPE_VOLUME.mID); - ensure_equals("Volume name", test_name2, "Volume"); - - std::string test_name3 = LLMemType::getNameFromID(LLMemType::MTYPE_OTHER.mID); - ensure_equals("Other name", test_name3, "Other"); - - std::string test_name4 = LLMemType::getNameFromID(-1); - ensure_equals("Invalid name", test_name4, "INVALID"); - } - -}; diff --git a/indra/test/llsd_new_tut.cpp b/indra/llcommon/tests/llsd_test.cpp index cc084df045..9cc93bcd14 100644 --- a/indra/test/llsd_new_tut.cpp +++ b/indra/llcommon/tests/llsd_test.cpp @@ -26,9 +26,9 @@ */ #define LLSD_DEBUG_INFO -#include <tut/tut.hpp> #include "linden_common.h" #include "lltut.h" +#include "llsd.h" #include "llsdtraits.h" #include "llstring.h" diff --git a/indra/llcommon/tests/llsdserialize_test.cpp b/indra/llcommon/tests/llsdserialize_test.cpp index ee315051d8..272eb55521 100644 --- a/indra/llcommon/tests/llsdserialize_test.cpp +++ b/indra/llcommon/tests/llsdserialize_test.cpp @@ -52,7 +52,7 @@ typedef U32 uint32_t; #include "llformat.h" #include "llmemorystream.h" -#include "../test/hexdump.h" +#include "hexdump.h" #include "../test/lltut.h" #include "../test/namedtempfile.h" #include "stringize.h" @@ -1921,12 +1921,12 @@ namespace tut int bufflen{ static_cast<int>(buffstr.length()) }; out.write(reinterpret_cast<const char*>(&bufflen), sizeof(bufflen)); LL_DEBUGS() << "Wrote length: " - << hexdump(reinterpret_cast<const char*>(&bufflen), + << LL::hexdump(reinterpret_cast<const char*>(&bufflen), sizeof(bufflen)) << LL_ENDL; out.write(buffstr.c_str(), buffstr.length()); LL_DEBUGS() << "Wrote data: " - << hexmix(buffstr.c_str(), buffstr.length()) + << LL::hexmix(buffstr.c_str(), buffstr.length()) << LL_ENDL; } } diff --git a/indra/test/llsdutil_tut.cpp b/indra/llcommon/tests/llsdutil_test.cpp index 4b25a02f30..4b25a02f30 100644 --- a/indra/test/llsdutil_tut.cpp +++ b/indra/llcommon/tests/llsdutil_test.cpp diff --git a/indra/llcommon/tests/llstreamqueue_test.cpp b/indra/llcommon/tests/llstreamqueue_test.cpp deleted file mode 100644 index 82b451119e..0000000000 --- a/indra/llcommon/tests/llstreamqueue_test.cpp +++ /dev/null @@ -1,194 +0,0 @@ -/** - * @file llstreamqueue_test.cpp - * @author Nat Goodspeed - * @date 2012-01-05 - * @brief Test for llstreamqueue. - * - * $LicenseInfo:firstyear=2012&license=viewerlgpl$ - * Copyright (c) 2012, Linden Research, Inc. - * $/LicenseInfo$ - */ - -// Precompiled header -#include "linden_common.h" -// associated header -#include "llstreamqueue.h" -// STL headers -#include <vector> -// other Linden headers -#include "../test/lltut.h" -#include "stringize.h" - -/***************************************************************************** -* TUT -*****************************************************************************/ -namespace tut -{ - struct llstreamqueue_data - { - llstreamqueue_data(): - // we want a buffer with actual bytes in it, not an empty vector - buffer(10) - {} - // As LLStreamQueue is merely a typedef for - // LLGenericStreamQueue<char>, and no logic in LLGenericStreamQueue is - // specific to the <char> instantiation, we're comfortable for now - // testing only the narrow-char version. - LLStreamQueue strq; - // buffer for use in multiple tests - std::vector<char> buffer; - }; - typedef test_group<llstreamqueue_data> llstreamqueue_group; - typedef llstreamqueue_group::object object; - llstreamqueue_group llstreamqueuegrp("llstreamqueue"); - - template<> template<> - void object::test<1>() - { - set_test_name("empty LLStreamQueue"); - ensure_equals("brand-new LLStreamQueue isn't empty", - strq.size(), 0); - ensure_equals("brand-new LLStreamQueue returns data", - strq.asSource().read(&buffer[0], buffer.size()), 0); - strq.asSink().close(); - ensure_equals("closed empty LLStreamQueue not at EOF", - strq.asSource().read(&buffer[0], buffer.size()), -1); - } - - template<> template<> - void object::test<2>() - { - set_test_name("one internal block, one buffer"); - LLStreamQueue::Sink sink(strq.asSink()); - ensure_equals("write(\"\")", sink.write("", 0), 0); - ensure_equals("0 write should leave LLStreamQueue empty (size())", - strq.size(), 0); - ensure_equals("0 write should leave LLStreamQueue empty (peek())", - strq.peek(&buffer[0], buffer.size()), 0); - // The meaning of "atomic" is that it must be smaller than our buffer. - std::string atomic("atomic"); - ensure("test data exceeds buffer", atomic.length() < buffer.size()); - ensure_equals(STRINGIZE("write(\"" << atomic << "\")"), - sink.write(&atomic[0], atomic.length()), atomic.length()); - ensure_equals("size() after write()", strq.size(), atomic.length()); - size_t peeklen(strq.peek(&buffer[0], buffer.size())); - ensure_equals(STRINGIZE("peek(\"" << atomic << "\")"), - peeklen, atomic.length()); - ensure_equals(STRINGIZE("peek(\"" << atomic << "\") result"), - std::string(buffer.begin(), buffer.begin() + peeklen), atomic); - ensure_equals("size() after peek()", strq.size(), atomic.length()); - // peek() should not consume. Use a different buffer to prove it isn't - // just leftover data from the first peek(). - std::vector<char> again(buffer.size()); - peeklen = size_t(strq.peek(&again[0], again.size())); - ensure_equals(STRINGIZE("peek(\"" << atomic << "\") again"), - peeklen, atomic.length()); - ensure_equals(STRINGIZE("peek(\"" << atomic << "\") again result"), - std::string(again.begin(), again.begin() + peeklen), atomic); - // now consume. - std::vector<char> third(buffer.size()); - size_t readlen(strq.read(&third[0], third.size())); - ensure_equals(STRINGIZE("read(\"" << atomic << "\")"), - readlen, atomic.length()); - ensure_equals(STRINGIZE("read(\"" << atomic << "\") result"), - std::string(third.begin(), third.begin() + readlen), atomic); - ensure_equals("peek() after read()", strq.peek(&buffer[0], buffer.size()), 0); - ensure_equals("size() after read()", strq.size(), 0); - } - - template<> template<> - void object::test<3>() - { - set_test_name("basic skip()"); - std::string lovecraft("lovecraft"); - ensure("test data exceeds buffer", lovecraft.length() < buffer.size()); - ensure_equals(STRINGIZE("write(\"" << lovecraft << "\")"), - strq.write(&lovecraft[0], lovecraft.length()), lovecraft.length()); - size_t peeklen(strq.peek(&buffer[0], buffer.size())); - ensure_equals(STRINGIZE("peek(\"" << lovecraft << "\")"), - peeklen, lovecraft.length()); - ensure_equals(STRINGIZE("peek(\"" << lovecraft << "\") result"), - std::string(buffer.begin(), buffer.begin() + peeklen), lovecraft); - std::streamsize skip1(4); - ensure_equals(STRINGIZE("skip(" << skip1 << ")"), strq.skip(skip1), skip1); - ensure_equals("size() after skip()", strq.size(), lovecraft.length() - skip1); - size_t readlen(strq.read(&buffer[0], buffer.size())); - ensure_equals(STRINGIZE("read(\"" << lovecraft.substr(skip1) << "\")"), - readlen, lovecraft.length() - skip1); - ensure_equals(STRINGIZE("read(\"" << lovecraft.substr(skip1) << "\") result"), - std::string(buffer.begin(), buffer.begin() + readlen), - lovecraft.substr(skip1)); - ensure_equals("unconsumed", strq.read(&buffer[0], buffer.size()), 0); - } - - template<> template<> - void object::test<4>() - { - set_test_name("skip() multiple blocks"); - std::string blocks[] = { "books of ", "H.P. ", "Lovecraft" }; - std::streamsize total(blocks[0].length() + blocks[1].length() + blocks[2].length()); - std::streamsize leave(5); // len("craft") above - std::streamsize skip(total - leave); - std::streamsize written(0); - for (const std::string& block : blocks) - { - written += strq.write(&block[0], block.length()); - ensure_equals("size() after write()", strq.size(), written); - } - std::streamsize skiplen(strq.skip(skip)); - ensure_equals(STRINGIZE("skip(" << skip << ")"), skiplen, skip); - ensure_equals("size() after skip()", strq.size(), leave); - size_t readlen(strq.read(&buffer[0], buffer.size())); - ensure_equals("read(\"craft\")", readlen, leave); - ensure_equals("read(\"craft\") result", - std::string(buffer.begin(), buffer.begin() + readlen), "craft"); - } - - template<> template<> - void object::test<5>() - { - set_test_name("concatenate blocks"); - std::string blocks[] = { "abcd", "efghij", "klmnopqrs" }; - for (const std::string& block : blocks) - { - strq.write(&block[0], block.length()); - } - std::vector<char> longbuffer(30); - std::streamsize readlen(strq.read(&longbuffer[0], longbuffer.size())); - ensure_equals("read() multiple blocks", - readlen, blocks[0].length() + blocks[1].length() + blocks[2].length()); - ensure_equals("read() multiple blocks result", - std::string(longbuffer.begin(), longbuffer.begin() + readlen), - blocks[0] + blocks[1] + blocks[2]); - } - - template<> template<> - void object::test<6>() - { - set_test_name("split blocks"); - std::string blocks[] = { "abcdefghijklm", "nopqrstuvwxyz" }; - for (const std::string& block : blocks) - { - strq.write(&block[0], block.length()); - } - strq.close(); - // We've already verified what strq.size() should be at this point; - // see above test named "skip() multiple blocks" - std::streamsize chksize(strq.size()); - std::streamsize readlen(strq.read(&buffer[0], buffer.size())); - ensure_equals("read() 0", readlen, buffer.size()); - ensure_equals("read() 0 result", std::string(buffer.begin(), buffer.end()), "abcdefghij"); - chksize -= readlen; - ensure_equals("size() after read() 0", strq.size(), chksize); - readlen = strq.read(&buffer[0], buffer.size()); - ensure_equals("read() 1", readlen, buffer.size()); - ensure_equals("read() 1 result", std::string(buffer.begin(), buffer.end()), "klmnopqrst"); - chksize -= readlen; - ensure_equals("size() after read() 1", strq.size(), chksize); - readlen = strq.read(&buffer[0], buffer.size()); - ensure_equals("read() 2", readlen, chksize); - ensure_equals("read() 2 result", - std::string(buffer.begin(), buffer.begin() + readlen), "uvwxyz"); - ensure_equals("read() 3", strq.read(&buffer[0], buffer.size()), -1); - } -} // namespace tut diff --git a/indra/test/llstreamtools_tut.cpp b/indra/llcommon/tests/llstreamtools_test.cpp index 970afb3b02..970afb3b02 100644 --- a/indra/test/llstreamtools_tut.cpp +++ b/indra/llcommon/tests/llstreamtools_test.cpp diff --git a/indra/llcommon/timer.h b/indra/llcommon/timer.h deleted file mode 100644 index aaa0cf0775..0000000000 --- a/indra/llcommon/timer.h +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @file timer.h - * @brief Legacy wrapper header. - * - * $LicenseInfo:firstyear=2000&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 "lltimer.h" diff --git a/indra/llcorehttp/_refcounted.h b/indra/llcorehttp/_refcounted.h index 1a01d66d14..bc90f8274d 100644 --- a/indra/llcorehttp/_refcounted.h +++ b/indra/llcorehttp/_refcounted.h @@ -30,7 +30,6 @@ #include "linden_common.h" -#include "fix_macros.h" #include <boost/intrusive_ptr.hpp> #include "llatomic.h" diff --git a/indra/llcorehttp/tests/test_httprequest.hpp b/indra/llcorehttp/tests/test_httprequest.hpp index 77ed8df066..68f8c4f71f 100644 --- a/indra/llcorehttp/tests/test_httprequest.hpp +++ b/indra/llcorehttp/tests/test_httprequest.hpp @@ -2744,13 +2744,6 @@ void HttpRequestTestObjectType::test<22>() set_test_name("BUG-2295"); -#if LL_WINDOWS && ADDRESS_SIZE == 64 - // teamcity win64 builds freeze on this test, if you figure out the cause, please fix it - if (getenv("TEAMCITY_PROJECT_NAME")) - { - skip("BUG-2295 - partial load on W64 causes freeze"); - } -#endif // Handler can be stack-allocated *if* there are no dangling // references to it after completion of this method. // Create before memory record as the string copy will bump numbers. @@ -2924,14 +2917,6 @@ void HttpRequestTestObjectType::test<23>() set_test_name("HttpRequest GET 503s with 'Retry-After'"); -#if LL_WINDOWS && ADDRESS_SIZE == 64 - // teamcity win64 builds freeze on this test, if you figure out the cause, please fix it - if (getenv("TEAMCITY_PROJECT_NAME")) - { - skip("llcorehttp 503-with-retry test hangs on Windows 64"); - } -#endif - // This tests mainly that the code doesn't fall over if // various well- and mis-formed Retry-After headers are // sent along with the response. Direct inspection of diff --git a/indra/llfilesystem/lldiriterator.cpp b/indra/llfilesystem/lldiriterator.cpp index b736a577bd..57d4912c94 100644 --- a/indra/llfilesystem/lldiriterator.cpp +++ b/indra/llfilesystem/lldiriterator.cpp @@ -28,7 +28,6 @@ #include "lldiriterator.h" -#include "fix_macros.h" #include "llregex.h" #include <boost/filesystem.hpp> diff --git a/indra/llinventory/CMakeLists.txt b/indra/llinventory/CMakeLists.txt index 22966bc55b..e8f76eaa7d 100644 --- a/indra/llinventory/CMakeLists.txt +++ b/indra/llinventory/CMakeLists.txt @@ -75,4 +75,7 @@ if (LL_TESTS) set(test_libs llinventory llmath llcorehttp llfilesystem ) LL_ADD_INTEGRATION_TEST(inventorymisc "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llparcel "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llpermissions "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llsaleinfo "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(lluserrelations "" "${test_libs}") endif (LL_TESTS) diff --git a/indra/test/llpermissions_tut.cpp b/indra/llinventory/tests/llpermissions_test.cpp index 1328939004..1328939004 100644 --- a/indra/test/llpermissions_tut.cpp +++ b/indra/llinventory/tests/llpermissions_test.cpp diff --git a/indra/test/llsaleinfo_tut.cpp b/indra/llinventory/tests/llsaleinfo_test.cpp index 1da7101aa3..1da7101aa3 100644 --- a/indra/test/llsaleinfo_tut.cpp +++ b/indra/llinventory/tests/llsaleinfo_test.cpp diff --git a/indra/test/lluserrelations_tut.cpp b/indra/llinventory/tests/lluserrelations_test.cpp index 80a659da65..80a659da65 100644 --- a/indra/test/lluserrelations_tut.cpp +++ b/indra/llinventory/tests/lluserrelations_test.cpp diff --git a/indra/llmath/CMakeLists.txt b/indra/llmath/CMakeLists.txt index fb57e5db11..f97e4a5bb6 100644 --- a/indra/llmath/CMakeLists.txt +++ b/indra/llmath/CMakeLists.txt @@ -24,7 +24,6 @@ set(llmath_SOURCE_FILES llquaternion.cpp llrigginginfo.cpp llrect.cpp - llsphere.cpp llvector4a.cpp llvolume.cpp llvolumemgr.cpp @@ -46,8 +45,6 @@ set(llmath_SOURCE_FILES set(llmath_HEADER_FILES CMakeLists.txt - camera.h - coordframe.h llbbox.h llbboxlocal.h llcalc.h @@ -74,7 +71,6 @@ set(llmath_HEADER_FILES llsimdmath.h llsimdtypes.h llsimdtypes.inl - llsphere.h lltreenode.h llvector4a.h llvector4a.inl diff --git a/indra/llmath/camera.h b/indra/llmath/camera.h deleted file mode 100644 index 14a08c5985..0000000000 --- a/indra/llmath/camera.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @file camera.h - * @brief Legacy wrapper header. - * - * $LicenseInfo:firstyear=2000&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 "llcamera.h" diff --git a/indra/llmath/coordframe.h b/indra/llmath/coordframe.h deleted file mode 100644 index e7395b1212..0000000000 --- a/indra/llmath/coordframe.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @file coordframe.h - * @brief Legacy wrapper header. - * - * $LicenseInfo:firstyear=2000&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 "llcoordframe.h" diff --git a/indra/llmath/llsphere.cpp b/indra/llmath/llsphere.cpp deleted file mode 100644 index 5f48764455..0000000000 --- a/indra/llmath/llsphere.cpp +++ /dev/null @@ -1,370 +0,0 @@ -/** - * @file llsphere.cpp - * @author Andrew Meadows - * @brief Simple line class that can compute nearest approach between two lines - * - * $LicenseInfo:firstyear=2007&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 "llsphere.h" - -LLSphere::LLSphere() -: mCenter(0.f, 0.f, 0.f), - mRadius(0.f) -{ } - -LLSphere::LLSphere( const LLVector3& center, F32 radius) -{ - set(center, radius); -} - -void LLSphere::set( const LLVector3& center, F32 radius ) -{ - mCenter = center; - setRadius(radius); -} - -void LLSphere::setCenter( const LLVector3& center) -{ - mCenter = center; -} - -void LLSphere::setRadius( F32 radius) -{ - if (radius < 0.f) - { - radius = -radius; - } - mRadius = radius; -} - -const LLVector3& LLSphere::getCenter() const -{ - return mCenter; -} - -F32 LLSphere::getRadius() const -{ - return mRadius; -} - -// returns 'true' if this sphere completely contains other_sphere -bool LLSphere::contains(const LLSphere& other_sphere) const -{ - F32 separation = (mCenter - other_sphere.mCenter).length(); - return mRadius >= separation + other_sphere.mRadius; -} - -// returns 'true' if this sphere completely contains other_sphere -bool LLSphere::overlaps(const LLSphere& other_sphere) const -{ - F32 separation = (mCenter - other_sphere.mCenter).length(); - return mRadius >= separation - other_sphere.mRadius; -} - -// returns overlap -// negative overlap is closest approach -F32 LLSphere::getOverlap(const LLSphere& other_sphere) const -{ - // separation is distance from other_sphere's edge and this center - return (mCenter - other_sphere.mCenter).length() - mRadius - other_sphere.mRadius; -} - -bool LLSphere::operator==(const LLSphere& rhs) const -{ - return fabs(mRadius - rhs.mRadius) <= FLT_EPSILON && - (mCenter - rhs.mCenter).length() <= FLT_EPSILON; -} - -std::ostream& operator<<( std::ostream& output_stream, const LLSphere& sphere) -{ - output_stream << "{center=" << sphere.mCenter << "," << "radius=" << sphere.mRadius << "}"; - return output_stream; -} - -// static -// removes any spheres that are contained in others -void LLSphere::collapse(std::vector<LLSphere>& sphere_list) -{ - std::vector<LLSphere>::iterator first_itr = sphere_list.begin(); - while (first_itr != sphere_list.end()) - { - bool delete_from_front = false; - - std::vector<LLSphere>::iterator second_itr = first_itr; - ++second_itr; - while (second_itr != sphere_list.end()) - { - if (second_itr->contains(*first_itr)) - { - delete_from_front = true; - break; - } - else if (first_itr->contains(*second_itr)) - { - sphere_list.erase(second_itr++); - } - else - { - ++second_itr; - } - } - - if (delete_from_front) - { - sphere_list.erase(first_itr++); - } - else - { - ++first_itr; - } - } -} - -// static -// returns the bounding sphere that contains both spheres -LLSphere LLSphere::getBoundingSphere(const LLSphere& first_sphere, const LLSphere& second_sphere) -{ - LLVector3 direction = second_sphere.mCenter - first_sphere.mCenter; - - // HACK -- it is possible to get enough floating point error in the - // other getBoundingSphere() method that we have to add some slop - // at the end. Unfortunately, this breaks the link-order invarience - // for the linkability tests... unless we also apply the same slop - // here. - F32 half_milimeter = 0.0005f; - - F32 distance = direction.length(); - if (0.f == distance) - { - direction.setVec(1.f, 0.f, 0.f); - } - else - { - direction.normVec(); - } - // the 'edge' is measured from the first_sphere's center - F32 max_edge = 0.f; - F32 min_edge = 0.f; - - max_edge = llmax(max_edge + first_sphere.getRadius(), max_edge + distance + second_sphere.getRadius() + half_milimeter); - min_edge = llmin(min_edge - first_sphere.getRadius(), min_edge + distance - second_sphere.getRadius() - half_milimeter); - F32 radius = 0.5f * (max_edge - min_edge); - LLVector3 center = first_sphere.mCenter + (0.5f * (max_edge + min_edge)) * direction; - return LLSphere(center, radius); -} - -// static -// returns the bounding sphere that contains an arbitrary set of spheres -LLSphere LLSphere::getBoundingSphere(const std::vector<LLSphere>& sphere_list) -{ - // this algorithm can get relatively inaccurate when the sphere - // collection is 'small' (contained within a bounding sphere of about - // 2 meters or less) - // TODO -- improve the accuracy for small collections of spheres - - LLSphere bounding_sphere( LLVector3(0.f, 0.f, 0.f), 0.f ); - auto sphere_count = sphere_list.size(); - if (1 == sphere_count) - { - // trivial case -- single sphere - std::vector<LLSphere>::const_iterator sphere_itr = sphere_list.begin(); - bounding_sphere = *sphere_itr; - } - else if (2 == sphere_count) - { - // trivial case -- two spheres - std::vector<LLSphere>::const_iterator first_sphere = sphere_list.begin(); - std::vector<LLSphere>::const_iterator second_sphere = first_sphere; - ++second_sphere; - bounding_sphere = LLSphere::getBoundingSphere(*first_sphere, *second_sphere); - } - else if (sphere_count > 0) - { - // non-trivial case -- we will approximate the solution - // - // NOTE -- there is a fancy/fast way to do this for large - // numbers of arbirary N-dimensional spheres -- you can look it - // up on the net. We're dealing with 3D spheres at collection - // sizes of 256 spheres or smaller, so we just use this - // brute force method. - - // TODO -- perhaps would be worthwile to test for the solution where - // the largest spanning radius just happens to work. That is, where - // there are really two spheres that determine the bounding sphere, - // and all others are contained therein. - - // compute the AABB - std::vector<LLSphere>::const_iterator first_itr = sphere_list.begin(); - LLVector3 max_corner = first_itr->getCenter() + first_itr->getRadius() * LLVector3(1.f, 1.f, 1.f); - LLVector3 min_corner = first_itr->getCenter() - first_itr->getRadius() * LLVector3(1.f, 1.f, 1.f); - { - std::vector<LLSphere>::const_iterator sphere_itr = sphere_list.begin(); - for (++sphere_itr; sphere_itr != sphere_list.end(); ++sphere_itr) - { - LLVector3 center = sphere_itr->getCenter(); - F32 radius = sphere_itr->getRadius(); - for (S32 i=0; i<3; ++i) - { - if (center.mV[i] + radius > max_corner.mV[i]) - { - max_corner.mV[i] = center.mV[i] + radius; - } - if (center.mV[i] - radius < min_corner.mV[i]) - { - min_corner.mV[i] = center.mV[i] - radius; - } - } - } - } - - // get the starting center and radius from the AABB - LLVector3 diagonal = max_corner - min_corner; - F32 bounding_radius = 0.5f * diagonal.length(); - LLVector3 bounding_center = 0.5f * (max_corner + min_corner); - - // compute the starting step-size - F32 minimum_radius = 0.5f * llmin(diagonal.mV[VX], llmin(diagonal.mV[VY], diagonal.mV[VZ])); - F32 step_length = bounding_radius - minimum_radius; - //S32 step_count = 0; - //S32 max_step_count = 12; - F32 half_milimeter = 0.0005f; - - // wander the center around in search of tighter solutions - S32 last_dx = 2; // 2 is out of bounds --> no match - S32 last_dy = 2; - S32 last_dz = 2; - - while (step_length > half_milimeter - /*&& step_count < max_step_count*/) - { - // the algorithm for testing the maximum radius could be expensive enough - // that it makes sense to NOT duplicate testing when possible, so we keep - // track of where we last tested, and only test the new points - - S32 best_dx = 0; - S32 best_dy = 0; - S32 best_dz = 0; - - // sample near the center of the box - bool found_better_center = false; - for (S32 dx = -1; dx < 2; ++dx) - { - for (S32 dy = -1; dy < 2; ++dy) - { - for (S32 dz = -1; dz < 2; ++dz) - { - if (dx == 0 && dy == 0 && dz == 0) - { - continue; - } - - // count the number of indecies that match the last_*'s - S32 match_count = 0; - if (last_dx == dx) ++match_count; - if (last_dy == dy) ++match_count; - if (last_dz == dz) ++match_count; - if (match_count == 2) - { - // we've already tested this point - continue; - } - - LLVector3 center = bounding_center; - center.mV[VX] += (F32) dx * step_length; - center.mV[VY] += (F32) dy * step_length; - center.mV[VZ] += (F32) dz * step_length; - - // compute the radius of the bounding sphere - F32 max_radius = 0.f; - std::vector<LLSphere>::const_iterator sphere_itr; - for (sphere_itr = sphere_list.begin(); sphere_itr != sphere_list.end(); ++sphere_itr) - { - F32 radius = (sphere_itr->getCenter() - center).length() + sphere_itr->getRadius(); - if (radius > max_radius) - { - max_radius = radius; - } - } - if (max_radius < bounding_radius) - { - best_dx = dx; - best_dy = dy; - best_dz = dz; - bounding_center = center; - bounding_radius = max_radius; - found_better_center = true; - } - } - } - } - if (found_better_center) - { - // remember where we came from so we can avoid retesting - last_dx = -best_dx; - last_dy = -best_dy; - last_dz = -best_dz; - } - else - { - // reduce the step size - step_length *= 0.5f; - //++step_count; - // reset the last_*'s - last_dx = 2; // 2 is out of bounds --> no match - last_dy = 2; - last_dz = 2; - } - } - - // HACK -- it is possible to get enough floating point error for the - // bounding sphere to too small on the order of 10e-6, but we only need - // it to be accurate to within about half a millimeter - bounding_radius += half_milimeter; - - // this algorithm can get relatively inaccurate when the sphere - // collection is 'small' (contained within a bounding sphere of about - // 2 meters or less) - // TODO -- fix this - /* debug code - { - std::vector<LLSphere>::const_iterator sphere_itr; - for (sphere_itr = sphere_list.begin(); sphere_itr != sphere_list.end(); ++sphere_itr) - { - F32 radius = (sphere_itr->getCenter() - bounding_center).length() + sphere_itr->getRadius(); - if (radius + 0.1f > bounding_radius) - { - std::cout << " rad = " << radius << " bounding - rad = " << (bounding_radius - radius) << std::endl; - } - } - std::cout << "\n" << std::endl; - } - */ - - bounding_sphere.set(bounding_center, bounding_radius); - } - return bounding_sphere; -} - - diff --git a/indra/llmath/llsphere.h b/indra/llmath/llsphere.h deleted file mode 100644 index cb923dcd3c..0000000000 --- a/indra/llmath/llsphere.h +++ /dev/null @@ -1,77 +0,0 @@ -// llsphere.h -/** - * @file llsphere.cpp - * @author Andrew Meadows - * @brief Simple sphere implementation for basic geometric operations - * - * $LicenseInfo:firstyear=2007&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_SPHERE_H -#define LL_SPHERE_H - -#include "stdtypes.h" -#include "v3math.h" -#include <iostream> -#include <vector> - -class LLSphere -{ -public: - LLSphere(); - LLSphere( const LLVector3& center, F32 radius ); - - void set( const LLVector3& center, F32 radius ); - void setCenter( const LLVector3& center ); - void setRadius( F32 radius ); - - const LLVector3& getCenter() const; - F32 getRadius() const; - - // returns true if this sphere completely contains other_sphere - bool contains(const LLSphere& other_sphere) const; - - // returns true if this sphere overlaps other_sphere - bool overlaps(const LLSphere& other_sphere) const; - - // returns overlap distance - // negative overlap is closest approach - F32 getOverlap(const LLSphere& other_sphere) const; - - // removes any spheres that are contained in others - static void collapse(std::vector<LLSphere>& sphere_list); - - // returns minimum sphere bounding sphere for a set of spheres - static LLSphere getBoundingSphere(const LLSphere& first_sphere, const LLSphere& second_sphere); - static LLSphere getBoundingSphere(const std::vector<LLSphere>& sphere_list); - - bool operator==(const LLSphere& rhs) const; - - friend std::ostream& operator<<( std::ostream& output_stream, const LLSphere& line ); - -protected: - LLVector3 mCenter; - F32 mRadius; -}; - - -#endif diff --git a/indra/llmath/tests/mathmisc_test.cpp b/indra/llmath/tests/mathmisc_test.cpp index ff0899e975..810b0d80da 100644 --- a/indra/llmath/tests/mathmisc_test.cpp +++ b/indra/llmath/tests/mathmisc_test.cpp @@ -35,7 +35,6 @@ #include "../llline.h" #include "../llmath.h" -#include "../llsphere.h" #include "../v3math.h" namespace tut @@ -280,166 +279,6 @@ namespace tut namespace tut { - struct sphere_data - { - }; - typedef test_group<sphere_data> sphere_test; - typedef sphere_test::object sphere_object; - tut::sphere_test tsphere("LLSphere"); - - template<> template<> - void sphere_object::test<1>() - { - // test LLSphere::contains() and ::overlaps() - S32 number_of_tests = 10; - for (S32 test = 0; test < number_of_tests; ++test) - { - LLVector3 first_center(1.f, 1.f, 1.f); - F32 first_radius = 3.f; - LLSphere first_sphere( first_center, first_radius ); - - F32 half_millimeter = 0.0005f; - LLVector3 direction( ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f); - direction.normalize(); - - F32 distance = ll_frand(first_radius - 2.f * half_millimeter); - LLVector3 second_center = first_center + distance * direction; - F32 second_radius = first_radius - distance - half_millimeter; - LLSphere second_sphere( second_center, second_radius ); - ensure("first sphere should contain the second", first_sphere.contains(second_sphere)); - ensure("first sphere should overlap the second", first_sphere.overlaps(second_sphere)); - - distance = first_radius + ll_frand(first_radius); - second_center = first_center + distance * direction; - second_radius = distance - first_radius + half_millimeter; - second_sphere.set( second_center, second_radius ); - ensure("first sphere should NOT contain the second", !first_sphere.contains(second_sphere)); - ensure("first sphere should overlap the second", first_sphere.overlaps(second_sphere)); - - distance = first_radius + ll_frand(first_radius) + half_millimeter; - second_center = first_center + distance * direction; - second_radius = distance - first_radius - half_millimeter; - second_sphere.set( second_center, second_radius ); - ensure("first sphere should NOT contain the second", !first_sphere.contains(second_sphere)); - ensure("first sphere should NOT overlap the second", !first_sphere.overlaps(second_sphere)); - } - } - - template<> template<> - void sphere_object::test<2>() - { - skip("See SNOW-620. Neither the test nor the code being tested seem good. Also sim-only."); - - // test LLSphere::getBoundingSphere() - S32 number_of_tests = 100; - S32 number_of_spheres = 10; - F32 sphere_center_range = 32.f; - F32 sphere_radius_range = 5.f; - - for (S32 test = 0; test < number_of_tests; ++test) - { - // gegnerate a bunch of random sphere - std::vector< LLSphere > sphere_list; - for (S32 sphere_count=0; sphere_count < number_of_spheres; ++sphere_count) - { - LLVector3 direction( ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f); - direction.normalize(); - F32 distance = ll_frand(sphere_center_range); - LLVector3 center = distance * direction; - F32 radius = ll_frand(sphere_radius_range); - LLSphere sphere( center, radius ); - sphere_list.push_back(sphere); - } - - // compute the bounding sphere - LLSphere bounding_sphere = LLSphere::getBoundingSphere(sphere_list); - - // make sure all spheres are inside the bounding sphere - { - std::vector< LLSphere >::const_iterator sphere_itr; - for (sphere_itr = sphere_list.begin(); sphere_itr != sphere_list.end(); ++sphere_itr) - { - ensure("sphere should be contained by the bounding sphere", bounding_sphere.contains(*sphere_itr)); - } - } - - // TODO -- improve LLSphere::getBoundingSphere() to the point where - // we can reduce the 'expansion' in the two tests below to about - // 2 mm or less - - F32 expansion = 0.005f; - // move all spheres out a little bit - // and count how many are NOT contained - { - std::vector< LLVector3 > uncontained_directions; - std::vector< LLSphere >::iterator sphere_itr; - for (sphere_itr = sphere_list.begin(); sphere_itr != sphere_list.end(); ++sphere_itr) - { - LLVector3 direction = sphere_itr->getCenter() - bounding_sphere.getCenter(); - direction.normalize(); - - sphere_itr->setCenter( sphere_itr->getCenter() + expansion * direction ); - if (! bounding_sphere.contains( *sphere_itr ) ) - { - uncontained_directions.push_back(direction); - } - } - ensure("when moving spheres out there should be at least two uncontained spheres", - uncontained_directions.size() > 1); - - /* TODO -- when the bounding sphere algorithm is improved we can open up this test - * at the moment it occasionally fails when the sphere collection is tight and small - * (2 meters or less) - if (2 == uncontained_directions.size() ) - { - // if there were only two uncontained spheres then - // the two directions should be nearly opposite - F32 dir_dot = uncontained_directions[0] * uncontained_directions[1]; - ensure("two uncontained spheres should lie opposite the bounding center", dir_dot < -0.95f); - } - */ - } - - // compute the new bounding sphere - bounding_sphere = LLSphere::getBoundingSphere(sphere_list); - - // increase the size of all spheres a little bit - // and count how many are NOT contained - { - std::vector< LLVector3 > uncontained_directions; - std::vector< LLSphere >::iterator sphere_itr; - for (sphere_itr = sphere_list.begin(); sphere_itr != sphere_list.end(); ++sphere_itr) - { - LLVector3 direction = sphere_itr->getCenter() - bounding_sphere.getCenter(); - direction.normalize(); - - sphere_itr->setRadius( sphere_itr->getRadius() + expansion ); - if (! bounding_sphere.contains( *sphere_itr ) ) - { - uncontained_directions.push_back(direction); - } - } - ensure("when boosting sphere radii there should be at least two uncontained spheres", - uncontained_directions.size() > 1); - - /* TODO -- when the bounding sphere algorithm is improved we can open up this test - * at the moment it occasionally fails when the sphere collection is tight and small - * (2 meters or less) - if (2 == uncontained_directions.size() ) - { - // if there were only two uncontained spheres then - // the two directions should be nearly opposite - F32 dir_dot = uncontained_directions[0] * uncontained_directions[1]; - ensure("two uncontained spheres should lie opposite the bounding center", dir_dot < -0.95f); - } - */ - } - } - } -} - -namespace tut -{ F32 SMALL_RADIUS = 1.0f; F32 MEDIUM_RADIUS = 5.0f; F32 LARGE_RADIUS = 10.0f; diff --git a/indra/llmessage/CMakeLists.txt b/indra/llmessage/CMakeLists.txt index 86e262f56a..f143ee18cf 100644 --- a/indra/llmessage/CMakeLists.txt +++ b/indra/llmessage/CMakeLists.txt @@ -79,7 +79,6 @@ set(llmessage_SOURCE_FILES message_prehash.cpp message_string_table.cpp net.cpp - partsyspacket.cpp patch_code.cpp patch_dct.cpp patch_idct.cpp @@ -171,7 +170,6 @@ set(llmessage_HEADER_FILES message.h message_prehash.h net.h - partsyspacket.h patch_code.h patch_dct.h sound_ids.h @@ -215,9 +213,22 @@ if (LL_TESTS) llcommon ) - #LL_ADD_INTEGRATION_TEST(llavatarnamecache "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(io "tests/llpipeutil.cpp" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llavatarnamecache "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llbuffer "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(lldatapacker "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llhost "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llhttpnode "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(lliohttpserver "tests/llpipeutil.cpp" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llsdmessagebuilder "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llsdmessagereader "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llmessageconfig "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llmessagetemplateparser "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llpartdata "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llservicebuilder "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(lltemplatemessagebuilder "" "${test_libs}") LL_ADD_INTEGRATION_TEST(llxfer_file "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llxorcipher "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(message "" "${test_libs}") endif (LL_TESTS) diff --git a/indra/llmessage/partsyspacket.cpp b/indra/llmessage/partsyspacket.cpp deleted file mode 100644 index 6113adbfcf..0000000000 --- a/indra/llmessage/partsyspacket.cpp +++ /dev/null @@ -1,1297 +0,0 @@ -/** - * @file partsyspacket.cpp - * @brief Object for packing particle system initialization parameters - * before sending them over the network. - * - * $LicenseInfo:firstyear=2000&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 "partsyspacket.h" -#include "indra_constants.h" - -// this function is global -void gSetInitDataDefaults(LLPartInitData *setMe) -{ - U32 i; - - //for(i = 0; i < 18; i++) - //{ - // setMe->k[i] = 0.0f; - //} - - //setMe->kill_p[0] = setMe->kill_p[1] = setMe->kill_p[2] = 0.0f; - //setMe->kill_p[3] = -0.2f; // time parameter, die when t= 5.0f - //setMe->kill_p[4] = 1.0f; - //setMe->kill_p[5] = -0.5f; // or radius == 2 (contracting) - - //setMe->bounce_p[0] = setMe->bounce_p[1] = - // setMe->bounce_p[2] = setMe->bounce_p[3] = 0.0f; - //setMe->bounce_p[4] = 1.0f; - - setMe->bounce_b = 1.0f; - // i just changed the meaning of bounce_b - // its now the attenuation from revlecting your velocity across the normal - // set by bounce_p - - //setMe->pos_ranges[0] = setMe->pos_ranges[2] = setMe->pos_ranges[4] = -1.0f; - //setMe->pos_ranges[1] = setMe->pos_ranges[3] = setMe->pos_ranges[5] = 1.0f; - - //setMe->vel_ranges[0] = setMe->vel_ranges[2] = setMe->vel_ranges[4] = -1.0f; - //setMe->vel_ranges[1] = setMe->vel_ranges[3] = setMe->vel_ranges[5] = 1.0f; - - for(i = 0; i < 3; i++) - { - setMe->diffEqAlpha[i] = 0.0f; - setMe->diffEqScale[i] = 0.0f; - } - - setMe->scale_range[0] = 1.00f; - setMe->scale_range[1] = 5.00f; - setMe->scale_range[2] = setMe->scale_range[3] = 0.0f; - - setMe->alpha_range[0] = setMe->alpha_range[1] = 1.0f; - setMe->alpha_range[2] = setMe->alpha_range[3] = 0.0f; - - setMe->vel_offset[0] = 0.0f; - setMe->vel_offset[1] = 0.0f; - setMe->vel_offset[2] = 0.0f; - - // start dropping particles when I'm more then one sim away - setMe->mDistBeginFadeout = 256.0f; - setMe->mDistEndFadeout = 1.414f * 512.0f; - // stop displaying particles when I'm more then two sim diagonals away - - setMe->mImageUuid = IMG_SHOT; - - for(i = 0; i < 8; i++) - { - setMe->mFlags[i] = 0x00; - } - - setMe->createMe = true; - - setMe->maxParticles = 25; - setMe->initialParticles = 25; - - //These defaults are for an explosion - a short lived set of debris affected by gravity. - //Action flags default to PART_SYS_AFFECTED_BY_WIND + PART_SYS_AFFECTED_BY_GRAVITY + PART_SYS_DISTANCE_DEATH - setMe->mFlags[PART_SYS_ACTION_BYTE] = PART_SYS_AFFECTED_BY_WIND | PART_SYS_AFFECTED_BY_GRAVITY | PART_SYS_DISTANCE_DEATH; - setMe->mFlags[PART_SYS_KILL_BYTE] = PART_SYS_DISTANCE_DEATH + PART_SYS_TIME_DEATH; - - setMe->killPlaneNormal[0] = 0.0f;setMe->killPlaneNormal[1] = 0.0f;setMe->killPlaneNormal[2] = 1.0f; //Straight up - setMe->killPlaneZ = 0.0f; //get local ground z as an approximation if turn on PART_SYS_KILL_PLANE - setMe->bouncePlaneNormal[0] = 0.0f;setMe->bouncePlaneNormal[1] = 0.0f;setMe->bouncePlaneNormal[2] = 1.0f; //Straight up - setMe->bouncePlaneZ = 0.0f; //get local ground z as an approximation if turn on PART_SYS_BOUNCE - setMe->spawnRange = 1.0f; - setMe->spawnFrequency = 0.0f; //Create the instant one dies - setMe->spawnFreqencyRange = 0.0f; - setMe->spawnDirection[0] = 0.0f;setMe->spawnDirection[1] = 0.0f;setMe->spawnDirection[2] = 1.0f; //Straight up - setMe->spawnDirectionRange = 1.0f; //global scattering - setMe->spawnVelocity = 0.75f; - setMe->spawnVelocityRange = 0.25f; //velocity +/- 0.25 - setMe->speedLimit = 1.0f; - - setMe->windWeight = 0.5f; //0.0f means looks like a heavy object (if gravity is on), 1.0f means light and fluffy - setMe->currentGravity[0] = 0.0f;setMe->currentGravity[1] = 0.0f;setMe->currentGravity[2] = -9.81f; - //This has to be constant to allow for compression - - setMe->gravityWeight = 0.5f; //0.0f means boyed by air, 1.0f means it's a lead weight - setMe->globalLifetime = 0.0f; //Arbitrary, but default is no global die, so doesn't matter - setMe->individualLifetime = 5.0f; - setMe->individualLifetimeRange = 1.0f; //Particles last 5 secs +/- 1 - setMe->alphaDecay = 1.0f; //normal alpha fadeout - setMe->scaleDecay = 0.0f; //no scale decay - setMe->distanceDeath = 10.0f; //die if hit unit radius - setMe->dampMotionFactor = 0.0f; - - setMe->windDiffusionFactor[0] = 0.0f; - setMe->windDiffusionFactor[1] = 0.0f; - setMe->windDiffusionFactor[2] = 0.0f; -} - -LLPartSysCompressedPacket::LLPartSysCompressedPacket() -{ - // default constructor for mDefaults called implicitly/automatically here - for(int i = 0; i < MAX_PART_SYS_PACKET_SIZE; i++) - { - mData[i] = '\0'; - } - - mNumBytes = 0; - - gSetInitDataDefaults(&mDefaults); -} - -LLPartSysCompressedPacket::~LLPartSysCompressedPacket() -{ - // no dynamic data is stored by this class, do nothing. -} - -void LLPartSysCompressedPacket::writeFlagByte(LLPartInitData *in) -{ - mData[0] = mData[1] = mData[2] = '\0'; - - U32 i; - //for(i = 1; i < 18; i++) { - // if(in->k[i] != mDefaults.k[i]) - // { - // mData[0] |= PART_SYS_K_MASK; - // break; - // } - //} - - if(in->killPlaneZ != mDefaults.killPlaneZ || - in->killPlaneNormal[0] != mDefaults.killPlaneNormal[0] || - in->killPlaneNormal[1] != mDefaults.killPlaneNormal[1] || - in->killPlaneNormal[2] != mDefaults.killPlaneNormal[2] || - in->distanceDeath != mDefaults.distanceDeath) - { - mData[0] |= PART_SYS_KILL_P_MASK; - } - - - - if(in->bouncePlaneZ != mDefaults.bouncePlaneZ || - in->bouncePlaneNormal[0] != mDefaults.bouncePlaneNormal[0] || - in->bouncePlaneNormal[1] != mDefaults.bouncePlaneNormal[1] || - in->bouncePlaneNormal[2] != mDefaults.bouncePlaneNormal[2]) - { - mData[0] |= PART_SYS_BOUNCE_P_MASK; - } - - if(in->bounce_b != mDefaults.bounce_b) - { - mData[0] |= PART_SYS_BOUNCE_B_MASK; - } - - - //if(in->pos_ranges[0] != mDefaults.pos_ranges[0] || in->pos_ranges[1] != mDefaults.pos_ranges[1] || - // in->pos_ranges[2] != mDefaults.pos_ranges[2] || in->pos_ranges[3] != mDefaults.pos_ranges[3] || - // in->pos_ranges[4] != mDefaults.pos_ranges[4] || in->pos_ranges[5] != mDefaults.pos_ranges[5]) - //{ - // mData[0] |= PART_SYS_POS_RANGES_MASK; - //} - - //if(in->vel_ranges[0] != mDefaults.vel_ranges[0] || in->vel_ranges[1] != mDefaults.vel_ranges[1] || - // in->vel_ranges[2] != mDefaults.vel_ranges[2] || in->vel_ranges[3] != mDefaults.vel_ranges[3] || - // in->vel_ranges[4] != mDefaults.vel_ranges[4] || in->vel_ranges[5] != mDefaults.vel_ranges[5]) - //{ -// mData[0] |= PART_SYS_VEL_RANGES_MASK; - //} - - - if(in->diffEqAlpha[0] != mDefaults.diffEqAlpha[0] || - in->diffEqAlpha[1] != mDefaults.diffEqAlpha[1] || - in->diffEqAlpha[2] != mDefaults.diffEqAlpha[2] || - in->diffEqScale[0] != mDefaults.diffEqScale[0] || - in->diffEqScale[1] != mDefaults.diffEqScale[1] || - in->diffEqScale[2] != mDefaults.diffEqScale[2]) - { - mData[0] |= PART_SYS_ALPHA_SCALE_DIFF_MASK; - } - - - if(in->scale_range[0] != mDefaults.scale_range[0] || - in->scale_range[1] != mDefaults.scale_range[1] || - in->scale_range[2] != mDefaults.scale_range[2] || - in->scale_range[3] != mDefaults.scale_range[3]) - { - mData[0] |= PART_SYS_SCALE_RANGE_MASK; - } - - - if(in->alpha_range[0] != mDefaults.alpha_range[0] || - in->alpha_range[1] != mDefaults.alpha_range[1] || - in->alpha_range[2] != mDefaults.alpha_range[2] || - in->alpha_range[3] != mDefaults.alpha_range[3]) - { - mData[2] |= PART_SYS_BYTE_3_ALPHA_MASK; - } - - if(in->vel_offset[0] != mDefaults.vel_offset[0] || - in->vel_offset[1] != mDefaults.vel_offset[1] || - in->vel_offset[2] != mDefaults.vel_offset[2]) - { - mData[0] |= PART_SYS_VEL_OFFSET_MASK; - } - - - if(in->mImageUuid != mDefaults.mImageUuid) - { - mData[0] |= PART_SYS_M_IMAGE_UUID_MASK; - } - - for( i = 0; i < 8; i++) - { - if(in->mFlags[i]) - { - mData[1] |= 1<<i; -// llprintline("Flag \"%x\" gets byte \"%x\"\n", i<<i, in->mFlags[i]); - } - } - - - if(in->spawnRange != mDefaults.spawnRange || - in->spawnFrequency != mDefaults.spawnFrequency || - in->spawnFreqencyRange != mDefaults.spawnFreqencyRange || - in->spawnDirection[0] != mDefaults.spawnDirection[0] || - in->spawnDirection[1] != mDefaults.spawnDirection[1] || - in->spawnDirection[2] != mDefaults.spawnDirection[2] || - in->spawnDirectionRange != mDefaults.spawnDirectionRange || - in->spawnVelocity != mDefaults.spawnVelocity || - in->spawnVelocityRange != mDefaults.spawnVelocityRange) - { - mData[3] |= PART_SYS_BYTE_SPAWN_MASK; - } - - - if(in->windWeight != mDefaults.windWeight || - in->currentGravity[0] != mDefaults.currentGravity[0] || - in->currentGravity[1] != mDefaults.currentGravity[1] || - in->currentGravity[2] != mDefaults.currentGravity[2] || - in->gravityWeight != mDefaults.gravityWeight) - { - mData[3] |= PART_SYS_BYTE_ENVIRONMENT_MASK; - } - - - if(in->globalLifetime != mDefaults.globalLifetime || - in->individualLifetime != mDefaults.individualLifetime || - in->individualLifetimeRange != mDefaults.individualLifetimeRange) - { - mData[3] |= PART_SYS_BYTE_LIFESPAN_MASK; - } - - - if(in->speedLimit != mDefaults.speedLimit || - in->alphaDecay != mDefaults.alphaDecay || - in->scaleDecay != mDefaults.scaleDecay || - in->dampMotionFactor != mDefaults.dampMotionFactor) - { - mData[3] |= PART_SYS_BYTE_DECAY_DAMP_MASK; - } - - if(in->windDiffusionFactor[0] != mDefaults.windDiffusionFactor[0] || - in->windDiffusionFactor[1] != mDefaults.windDiffusionFactor[1] || - in->windDiffusionFactor[2] != mDefaults.windDiffusionFactor[2]) - { - mData[3] |= PART_SYS_BYTE_WIND_DIFF_MASK; - } -} - -F32 floatFromTwoBytes(S8 bMant, S8 bExp) -{ - F32 result = bMant; - while(bExp > 0) - { - result *= 2.0f; - bExp--; - } - while(bExp < 0) - { - result *= 0.5f; - bExp++; - } - return result; -} - -void twoBytesFromFloat(F32 fIn, S8 &bMant, S8 &bExp) -{ - bExp = 0; - if(fIn > 127.0f) - { - fIn = 127.0f; - } - if(fIn < -127.0f) - { - fIn = -127.0f; - } - while(fIn < 64 && fIn > -64 && bExp > -127) - { - fIn *= 2.0f; - bExp--; - } - while((fIn > 128 || fIn < -128) && bExp < 127) - { - fIn *= 0.5f; - bExp++; - } - bMant = (S8)fIn; -} - - - -/* -U32 LLPartSysCompressedPacket::writeK(LLPartInitData *in, U32 startByte) -{ - U32 i, kFlag, i_mod_eight; - S8 bMant, bExp; - - kFlag = startByte; - - startByte += 3; // 3 bytes contain enough room for 18 flag bits - mData[kFlag] = 0x00; -// llprintline("In the writeK\n"); - - i_mod_eight = 0; - for(i = 0; i < 18; i++) - { - if(in->k[i] != mDefaults.k[i]) - { - - mData[kFlag] |= 1<<i_mod_eight; - twoBytesFromFloat(in->k[i], bMant, bExp); - - mData[startByte++] = bMant; - mData[startByte++] = bExp; - } - i_mod_eight++; - while(i_mod_eight >= 8) - { - kFlag++; - i_mod_eight -= 8; - } - } - - return startByte; -}*/ - -U32 LLPartSysCompressedPacket::writeKill_p(LLPartInitData *in, U32 startByte) -{ - S8 bMant, bExp; - - twoBytesFromFloat(in->killPlaneNormal[0], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - twoBytesFromFloat(in->killPlaneNormal[1], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - twoBytesFromFloat(in->killPlaneNormal[2], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - twoBytesFromFloat(in->killPlaneZ, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - twoBytesFromFloat(in->distanceDeath, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - return startByte; -} - -U32 LLPartSysCompressedPacket::writeBounce_p(LLPartInitData *in, U32 startByte) -{ - S8 bMant, bExp; - - twoBytesFromFloat(in->bouncePlaneNormal[0], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - twoBytesFromFloat(in->bouncePlaneNormal[1], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - twoBytesFromFloat(in->bouncePlaneNormal[2], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - - twoBytesFromFloat(in->bouncePlaneZ, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - return startByte; -} - -U32 LLPartSysCompressedPacket::writeBounce_b(LLPartInitData *in, U32 startByte) -{ - S8 bMant, bExp; - twoBytesFromFloat(in->bounce_b, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - return startByte; -} - -//U32 LLPartSysCompressedPacket::writePos_ranges(LLPartInitData *in, U32 startByte) -//{ -// S8 tmp; -// int i; -// for(i = 0; i < 6; i++) -// { -// tmp = (S8) in->pos_ranges[i]; // float to int conversion (keep the sign) -// mData[startByte++] = (U8)tmp; // signed to unsigned typecast -// } -// return startByte; -//} - -//U32 LLPartSysCompressedPacket::writeVel_ranges(LLPartInitData *in, U32 startByte) -//{ -// S8 tmp; -// int i; -// for(i = 0; i < 6; i++) -// { -// tmp = (S8) in->vel_ranges[i]; // float to int conversion (keep the sign) -// mData[startByte++] = (U8)tmp; // signed to unsigned typecast -// } -// return startByte; -//} - -U32 LLPartSysCompressedPacket::writeAlphaScaleDiffEqn_range(LLPartInitData *in, U32 startByte) -{ - S8 bExp, bMant; - int i; - for(i = 0; i < 3; i++) - { - twoBytesFromFloat(in->diffEqAlpha[i], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - } - for(i = 0; i < 3; i++) - { - twoBytesFromFloat(in->diffEqScale[i], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - } - return startByte; -} - -U32 LLPartSysCompressedPacket::writeScale_range(LLPartInitData *in, U32 startByte) -{ - S8 bExp, bMant; - int i; - for(i = 0; i < 4; i++) - { - twoBytesFromFloat(in->scale_range[i], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - } - return startByte; -} - - -U32 LLPartSysCompressedPacket::writeAlpha_range(LLPartInitData *in, U32 startByte) -{ - S8 bExp, bMant; - int i; - for(i = 0; i < 4; i++) - { - twoBytesFromFloat(in->alpha_range[i], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - } - return startByte; -} - -U32 LLPartSysCompressedPacket::writeVelocityOffset(LLPartInitData *in, U32 startByte) -{ - S8 bExp, bMant; - int i; - for(i = 0; i < 3; i++) - { - twoBytesFromFloat(in->vel_offset[i], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - } - return startByte; -} - -U32 LLPartSysCompressedPacket::writeUUID(LLPartInitData *in, U32 startByte) -{ - U8 * bufPtr = mData + startByte; - if(in->mImageUuid == IMG_SHOT) { - mData[startByte++] = 0x01; - return startByte; - } - - if(in->mImageUuid == IMG_SPARK) { - mData[startByte++] = 0x02; - return startByte; - } - - - if(in->mImageUuid == IMG_BIG_EXPLOSION_1) { - mData[startByte++] = 0x03; - return startByte; - } - - if(in->mImageUuid == IMG_BIG_EXPLOSION_2) { - mData[startByte++] = 0x04; - return startByte; - } - - - if(in->mImageUuid == IMG_SMOKE_POOF) { - mData[startByte++] = 0x05; - return startByte; - } - - if(in->mImageUuid == IMG_FIRE) { - mData[startByte++] = 0x06; - return startByte; - } - - - if(in->mImageUuid == IMG_EXPLOSION) { - mData[startByte++] = 0x07; - return startByte; - } - - if(in->mImageUuid == IMG_EXPLOSION_2) { - mData[startByte++] = 0x08; - return startByte; - } - - - if(in->mImageUuid == IMG_EXPLOSION_3) { - mData[startByte++] = 0x09; - return startByte; - } - - if(in->mImageUuid == IMG_EXPLOSION_4) { - mData[startByte++] = 0x0A; - return startByte; - } - - mData[startByte++] = 0x00; // flag for "read whole UUID" - - memcpy(bufPtr, in->mImageUuid.mData, 16); /* Flawfinder: ignore */ - return (startByte+16); -} - -U32 LLPartSysCompressedPacket::writeSpawn(LLPartInitData *in, U32 startByte) -{ - S8 bExp, bMant; - int i; - - twoBytesFromFloat(in->spawnRange, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - twoBytesFromFloat(in->spawnFrequency, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - twoBytesFromFloat(in->spawnFreqencyRange, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - - - for(i = 0; i < 3; i++) - { - twoBytesFromFloat(in->spawnDirection[i], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - } - - twoBytesFromFloat(in->spawnDirectionRange, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - twoBytesFromFloat(in->spawnVelocity, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - twoBytesFromFloat(in->spawnVelocityRange, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - return startByte; -} - -U32 LLPartSysCompressedPacket::writeEnvironment(LLPartInitData *in, U32 startByte) -{ - S8 bExp, bMant; - int i; - - twoBytesFromFloat(in->windWeight, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - for(i = 0; i < 3; i++) - { - twoBytesFromFloat(in->currentGravity[i], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - } - - twoBytesFromFloat(in->gravityWeight, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - return startByte; -} - -U32 LLPartSysCompressedPacket::writeLifespan(LLPartInitData *in, U32 startByte) -{ - S8 bExp, bMant; - - twoBytesFromFloat(in->globalLifetime, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - twoBytesFromFloat(in->individualLifetime, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - twoBytesFromFloat(in->individualLifetimeRange, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - return startByte; -} - - -U32 LLPartSysCompressedPacket::writeDecayDamp(LLPartInitData *in, U32 startByte) -{ - S8 bExp, bMant; - - twoBytesFromFloat(in->speedLimit, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - twoBytesFromFloat(in->alphaDecay, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - twoBytesFromFloat(in->scaleDecay, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - twoBytesFromFloat(in->dampMotionFactor, bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - return startByte; -} - -U32 LLPartSysCompressedPacket::writeWindDiffusionFactor(LLPartInitData *in, U32 startByte) -{ - S8 bExp, bMant; - - twoBytesFromFloat(in->windDiffusionFactor[0], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - twoBytesFromFloat(in->windDiffusionFactor[1], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - twoBytesFromFloat(in->windDiffusionFactor[2], bMant, bExp); - mData[startByte++] = bMant; - mData[startByte++] = bExp; - - return startByte; -} - - - - - - -/* -U32 LLPartSysCompressedPacket::readK(LLPartInitData *in, U32 startByte) -{ - U32 i, i_mod_eight, kFlag; - S8 bMant, bExp; // 1 bytes mantissa and exponent for a float - kFlag = startByte; - startByte += 3; // 3 bytes has enough room for 18 bits - - i_mod_eight = 0; - for(i = 0; i < 18; i++) - { - if(mData[kFlag]&(1<<i_mod_eight)) - { - - - - bMant = mData[startByte++]; - bExp = mData[startByte++]; - - - in->k[i] = floatFromTwoBytes(bMant, bExp); // much tighter platform-independent - // way to ship floats - - } - i_mod_eight++; - if(i_mod_eight >= 8) - { - i_mod_eight -= 8; - kFlag++; - } - } - - return startByte; -} -*/ - -U32 LLPartSysCompressedPacket::readKill_p(LLPartInitData *in, U32 startByte) -{ - S8 bMant, bExp; - - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->killPlaneNormal[0] = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->killPlaneNormal[1] = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->killPlaneNormal[2] = floatFromTwoBytes(bMant, bExp); - - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->killPlaneZ = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->distanceDeath = floatFromTwoBytes(bMant, bExp); - - return startByte; -} - -U32 LLPartSysCompressedPacket::readBounce_p(LLPartInitData *in, U32 startByte) -{ - - S8 bMant, bExp; - - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->bouncePlaneNormal[0] = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->bouncePlaneNormal[1] = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->bouncePlaneNormal[2] = floatFromTwoBytes(bMant, bExp); - - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->bouncePlaneZ = floatFromTwoBytes(bMant, bExp); - - return startByte; -} - -U32 LLPartSysCompressedPacket::readBounce_b(LLPartInitData *in, U32 startByte) -{ - S8 bMant, bExp; - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->bounce_b = floatFromTwoBytes(bMant, bExp); - return startByte; -} - - -//U32 LLPartSysCompressedPacket::readPos_ranges(LLPartInitData *in, U32 startByte) -//{ -// S8 tmp; -// int i; -// for(i = 0; i < 6; i++) -// { -// tmp = (S8)mData[startByte++]; -// in->pos_ranges[i] = tmp; -// } -// return startByte; -//} - -//U32 LLPartSysCompressedPacket::readVel_ranges(LLPartInitData *in, U32 startByte) -//{ -// S8 tmp; -// int i; -// for(i = 0; i < 6; i++) -// { -// tmp = (S8)mData[startByte++]; -// in->vel_ranges[i] = tmp; -// } -// return startByte; -//} - - - -U32 LLPartSysCompressedPacket::readAlphaScaleDiffEqn_range(LLPartInitData *in, U32 startByte) -{ - int i; - S8 bMant, bExp; - for(i = 0; i < 3; i++) - { - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->diffEqAlpha[i] = floatFromTwoBytes(bMant, bExp); - } - for(i = 0; i < 3; i++) - { - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->diffEqScale[i] = floatFromTwoBytes(bMant, bExp); - } - return startByte; -} - -U32 LLPartSysCompressedPacket::readAlpha_range(LLPartInitData *in, U32 startByte) -{ - int i; - S8 bMant, bExp; - for(i = 0; i < 4; i++) - { - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->alpha_range[i] = floatFromTwoBytes(bMant, bExp); - } - return startByte; -} - -U32 LLPartSysCompressedPacket::readScale_range(LLPartInitData *in, U32 startByte) -{ - int i; - S8 bMant, bExp; - for(i = 0; i < 4; i++) - { - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->scale_range[i] = floatFromTwoBytes(bMant, bExp); - } - return startByte; -} - -U32 LLPartSysCompressedPacket::readVelocityOffset(LLPartInitData *in, U32 startByte) -{ - int i; - S8 bMant, bExp; - for(i = 0; i < 3; i++) - { - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->vel_offset[i] = floatFromTwoBytes(bMant, bExp); - } - return startByte; -} - -U32 LLPartSysCompressedPacket::readUUID(LLPartInitData *in, U32 startByte) -{ - U8 * bufPtr = mData + startByte; - - if(mData[startByte] == 0x01) - { - in->mImageUuid = IMG_SHOT; - return startByte+1; - } - if(mData[startByte] == 0x02) - { - in->mImageUuid = IMG_SPARK; - return startByte+1; - } - if(mData[startByte] == 0x03) - { - in->mImageUuid = IMG_BIG_EXPLOSION_1; - return startByte+1; - } - if(mData[startByte] == 0x04) - { - in->mImageUuid = IMG_BIG_EXPLOSION_2; - return startByte+1; - } - if(mData[startByte] == 0x05) - { - in->mImageUuid = IMG_SMOKE_POOF; - return startByte+1; - } - if(mData[startByte] == 0x06) - { - in->mImageUuid = IMG_FIRE; - return startByte+1; - } - if(mData[startByte] == 0x07) - { - in->mImageUuid = IMG_EXPLOSION; - return startByte+1; - } - if(mData[startByte] == 0x08) - { - in->mImageUuid = IMG_EXPLOSION_2; - return startByte+1; - } - if(mData[startByte] == 0x09) - { - in->mImageUuid = IMG_EXPLOSION_3; - return startByte+1; - } - if(mData[startByte] == 0x0A) - { - in->mImageUuid = IMG_EXPLOSION_4; - return startByte+1; - } - - startByte++; // cause we actually have to read the UUID now. - memcpy(in->mImageUuid.mData, bufPtr, 16); /* Flawfinder: ignore */ - return (startByte+16); -} - - - - -U32 LLPartSysCompressedPacket::readSpawn(LLPartInitData *in, U32 startByte) -{ - S8 bMant, bExp; - U32 i; - - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->spawnRange = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->spawnFrequency = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->spawnFreqencyRange = floatFromTwoBytes(bMant, bExp); - - for(i = 0; i < 3; i++) - { - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->spawnDirection[i] = floatFromTwoBytes(bMant, bExp); - } - - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->spawnDirectionRange = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->spawnVelocity = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->spawnVelocityRange = floatFromTwoBytes(bMant, bExp); - - return startByte; -} - -U32 LLPartSysCompressedPacket::readEnvironment(LLPartInitData *in, U32 startByte) -{ - S8 bMant, bExp; - U32 i; - - - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->windWeight = floatFromTwoBytes(bMant, bExp); - - for(i = 0; i < 3; i++) - { - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->currentGravity[i] = floatFromTwoBytes(bMant, bExp); - } - - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->gravityWeight = floatFromTwoBytes(bMant, bExp); - - return startByte; -} - -U32 LLPartSysCompressedPacket::readLifespan(LLPartInitData *in, U32 startByte) -{ - S8 bMant, bExp; - - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->globalLifetime = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->individualLifetime = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->individualLifetimeRange = floatFromTwoBytes(bMant, bExp); - - return startByte; -} - -U32 LLPartSysCompressedPacket::readDecayDamp(LLPartInitData *in, U32 startByte) -{ - S8 bMant, bExp; - - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->speedLimit = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->alphaDecay = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->scaleDecay = floatFromTwoBytes(bMant, bExp); - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->dampMotionFactor = floatFromTwoBytes(bMant, bExp); - - return startByte; -} - -U32 LLPartSysCompressedPacket::readWindDiffusionFactor(LLPartInitData *in, U32 startByte) -{ - int i; - S8 bMant, bExp; - for(i = 0; i < 3; i++) - { - bMant = mData[startByte++]; - bExp = mData[startByte++]; - in->windDiffusionFactor[i] = floatFromTwoBytes(bMant, bExp); - } - return startByte; -} - -bool LLPartSysCompressedPacket::fromLLPartInitData(LLPartInitData *in, U32 &bytesUsed) -{ - - writeFlagByte(in); - U32 currByte = 4; - -// llprintline("calling \"fromLLPartInitData\"\n"); - - //if(mData[0] & PART_SYS_K_MASK) - //{ - // currByte = writeK(in, 3); // first 3 bytes are reserved for header data - //} - - - - if(mData[0] & PART_SYS_KILL_P_MASK) - { - currByte = writeKill_p(in, currByte); - } - - if(mData[0] & PART_SYS_BOUNCE_P_MASK) - { - currByte = writeBounce_p(in, currByte); - } - - if(mData[0] & PART_SYS_BOUNCE_B_MASK) - { - currByte = writeBounce_b(in, currByte); - } - - //if(mData[0] & PART_SYS_POS_RANGES_MASK) - //{ - // currByte = writePos_ranges(in, currByte); - //} - - //if(mData[0] & PART_SYS_VEL_RANGES_MASK) - //{ - // currByte = writeVel_ranges(in, currByte); - //} - - if(mData[0] & PART_SYS_ALPHA_SCALE_DIFF_MASK) - { - currByte = writeAlphaScaleDiffEqn_range(in, currByte); - } - - if(mData[0] & PART_SYS_SCALE_RANGE_MASK) - { - currByte = writeScale_range(in, currByte); - } - - if(mData[0] & PART_SYS_VEL_OFFSET_MASK) - { - currByte = writeVelocityOffset(in, currByte); - } - - if(mData[0] & PART_SYS_M_IMAGE_UUID_MASK) - { - currByte = writeUUID(in, currByte); - } - - - if(mData[3] & PART_SYS_BYTE_SPAWN_MASK) - { - currByte = writeSpawn(in, currByte); - } - - if(mData[3] & PART_SYS_BYTE_ENVIRONMENT_MASK) - { - currByte = writeEnvironment(in, currByte); - } - - if(mData[3] & PART_SYS_BYTE_LIFESPAN_MASK) - { - currByte = writeLifespan(in, currByte); - } - - if(mData[3] & PART_SYS_BYTE_DECAY_DAMP_MASK) - { - currByte = writeDecayDamp(in, currByte); - } - - if(mData[3] & PART_SYS_BYTE_WIND_DIFF_MASK) - { - currByte = writeWindDiffusionFactor(in, currByte); - } - - - if(mData[2] & PART_SYS_BYTE_3_ALPHA_MASK) - { - currByte = writeAlpha_range(in, currByte); - } - - mData[currByte++] = (U8)in->maxParticles; - mData[currByte++] = (U8)in->initialParticles; - - - U32 flagFlag = 1; // flag indicating which flag bytes are non-zero - // yeah, I know, the name sounds funny - for(U32 i = 0; i < 8; i++) - { - -// llprintline("Flag \"%x\" gets byte \"%x\"\n", flagFlag, in->mFlags[i]); - if(mData[1] & flagFlag) - { - mData[currByte++] = in->mFlags[i]; -// llprintline("and is valid...\n"); - } - flagFlag <<= 1; - } - - bytesUsed = mNumBytes = currByte; - - - -// llprintline("returning from \"fromLLPartInitData\" with %d bytes\n", bytesUsed); - - return true; -} - -bool LLPartSysCompressedPacket::toLLPartInitData(LLPartInitData *out, U32 *bytesUsed) -{ - U32 currByte = 4; - - gSetInitDataDefaults(out); - - if(mData[0] & PART_SYS_KILL_P_MASK) - { - currByte = readKill_p(out, currByte); - } - - if(mData[0] & PART_SYS_BOUNCE_P_MASK) - { - currByte = readBounce_p(out, currByte); - } - - if(mData[0] & PART_SYS_BOUNCE_B_MASK) - { - currByte = readBounce_b(out, currByte); - } - - if(mData[0] & PART_SYS_ALPHA_SCALE_DIFF_MASK) - { - currByte = readAlphaScaleDiffEqn_range(out, currByte); - } - - if(mData[0] & PART_SYS_SCALE_RANGE_MASK) - { - currByte = readScale_range(out, currByte); - } - - if(mData[0] & PART_SYS_VEL_OFFSET_MASK) - { - currByte = readVelocityOffset(out, currByte); - } - - if(mData[0] & PART_SYS_M_IMAGE_UUID_MASK) - { - currByte = readUUID(out, currByte); - } - - - if(mData[3] & PART_SYS_BYTE_SPAWN_MASK) - { - currByte = readSpawn(out, currByte); - } - - if(mData[3] & PART_SYS_BYTE_ENVIRONMENT_MASK) - { - currByte = readEnvironment(out, currByte); - } - - if(mData[3] & PART_SYS_BYTE_LIFESPAN_MASK) - { - currByte = readLifespan(out, currByte); - } - - if(mData[3] & PART_SYS_BYTE_DECAY_DAMP_MASK) - { - currByte = readDecayDamp(out, currByte); - } - - if(mData[3] & PART_SYS_BYTE_WIND_DIFF_MASK) - { - currByte = readWindDiffusionFactor(out, currByte); - } - - if(mData[2] & PART_SYS_BYTE_3_ALPHA_MASK) - { - currByte = readAlpha_range(out, currByte); - } - - out->maxParticles = mData[currByte++]; - out->initialParticles = mData[currByte++]; - - U32 flagFlag = 1; // flag indicating which flag bytes are non-zero - // yeah, I know, the name sounds funny - for(U32 i = 0; i < 8; i++) - { - flagFlag = 1<<i; - - if((mData[1] & flagFlag)) - { - out->mFlags[i] = mData[currByte++]; - } - } - - *bytesUsed = currByte; - return true; -} - -bool LLPartSysCompressedPacket::fromUnsignedBytes(U8 *in, U32 bytesUsed) -{ - if ((in != NULL) && (bytesUsed <= sizeof(mData))) - { - memcpy(mData, in, bytesUsed); /* Flawfinder: ignore */ - mNumBytes = bytesUsed; - return true; - } - else - { - LL_ERRS() << "NULL input data or number of bytes exceed mData size" << LL_ENDL; - return false; - } -} - - -U32 LLPartSysCompressedPacket::bufferSize() -{ - return mNumBytes; -} - -bool LLPartSysCompressedPacket::toUnsignedBytes(U8 *out) -{ - memcpy(out, mData, mNumBytes); /* Flawfinder: ignore */ - return true; -} - -U8 * LLPartSysCompressedPacket::getBytePtr() -{ - return mData; -} - - diff --git a/indra/llmessage/partsyspacket.h b/indra/llmessage/partsyspacket.h deleted file mode 100644 index 23307f3409..0000000000 --- a/indra/llmessage/partsyspacket.h +++ /dev/null @@ -1,261 +0,0 @@ -/** - * @file partsyspacket.h - * @brief Object for packing particle system initialization parameters - * before sending them over the network - * - * $LicenseInfo:firstyear=2000&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_PARTSYSPACKET_H -#define LL_PARTSYSPACKET_H - -#include "lluuid.h" - -// Particle system stuff - -const U64 PART_SYS_MAX_TIME_IN_USEC = 1000000; // 1 second, die not quite near instantaneously - - -// this struct is for particle system initialization parameters -// I'm breaking some rules here, but I need a storage structure to hold initialization data -// for these things. Sorry guys, they're not simple enough (yet) to avoid this cleanly -struct LLPartInitData { - // please do not add functions to this class -- data only! - //F32 k[18]; // first 9 --> x,y,z last 9 --> scale, alpha, rot - //F32 kill_p[6]; // last one is for particles that die when they reach a spherical bounding radius - //F32 kill_plane[3]; - //F32 bounce_p[5]; - F32 bounce_b; // recently changed - // no need to store orientation and position here, as they're sent over seperately - //F32 pos_ranges[6]; - //F32 vel_ranges[6]; - F32 scale_range[4]; - F32 alpha_range[4]; - F32 vel_offset[3]; //new - more understandable! - - F32 mDistBeginFadeout; // for fadeout LOD optimization - F32 mDistEndFadeout; - - LLUUID mImageUuid; - //U8 n; // number of particles - U8 mFlags[8]; // for miscellaneous data --> its interpretation can change at my whim! - U8 createMe; // do I need to be created? or has the work allready been done? - //ActionFlag is now mFlags[PART_SYS_ACTION_BYTE] - //Spawn point is initially object creation center - - F32 diffEqAlpha[3]; - F32 diffEqScale[3]; - - U8 maxParticles; - //How many particles exist at any time within the system? - U8 initialParticles; - //How many particles exist when the system is created? - F32 killPlaneZ; - //For simplicity assume the XY plane, so this sets an altitude at which to die - F32 killPlaneNormal[3]; - //Normal if not planar XY - F32 bouncePlaneZ; - //For simplicity assume the XY plane, so this sets an altitude at which to bounce - F32 bouncePlaneNormal[3]; - //Normal if not planar XY - F32 spawnRange; - //Range of emission points about the mSpawnPoint - F32 spawnFrequency; - //Required if the system is to spawn new particles. - //This variable determines the time after a particle dies when it is respawned. - F32 spawnFreqencyRange; - //Determines the random range of time until a new particle is spawned. - F32 spawnDirection[3]; - //Direction vector giving the mean direction in which particles are spawned - F32 spawnDirectionRange; - //Direction limiting the angular range of emissions about the mean direction. 1.0f means everywhere, 0.0f means uni-directional - F32 spawnVelocity; - //The mean speed at which particles are emitted - F32 spawnVelocityRange; - //The range of speeds about the mean at which particles are emitted. - F32 speedLimit; - //Used to constrain particle maximum velocity - F32 windWeight; - //How much of an effect does wind have - F32 currentGravity[3]; - //Gravity direction used in update calculations - F32 gravityWeight; - //How much of an effect does gravity have - F32 globalLifetime; - //If particles re-spawn, a system can exist forever. - //If (ActionFlags & PART_SYS_GLOBAL_DIE) is true this variable is used to determine how long the system lasts. - F32 individualLifetime; - //How long does each particle last if nothing else happens to it - F32 individualLifetimeRange; - //Range of variation in individual lifetimes - F32 alphaDecay; - //By what factor does alpha decrease as the lifetime of a particle is approached. - F32 scaleDecay; - //By what factor does scale decrease as the lifetime of a particle is approached. - F32 distanceDeath; - //With the increased functionality, particle systems can expand to indefinite size - //(e.g. wind can chaotically move particles into a wide spread). - //To avoid particles exceeding normal object size constraints, - //set the PART_SYS_DISTANCE_DEATH flag, and set a distance value here, representing a radius around the spawn point. - F32 dampMotionFactor; - //How much to damp motion - F32 windDiffusionFactor[3]; - //Change the size and alpha of particles as wind speed increases (scale gets bigger, alpha smaller) -}; - -// constants for setting flag values -// BYTES are in range 0-8, bits are in range 2^0 - 2^8 and can only be powers of two -const int PART_SYS_NO_Z_BUFFER_BYTE = 0; // option to turn off z-buffer when rendering -const int PART_SYS_NO_Z_BUFFER_BIT = 2; // particle systems -- -// I advise against using this, as it looks bad in every case I've tried - -const int PART_SYS_SLOW_ANIM_BYTE = 0; // slow animation down by a factor of 10 -const int PART_SYS_SLOW_ANIM_BIT = 1; // useful for tweaking anims during debugging - -const int PART_SYS_FOLLOW_VEL_BYTE = 0; // indicates whether to orient sprites towards -const int PART_SYS_FOLLOW_VEL_BIT = 4; // their velocity vector -- default is false - -const int PART_SYS_IS_LIGHT_BYTE = 0; // indicates whether a particular particle system -const int PART_SYS_IS_LIGHT_BIT = 8; // is also a light object -- for andrew -// should deprecate this once there is a general method for setting light properties of objects - -const int PART_SYS_SPAWN_COPY_BYTE = 0; // indicates whether to spawn baby particle systems on -const int PART_SYS_SPAWN_COPY_BIT = 0x10; // particle death -- intended for smoke trails - -const int PART_SYS_COPY_VEL_BYTE = 0; // indicates whether baby particle systems inherit parents vel -const int PART_SYS_COPY_VEL_BIT = 0x20; // (by default they don't) - -const int PART_SYS_INVISIBLE_BYTE = 0; // optional -- turn off display, just simulate -const int PART_SYS_INVISIBLE_BIT = 0x40; // useful for smoke trails - -const int PART_SYS_ADAPT_TO_FRAMERATE_BYTE = 0; // drop sprites from render call proportionally -const int PART_SYS_ADAPT_TO_FRAMERATE_BIT = 0x80; // to how far we are below 60 fps - - -// 26 September 2001 - not even big enough to hold all changes, so should enlarge anyway -//const U16 MAX_PART_SYS_PACKET_SIZE = 180; -const U16 MAX_PART_SYS_PACKET_SIZE = 256; - -//const U8 PART_SYS_K_MASK = 0x01; -const U8 PART_SYS_KILL_P_MASK = 0x02; -const U8 PART_SYS_BOUNCE_P_MASK = 0x04; -const U8 PART_SYS_BOUNCE_B_MASK = 0x08; -//const U8 PART_SYS_POS_RANGES_MASK = 0x10; -//const U8 PART_SYS_VEL_RANGES_MASK = 0x20; -const U8 PART_SYS_VEL_OFFSET_MASK = 0x10; //re-use one of the original slots now commented out -const U8 PART_SYS_ALPHA_SCALE_DIFF_MASK = 0x20; //re-use one of the original slots now commented out -const U8 PART_SYS_SCALE_RANGE_MASK = 0x40; -const U8 PART_SYS_M_IMAGE_UUID_MASK = 0x80; -const U8 PART_SYS_BYTE_3_ALPHA_MASK = 0x01; // wrapped around, didn't we? - -const U8 PART_SYS_BYTE_SPAWN_MASK = 0x01; -const U8 PART_SYS_BYTE_ENVIRONMENT_MASK = 0x02; -const U8 PART_SYS_BYTE_LIFESPAN_MASK = 0x04; -const U8 PART_SYS_BYTE_DECAY_DAMP_MASK = 0x08; -const U8 PART_SYS_BYTE_WIND_DIFF_MASK = 0x10; - - -// 26 September 2001 - new constants for mActionFlags -const int PART_SYS_ACTION_BYTE = 1; -const U8 PART_SYS_SPAWN = 0x01; -const U8 PART_SYS_BOUNCE = 0x02; -const U8 PART_SYS_AFFECTED_BY_WIND = 0x04; -const U8 PART_SYS_AFFECTED_BY_GRAVITY = 0x08; -const U8 PART_SYS_EVALUATE_WIND_PER_PARTICLE = 0x10; -const U8 PART_SYS_DAMP_MOTION = 0x20; -const U8 PART_SYS_WIND_DIFFUSION = 0x40; - -// 26 September 2001 - new constants for mKillFlags -const int PART_SYS_KILL_BYTE = 2; -const U8 PART_SYS_KILL_PLANE = 0x01; -const U8 PART_SYS_GLOBAL_DIE = 0x02; -const U8 PART_SYS_DISTANCE_DEATH = 0x04; -const U8 PART_SYS_TIME_DEATH = 0x08; - - -// global, because the sim-side also calls it in the LLPartInitDataFactory - - -void gSetInitDataDefaults(LLPartInitData *setMe); - -class LLPartSysCompressedPacket -{ -public: - LLPartSysCompressedPacket(); - ~LLPartSysCompressedPacket(); - bool fromLLPartInitData(LLPartInitData *in, U32 &bytesUsed); - bool toLLPartInitData(LLPartInitData *out, U32 *bytesUsed); - bool fromUnsignedBytes(U8 *in, U32 bytesUsed); - bool toUnsignedBytes(U8 *out); - U32 bufferSize(); - U8 *getBytePtr(); - -protected: - U8 mData[MAX_PART_SYS_PACKET_SIZE]; - U32 mNumBytes; - LLPartInitData mDefaults; // this is intended to hold default LLPartInitData values - // please do not modify it - LLPartInitData mWorkingCopy; // uncompressed data I'm working with - -protected: - // private functions (used only to break up code) - void writeFlagByte(LLPartInitData *in); - //U32 writeK(LLPartInitData *in, U32 startByte); - U32 writeKill_p(LLPartInitData *in, U32 startByte); - U32 writeBounce_p(LLPartInitData *in, U32 startByte); - U32 writeBounce_b(LLPartInitData *in, U32 startByte); - //U32 writePos_ranges(LLPartInitData *in, U32 startByte); - //U32 writeVel_ranges(LLPartInitData *in, U32 startByte); - U32 writeAlphaScaleDiffEqn_range(LLPartInitData *in, U32 startByte); - U32 writeScale_range(LLPartInitData *in, U32 startByte); - U32 writeAlpha_range(LLPartInitData *in, U32 startByte); - U32 writeUUID(LLPartInitData *in, U32 startByte); - - U32 writeVelocityOffset(LLPartInitData *in, U32 startByte); - U32 writeSpawn(LLPartInitData *in, U32 startByte); //all spawn data - U32 writeEnvironment(LLPartInitData *in, U32 startByte); //wind and gravity - U32 writeLifespan(LLPartInitData *in, U32 startByte); //lifespan data - individual and global - U32 writeDecayDamp(LLPartInitData *in, U32 startByte); //alpha and scale, and motion damp - U32 writeWindDiffusionFactor(LLPartInitData *in, U32 startByte); - - - //U32 readK(LLPartInitData *in, U32 startByte); - U32 readKill_p(LLPartInitData *in, U32 startByte); - U32 readBounce_p(LLPartInitData *in, U32 startByte); - U32 readBounce_b(LLPartInitData *in, U32 startByte); - //U32 readPos_ranges(LLPartInitData *in, U32 startByte); - //U32 readVel_ranges(LLPartInitData *in, U32 startByte); - U32 readAlphaScaleDiffEqn_range(LLPartInitData *in, U32 startByte); - U32 readScale_range(LLPartInitData *in, U32 startByte); - U32 readAlpha_range(LLPartInitData *in, U32 startByte); - U32 readUUID(LLPartInitData *in, U32 startByte); - - U32 readVelocityOffset(LLPartInitData *in, U32 startByte); - U32 readSpawn(LLPartInitData *in, U32 startByte); //all spawn data - U32 readEnvironment(LLPartInitData *in, U32 startByte); //wind and gravity - U32 readLifespan(LLPartInitData *in, U32 startByte); //lifespan data - individual and global - U32 readDecayDamp(LLPartInitData *in, U32 startByte); //alpha and scale, and motion damp - U32 readWindDiffusionFactor(LLPartInitData *in, U32 startByte); -}; - -#endif - diff --git a/indra/test/io.cpp b/indra/llmessage/tests/io_test.cpp index f77402065a..f77402065a 100644 --- a/indra/test/io.cpp +++ b/indra/llmessage/tests/io_test.cpp diff --git a/indra/test/llbuffer_tut.cpp b/indra/llmessage/tests/llbuffer_test.cpp index 330a4f288f..330a4f288f 100644 --- a/indra/test/llbuffer_tut.cpp +++ b/indra/llmessage/tests/llbuffer_test.cpp diff --git a/indra/llmessage/tests/llcurl_stub.cpp b/indra/llmessage/tests/llcurl_stub.cpp deleted file mode 100644 index 78c195580c..0000000000 --- a/indra/llmessage/tests/llcurl_stub.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/** - * @file llcurl_stub.cpp - * @brief stub class to allow unit testing - * - * $LicenseInfo:firstyear=2008&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_CURL_STUB_CPP -#define LL_CURL_STUB_CPP - - -#include "linden_common.h" -#include "llcurl.h" -#include "llhttpconstants.cpp" - -LLCurl::Responder::Responder() -{ -} - -void LLCurl::Responder::httpCompleted() -{ - if (isGoodStatus()) - { - httpSuccess(); - } - else - { - httpFailure(); - } -} - -void LLCurl::Responder::completedRaw(LLChannelDescriptors const&, - std::shared_ptr<LLBufferArray> const&) -{ -} - -void LLCurl::Responder::httpFailure() -{ -} - -LLCurl::Responder::~Responder () -{ -} - -void LLCurl::Responder::httpSuccess() -{ -} - -std::string LLCurl::Responder::dumpResponse() const -{ - return "dumpResponse()"; -} - -void LLCurl::Responder::successResult(const LLSD& content) -{ - setResult(HTTP_OK, "", content); - httpSuccess(); -} - -void LLCurl::Responder::failureResult(S32 status, const std::string& reason, const LLSD& content) -{ - setResult(status, reason, content); - httpFailure(); -} - - -void LLCurl::Responder::completeResult(S32 status, const std::string& reason, const LLSD& content) -{ - setResult(status, reason, content); - httpCompleted(); -} - -void LLCurl::Responder::setResult(S32 status, const std::string& reason, const LLSD& content /* = LLSD() */) -{ - mStatus = status; - mReason = reason; - mContent = content; -} - -#endif diff --git a/indra/test/lldatapacker_tut.cpp b/indra/llmessage/tests/lldatapacker_test.cpp index 2e975ee637..746817936d 100644 --- a/indra/test/lldatapacker_tut.cpp +++ b/indra/llmessage/tests/lldatapacker_test.cpp @@ -26,9 +26,10 @@ * $/LicenseInfo$ */ -#include <tut/tut.hpp> -#include "lltut.h" #include "linden_common.h" + +#include "lltut.h" + #include "lldatapacker.h" #include "v4color.h" #include "v4coloru.h" @@ -38,6 +39,7 @@ #include "llsdserialize.h" #define TEST_FILE_NAME "datapacker_test.txt" + namespace tut { struct datapacker_test @@ -188,11 +190,11 @@ namespace tut template<> template<> void datapacker_test_object_t::test<5>() { - U8 buf[] = "SecondLife is virtual World"; + U8* buf = new U8[]("SecondLife is virtual World"); S32 size = sizeof(buf); LLDataPackerBinaryBuffer lldp(buf, size); - U8 new_buf[] = "Its Amazing"; - size = sizeof(new_buf); + U8* new_buf = new U8[]("Its Amazing"); + size = sizeof(new_buf)-1; lldp.assignBuffer(new_buf, size); ensure("LLDataPackerBinaryBuffer::assignBuffer failed" , ((lldp.getBufferSize() == size) && (0 == lldp.getCurrentSize()))) ; } diff --git a/indra/llmessage/tests/llhttpclient_test.cpp b/indra/llmessage/tests/llhttpclient_test.cpp deleted file mode 100644 index 1881144d3e..0000000000 --- a/indra/llmessage/tests/llhttpclient_test.cpp +++ /dev/null @@ -1,311 +0,0 @@ -/** - * @file llhttpclient_test.cpp - * @brief Testing the HTTP client classes. - * - * $LicenseInfo:firstyear=2006&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$ - */ - -/** - * - * These classes test the HTTP client framework. - * - */ - -#include <tut/tut.hpp> -#include "linden_common.h" - -#include "lltut.h" -#include "llhttpclient.h" -#include "llformat.h" -#include "llpipeutil.h" -#include "llproxy.h" -#include "llpumpio.h" - -#include "lliosocket.h" -#include "llstring.h" -#include "stringize.h" -#include "llcleanup.h" - -namespace tut -{ - struct HTTPClientTestData - { - public: - HTTPClientTestData(): - PORT(LLStringUtil::getenv("PORT")), - // Turning NULL PORT into empty string doesn't make things work; - // that's just to keep this initializer from blowing up. We test - // PORT separately in the constructor body. - local_server(STRINGIZE("http://127.0.0.1:" << PORT << "/")) - { - ensure("Set environment variable PORT to local test server port", !PORT.empty()); - apr_pool_create(&mPool, NULL); - LLCurl::initClass(false); - mClientPump = new LLPumpIO(mPool); - - LLHTTPClient::setPump(*mClientPump); - } - - ~HTTPClientTestData() - { - delete mClientPump; - SUBSYSTEM_CLEANUP(LLProxy); - apr_pool_destroy(mPool); - } - - void runThePump(float timeout = 100.0f) - { - LLTimer timer; - timer.setTimerExpirySec(timeout); - - while(!mSawCompleted && !mSawCompletedHeader && !timer.hasExpired()) - { - LLFrameTimer::updateFrameTime(); - if (mClientPump) - { - mClientPump->pump(); - mClientPump->callback(); - } - } - } - - const std::string PORT; - const std::string local_server; - - private: - apr_pool_t* mPool; - LLPumpIO* mClientPump; - - protected: - void ensureStatusOK() - { - if (mSawError) - { - std::string msg = - llformat("httpFailure() called when not expected, status %d", - mStatus); - fail(msg); - } - } - - void ensureStatusError() - { - if (!mSawError) - { - fail("httpFailure() wasn't called"); - } - } - - LLSD getResult() - { - return mResult; - } - LLSD getHeader() - { - return mHeader; - } - - protected: - bool mSawError; - U32 mStatus; - std::string mReason; - bool mSawCompleted; - bool mSawCompletedHeader; - LLSD mResult; - LLSD mHeader; - bool mResultDeleted; - - class Result : public LLHTTPClient::Responder - { - protected: - Result(HTTPClientTestData& client) - : mClient(client) - { - } - - public: - static Result* build(HTTPClientTestData& client) - { - return new Result(client); - } - - ~Result() - { - mClient.mResultDeleted = true; - } - - protected: - virtual void httpFailure() - { - mClient.mSawError = true; - mClient.mStatus = getStatus(); - mClient.mReason = getReason(); - } - - virtual void httpSuccess() - { - mClient.mResult = getContent(); - } - - virtual void httpCompleted() - { - LLHTTPClient::Responder::httpCompleted(); - - mClient.mSawCompleted = true; - mClient.mSawCompletedHeader = true; - mClient.mHeader = getResponseHeaders(); - } - - private: - HTTPClientTestData& mClient; - }; - - friend class Result; - - protected: - LLHTTPClient::ResponderPtr newResult() - { - mSawError = false; - mStatus = 0; - mSawCompleted = false; - mSawCompletedHeader = false; - mResult.clear(); - mHeader.clear(); - mResultDeleted = false; - - return Result::build(*this); - } - }; - - - typedef test_group<HTTPClientTestData> HTTPClientTestGroup; - typedef HTTPClientTestGroup::object HTTPClientTestObject; - HTTPClientTestGroup httpClientTestGroup("http_client"); - - template<> template<> - void HTTPClientTestObject::test<1>() - { - LLHTTPClient::get(local_server, newResult()); - runThePump(); - ensureStatusOK(); - ensure("result object wasn't destroyed", mResultDeleted); - } - - template<> template<> - void HTTPClientTestObject::test<2>() - { - // Please nobody listen on this particular port... - LLHTTPClient::get("http://127.0.0.1:7950", newResult()); - runThePump(); - ensureStatusError(); - } - - template<> template<> - void HTTPClientTestObject::test<3>() - { - LLSD sd; - - sd["list"][0]["one"] = 1; - sd["list"][0]["two"] = 2; - sd["list"][1]["three"] = 3; - sd["list"][1]["four"] = 4; - - LLHTTPClient::post(local_server + "web/echo", sd, newResult()); - runThePump(); - ensureStatusOK(); - ensure_equals("echoed result matches", getResult(), sd); - } - - template<> template<> - void HTTPClientTestObject::test<4>() - { - LLSD sd; - - sd["message"] = "This is my test message."; - - LLHTTPClient::put(local_server + "test/storage", sd, newResult()); - runThePump(); - ensureStatusOK(); - - LLHTTPClient::get(local_server + "test/storage", newResult()); - runThePump(); - ensureStatusOK(); - ensure_equals("echoed result matches", getResult(), sd); - - } - - template<> template<> - void HTTPClientTestObject::test<5>() - { - LLSD sd; - sd["status"] = 543; - sd["reason"] = "error for testing"; - - LLHTTPClient::post(local_server + "test/error", sd, newResult()); - runThePump(); - ensureStatusError(); - ensure_contains("reason", mReason, sd["reason"]); - } - - template<> template<> - void HTTPClientTestObject::test<6>() - { - const F32 timeout = 1.0f; - LLHTTPClient::get(local_server + "test/timeout", newResult(), LLSD(), timeout); - runThePump(timeout * 5.0f); - ensureStatusError(); - ensure_equals("reason", mReason, "STATUS_EXPIRED"); - } - - template<> template<> - void HTTPClientTestObject::test<7>() - { - LLHTTPClient::get(local_server, newResult()); - runThePump(); - ensureStatusOK(); - LLSD expected = getResult(); - - LLSD result; - result = LLHTTPClient::blockingGet(local_server); - LLSD body = result["body"]; - ensure_equals("echoed result matches", body.size(), expected.size()); - } - template<> template<> - void HTTPClientTestObject::test<8>() - { - // This is testing for the presence of the Header in the returned results - // from an HTTP::get call. - LLHTTPClient::get(local_server, newResult()); - runThePump(); - ensureStatusOK(); - LLSD header = getHeader(); - ensure("got a header", ! header.emptyMap().asBoolean()); - } - template<> template<> - void HTTPClientTestObject::test<9>() - { - LLHTTPClient::head(local_server, newResult()); - runThePump(); - ensureStatusOK(); - ensure("result object wasn't destroyed", mResultDeleted); - } -} diff --git a/indra/test/llhttpnode_tut.cpp b/indra/llmessage/tests/llhttpnode_test.cpp index c38dee120b..c38dee120b 100644 --- a/indra/test/llhttpnode_tut.cpp +++ b/indra/llmessage/tests/llhttpnode_test.cpp diff --git a/indra/test/lliohttpserver_tut.cpp b/indra/llmessage/tests/lliohttpserver_test.cpp index 7034f4a063..7034f4a063 100644 --- a/indra/test/lliohttpserver_tut.cpp +++ b/indra/llmessage/tests/lliohttpserver_test.cpp diff --git a/indra/test/llmessageconfig_tut.cpp b/indra/llmessage/tests/llmessageconfig_test.cpp index 93443467a2..93443467a2 100644 --- a/indra/test/llmessageconfig_tut.cpp +++ b/indra/llmessage/tests/llmessageconfig_test.cpp diff --git a/indra/test/llmessagetemplateparser_tut.cpp b/indra/llmessage/tests/llmessagetemplateparser_test.cpp index f665fdde4d..f665fdde4d 100644 --- a/indra/test/llmessagetemplateparser_tut.cpp +++ b/indra/llmessage/tests/llmessagetemplateparser_test.cpp diff --git a/indra/test/llpipeutil.cpp b/indra/llmessage/tests/llpipeutil.cpp index 1dd4bdfa3c..1dd4bdfa3c 100644 --- a/indra/test/llpipeutil.cpp +++ b/indra/llmessage/tests/llpipeutil.cpp diff --git a/indra/test/llpipeutil.h b/indra/llmessage/tests/llpipeutil.h index 97d9e1c85c..97d9e1c85c 100644 --- a/indra/test/llpipeutil.h +++ b/indra/llmessage/tests/llpipeutil.h diff --git a/indra/test/llsdmessagebuilder_tut.cpp b/indra/llmessage/tests/llsdmessagebuilder_test.cpp index 6804c3e29e..6804c3e29e 100644 --- a/indra/test/llsdmessagebuilder_tut.cpp +++ b/indra/llmessage/tests/llsdmessagebuilder_test.cpp diff --git a/indra/test/llsdmessagereader_tut.cpp b/indra/llmessage/tests/llsdmessagereader_test.cpp index dd6520ea33..dd6520ea33 100644 --- a/indra/test/llsdmessagereader_tut.cpp +++ b/indra/llmessage/tests/llsdmessagereader_test.cpp diff --git a/indra/test/llservicebuilder_tut.cpp b/indra/llmessage/tests/llservicebuilder_test.cpp index 0bc17865d6..0bc17865d6 100644 --- a/indra/test/llservicebuilder_tut.cpp +++ b/indra/llmessage/tests/llservicebuilder_test.cpp diff --git a/indra/test/lltemplatemessagebuilder_tut.cpp b/indra/llmessage/tests/lltemplatemessagebuilder_test.cpp index ddf1c3dbcc..ddf1c3dbcc 100644 --- a/indra/test/lltemplatemessagebuilder_tut.cpp +++ b/indra/llmessage/tests/lltemplatemessagebuilder_test.cpp diff --git a/indra/test/llxorcipher_tut.cpp b/indra/llmessage/tests/llxorcipher_test.cpp index 9acac53604..9acac53604 100644 --- a/indra/test/llxorcipher_tut.cpp +++ b/indra/llmessage/tests/llxorcipher_test.cpp diff --git a/indra/test/message_tut.cpp b/indra/llmessage/tests/message_test.cpp index 11cd710ef6..11cd710ef6 100644 --- a/indra/test/message_tut.cpp +++ b/indra/llmessage/tests/message_test.cpp diff --git a/indra/llprimitive/llprimlinkinfo.h b/indra/llprimitive/llprimlinkinfo.h deleted file mode 100644 index 67e40fd5be..0000000000 --- a/indra/llprimitive/llprimlinkinfo.h +++ /dev/null @@ -1,393 +0,0 @@ -/** - * @file llprimlinkinfo.h - * @author andrew@lindenlab.com - * @brief A template for determining which prims in a set are linkable - * - * $LicenseInfo:firstyear=2007&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_PRIM_LINK_INFO_H -#define LL_PRIM_LINK_INFO_H - -// system includes -#include <iostream> -#include <map> -#include <list> -#include <vector> - -// common includes -#include "stdtypes.h" -#include "v3math.h" -#include "llquaternion.h" -#include "llsphere.h" - - -const F32 MAX_OBJECT_SPAN = 54.f; // max distance from outside edge of an object to the farthest edge -const F32 OBJECT_SPAN_BONUS = 2.f; // infinitesimally small prims can always link up to this distance -const S32 MAX_PRIMS_PER_OBJECT = 256; - - -template < typename DATA_TYPE > -class LLPrimLinkInfo -{ -public: - LLPrimLinkInfo(); - LLPrimLinkInfo( DATA_TYPE data, const LLSphere& sphere ); - ~LLPrimLinkInfo(); - - void set( DATA_TYPE data, const LLSphere& sphere ); - void append( DATA_TYPE data, const LLSphere& sphere ); - void getData( std::list< DATA_TYPE >& data_list ) const; - F32 getDiameter() const; - LLVector3 getCenter() const; - - // returns 'true' if this info can link with other_info - bool canLink( const LLPrimLinkInfo< DATA_TYPE >& other_info ); - - S32 getPrimCount() const { return mDataMap.size(); } - - void mergeLinkableSet( typename std::list< LLPrimLinkInfo < DATA_TYPE > >& unlinked ); - - void transform(const LLVector3& position, const LLQuaternion& rotation); - -private: - // returns number of merges made - S32 merge(LLPrimLinkInfo< DATA_TYPE >& other_info); - - // returns number of collapses made - static S32 collapse(typename std::list< LLPrimLinkInfo < DATA_TYPE > >& unlinked ); - - void computeBoundingSphere(); - - // Internal utility to encapsulate the link rules - F32 get_max_linkable_span(const LLSphere& first, const LLSphere& second); - F32 get_span(const LLSphere& first, const LLSphere& second); - -private: - std::map< DATA_TYPE, LLSphere > mDataMap; - LLSphere mBoundingSphere; -}; - - - -template < typename DATA_TYPE > -LLPrimLinkInfo< DATA_TYPE >::LLPrimLinkInfo() -: mBoundingSphere( LLVector3(0.f, 0.f, 0.f), 0.f ) -{ -} - -template < typename DATA_TYPE > -LLPrimLinkInfo< DATA_TYPE >::LLPrimLinkInfo( DATA_TYPE data, const LLSphere& sphere) -: mBoundingSphere(sphere) -{ - mDataMap[data] = sphere; -} - -template < typename DATA_TYPE > -LLPrimLinkInfo< DATA_TYPE >::~LLPrimLinkInfo() -{ - mDataMap.clear(); -} - -template < typename DATA_TYPE > -void LLPrimLinkInfo< DATA_TYPE>::set( DATA_TYPE data, const LLSphere& sphere ) -{ - if (!mDataMap.empty()) - { - mDataMap.clear(); - } - mDataMap[data] = sphere; - mBoundingSphere = sphere; -} - -template < typename DATA_TYPE > -void LLPrimLinkInfo< DATA_TYPE>::append( DATA_TYPE data, const LLSphere& sphere ) -{ - mDataMap[data] = sphere; - if (!mBoundingSphere.contains(sphere)) - { - computeBoundingSphere(); - } -} - -template < typename DATA_TYPE > -void LLPrimLinkInfo< DATA_TYPE >::getData( std::list< DATA_TYPE >& data_list) const -{ - typename std::map< DATA_TYPE, LLSphere >::const_iterator map_itr; - for (map_itr = mDataMap.begin(); map_itr != mDataMap.end(); ++map_itr) - { - data_list.push_back(map_itr->first); - } -} - -template < typename DATA_TYPE > -F32 LLPrimLinkInfo< DATA_TYPE >::getDiameter() const -{ - return 2.f * mBoundingSphere.getRadius(); -} - -template < typename DATA_TYPE > -LLVector3 LLPrimLinkInfo< DATA_TYPE >::getCenter() const -{ - return mBoundingSphere.getCenter(); -} - -template < typename DATA_TYPE > -F32 LLPrimLinkInfo< DATA_TYPE >::get_max_linkable_span(const LLSphere& first, const LLSphere& second) -{ - F32 max_span = 3.f * (first.getRadius() + second.getRadius()) + OBJECT_SPAN_BONUS; - if (max_span > MAX_OBJECT_SPAN) - { - max_span = MAX_OBJECT_SPAN; - } - - return max_span; -} - -template < typename DATA_TYPE > -F32 LLPrimLinkInfo< DATA_TYPE >::get_span(const LLSphere& first, const LLSphere& second) -{ - F32 span = (first.getCenter() - second.getCenter()).length() - + first.getRadius() + second.getRadius(); - return span; -} - -// static -// returns 'true' if this info can link with any part of other_info -template < typename DATA_TYPE > -bool LLPrimLinkInfo< DATA_TYPE >::canLink(const LLPrimLinkInfo& other_info) -{ - F32 max_span = get_max_linkable_span(mBoundingSphere, other_info.mBoundingSphere); - - F32 span = get_span(mBoundingSphere, other_info.mBoundingSphere); - - if (span <= max_span) - { - // The entire other_info fits inside the max span. - return TRUE; - } - else if (span > max_span + 2.f * other_info.mBoundingSphere.getRadius()) - { - // there is no way any piece of other_info could link with this one - return FALSE; - } - - // there may be a piece of other_info that is linkable - typename std::map< DATA_TYPE, LLSphere >::const_iterator map_itr; - for (map_itr = other_info.mDataMap.begin(); map_itr != other_info.mDataMap.end(); ++map_itr) - { - const LLSphere& other_sphere = (*map_itr).second; - max_span = get_max_linkable_span(mBoundingSphere, other_sphere); - - span = get_span(mBoundingSphere, other_sphere); - - if (span <= max_span) - { - // found one piece that is linkable - return TRUE; - } - } - return FALSE; -} - -// merges elements of 'unlinked' -// returns number of links made (NOT final prim count, NOR linked prim count) -// and removes any linkable infos from 'unlinked' -template < typename DATA_TYPE > -void LLPrimLinkInfo< DATA_TYPE >::mergeLinkableSet(std::list< LLPrimLinkInfo< DATA_TYPE > > & unlinked) -{ - bool linked_something = true; - while (linked_something) - { - linked_something = false; - - typename std::list< LLPrimLinkInfo< DATA_TYPE > >::iterator other_itr = unlinked.begin(); - while ( other_itr != unlinked.end() - && getPrimCount() < MAX_PRIMS_PER_OBJECT ) - { - S32 merge_count = merge(*other_itr); - if (merge_count > 0) - { - linked_something = true; - } - if (0 == (*other_itr).getPrimCount()) - { - unlinked.erase(other_itr++); - } - else - { - ++other_itr; - } - } - if (!linked_something - && unlinked.size() > 1) - { - S32 collapse_count = collapse(unlinked); - if (collapse_count > 0) - { - linked_something = true; - } - } - } -} - -// transforms all of the spheres into a new reference frame -template < typename DATA_TYPE > -void LLPrimLinkInfo< DATA_TYPE >::transform(const LLVector3& position, const LLQuaternion& rotation) -{ - typename std::map< DATA_TYPE, LLSphere >::iterator map_itr; - for (map_itr = mDataMap.begin(); map_itr != mDataMap.end(); ++map_itr) - { - (*map_itr).second.setCenter((*map_itr).second.getCenter() * rotation + position); - } - mBoundingSphere.setCenter(mBoundingSphere.getCenter() * rotation + position); -} - -// private -// returns number of links made -template < typename DATA_TYPE > -S32 LLPrimLinkInfo< DATA_TYPE >::merge(LLPrimLinkInfo& other_info) -{ - S32 link_count = 0; - -// F32 other_radius = other_info.mBoundingSphere.getRadius(); -// other_info.computeBoundingSphere(); -// if ( other_radius != other_info.mBoundingSphere.getRadius() ) -// { -// LL_INFOS() << "Other bounding sphere changed!!" << LL_ENDL; -// } - -// F32 this_radius = mBoundingSphere.getRadius(); -// computeBoundingSphere(); -// if ( this_radius != mBoundingSphere.getRadius() ) -// { -// LL_INFOS() << "This bounding sphere changed!!" << LL_ENDL; -// } - - - F32 max_span = get_max_linkable_span(mBoundingSphere, other_info.mBoundingSphere); - - // F32 center_dist = (mBoundingSphere.getCenter() - other_info.mBoundingSphere.getCenter()).length(); - // LL_INFOS() << "objects are " << center_dist << "m apart" << LL_ENDL; - F32 span = get_span(mBoundingSphere, other_info.mBoundingSphere); - - F32 span_limit = max_span + (2.f * other_info.mBoundingSphere.getRadius()); - if (span > span_limit) - { - // there is no way any piece of other_info could link with this one - // LL_INFOS() << "span too large: " << span << " vs. " << span_limit << LL_ENDL; - return 0; - } - - bool completely_linkable = (span <= max_span) ? true : false; - - typename std::map< DATA_TYPE, LLSphere >::iterator map_itr = other_info.mDataMap.begin(); - while (map_itr != other_info.mDataMap.end() - && getPrimCount() < MAX_PRIMS_PER_OBJECT ) - { - DATA_TYPE other_data = (*map_itr).first; - LLSphere& other_sphere = (*map_itr).second; - - if (!completely_linkable) - { - max_span = get_max_linkable_span(mBoundingSphere, other_sphere); - - F32 span = get_span(mBoundingSphere, other_sphere); - - if (span > max_span) - { - ++map_itr; - continue; - } - } - - mDataMap[other_data] = other_sphere; - ++link_count; - - if (!mBoundingSphere.contains(other_sphere) ) - { - computeBoundingSphere(); - } - - // remove from the other info - other_info.mDataMap.erase(map_itr++); - } - - if (link_count > 0 && other_info.getPrimCount() > 0) - { - other_info.computeBoundingSphere(); - } - return link_count; -} - -// links any linkable elements of unlinked -template < typename DATA_TYPE > -S32 LLPrimLinkInfo< DATA_TYPE >::collapse(std::list< LLPrimLinkInfo< DATA_TYPE > > & unlinked) -{ - S32 link_count = 0; - bool linked_something = true; - while (linked_something) - { - linked_something = false; - - typename std::list< LLPrimLinkInfo< DATA_TYPE > >::iterator this_itr = unlinked.begin(); - typename std::list< LLPrimLinkInfo< DATA_TYPE > >::iterator other_itr = this_itr; - ++other_itr; - while ( other_itr != unlinked.end() ) - - { - S32 merge_count = (*this_itr).merge(*other_itr); - if (merge_count > 0) - { - linked_something = true; - link_count += merge_count; - } - if (0 == (*other_itr).getPrimCount()) - { - unlinked.erase(other_itr++); - } - else - { - ++other_itr; - } - } - } - return link_count; -} - - -template < typename DATA_TYPE > -void LLPrimLinkInfo< DATA_TYPE >::computeBoundingSphere() -{ - std::vector< LLSphere > sphere_list; - typename std::map< DATA_TYPE, LLSphere >::const_iterator map_itr; - for (map_itr = mDataMap.begin(); map_itr != mDataMap.end(); ++map_itr) - { - sphere_list.push_back(map_itr->second); - } - mBoundingSphere = LLSphere::getBoundingSphere(sphere_list); -} - - -#endif - diff --git a/indra/llrender/llrendertarget.h b/indra/llrender/llrendertarget.h index cd3290cf66..ea4c38d483 100644 --- a/indra/llrender/llrendertarget.h +++ b/indra/llrender/llrendertarget.h @@ -42,7 +42,7 @@ ... //allocate a 256x256 RGBA render target with depth buffer - target.allocate(256,256,GL_RGBA,TRUE); + target.allocate(256,256,GL_RGBA,true); //render to contents of offscreen buffer target.bindTarget(); diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt index b543a12281..a71b1e747f 100644 --- a/indra/llui/CMakeLists.txt +++ b/indra/llui/CMakeLists.txt @@ -286,10 +286,8 @@ if(LL_TESTS) ) set_property( SOURCE ${llui_TEST_SOURCE_FILES} PROPERTY LL_TEST_ADDITIONAL_LIBRARIES ${test_libs}) LL_ADD_PROJECT_UNIT_TESTS(llui "${llui_TEST_SOURCE_FILES}") - # INTEGRATION TESTS - if(NOT LINUX) - set(test_libs llui llmessage llcorehttp llxml llrender llcommon ll::hunspell ) - LL_ADD_INTEGRATION_TEST(llurlentry llurlentry.cpp "${test_libs}") - endif(NOT LINUX) + # INTEGRATION TESTS + set(test_libs llui llmessage llcorehttp llxml llrender llcommon ll::hunspell ) + LL_ADD_INTEGRATION_TEST(llurlentry llurlentry.cpp "${test_libs}") endif(LL_TESTS) diff --git a/indra/llui/tests/llurlentry_stub.cpp b/indra/llui/tests/llurlentry_stub.cpp index 95d1586495..8277c23691 100755 --- a/indra/llui/tests/llurlentry_stub.cpp +++ b/indra/llui/tests/llurlentry_stub.cpp @@ -50,16 +50,16 @@ LLAvatarNameCache::callback_connection_t LLAvatarNameCache::get(const LLUUID& ag // // Stub implementation for LLCacheName // -BOOL LLCacheName::getFullName(const LLUUID& id, std::string& fullname) +bool LLCacheName::getFullName(const LLUUID& id, std::string& fullname) { fullname = "Lynx Linden"; - return TRUE; + return true; } -BOOL LLCacheName::getGroupName(const LLUUID& id, std::string& group) +bool LLCacheName::getGroupName(const LLUUID& id, std::string& group) { group = "My Group"; - return TRUE; + return true; } boost::signals2::connection LLCacheName::get(const LLUUID& id, bool is_group, const LLCacheNameCallback& callback) diff --git a/indra/llwindow/llwindowmacosx.h b/indra/llwindow/llwindowmacosx.h index d703a84d02..dc8b7504c9 100644 --- a/indra/llwindow/llwindowmacosx.h +++ b/indra/llwindow/llwindowmacosx.h @@ -36,11 +36,6 @@ #include <ApplicationServices/ApplicationServices.h> #include <OpenGL/OpenGL.h> -// AssertMacros.h does bad things. -#include "fix_macros.h" -#undef verify -#undef require - class LLWindowMacOSX : public LLWindow { public: diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 4172b4ade3..0dbfdd953f 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1434,8 +1434,6 @@ set(viewer_HEADER_FILES noise.h pipeline.h roles_constants.h - VertexCache.h - VorbisFramework.h ) source_group("CMake Rules" FILES ViewerInstall.cmake) @@ -2343,7 +2341,7 @@ if (LL_TESTS) lldateutil.cpp # llmediadataclient.cpp lllogininstance.cpp -# llremoteparcelrequest.cpp + llremoteparcelrequest.cpp llviewerhelputil.cpp llversioninfo.cpp # llvocache.cpp @@ -2368,21 +2366,24 @@ if (LL_TESTS) # ) set(test_libs - llcommon - llfilesystem - llxml - llmessage - llcharacter - llui - lllogin - llplugin - llappearance - ) + llfilesystem + llmath + llcommon + llmessage + llcorehttp + llxml + llui + llplugin + llappearance + llprimitive + lllogin + ) - set_source_files_properties( - llmediadataclient.cpp - PROPERTIES - LL_TEST_ADDITIONAL_LIBRARIES "${test_libs}" + set_property(SOURCE + ${viewer_TEST_SOURCE_FILES} + PROPERTY + LL_TEST_ADDITIONAL_LIBRARIES + ${test_libs} ) set_source_files_properties( @@ -2394,66 +2395,39 @@ if (LL_TESTS) ) set_source_files_properties( - llmediadataclient.cpp - PROPERTIES - LL_TEST_ADDITIONAL_LIBRARIES llprimitive - ) - - set_source_files_properties( lllogininstance.cpp PROPERTIES - LL_TEST_ADDITIONAL_SOURCE_FILES llversioninfo.cpp - ) - - set_property( SOURCE - ${viewer_TEST_SOURCE_FILES} - PROPERTY - LL_TEST_ADDITIONAL_LIBRARIES ${test_libs} + LL_TEST_ADDITIONAL_SOURCE_FILES + llversioninfo.cpp ) LL_ADD_PROJECT_UNIT_TESTS(${VIEWER_BINARY_NAME} "${viewer_TEST_SOURCE_FILES}") #set(TEST_DEBUG on) - - set(test_libs - llfilesystem - llmath - llcommon - llmessage - llcorehttp - llxml - llui - llplugin - llappearance - lllogin - llprimitive - lllogin - ) - LL_ADD_INTEGRATION_TEST(cppfeatures "" "${test_libs}" - ) + ) LL_ADD_INTEGRATION_TEST(llsechandler_basic llsechandler_basic.cpp "${test_libs}" - ) + ) LL_ADD_INTEGRATION_TEST(llsecapi - llsecapi.cpp + llsecapi.cpp "${test_libs}" - ) + ) set(llslurl_test_sources - llslurl.cpp - llviewernetwork.cpp + llslurl.cpp + llviewernetwork.cpp ) LL_ADD_INTEGRATION_TEST(llslurl - "${llslurl_test_sources}" + "${llslurl_test_sources}" "${test_libs}" - ) + ) set(llviewercontrollistener_test_sources llviewercontrollistener.cpp @@ -2461,31 +2435,34 @@ if (LL_TESTS) ../llxml/llxmltree.cpp ../llxml/llxmlparser.cpp ../llcommon/commoncontrol.cpp - ) + ) LL_ADD_INTEGRATION_TEST(llviewercontrollistener "${llviewercontrollistener_test_sources}" "${test_libs}" - ) + ) LL_ADD_INTEGRATION_TEST(llviewernetwork - llviewernetwork.cpp + llviewernetwork.cpp "${test_libs}" - ) + ) LL_ADD_INTEGRATION_TEST(llviewerassetstats llviewerassetstats.cpp "${test_libs}" - ) - -# LL_ADD_INTEGRATION_TEST(llhttpretrypolicy "llhttpretrypolicy.cpp" "${test_libs}") - - #ADD_VIEWER_BUILD_TEST(llmemoryview viewer) - #ADD_VIEWER_BUILD_TEST(llagentaccess viewer) - #ADD_VIEWER_BUILD_TEST(lltextureinfo viewer) - #ADD_VIEWER_BUILD_TEST(lltextureinfodetails viewer) + ) + LL_ADD_INTEGRATION_TEST(llhttpretrypolicy "llhttpretrypolicy.cpp" "${test_libs}") + set(lltextureinfo_test_sources + lltextureinfo.cpp + ../llxml/llcontrol.cpp + ../llxml/llxmltree.cpp + ../llxml/llxmlparser.cpp + ../llcommon/commoncontrol.cpp + ) + LL_ADD_INTEGRATION_TEST(lltextureinfo "${lltextureinfo_test_sources}" "${test_libs}") + #LL_ADD_INTEGRATION_TEST(lltextureinfodetails "" "${test_libs}") test cases currently empty endif (LL_TESTS) check_message_template(${VIEWER_BINARY_NAME}) diff --git a/indra/newview/Info-SecondLifeVorbis.plist b/indra/newview/Info-SecondLifeVorbis.plist deleted file mode 100644 index 9cb367eec1..0000000000 --- a/indra/newview/Info-SecondLifeVorbis.plist +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>English</string> - <key>CFBundleExecutable</key> - <string>SecondLifeVorbis</string> - <key>CFBundleGetInfoString</key> - <string></string> - <key>CFBundleIconFile</key> - <string></string> - <key>CFBundleIdentifier</key> - <string>com.secondlife.indra.vorbis</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>SecondLifeVorbis</string> - <key>CFBundlePackageType</key> - <string>FMWK</string> - <key>CFBundleShortVersionString</key> - <string></string> - <key>CFBundleSignature</key> - <string>????</string> - <key>CFBundleVersion</key> - <string>0.0.1d1</string> -</dict> -</plist> diff --git a/indra/newview/VertexCache.h b/indra/newview/VertexCache.h deleted file mode 100644 index edb231feb1..0000000000 --- a/indra/newview/VertexCache.h +++ /dev/null @@ -1,105 +0,0 @@ -/** - * @file VertexCache.h - * @brief VertexCache class definition - * - * $LicenseInfo:firstyear=2002&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 VERTEX_CACHE_H - -#define VERTEX_CACHE_H - -class VertexCache -{ - -public: - - VertexCache(int size) - { - numEntries = size; - - entries = new int[numEntries]; - - for(int i = 0; i < numEntries; i++) - entries[i] = -1; - } - - VertexCache() { VertexCache(16); } - ~VertexCache() { delete[] entries; entries = 0; } - - bool InCache(int entry) - { - bool returnVal = false; - for(int i = 0; i < numEntries; i++) - { - if(entries[i] == entry) - { - returnVal = true; - break; - } - } - - return returnVal; - } - - int AddEntry(int entry) - { - int removed; - - removed = entries[numEntries - 1]; - - //push everything right one - for(int i = numEntries - 2; i >= 0; i--) - { - entries[i + 1] = entries[i]; - } - - entries[0] = entry; - - return removed; - } - - void Clear() - { - memset(entries, -1, sizeof(int) * numEntries); - } - - void Copy(VertexCache* inVcache) - { - for(int i = 0; i < numEntries; i++) - { - inVcache->Set(i, entries[i]); - } - } - - int At(int index) { return entries[index]; } - void Set(int index, int value) { entries[index] = value; } - -private: - - int *entries; - int numEntries; - -}; - -#endif diff --git a/indra/newview/VorbisFramework.h b/indra/newview/VorbisFramework.h deleted file mode 100644 index 7ee9a8c411..0000000000 --- a/indra/newview/VorbisFramework.h +++ /dev/null @@ -1,80 +0,0 @@ -/** - * @file VorbisFramework.h - * @author Dave Camp - * @date Fri Oct 10 2003 - * @brief For the Macview project - * - * $LicenseInfo:firstyear=2003&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$ - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "ogg/ogg.h" -#include "vorbis/codec.h" -#include "vorbis/vorbisenc.h" - -extern int mac_vorbis_analysis(vorbis_block *vb,ogg_packet *op); - -extern int mac_vorbis_analysis_headerout(vorbis_dsp_state *v, - vorbis_comment *vc, - ogg_packet *op, - ogg_packet *op_comm, - ogg_packet *op_code); - -extern int mac_vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi); - -extern int mac_vorbis_encode_ctl(vorbis_info *vi,int number,void *arg); - -extern int mac_vorbis_encode_setup_init(vorbis_info *vi); - -extern int mac_vorbis_encode_setup_managed(vorbis_info *vi, - long channels, - long rate, - - long max_bitrate, - long nominal_bitrate, - long min_bitrate); - -extern void mac_vorbis_info_init(vorbis_info *vi); -extern void mac_vorbis_info_clear(vorbis_info *vi); -extern void mac_vorbis_comment_init(vorbis_comment *vc); -extern void mac_vorbis_comment_clear(vorbis_comment *vc); -extern int mac_vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); -extern int mac_vorbis_block_clear(vorbis_block *vb); -extern void mac_vorbis_dsp_clear(vorbis_dsp_state *v); -extern float **mac_vorbis_analysis_buffer(vorbis_dsp_state *v,int vals); -extern int mac_vorbis_analysis_wrote(vorbis_dsp_state *v,int vals); -extern int mac_vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb); - -extern int mac_ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); -extern int mac_ogg_stream_init(ogg_stream_state *os,int serialno); -extern int mac_ogg_stream_flush(ogg_stream_state *os, ogg_page *og); -extern int mac_ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); -extern int mac_ogg_page_eos(ogg_page *og); -extern int mac_ogg_stream_clear(ogg_stream_state *os); - - -#ifdef __cplusplus -} -#endif diff --git a/indra/newview/build_win32_appConfig.py b/indra/newview/build_win32_appConfig.py deleted file mode 100755 index 1bfcc7a9bc..0000000000 --- a/indra/newview/build_win32_appConfig.py +++ /dev/null @@ -1,68 +0,0 @@ -# @file build_win32_appConfig.py -# @brief Create the windows app.config file to redirect crt linkage. -# -# $LicenseInfo:firstyear=2009&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$ - -import sys, os, re -from xml.dom.minidom import parse - -def munge_binding_redirect_version(src_manifest_name, src_config_name, dst_config_name): - manifest_dom = parse(src_manifest_name) - node = manifest_dom.getElementsByTagName('assemblyIdentity')[0] - manifest_assm_ver = node.getAttribute('version') - - config_dom = parse(src_config_name) - node = config_dom.getElementsByTagName('bindingRedirect')[0] - node.setAttribute('newVersion', manifest_assm_ver) - src_old_ver = re.match('([^-]*-).*', node.getAttribute('oldVersion')).group(1) - node.setAttribute('oldVersion', src_old_ver + manifest_assm_ver) - comment = config_dom.createComment("This file is automatically generated by the build. see indra/newview/build_win32_appConfig.py") - config_dom.insertBefore(comment, config_dom.childNodes[0]) - - print("Writing: " + dst_config_name) - f = open(dst_config_name, 'w') - config_dom.writexml(f) - f.close() - - - -def main(): - config = sys.argv[1] - src_dir = sys.argv[2] - dst_dir = sys.argv[3] - dst_name = sys.argv[4] - - if config.lower() == 'debug': - src_manifest_name = dst_dir + '/Microsoft.VC80.DebugCRT.manifest' - src_config_name = src_dir + '/SecondLifeDebug.exe.config' - else: - src_manifest_name = dst_dir + '/Microsoft.VC80.CRT.manifest' - src_config_name = src_dir + '/SecondLife.exe.config' - - dst_config_name = dst_dir + '/' + dst_name - - munge_binding_redirect_version(src_manifest_name, src_config_name, dst_config_name) - - return 0 - -if __name__ == "__main__": - main() diff --git a/indra/newview/llcallbacklist.cpp b/indra/newview/llcallbacklist.cpp index c474f2885b..1e596624b9 100644 --- a/indra/newview/llcallbacklist.cpp +++ b/indra/newview/llcallbacklist.cpp @@ -70,33 +70,33 @@ void LLCallbackList::addFunction( callback_t func, void *data) } -BOOL LLCallbackList::containsFunction( callback_t func, void *data) +bool LLCallbackList::containsFunction( callback_t func, void *data) { callback_pair_t t(func, data); callback_list_t::iterator iter = std::find(mCallbackList.begin(), mCallbackList.end(), t); if (iter != mCallbackList.end()) { - return TRUE; + return true; } else { - return FALSE; + return false; } } -BOOL LLCallbackList::deleteFunction( callback_t func, void *data) +bool LLCallbackList::deleteFunction( callback_t func, void *data) { callback_pair_t t(func, data); callback_list_t::iterator iter = std::find(mCallbackList.begin(), mCallbackList.end(), t); if (iter != mCallbackList.end()) { mCallbackList.erase(iter); - return TRUE; + return true; } else { - return FALSE; + return false; } } diff --git a/indra/newview/lleventnotifier.h b/indra/newview/lleventnotifier.h index 2a9295129d..be96b7680f 100644 --- a/indra/newview/lleventnotifier.h +++ b/indra/newview/lleventnotifier.h @@ -47,7 +47,7 @@ struct LLEventInfo std::string mSimName; LLVector3d mPosGlobal; F64 mUnixTime; // seconds from 1970 - BOOL mHasCover; + bool mHasCover; U32 mCover; U32 mEventFlags; }; diff --git a/indra/newview/llfloaterdirectory.h b/indra/newview/llfloaterdirectory.h index de788443be..fb3b9975ed 100644 --- a/indra/newview/llfloaterdirectory.h +++ b/indra/newview/llfloaterdirectory.h @@ -76,6 +76,6 @@ private: static LLFloaterDirectory *sInstance; }; -//extern BOOL gDisplayEventHack; +//extern bool gDisplayEventHack; #endif // LL_LLDIRECTORYFLOATER_H diff --git a/indra/newview/llfloaterimsession.h b/indra/newview/llfloaterimsession.h index a442099ad1..aa03fc4e62 100644 --- a/indra/newview/llfloaterimsession.h +++ b/indra/newview/llfloaterimsession.h @@ -39,7 +39,6 @@ class LLAvatarName; class LLButton; class LLChatEntry; class LLTextEditor; -class LLPanelChatControlPanel; class LLChatHistory; class LLInventoryItem; class LLInventoryCategory; diff --git a/indra/newview/llfloaterimsessiontab.h b/indra/newview/llfloaterimsessiontab.h index 6d04d622e1..289a9e90fe 100644 --- a/indra/newview/llfloaterimsessiontab.h +++ b/indra/newview/llfloaterimsessiontab.h @@ -38,7 +38,6 @@ #include "llconversationview.h" #include "lltexteditor.h" -class LLPanelChatControlPanel; class LLChatEntry; class LLChatHistory; class LLPanelEmojiComplete; diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp index 6e56aac270..a5ab5538e7 100644 --- a/indra/newview/lllocalbitmaps.cpp +++ b/indra/newview/lllocalbitmaps.cpp @@ -31,8 +31,6 @@ /* own header */ #include "lllocalbitmaps.h" -/* boost: will not compile unless equivalent is undef'd, beware. */ -#include "fix_macros.h" #include <boost/filesystem.hpp> /* image compression headers. */ diff --git a/indra/newview/lllocalgltfmaterials.cpp b/indra/newview/lllocalgltfmaterials.cpp index d6facad23d..aeae7cb56a 100644 --- a/indra/newview/lllocalgltfmaterials.cpp +++ b/indra/newview/lllocalgltfmaterials.cpp @@ -30,8 +30,6 @@ /* own header */ #include "lllocalgltfmaterials.h" -/* boost: will not compile unless equivalent is undef'd, beware. */ -#include "fix_macros.h" #include <boost/filesystem.hpp> /* time headers */ diff --git a/indra/newview/lllookshistorypanel.h b/indra/newview/lllookshistorypanel.h deleted file mode 100644 index 6293de7170..0000000000 --- a/indra/newview/lllookshistorypanel.h +++ /dev/null @@ -1,67 +0,0 @@ -/** - * @file llpanelteleporthistory.h - * @brief Teleport history represented by a scrolling list - * class definition - * - * $LicenseInfo:firstyear=2009&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_LLPANELLOOKSHISTORY_H -#define LL_LLPANELLOOKSHISTORY_H - -#include "lluictrlfactory.h" -#include "llscrolllistctrl.h" - -#include "llpanelappearancetab.h" -#include "lllookshistory.h" - -class LLLooksHistoryPanel : public LLPanelAppearanceTab -{ -public: - LLLooksHistoryPanel(); - virtual ~LLLooksHistoryPanel(); - - /*virtual*/ BOOL postBuild(); - /*virtual*/ void onSearchEdit(const std::string& string); - /*virtual*/ void onShowOnMap(); - /*virtual*/ void onLooks(); - ///*virtual*/ void onCopySLURL(); - - void showLooksHistory(); - void handleItemSelect(const LLSD& data); - - static void onDoubleClickItem(void* user_data); - -private: - enum LOOKS_HISTORY_COLUMN_ORDER - { - LIST_ICON, - LIST_ITEM_TITLE, - LIST_INDEX - }; - - LLLooksHistory* mLooksHistory; - LLScrollListCtrl* mHistoryItems; - std::string mFilterSubString; -}; - -#endif //LL_LLPANELLOOKSHISTORY_H diff --git a/indra/newview/llpaneldirland.cpp b/indra/newview/llpaneldirland.cpp index 53c58d8fa9..e2ef44a604 100644 --- a/indra/newview/llpaneldirland.cpp +++ b/indra/newview/llpaneldirland.cpp @@ -197,7 +197,7 @@ void LLPanelDirLand::performQuery() if (list) { std::string sort_name = list->getSortColumnName(); - BOOL sort_asc = list->getSortAscending(); + bool sort_asc = list->getSortAscending(); if (sort_name == "name") { diff --git a/indra/newview/llpanelimcontrolpanel.cpp b/indra/newview/llpanelimcontrolpanel.cpp deleted file mode 100644 index 07a8641a92..0000000000 --- a/indra/newview/llpanelimcontrolpanel.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/** - * @file llpanelimcontrolpanel.cpp - * @brief LLPanelIMControlPanel and related class implementations - * - * $LicenseInfo:firstyear=2004&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" -#include "llfloaterreg.h" - -#include "llpanelimcontrolpanel.h" - -#include "llagent.h" -#include "llappviewer.h" // for gDisconnected -#include "llavataractions.h" -#include "llavatariconctrl.h" -#include "llbutton.h" -#include "llgroupactions.h" -#include "llavatarlist.h" -#include "llparticipantlist.h" -#include "llimview.h" -#include "llspeakers.h" -#include "lltrans.h" - - diff --git a/indra/newview/llpanelimcontrolpanel.h b/indra/newview/llpanelimcontrolpanel.h deleted file mode 100644 index c7f5263bec..0000000000 --- a/indra/newview/llpanelimcontrolpanel.h +++ /dev/null @@ -1,84 +0,0 @@ -/** - * @file llpanelimcontrolpanel.h - * @brief LLPanelIMControlPanel and related class definitions - * - * $LicenseInfo:firstyear=2004&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_LLPANELIMCONTROLPANEL_H -#define LL_LLPANELIMCONTROLPANEL_H - -#include "llpanel.h" -#include "llcallingcard.h" - -class LLParticipantList; - -class LLPanelChatControlPanel - : public LLPanel -{ -public: - LLPanelChatControlPanel() : - mSessionId(LLUUID()) {}; - ~LLPanelChatControlPanel(); - - virtual BOOL postBuild(); - - virtual void setSessionId(const LLUUID& session_id); - const LLUUID& getSessionId() { return mSessionId; } - -private: - LLUUID mSessionId; - - // connection to voice channel state change signal - boost::signals2::connection mVoiceChannelStateChangeConnection; -}; - -class LLPanelGroupControlPanel : public LLPanelChatControlPanel -{ -public: - LLPanelGroupControlPanel(const LLUUID& session_id); - ~LLPanelGroupControlPanel(); - - BOOL postBuild(); - - void setSessionId(const LLUUID& session_id); - /*virtual*/ void draw(); - -protected: - LLUUID mGroupID; - - LLParticipantList* mParticipantList; - -private: - void onSortMenuItemClicked(const LLSD& userdata); -}; - -class LLPanelAdHocControlPanel : public LLPanelGroupControlPanel -{ -public: - LLPanelAdHocControlPanel(const LLUUID& session_id); - - BOOL postBuild(); - -}; - -#endif // LL_LLPANELIMCONTROLPANEL_H diff --git a/indra/newview/lltoolview.cpp b/indra/newview/lltoolview.cpp deleted file mode 100644 index 179aae1e02..0000000000 --- a/indra/newview/lltoolview.cpp +++ /dev/null @@ -1,196 +0,0 @@ -/** - * @file lltoolview.cpp - * @brief A UI contains for tool palette tools - * - * $LicenseInfo:firstyear=2001&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "lltoolview.h" - -#include "llfontgl.h" -#include "llrect.h" - -#include "llagent.h" -#include "llbutton.h" -#include "llpanel.h" -#include "lltool.h" -#include "lltoolmgr.h" -#include "lltextbox.h" -#include "llresmgr.h" - - -LLToolContainer::LLToolContainer(LLToolView* parent) -: mParent(parent), - mButton(NULL), - mPanel(NULL), - mTool(NULL) -{ } - - -LLToolContainer::~LLToolContainer() -{ - // mParent is a pointer to the tool view - // mButton is owned by the tool view - // mPanel is owned by the tool view - delete mTool; - mTool = NULL; -} - - -LLToolView::LLToolView(const std::string& name, const LLRect& rect) -: mButtonCount(0) -{ - LLView::init(LLView::Params().name(name).rect(rect).mouse_opaque(true)); -} - - -LLToolView::~LLToolView() -{ - for_each(mContainList.begin(), mContainList.end(), DeletePointer()); - mContainList.clear(); -} - -//*TODO:translate? -// void LLToolView::addTool(const std::string& icon_off, const std::string& icon_on, LLPanel* panel, LLTool* tool, LLView* hoverView, const char* label) -// { -// llassert(tool); - -// LLToolContainer* contain = new LLToolContainer(this); - -// LLRect btn_rect = getButtonRect(mButtonCount); - -// contain->mButton = new LLButton("ToolBtn", -// btn_rect, -// icon_off, -// icon_on, -// "", -// &LLToolView::onClickToolButton, -// contain, -// LLFontGL::getFontSansSerif()); - -// contain->mPanel = panel; -// contain->mTool = tool; - -// addChild(contain->mButton); -// mButtonCount++; - -// const S32 LABEL_TOP_SPACING = 0; -// const LLFontGL* font = LLResMgr::getInstance()->getRes( LLFONT_SANSSERIF_SMALL ); -// S32 label_width = font->getWidth( label ); -// LLRect label_rect; -// label_rect.setLeftTopAndSize( -// btn_rect.mLeft + btn_rect.getWidth() / 2 - label_width / 2, -// btn_rect.mBottom - LABEL_TOP_SPACING, -// label_width, -// llfloor(font->getLineHeight())); -// addChild( new LLTextBox( "tool label", label_rect, label, font ) ); - -// // Can optionally ignore panel -// if (contain->mPanel) -// { -// contain->mPanel->setBackgroundVisible( FALSE ); -// contain->mPanel->setBorderVisible( FALSE ); -// addChild(contain->mPanel); -// } - -// mContainList.push_back(contain); -// } - - -LLRect LLToolView::getButtonRect(S32 button_index) -{ - const S32 HPAD = 7; - const S32 VPAD = 7; - const S32 TOOL_SIZE = 32; - const S32 HORIZ_SPACING = TOOL_SIZE + 5; - const S32 VERT_SPACING = TOOL_SIZE + 14; - - S32 tools_per_row = getRect().getWidth() / HORIZ_SPACING; - - S32 row = button_index / tools_per_row; - S32 column = button_index % tools_per_row; - - // Build the rectangle, recalling the origin is at lower left - // and we want the icons to build down from the top. - LLRect rect; - rect.setLeftTopAndSize( HPAD + (column * HORIZ_SPACING), - -VPAD + getRect().getHeight() - (row * VERT_SPACING), - TOOL_SIZE, - TOOL_SIZE - ); - - return rect; -} - - -void LLToolView::draw() -{ - // turn off highlighting for all containers - // and hide all option panels except for the selected one. - LLTool* selected = LLToolMgr::getInstance()->getCurrentToolset()->getSelectedTool(); - for (contain_list_t::iterator iter = mContainList.begin(); - iter != mContainList.end(); ++iter) - { - LLToolContainer* contain = *iter; - BOOL state = (contain->mTool == selected); - contain->mButton->setToggleState( state ); - if (contain->mPanel) - { - contain->mPanel->setVisible( state ); - } - } - - // Draw children normally - LLView::draw(); -} - -// protected -LLToolContainer* LLToolView::findToolContainer( LLTool *tool ) -{ - // Find the container for this tool - llassert( tool ); - for (contain_list_t::iterator iter = mContainList.begin(); - iter != mContainList.end(); ++iter) - { - LLToolContainer* contain = *iter; - if( contain->mTool == tool ) - { - return contain; - } - } - LL_ERRS() << "LLToolView::findToolContainer - tool not found" << LL_ENDL; - return NULL; -} - -// static -void LLToolView::onClickToolButton(void* userdata) -{ - LLToolContainer* clicked = (LLToolContainer*) userdata; - - // Switch to this one - LLToolMgr::getInstance()->getCurrentToolset()->selectTool( clicked->mTool ); -} - - - diff --git a/indra/newview/lltoolview.h b/indra/newview/lltoolview.h deleted file mode 100644 index 7b348e7088..0000000000 --- a/indra/newview/lltoolview.h +++ /dev/null @@ -1,84 +0,0 @@ -/** - * @file lltoolview.h - * @brief UI container for tools. - * - * $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_LLTOOLVIEW_H -#define LL_LLTOOLVIEW_H - -// requires stdtypes.h -#include "llpanel.h" - -// forward declares -class LLTool; -class LLButton; - -class LLToolView; - - -// Utility class, container for the package of information we need about -// each tool. The package can either point directly to a tool, or indirectly -// to another view of tools. -class LLToolContainer -{ -public: - LLToolContainer(LLToolView* parent); - ~LLToolContainer(); - -public: - LLToolView* mParent; // toolview that owns this container - LLButton* mButton; - LLPanel* mPanel; - LLTool* mTool; // if not NULL, this is a tool ref -}; - - -// A view containing automatically arranged button icons representing -// tools. The icons sit on top of panels containing options for each -// tool. -class LLToolView -: public LLView -{ -public: - LLToolView(const std::string& name, const LLRect& rect); - ~LLToolView(); - - virtual void draw(); // handle juggling tool button highlights, panel visibility - - static void onClickToolButton(void* container); - - LLView* getCurrentHoverView(); - -private: - LLRect getButtonRect(S32 button_index); // return rect for button to add, zero-based index - LLToolContainer *findToolContainer(LLTool *tool); - - -private: - typedef std::vector<LLToolContainer*> contain_list_t; - contain_list_t mContainList; - S32 mButtonCount; // used to compute rectangles -}; - -#endif diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 24560aa21d..071a66209b 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -3623,7 +3623,7 @@ LLViewerMediaImpl::canUndo() const if (mMediaSource) return mMediaSource->canUndo(); else - return FALSE; + return false; } //////////////////////////////////////////////////////////////////////////////// @@ -3643,7 +3643,7 @@ LLViewerMediaImpl::canRedo() const if (mMediaSource) return mMediaSource->canRedo(); else - return FALSE; + return false; } //////////////////////////////////////////////////////////////////////////////// @@ -3723,7 +3723,7 @@ LLViewerMediaImpl::canDoDelete() const if (mMediaSource) return mMediaSource->canDoDelete(); else - return FALSE; + return false; } //////////////////////////////////////////////////////////////////////////////// @@ -3743,7 +3743,7 @@ LLViewerMediaImpl::canSelectAll() const if (mMediaSource) return mMediaSource->canSelectAll(); else - return FALSE; + return false; } void LLViewerMediaImpl::setUpdated(bool updated) diff --git a/indra/newview/llvoicevisualizer.cpp b/indra/newview/llvoicevisualizer.cpp index c5704982b8..e6dac0530d 100644 --- a/indra/newview/llvoicevisualizer.cpp +++ b/indra/newview/llvoicevisualizer.cpp @@ -32,7 +32,6 @@ #include "llviewerprecompiledheaders.h" #include "llviewercontrol.h" #include "llglheaders.h" -#include "llsphere.h" #include "llvoicevisualizer.h" #include "llviewercamera.h" #include "llviewerobject.h" diff --git a/indra/newview/macutil_Prefix.h b/indra/newview/macutil_Prefix.h deleted file mode 100644 index 4972ee4fa5..0000000000 --- a/indra/newview/macutil_Prefix.h +++ /dev/null @@ -1,38 +0,0 @@ -/** - * @file macutil_Prefix.h - * @brief Precompiled prefix file - * - * $LicenseInfo:firstyear=2005&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$ - */ - -/* - * - * Precompiled prefix file used for - * AutoUpdater - * crashreporter - * - */ - -#include "fix_macros.h" - -#undef verify -#undef require diff --git a/indra/newview/macview_Prefix.h b/indra/newview/macview_Prefix.h deleted file mode 100644 index faad8fa704..0000000000 --- a/indra/newview/macview_Prefix.h +++ /dev/null @@ -1,229 +0,0 @@ -/** - * @file macview_Prefix.h - * @brief Prefix header for all source files of the 'newview' target in the 'newview' project. - * - * $LicenseInfo:firstyear=2003&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$ - */ - -// MBW -- This doesn't work. There are some conflicts between things in Carbon.h and some of the linden source. -//#include <Carbon/Carbon.h> - -////////////////// From llagent.cpp -#include "llpreprocessor.h" -#include "stdtypes.h" -#include "stdenums.h" - -#include "llagent.h" - -#include "llcoordframe.h" -#include "indra_constants.h" -#include "llmath.h" -#include "llcriticaldamp.h" -#include "llfocusmgr.h" -#include "llparcel.h" -#include "llpermissions.h" -#include "llregionhandle.h" -#include "m3math.h" -#include "m4math.h" -#include "message.h" -#include "qmath.h" -#include "v3math.h" -#include "v4math.h" -#include "vmath.h" -//#include "llteleportflags.h" - -#include "llbox.h" -#include "llbutton.h" -#include "llconsole.h" -#include "lldrawable.h" -#include "llfirstuse.h" -#include "llfloater.h" -#include "llfloaterbuildoptions.h" -#include "llfloaterchat.h" -#include "llfloatergroups.h" -#include "llfloaterworldmap.h" -#include "llfloatermute.h" -#include "llconversation.h" -#include "llfloatertools.h" -#include "llhudeffectlookat.h" -#include "llhudmanager.h" -#include "lljoystickbutton.h" -#include "llmenugl.h" -#include "llmorphview.h" -#include "llmoveview.h" -#include "llselectmgr.h" -#include "llsky.h" -#include "llrendersphere.h" -#include "llstatusbar.h" -#include "lltalkview.h" -#include "lltool.h" -#include "lltoolfocus.h" -#include "lltoolcomp.h" // for gToolGun -#include "lltoolgrab.h" -#include "lltoolmgr.h" -#include "lltoolpie.h" -#include "llui.h" // for make_ui_sound -#include "llviewercamera.h" -#include "llviewermenu.h" -#include "llviewerobjectlist.h" -#include "llviewerparcelmgr.h" -#include "llviewerparceloverlay.h" -#include "llviewerregion.h" -#include "llviewerstats.h" -#include "llviewerwindow.h" -#include "llvoavatar.h" -#include "llvoground.h" -#include "llvosky.h" -#include "llworld.h" -#include "pipeline.h" - -/////////////////// From llfloater.cpp -#include "llbutton.h" -#include "lldraghandle.h" -#include "llfocusmgr.h" -#include "llresizebar.h" -#include "llresizehandle.h" -#include "llresmgr.h" -#include "llui.h" -#include "llviewborder.h" -#include "lluictrlfactory.h" - - -/////////////////// From lldrawpool.cpp -#include "llface.h" -#include "llcontrol.h" -#include "pipeline.h" - -#include "llviewerobjectlist.h" // For debug listing. - -//extern LLPipeline gPipeline; - -#include "lldrawpoolsimple.h" -#include "lldrawpoolalpha.h" -#include "lldrawpoolavatar.h" -#include "lldrawpooltree.h" -#include "lldrawpoolterrain.h" -#include "lldrawpoolsky.h" -#include "lldrawpoolwater.h" -#include "lldrawpoolground.h" -#include "lldrawpoolbump.h" - -/////////////////// From llface.cpp -#include "llgl.h" -#include "llviewerimage.h" -#include "llsky.h" -#include "llvosky.h" -#include "llcontrol.h" -#include "v3color.h" -#include "pipeline.h" -#include "llvolume.h" -#include "llviewercamera.h" -#include "lllightconstants.h" - -#include "llvovolume.h" -#include "m3math.h" -#include "lldrawpoolbump.h" - - - -/////////////////// From llpanel.cpp -#include "llpanel.h" - -#include "llfontgl.h" -#include "llrect.h" -#include "llerror.h" -#include "lltimer.h" - -#include "llmenugl.h" -#include "llstatusbar.h" -#include "llui.h" -#include "llkeyboard.h" -#include "llviewerwindow.h" -#include "llcontrol.h" -#include "lluictrl.h" -#include "lluictrlfactory.h" -#include "llviewborder.h" -#include "llviewerimagelist.h" -#include "llbutton.h" -#include "llfocusmgr.h" - - - -/////////////////// From llvovolume.cpp -#include "llvovolume.h" -#include "llviewerimagelist.h" - -#include "llcontrol.h" - -#include "object_flags.h" - -#include "material_codes.h" -#include "llagent.h" -#include "llworld.h" -#include "llviewerregion.h" -#include "llprimitive.h" -#include "llvolume.h" -#include "lldrawable.h" -#include "llface.h" -#include "llvolumemgr.h" -#include "llsky.h" - -#include "pipeline.h" -#include "llmaterialtable.h" -#include "message.h" -#include "llviewertextureanim.h" -#include "llviewercamera.h" -#include "lldrawpoolbump.h" - - -/////////////////// From llagentpilot.cpp -#include "llagentpilot.h" -#include "llagent.h" -#include "llframestats.h" -#include "viewer.h" -#include "llcontrol.h" - - -/////////////////// From llloginview.cpp -#include "llloginview.h" - -#include "indra_constants.h" // for key and mask constants -#include "llfontgl.h" -#include "v4color.h" -#include "llwindow_impl.h" - -#include "llbutton.h" -#include "llcheckboxctrl.h" -#include "llcombobox.h" -#include "llcontrol.h" -#include "lllineeditor.h" -#include "lltextbox.h" -#include "llui.h" -//#include "lluiconstants.h" -#include "llviewerimagelist.h" -#include "llviewermenu.h" // for handle_preferences() -#include "llviewerwindow.h" // to link into child list -#include "llfocusmgr.h" -#include "llmd5.h" -#include "llversion.h" -#include "viewer.h" - diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt deleted file mode 100644 index 3b3fb1aeb6..0000000000 --- a/indra/newview/tests/gpus_results.txt +++ /dev/null @@ -1,3111 +0,0 @@ -GPU String Supported? Class Stats OpenGL Recognizer ------------------------------------------------------------------------------------------------------- ----------- ----- ----- ------ ------------------------------------ -AMD BARTS (HD 6800) supported 3 1 2.1 AMD BARTS (HD 6800) -AMD CAICOS (HD 6400) supported 3 0 0 AMD CAICOS (HD 6400) -AMD CAYMAN (HD 6900) supported 3 0 0 AMD CAYMAN (HD 6900) -AMD CEDAR (HD 5450) supported 2 0 2.1 AMD CEDAR (HD 5450) -AMD JUNIPER (HD 5700) supported 3 0 0 AMD JUNIPER (HD 5700) -AMD PARK supported 3 0 0 AMD PARK -AMD REDWOOD (HD 5500/5600) supported 3 0 1.4 AMD REDWOOD (HD 5500/5600) -AMD RS780 (HD 3200) supported 0 1 2.1 AMD RS780 (HD 3200) -AMD RS880 (HD 4200) supported 0 1 3.2 AMD RS880 (HD 4200) -AMD RV610 (HD 2400) supported 1 0 0 AMD RV610 (HD 2400) -AMD RV620 (HD 3400) supported 1 0 0 AMD RV620 (HD 3400) -AMD RV630 (HD 2600) supported 2 0 0 AMD RV630 (HD 2600) -AMD RV635 (HD 3600) supported 3 0 1.4 AMD RV635 (HD 3600) -AMD RV670 (HD 3800) supported 3 0 0 AMD RV670 (HD 3800) -AMD RV710 (HD 4300) supported 0 1 1.4 AMD RV710 (HD 4300) -AMD RV730 (HD 4600) supported 3 0 1.4 AMD RV730 (HD 4600) -AMD RV770 (HD 4800) supported 3 0 0 AMD RV770 (HD 4800) -AMD RV790 (HD 4800) supported 3 0 0 AMD RV790 (HD 4800) -AMD TURKS (HD 6500/6600) supported 3 0 2.1 AMD TURKS (HD 6500/6600) -ATI NO MATCH -ATI 760G/Radeon 3000 supported 1 1 4 ATI Radeon 3000 -ATI ASUS AH24xx supported 1 1 4 ATI Radeon HD 2400 -ATI ASUS AH34xx supported 1 1 4 ATI Radeon HD 3400 -ATI ASUS AH36xx supported 3 1 4 ATI Radeon HD 3600 -ATI ASUS AH46xx supported 3 1 4 ATI Radeon HD 4600 -ATI ASUS AX3xx supported 2 1 4 ATI Radeon HD 4300 -ATI ASUS AX5xx supported 1 1 4 ATI Radeon HD 5xx -ATI ASUS EAH38xx supported 3 1 4 ATI Radeon HD 3800 -ATI ASUS EAH43xx supported 2 1 4 ATI Radeon HD 4300 -ATI ASUS EAH45xx supported 2 1 3.3 ATI Radeon HD 4500 -ATI ASUS EAH48xx supported 3 1 4 ATI Radeon HD 4800 -ATI ASUS EAH54xx supported 3 1 4.2 ATI Radeon HD 5400 -ATI ASUS EAH57xx supported 3 1 4.2 ATI Radeon HD 5700 -ATI ASUS EAH58xx supported 4 1 4.2 ATI Radeon HD 5800 -ATI ASUS EAH64xx supported 3 1 4.2 ATI Radeon HD 6400 -ATI ASUS EAH65xx supported 3 1 4.2 ATI Radeon HD 6500 -ATI ASUS EAH66xx supported 3 1 4.2 ATI Radeon HD 6600 -ATI ASUS EAH67xx supported 3 1 4.2 ATI Radeon HD 6700 -ATI ASUS EAH68xx supported 4 1 4.2 ATI Radeon HD 6800 -ATI ASUS EAH69xx supported 5 1 4.2 ATI Radeon HD 6900 -ATI ASUS EAH6xxx supported 5 1 4.2 ATI Radeon HD 6x00 -ATI ASUS EAH77xx supported 4 1 4.2 ATI Radeon HD 7700 -ATI ASUS HD7700 supported 4 1 4.2 ATI Radeon HD 7700 -ATI ASUS Radeon X1xxx supported 2 0 2.1 ATI Radeon X1xxx -ATI All-in-Wonder HD supported 1 1 3.3 ATI All-in-Wonder HD -ATI All-in-Wonder PCI-E supported 1 0 0 ATI All-in-Wonder PCI-E -ATI Display Adapter supported 1 1 4.1 ATI Display Adapter -ATI FireGL supported 4 1 4.2 ATI FireGL -ATI FireGL 5200 supported 4 1 4.2 ATI FireGL -ATI FireGL 5xxx supported 4 1 4.2 ATI FireGL -ATI FireMV supported 0 1 3.2 ATI FireMV -ATI FirePro 2000 supported 2 1 4.2 ATI FirePro 2000 -ATI FirePro 4000 supported 2 0 4.1 ATI FirePro 4000 -ATI FirePro M supported 3 1 4.2 ATI FirePro M -ATI FirePro M3900 supported 2 0 4.1 ATI FirePro M3900 -ATI FirePro M5800 supported 3 0 0 ATI FirePro M5800 -ATI FirePro M7740 supported 3 0 0 ATI FirePro M7740 -ATI FirePro M7820 supported 5 1 4.2 ATI FirePro M7820 -ATI Geforce 9500 GT unsupported 0 0 0 ATI GeForce Lulz -ATI Geforce 9600 GT unsupported 0 0 0 ATI GeForce Lulz -ATI Geforce 9800 GT unsupported 0 0 0 ATI GeForce Lulz -ATI IGP 340M unsupported 0 0 1.3 ATI IGP 340M -ATI Mobility Radeon supported 3 0 0 ATI Radeon -ATI Mobility Radeon 4100 supported 1 1 3.3 ATI Mobility Radeon 4100 -ATI Mobility Radeon 7xxx supported 0 1 1.3 ATI Mobility Radeon 7xxx -ATI Mobility Radeon 9600 supported 1 1 2.1 ATI Mobility Radeon 9600 -ATI Mobility Radeon 9700 supported 0 1 2.1 ATI Mobility Radeon 9700 -ATI Mobility Radeon 9800 supported 1 0 0 ATI Mobility Radeon 9800 -ATI Mobility Radeon HD 2300 supported 0 1 2.1 ATI Mobility Radeon HD 2300 -ATI Mobility Radeon HD 2400 supported 1 1 3.3 ATI Mobility Radeon HD 2400 -ATI Mobility Radeon HD 2600 supported 1 1 3.3 ATI Mobility Radeon HD 2600 -ATI Mobility Radeon HD 2700 supported 3 0 0 ATI Mobility Radeon HD 2700 -ATI Mobility Radeon HD 3400 supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Mobility Radeon HD 3600 supported 1 1 4 ATI Mobility Radeon HD 3600 -ATI Mobility Radeon HD 3800 supported 3 1 3.3 ATI Mobility Radeon HD 3800 -ATI Mobility Radeon HD 4200 supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Mobility Radeon HD 4300 supported 1 1 4 ATI Mobility Radeon HD 4300 -ATI Mobility Radeon HD 4500 supported 1 1 4 ATI Mobility Radeon HD 4500 -ATI Mobility Radeon HD 4600 supported 2 1 3.3 ATI Mobility Radeon HD 4600 -ATI Mobility Radeon HD 4800 supported 3 1 3.3 ATI Mobility Radeon HD 4800 -ATI Mobility Radeon HD 5100 supported 3 1 3.2 ATI Mobility Radeon HD 5100 -ATI Mobility Radeon HD 5300 supported 3 0 0 ATI Mobility Radeon HD 5300 -ATI Mobility Radeon HD 530v supported 1 1 3.3 ATI Mobility Radeon HD 530v -ATI Mobility Radeon HD 5400 supported 2 1 4.2 ATI Mobility Radeon HD 5400 -ATI Mobility Radeon HD 540v supported 1 1 3.3 ATI Mobility Radeon HD 540v -ATI Mobility Radeon HD 545v supported 2 1 4 ATI Mobility Radeon HD 545v -ATI Mobility Radeon HD 5500 supported 3 0 4.2 ATI Mobility Radeon HD 5500 -ATI Mobility Radeon HD 550v supported 3 1 4 ATI Mobility Radeon HD 550v -ATI Mobility Radeon HD 5600 supported 3 1 4.2 ATI Mobility Radeon HD 5600 -ATI Mobility Radeon HD 560v supported 3 1 3.2 ATI Mobility Radeon HD 560v -ATI Mobility Radeon HD 565v supported 3 1 3.3 ATI Mobility Radeon HD 565v -ATI Mobility Radeon HD 5700 supported 3 1 4.1 ATI Mobility Radeon HD 5700 -ATI Mobility Radeon HD 6300 supported 1 1 4.2 ATI Radeon HD 6300 -ATI Mobility Radeon HD 6500 supported 3 1 4.2 ATI Radeon HD 6500 -ATI Mobility Radeon HD 6500M supported 3 1 4.2 ATI Radeon HD 6500 -ATI Mobility Radeon X1xxx supported 2 0 2.1 ATI Mobility Radeon X1000 -ATI Mobility Radeon X2xxx supported 2 0 2.1 ATI Radeon X2xxx -ATI Mobility Radeon X3xx supported 1 1 2.1 ATI Radeon X300 -ATI Mobility Radeon X6xx supported 1 1 2.1 ATI Radeon X600 -ATI Mobility Radeon X7xx supported 2 1 2.1 ATI Radeon X700 -ATI Mobility Radeon Xxxx supported 2 0 2.1 ATI Mobility Radeon XX000 -ATI R300 (9700) supported 0 1 2.1 ATI R300 (9700) -ATI RV410 (X700) supported 1 0 0 ATI RV410 (X700) -ATI RV530 supported 1 0 0 ATI RV530 -ATI Radeon supported 3 0 0 ATI Radeon -ATI Radeon 2100 supported 0 1 2.1 ATI Radeon 2100 -ATI Radeon 3000 supported 1 1 4 ATI Radeon 3000 -ATI Radeon 3100 supported 0 1 3.3 ATI Radeon 3100 -ATI Radeon 5xxx supported 3 0 0 ATI Radeon 5xxx -ATI Radeon 7000 supported 0 1 2 ATI Radeon 7xxx -ATI Radeon 7xxx supported 0 1 2 ATI Radeon 7xxx -ATI Radeon 8xxx supported 0 0 0 ATI Radeon 8xxx -ATI Radeon 9000 supported 0 1 1.3 ATI Radeon 9000 -ATI Radeon 9100 supported 0 0 0 ATI Radeon 9100 -ATI Radeon 9200 supported 0 1 1.3 ATI Radeon 9200 -ATI Radeon 9500 supported 0 1 2.1 ATI Radeon 9500 -ATI Radeon 9600 supported 0 1 2.1 ATI Radeon 9600 -ATI Radeon 9700 supported 1 0 0 ATI Radeon 9700 -ATI Radeon 9800 supported 1 1 2.1 ATI Radeon 9800 -ATI Radeon HD 2300 supported 0 1 3.3 ATI Radeon HD 2300 -ATI Radeon HD 2400 supported 1 1 4 ATI Radeon HD 2400 -ATI Radeon HD 2600 supported 2 1 4 ATI Radeon HD 2600 -ATI Radeon HD 2900 supported 3 1 3.3 ATI Radeon HD 2900 -ATI Radeon HD 3000 supported 0 0 0 ATI Radeon HD 3000 -ATI Radeon HD 3100 supported 1 0 0 ATI Radeon HD 3100 -ATI Radeon HD 3200 supported 1 1 4 ATI Radeon HD 3200 -ATI Radeon HD 3300 supported 1 1 3.3 ATI Radeon HD 3300 -ATI Radeon HD 3400 supported 1 1 4 ATI Radeon HD 3400 -ATI Radeon HD 3500 supported 2 0 0 ATI Radeon HD 3500 -ATI Radeon HD 3600 supported 3 1 4 ATI Radeon HD 3600 -ATI Radeon HD 3700 supported 3 0 3.3 ATI Radeon HD 3700 -ATI Radeon HD 3800 supported 3 1 4 ATI Radeon HD 3800 -ATI Radeon HD 4200 supported 1 1 4 ATI Radeon HD 4200 -ATI Radeon HD 4300 supported 2 1 4 ATI Radeon HD 4300 -ATI Radeon HD 4400 supported 2 0 0 ATI Radeon HD 4400 -ATI Radeon HD 4500 supported 2 1 3.3 ATI Radeon HD 4500 -ATI Radeon HD 4600 supported 3 1 4 ATI Radeon HD 4600 -ATI Radeon HD 4700 supported 3 1 3.3 ATI Radeon HD 4700 -ATI Radeon HD 4800 supported 3 1 4 ATI Radeon HD 4800 -ATI Radeon HD 5400 supported 3 1 4.2 ATI Radeon HD 5400 -ATI Radeon HD 5500 supported 3 1 4.2 ATI Radeon HD 5500 -ATI Radeon HD 5600 supported 3 1 4.2 ATI Radeon HD 5600 -ATI Radeon HD 5700 supported 3 1 4.2 ATI Radeon HD 5700 -ATI Radeon HD 5800 supported 4 1 4.2 ATI Radeon HD 5800 -ATI Radeon HD 5900 supported 4 1 4.2 ATI Radeon HD 5900 -ATI Radeon HD 6200 supported 0 1 4.2 ATI Radeon HD 6200 -ATI Radeon HD 6300 supported 1 1 4.2 ATI Radeon HD 6300 -ATI Radeon HD 6300M supported 1 1 4.2 ATI Radeon HD 6300 -ATI Radeon HD 6400 supported 3 1 4.2 ATI Radeon HD 6400 -ATI Radeon HD 64xx supported 3 1 4.2 ATI Radeon HD 6400 -ATI Radeon HD 6500 supported 3 1 4.2 ATI Radeon HD 6500 -ATI Radeon HD 65xx supported 3 1 4.2 ATI Radeon HD 6500 -ATI Radeon HD 6600 supported 3 1 4.2 ATI Radeon HD 6600 -ATI Radeon HD 66xx supported 3 1 4.2 ATI Radeon HD 6600 -ATI Radeon HD 6700 supported 3 1 4.2 ATI Radeon HD 6700 -ATI Radeon HD 6700M supported 3 1 4.2 ATI Radeon HD 6700 -ATI Radeon HD 6800 supported 4 1 4.2 ATI Radeon HD 6800 -ATI Radeon HD 6900 supported 5 1 4.2 ATI Radeon HD 6900 -ATI Radeon HD 7200 supported 2 0 4.2 ATI Radeon HD 7200 -ATI Radeon HD 7300 supported 2 0 4.2 ATI Radeon HD 7300 -ATI Radeon HD 7400 supported 2 0 4.2 ATI Radeon HD 7400 -ATI Radeon HD 7500 supported 3 1 4.2 ATI Radeon HD 7500 -ATI Radeon HD 7600 supported 3 0 4.2 ATI Radeon HD 7600 -ATI Radeon HD 7700 supported 4 1 4.2 ATI Radeon HD 7700 -ATI Radeon HD 7800 supported 5 1 4.2 ATI Radeon HD 7800 -ATI Radeon HD 7900 supported 5 1 4.2 ATI Radeon HD 7900 -ATI Radeon X1000 supported 2 0 2.1 ATI Radeon X1000 -ATI Radeon X1200 supported 2 0 2.1 ATI Radeon X1200 -ATI Radeon X1300 supported 2 1 2.1 ATI Radeon X1300 -ATI Radeon X13xx supported 2 1 2.1 ATI Radeon X1300 -ATI Radeon X1400 supported 2 1 2.1 ATI Radeon X1400 -ATI Radeon X1500 supported 2 1 2.1 ATI Radeon X1500 -ATI Radeon X15xx supported 2 1 2.1 ATI Radeon X1500 -ATI Radeon X1600 supported 2 1 2.1 ATI Radeon X1600 -ATI Radeon X16xx supported 2 1 2.1 ATI Radeon X1600 -ATI Radeon X17xx supported 2 1 2.1 ATI Radeon X1700 -ATI Radeon X1800 supported 3 1 2.1 ATI Radeon X1800 -ATI Radeon X18xx supported 3 1 2.1 ATI Radeon X1800 -ATI Radeon X1900 supported 2 1 2.1 ATI Radeon X1900 -ATI Radeon X19xx supported 2 1 2.1 ATI Radeon X1900 -ATI Radeon X1xxx supported 2 0 2.1 ATI Radeon X1xxx -ATI Radeon X2xxx supported 2 0 2.1 ATI Radeon X2xxx -ATI Radeon X300 supported 1 1 2.1 ATI Radeon X300 -ATI Radeon X500 supported 1 1 2.1 ATI Radeon X500 -ATI Radeon X600 supported 1 1 2.1 ATI Radeon X600 -ATI Radeon X700 supported 2 1 2.1 ATI Radeon X700 -ATI Radeon X800 supported 1 1 2.1 ATI Radeon X800 -ATI Radeon Xpress supported 0 1 2.1 ATI Radeon Xpress -ATI Rage 128 supported 0 0 0 ATI Rage 128 -ATI Technologies NO MATCH -ATI Technologies Inc. NO MATCH -ATI Technologies Inc. (DNA-AMD GFX) AMD Radeon HD 6290 Graphics supported 0 1 4.2 ATI Radeon HD 6200 -ATI Technologies Inc. (DNA-ATi 5.1.7.5x32) ATI Mobility Radeon HD 2 NO MATCH -ATI Technologies Inc. (Vista) ATI Mobility Radeon HD 5730 supported 3 1 4.1 ATI Mobility Radeon HD 5700 -ATI Technologies Inc. (Vista) ATI Mobility Radeon HD 5870 supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. 128MB ATI RADEON X600 SE supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. 128MB ATI RADEON X600 SE x86/SSE2 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. 128MB ATI Radeon X1300 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. 128MB ATI Radeon X1300 x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. 128MB ATI Radeon X1300 x86/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. 256MB ATI RADEON X600 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. 256MB ATI Radeon X1300PRO supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. 256MB ATI Radeon X1300PRO x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. 256MB ATI Radeon X1300PRO x86/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. 3DP (ATI RADEON XPRESS 200M) supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. 3DP Edition v10.04 (Mobility Radeon X1600) x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. 7900 MOD - AMD Radeon HD 7400M Series supported 3 0 4.2 ATI Radeon HD 7400D/G/M -ATI Technologies Inc. 7900 MOD - AMD Radeon HD 7640G supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. ALL-IN-WONDER 9600 SERIES supported 1 0 2.1 ATI All-in-Wonder 9xxx -ATI Technologies Inc. AMD (ATI) FirePro M5950 (FireGL) Mobility Pro Graphics supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD (ATI) FirePro M4000 (FireGL V) Mobility Pro Graphics supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD (ATI) FirePro M5950 (FireGL) Mobility Pro Graphics supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD (ATI) FirePro M6000 (FireGL V) Mobility Pro Graphics supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD (ATI) FirePro M8900 (FireGL) Mobility Pro supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD (ATI) FirePro M8900 (FireGL) Mobility Pro Graphics supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD 760G supported 1 1 3.3 ATI 760G/Radeon 3000 -ATI Technologies Inc. AMD 760G (Microsoft Corporation WDDM 1.1) supported 1 1 3.3 ATI 760G/Radeon 3000 -ATI Technologies Inc. AMD FirePro 2270 supported 2 1 4.2 ATI FirePro 2000 -ATI Technologies Inc. AMD FirePro 2460 supported 2 1 4.2 ATI FirePro 2000 -ATI Technologies Inc. AMD FirePro M2000 supported 3 1 4.2 ATI FirePro M -ATI Technologies Inc. AMD FirePro M3900 supported 2 0 4.1 ATI FirePro M3900 -ATI Technologies Inc. AMD FirePro M4000 supported 3 1 4.2 ATI FirePro M -ATI Technologies Inc. AMD FirePro M5950 supported 3 1 4.2 ATI FirePro M -ATI Technologies Inc. AMD FirePro M5950 Mobility Professional Graphics supported 3 1 4.2 ATI FirePro M -ATI Technologies Inc. AMD FirePro V3900 supported 2 0 0 ATI FirePro 3000 -ATI Technologies Inc. AMD FirePro V3900 (ATI FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD FirePro V4900 supported 2 0 4.1 ATI FirePro 4000 -ATI Technologies Inc. AMD FirePro V4900 (ATI FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD FirePro V4900 (FireGL V) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD FirePro V4900 (FireGL V) Graphics Adapter supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD FirePro V5900 supported 3 0 0 ATI FirePro 5000 -ATI Technologies Inc. AMD FirePro V5900 (ATI FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD FirePro V5900 (FireGL V) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD FirePro V5900 (FireGL V) Graphics Adapter supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD FirePro V7900 supported 3 0 0 ATI FirePro 7000 -ATI Technologies Inc. AMD FirePro V7900 (ATI FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD FirePro V7900 (FireGL V) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD FirePro V7900 (FireGL V) Graphics Adapter supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD FirePro W5000 (FireGL V) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD FirePro W9000 (FireGL V) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. AMD M860G with ATI Mobility Radeon 4100 supported 1 1 3.3 ATI Mobility Radeon 4100 -ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4200 supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4225 supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4250 supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. AMD RADEON HD 6350 supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD RADEON HD 6450 supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. AMD RADEON HD 6450A supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. AMD RADEON HD 6670 supported 3 1 4.2 ATI Radeon HD 6600 -ATI Technologies Inc. AMD RADEON HD 7450 supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. AMD RADEON HD6370D Graphics supported 3 1 4.2 ATI Radeon HD 6300D/G/M -ATI Technologies Inc. AMD RADEON HD6410D Graphics supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD RADEON HD6530D Graphics supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD RADEON HD6550D Graphics supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon supported 3 0 0 ATI Radeon -ATI Technologies Inc. AMD Radeon (TM) HD 8500M/8700M supported 4 0 4.2 ATI Radeon HD 8500D/G/M -ATI Technologies Inc. AMD Radeon 6600M and 6700M Series supported 0 0 0 ATI Radeon 6xxx -ATI Technologies Inc. AMD Radeon 6600M and 6700M Series (Microsoft Corporation - WDDM v1.20) supported 0 0 0 ATI Radeon 6xxx -ATI Technologies Inc. AMD Radeon HD 5450 supported 3 1 4.2 ATI Radeon HD 5400 -ATI Technologies Inc. AMD Radeon HD 5500 Series supported 3 1 4.2 ATI Radeon HD 5500 -ATI Technologies Inc. AMD Radeon HD 5500 Series (Microsoft Corporation - WDDM v1.20) supported 3 1 4.2 ATI Radeon HD 5500 -ATI Technologies Inc. AMD Radeon HD 6200 series Graphics supported 0 1 4.2 ATI Radeon HD 6200 -ATI Technologies Inc. AMD Radeon HD 6250 supported 0 1 4.2 ATI Radeon HD 6200 -ATI Technologies Inc. AMD Radeon HD 6250 Graphics supported 0 1 4.2 ATI Radeon HD 6200 -ATI Technologies Inc. AMD Radeon HD 6250M supported 3 0 4.2 ATI Radeon HD 6200D/G/M -ATI Technologies Inc. AMD Radeon HD 6290 supported 0 1 4.2 ATI Radeon HD 6200 -ATI Technologies Inc. AMD Radeon HD 6290 Graphics supported 0 1 4.2 ATI Radeon HD 6200 -ATI Technologies Inc. AMD Radeon HD 6290M supported 3 0 4.2 ATI Radeon HD 6200D/G/M -ATI Technologies Inc. AMD Radeon HD 6300 series Graphics supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6300M Series supported 3 1 4.2 ATI Radeon HD 6300D/G/M -ATI Technologies Inc. AMD Radeon HD 6310 supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6310 Graphics supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6310 Graphics (Engineering Sample - WDDM v1.20) supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6310 Graphics (Microsoft Corporation - WDDM v1.3) supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6310 Graphics (Microsoft Corporation- WDDM v1.20) supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6310M supported 3 1 4.2 ATI Radeon HD 6300D/G/M -ATI Technologies Inc. AMD Radeon HD 6320 supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6320 Graphics supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6320 Graphic supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6320 Graphics supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6320 Graphics (Microsoft Corporation - WDDM v1.20) supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6320 series Graphics supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6320M supported 3 1 4.2 ATI Radeon HD 6300D/G/M -ATI Technologies Inc. AMD Radeon HD 6330M supported 3 1 4.2 ATI Radeon HD 6300D/G/M -ATI Technologies Inc. AMD Radeon HD 6350 supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6370D supported 3 1 4.2 ATI Radeon HD 6300D/G/M -ATI Technologies Inc. AMD Radeon HD 6370M supported 3 1 4.2 ATI Radeon HD 6300D/G/M -ATI Technologies Inc. AMD Radeon HD 6380G supported 3 1 4.2 ATI Radeon HD 6300D/G/M -ATI Technologies Inc. AMD Radeon HD 6400 Series supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. AMD Radeon HD 6400M Series supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon HD 6410D supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon HD 6410D Graphics supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon HD 6450 supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. AMD Radeon HD 6450 (Microsoft Corporation - WDDM v1.2) supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. AMD Radeon HD 6450 Graphics supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. AMD Radeon HD 6450A supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. AMD Radeon HD 6450A Graphics supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. AMD Radeon HD 6450M supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon HD 6470M supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon HD 6470M/7400M Series supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon HD 6480G supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon HD 6480M supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon HD 6490M supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon HD 6500 Series supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. AMD Radeon HD 6500 series graphics supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. AMD Radeon HD 6500M Series supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6500M/5600/5700 Series supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6510 Series supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. AMD Radeon HD 6520G supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6530D supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6530D Graphics supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6530M supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6550A supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. AMD Radeon HD 6550D supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6550D Graphics supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6550M supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6570 supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. AMD Radeon HD 6570 (Microsoft Corporation - WDDM v1.2) supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. AMD Radeon HD 6570 (Microsoft Corporation - WDDM v1.20) supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. AMD Radeon HD 6570M supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6570M/5700 Series supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6570M/5730 supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon HD 6600 Series supported 3 1 4.2 ATI Radeon HD 6600 -ATI Technologies Inc. AMD Radeon HD 6600M Series supported 4 0 4.2 ATI Radeon HD 6600D/G/M -ATI Technologies Inc. AMD Radeon HD 6610M Graphics supported 4 0 4.2 ATI Radeon HD 6600D/G/M -ATI Technologies Inc. AMD Radeon HD 6620G supported 4 0 4.2 ATI Radeon HD 6600D/G/M -ATI Technologies Inc. AMD Radeon HD 6625M Graphics supported 4 0 4.2 ATI Radeon HD 6600D/G/M -ATI Technologies Inc. AMD Radeon HD 6630M supported 4 0 4.2 ATI Radeon HD 6600D/G/M -ATI Technologies Inc. AMD Radeon HD 6650A Graphics supported 3 1 4.2 ATI Radeon HD 6600 -ATI Technologies Inc. AMD Radeon HD 6650M supported 4 0 4.2 ATI Radeon HD 6600D/G/M -ATI Technologies Inc. AMD Radeon HD 6670 supported 3 1 4.2 ATI Radeon HD 6600 -ATI Technologies Inc. AMD Radeon HD 6670 (Microsoft Corporation - WDDM v1.2) supported 3 1 4.2 ATI Radeon HD 6600 -ATI Technologies Inc. AMD Radeon HD 6670 (Microsoft Corporation - WDDM v1.20) supported 3 1 4.2 ATI Radeon HD 6600 -ATI Technologies Inc. AMD Radeon HD 6700 Series supported 3 1 4.2 ATI Radeon HD 6700 -ATI Technologies Inc. AMD Radeon HD 6700 series supported 3 1 4.2 ATI Radeon HD 6700 -ATI Technologies Inc. AMD Radeon HD 6700M Series supported 4 0 4.2 ATI Radeon HD 6700D/G/M -ATI Technologies Inc. AMD Radeon HD 6700M Series (Microsoft Corporation - WDDM v1.20) supported 4 0 4.2 ATI Radeon HD 6700D/G/M -ATI Technologies Inc. AMD Radeon HD 6700M/7700M/7900M Series supported 4 0 4.2 ATI Radeon HD 6700D/G/M -ATI Technologies Inc. AMD Radeon HD 6730M supported 4 0 4.2 ATI Radeon HD 6700D/G/M -ATI Technologies Inc. AMD Radeon HD 6750 supported 3 1 4.2 ATI Radeon HD 6700 -ATI Technologies Inc. AMD Radeon HD 6750M supported 4 0 4.2 ATI Radeon HD 6700D/G/M -ATI Technologies Inc. AMD Radeon HD 6770 supported 3 1 4.2 ATI Radeon HD 6700 -ATI Technologies Inc. AMD Radeon HD 6770M supported 4 0 4.2 ATI Radeon HD 6700D/G/M -ATI Technologies Inc. AMD Radeon HD 6770M OpenGL Engine supported 4 0 4.2 ATI Radeon HD 6700D/G/M -ATI Technologies Inc. AMD Radeon HD 6800 Series supported 4 1 4.2 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6800 Series (Engineering Sample - WDDM v1.20) supported 4 1 4.2 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6800 Series (Microsoft Corporation - WDDM v1.2) supported 4 1 4.2 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6800 Series (Microsoft Corporation - WDDM v1.20) supported 4 1 4.2 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6800M Series supported 4 0 4.2 ATI Radeon HD 6800D/G/M -ATI Technologies Inc. AMD Radeon HD 6850 supported 4 1 4.2 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6850 X2 supported 4 1 4.2 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6850M supported 4 0 4.2 ATI Radeon HD 6800D/G/M -ATI Technologies Inc. AMD Radeon HD 6870 supported 4 1 4.2 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6870M supported 4 0 4.2 ATI Radeon HD 6800D/G/M -ATI Technologies Inc. AMD Radeon HD 6900 Series supported 5 1 4.2 ATI Radeon HD 6900 -ATI Technologies Inc. AMD Radeon HD 6900 Series (Microsoft Corporation - WDDM v1.2) supported 5 1 4.2 ATI Radeon HD 6900 -ATI Technologies Inc. AMD Radeon HD 6900M Series supported 4 0 4.2 ATI Radeon HD 6900D/G/M -ATI Technologies Inc. AMD Radeon HD 6970 supported 5 1 4.2 ATI Radeon HD 6900 -ATI Technologies Inc. AMD Radeon HD 6970M supported 4 0 4.2 ATI Radeon HD 6900D/G/M -ATI Technologies Inc. AMD Radeon HD 6990 supported 5 1 4.2 ATI Radeon HD 6900 -ATI Technologies Inc. AMD Radeon HD 6990M supported 4 0 4.2 ATI Radeon HD 6900D/G/M -ATI Technologies Inc. AMD Radeon HD 7000 series supported 3 1 4.2 ATI Radeon HD 7000 Series -ATI Technologies Inc. AMD Radeon HD 7290 Graphics supported 2 0 4.2 ATI Radeon HD 7200 -ATI Technologies Inc. AMD Radeon HD 7300 Series (Microsoft Corporation - WDDM v1.2) supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. AMD Radeon HD 7300 Series Graphics supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. AMD Radeon HD 7310 supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. AMD Radeon HD 7310 Graphics supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. AMD Radeon HD 7310 Graphics supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. AMD Radeon HD 7310 Graphics (Microsoft Corporation - WDDM v1.2) supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. AMD Radeon HD 7310G supported 3 0 4.2 ATI Radeon HD 7300D/G/M -ATI Technologies Inc. AMD Radeon HD 7310M supported 3 0 4.2 ATI Radeon HD 7300D/G/M -ATI Technologies Inc. AMD Radeon HD 7340 supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. AMD Radeon HD 7340 Graphics supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. AMD Radeon HD 7340G supported 3 0 4.2 ATI Radeon HD 7300D/G/M -ATI Technologies Inc. AMD Radeon HD 7340M supported 3 0 4.2 ATI Radeon HD 7300D/G/M -ATI Technologies Inc. AMD Radeon HD 7350 supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. AMD Radeon HD 7350 Graphics supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. AMD Radeon HD 7370M supported 3 0 4.2 ATI Radeon HD 7300D/G/M -ATI Technologies Inc. AMD Radeon HD 7400 Series supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. AMD Radeon HD 7400 Series (Microsoft Corporation - WDDM v1.2) supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. AMD Radeon HD 7400G supported 3 0 4.2 ATI Radeon HD 7400D/G/M -ATI Technologies Inc. AMD Radeon HD 7400M Series supported 3 0 4.2 ATI Radeon HD 7400D/G/M -ATI Technologies Inc. AMD Radeon HD 7400M Series (Microsoft Corporation - WDDM v1.20) supported 3 0 4.2 ATI Radeon HD 7400D/G/M -ATI Technologies Inc. AMD Radeon HD 7410M supported 3 0 4.2 ATI Radeon HD 7400D/G/M -ATI Technologies Inc. AMD Radeon HD 7420G supported 3 0 4.2 ATI Radeon HD 7400D/G/M -ATI Technologies Inc. AMD Radeon HD 7450 supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. AMD Radeon HD 7450 Graphics supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. AMD Radeon HD 7450A Graphics supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. AMD Radeon HD 7450M supported 3 0 4.2 ATI Radeon HD 7400D/G/M -ATI Technologies Inc. AMD Radeon HD 7470 supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. AMD Radeon HD 7470 Series supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. AMD Radeon HD 7470M supported 3 0 4.2 ATI Radeon HD 7400D/G/M -ATI Technologies Inc. AMD Radeon HD 7480D supported 3 0 4.2 ATI Radeon HD 7400D/G/M -ATI Technologies Inc. AMD Radeon HD 7500 Series supported 3 1 4.2 ATI Radeon HD 7500 -ATI Technologies Inc. AMD Radeon HD 7500 Series (Microsoft Corporation - WDDM v1.2) supported 3 1 4.2 ATI Radeon HD 7500 -ATI Technologies Inc. AMD Radeon HD 7500 Series (Microsoft Corporation - WDDM v1.20) supported 3 1 4.2 ATI Radeon HD 7500 -ATI Technologies Inc. AMD Radeon HD 7500/7600 Series supported 3 1 4.2 ATI Radeon HD 7500 -ATI Technologies Inc. AMD Radeon HD 7500G supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7500G + 7500M/7600M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7500M/7600M Series supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7510 supported 3 1 4.2 ATI Radeon HD 7500 -ATI Technologies Inc. AMD Radeon HD 7520G supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7520G + 6400M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7520G + 7470M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7520G + 7500/7600 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7520G + 7600M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7520G + 7610M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7520G + 7670M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7540D supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7540D + 7450 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7550M supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7550M/7650M Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7560D supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7560D (Microsoft Corporation - WDDM v1.20) supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7560D + 6570 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7560D + 6670 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7560D + 7560D Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7560D + 7600 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7560D + 7670 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7570 supported 3 1 4.2 ATI Radeon HD 7500 -ATI Technologies Inc. AMD Radeon HD 7570 Graphics supported 3 1 4.2 ATI Radeon HD 7500 -ATI Technologies Inc. AMD Radeon HD 7570 Series supported 3 1 4.2 ATI Radeon HD 7500 -ATI Technologies Inc. AMD Radeon HD 7570M supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7570M/HD 7670M Graphics supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7580D supported 4 0 4.2 ATI Radeon HD 7500D/G/M -ATI Technologies Inc. AMD Radeon HD 7600 Series (Microsoft Corporation - WDDM v1.20) supported 3 0 4.2 ATI Radeon HD 7600 -ATI Technologies Inc. AMD Radeon HD 7600G supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7600G + 7500M/7600M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7600G + 7550M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7600M + 7600M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7600M Series supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7610M supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7620G supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7640G supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7640G + 6400M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7640G + 7450M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7640G + 7470M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7640G + 7500/7600 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7640G + 7500M/7600M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7640G + 7600M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7640G + 7610M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7640G + 7670M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7650A supported 3 0 4.2 ATI Radeon HD 7600 -ATI Technologies Inc. AMD Radeon HD 7650A Graphics supported 3 0 4.2 ATI Radeon HD 7600 -ATI Technologies Inc. AMD Radeon HD 7650M supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7650M Series supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660D supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660D + 6570 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660D + 6670 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660D + 7670 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660D + 7700 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660G supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660G + 6400M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660G + 7400M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660G + 7470M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660G + 7500/7600 Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660G + 7600M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660G + 7610M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660G + 7670M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7660G + 7700M Dual Graphics supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7670 supported 3 0 4.2 ATI Radeon HD 7600 -ATI Technologies Inc. AMD Radeon HD 7670M supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7690M supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD 7700 Series supported 4 1 4.2 ATI Radeon HD 7700 -ATI Technologies Inc. AMD Radeon HD 7700 Series (Microsoft Corporation - WDDM v1.3) supported 4 1 4.2 ATI Radeon HD 7700 -ATI Technologies Inc. AMD Radeon HD 7700M Series supported 4 0 4.2 ATI Radeon HD 7700D/G/M -ATI Technologies Inc. AMD Radeon HD 7730M supported 4 0 4.2 ATI Radeon HD 7700D/G/M -ATI Technologies Inc. AMD Radeon HD 7770 supported 4 1 4.2 ATI Radeon HD 7700 -ATI Technologies Inc. AMD Radeon HD 7770 GHz Edition supported 4 1 4.2 ATI Radeon HD 7700 -ATI Technologies Inc. AMD Radeon HD 7800 Series supported 5 1 4.2 ATI Radeon HD 7800 -ATI Technologies Inc. AMD Radeon HD 7800 Series (Engineering Sample - WDDM v1.20) supported 5 1 4.2 ATI Radeon HD 7800 -ATI Technologies Inc. AMD Radeon HD 7800 Series (Microsoft Corporation - WDDM v1.20) supported 5 1 4.2 ATI Radeon HD 7800 -ATI Technologies Inc. AMD Radeon HD 7800 Series (Microsoft Corporation - WDDM v1.3) supported 5 1 4.2 ATI Radeon HD 7800 -ATI Technologies Inc. AMD Radeon HD 7800M Series supported 4 0 4.2 ATI Radeon HD 7800D/G/M -ATI Technologies Inc. AMD Radeon HD 7870 supported 5 1 4.2 ATI Radeon HD 7800 -ATI Technologies Inc. AMD Radeon HD 7870M supported 4 0 4.2 ATI Radeon HD 7800D/G/M -ATI Technologies Inc. AMD Radeon HD 7900 Series supported 5 1 4.2 ATI Radeon HD 7900 -ATI Technologies Inc. AMD Radeon HD 7900 Series (Microsoft Corporation - WDDM v1.3) supported 5 1 4.2 ATI Radeon HD 7900 -ATI Technologies Inc. AMD Radeon HD 7950 supported 5 1 4.2 ATI Radeon HD 7900 -ATI Technologies Inc. AMD Radeon HD 7970 supported 5 1 4.2 ATI Radeon HD 7900 -ATI Technologies Inc. AMD Radeon HD 7970M supported 4 0 4.2 ATI Radeon HD 7900D/G/M -ATI Technologies Inc. AMD Radeon HD 8210 supported 2 0 4.2 ATI Radeon HD 8200 -ATI Technologies Inc. AMD Radeon HD 8240 supported 2 0 4.2 ATI Radeon HD 8200 -ATI Technologies Inc. AMD Radeon HD 8250 supported 2 0 4.2 ATI Radeon HD 8200 -ATI Technologies Inc. AMD Radeon HD 8280G supported 3 0 4.2 ATI Radeon HD 8200D/G/M -ATI Technologies Inc. AMD Radeon HD 8330 supported 2 0 4.2 ATI Radeon HD 8300 (OEM) -ATI Technologies Inc. AMD Radeon HD 8350 supported 2 0 4.2 ATI Radeon HD 8300 (OEM) -ATI Technologies Inc. AMD Radeon HD 8350G supported 3 0 4.2 ATI Radeon HD 8300D/G/M -ATI Technologies Inc. AMD Radeon HD 8400 supported 2 0 4.2 ATI Radeon HD 8400 (OEM) -ATI Technologies Inc. AMD Radeon HD 8450 supported 2 0 4.2 ATI Radeon HD 8400 (OEM) -ATI Technologies Inc. AMD Radeon HD 8450G supported 4 0 4.2 ATI Radeon HD 8400D/G/M -ATI Technologies Inc. AMD Radeon HD 8470 supported 2 0 4.2 ATI Radeon HD 8400 (OEM) -ATI Technologies Inc. AMD Radeon HD 8470D supported 4 0 4.2 ATI Radeon HD 8400D/G/M -ATI Technologies Inc. AMD Radeon HD 8550G supported 4 0 4.2 ATI Radeon HD 8500D/G/M -ATI Technologies Inc. AMD Radeon HD 8570 supported 3 1 4.2 ATI Radeon HD 8500 (OEM) -ATI Technologies Inc. AMD Radeon HD 8570D supported 4 0 4.2 ATI Radeon HD 8500D/G/M -ATI Technologies Inc. AMD Radeon HD 8610G supported 4 0 4.2 ATI Radeon HD 8600D/G/M -ATI Technologies Inc. AMD Radeon HD 8650G supported 4 0 4.2 ATI Radeon HD 8600D/G/M -ATI Technologies Inc. AMD Radeon HD 8670D supported 4 0 4.2 ATI Radeon HD 8600D/G/M -ATI Technologies Inc. AMD Radeon HD 8670D + 6670 Dual Graphics supported 4 0 4.2 ATI Radeon HD 8600D/G/M -ATI Technologies Inc. AMD Radeon HD 8700M Series supported 4 0 4.2 ATI Radeon HD 8700D/G/M -ATI Technologies Inc. AMD Radeon HD 8730M supported 4 0 4.2 ATI Radeon HD 8700D/G/M -ATI Technologies Inc. AMD Radeon HD 8750M supported 4 0 4.2 ATI Radeon HD 8700D/G/M -ATI Technologies Inc. AMD Radeon HD 8760 supported 4 1 4.2 ATI Radeon HD 8700 (OEM) -ATI Technologies Inc. AMD Radeon HD 8800M Series supported 4 0 4.2 ATI Radeon HD 8800D/G/M -ATI Technologies Inc. AMD Radeon HD 8900 Series (OEM) supported 5 1 4.2 ATI Radeon HD 8900 (OEM) -ATI Technologies Inc. AMD Radeon HD 8950 supported 5 1 4.2 ATI Radeon HD 8900 (OEM) -ATI Technologies Inc. AMD Radeon HD HD7850M supported 4 0 4.2 ATI Radeon HD 7800D/G/M -ATI Technologies Inc. AMD Radeon HD6370D Graphics supported 3 1 4.2 ATI Radeon HD 6300D/G/M -ATI Technologies Inc. AMD Radeon HD7610M supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon HD7700 Series supported 4 1 4.2 ATI Radeon HD 7700 -ATI Technologies Inc. AMD Radeon HD7770 supported 4 1 4.2 ATI Radeon HD 7700 -ATI Technologies Inc. AMD Radeon HD7770 GHz Edition supported 4 1 4.2 ATI Radeon HD 7700 -ATI Technologies Inc. AMD Radeon HD8350 supported 2 0 4.2 ATI Radeon HD 8300 (OEM) -ATI Technologies Inc. AMD Radeon(TM) HD 6380G supported 3 1 4.2 ATI Radeon HD 6300D/G/M -ATI Technologies Inc. AMD Radeon(TM) HD 6470M supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon(TM) HD 6480G supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon(TM) HD 6480G (Microsoft Corporation - WDDM v1.20) supported 3 0 4.2 ATI Radeon HD 6400D/G/M -ATI Technologies Inc. AMD Radeon(TM) HD 6520G supported 4 1 4.2 ATI Radeon HD 6500D/G/M -ATI Technologies Inc. AMD Radeon(TM) HD 6620G supported 4 0 4.2 ATI Radeon HD 6600D/G/M -ATI Technologies Inc. AMD Radeon(TM) HD 6630M supported 4 0 4.2 ATI Radeon HD 6600D/G/M -ATI Technologies Inc. AMD Radeon(TM) HD 6650M supported 4 0 4.2 ATI Radeon HD 6600D/G/M -ATI Technologies Inc. AMD Radeon(TM) HD 7450 supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. AMD Radeon(TM) HD 7450A Graphics supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. AMD Radeon(TM) HD 7650A Graphics supported 3 0 4.2 ATI Radeon HD 7600 -ATI Technologies Inc. AMD Radeon(TM) HD 7670A Graphics supported 3 0 4.2 ATI Radeon HD 7600 -ATI Technologies Inc. AMD Radeon(TM) HD 7670M supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon(TM) HD 8350 supported 2 0 4.2 ATI Radeon HD 8300 (OEM) -ATI Technologies Inc. AMD Radeon(TM) HD8490 supported 2 0 4.2 ATI Radeon HD 8400 (OEM) -ATI Technologies Inc. AMD Radeon. HD 7350 supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. AMD Radeon. HD 7670M supported 4 0 4.2 ATI Radeon HD 7600D/G/M -ATI Technologies Inc. AMD Radeon. HD 7730M supported 4 0 4.2 ATI Radeon HD 7700D/G/M -ATI Technologies Inc. ASUS AH3450 Series supported 1 1 4 ATI Radeon HD 3400 -ATI Technologies Inc. ASUS AH3650 Series supported 3 1 4 ATI Radeon HD 3600 -ATI Technologies Inc. ASUS AH4650 Series supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ASUS ARES unsupported 0 0 0 ATI ARES -ATI Technologies Inc. ASUS ARES2 unsupported 0 0 0 ATI ARES -ATI Technologies Inc. ASUS EAH2400 Series supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. ASUS EAH2600 Series supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. ASUS EAH3450 Series supported 1 1 4 ATI Radeon HD 3400 -ATI Technologies Inc. ASUS EAH3650 Series supported 3 1 4 ATI Radeon HD 3600 -ATI Technologies Inc. ASUS EAH3850 Series supported 3 1 4 ATI Radeon HD 3800 -ATI Technologies Inc. ASUS EAH3870 Series supported 3 1 4 ATI Radeon HD 3800 -ATI Technologies Inc. ASUS EAH4350 series supported 2 1 4 ATI Radeon HD 4300 -ATI Technologies Inc. ASUS EAH4550 series supported 2 1 3.3 ATI Radeon HD 4500 -ATI Technologies Inc. ASUS EAH4650 series supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ASUS EAH4670 series supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ASUS EAH4770 Series supported 3 1 3.3 ATI Radeon HD 4700 -ATI Technologies Inc. ASUS EAH4770 series supported 3 1 3.3 ATI Radeon HD 4700 -ATI Technologies Inc. ASUS EAH4850 series supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ASUS EAH4870 series supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ASUS EAH4870x2 supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ASUS EAH4890 supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ASUS EAH5450 Series supported 3 1 4.2 ATI Radeon HD 5400 -ATI Technologies Inc. ASUS EAH5550 Series supported 3 1 4.2 ATI Radeon HD 5500 -ATI Technologies Inc. ASUS EAH5570 series supported 3 1 4.2 ATI Radeon HD 5500 -ATI Technologies Inc. ASUS EAH5670 Series supported 3 1 4.2 ATI Radeon HD 5600 -ATI Technologies Inc. ASUS EAH5750 Series supported 3 1 4.2 ATI Radeon HD 5700 -ATI Technologies Inc. ASUS EAH5770 Series supported 3 1 4.2 ATI Radeon HD 5700 -ATI Technologies Inc. ASUS EAH5830 Series supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ASUS EAH5850 Series supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ASUS EAH5870 Series supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ASUS EAH6450 Series supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. ASUS EAH6570 Series supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. ASUS EAH6670 Series supported 3 1 4.2 ATI Radeon HD 6600 -ATI Technologies Inc. ASUS EAH6750 Series supported 3 1 4.2 ATI Radeon HD 6700 -ATI Technologies Inc. ASUS EAH6770 Series supported 3 1 4.2 ATI Radeon HD 6700 -ATI Technologies Inc. ASUS EAH6850 Series supported 4 1 4.2 ATI Radeon HD 6800 -ATI Technologies Inc. ASUS EAH6870 Series supported 4 1 4.2 ATI Radeon HD 6800 -ATI Technologies Inc. ASUS EAH6950 Series supported 5 1 4.2 ATI Radeon HD 6900 -ATI Technologies Inc. ASUS EAH6970 Series supported 5 1 4.2 ATI Radeon HD 6900 -ATI Technologies Inc. ASUS Extreme AX300 Series supported 2 1 4 ATI Radeon HD 4300 -ATI Technologies Inc. ASUS Extreme AX300SE/T supported 2 1 4 ATI Radeon HD 4300 -ATI Technologies Inc. ASUS Extreme AX550 Series supported 3 1 4.2 ATI Radeon HD 5500 -ATI Technologies Inc. ASUS Extreme AX550 Series x86/SSE2 supported 3 1 4.2 ATI Radeon HD 5500 -ATI Technologies Inc. ASUS Extreme AX600 Series supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. ASUS HD 7350 supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. ASUS HD7470 Series supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. ASUS HD7670 Series supported 3 0 4.2 ATI Radeon HD 7600 -ATI Technologies Inc. ASUS HD7750 Series supported 4 1 4.2 ATI Radeon HD 7700 -ATI Technologies Inc. ASUS HD7770 Series supported 4 1 4.2 ATI Radeon HD 7700 -ATI Technologies Inc. ASUS HD7790 Series supported 4 1 4.2 ATI Radeon HD 7700 -ATI Technologies Inc. ASUS HD7850 Series supported 5 1 4.2 ATI Radeon HD 7800 -ATI Technologies Inc. ASUS HD7870 Series supported 5 1 4.2 ATI Radeon HD 7800 -ATI Technologies Inc. ASUS HD7950 Series supported 5 1 4.2 ATI Radeon HD 7900 -ATI Technologies Inc. ASUS HD7970 Series supported 5 1 4.2 ATI Radeon HD 7900 -ATI Technologies Inc. ASUS X1300 Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ASUS X1300 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ASUS X1300 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ASUS X1300 x86/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ASUS X1550 Series supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. ASUS X1550 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. ASUS X1550 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. ASUS X1600 Series supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ASUS X1600 Series x86 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ASUS X1600 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ASUS X1600 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ASUS X1650 Series supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ASUS X1650 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ASUS X1650 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ASUS X1950 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. ATI Radeon HD 5000 Series supported 3 1 4.2 ATI Radeon HD 5000 -ATI Technologies Inc. ATI Radeon HD 6350 supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. ATI All-in-Wonder HD supported 1 1 3.3 ATI All-in-Wonder HD -ATI Technologies Inc. ATI Display Adapter supported 1 1 4.1 ATI Display Adapter -ATI Technologies Inc. ATI FireGL V3100 supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireGL V3200 Pentium 4 (SSE2) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireGL V3300 supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireGL V3350 supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireGL V3350 Pentium 4 (SSE2) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireGL V3400 (Microsoft Corporation - WDDM) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireGL V3400 Pentium 4 (SSE2) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireGL V3600 supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireGL V5200 (Microsoft Corporation - WDDM) supported 1 1 2.1 ATI FireGL 5200 -ATI Technologies Inc. ATI FireGL V5200 Pentium 4 (SSE2) supported 1 1 2.1 ATI FireGL 5200 -ATI Technologies Inc. ATI FireGL V5600 supported 2 1 3.3 ATI FireGL 5xxx -ATI Technologies Inc. ATI FireGL V7200 supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireGL V7200 Pentium 4 (SSE2) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireGL V7600 supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireGL V7700 supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FireMV 2250 supported 0 1 3.2 ATI FireMV -ATI Technologies Inc. ATI FireMV 2250 x86/SSE2 supported 0 1 3.2 ATI FireMV -ATI Technologies Inc. ATI FirePro 2260 supported 2 1 4.2 ATI FirePro 2000 -ATI Technologies Inc. ATI FirePro 2450 supported 2 1 4.2 ATI FirePro 2000 -ATI Technologies Inc. ATI FirePro 3800 (FireGL) Graphics Adapter supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro M5800 supported 3 0 0 ATI FirePro M5800 -ATI Technologies Inc. ATI FirePro M7740 supported 3 0 0 ATI FirePro M7740 -ATI Technologies Inc. ATI FirePro M7820 supported 5 1 4.2 ATI FirePro M7820 -ATI Technologies Inc. ATI FirePro M7820 (FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V3700 (FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V3800 supported 2 0 0 ATI FirePro 3000 -ATI Technologies Inc. ATI FirePro V3800 (FireGL V) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V3800 (FireGL V) Graphics Adapter supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V3800 (FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V4800 supported 2 0 4.1 ATI FirePro 4000 -ATI Technologies Inc. ATI FirePro V4800 (FireGL V) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V4800 (FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V5700 (FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V5800 (FireGL V) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V5800 (FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V7800 (FireGL V) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V7800 (FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V8700 (FireGL) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI FirePro V9800 (FireGL V) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI MOBILITY FIRE GL T2/T2e supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI MOBILITY FireGL V3200 supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. ATI MOBILITY FireGL V5000 Pentium 4 (SSE2) supported 2 1 3.3 ATI FireGL 5xxx -ATI Technologies Inc. ATI MOBILITY FireGL V5200 supported 1 1 2.1 ATI FireGL 5200 -ATI Technologies Inc. ATI MOBILITY FireGL V5200 Pentium 4 (SSE2) supported 1 1 2.1 ATI FireGL 5200 -ATI Technologies Inc. ATI MOBILITY FireGL V5250 supported 1 1 2.1 ATI FireGL 5200 -ATI Technologies Inc. ATI MOBILITY RADEON 9600 Series supported 1 1 2.1 ATI Mobility Radeon 9600 -ATI Technologies Inc. ATI MOBILITY RADEON 9600/9700 supported 1 1 2.1 ATI Mobility Radeon 9600 -ATI Technologies Inc. ATI MOBILITY RADEON 9600/9700 Series supported 1 1 2.1 ATI Mobility Radeon 9600 -ATI Technologies Inc. ATI MOBILITY RADEON 9600/9700 Series (Omega 3 supported 1 1 2.1 ATI Mobility Radeon 9600 -ATI Technologies Inc. ATI MOBILITY RADEON HD 2300 supported 0 1 2.1 ATI Mobility Radeon HD 2300 -ATI Technologies Inc. ATI MOBILITY RADEON HD 2400 supported 1 1 3.3 ATI Mobility Radeon HD 2400 -ATI Technologies Inc. ATI MOBILITY RADEON HD 2600 supported 1 1 3.3 ATI Mobility Radeon HD 2600 -ATI Technologies Inc. ATI MOBILITY RADEON HD 3430 supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI MOBILITY RADEON HD 3450 supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI MOBILITY RADEON HD 3650 supported 1 1 4 ATI Mobility Radeon HD 3600 -ATI Technologies Inc. ATI MOBILITY RADEON HD 4530 / 4570 supported 1 1 4 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI MOBILITY RADEON X1300 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ATI MOBILITY RADEON X1350 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ATI MOBILITY RADEON X1400 supported 2 1 2.1 ATI Radeon X1400 -ATI Technologies Inc. ATI MOBILITY RADEON X1600 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ATI MOBILITY RADEON X1700 supported 2 1 2.1 ATI Radeon X1700 -ATI Technologies Inc. ATI MOBILITY RADEON X1800 supported 3 1 2.1 ATI Radeon X1800 -ATI Technologies Inc. ATI MOBILITY RADEON X1900 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. ATI MOBILITY RADEON X2300 supported 2 0 2.1 ATI Mobility Radeon X2300 -ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2 supported 2 0 2.1 ATI Mobility Radeon X2300 -ATI Technologies Inc. ATI MOBILITY RADEON X300 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. ATI MOBILITY RADEON X300 x86/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. ATI MOBILITY RADEON X600 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. ATI MOBILITY RADEON X600 SE supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. ATI MOBILITY RADEON X700 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. ATI MOBILITY RADEON XPRESS 200 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI MOBILITY RADEON XPRESS 200 x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI MOBILITY Radeon HD 4650 supported 2 1 3.3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility FireGL V5700 supported 2 1 3.3 ATI FireGL 5xxx -ATI Technologies Inc. ATI Mobility FireGL V5725 supported 2 1 3.3 ATI FireGL 5xxx -ATI Technologies Inc. ATI Mobility Radeon 4100 supported 1 1 3.3 ATI Mobility Radeon 4100 -ATI Technologies Inc. ATI Mobility Radeon Graphics NO MATCH -ATI Technologies Inc. ATI Mobility Radeon HD 2300 supported 0 1 2.1 ATI Mobility Radeon HD 2300 -ATI Technologies Inc. ATI Mobility Radeon HD 2300 x86/SSE2 supported 0 1 2.1 ATI Mobility Radeon HD 2300 -ATI Technologies Inc. ATI Mobility Radeon HD 2400 supported 1 1 3.3 ATI Mobility Radeon HD 2400 -ATI Technologies Inc. ATI Mobility Radeon HD 2400 (Omega 3.8.442) supported 1 1 3.3 ATI Mobility Radeon HD 2400 -ATI Technologies Inc. ATI Mobility Radeon HD 2400 XT supported 1 1 3.3 ATI Mobility Radeon HD 2400 -ATI Technologies Inc. ATI Mobility Radeon HD 2600 supported 1 1 3.3 ATI Mobility Radeon HD 2600 -ATI Technologies Inc. ATI Mobility Radeon HD 2600 XT supported 1 1 3.3 ATI Mobility Radeon HD 2600 -ATI Technologies Inc. ATI Mobility Radeon HD 2600 XT (Microsoft Corporation WDDM 1.1) supported 1 1 3.3 ATI Mobility Radeon HD 2600 -ATI Technologies Inc. ATI Mobility Radeon HD 2700 supported 3 0 0 ATI Mobility Radeon HD 2700 -ATI Technologies Inc. ATI Mobility Radeon HD 3400 Series supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3400 Series (Microsoft Corporation WDDM 1.1) supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3400 Series (Microsoft Corporation- WDDM v1.1) supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3410 supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3430 supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3430 (Microsoft Corporation- WDDM v1.1) supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3450 supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3470 supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3470 Hybrid X2 supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3470 Series supported 1 1 4 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3650 supported 1 1 4 ATI Mobility Radeon HD 3600 -ATI Technologies Inc. ATI Mobility Radeon HD 3670 supported 1 1 4 ATI Mobility Radeon HD 3600 -ATI Technologies Inc. ATI Mobility Radeon HD 3850 supported 3 1 3.3 ATI Mobility Radeon HD 3800 -ATI Technologies Inc. ATI Mobility Radeon HD 3870 supported 3 1 3.3 ATI Mobility Radeon HD 3800 -ATI Technologies Inc. ATI Mobility Radeon HD 3870 X2 supported 3 1 3.3 ATI Mobility Radeon HD 3800 -ATI Technologies Inc. ATI Mobility Radeon HD 4200 supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4200 Series supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4200 Series (Microsoft Corporation - WDDM v1.1) supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4225 supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4225 Series supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4250 supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4250 Graphics supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4250 Series supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4270 supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4270 Series supported 1 1 4 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4300 Series supported 1 1 4 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4300/4500 Series supported 1 1 4 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4330 supported 1 1 4 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4330 Series supported 1 1 4 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4350 supported 1 1 4 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4350 Series supported 1 1 4 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series supported 1 1 4 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series (Microsoft Corporation - WDDM v1.1) supported 1 1 4 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series (Microsoft Corporation WDDM 1.1) supported 1 1 4 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4500/5100 Series supported 1 1 4 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4530 supported 1 1 4 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4530 Series supported 1 1 4 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4550 supported 1 1 4 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4570 supported 1 1 4 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4600 Series supported 2 1 3.3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility Radeon HD 4650 supported 2 1 3.3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility Radeon HD 4650 (Microsoft Corporation - WDDM v1.1) supported 2 1 3.3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility Radeon HD 4650 (Microsoft Corporation- WDDM v1.1) supported 2 1 3.3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility Radeon HD 4650 Series supported 2 1 3.3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility Radeon HD 4670 supported 2 1 3.3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility Radeon HD 4670 (Microsoft Corporation - WDDM v1.1) supported 2 1 3.3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility Radeon HD 4830 supported 3 1 3.3 ATI Mobility Radeon HD 4800 -ATI Technologies Inc. ATI Mobility Radeon HD 4830 Series supported 3 1 3.3 ATI Mobility Radeon HD 4800 -ATI Technologies Inc. ATI Mobility Radeon HD 4850 supported 3 1 3.3 ATI Mobility Radeon HD 4800 -ATI Technologies Inc. ATI Mobility Radeon HD 4870 supported 3 1 3.3 ATI Mobility Radeon HD 4800 -ATI Technologies Inc. ATI Mobility Radeon HD 5000 supported 1 1 4.2 ATI Mobility Radeon 5000 -ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series supported 1 1 4.2 ATI Mobility Radeon 5000 -ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series (Engineering Sample - WDDM v1.20) supported 1 1 4.2 ATI Mobility Radeon 5000 -ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series (Microsoft Corporation - WDDM v1.2) supported 1 1 4.2 ATI Mobility Radeon 5000 -ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series (Microsoft Corporation - WDDM v1.20) supported 1 1 4.2 ATI Mobility Radeon 5000 -ATI Technologies Inc. ATI Mobility Radeon HD 5100 supported 3 1 3.2 ATI Mobility Radeon HD 5100 -ATI Technologies Inc. ATI Mobility Radeon HD 5145 supported 3 1 3.2 ATI Mobility Radeon HD 5100 -ATI Technologies Inc. ATI Mobility Radeon HD 5165 supported 3 1 3.2 ATI Mobility Radeon HD 5100 -ATI Technologies Inc. ATI Mobility Radeon HD 530v supported 1 1 3.3 ATI Mobility Radeon HD 530v -ATI Technologies Inc. ATI Mobility Radeon HD 5400 supported 2 1 4.2 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI Mobility Radeon HD 5400 Series supported 2 1 4.2 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI Mobility Radeon HD 540v supported 1 1 3.3 ATI Mobility Radeon HD 540v -ATI Technologies Inc. ATI Mobility Radeon HD 5430 supported 2 1 4.2 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI Mobility Radeon HD 5450 supported 2 1 4.2 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI Mobility Radeon HD 5450 Series supported 2 1 4.2 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI Mobility Radeon HD 545v supported 2 1 4 ATI Mobility Radeon HD 545v -ATI Technologies Inc. ATI Mobility Radeon HD 5470 supported 2 1 4.2 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI Mobility Radeon HD 550v supported 3 1 4 ATI Mobility Radeon HD 550v -ATI Technologies Inc. ATI Mobility Radeon HD 5570 supported 3 0 4.2 ATI Mobility Radeon HD 5500 -ATI Technologies Inc. ATI Mobility Radeon HD 5600/5700 Series supported 3 1 4.2 ATI Mobility Radeon HD 5600 -ATI Technologies Inc. ATI Mobility Radeon HD 560v supported 3 1 3.2 ATI Mobility Radeon HD 560v -ATI Technologies Inc. ATI Mobility Radeon HD 5650 supported 3 1 4.2 ATI Mobility Radeon HD 5600 -ATI Technologies Inc. ATI Mobility Radeon HD 565v supported 3 1 3.3 ATI Mobility Radeon HD 565v -ATI Technologies Inc. ATI Mobility Radeon HD 5700 Series supported 3 1 4.1 ATI Mobility Radeon HD 5700 -ATI Technologies Inc. ATI Mobility Radeon HD 5730 supported 3 1 4.1 ATI Mobility Radeon HD 5700 -ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series (Microsoft Corporation - WDDM v1.20) supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Mobility Radeon HD 5830 Series supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Mobility Radeon HD 5850 supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Mobility Radeon HD 5870 supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Mobility Radeon HD 6370 supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. ATI Mobility Radeon HD 6550 supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. ATI Mobility Radeon HD 6570 supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. ATI Mobility Radeon X1300 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ATI Mobility Radeon X1300 (Omega 3.8.252) x86/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ATI Mobility Radeon X1300 x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ATI Mobility Radeon X1300 x86/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ATI Mobility Radeon X1350 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ATI Mobility Radeon X1350 x86/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ATI Mobility Radeon X1400 supported 2 1 2.1 ATI Radeon X1400 -ATI Technologies Inc. ATI Mobility Radeon X1400 (Omega 3.8.442) supported 2 1 2.1 ATI Radeon X1400 -ATI Technologies Inc. ATI Mobility Radeon X1400 x86 supported 2 1 2.1 ATI Radeon X1400 -ATI Technologies Inc. ATI Mobility Radeon X1400 x86/SSE2 supported 2 1 2.1 ATI Radeon X1400 -ATI Technologies Inc. ATI Mobility Radeon X1450 x86/SSE2 supported 2 1 2.1 ATI Radeon X1400 -ATI Technologies Inc. ATI Mobility Radeon X1600 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ATI Mobility Radeon X1600 x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ATI Mobility Radeon X1600 x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ATI Mobility Radeon X1700 supported 2 1 2.1 ATI Radeon X1700 -ATI Technologies Inc. ATI Mobility Radeon X1700 x86 supported 2 1 2.1 ATI Radeon X1700 -ATI Technologies Inc. ATI Mobility Radeon X1700 x86/SSE2 supported 2 1 2.1 ATI Radeon X1700 -ATI Technologies Inc. ATI Mobility Radeon X1800 x86/SSE2 supported 3 1 2.1 ATI Radeon X1800 -ATI Technologies Inc. ATI Mobility Radeon X1900 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. ATI Mobility Radeon X2300 supported 2 0 2.1 ATI Mobility Radeon X2300 -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow! supported 2 0 2.1 ATI Mobility Radeon X2300 -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2 supported 2 0 2.1 ATI Mobility Radeon X2300 -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2 supported 2 0 2.1 ATI Mobility Radeon X2300 -ATI Technologies Inc. ATI Mobility Radeon X2500 supported 2 0 2.1 ATI Mobility Radeon X2500 -ATI Technologies Inc. ATI Mobility Radeon. HD 530v supported 1 1 3.3 ATI Mobility Radeon HD 530v -ATI Technologies Inc. ATI Mobility Radeon. HD 5470 supported 2 1 4.2 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI RADEON 9600 Series supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. ATI RADEON 9600/X1050 Series supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. ATI RADEON E4690 supported 3 1 4 ATI RADEON E4690 -ATI Technologies Inc. ATI RADEON HD 3200 Graphics supported 1 1 4 ATI Radeon HD 3200 -ATI Technologies Inc. ATI RADEON XPRESS 1100 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 1100 Series supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 1100 x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 1200 Series supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200 Series supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200 Series x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200 x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200M SERIES supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200M Series supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200M Series (Microsoft Corporation) supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200M Series (Omega 3.8.421) x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200M Series x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon 2100 supported 0 1 2.1 ATI Radeon 2100 -ATI Technologies Inc. ATI Radeon 2100 (Microsoft Corporation - WDDM) supported 0 1 2.1 ATI Radeon 2100 -ATI Technologies Inc. ATI Radeon 2100 Graphics supported 0 1 2.1 ATI Radeon 2100 -ATI Technologies Inc. ATI Radeon 3000 supported 1 1 4 ATI Radeon 3000 -ATI Technologies Inc. ATI Radeon 3000 Graphics supported 1 1 4 ATI Radeon 3000 -ATI Technologies Inc. ATI Radeon 3000 Graphics (Engineering Sample - WDDM v1.1) supported 1 1 4 ATI Radeon 3000 -ATI Technologies Inc. ATI Radeon 3000 Series Graphics supported 1 1 4 ATI Radeon 3000 -ATI Technologies Inc. ATI Radeon 3100 Graphics supported 0 1 3.3 ATI Radeon 3100 -ATI Technologies Inc. ATI Radeon 3100 Graphics (Microsoft Corporation WDDM 1.1) supported 0 1 3.3 ATI Radeon 3100 -ATI Technologies Inc. ATI Radeon 3100 Series Graphics supported 0 1 3.3 ATI Radeon 3100 -ATI Technologies Inc. ATI Radeon 9550 / X1050 supported 0 1 2.1 ATI Radeon 9500 -ATI Technologies Inc. ATI Radeon 9550 / X1050 Series supported 0 1 2.1 ATI Radeon 9500 -ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/SSE2 supported 0 1 2.1 ATI Radeon 9500 -ATI Technologies Inc. ATI Radeon 9550 / X1050 Series(Microsoft Corporation - WDDM) supported 0 1 2.1 ATI Radeon 9500 -ATI Technologies Inc. ATI Radeon 9600 / X1050 Series supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. ATI Radeon 9600 / X1050 Series x86/SSE2 supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. ATI Radeon 9600/9550/X1050 Series supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. ATI Radeon BA Prototype OpenGL Engine supported 3 1 2.1 AMD BA (HD 6800) -ATI Technologies Inc. ATI Radeon Barts PRO Prototype OpenGL Engine supported 3 1 2.1 AMD BARTS (HD 6800) -ATI Technologies Inc. ATI Radeon Barts XT Prototype OpenGL Engine supported 3 1 2.1 AMD BARTS (HD 6800) -ATI Technologies Inc. ATI Radeon Caicos PRO Prototype OpenGL Engine supported 3 0 0 AMD CAICOS (HD 6400) -ATI Technologies Inc. ATI Radeon Caicos Unknown Prototype OpenGL Engine supported 3 0 0 AMD CAICOS (HD 6400) -ATI Technologies Inc. ATI Radeon Cedar PRO Prototype OpenGL Engine supported 2 0 2.1 AMD CEDAR (HD 5450) -ATI Technologies Inc. ATI Radeon Graphics Processor NO MATCH -ATI Technologies Inc. ATI Radeon HD 2350 supported 0 1 3.3 ATI Radeon HD 2300 -ATI Technologies Inc. ATI Radeon HD 2400 supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 OpenGL Engine supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 PCI supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 PRO supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 PRO AGP supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 Pro supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 Series supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 Series AGP supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 XT supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 XT OpenGL Engine supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2600 OpenGL Engine supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 PRO supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 PRO OpenGL Engine supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 Pro supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 Pro AGP supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 Series supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 Series AGP supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 XT supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600/3600 Series supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2900 GT supported 3 1 3.3 ATI Radeon HD 2900 -ATI Technologies Inc. ATI Radeon HD 2900 PRO supported 3 1 3.3 ATI Radeon HD 2900 -ATI Technologies Inc. ATI Radeon HD 2900 XT supported 3 1 3.3 ATI Radeon HD 2900 -ATI Technologies Inc. ATI Radeon HD 3200 Graphics supported 1 1 4 ATI Radeon HD 3200 -ATI Technologies Inc. ATI Radeon HD 3200 Graphics (Microsoft Corporation - WDDM v1.1) supported 1 1 4 ATI Radeon HD 3200 -ATI Technologies Inc. ATI Radeon HD 3200 Graphics (Microsoft Corporation WDDM 1.1) supported 1 1 4 ATI Radeon HD 3200 -ATI Technologies Inc. ATI Radeon HD 3300 Graphics supported 1 1 3.3 ATI Radeon HD 3300 -ATI Technologies Inc. ATI Radeon HD 3400 Series supported 1 1 4 ATI Radeon HD 3400 -ATI Technologies Inc. ATI Radeon HD 3450 supported 1 1 4 ATI Radeon HD 3400 -ATI Technologies Inc. ATI Radeon HD 3450 - Dell Optiplex supported 1 1 4 ATI Radeon HD 3400 -ATI Technologies Inc. ATI Radeon HD 3450 AGP supported 1 1 4 ATI Radeon HD 3400 -ATI Technologies Inc. ATI Radeon HD 3470 supported 1 1 4 ATI Radeon HD 3400 -ATI Technologies Inc. ATI Radeon HD 3470 - Dell Optiplex supported 1 1 4 ATI Radeon HD 3400 -ATI Technologies Inc. ATI Radeon HD 3600 Series supported 3 1 4 ATI Radeon HD 3600 -ATI Technologies Inc. ATI Radeon HD 3600 Series (Microsoft Corporation - WDDM v1.1) supported 3 1 4 ATI Radeon HD 3600 -ATI Technologies Inc. ATI Radeon HD 3600 Series (Microsoft Corporation WDDM 1.1) supported 3 1 4 ATI Radeon HD 3600 -ATI Technologies Inc. ATI Radeon HD 3650 supported 3 1 4 ATI Radeon HD 3600 -ATI Technologies Inc. ATI Radeon HD 3650 AGP supported 3 1 4 ATI Radeon HD 3600 -ATI Technologies Inc. ATI Radeon HD 3800 Series supported 3 1 4 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3850 supported 3 1 4 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3850 (Microsoft Corporation - WDDM v1.1) supported 3 1 4 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3850 AGP supported 3 1 4 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3870 supported 3 1 4 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3870 (Engineering Sample - WDDM v1.1) supported 3 1 4 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3870 (Microsoft Corporation - WDDM v1.1) supported 3 1 4 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3870 OpenGL Engine supported 3 1 4 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3870 X2 supported 3 1 4 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 4200 supported 1 1 4 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4200 (Microsoft Corporation - WDDM v1.1) supported 1 1 4 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4250 supported 1 1 4 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4250 (Engineering Sample - WDDM v1.1) supported 1 1 4 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4250 (Microsoft Corporation - WDDM v1.1) supported 1 1 4 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4250 Graphics supported 1 1 4 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4270 supported 1 1 4 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4290 supported 1 1 4 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4300 Series supported 2 1 4 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD 4300/4500 Series supported 2 1 4 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD 4300/4500 Series (Microsoft Corporation - WDDM v1.1) supported 2 1 4 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD 4300/4500 Series (Microsoft Corporation- WDDM v1.1) supported 2 1 4 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD 4350 supported 2 1 4 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD 4350 (Microsoft Corporation WDDM 1.1) supported 2 1 4 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD 4450 supported 2 0 0 ATI Radeon HD 4400 -ATI Technologies Inc. ATI Radeon HD 4500 Series supported 2 1 3.3 ATI Radeon HD 4500 -ATI Technologies Inc. ATI Radeon HD 4520 supported 2 1 3.3 ATI Radeon HD 4500 -ATI Technologies Inc. ATI Radeon HD 4550 supported 2 1 3.3 ATI Radeon HD 4500 -ATI Technologies Inc. ATI Radeon HD 4550 (Microsoft Corporation - WDDM v1.1) supported 2 1 3.3 ATI Radeon HD 4500 -ATI Technologies Inc. ATI Radeon HD 4570 supported 2 1 3.3 ATI Radeon HD 4500 -ATI Technologies Inc. ATI Radeon HD 4580 supported 2 1 3.3 ATI Radeon HD 4500 -ATI Technologies Inc. ATI Radeon HD 4590 supported 2 1 3.3 ATI Radeon HD 4500 -ATI Technologies Inc. ATI Radeon HD 4600 Series supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4600 Series (Engineering Sample - WDDM v1.1) supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4600 Series (Microsoft Corporation - WDDM v1.1) supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4600-serie (Microsoft Corporation - WDDM v1.1) supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4650 supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4650 (Microsoft Corporation WDDM 1.1) supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4670 supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4670 OpenGL Engine supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4700 supported 3 1 3.3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4700 Series supported 3 1 3.3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4720 supported 3 1 3.3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4730 supported 3 1 3.3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4730 Series supported 3 1 3.3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4770 supported 3 1 3.3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4800 supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4800 Series supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4800 Series (Microsoft Corporation - WDDM v1.1) supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4810 series supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4830 supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4850 supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4850 OpenGL Engine supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4850 PRO OpenGL Engine supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4850 Series supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4850 X2 supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4870 supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4870 OpenGL Engine supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4870 Series supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4870 X2 supported 3 1 4 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 5400 Series supported 3 1 4.2 ATI Radeon HD 5400 -ATI Technologies Inc. ATI Radeon HD 5450 supported 3 1 4.2 ATI Radeon HD 5400 -ATI Technologies Inc. ATI Radeon HD 5450 (Microsoft Corporation - WDDM v1.20) supported 3 1 4.2 ATI Radeon HD 5400 -ATI Technologies Inc. ATI Radeon HD 5470 supported 3 1 4.2 ATI Radeon HD 5400 -ATI Technologies Inc. ATI Radeon HD 5500 supported 3 1 4.2 ATI Radeon HD 5500 -ATI Technologies Inc. ATI Radeon HD 5500 Series supported 3 1 4.2 ATI Radeon HD 5500 -ATI Technologies Inc. ATI Radeon HD 5530 supported 3 1 4.2 ATI Radeon HD 5500 -ATI Technologies Inc. ATI Radeon HD 5570 supported 3 1 4.2 ATI Radeon HD 5500 -ATI Technologies Inc. ATI Radeon HD 5600 Series supported 3 1 4.2 ATI Radeon HD 5600 -ATI Technologies Inc. ATI Radeon HD 5600/5700 supported 3 1 4.2 ATI Radeon HD 5600 -ATI Technologies Inc. ATI Radeon HD 5630 supported 3 1 4.2 ATI Radeon HD 5600 -ATI Technologies Inc. ATI Radeon HD 5670 supported 3 1 4.2 ATI Radeon HD 5600 -ATI Technologies Inc. ATI Radeon HD 5670 OpenGL Engine supported 3 1 4.2 ATI Radeon HD 5600 -ATI Technologies Inc. ATI Radeon HD 5700 Series supported 3 1 4.2 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5700 Series (Microsoft Corporation - WDDM v1.2) supported 3 1 4.2 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5700 Series (Microsoft Corporation - WDDM v1.20) supported 3 1 4.2 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5750 supported 3 1 4.2 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5750 OpenGL Engine supported 3 1 4.2 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5750 Series supported 3 1 4.2 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5770 supported 3 1 4.2 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5770 OpenGL Engine supported 3 1 4.2 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5800 Series supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Radeon HD 5850 supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Radeon HD 5870 supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Radeon HD 5870 OpenGL Engine supported 4 1 4.2 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Radeon HD 5900 Series supported 4 1 4.2 ATI Radeon HD 5900 -ATI Technologies Inc. ATI Radeon HD 5970 supported 4 1 4.2 ATI Radeon HD 5900 -ATI Technologies Inc. ATI Radeon HD 6230 supported 0 1 4.2 ATI Radeon HD 6200 -ATI Technologies Inc. ATI Radeon HD 6290 supported 0 1 4.2 ATI Radeon HD 6200 -ATI Technologies Inc. ATI Radeon HD 6350 supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. ATI Radeon HD 6390 supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. ATI Radeon HD 6490 supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. ATI Radeon HD 6490M OpenGL Engine supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. ATI Radeon HD 6510 supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. ATI Radeon HD 6570M supported 3 1 4.2 ATI Radeon HD 6500 -ATI Technologies Inc. ATI Radeon HD 6630M OpenGL Engine supported 3 1 4.2 ATI Radeon HD 6600 -ATI Technologies Inc. ATI Radeon HD 6750M OpenGL Engine supported 3 1 4.2 ATI Radeon HD 6700 -ATI Technologies Inc. ATI Radeon HD 6770 supported 3 1 4.2 ATI Radeon HD 6700 -ATI Technologies Inc. ATI Radeon HD 6770M OpenGL Engine supported 3 1 4.2 ATI Radeon HD 6700 -ATI Technologies Inc. ATI Radeon HD 6970M OpenGL Engine supported 5 1 4.2 ATI Radeon HD 6900 -ATI Technologies Inc. ATI Radeon HD 7350 supported 2 0 4.2 ATI Radeon HD 7300 -ATI Technologies Inc. ATI Radeon HD 7950 OpenGL Engine supported 5 1 4.2 ATI Radeon HD 7900 -ATI Technologies Inc. ATI Radeon HD Pitcairn XT Prototype OpenGL Engine supported 3 0 2.1 AMD PITCAIRN (HD 7870) -ATI Technologies Inc. ATI Radeon HD Tahiti XT Prototype OpenGL Engine supported 3 0 2.1 AMD TAHITI (HD 7000) -ATI Technologies Inc. ATI Radeon HD Verde XT Prototype OpenGL Engine unsupported 0 0 0 ATI Radeon VE -ATI Technologies Inc. ATI Radeon HD3750 supported 3 0 3.3 ATI Radeon HD 3700 -ATI Technologies Inc. ATI Radeon HD4300/HD4500 series supported 2 1 4 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD4650 supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD4670 supported 3 1 4 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon RV730 Prototype OpenGL Engine supported 3 0 1.4 AMD RV730 (HD 4600) -ATI Technologies Inc. ATI Radeon RV790 Prototype OpenGL Engine supported 3 0 0 AMD RV790 (HD 4800) -ATI Technologies Inc. ATI Radeon Redwood XT Prototype OpenGL Engine supported 3 0 1.4 AMD REDWOOD (HD 5500/5600) -ATI Technologies Inc. ATI Radeon Turks PRO Prototype OpenGL Engine supported 3 0 2.1 AMD TURKS (HD 6500/6600) -ATI Technologies Inc. ATI Radeon Turks XT Prototype OpenGL Engine supported 3 0 2.1 AMD TURKS (HD 6500/6600) -ATI Technologies Inc. ATI Radeon X1050 supported 2 0 2.1 ATI Radeon X1000 -ATI Technologies Inc. ATI Radeon X1050 Series supported 2 0 2.1 ATI Radeon X1000 -ATI Technologies Inc. ATI Radeon X1050 x86/MMX/3DNow!/SSE2 supported 2 0 2.1 ATI Radeon X1000 -ATI Technologies Inc. ATI Radeon X1050 x86/SSE2 supported 2 0 2.1 ATI Radeon X1000 -ATI Technologies Inc. ATI Radeon X1200 supported 2 0 2.1 ATI Radeon X1200 -ATI Technologies Inc. ATI Radeon X1200 Series supported 2 0 2.1 ATI Radeon X1200 -ATI Technologies Inc. ATI Radeon X1200 Series (Microsoft Corporation - WDDM) supported 2 0 2.1 ATI Radeon X1200 -ATI Technologies Inc. ATI Radeon X1200 Series x86/MMX/3DNow!/SSE2 supported 2 0 2.1 ATI Radeon X1200 -ATI Technologies Inc. ATI Radeon X1200 x86/MMX/3DNow!/SSE2 supported 2 0 2.1 ATI Radeon X1200 -ATI Technologies Inc. ATI Radeon X1250 supported 2 0 2.1 ATI Radeon X1200 -ATI Technologies Inc. ATI Radeon X1250 x86/MMX/3DNow!/SSE2 supported 2 0 2.1 ATI Radeon X1200 -ATI Technologies Inc. ATI Radeon X1270 supported 2 0 2.1 ATI Radeon X1200 -ATI Technologies Inc. ATI Radeon X1270 x86/MMX/3DNow!/SSE2 supported 2 0 2.1 ATI Radeon X1200 -ATI Technologies Inc. ATI Radeon X1300 / X1550 Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ATI Radeon X1300/X1550 Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. ATI Radeon X1550 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. ATI Radeon X1550 Series supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. ATI Radeon X1550 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. ATI Radeon X1550 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. ATI Radeon X1550 x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. ATI Radeon X1550 x86/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. ATI Radeon X1600 OpenGL Engine supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. ATI Radeon X1900 OpenGL Engine supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. ATI Radeon X1950 GT supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. ATI Radeon X1950 GT x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. ATI Radeon X1950 GT x86/SSE2 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. ATI Radeon X300/X550/X1050 Series supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. ATI Radeon X600/X550/X1050 Series supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. ATI Radeon Xpress 1100 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1100 x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1150 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1150 Series supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1150 x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1200 Series supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1200 Series (Microsoft Corporation - WDDM) supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1200 Series x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1200 x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1250 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1250 x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1250 x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1270 x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress Series supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress Series x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. All-in-Wonder 2006 PCI-E Edition supported 1 0 0 ATI All-in-Wonder PCI-E -ATI Technologies Inc. All-in-Wonder 2006 PCI-E Edition x86/MMX/3DNow!/SSE2 supported 1 0 0 ATI All-in-Wonder PCI-E -ATI Technologies Inc. Diamond Radeon X1550 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. Diamond Radeon X1550 Series supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. Diamond Radeon X1550 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. Diamond Radeon X1550 x86/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. Diamond X1600 PRO 512MB PCI-E x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. FireGL V3100 Pentium 4 (SSE2) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. FireGL V3200 Pentium 4 (SSE2) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. FireGL X1-128 supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. FireMV 2400 PCI DDR x86 supported 0 1 3.2 ATI FireMV -ATI Technologies Inc. FireMV 2400 PCI DDR x86/SSE2 supported 0 1 3.2 ATI FireMV -ATI Technologies Inc. FirePro M3900 Mobility Professional Graphics supported 2 0 4.1 ATI FirePro M3900 -ATI Technologies Inc. GIGABYTE RADEON 9600 PRO supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. GIGABYTE Radeon X1300 Pro supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. GIGABYTE Radeon X1300 Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. GIGABYTE Radeon X1600 PRO supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. GeCube RADEON 9600XT supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. GeCube RADEON X550 x86/SSE2 supported 1 1 2.1 ATI Radeon X500 -ATI Technologies Inc. GeCube RADEON X700 Series supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. GeCube Radeon X1550 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. GeCube Radeon X1550 Series supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. GeForce 9600 GT x86/SSE2 unsupported 0 0 0 ATI GeForce Lulz -ATI Technologies Inc. GigaByte Radeon X1050 supported 2 0 2.1 ATI Radeon X1000 -ATI Technologies Inc. Gigabyte RADEON X300 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. Gigabyte RADEON X300 SE supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. Gigabyte RADEON X300 x86/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. HD3730 supported 3 0 3.3 ATI HD3700 -ATI Technologies Inc. HIGHTECH EXCALIBUR RADEON 9550SE Series supported 0 1 2.1 ATI Radeon 9500 -ATI Technologies Inc. HIGHTECH EXCALIBUR RADEON 9550SE Series x86/SSE2 supported 0 1 2.1 ATI Radeon 9500 -ATI Technologies Inc. HIGHTECH RADEON 9600XT supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. HIS Radeon X1550 x86/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. M52 x86 supported 1 0 0 ATI M52 -ATI Technologies Inc. M72-M supported 1 0 0 ATI M72 -ATI Technologies Inc. MEDION RADEON 9600 TX supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. MEDION RADEON X740XL x86/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. MOBILITY FIREGL T2 Pentium 4 (SSE2) supported 4 1 4.2 ATI FireGL -ATI Technologies Inc. MOBILITY RADEON 7000 IGP DDR x86/SSE2 supported 0 1 1.3 ATI Mobility Radeon 7xxx -ATI Technologies Inc. MOBILITY RADEON 7500 DDR x86/SSE2 supported 0 1 1.3 ATI Mobility Radeon 7xxx -ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. MOBILITY RADEON 9000/9100 IGP Series DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. MOBILITY RADEON 9000/9100 PRO IGP Series DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. MOBILITY RADEON 9200 DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. MOBILITY RADEON 9600 x86 supported 1 1 2.1 ATI Mobility Radeon 9600 -ATI Technologies Inc. MOBILITY RADEON 9600 x86/MMX/3DNow!/SSE2 supported 1 1 2.1 ATI Mobility Radeon 9600 -ATI Technologies Inc. MOBILITY RADEON 9600 x86/SSE2 supported 1 1 2.1 ATI Mobility Radeon 9600 -ATI Technologies Inc. MOBILITY RADEON 9700 x86 supported 0 1 2.1 ATI Mobility Radeon 9700 -ATI Technologies Inc. MOBILITY RADEON 9700 x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Mobility Radeon 9700 -ATI Technologies Inc. MOBILITY RADEON 9700 x86/SSE2 supported 0 1 2.1 ATI Mobility Radeon 9700 -ATI Technologies Inc. MOBILITY RADEON 9800 x86/SSE2 supported 1 0 0 ATI Mobility Radeon 9800 -ATI Technologies Inc. MOBILITY RADEON X300 x86 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. MOBILITY RADEON X300 x86/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. MOBILITY RADEON X600 SE x86/SSE2 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. MOBILITY RADEON X600 x86 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. MOBILITY RADEON X600 x86/SSE2 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. MOBILITY RADEON X700 SE x86/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. MOBILITY RADEON X700 x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. MOBILITY RADEON X700 x86/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. MOBILITY RADEON Xpress 200 Series SW TCL x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. MOBILITY/RADEON 9000 DDR x86/MMX/3DNow!/SSE2 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. MOBILITY/RADEON 9000 DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. MOBILITY/RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. MOBILITY/RADEON 9250/9200 Series DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. MSI RX9550SE x86/MMX/3DNow!/SSE supported 1 0 0 ATI Radeon RX9550 -ATI Technologies Inc. MSI Radeon X1550 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. Mobility Radeon X2300 HD supported 2 0 2.1 ATI Mobility Radeon X2300 -ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2 supported 2 0 2.1 ATI Mobility Radeon X2300 -ATI Technologies Inc. RADEON 7000 DDR x86/MMX/3DNow!/SSE2 supported 0 1 2 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 7000 DDR x86/SSE2 supported 0 1 2 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 7000 SDR x86 supported 0 1 2 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 7000 SW TCL x86/SSE2 supported 0 1 2 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 7200 DDR x86/MMX/3DNow!/SSE2 supported 0 1 2 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 7200 DDR x86/SSE2 supported 0 1 2 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 7200 SDR x86/SSE2 supported 0 1 2 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 7500 DDR x86/SSE2 supported 0 1 2 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 8500 DDR x86/MMX/3DNow!/SSE2 supported 0 0 0 ATI Radeon 8xxx -ATI Technologies Inc. RADEON 8500 DDR x86/SSE2 supported 0 0 0 ATI Radeon 8xxx -ATI Technologies Inc. RADEON 9000 DDR x86/MMX/3DNow!/SSE2 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. RADEON 9000 DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. RADEON 9000 PRO DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. RADEON 9000 XT IGPRADEON 9100 XT IGP DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9000 -ATI Technologies Inc. RADEON 9100 DDR x86/MMX/3DNow!/SSE2 supported 0 0 0 ATI Radeon 9100 -ATI Technologies Inc. RADEON 9100 DDR x86/SSE2 supported 0 0 0 ATI Radeon 9100 -ATI Technologies Inc. RADEON 9100 IGP DDR x86 supported 0 0 0 ATI Radeon 9100 -ATI Technologies Inc. RADEON 9100 IGP DDR x86/SSE2 supported 0 0 0 ATI Radeon 9100 -ATI Technologies Inc. RADEON 9200 DDR x86/MMX/3DNow!/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 LE DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 PRO DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 Series DDR x86 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow! supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200SE DDR x86/MMX/3DNow!/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200SE DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9250/9000 Series DDR x86/MMX/3DNow!/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9500 supported 0 1 2.1 ATI Radeon 9500 -ATI Technologies Inc. RADEON 9500 PRO / 9700 supported 0 1 2.1 ATI Radeon 9500 -ATI Technologies Inc. RADEON 9550 supported 0 1 2.1 ATI Radeon 9500 -ATI Technologies Inc. RADEON 9550 x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon 9500 -ATI Technologies Inc. RADEON 9550 x86/SSE2 supported 0 1 2.1 ATI Radeon 9500 -ATI Technologies Inc. RADEON 9600 SERIES supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600 TX supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600 TX x86/SSE2 supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600 XT x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600 XT x86/SSE2 supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600 x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600 x86/SSE2 supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600SE x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600SE x86/SSE2 supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9700 PRO supported 1 0 0 ATI Radeon 9700 -ATI Technologies Inc. RADEON 9800 PRO supported 1 1 2.1 ATI Radeon 9800 -ATI Technologies Inc. RADEON 9800 PRO (Microsoft Corporation - WDDM) supported 1 1 2.1 ATI Radeon 9800 -ATI Technologies Inc. RADEON 9800 PRO - Secondary supported 1 1 2.1 ATI Radeon 9800 -ATI Technologies Inc. RADEON 9800 Pro x86/SSE2 supported 1 1 2.1 ATI Radeon 9800 -ATI Technologies Inc. RADEON 9800 SERIES supported 1 1 2.1 ATI Radeon 9800 -ATI Technologies Inc. RADEON 9800 XT supported 1 1 2.1 ATI Radeon 9800 -ATI Technologies Inc. RADEON 9800 XT x86/SSE2 supported 1 1 2.1 ATI Radeon 9800 -ATI Technologies Inc. RADEON 9800 x86/SSE2 supported 1 1 2.1 ATI Radeon 9800 -ATI Technologies Inc. RADEON IGP 340M DDR x86/SSE2 unsupported 0 0 1.3 ATI IGP 340M -ATI Technologies Inc. RADEON Radeon X300/X550/X1050 Series x86/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. RADEON X1600 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. RADEON X1600 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. RADEON X300 SE 128MB HyperMemory x86/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. RADEON X300 SE x86/MMX/3DNow!/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. RADEON X300 Series supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. RADEON X300 Series x86/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. RADEON X300 x86/MMX/3DNow!/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. RADEON X300 x86/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. RADEON X300/X550 Series x86 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. RADEON X300/X550 Series x86/MMX/3DNow!/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. RADEON X300/X550 Series x86/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. RADEON X550 x86/MMX/3DNow! supported 1 1 2.1 ATI Radeon X500 -ATI Technologies Inc. RADEON X550 x86/MMX/3DNow!/SSE2 supported 1 1 2.1 ATI Radeon X500 -ATI Technologies Inc. RADEON X550 x86/SSE2 supported 1 1 2.1 ATI Radeon X500 -ATI Technologies Inc. RADEON X550XT supported 1 1 2.1 ATI Radeon X500 -ATI Technologies Inc. RADEON X600 256MB HyperMemory x86/SSE2 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600 PRO x86/MMX/3DNow!/SSE2 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600 PRO x86/SSE2 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600 SE x86/SSE2 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600 Series supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600 x86/MMX/3DNow!/SSE2 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600 x86/SSE2 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600/X550 Series supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600/X550 Series (Microsoft Corporation - WDDM) supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600/X550 Series Secondary supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600/X550 Series x86/SSE2 supported 1 1 2.1 ATI Radeon X600 -ATI Technologies Inc. RADEON X700 PRO x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. RADEON X700 PRO x86/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. RADEON X700 SE supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. RADEON X700 SE x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. RADEON X700 SE x86/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. RADEON X700 Series supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. RADEON X700 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. RADEON X700 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. RADEON X700 x86/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. RADEON X700/X550 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X700 -ATI Technologies Inc. RADEON X800 GT x86/MMX/3DNow!/SSE2 supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 GTO supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 GTO x86/MMX/3DNow!/SSE2 supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 GTO x86/SSE2 supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 PRO/GTO supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 SE x86/MMX/3DNow!/SSE2 supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 SE x86/SSE2 supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 Series supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 XL x86/MMX/3DNow!/SSE2 supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 XL x86/SSE2 supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 XT supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 XT (Microsoft Corporation - WDDM) supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 XT x86/SSE2 supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800/X850 Series supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X800GT supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X850 Series supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X850 XT Platinum Edition (Microsoft Corporation - WDDM) supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X850 XT Platinum Edition x86/SSE2 supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON X850 XT x86/SSE2 supported 1 1 2.1 ATI Radeon X800 -ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/MMX/3DNow! supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200 Series x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200 Series x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series (Microsoft Corporation - WDDM) supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/MMX/3DNow! supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series x86/MMX/3DNow! supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS Series x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS Series x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON Xpress 200 Series SW TCL x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. RADEON Xpress 200G Series SW TCL x86/MMX/3DNow!/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. ROBSON CE supported 3 0 4 ATI ROBSON -ATI Technologies Inc. ROBSON LE supported 3 0 4 ATI ROBSON -ATI Technologies Inc. RS780M supported 0 1 2.1 AMD RS780 (HD 3200) -ATI Technologies Inc. RS880 supported 0 1 3.2 AMD RS880 (HD 4200) -ATI Technologies Inc. RV250 DDR x86/SSE2 supported 0 0 0 ATI Radeon RV250 -ATI Technologies Inc. Radeon X1300XT/X1600 Pro Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300XT/X1600Pro/X1650 Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon (TM) HD 7670M supported 3 0 4.2 ATI Radeon HD 7600 -ATI Technologies Inc. Radeon (TM) HD 6370M supported 1 1 4.2 ATI Radeon HD 6300 -ATI Technologies Inc. Radeon (TM) HD 6470M supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. Radeon (TM) HD 6490M supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. Radeon (TM) HD 6630M supported 3 1 4.2 ATI Radeon HD 6600 -ATI Technologies Inc. Radeon (TM) HD 6750M supported 3 1 4.2 ATI Radeon HD 6700 -ATI Technologies Inc. Radeon (TM) HD 6770M supported 3 1 4.2 ATI Radeon HD 6700 -ATI Technologies Inc. Radeon (TM) HD 6850M supported 4 1 4.2 ATI Radeon HD 6800 -ATI Technologies Inc. Radeon (TM) HD 7450M supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. Radeon (TM) HD 7470M supported 2 0 4.2 ATI Radeon HD 7400 -ATI Technologies Inc. Radeon (TM) HD 7670M supported 3 0 4.2 ATI Radeon HD 7600 -ATI Technologies Inc. Radeon (TM) HD 7690M XT supported 3 0 4.2 ATI Radeon HD 7600 -ATI Technologies Inc. Radeon (TM) HD 7750M supported 4 1 4.2 ATI Radeon HD 7700 -ATI Technologies Inc. Radeon (TM) HD 7850M supported 5 1 4.2 ATI Radeon HD 7800 -ATI Technologies Inc. Radeon (TM) HD 8750M supported 4 1 4.2 ATI Radeon HD 8700 (OEM) -ATI Technologies Inc. Radeon 7000 DDR x86/SSE2 supported 0 1 2 ATI Radeon 7xxx -ATI Technologies Inc. Radeon 7500 DDR x86 supported 0 1 2 ATI Radeon 7xxx -ATI Technologies Inc. Radeon 7500 DDR x86/SSE2 supported 0 1 2 ATI Radeon 7xxx -ATI Technologies Inc. Radeon 9100 DDR x86/MMX/3DNow!/SSE2 supported 0 0 0 ATI Radeon 9100 -ATI Technologies Inc. Radeon 9200 DDR x86/SSE2 supported 0 1 1.3 ATI Radeon 9200 -ATI Technologies Inc. Radeon HD 2600 PRO (Omega 3.8.442) supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. Radeon HD 6470M supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. Radeon HD 6490M supported 3 1 4.2 ATI Radeon HD 6400 -ATI Technologies Inc. Radeon HD 6800 Series supported 4 1 4.2 ATI Radeon HD 6800 -ATI Technologies Inc. Radeon Radeon X300/X550/X1050 Series x86/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. Radeon X1050 supported 2 0 2.1 ATI Radeon X1000 -ATI Technologies Inc. Radeon X1050 Series (Omega 3.8.442) supported 2 0 2.1 ATI Radeon X1000 -ATI Technologies Inc. Radeon X1200 Series (Omega 3.8.442) supported 2 0 2.1 ATI Radeon X1200 -ATI Technologies Inc. Radeon X1300 / X1550 Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300 / X1550 Series (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300 / X1550 Series (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300 / X1600 Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300 Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300/X1550 Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300/X1550 Series (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300/X1550 Series (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300/X1550 Series (Omega 3.8.442) supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300/X1550 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1300/X1550 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Radeon X1550 64-bit (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. Radeon X1550 64-bit x86/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. Radeon X1550 Series supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. Radeon X1550 Series (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. Radeon X1550 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. Radeon X1550 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. Radeon X1600 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1600 Pro / X1300XT supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1600 Pro / X1300XT x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1600 Series supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1600 Series (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1600 Series (Omega 3.8.442) supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1600 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1600 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1600 x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1600/1650 Series supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1600/X1650 Series supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1600/X1650 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1650 GTO supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1650 SE supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1650 SE x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1650 Series supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1650 Series (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1650 Series (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1650 Series (Omega 3.8.442) supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1650 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1650 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1650/X1700 Series (Omega 3.8.442) supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Radeon X1700 FSC supported 2 1 2.1 ATI Radeon X1700 -ATI Technologies Inc. Radeon X1800 CrossFire Edition supported 3 1 2.1 ATI Radeon X1800 -ATI Technologies Inc. Radeon X1800 Series supported 3 1 2.1 ATI Radeon X1800 -ATI Technologies Inc. Radeon X1800 Series x86/MMX/3DNow!/SSE2 supported 3 1 2.1 ATI Radeon X1800 -ATI Technologies Inc. Radeon X1900 CrossFire Edition supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1900 GT supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1900 GT x86/SSE2 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1900 Series supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1900 Series (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1900 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1900 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1950 CrossFire Edition supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1950 Pro supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1950 Pro (Omega 3.8.442) supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1950 Pro x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1950 Pro x86/SSE2 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1950 Series supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1950 Series (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1950 Series (Microsoft Corporation - WDDM) supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1950 Series x86/MMX/3DNow!/SSE2 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X1950 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1900 -ATI Technologies Inc. Radeon X300/X550/X1050 Series supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. Radeon X300/X550/X1050 Series (Microsoft Corporation - WDDM) supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. Radeon X300/X550/X1050 Series (Microsoft Corporation - WDDM) supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. Radeon X300/X550/X1050 Series (Omega 3.8.442) supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. Radeon X300/X550/X1050 Series x86/SSE2 supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. Radeon X550/X700 Series supported 1 1 2.1 ATI Radeon X500 -ATI Technologies Inc. Radeon X550XTX supported 1 1 2.1 ATI Radeon X500 -ATI Technologies Inc. Radeon Xpress 200 Series (Omega 3.8.442) x86/SSE2 supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. Radeon Xpress 200M Series (Omega 3.8.442) supported 0 1 2.1 ATI Radeon Xpress -ATI Technologies Inc. SAPPHIRE RADEON 9600 ATLANTIS supported 0 1 2.1 ATI Radeon 9600 -ATI Technologies Inc. SAPPHIRE RADEON X300SE supported 1 1 2.1 ATI Radeon X300 -ATI Technologies Inc. SAPPHIRE Radeon X1550 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. SAPPHIRE Radeon X1550 Series supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/SSE2 supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. SUMO 9640 supported 3 1 4.1 AMD SUMO -ATI Technologies Inc. SUMO 964A supported 3 1 4.1 AMD SUMO -ATI Technologies Inc. Sapphire RADEON X1600 PRO supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Sapphire RADEON X1600 PRO x86/SSE2 supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Sapphire RADEON X1600 XT supported 2 1 2.1 ATI Radeon X1600 -ATI Technologies Inc. Tul Corporation, RADEON X1300 Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. Tul Corporation, RADEON X300SE supported 1 1 2.1 ATI RADEON X300SE -ATI Technologies Inc. VisionTek Radeon 4350 supported 2 1 4 ATI Radeon HD 4300 -ATI Technologies Inc. VisionTek Radeon HD 2400 PCI supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. VisionTek Radeon HD 2600 XT AGP supported 2 1 4 ATI Radeon HD 2600 -ATI Technologies Inc. VisionTek Radeon HD 5450 supported 3 1 4.2 ATI Radeon HD 5400 -ATI Technologies Inc. VisionTek Radeon HD2400 Pro AGP supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. VisionTek Radeon HD2400 Pro PCI supported 1 1 4 ATI Radeon HD 2400 -ATI Technologies Inc. VisionTek Radeon X1300 supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. VisionTek Radeon X1300 Series supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. VisionTek Radeon X1300 XGE supported 2 1 2.1 ATI Radeon X1300 -ATI Technologies Inc. VisionTek Radeon X1550 Series supported 2 1 2.1 ATI Radeon X1500 -ATI Technologies Inc. WRESTLER 9802 supported 3 1 4 AMD WRESTLER -ATI Technologies Inc. XFX Radeon HD 4570 supported 2 1 3.3 ATI Radeon HD 4500 -Advanced Micro Devices, Inc. Mesa DRI R600 (RS880 9712) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 0 1 3.2 AMD RS880 (HD 4200) -Alex Mohr GL Hijacker! unsupported 0 0 0 Hijacker -Brian Paul Mesa X11 unsupported 1 1 3 Mesa -Gallium supported 1 1 2.1 Gallium -Humper supported 0 1 2.1 Humper -Humper Chromium supported 0 1 2.1 Humper -Imagination Technologies 3D-Analyze v2.3 - http://www.tommti-systems.com unsupported 0 0 0 ATI 3D-Analyze -Imagination Technologies PowerVR SGX545 supported 1 1 3 PowerVR SGX545 -Intel NO MATCH -Intel 3D-Analyze v2.3 - http://www.tommti-systems.com supported 2 0 0 Intel 3D-Analyze -Intel 4 Series Internal supported 1 1 2.1 Intel 4 Series Internal -Intel 845G unsupported 0 1 1.4 Intel 845G -Intel 855GM unsupported 0 1 1.4 Intel 855GM -Intel 865G unsupported 0 1 1.4 Intel 865G -Intel 915G unsupported 0 1 1.4 Intel 915G -Intel 915GM unsupported 0 1 1.4 Intel 915GM -Intel 945G supported 0 1 1.4 Intel 945G -Intel 945GM supported 0 1 1.4 Intel 945GM -Intel 950 supported 0 1 1.4 Intel 950 -Intel 965 supported 0 1 2.1 Intel 965 -Intel Bear Lake unsupported 1 1 1.4 Intel Bear Lake -Intel Broadwater unsupported 0 1 1.4 Intel Broadwater -Intel Brookdale unsupported 0 1 1.3 Intel Brookdale -Intel Cantiga unsupported 0 1 2 Intel Cantiga -Intel Corporation Intel(R) Graphics Media Accelerator 3600 Series supported 0 1 3 Intel GMA 3600 -Intel Eaglelake supported 1 1 2 Intel Eaglelake -Intel G33 unsupported 1 1 1.4 Intel G33 -Intel G41 supported 1 1 2.1 Intel G41 -Intel G45 supported 1 1 2.1 Intel G45 -Intel Graphics Media HD supported 1 1 2.1 Intel Graphics Media HD -Intel HD Graphics supported 2 1 4 Intel HD Graphics -Intel HD Graphics 2000 supported 2 0 3.1 Intel HD Graphics 2000 -Intel HD Graphics 3000 supported 3 1 3.1 Intel HD Graphics 3000 -Intel HD Graphics 4000 supported 3 1 4.2 Intel HD Graphics 4000 -Intel Inc. Intel GMA 950 OpenGL Engine supported 0 1 1.4 Intel 950 -Intel Inc. Intel GMA X3100 OpenGL Engine supported 1 1 2.1 Intel X3100 -Intel Inc. Intel HD Graphics 3000 OpenGL Engine supported 3 1 3.1 Intel HD Graphics 3000 -Intel Inc. Intel HD Graphics 4000 OpenGL Engine supported 3 1 4.2 Intel HD Graphics 4000 -Intel Inc. Intel HD Graphics 5000 OpenGL Engine supported 4 0 4 Intel HD Graphics 5000 -Intel Inc. Intel HD Graphics OpenGL Engine supported 2 1 4 Intel HD Graphics -Intel Intel 845G unsupported 0 1 1.4 Intel 845G -Intel Intel 855GM unsupported 0 1 1.4 Intel 855GM -Intel Intel 865G unsupported 0 1 1.4 Intel 865G -Intel Intel 915G unsupported 0 1 1.4 Intel 915G -Intel Intel 915GM unsupported 0 1 1.4 Intel 915GM -Intel Intel 945G supported 0 1 1.4 Intel 945G -Intel Intel 945GM supported 0 1 1.4 Intel 945GM -Intel Intel 965/963 Graphics Media Accelerator supported 0 1 2.1 Intel 965 -Intel Intel Bear Lake B unsupported 1 1 1.4 Intel Bear Lake -Intel Intel Broadwater G unsupported 0 1 1.4 Intel Broadwater -Intel Intel Brookdale-G unsupported 0 1 1.3 Intel Brookdale -Intel Intel Cantiga unsupported 0 1 2 Intel Cantiga -Intel Intel Eaglelake supported 1 1 2 Intel Eaglelake -Intel Intel Grantsdale-G supported 1 0 0 Intel Grantsdale -Intel Intel Iris Pro Graphics 5200 supported 4 0 4 Intel Intel Iris Pro Graphics 5200 -Intel Intel Montara-GM unsupported 0 1 1.3 Intel Montara -Intel Intel Pineview Platform supported 0 1 1.4 Intel Pineview -Intel Intel Springdale-G unsupported 0 1 1.3 Intel Springdale -Intel Intel(R) HD Graphics Family supported 2 1 4 Intel HD Graphics -Intel Intel(R) 4 Series Internal Chipset supported 1 1 2.1 Intel 4 Series Internal -Intel Intel(R) B43 Express Chipset supported 1 1 2.1 Intel B45/B43 -Intel Intel(R) G41 Express Chipset supported 1 1 2.1 Intel G41 -Intel Intel(R) G41 Express Chipset (Microsoft Corporation - WDDM 1.1) supported 1 1 2.1 Intel G41 -Intel Intel(R) G41 Express Chipset v2 supported 1 1 2.1 Intel G41 -Intel Intel(R) G45/G43 Express Chipset supported 1 1 2.1 Intel G45 -Intel Intel(R) G45/G43/G41 Express Chipset supported 1 1 2.1 Intel G41 -Intel Intel(R) Graphics Media Accelerator HD supported 1 1 2.1 Intel Graphics Media HD -Intel Intel(R) HD Graphics supported 2 1 4 Intel HD Graphics -Intel Intel(R) HD Graphics 100 supported 2 1 4 Intel HD Graphics -Intel Intel(R) HD Graphics 2000 supported 2 0 3.1 Intel HD Graphics 2000 -Intel Intel(R) HD Graphics 2500 supported 2 0 4.2 Intel HD Graphics 2500 -Intel Intel(R) HD Graphics 3000 supported 3 1 3.1 Intel HD Graphics 3000 -Intel Intel(R) HD Graphics 4000 supported 3 1 4.2 Intel HD Graphics 4000 -Intel Intel(R) HD Graphics 4400 supported 3 0 4.2 Intel HD Graphics 4400 -Intel Intel(R) HD Graphics 4600 supported 3 0 4.2 Intel HD Graphics 4600 -Intel Intel(R) HD Graphics 5000 supported 4 0 4 Intel HD Graphics 5000 -Intel Intel(R) HD Graphics BR-1004-01Y1 supported 2 1 4 Intel HD Graphics -Intel Intel(R) HD Graphics Family supported 2 1 4 Intel HD Graphics -Intel Intel(R) HD Graphics P3000 supported 2 1 4 Intel HD Graphics -Intel Intel(R) HD Graphics P4000 supported 2 1 4 Intel HD Graphics -Intel Intel(R) Q45/Q43 Express Chipset supported 1 1 2.1 Intel Q45/Q43 -Intel Iris OpenGL Graphics Engine supported 4 0 4 Intel Intel Iris OpenGL Engine -Intel Mobile 4 Series supported 0 1 2.1 Intel Mobile 4 Series -Intel Mobile Intel(R) 4 Series Express Chipset Family supported 0 1 2.1 Intel Mobile 4 Series -Intel Mobile Intel(R) 4 Series Express Chipset Family v2 supported 0 1 2.1 Intel Mobile 4 Series -Intel Mobile Intel(R) 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1) supported 0 0 2.1 Intel Mobile 45 Express -Intel Mobile Intel(R) HD Graphics supported 2 1 4 Intel HD Graphics -Intel Montara unsupported 0 1 1.3 Intel Montara -Intel Open Source Technology Center Mesa DRI Intel(R) 852GM/855GM x86/MMX/SSE2 unsupported 0 1 1.4 Intel 855GM -Intel Open Source Technology Center Mesa DRI Intel(R) 915G unsupported 0 1 1.4 Intel 915G -Intel Open Source Technology Center Mesa DRI Intel(R) 915G x86/MMX/SSE2 unsupported 0 1 1.4 Intel 915G -Intel Open Source Technology Center Mesa DRI Intel(R) 915GM x86/MMX/SSE2 unsupported 0 1 1.4 Intel 915GM -Intel Open Source Technology Center Mesa DRI Intel(R) 945G supported 0 1 1.4 Intel 945G -Intel Open Source Technology Center Mesa DRI Intel(R) 945G x86/MMX/SSE2 supported 0 1 1.4 Intel 945G -Intel Open Source Technology Center Mesa DRI Intel(R) 945GM supported 0 1 1.4 Intel 945GM -Intel Open Source Technology Center Mesa DRI Intel(R) 945GM x86/MMX/SSE2 supported 0 1 1.4 Intel 945GM -Intel Open Source Technology Center Mesa DRI Intel(R) 945GME x86/MMX/SSE2 supported 0 1 1.4 Intel 945GM -Intel Open Source Technology Center Mesa DRI Intel(R) 965G x86/MMX/SSE2 supported 0 1 2.1 Intel 965 -Intel Open Source Technology Center Mesa DRI Intel(R) 965GM supported 0 1 2.1 Intel 965 -Intel Open Source Technology Center Mesa DRI Intel(R) 965GM x86/MMX/SSE2 supported 0 1 2.1 Intel 965 -Intel Open Source Technology Center Mesa DRI Intel(R) 965GME/GLE supported 0 1 2.1 Intel 965 -Intel Open Source Technology Center Mesa DRI Intel(R) 965Q supported 0 1 2.1 Intel 965 -Intel Open Source Technology Center Mesa DRI Intel(R) 965Q x86/MMX/SSE2 supported 0 1 2.1 Intel 965 -Intel Open Source Technology Center Mesa DRI Intel(R) G33 x86/MMX/SSE2 unsupported 1 1 1.4 Intel G33 -Intel Open Source Technology Center Mesa DRI Intel(R) G41 x86/MMX/SSE2 supported 1 1 2.1 Intel G41 -Intel Open Source Technology Center Mesa DRI Intel(R) G45/G43 supported 1 1 2.1 Intel G45 -Intel Open Source Technology Center Mesa DRI Intel(R) G45/G43 x86/MMX/SSE2 supported 1 1 2.1 Intel G45 -Intel Open Source Technology Center Mesa DRI Intel(R) IGD unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) IGD x86/MMX/SSE2 unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Ironlake Desktop x86/MMX/SSE2 unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Ironlake Mobile unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Ironlake Mobile x86/MMX/SSE2 unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Ivybridge Desktop unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Ivybridge Desktop x86/MMX/SSE2 unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Ivybridge Mobile unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Ivybridge Mobile x86/MMX/SSE2 unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Q35 unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Q35 x86/MMX/SSE2 unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Q45/Q43 supported 1 1 2.1 Intel Q45/Q43 -Intel Open Source Technology Center Mesa DRI Intel(R) Q45/Q43 x86/MMX/SSE2 supported 1 1 2.1 Intel Q45/Q43 -Intel Open Source Technology Center Mesa DRI Intel(R) Sandybridge Desktop unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Sandybridge Desktop x86/MMX/SSE2 unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Sandybridge Mobile unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2 unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Mobile Intel(R) GM45 Express Chipset unsupported 1 1 3 Mesa -Intel Open Source Technology Center Mesa DRI Mobile Intel(R) GM45 Express Chipset x86/MMX/SSE2 unsupported 1 1 3 Mesa -Intel Pineview supported 0 1 1.4 Intel Pineview -Intel Q45/Q43 supported 1 1 2.1 Intel Q45/Q43 -Intel Royal BNA Driver unsupported 0 0 0 Intel Royal BNA -Intel Springdale unsupported 0 1 1.3 Intel Springdale -Intel X3100 supported 1 1 2.1 Intel X3100 -Matrox Graphics Inc. Matrox ICD for M-Series unsupported 0 0 0 Matrox -Matrox Graphics Inc. Matrox G400 unsupported 0 0 0 Matrox -Matrox Graphics Inc. Matrox ICD for Parhelia unsupported 0 0 0 Matrox -Mesa unsupported 1 1 3 Mesa -Mesa Project Software Rasterizer unsupported 1 1 3 Mesa -Mesa project: www.mesa3d.org Mesa GLX Indirect unsupported 1 1 3 Mesa -NVIDIA 205 supported 3 1 3.3 NVIDIA 205 -NVIDIA 210 supported 3 1 3.3 NVIDIA 210 -NVIDIA 310 supported 3 1 3.3 NVIDIA 310 -NVIDIA 310M supported 2 0 3.3 NVIDIA 310M -NVIDIA 315 supported 3 1 3.3 NVIDIA 315 -NVIDIA 315M supported 2 0 3.3 NVIDIA 310M -NVIDIA 320M supported 2 0 3.3 NVIDIA 320M -NVIDIA 405 supported 3 0 3.3 NVIDIA 405 -NVIDIA 410 supported 3 0 3.3 NVIDIA 410 -NVIDIA 510 supported 3 0 0 NVIDIA 510 -NVIDIA 610M supported 3 1 4.3 NVIDIA 610M -NVIDIA Corporation /PCI/SSE2 NO MATCH -NVIDIA Corporation 3D-Analyze v2.3 - http://www.tommti-systems.com unsupported 0 0 0 ATI 3D-Analyze -NVIDIA Corporation C51/PCI/SSE2/3DNOW! supported 0 1 2 NVIDIA C51 -NVIDIA Corporation C51G/PCI/SSE2/3DNOW! supported 0 1 2 NVIDIA C51 -NVIDIA Corporation D10P1-25/PCI/SSE2/3DNOW! unsupported 0 0 0 NVIDIA D1xP1 -NVIDIA Corporation D14P1-30/PCIe/SSE2 unsupported 0 0 0 NVIDIA D1xP1 -NVIDIA Corporation D9M-20/PCI/SSE2 supported 1 0 0 NVIDIA D9M -NVIDIA Corporation D9M-20/PCI/SSE2/3DNOW! supported 1 0 0 NVIDIA D9M -NVIDIA Corporation G72/PCI/SSE2/3DNOW! supported 1 0 0 NVIDIA G72 -NVIDIA Corporation G73/AGP/SSE2/3DNOW! supported 1 0 0 NVIDIA G73 -NVIDIA Corporation G73/PCI/SSE2/3DNOW! supported 1 0 0 NVIDIA G73 -NVIDIA Corporation G84-50/PCI/SSE2 supported 2 0 0 NVIDIA G84 -NVIDIA Corporation G92-100/PCI/SSE2/3DNOW! supported 3 0 0 NVIDIA G92 -NVIDIA Corporation GK106/PCIe/SSE2 supported 5 0 4.3 NVIDIA GK106 -NVIDIA Corporation GRID K2/PCIe/SSE2 unsupported 0 0 1.5 NVIDIA GRID -NVIDIA Corporation GeForce GTX 555/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 550 -NVIDIA Corporation GeForce GTX 555/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 550 -NVIDIA Corporation GeForce 205/PCI/SSE2 supported 3 1 3.3 NVIDIA 205 -NVIDIA Corporation GeForce 210/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 210 -NVIDIA Corporation GeForce 210/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 210 -NVIDIA Corporation GeForce 210/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 210 -NVIDIA Corporation GeForce 210/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 210 -NVIDIA Corporation GeForce 310/PCI/SSE2 supported 3 1 3.3 NVIDIA 310 -NVIDIA Corporation GeForce 310/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA 310 -NVIDIA Corporation GeForce 310/PCIe/SSE2 supported 3 1 3.3 NVIDIA 310 -NVIDIA Corporation GeForce 310/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA 310 -NVIDIA Corporation GeForce 310M/PCI/SSE2 supported 2 0 3.3 NVIDIA 310M -NVIDIA Corporation GeForce 310M/PCIe/SSE2 supported 2 0 3.3 NVIDIA 310M -NVIDIA Corporation GeForce 315/PCI/SSE2 supported 3 1 3.3 NVIDIA 315 -NVIDIA Corporation GeForce 315/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA 315 -NVIDIA Corporation GeForce 315/PCIe/SSE2 supported 3 1 3.3 NVIDIA 315 -NVIDIA Corporation GeForce 315/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA 315 -NVIDIA Corporation GeForce 315M/PCI/SSE2 supported 2 0 3.3 NVIDIA 310M -NVIDIA Corporation GeForce 315M/PCIe/SSE2 supported 2 0 3.3 NVIDIA 310M -NVIDIA Corporation GeForce 320M/PCI/SSE2 supported 2 0 3.3 NVIDIA 320M -NVIDIA Corporation GeForce 320M/integrated/SSE2 supported 2 0 3.3 NVIDIA 320M -NVIDIA Corporation GeForce 405/PCI/SSE2 supported 3 0 3.3 NVIDIA 405 -NVIDIA Corporation GeForce 405/PCI/SSE2/3DNOW! supported 3 0 3.3 NVIDIA 405 -NVIDIA Corporation GeForce 405/PCIe/SSE2 supported 3 0 3.3 NVIDIA 405 -NVIDIA Corporation GeForce 405/PCIe/SSE2/3DNOW! supported 3 0 3.3 NVIDIA 405 -NVIDIA Corporation GeForce 410M/PCI/SSE2 supported 3 0 0 NVIDIA 410M -NVIDIA Corporation GeForce 410M/PCIe/SSE2 supported 3 0 0 NVIDIA 410M -NVIDIA Corporation GeForce 505/PCIe/SSE2 supported 3 0 0 NVIDIA 505 -NVIDIA Corporation GeForce 510/PCI/SSE2 supported 3 0 0 NVIDIA 510 -NVIDIA Corporation GeForce 510/PCIe/SSE2 supported 3 0 0 NVIDIA 510 -NVIDIA Corporation GeForce 605/PCI/SSE2 supported 3 1 4.3 NVIDIA 605 -NVIDIA Corporation GeForce 605/PCIe/SSE2 supported 3 1 4.3 NVIDIA 605 -NVIDIA Corporation GeForce 605/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA 605 -NVIDIA Corporation GeForce 610/PCIe/SSE2 supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6100 nForce 400/PCI/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6100 nForce 400/integrated/SSE2 supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6100 nForce 400/integrated/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6100 nForce 405/PCI/SSE2 supported 3 0 3.3 NVIDIA 405 -NVIDIA Corporation GeForce 6100 nForce 405/PCI/SSE2/3DNOW! supported 3 0 3.3 NVIDIA 405 -NVIDIA Corporation GeForce 6100 nForce 405/integrated/SSE2 supported 3 0 3.3 NVIDIA 405 -NVIDIA Corporation GeForce 6100 nForce 405/integrated/SSE2/3DNOW! supported 3 0 3.3 NVIDIA 405 -NVIDIA Corporation GeForce 6100 nForce 420/PCI/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6100 nForce 430/PCI/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6100/PCI/SSE2 supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6100/PCI/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6100/integrated/SSE2 supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6100/integrated/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 610M/PCI/SSE2 supported 3 1 4.3 NVIDIA 610M -NVIDIA Corporation GeForce 610M/PCIe/SSE2 supported 3 1 4.3 NVIDIA 610M -NVIDIA Corporation GeForce 615/PCIe/SSE2 supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150 LE/PCI/SSE2 supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150 LE/PCI/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150 LE/integrated/SSE2 supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150 LE/integrated/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150 SE/PCI/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150/PCI/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150/integrated/SSE2 supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150/integrated/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150SE nForce 430/PCI/SSE2 supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150SE nForce 430/PCI/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150SE nForce 430/integrated/SSE2 supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150SE nForce 430/integrated/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6150SE/PCI/SSE2/3DNOW! supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA Corporation GeForce 6200 A-LE/AGP/SSE2 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200 A-LE/AGP/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200 A-LE/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200 A-LE/PCI/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200 LE/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200 LE/PCI/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200 LE/PCIe/SSE2 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200 LE/PCIe/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200 TurboCache(TM)/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200 TurboCache(TM)/PCI/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200 TurboCache(TM)/PCIe/SSE2 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200 TurboCache(TM)/PCIe/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200/AGP/SSE2 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200/AGP/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200/PCI/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200/PCIe/SSE2 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200/PCIe/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200SE TurboCache(TM)/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200SE TurboCache(TM)/PCI/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200SE TurboCache(TM)/PCIe/SSE2 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6200SE TurboCache(TM)/PCIe/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA Corporation GeForce 6500/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 6500 -NVIDIA Corporation GeForce 6500/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6500 -NVIDIA Corporation GeForce 6500/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 6500 -NVIDIA Corporation GeForce 6500/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6500 -NVIDIA Corporation GeForce 6600 GT/AGP/SSE2 supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600 GT/AGP/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600 GT/PCI/SSE2 supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600 GT/PCI/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600 GT/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600 GT/PCIe/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600 LE/AGP/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600 LE/PCI/SSE2 supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600 LE/PCI/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600 LE/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600 LE/PCIe/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600/AGP/SSE2 supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600/AGP/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600/PCI/SSE2 supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600/PCI/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6600/PCIe/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6610 XL/PCI/SSE2 supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6610 XL/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation GeForce 6700 XL/PCI/SSE2 supported 2 1 2.1 NVIDIA GeForce 6700 -NVIDIA Corporation GeForce 6700 XL/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 6700 -NVIDIA Corporation GeForce 6800 GS/AGP/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 GS/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 GS/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 GS/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 GT/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 GT/AGP/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 GT/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 GT/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 LE/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 LE/AGP/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 LE/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 Ultra/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 Ultra/AGP/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 Ultra/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 Ultra/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 Ultra/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 XT/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 XT/AGP/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 XT/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 XT/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 XT/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800 XT/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800/AGP/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 6800/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA Corporation GeForce 7000M / nForce 610M/PCI/SSE2 supported 3 1 4.3 NVIDIA 610M -NVIDIA Corporation GeForce 7000M / nForce 610M/PCI/SSE2/3DNOW! supported 3 1 4.3 NVIDIA 610M -NVIDIA Corporation GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7025 / nForce 630a/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7025 / nForce 630a/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7025 / nForce 630a/integrated/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7025 / nForce 630a/integrated/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 / NVIDIA nForce 610i/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 / NVIDIA nForce 620i/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 / NVIDIA nForce 630i/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 / nForce 610i/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 / nForce 610i/integrated/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 / nForce 620i/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 / nForce 620i/integrated/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 / nForce 630i/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 / nForce 630i/integrated/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 PV / NVIDIA nForce 630a/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 PV / nForce 630a/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 PV / nForce 630a/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 PV / nForce 630a/integrated/SSE2 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7050 PV / nForce 630a/integrated/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA Corporation GeForce 7100 / NVIDIA nForce 620i/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 7100 / NVIDIA nForce 630i/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 7100 / nForce 630i/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 7100 / nForce 630i/integrated/SSE2 supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 7100 GS/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 7100 GS/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 7100 GS/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 7100 GS/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 710A/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 710M/PCIe/SSE2 supported 3 0 4.3 NVIDIA 710M -NVIDIA Corporation GeForce 7150 / nForce 630i/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 7150M / nForce 630M/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 7150M / nForce 630M/integrated/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA Corporation GeForce 7300 GS/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 GS/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 GS/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 GS/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 GT/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 GT/AGP/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 GT/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 GT/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 GT/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 GT/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 LE/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 LE/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 LE/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 LE/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 SE/7200 GS/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 SE/7200 GS/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 SE/7200 GS/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 SE/7200 GS/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 SE/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 SE/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7300 SE/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7350 LE/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7350 LE/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7350 LE/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation GeForce 7500 LE/PCI/SSE2 supported 2 1 2.1 NVIDIA GeForce 7500 -NVIDIA Corporation GeForce 7500 LE/PCI/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7500 -NVIDIA Corporation GeForce 7500 LE/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 7500 -NVIDIA Corporation GeForce 7500 LE/PCIe/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7500 -NVIDIA Corporation GeForce 7600 GS/AGP/SSE2 supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 GS/AGP/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 GS/PCI/SSE2 supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 GS/PCI/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 GS/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 GS/PCIe/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 GT/AGP/SSE2 supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 GT/AGP/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 GT/PCI/SSE2 supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 GT/PCI/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 GT/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 GT/PCIe/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7600 LE/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7650 GS/AGP/SSE2 supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7650 GS/PCI/SSE2 supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7650 GS/PCI/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7650 GS/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation GeForce 7800 GS/AGP/SSE2 supported 2 1 2.1 NVIDIA GeForce 7800 -NVIDIA Corporation GeForce 7800 GS/AGP/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7800 -NVIDIA Corporation GeForce 7800 GS/PCI/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7800 -NVIDIA Corporation GeForce 7800 GT/PCI/SSE2 supported 2 1 2.1 NVIDIA GeForce 7800 -NVIDIA Corporation GeForce 7800 GT/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 7800 -NVIDIA Corporation GeForce 7800 GT/PCIe/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7800 -NVIDIA Corporation GeForce 7800 GTX/PCI/SSE2 supported 2 1 2.1 NVIDIA GeForce 7800 -NVIDIA Corporation GeForce 7800 GTX/PCIe/SSE2 supported 2 1 2.1 NVIDIA GeForce 7800 -NVIDIA Corporation GeForce 7800 GTX/PCIe/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 7800 -NVIDIA Corporation GeForce 7900 GS/AGP/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GS/AGP/SSE2/3DNOW! supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GS/PCI/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GS/PCI/SSE2/3DNOW! supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GS/PCIe/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GS/PCIe/SSE2/3DNOW! supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GT/GTO/PCI/SSE2/3DNOW! supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GT/GTO/PCIe/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GT/GTO/PCIe/SSE2/3DNOW! supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GT/PCI/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GTX/PCI/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GTX/PCI/SSE2/3DNOW! supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GTX/PCIe/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7900 GTX/PCIe/SSE2/3DNOW! supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7950 GT/AGP/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7950 GT/AGP/SSE2/3DNOW! supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7950 GT/PCI/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7950 GT/PCI/SSE2/3DNOW! supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7950 GT/PCIe/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7950 GT/PCIe/SSE2/3DNOW! supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7950 GX2/PCI/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7950 GX2/PCIe/SSE2 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 7950 GX2/PCIe/SSE2/3DNOW! supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation GeForce 8100 / nForce 720a/PCI/SSE2 supported 1 0 3.3 NVIDIA GeForce 8100 -NVIDIA Corporation GeForce 8100 / nForce 720a/PCI/SSE2/3DNOW! supported 1 0 3.3 NVIDIA GeForce 8100 -NVIDIA Corporation GeForce 8100 / nForce 720a/integrated/SSE2 supported 1 0 3.3 NVIDIA GeForce 8100 -NVIDIA Corporation GeForce 8100 / nForce 720a/integrated/SSE2/3DNOW! supported 1 0 3.3 NVIDIA GeForce 8100 -NVIDIA Corporation GeForce 8200/PCI/SSE2 supported 1 0 3.3 NVIDIA GeForce 8200 -NVIDIA Corporation GeForce 8200/PCI/SSE2/3DNOW! supported 1 0 3.3 NVIDIA GeForce 8200 -NVIDIA Corporation GeForce 8200/integrated/SSE2 supported 1 0 3.3 NVIDIA GeForce 8200 -NVIDIA Corporation GeForce 8200/integrated/SSE2/3DNOW! supported 1 0 3.3 NVIDIA GeForce 8200 -NVIDIA Corporation GeForce 8200M G/PCI/SSE2 supported 1 0 3.3 NVIDIA GeForce 8200M -NVIDIA Corporation GeForce 8200M G/PCI/SSE2/3DNOW! supported 1 0 3.3 NVIDIA GeForce 8200M -NVIDIA Corporation GeForce 8200M G/integrated/SSE2 supported 1 0 3.3 NVIDIA GeForce 8200M -NVIDIA Corporation GeForce 8200M G/integrated/SSE2/3DNOW! supported 1 0 3.3 NVIDIA GeForce 8200M -NVIDIA Corporation GeForce 8200M/PCI/SSE2/3DNOW! supported 1 0 3.3 NVIDIA GeForce 8200M -NVIDIA Corporation GeForce 8300 GS/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8300 -NVIDIA Corporation GeForce 8300 GS/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8300 -NVIDIA Corporation GeForce 8300 GS/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 8300 -NVIDIA Corporation GeForce 8300 GS/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8300 -NVIDIA Corporation GeForce 8300/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8300 -NVIDIA Corporation GeForce 8300/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8300 -NVIDIA Corporation GeForce 8300/integrated/SSE2 supported 3 1 3.3 NVIDIA GeForce 8300 -NVIDIA Corporation GeForce 8300/integrated/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8300 -NVIDIA Corporation GeForce 8400 GS/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400 GS/PCI/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400 GS/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400 GS/PCIe/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400 SE/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400 SE/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400/PCI/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400/PCIe/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400GS/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400GS/PCI/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400GS/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400GS/PCIe/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation GeForce 8400M G/PCI/SSE2 supported 1 1 3.3 NVIDIA GeForce 8400M -NVIDIA Corporation GeForce 8400M G/PCI/SSE2/3DNOW! supported 1 1 3.3 NVIDIA GeForce 8400M -NVIDIA Corporation GeForce 8400M G/PCIe/SSE2 supported 1 1 3.3 NVIDIA GeForce 8400M -NVIDIA Corporation GeForce 8400M G/PCIe/SSE2/3DNOW! supported 1 1 3.3 NVIDIA GeForce 8400M -NVIDIA Corporation GeForce 8400M GS/PCI/SSE2 supported 1 1 3.3 NVIDIA GeForce 8400M -NVIDIA Corporation GeForce 8400M GS/PCI/SSE2/3DNOW! supported 1 1 3.3 NVIDIA GeForce 8400M -NVIDIA Corporation GeForce 8400M GS/PCIe/SSE2 supported 1 1 3.3 NVIDIA GeForce 8400M -NVIDIA Corporation GeForce 8400M GS/PCIe/SSE2/3DNOW! supported 1 1 3.3 NVIDIA GeForce 8400M -NVIDIA Corporation GeForce 8400M GT/PCI/SSE2 supported 1 1 3.3 NVIDIA GeForce 8400M -NVIDIA Corporation GeForce 8400M GT/PCIe/SSE2 supported 1 1 3.3 NVIDIA GeForce 8400M -NVIDIA Corporation GeForce 8500 GT/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 8500 -NVIDIA Corporation GeForce 8500 GT/PCI/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8500 -NVIDIA Corporation GeForce 8500 GT/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 8500 -NVIDIA Corporation GeForce 8500 GT/PCIe/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8500 -NVIDIA Corporation GeForce 8600 GS/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600 GS/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600 GS/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600 GS/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600 GT/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600 GT/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600 GT/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600 GT/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600 GTS/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600 GTS/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600 GTS/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600 GTS/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600GS/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600GS/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation GeForce 8600M GS/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 8600M -NVIDIA Corporation GeForce 8600M GS/PCI/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8600M -NVIDIA Corporation GeForce 8600M GS/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 8600M -NVIDIA Corporation GeForce 8600M GS/PCIe/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8600M -NVIDIA Corporation GeForce 8600M GT/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 8600M -NVIDIA Corporation GeForce 8600M GT/PCI/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8600M -NVIDIA Corporation GeForce 8600M GT/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 8600M -NVIDIA Corporation GeForce 8600M GT/PCIe/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 8600M -NVIDIA Corporation GeForce 8700M GT/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 8700M -NVIDIA Corporation GeForce 8700M GT/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 8700M -NVIDIA Corporation GeForce 8800 GS/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GS/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GS/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GS/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GT/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GT/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GT/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GT/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTS 512/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTS 512/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTS 512/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTS 512/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTS/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTS/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTS/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTS/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTX/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTX/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTX/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 GTX/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 Ultra/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 Ultra/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800 Ultra/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation GeForce 8800M GTS/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 8800M -NVIDIA Corporation GeForce 8800M GTS/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 8800M -NVIDIA Corporation GeForce 8800M GTX/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 8800M -NVIDIA Corporation GeForce 8800M GTX/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 8800M -NVIDIA Corporation GeForce 9100/PCI/SSE2 supported 0 0 3.3 NVIDIA GeForce 9100 -NVIDIA Corporation GeForce 9100/PCI/SSE2/3DNOW! supported 0 0 3.3 NVIDIA GeForce 9100 -NVIDIA Corporation GeForce 9100/integrated/SSE2 supported 0 0 3.3 NVIDIA GeForce 9100 -NVIDIA Corporation GeForce 9100/integrated/SSE2/3DNOW! supported 0 0 3.3 NVIDIA GeForce 9100 -NVIDIA Corporation GeForce 9100M G/PCI/SSE2 supported 0 0 3.3 NVIDIA GeForce 9100M -NVIDIA Corporation GeForce 9100M G/PCI/SSE2/3DNOW! supported 0 0 3.3 NVIDIA GeForce 9100M -NVIDIA Corporation GeForce 9100M G/integrated/SSE2 supported 0 0 3.3 NVIDIA GeForce 9100M -NVIDIA Corporation GeForce 9100M G/integrated/SSE2/3DNOW! supported 0 0 3.3 NVIDIA GeForce 9100M -NVIDIA Corporation GeForce 9200/PCI/SSE2 supported 1 0 3.3 NVIDIA GeForce 9200 -NVIDIA Corporation GeForce 9200/PCI/SSE2/3DNOW! supported 1 0 3.3 NVIDIA GeForce 9200 -NVIDIA Corporation GeForce 9200/integrated/SSE2 supported 1 0 3.3 NVIDIA GeForce 9200 -NVIDIA Corporation GeForce 9200/integrated/SSE2/3DNOW! supported 1 0 3.3 NVIDIA GeForce 9200 -NVIDIA Corporation GeForce 9200M GE/PCI/SSE2 supported 1 0 3.3 NVIDIA GeForce 9200M -NVIDIA Corporation GeForce 9200M GE/PCIe/SSE2 supported 1 0 3.3 NVIDIA GeForce 9200M -NVIDIA Corporation GeForce 9200M GS/PCI/SSE2 supported 1 0 3.3 NVIDIA GeForce 9200M -NVIDIA Corporation GeForce 9200M GS/PCIe/SSE2 supported 1 0 3.3 NVIDIA GeForce 9200M -NVIDIA Corporation GeForce 9300 / nForce 730i/integrated/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300 GE/PCI/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300 GE/PCI/SSE2/3DNOW! supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300 GE/PCIe/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300 GE/PCIe/SSE2/3DNOW! supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300 GS/PCI/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300 GS/PCI/SSE2/3DNOW! supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300 GS/PCIe/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300 GS/PCIe/SSE2/3DNOW! supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300 SE/PCIe/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300/PCI/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300/integrated/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA Corporation GeForce 9300M G/PCI/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300M -NVIDIA Corporation GeForce 9300M G/PCIe/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300M -NVIDIA Corporation GeForce 9300M G/PCIe/SSE2/3DNOW! supported 1 1 3.3 NVIDIA GeForce 9300M -NVIDIA Corporation GeForce 9300M GS/PCI/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300M -NVIDIA Corporation GeForce 9300M GS/PCI/SSE2/3DNOW! supported 1 1 3.3 NVIDIA GeForce 9300M -NVIDIA Corporation GeForce 9300M GS/PCIe/SSE2 supported 1 1 3.3 NVIDIA GeForce 9300M -NVIDIA Corporation GeForce 9400 GT/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9400 -NVIDIA Corporation GeForce 9400 GT/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9400 -NVIDIA Corporation GeForce 9400 GT/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9400 -NVIDIA Corporation GeForce 9400 GT/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9400 -NVIDIA Corporation GeForce 9400/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9400 -NVIDIA Corporation GeForce 9400/integrated/SSE2 supported 3 1 3.3 NVIDIA GeForce 9400 -NVIDIA Corporation GeForce 9400M G/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 9400M -NVIDIA Corporation GeForce 9400M G/integrated/SSE2 supported 2 1 3.3 NVIDIA GeForce 9400M -NVIDIA Corporation GeForce 9400M/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 9400M -NVIDIA Corporation GeForce 9400M/integrated/SSE2 supported 2 1 3.3 NVIDIA GeForce 9400M -NVIDIA Corporation GeForce 9500 GS/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9500 -NVIDIA Corporation GeForce 9500 GS/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9500 -NVIDIA Corporation GeForce 9500 GS/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9500 -NVIDIA Corporation GeForce 9500 GS/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9500 -NVIDIA Corporation GeForce 9500 GT/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9500 -NVIDIA Corporation GeForce 9500 GT/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9500 -NVIDIA Corporation GeForce 9500 GT/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9500 -NVIDIA Corporation GeForce 9500 GT/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9500 -NVIDIA Corporation GeForce 9500M GS/PCI/SSE2 supported 1 1 3.3 NVIDIA GeForce 9500M -NVIDIA Corporation GeForce 9500M GS/PCI/SSE2/3DNOW! supported 1 1 3.3 NVIDIA GeForce 9500M -NVIDIA Corporation GeForce 9500M GS/PCIe/SSE2 supported 1 1 3.3 NVIDIA GeForce 9500M -NVIDIA Corporation GeForce 9600 GS/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GS/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GS/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GS/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GSO 512/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GSO 512/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GSO 512/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GSO 512/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GSO/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GSO/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GSO/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GSO/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GT/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GT/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GT/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600 GT/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9600M GS/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 9600M -NVIDIA Corporation GeForce 9600M GS/PCI/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 9600M -NVIDIA Corporation GeForce 9600M GS/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 9600M -NVIDIA Corporation GeForce 9600M GT/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 9600M -NVIDIA Corporation GeForce 9600M GT/PCI/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 9600M -NVIDIA Corporation GeForce 9600M GT/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 9600M -NVIDIA Corporation GeForce 9600M GT/PCIe/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GeForce 9600M -NVIDIA Corporation GeForce 9650M GS/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9650M GT/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9650M GT/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation GeForce 9700M GT/PCI/SSE2 supported 0 1 3.3 NVIDIA GeForce 9700M -NVIDIA Corporation GeForce 9700M GT/PCIe/SSE2 supported 0 1 3.3 NVIDIA GeForce 9700M -NVIDIA Corporation GeForce 9700M GTS/PCI/SSE2 supported 0 1 3.3 NVIDIA GeForce 9700M -NVIDIA Corporation GeForce 9700M GTS/PCIe/SSE2 supported 0 1 3.3 NVIDIA GeForce 9700M -NVIDIA Corporation GeForce 9800 GT/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GT/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GT/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GT/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GTX+/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GTX+/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GTX+/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GTX+/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GTX/9800 GTX+/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GTX/9800 GTX+/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GTX/9800 GTX+/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GTX/9800 GTX+/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GTX/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 GX2/PCIe/SSE2 supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800 S/PCI/SSE2 supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation GeForce 9800M GS/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 9800M -NVIDIA Corporation GeForce 9800M GS/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 9800M -NVIDIA Corporation GeForce 9800M GT/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 9800M -NVIDIA Corporation GeForce 9800M GT/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 9800M -NVIDIA Corporation GeForce 9800M GTS/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 9800M -NVIDIA Corporation GeForce 9800M GTS/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 9800M -NVIDIA Corporation GeForce 9800M GTX/PCI/SSE2 supported 2 1 3.3 NVIDIA GeForce 9800M -NVIDIA Corporation GeForce 9800M GTX/PCIe/SSE2 supported 2 1 3.3 NVIDIA GeForce 9800M -NVIDIA Corporation GeForce FX 5100/AGP/SSE2 supported 3 0 0 NVIDIA 510 -NVIDIA Corporation GeForce FX 5200 Ultra/AGP/SSE2 supported 0 0 2.1 NVIDIA GeForce FX 5200 -NVIDIA Corporation GeForce FX 5200 Ultra/AGP/SSE2/3DNOW! supported 0 0 2.1 NVIDIA GeForce FX 5200 -NVIDIA Corporation GeForce FX 5200/AGP/SSE/3DNOW! supported 0 0 2.1 NVIDIA GeForce FX 5200 -NVIDIA Corporation GeForce FX 5200/AGP/SSE2 supported 0 0 2.1 NVIDIA GeForce FX 5200 -NVIDIA Corporation GeForce FX 5200/AGP/SSE2/3DNOW! supported 0 0 2.1 NVIDIA GeForce FX 5200 -NVIDIA Corporation GeForce FX 5200/PCI/SSE2 supported 0 0 2.1 NVIDIA GeForce FX 5200 -NVIDIA Corporation GeForce FX 5200/PCI/SSE2/3DNOW! supported 0 0 2.1 NVIDIA GeForce FX 5200 -NVIDIA Corporation GeForce FX 5200LE/AGP/SSE2 supported 0 0 2.1 NVIDIA GeForce FX 5200 -NVIDIA Corporation GeForce FX 5200LE/AGP/SSE2/3DNOW! supported 0 0 2.1 NVIDIA GeForce FX 5200 -NVIDIA Corporation GeForce FX 5200SE/AGP/SSE2 supported 0 0 2.1 NVIDIA GeForce FX 5200 -NVIDIA Corporation GeForce FX 5500/AGP/SSE2 supported 0 1 2.1 NVIDIA GeForce FX 5500 -NVIDIA Corporation GeForce FX 5500/AGP/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce FX 5500 -NVIDIA Corporation GeForce FX 5500/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce FX 5500 -NVIDIA Corporation GeForce FX 5500/PCI/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce FX 5500 -NVIDIA Corporation GeForce FX 5600/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce FX 5600 -NVIDIA Corporation GeForce FX 5600XT/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce FX 5600 -NVIDIA Corporation GeForce FX 5600XT/AGP/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce FX 5600 -NVIDIA Corporation GeForce FX 5600XT/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce FX 5600 -NVIDIA Corporation GeForce FX 5700/AGP/SSE2 supported 0 1 2.1 NVIDIA GeForce FX 5700 -NVIDIA Corporation GeForce FX 5700/AGP/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce FX 5700 -NVIDIA Corporation GeForce FX 5700LE/AGP/SSE2 supported 0 1 2.1 NVIDIA GeForce FX 5700 -NVIDIA Corporation GeForce FX 5700LE/AGP/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce FX 5700 -NVIDIA Corporation GeForce FX 5700LE/PCI/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce FX 5700 -NVIDIA Corporation GeForce FX 5700VE/AGP/SSE2 supported 0 1 2.1 NVIDIA GeForce FX 5700 -NVIDIA Corporation GeForce FX 5700VE/AGP/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce FX 5700 -NVIDIA Corporation GeForce FX 5900 Ultra/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce FX 5900 -NVIDIA Corporation GeForce FX 5900/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce FX 5900 -NVIDIA Corporation GeForce FX 5900XT/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce FX 5900 -NVIDIA Corporation GeForce FX 5900ZT/AGP/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce FX 5900 -NVIDIA Corporation GeForce FX 5950 Ultra/AGP/SSE2 supported 1 1 2.1 NVIDIA GeForce FX 5900 -NVIDIA Corporation GeForce FX 5950 Ultra/AGP/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce FX 5900 -NVIDIA Corporation GeForce FX Go5200 32M/64M/AGP/SSE2 supported 0 0 1.5 NVIDIA GeForce FX Go5200 -NVIDIA Corporation GeForce FX Go5200/AGP/SSE2 supported 0 0 1.5 NVIDIA GeForce FX Go5200 -NVIDIA Corporation GeForce FX Go5200/AGP/SSE2/3DNOW! supported 0 0 1.5 NVIDIA GeForce FX Go5200 -NVIDIA Corporation GeForce FX Go5200/PCI/SSE2 supported 0 0 1.5 NVIDIA GeForce FX Go5200 -NVIDIA Corporation GeForce FX Go5300/AGP/SSE2 supported 0 0 0 NVIDIA GeForce FX Go5300 -NVIDIA Corporation GeForce FX Go53xx Series/AGP/SSE2 supported 0 0 0 NVIDIA GeForce FX Go5300 -NVIDIA Corporation GeForce FX Go5600/AGP/SSE2 supported 0 1 2.1 NVIDIA GeForce FX Go5600 -NVIDIA Corporation GeForce FX Go5650/AGP/SSE2 supported 0 1 2.1 NVIDIA GeForce FX Go5600 -NVIDIA Corporation GeForce FX Go5700/AGP/SSE2 supported 1 1 1.5 NVIDIA GeForce FX Go5700 -NVIDIA Corporation GeForce FX Go5700/AGP/SSE2/3DNOW! supported 1 1 1.5 NVIDIA GeForce FX Go5700 -NVIDIA Corporation GeForce G 103M/PCI/SSE2 supported 1 1 3.3 NVIDIA G 100M -NVIDIA Corporation GeForce G 103M/PCIe/SSE2 supported 1 1 3.3 NVIDIA G 100M -NVIDIA Corporation GeForce G 105M/PCI/SSE2 supported 1 1 3.3 NVIDIA G 100M -NVIDIA Corporation GeForce G 105M/PCIe/SSE2 supported 1 1 3.3 NVIDIA G 100M -NVIDIA Corporation GeForce G 110M/PCI/SSE2 supported 1 1 3.3 NVIDIA G 110M -NVIDIA Corporation GeForce G100/PCI/SSE2 supported 3 1 4.2 NVIDIA G100 -NVIDIA Corporation GeForce G100/PCI/SSE2/3DNOW! supported 3 1 4.2 NVIDIA G100 -NVIDIA Corporation GeForce G100/PCIe/SSE2 supported 3 1 4.2 NVIDIA G100 -NVIDIA Corporation GeForce G100/PCIe/SSE2/3DNOW! supported 3 1 4.2 NVIDIA G100 -NVIDIA Corporation GeForce G102M/PCI/SSE2 supported 1 1 3.3 NVIDIA G 100M -NVIDIA Corporation GeForce G102M/integrated/SSE2 supported 1 1 3.3 NVIDIA G 100M -NVIDIA Corporation GeForce G105M/PCI/SSE2 supported 1 1 3.3 NVIDIA G 100M -NVIDIA Corporation GeForce G105M/PCIe/SSE2 supported 1 1 3.3 NVIDIA G 100M -NVIDIA Corporation GeForce G200/PCI/SSE2 supported 2 1 3.3 NVIDIA G200 -NVIDIA Corporation GeForce G200/integrated/SSE2 supported 2 1 3.3 NVIDIA G200 -NVIDIA Corporation GeForce G205M/PCI/SSE2 supported 1 0 0 NVIDIA G 200M -NVIDIA Corporation GeForce G205M/integrated/SSE2 supported 1 0 0 NVIDIA G 200M -NVIDIA Corporation GeForce G210/PCI/SSE2 supported 3 1 3.3 NVIDIA G210 -NVIDIA Corporation GeForce G210/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA G210 -NVIDIA Corporation GeForce G210/PCIe/SSE2 supported 3 1 3.3 NVIDIA G210 -NVIDIA Corporation GeForce G210/PCIe/SSE2/3DNOW! supported 3 1 3.3 NVIDIA G210 -NVIDIA Corporation GeForce G210M/PCI/SSE2 supported 3 0 3.3 NVIDIA G210M -NVIDIA Corporation GeForce G210M/PCIe/SSE2 supported 3 0 3.3 NVIDIA G210M -NVIDIA Corporation GeForce GT 120/PCI/SSE2 supported 2 0 3.3 NVIDIA GT 120 -NVIDIA Corporation GeForce GT 120/PCI/SSE2/3DNOW! supported 2 0 3.3 NVIDIA GT 120 -NVIDIA Corporation GeForce GT 120/PCIe/SSE2 supported 2 0 3.3 NVIDIA GT 120 -NVIDIA Corporation GeForce GT 120/PCIe/SSE2/3DNOW! supported 2 0 3.3 NVIDIA GT 120 -NVIDIA Corporation GeForce GT 120M/PCI/SSE2 supported 2 0 3.3 NVIDIA GT 120 -NVIDIA Corporation GeForce GT 120M/PCIe/SSE2 supported 2 0 3.3 NVIDIA GT 120 -NVIDIA Corporation GeForce GT 130/PCI/SSE2 supported 2 0 3.3 NVIDIA GT 130 -NVIDIA Corporation GeForce GT 130/PCIe/SSE2 supported 2 0 3.3 NVIDIA GT 130 -NVIDIA Corporation GeForce GT 130/PCIe/SSE2/3DNOW! supported 2 0 3.3 NVIDIA GT 130 -NVIDIA Corporation GeForce GT 130M/PCI/SSE2 supported 3 1 3.3 NVIDIA GT 130M -NVIDIA Corporation GeForce GT 130M/PCIe/SSE2 supported 3 1 3.3 NVIDIA GT 130M -NVIDIA Corporation GeForce GT 140/PCI/SSE2 supported 2 0 3.3 NVIDIA GT 140 -NVIDIA Corporation GeForce GT 140/PCIe/SSE2 supported 2 0 3.3 NVIDIA GT 140 -NVIDIA Corporation GeForce GT 220/PCI/SSE2 supported 2 1 3.3 NVIDIA GT 220 -NVIDIA Corporation GeForce GT 220/PCI/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GT 220 -NVIDIA Corporation GeForce GT 220/PCIe/SSE2 supported 2 1 3.3 NVIDIA GT 220 -NVIDIA Corporation GeForce GT 220/PCIe/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GT 220 -NVIDIA Corporation GeForce GT 220M/PCI/SSE2 supported 3 1 3.3 NVIDIA GT 220M -NVIDIA Corporation GeForce GT 220M/PCIe/SSE2 supported 3 1 3.3 NVIDIA GT 220M -NVIDIA Corporation GeForce GT 230/PCI/SSE2 supported 2 1 3.3 NVIDIA GT 230 -NVIDIA Corporation GeForce GT 230/PCIe/SSE2 supported 2 1 3.3 NVIDIA GT 230 -NVIDIA Corporation GeForce GT 230/PCIe/SSE2/3DNOW! supported 2 1 3.3 NVIDIA GT 230 -NVIDIA Corporation GeForce GT 230M/PCI/SSE2 supported 3 1 3.3 NVIDIA GT 230M -NVIDIA Corporation GeForce GT 230M/PCIe/SSE2 supported 3 1 3.3 NVIDIA GT 230M -NVIDIA Corporation GeForce GT 240/PCI/SSE2 supported 4 1 3.3 NVIDIA GT 240 -NVIDIA Corporation GeForce GT 240/PCI/SSE2/3DNOW! supported 4 1 3.3 NVIDIA GT 240 -NVIDIA Corporation GeForce GT 240/PCIe/SSE2 supported 4 1 3.3 NVIDIA GT 240 -NVIDIA Corporation GeForce GT 240/PCIe/SSE2/3DNOW! supported 4 1 3.3 NVIDIA GT 240 -NVIDIA Corporation GeForce GT 240M LE/PCIe/SSE2 supported 3 1 3.3 NVIDIA GT 240M -NVIDIA Corporation GeForce GT 240M/PCI/SSE2 supported 3 1 3.3 NVIDIA GT 240M -NVIDIA Corporation GeForce GT 240M/PCI/SSE2/3DNOW! supported 3 1 3.3 NVIDIA GT 240M -NVIDIA Corporation GeForce GT 240M/PCIe/SSE2 supported 3 1 3.3 NVIDIA GT 240M -NVIDIA Corporation GeForce GT 320/PCI/SSE2 supported 3 0 3.3 NVIDIA GT 320 -NVIDIA Corporation GeForce GT 320/PCI/SSE2/3DNOW! supported 3 0 3.3 NVIDIA GT 320 -NVIDIA Corporation GeForce GT 320/PCIe/SSE2 supported 3 0 3.3 NVIDIA GT 320 -NVIDIA Corporation GeForce GT 320/PCIe/SSE2/3DNOW! supported 3 0 3.3 NVIDIA GT 320 -NVIDIA Corporation GeForce GT 320M/PCI/SSE2 supported 3 0 3.3 NVIDIA GT 320M -NVIDIA Corporation GeForce GT 320M/PCIe/SSE2 supported 3 0 3.3 NVIDIA GT 320M -NVIDIA Corporation GeForce GT 325M/PCI/SSE2 supported 3 0 3.3 NVIDIA GT 320M -NVIDIA Corporation GeForce GT 325M/PCIe/SSE2 supported 3 0 3.3 NVIDIA GT 320M -NVIDIA Corporation GeForce GT 330/PCI/SSE2 supported 3 0 3.3 NVIDIA GT 330 -NVIDIA Corporation GeForce GT 330/PCIe/SSE2 supported 3 0 3.3 NVIDIA GT 330 -NVIDIA Corporation GeForce GT 330/PCIe/SSE2/3DNOW! supported 3 0 3.3 NVIDIA GT 330 -NVIDIA Corporation GeForce GT 330M/PCI/SSE2 supported 3 1 3.3 NVIDIA GT 330M -NVIDIA Corporation GeForce GT 330M/PCIe/SSE2 supported 3 1 3.3 NVIDIA GT 330M -NVIDIA Corporation GeForce GT 335M/PCI/SSE2 supported 3 1 3.3 NVIDIA GT 330M -NVIDIA Corporation GeForce GT 335M/PCIe/SSE2 supported 3 1 3.3 NVIDIA GT 330M -NVIDIA Corporation GeForce GT 340/PCI/SSE2 supported 3 0 0 NVIDIA GT 340 -NVIDIA Corporation GeForce GT 340/PCIe/SSE2 supported 3 0 0 NVIDIA GT 340 -NVIDIA Corporation GeForce GT 415/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 415 -NVIDIA Corporation GeForce GT 415/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GT 415 -NVIDIA Corporation GeForce GT 415M/PCI/SSE2 supported 3 0 0 NVIDIA 410M -NVIDIA Corporation GeForce GT 415M/PCIe/SSE2 supported 3 0 0 NVIDIA 410M -NVIDIA Corporation GeForce GT 420/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 420 -NVIDIA Corporation GeForce GT 420/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 420 -NVIDIA Corporation GeForce GT 420/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GT 420 -NVIDIA Corporation GeForce GT 420M/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 420M -NVIDIA Corporation GeForce GT 420M/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 420M -NVIDIA Corporation GeForce GT 425M/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 420M -NVIDIA Corporation GeForce GT 425M/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 420M -NVIDIA Corporation GeForce GT 430/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 430 -NVIDIA Corporation GeForce GT 430/PCI/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GT 430 -NVIDIA Corporation GeForce GT 430/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 430 -NVIDIA Corporation GeForce GT 430/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GT 430 -NVIDIA Corporation GeForce GT 435M/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 430M -NVIDIA Corporation GeForce GT 435M/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 430M -NVIDIA Corporation GeForce GT 440/PCI/SSE2 supported 4 1 4.3 NVIDIA GT 440 -NVIDIA Corporation GeForce GT 440/PCI/SSE2/3DNOW! supported 4 1 4.3 NVIDIA GT 440 -NVIDIA Corporation GeForce GT 440/PCIe/SSE2 supported 4 1 4.3 NVIDIA GT 440 -NVIDIA Corporation GeForce GT 440/PCIe/SSE2/3DNOW! supported 4 1 4.3 NVIDIA GT 440 -NVIDIA Corporation GeForce GT 445M/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 440M -NVIDIA Corporation GeForce GT 445M/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 440M -NVIDIA Corporation GeForce GT 520/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 520 -NVIDIA Corporation GeForce GT 520/PCI/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GT 520 -NVIDIA Corporation GeForce GT 520/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 520 -NVIDIA Corporation GeForce GT 520/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GT 520 -NVIDIA Corporation GeForce GT 520M/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 520M -NVIDIA Corporation GeForce GT 520M/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 520M -NVIDIA Corporation GeForce GT 520MX/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 520M -NVIDIA Corporation GeForce GT 520MX/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 520M -NVIDIA Corporation GeForce GT 525M/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 520M -NVIDIA Corporation GeForce GT 525M/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 520M -NVIDIA Corporation GeForce GT 530/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 530 -NVIDIA Corporation GeForce GT 530/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 530 -NVIDIA Corporation GeForce GT 530/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GT 530 -NVIDIA Corporation GeForce GT 540M/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 540M -NVIDIA Corporation GeForce GT 540M/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 540M -NVIDIA Corporation GeForce GT 545/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 540 -NVIDIA Corporation GeForce GT 545/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 540 -NVIDIA Corporation GeForce GT 545/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GT 540 -NVIDIA Corporation GeForce GT 550M/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 550M -NVIDIA Corporation GeForce GT 550M/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 550M -NVIDIA Corporation GeForce GT 555M/PCI/SSE2 supported 3 1 4.3 NVIDIA GT 550M -NVIDIA Corporation GeForce GT 555M/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 550M -NVIDIA Corporation GeForce GT 610/PCIe/SSE2 supported 3 1 4.3 NVIDIA GT 61x -NVIDIA Corporation GeForce GT 610/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GT 61x -NVIDIA Corporation GeForce GT 620/PCI/SSE2 supported 3 0 4.3 NVIDIA GT 62x -NVIDIA Corporation GeForce GT 620/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 62x -NVIDIA Corporation GeForce GT 620/PCIe/SSE2/3DNOW! supported 3 0 4.3 NVIDIA GT 62x -NVIDIA Corporation GeForce GT 620M/PCI/SSE2 supported 3 0 4.3 NVIDIA GT 620M -NVIDIA Corporation GeForce GT 620M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 620M -NVIDIA Corporation GeForce GT 625/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 62x -NVIDIA Corporation GeForce GT 625M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 620M -NVIDIA Corporation GeForce GT 630/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 63x -NVIDIA Corporation GeForce GT 630/PCIe/SSE2/3DNOW! supported 3 0 4.3 NVIDIA GT 63x -NVIDIA Corporation GeForce GT 630M/PCI/SSE2 supported 3 0 4.3 NVIDIA GT 630M -NVIDIA Corporation GeForce GT 630M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 630M -NVIDIA Corporation GeForce GT 635M/PCI/SSE2 supported 3 0 4.3 NVIDIA GT 630M -NVIDIA Corporation GeForce GT 635M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 630M -NVIDIA Corporation GeForce GT 640/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 64x -NVIDIA Corporation GeForce GT 640/PCIe/SSE2/3DNOW! supported 3 0 4.3 NVIDIA GT 64x -NVIDIA Corporation GeForce GT 640M LE/PCI/SSE2 supported 3 0 4.3 NVIDIA GT 640M -NVIDIA Corporation GeForce GT 640M LE/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 640M -NVIDIA Corporation GeForce GT 640M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 640M -NVIDIA Corporation GeForce GT 645/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 64x -NVIDIA Corporation GeForce GT 645M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 640M -NVIDIA Corporation GeForce GT 650M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 650M -NVIDIA Corporation GeForce GT 720M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 720M -NVIDIA Corporation GeForce GT 730M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 730M -NVIDIA Corporation GeForce GT 735M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 730M -NVIDIA Corporation GeForce GT 740M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 740M -NVIDIA Corporation GeForce GT 750M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 750M -NVIDIA Corporation GeForce GT620M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 620M -NVIDIA Corporation GeForce GT625M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GT 620M -NVIDIA Corporation GeForce GTS 150/PCI/SSE2 supported 2 0 0 NVIDIA GTS 150 -NVIDIA Corporation GeForce GTS 160M/PCI/SSE2 supported 2 0 0 NVIDIA GTS 160M -NVIDIA Corporation GeForce GTS 160M/PCIe/SSE2 supported 2 0 0 NVIDIA GTS 160M -NVIDIA Corporation GeForce GTS 240/PCI/SSE2 supported 4 1 3.3 NVIDIA GTS 240 -NVIDIA Corporation GeForce GTS 240/PCIe/SSE2 supported 4 1 3.3 NVIDIA GTS 240 -NVIDIA Corporation GeForce GTS 240/PCIe/SSE2/3DNOW! supported 4 1 3.3 NVIDIA GTS 240 -NVIDIA Corporation GeForce GTS 250/PCI/SSE2 supported 4 1 3.3 NVIDIA GTS 250 -NVIDIA Corporation GeForce GTS 250/PCI/SSE2/3DNOW! supported 4 1 3.3 NVIDIA GTS 250 -NVIDIA Corporation GeForce GTS 250/PCIe/SSE2 supported 4 1 3.3 NVIDIA GTS 250 -NVIDIA Corporation GeForce GTS 250/PCIe/SSE2/3DNOW! supported 4 1 3.3 NVIDIA GTS 250 -NVIDIA Corporation GeForce GTS 250M/PCI/SSE2 supported 3 0 3.3 NVIDIA GTS 250M -NVIDIA Corporation GeForce GTS 250M/PCIe/SSE2 supported 3 0 3.3 NVIDIA GTS 250M -NVIDIA Corporation GeForce GTS 350M/PCI/SSE2 supported 4 1 3.3 NVIDIA GTS 350M -NVIDIA Corporation GeForce GTS 350M/PCIe/SSE2 supported 4 1 3.3 NVIDIA GTS 350M -NVIDIA Corporation GeForce GTS 360M/PCI/SSE2 supported 5 1 3.3 NVIDIA GTS 360M -NVIDIA Corporation GeForce GTS 360M/PCIe/SSE2 supported 5 1 3.3 NVIDIA GTS 360M -NVIDIA Corporation GeForce GTS 450/PCI/SSE2 supported 4 1 4.3 NVIDIA GTS 450 -NVIDIA Corporation GeForce GTS 450/PCI/SSE2/3DNOW! supported 4 1 4.3 NVIDIA GTS 450 -NVIDIA Corporation GeForce GTS 450/PCIe/SSE2 supported 4 1 4.3 NVIDIA GTS 450 -NVIDIA Corporation GeForce GTS 450/PCIe/SSE2/3DNOW! supported 4 1 4.3 NVIDIA GTS 450 -NVIDIA Corporation GeForce GTX 260/PCI/SSE2 supported 4 1 3.3 NVIDIA GTX 260 -NVIDIA Corporation GeForce GTX 260/PCI/SSE2/3DNOW! supported 4 1 3.3 NVIDIA GTX 260 -NVIDIA Corporation GeForce GTX 260/PCIe/SSE2 supported 4 1 3.3 NVIDIA GTX 260 -NVIDIA Corporation GeForce GTX 260/PCIe/SSE2/3DNOW! supported 4 1 3.3 NVIDIA GTX 260 -NVIDIA Corporation GeForce GTX 260M/PCI/SSE2 supported 3 0 3.3 NVIDIA GTX 260M -NVIDIA Corporation GeForce GTX 260M/PCIe/SSE2 supported 3 0 3.3 NVIDIA GTX 260M -NVIDIA Corporation GeForce GTX 275/PCI/SSE2 supported 4 0 3.3 NVIDIA GTX 270 -NVIDIA Corporation GeForce GTX 275/PCI/SSE2/3DNOW! supported 4 0 3.3 NVIDIA GTX 270 -NVIDIA Corporation GeForce GTX 275/PCIe/SSE2 supported 4 0 3.3 NVIDIA GTX 270 -NVIDIA Corporation GeForce GTX 275/PCIe/SSE2/3DNOW! supported 4 0 3.3 NVIDIA GTX 270 -NVIDIA Corporation GeForce GTX 280/PCI/SSE2 supported 4 1 3.3 NVIDIA GTX 280 -NVIDIA Corporation GeForce GTX 280/PCIe/SSE2 supported 4 1 3.3 NVIDIA GTX 280 -NVIDIA Corporation GeForce GTX 280/PCIe/SSE2/3DNOW! supported 4 1 3.3 NVIDIA GTX 280 -NVIDIA Corporation GeForce GTX 280M/PCI/SSE2 supported 3 0 3.3 NVIDIA GTX 280M -NVIDIA Corporation GeForce GTX 280M/PCIe/SSE2 supported 3 0 3.3 NVIDIA GTX 280M -NVIDIA Corporation GeForce GTX 285/PCI/SSE2 supported 4 1 3.3 NVIDIA GTX 280 -NVIDIA Corporation GeForce GTX 285/PCIe/SSE2 supported 4 1 3.3 NVIDIA GTX 280 -NVIDIA Corporation GeForce GTX 285/PCIe/SSE2/3DNOW! supported 4 1 3.3 NVIDIA GTX 280 -NVIDIA Corporation GeForce GTX 285M/PCI/SSE2 supported 3 0 3.3 NVIDIA GTX 280M -NVIDIA Corporation GeForce GTX 285M/PCIe/SSE2 supported 3 0 3.3 NVIDIA GTX 280M -NVIDIA Corporation GeForce GTX 295/PCI/SSE2 supported 5 0 3.3 NVIDIA GTX 290 -NVIDIA Corporation GeForce GTX 295/PCIe/SSE2 supported 5 0 3.3 NVIDIA GTX 290 -NVIDIA Corporation GeForce GTX 295/PCIe/SSE2/3DNOW! supported 5 0 3.3 NVIDIA GTX 290 -NVIDIA Corporation GeForce GTX 460 SE/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 460 SE/PCI/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 460 SE/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 460 SE/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 460 v2/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 460 v2/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 460 v2/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 460/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 460/PCI/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 460/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 460/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 460M/PCI/SSE2 supported 4 1 4.3 NVIDIA GTX 460M -NVIDIA Corporation GeForce GTX 460M/PCIe/SSE2 supported 4 1 4.3 NVIDIA GTX 460M -NVIDIA Corporation GeForce GTX 465/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 465/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 465/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation GeForce GTX 470/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 470 -NVIDIA Corporation GeForce GTX 470/PCI/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 470 -NVIDIA Corporation GeForce GTX 470/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 470 -NVIDIA Corporation GeForce GTX 470/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 470 -NVIDIA Corporation GeForce GTX 470M/PCI/SSE2 supported 3 0 4.3 NVIDIA GTX 470M -NVIDIA Corporation GeForce GTX 480/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 480 -NVIDIA Corporation GeForce GTX 480/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 480 -NVIDIA Corporation GeForce GTX 480/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 480 -NVIDIA Corporation GeForce GTX 480M/PCIe/SSE2 supported 3 1 4.3 NVIDIA GTX 480M -NVIDIA Corporation GeForce GTX 485M/PCI/SSE2 supported 3 1 4.3 NVIDIA GTX 480M -NVIDIA Corporation GeForce GTX 485M/PCIe/SSE2 supported 3 1 4.3 NVIDIA GTX 480M -NVIDIA Corporation GeForce GTX 550 Ti/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 550 -NVIDIA Corporation GeForce GTX 550 Ti/PCI/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 550 -NVIDIA Corporation GeForce GTX 550 Ti/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 550 -NVIDIA Corporation GeForce GTX 550 Ti/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 550 -NVIDIA Corporation GeForce GTX 560 SE/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA Corporation GeForce GTX 560 Ti/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA Corporation GeForce GTX 560 Ti/PCI/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA Corporation GeForce GTX 560 Ti/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA Corporation GeForce GTX 560 Ti/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA Corporation GeForce GTX 560/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA Corporation GeForce GTX 560/PCI/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA Corporation GeForce GTX 560/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA Corporation GeForce GTX 560/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA Corporation GeForce GTX 560M/PCI/SSE2 supported 3 0 4.3 NVIDIA GTX 560M -NVIDIA Corporation GeForce GTX 560M/PCIe/SSE2 supported 3 0 4.3 NVIDIA GTX 560M -NVIDIA Corporation GeForce GTX 570/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 570 -NVIDIA Corporation GeForce GTX 570/PCI/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 570 -NVIDIA Corporation GeForce GTX 570/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 570 -NVIDIA Corporation GeForce GTX 570/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 570 -NVIDIA Corporation GeForce GTX 570M/PCI/SSE2 supported 5 0 4.3 NVIDIA GTX 570M -NVIDIA Corporation GeForce GTX 570M/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 570M -NVIDIA Corporation GeForce GTX 580/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 580 -NVIDIA Corporation GeForce GTX 580/PCI/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 580 -NVIDIA Corporation GeForce GTX 580/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 580 -NVIDIA Corporation GeForce GTX 580/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 580 -NVIDIA Corporation GeForce GTX 580M/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 580M -NVIDIA Corporation GeForce GTX 580M/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 580M -NVIDIA Corporation GeForce GTX 590/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 590 -NVIDIA Corporation GeForce GTX 590/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 590 -NVIDIA Corporation GeForce GTX 590/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 590 -NVIDIA Corporation GeForce GTX 645/PCIe/SSE2 supported 3 1 4.3 NVIDIA GTX 64x -NVIDIA Corporation GeForce GTX 650 Ti BOOST/PCIe/SSE2 supported 3 1 4.3 NVIDIA GTX 65x -NVIDIA Corporation GeForce GTX 650 Ti BOOST/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GTX 65x -NVIDIA Corporation GeForce GTX 650 Ti Boost/PCIe/SSE2 supported 3 1 4.3 NVIDIA GTX 65x -NVIDIA Corporation GeForce GTX 650 Ti Boost/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GTX 65x -NVIDIA Corporation GeForce GTX 650 Ti/PCIe/SSE2 supported 3 1 4.3 NVIDIA GTX 65x -NVIDIA Corporation GeForce GTX 650 Ti/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GTX 65x -NVIDIA Corporation GeForce GTX 650/PCIe/SSE2 supported 3 1 4.3 NVIDIA GTX 65x -NVIDIA Corporation GeForce GTX 650/PCIe/SSE2/3DNOW! supported 3 1 4.3 NVIDIA GTX 65x -NVIDIA Corporation GeForce GTX 660 Ti/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 66x -NVIDIA Corporation GeForce GTX 660 Ti/PCIe/SSE2/3DNOW! supported 5 0 4.3 NVIDIA GTX 66x -NVIDIA Corporation GeForce GTX 660/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 66x -NVIDIA Corporation GeForce GTX 660/PCIe/SSE2/3DNOW! supported 5 0 4.3 NVIDIA GTX 66x -NVIDIA Corporation GeForce GTX 660M/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 660M -NVIDIA Corporation GeForce GTX 670/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 67x -NVIDIA Corporation GeForce GTX 670/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 67x -NVIDIA Corporation GeForce GTX 670M/PCI/SSE2 supported 5 1 4.3 NVIDIA GTX 670M -NVIDIA Corporation GeForce GTX 670M/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 670M -NVIDIA Corporation GeForce GTX 670MX/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 670M -NVIDIA Corporation GeForce GTX 675M/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 670M -NVIDIA Corporation GeForce GTX 675MX/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 670M -NVIDIA Corporation GeForce GTX 680/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 68x -NVIDIA Corporation GeForce GTX 680/PCIe/SSE2/3DNOW! supported 5 1 4.3 NVIDIA GTX 68x -NVIDIA Corporation GeForce GTX 680M/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 680M -NVIDIA Corporation GeForce GTX 680MX/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 680M -NVIDIA Corporation GeForce GTX 690/PCIe/SSE2 supported 5 1 4.3 NVIDIA GTX 69x -NVIDIA Corporation GeForce GTX 760/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 76x -NVIDIA Corporation GeForce GTX 760M/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 760M -NVIDIA Corporation GeForce GTX 765M/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 760M -NVIDIA Corporation GeForce GTX 770/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 77x -NVIDIA Corporation GeForce GTX 770/PCIe/SSE2/3DNOW! supported 5 0 4.3 NVIDIA GTX 77x -NVIDIA Corporation GeForce GTX 770M/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 770M -NVIDIA Corporation GeForce GTX 780/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 78x -NVIDIA Corporation GeForce GTX 780M/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX 780M -NVIDIA Corporation GeForce GTX TITAN/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX TITAN -NVIDIA Corporation GeForce GTX TITAN/PCIe/SSE2/3DNOW! supported 5 0 4.3 NVIDIA GTX TITAN -NVIDIA Corporation GeForce GTX Titan/PCIe/SSE2 supported 5 0 4.3 NVIDIA GTX TITAN -NVIDIA Corporation GeForce Go 6100/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce Go 6100 -NVIDIA Corporation GeForce Go 6100/PCI/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce Go 6100 -NVIDIA Corporation GeForce Go 6150/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce Go 6100 -NVIDIA Corporation GeForce Go 6150/PCI/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce Go 6100 -NVIDIA Corporation GeForce Go 6150/integrated/SSE2/3DNOW! supported 0 1 2.1 NVIDIA GeForce Go 6100 -NVIDIA Corporation GeForce Go 6200/PCI/SSE2 supported 0 0 1.5 NVIDIA GeForce Go 6200 -NVIDIA Corporation GeForce Go 6200/PCI/SSE2/3DNOW! supported 0 0 1.5 NVIDIA GeForce Go 6200 -NVIDIA Corporation GeForce Go 6400/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 6400 -NVIDIA Corporation GeForce Go 6400/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 6400 -NVIDIA Corporation GeForce Go 6600 TE/6200 TE/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce Go 6600 -NVIDIA Corporation GeForce Go 6600/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce Go 6600 -NVIDIA Corporation GeForce Go 6800 Ultra/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce Go 6800 -NVIDIA Corporation GeForce Go 6800/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce Go 6800 -NVIDIA Corporation GeForce Go 6800/PCIe/SSE2 supported 0 1 2.1 NVIDIA GeForce Go 6800 -NVIDIA Corporation GeForce Go 7200/PCI/SSE2 supported 1 0 2.1 NVIDIA GeForce Go 7200 -NVIDIA Corporation GeForce Go 7200/PCI/SSE2/3DNOW! supported 1 0 2.1 NVIDIA GeForce Go 7200 -NVIDIA Corporation GeForce Go 7300/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 7300 -NVIDIA Corporation GeForce Go 7300/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce Go 7300 -NVIDIA Corporation GeForce Go 7300/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 7300 -NVIDIA Corporation GeForce Go 7400/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 7400 -NVIDIA Corporation GeForce Go 7400/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce Go 7400 -NVIDIA Corporation GeForce Go 7400/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 7400 -NVIDIA Corporation GeForce Go 7600 GT/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 7600 -NVIDIA Corporation GeForce Go 7600/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 7600 -NVIDIA Corporation GeForce Go 7600/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce Go 7600 -NVIDIA Corporation GeForce Go 7600/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 7600 -NVIDIA Corporation GeForce Go 7600/PCIe/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce Go 7600 -NVIDIA Corporation GeForce Go 7700/PCI/SSE2 supported 0 1 2.1 NVIDIA GeForce Go 7700 -NVIDIA Corporation GeForce Go 7800 GTX/PCI/SSE2 supported 2 0 0 NVIDIA GeForce Go 7800 -NVIDIA Corporation GeForce Go 7800/PCI/SSE2 supported 2 0 0 NVIDIA GeForce Go 7800 -NVIDIA Corporation GeForce Go 7900 GS/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 7900 -NVIDIA Corporation GeForce Go 7900 GS/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce Go 7900 -NVIDIA Corporation GeForce Go 7900 GS/PCIe/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 7900 -NVIDIA Corporation GeForce Go 7900 GTX/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 7900 -NVIDIA Corporation GeForce Go 7950 GTX/PCI/SSE2 supported 1 1 2.1 NVIDIA GeForce Go 7900 -NVIDIA Corporation GeForce Go 7950 GTX/PCI/SSE2/3DNOW! supported 1 1 2.1 NVIDIA GeForce Go 7900 -NVIDIA Corporation GeForce PCX 5300/PCI/SSE2 supported 0 0 1.5 NVIDIA GeForce PCX -NVIDIA Corporation GeForce PCX 5750/PCI/SSE2 supported 0 0 1.5 NVIDIA GeForce PCX -NVIDIA Corporation GeForce2 GTS/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 2 -NVIDIA Corporation GeForce2 MX/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 2 -NVIDIA Corporation GeForce2 MX/AGP/SSE2/3DNOW! supported 0 1 1.5 NVIDIA GeForce 2 -NVIDIA Corporation GeForce2 MX/PCI/SSE2 supported 0 1 1.5 NVIDIA GeForce 2 -NVIDIA Corporation GeForce3/AGP/SSE2 supported 2 1 2.1 NVIDIA GeForce 3 -NVIDIA Corporation GeForce3/AGP/SSE2/3DNOW! supported 2 1 2.1 NVIDIA GeForce 3 -NVIDIA Corporation GeForce4 420 Go 32M/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 420 Go 32M/AGP/SSE2/3DNOW! supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 420 Go 32M/PCI/SSE2/3DNOW! supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 420 Go/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 4200 Go/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 440 Go 64M/AGP/SSE2/3DNOW! supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 440 Go 64M/PCI/SSE2/3DNOW! supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 440 Go/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 448 Go/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 4000/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 4000/AGP/SSE2/3DNOW! supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 4000/PCI/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 4000/PCI/SSE2/3DNOW! supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 420/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 420/PCI/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 440 with AGP8X/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 440 with AGP8X/AGP/SSE2/3DNOW! supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 440 with AGP8X/PCI/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 440/440SE/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 440/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 440/AGP/SSE2/3DNOW! supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 440/PCI/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 440SE with AGP8X/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 440SE with AGP8X/PCI/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 460/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 MX 460/AGP/SSE2/3DNOW! supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 Ti 4200 with AGP8X/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 Ti 4200 with AGP8X/PCI/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 Ti 4200/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 Ti 4400/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 Ti 4600/AGP/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation GeForce4 Ti 4600/PCI/SSE2 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA Corporation ION LE/PCI/SSE2 supported 2 1 3.3 NVIDIA ION b -NVIDIA Corporation ION LE/integrated/SSE2 supported 2 1 3.3 NVIDIA ION b -NVIDIA Corporation ION/PCI/SSE2 supported 2 1 3.3 NVIDIA ION b -NVIDIA Corporation ION/PCIe/SSE2 supported 2 1 3.3 NVIDIA ION b -NVIDIA Corporation ION/PCIe/SSE2/3DNOW! supported 2 1 3.3 NVIDIA ION b -NVIDIA Corporation ION/integrated/SSE2 supported 2 1 3.3 NVIDIA ION b -NVIDIA Corporation MCP61/PCI/SSE2/3DNOW! supported 1 0 2.1 NVIDIA MCP61 -NVIDIA Corporation MCP7A-O/PCI/SSE2 supported 1 0 0 NVIDIA MCP7A -NVIDIA Corporation MCP7A-P/PCI/SSE2 supported 1 0 0 NVIDIA MCP7A -NVIDIA Corporation N10P-GV2/PCI/SSE2 supported 1 0 2.1 NVIDIA N10 -NVIDIA Corporation N11M-GE2/PCI/SSE2 supported 2 0 3.1 NVIDIA Corporation N11M -NVIDIA Corporation N12P-GVR-B-A1/PCI/SSE2 supported 1 1 4.1 NVIDIA Corporation N12P -NVIDIA Corporation NB9M-GE1/PCI/SSE2 supported 1 0 0 NVIDIA NB9M -NVIDIA Corporation NB9M-GS/PCI/SSE2 supported 1 0 0 NVIDIA NB9M -NVIDIA Corporation NV17/AGP/SSE2 supported 0 0 0 NVIDIA NV17 -NVIDIA Corporation NVIDIA GeForce 210 OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 210 -NVIDIA Corporation NVIDIA GeForce 310M OpenGL Engine supported 2 0 3.3 NVIDIA 310M -NVIDIA Corporation NVIDIA GeForce 320M OpenGL Engine supported 2 0 3.3 NVIDIA 320M -NVIDIA Corporation NVIDIA GeForce 6600 GT OpenGL Engine supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA Corporation NVIDIA GeForce 7300 GT OpenGL Engine supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA Corporation NVIDIA GeForce 7600 GT OpenGL Engine supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA Corporation NVIDIA GeForce 7950 GT OpenGL Engine supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA Corporation NVIDIA GeForce 8400 GS OpenGL Engine supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA Corporation NVIDIA GeForce 8500 GT OpenGL Engine supported 2 1 3.3 NVIDIA GeForce 8500 -NVIDIA Corporation NVIDIA GeForce 8600 GT OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation NVIDIA GeForce 8600 GTS OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA Corporation NVIDIA GeForce 8600M GT OpenGL Engine supported 2 1 3.3 NVIDIA GeForce 8600M -NVIDIA Corporation NVIDIA GeForce 8800 GS OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation NVIDIA GeForce 8800 GT OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation NVIDIA GeForce 8800 GTS 512 OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation NVIDIA GeForce 8800 GTS OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation NVIDIA GeForce 8800 GTX OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation NVIDIA GeForce 8800 Ultra OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA Corporation NVIDIA GeForce 9200M GS OpenGL Engine supported 1 0 3.3 NVIDIA GeForce 9200M -NVIDIA Corporation NVIDIA GeForce 9400 GT OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 9400 -NVIDIA Corporation NVIDIA GeForce 9400 OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 9400 -NVIDIA Corporation NVIDIA GeForce 9400M OpenGL Engine supported 2 1 3.3 NVIDIA GeForce 9400M -NVIDIA Corporation NVIDIA GeForce 9500 GT OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 9500 -NVIDIA Corporation NVIDIA GeForce 9600 GT OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA Corporation NVIDIA GeForce 9600M GT OpenGL Engine supported 2 1 3.3 NVIDIA GeForce 9600M -NVIDIA Corporation NVIDIA GeForce 9800 GT OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation NVIDIA GeForce 9800 GTX+ OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA Corporation NVIDIA GeForce GT 120 OpenGL Engine supported 2 0 3.3 NVIDIA GT 120 -NVIDIA Corporation NVIDIA GeForce GT 130 OpenGL Engine supported 2 0 3.3 NVIDIA GT 130 -NVIDIA Corporation NVIDIA GeForce GT 220 OpenGL Engine supported 2 1 3.3 NVIDIA GT 220 -NVIDIA Corporation NVIDIA GeForce GT 240 OpenGL Engine supported 4 1 3.3 NVIDIA GT 240 -NVIDIA Corporation NVIDIA GeForce GT 320M OpenGL Engine supported 3 0 3.3 NVIDIA GT 320M -NVIDIA Corporation NVIDIA GeForce GT 330M OpenGL Engine supported 3 1 3.3 NVIDIA GT 330M -NVIDIA Corporation NVIDIA GeForce GT 430 OpenGL Engine supported 3 1 4.3 NVIDIA GT 430 -NVIDIA Corporation NVIDIA GeForce GT 440 OpenGL Engine supported 4 1 4.3 NVIDIA GT 440 -NVIDIA Corporation NVIDIA GeForce GT 520 OpenGL Engine supported 3 1 4.3 NVIDIA GT 520 -NVIDIA Corporation NVIDIA GeForce GT 630 OpenGL Engine supported 3 0 4.3 NVIDIA GT 63x -NVIDIA Corporation NVIDIA GeForce GT 640 OpenGL Engine supported 3 0 4.3 NVIDIA GT 64x -NVIDIA Corporation NVIDIA GeForce GT 640M OpenGL Engine supported 3 0 4.3 NVIDIA GT 640M -NVIDIA Corporation NVIDIA GeForce GT 650M OpenGL Engine supported 3 0 4.3 NVIDIA GT 650M -NVIDIA Corporation NVIDIA GeForce GTS 250 OpenGL Engine supported 4 1 3.3 NVIDIA GTS 250 -NVIDIA Corporation NVIDIA GeForce GTS 450 OpenGL Engine supported 4 1 4.3 NVIDIA GTS 450 -NVIDIA Corporation NVIDIA GeForce GTX 260 OpenGL Engine supported 4 1 3.3 NVIDIA GTX 260 -NVIDIA Corporation NVIDIA GeForce GTX 280 OpenGL Engine supported 4 1 3.3 NVIDIA GTX 280 -NVIDIA Corporation NVIDIA GeForce GTX 285 OpenGL Engine supported 4 1 3.3 NVIDIA GTX 280 -NVIDIA Corporation NVIDIA GeForce GTX 460 OpenGL Engine supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA Corporation NVIDIA GeForce GTX 470 OpenGL Engine supported 5 1 4.3 NVIDIA GTX 470 -NVIDIA Corporation NVIDIA GeForce GTX 480 OpenGL Engine supported 5 1 4.3 NVIDIA GTX 480 -NVIDIA Corporation NVIDIA GeForce GTX 550 Ti OpenGL Engine supported 5 1 4.3 NVIDIA GTX 550 -NVIDIA Corporation NVIDIA GeForce GTX 560 OpenGL Engine supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA Corporation NVIDIA GeForce GTX 560 Ti OpenGL Engine supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA Corporation NVIDIA GeForce GTX 570 OpenGL Engine supported 5 1 4.3 NVIDIA GTX 570 -NVIDIA Corporation NVIDIA GeForce GTX 580 OpenGL Engine supported 5 1 4.3 NVIDIA GTX 580 -NVIDIA Corporation NVIDIA GeForce GTX 650 OpenGL Engine supported 3 1 4.3 NVIDIA GTX 65x -NVIDIA Corporation NVIDIA GeForce GTX 650 Ti OpenGL Engine supported 3 1 4.3 NVIDIA GTX 65x -NVIDIA Corporation NVIDIA GeForce GTX 660 OpenGL Engine supported 5 0 4.3 NVIDIA GTX 66x -NVIDIA Corporation NVIDIA GeForce GTX 660 Ti OpenGL Engine supported 5 0 4.3 NVIDIA GTX 66x -NVIDIA Corporation NVIDIA GeForce GTX 660M OpenGL Engine supported 5 0 4.3 NVIDIA GTX 660M -NVIDIA Corporation NVIDIA GeForce GTX 670 OpenGL Engine supported 5 1 4.3 NVIDIA GTX 67x -NVIDIA Corporation NVIDIA GeForce GTX 675MX OpenGL Engine supported 5 1 4.3 NVIDIA GTX 670M -NVIDIA Corporation NVIDIA GeForce GTX 680 OpenGL Engine supported 5 1 4.3 NVIDIA GTX 68x -NVIDIA Corporation NVIDIA GeForce GTX 680MX OpenGL Engine supported 5 0 4.3 NVIDIA GTX 680M -NVIDIA Corporation NVIDIA GeForce GTX 775M OpenGL Engine supported 5 0 4.3 NVIDIA GTX 770M -NVIDIA Corporation NVIDIA GeForce GTX 780M OpenGL Engine supported 5 0 4.3 NVIDIA GTX 780M -NVIDIA Corporation NVIDIA GeForce Go 7600 OpenGL Engine supported 1 1 2.1 NVIDIA GeForce Go 7600 -NVIDIA Corporation NVIDIA GeForce Pre-Release D14P2-30 OpenGL Engine supported 2 1 3.3 NVIDIA GeForce Pre-Release -NVIDIA Corporation NVIDIA GeForce Pre-Release GK104 OpenGL Engine supported 2 1 3.3 NVIDIA GeForce Pre-Release -NVIDIA Corporation NVIDIA GeForce Pre-Release ION OpenGL Engine supported 2 1 3.3 NVIDIA GeForce Pre-Release -NVIDIA Corporation NVIDIA GeForce Pre-Release Unknown OpenGL Engine supported 2 1 3.3 NVIDIA GeForce Pre-Release -NVIDIA Corporation NVIDIA NV34MAP OpenGL Engine supported 0 0 0 NVIDIA NV34 -NVIDIA Corporation NVIDIA Quadro 4000 OpenGL Engine supported 3 0 4.2 NVIDIA Quadro 4000 -NVIDIA Corporation NVIDIA Quadro FX 4500 OpenGL Engine supported 3 0 2.1 NVIDIA Quadro FX 4500 -NVIDIA Corporation NVIDIA Quadro FX 4800 OpenGL Engine supported 3 0 3.1 NVIDIA Quadro FX 4800 -NVIDIA Corporation NVIDIA Quadro FX 5600 OpenGL Engine supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation NVIDIA Quadro FX 580 OpenGL Engine supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation NVIDIA Quadro FX 770M OpenGL Engine supported 2 0 3.3 NVIDIA Quadro FX 770M -NVIDIA Corporation NVS 2100M/PCI/SSE2 supported 2 0 3.3 NVIDIA Quadro NVS 2100M -NVIDIA Corporation NVS 2100M/PCIe/SSE2 supported 2 0 3.3 NVIDIA Quadro NVS 2100M -NVIDIA Corporation NVS 300/PCI/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation NVS 300/PCI/SSE2/3DNOW! supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation NVS 300/PCIe/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation NVS 310/PCIe/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation NVS 3100M/PCI/SSE2 supported 2 0 3.3 NVIDIA Quadro NVS 3100M -NVIDIA Corporation NVS 3100M/PCIe/SSE2 supported 2 0 3.3 NVIDIA Quadro NVS 3100M -NVIDIA Corporation NVS 315/PCIe/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation NVS 4200M/PCI/SSE2 supported 2 0 4.2 NVIDIA Quadro NVS 4200M -NVIDIA Corporation NVS 4200M/PCIe/SSE2 supported 2 0 4.2 NVIDIA Quadro NVS 4200M -NVIDIA Corporation NVS 510/PCIe/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation NVS 5100M/PCI/SSE2 supported 2 0 0 NVIDIA Quadro NVS 5100M -NVIDIA Corporation NVS 5100M/PCIe/SSE2 supported 2 0 0 NVIDIA Quadro NVS 5100M -NVIDIA Corporation NVS 5200M/PCI/SSE2 supported 2 0 0 NVIDIA Quadro NVS 5200M -NVIDIA Corporation NVS 5200M/PCIe/SSE2 supported 2 0 0 NVIDIA Quadro NVS 5200M -NVIDIA Corporation NVS 5400M/PCIe/SSE2 supported 2 0 0 NVIDIA Quadro NVS 5400M -NVIDIA Corporation Quadro 1000M/PCI/SSE2 supported 2 0 4.2 NVIDIA Quadro 1000M -NVIDIA Corporation Quadro 1000M/PCIe/SSE2 supported 2 0 4.2 NVIDIA Quadro 1000M -NVIDIA Corporation Quadro 1100M/PCIe/SSE2 supported 2 0 3.3 NVIDIA Quadro 1100M -NVIDIA Corporation Quadro 2000 D/PCI/SSE2 supported 3 0 4.2 NVIDIA Quadro 2000 M/D -NVIDIA Corporation Quadro 2000/PCI/SSE2 supported 3 0 4.2 NVIDIA Quadro 2000 M/D -NVIDIA Corporation Quadro 2000/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 2000 M/D -NVIDIA Corporation Quadro 2000D/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 2000 M/D -NVIDIA Corporation Quadro 2000M/PCI/SSE2 supported 3 0 4.2 NVIDIA Quadro 2000 M/D -NVIDIA Corporation Quadro 2000M/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 2000 M/D -NVIDIA Corporation Quadro 3000M/PCI/SSE2 supported 3 0 4.2 NVIDIA Quadro 3000M -NVIDIA Corporation Quadro 3000M/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 3000M -NVIDIA Corporation Quadro 400/PCI/SSE2 supported 2 0 3.3 NVIDIA Quadro 400 -NVIDIA Corporation Quadro 400/PCI/SSE2/3DNOW! supported 2 0 3.3 NVIDIA Quadro 400 -NVIDIA Corporation Quadro 400/PCIe/SSE2 supported 2 0 3.3 NVIDIA Quadro 400 -NVIDIA Corporation Quadro 4000/PCI/SSE2 supported 3 0 4.2 NVIDIA Quadro 4000 -NVIDIA Corporation Quadro 4000/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 4000 -NVIDIA Corporation Quadro 4000M/PCI/SSE2 supported 3 0 4.2 NVIDIA Quadro 4000M -NVIDIA Corporation Quadro 4000M/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 4000M -NVIDIA Corporation Quadro 410/PCIe/SSE2 supported 3 0 3.3 NVIDIA 410 -NVIDIA Corporation Quadro 5000/PCI/SSE2 supported 3 0 4.2 NVIDIA Quadro 50x0 M -NVIDIA Corporation Quadro 5000/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 50x0 M -NVIDIA Corporation Quadro 5000M/PCI/SSE2 supported 3 0 4.2 NVIDIA Quadro 50x0 M -NVIDIA Corporation Quadro 5000M/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 50x0 M -NVIDIA Corporation Quadro 5010M/PCI/SSE2 supported 3 0 4.2 NVIDIA Quadro 50x0 M -NVIDIA Corporation Quadro 5010M/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 50x0 M -NVIDIA Corporation Quadro 600/PCI/SSE2 supported 2 0 4.2 NVIDIA Quadro K600 -NVIDIA Corporation Quadro 600/PCIe/SSE2 supported 2 0 4.2 NVIDIA Quadro K600 -NVIDIA Corporation Quadro 600/PCIe/SSE2/3DNOW! supported 2 0 4.2 NVIDIA Quadro K600 -NVIDIA Corporation Quadro 6000/PCIe/SSE2 supported 3 0 0 NVIDIA Quadro 6000 -NVIDIA Corporation Quadro FX 1000/AGP/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1100/AGP/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1300/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1400/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1400/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1400/PCIe/SSE2/3DNOW! supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1500/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1500/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1500/PCIe/SSE2/3DNOW! supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1500M/PCI/SSE2 supported 1 0 2.1 NVIDIA Quadro FX 1500M -NVIDIA Corporation Quadro FX 1600M/PCI/SSE2 supported 2 0 3.3 NVIDIA Quadro FX 1600M -NVIDIA Corporation Quadro FX 1600M/PCIe/SSE2 supported 2 0 3.3 NVIDIA Quadro FX 1600M -NVIDIA Corporation Quadro FX 1700/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1700/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1700/PCIe/SSE2/3DNOW! supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1700M/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1700M/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1800/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1800/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1800M/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 1800M/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 2000/AGP/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 2500M/PCI/SSE2 supported 2 0 2.1 NVIDIA Quadro FX 2500M -NVIDIA Corporation Quadro FX 2500M/PCIe/SSE2 supported 2 0 2.1 NVIDIA Quadro FX 2500M -NVIDIA Corporation Quadro FX 2700M/PCI/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 2700M -NVIDIA Corporation Quadro FX 2700M/PCIe/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 2700M -NVIDIA Corporation Quadro FX 2800M/PCI/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 2800M -NVIDIA Corporation Quadro FX 2800M/PCIe/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 2800M -NVIDIA Corporation Quadro FX 3000/AGP/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 3400/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 3450/4000 SDI/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 3450/4000 SDI/PCI/SSE2/3DNOW! supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 3450/4000 SDI/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 3500/PCI/SSE2 supported 2 0 2.1 NVIDIA Quadro FX 3500 -NVIDIA Corporation Quadro FX 3500/PCIe/SSE2 supported 2 0 2.1 NVIDIA Quadro FX 3500 -NVIDIA Corporation Quadro FX 3500M/PCI/SSE2 supported 2 0 2.1 NVIDIA Quadro FX 3500 -NVIDIA Corporation Quadro FX 350M/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 3600M/PCI/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 3600 -NVIDIA Corporation Quadro FX 3600M/PCIe/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 3600 -NVIDIA Corporation Quadro FX 360M/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 360M/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 370 Low Profile/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 370/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 370/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 370/PCIe/SSE2/3DNOW! supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 3700/PCI/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 3700 -NVIDIA Corporation Quadro FX 3700/PCIe/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 3700 -NVIDIA Corporation Quadro FX 3700M/PCI/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 3700 -NVIDIA Corporation Quadro FX 3700M/PCIe/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 3700 -NVIDIA Corporation Quadro FX 370M/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 370M/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 380 LP/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 380 LP/PCIe/SSE2/3DNOW! supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 380/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 380/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 3800/PCI/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 3800 -NVIDIA Corporation Quadro FX 3800/PCIe/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 3800 -NVIDIA Corporation Quadro FX 3800M/PCI/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 3800 -NVIDIA Corporation Quadro FX 3800M/PCIe/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 3800 -NVIDIA Corporation Quadro FX 380M/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 380M/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 4500/PCI/SSE2 supported 3 0 2.1 NVIDIA Quadro FX 4500 -NVIDIA Corporation Quadro FX 4500/PCIe/SSE2 supported 3 0 2.1 NVIDIA Quadro FX 4500 -NVIDIA Corporation Quadro FX 4600/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 4800/PCI/SSE2 supported 3 0 3.1 NVIDIA Quadro FX 4800 -NVIDIA Corporation Quadro FX 4800/PCIe/SSE2 supported 3 0 3.1 NVIDIA Quadro FX 4800 -NVIDIA Corporation Quadro FX 500/AGP/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 500/FX 600/AGP/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 500/FX 600/AGP/SSE2/3DNOW! supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 500/FX 600/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 540/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 540/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 550/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 550/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 5500/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 560/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 560/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 5600/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 570/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 570/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 570M/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 570M/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 580/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 580/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 5800/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX 770M/PCI/SSE2 supported 2 0 3.3 NVIDIA Quadro FX 770M -NVIDIA Corporation Quadro FX 770M/PCIe/SSE2 supported 2 0 3.3 NVIDIA Quadro FX 770M -NVIDIA Corporation Quadro FX 880M/PCI/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 880M -NVIDIA Corporation Quadro FX 880M/PCIe/SSE2 supported 3 0 3.3 NVIDIA Quadro FX 880M -NVIDIA Corporation Quadro FX Go1400/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX Go1400/PCIe/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro FX Go700/AGP/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation Quadro K1000/PCIe/SSE2 supported 2 0 4.2 NVIDIA Quadro K1000 -NVIDIA Corporation Quadro K1000M/PCIe/SSE2 supported 2 0 4.2 NVIDIA Quadro 1000M -NVIDIA Corporation Quadro K2000/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 2000 M/D -NVIDIA Corporation Quadro K2000D/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 2000 M/D -NVIDIA Corporation Quadro K2000M/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 2000 M/D -NVIDIA Corporation Quadro K3000M/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 3000M -NVIDIA Corporation Quadro K4000/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 4000 -NVIDIA Corporation Quadro K4000M/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 4000M -NVIDIA Corporation Quadro K5000/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 50x0 M -NVIDIA Corporation Quadro K5000M/PCIe/SSE2 supported 3 0 4.2 NVIDIA Quadro 50x0 M -NVIDIA Corporation Quadro K600/PCIe/SSE2 supported 2 0 4.2 NVIDIA Quadro K600 -NVIDIA Corporation Quadro NVS 110M/PCI/SSE2 supported 0 1 3.3 NVIDIA Quadro NVS 1xxM -NVIDIA Corporation Quadro NVS 130M/PCI/SSE2 supported 0 1 3.3 NVIDIA Quadro NVS 1xxM -NVIDIA Corporation Quadro NVS 130M/PCIe/SSE2 supported 0 1 3.3 NVIDIA Quadro NVS 1xxM -NVIDIA Corporation Quadro NVS 135M/PCI/SSE2 supported 0 1 3.3 NVIDIA Quadro NVS 1xxM -NVIDIA Corporation Quadro NVS 135M/PCIe/SSE2 supported 0 1 3.3 NVIDIA Quadro NVS 1xxM -NVIDIA Corporation Quadro NVS 140M/PCI/SSE2 supported 0 1 3.3 NVIDIA Quadro NVS 1xxM -NVIDIA Corporation Quadro NVS 140M/PCIe/SSE2 supported 0 1 3.3 NVIDIA Quadro NVS 1xxM -NVIDIA Corporation Quadro NVS 150M/PCI/SSE2 supported 0 1 3.3 NVIDIA Quadro NVS 1xxM -NVIDIA Corporation Quadro NVS 150M/PCIe/SSE2 supported 0 1 3.3 NVIDIA Quadro NVS 1xxM -NVIDIA Corporation Quadro NVS 160M/PCI/SSE2 supported 0 1 3.3 NVIDIA Quadro NVS 1xxM -NVIDIA Corporation Quadro NVS 160M/PCIe/SSE2 supported 0 1 3.3 NVIDIA Quadro NVS 1xxM -NVIDIA Corporation Quadro NVS 210S / GeForce 6150LE/PCI/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 210S / GeForce 6150LE/PCI/SSE2/3DNOW! supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 210S / GeForce 6150LE/integrated/SSE2/3DNOW! supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 210S / NVIDIA GeForce 6150LE/PCI/SSE2/3DNOW! supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 210S/PCI/SSE2/3DNOW! supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 280 PCI-E/PCI/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 280 SD/AGP/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 285/PCI/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 285/PCIe/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 290/PCI/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 290/PCIe/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 290/PCIe/SSE2/3DNOW! supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 295/PCI/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 295/PCIe/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 300M/PCI/SSE2 supported 2 0 0 NVIDIA Quadro NVS 300M -NVIDIA Corporation Quadro NVS 320M/PCI/SSE2 supported 2 0 0 NVIDIA Quadro NVS 320M -NVIDIA Corporation Quadro NVS 320M/PCIe/SSE2 supported 2 0 0 NVIDIA Quadro NVS 320M -NVIDIA Corporation Quadro NVS 420/PCI/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 420/PCIe/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 420/PCIe/SSE2/3DNOW! supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 450/PCIe/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 510M/PCI/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS 55/280 PCI/PCI/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS with AGP8X/AGP/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro NVS/AGP/SSE2 supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Corporation Quadro PCI-E Series/PCI/SSE2 NO MATCH -NVIDIA Corporation Quadro2 MXR/AGP/SSE2 supported 0 0 1.5 NVIDIA Quadro2 -NVIDIA Corporation Quadro4 380 XGL/AGP/SSE2 supported 0 0 1.5 NVIDIA Quadro4 -NVIDIA Corporation Quadro4 550 XGL/AGP/SSE2 supported 0 0 1.5 NVIDIA Quadro4 -NVIDIA Corporation Quadro4 700 XGL/AGP/SSE2 supported 0 0 1.5 NVIDIA Quadro4 -NVIDIA Corporation Quadro4 980 XGL/AGP/SSE2 supported 0 0 1.5 NVIDIA Quadro4 -NVIDIA Corporation RIVA TNT2/AGP/SSE2 unsupported 0 0 1.5 NVIDIA RIVA TNT -NVIDIA Corporation RIVA TNT2/AGP/SSE2/3DNOW! unsupported 0 0 1.5 NVIDIA RIVA TNT -NVIDIA Corporation Stinger/emulated by Quadro FX 500/FX 600/PCI/SSE2 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Corporation nForce 750a SLI/PCI/SSE2 unsupported 0 0 3.3 NVIDIA nForce -NVIDIA Corporation nForce 750a SLI/integrated/SSE2 unsupported 0 0 3.3 NVIDIA nForce -NVIDIA Corporation nForce 760i SLI/integrated/SSE2 unsupported 0 0 3.3 NVIDIA nForce -NVIDIA Corporation nForce 980a/780a SLI/integrated/SSE2 unsupported 0 0 3.3 NVIDIA nForce -NVIDIA Corporation unknown board/AGP/SSE2 unsupported 0 0 2.1 NVIDIA Generic Unknown -NVIDIA Corporation unknown board/PCI/SSE2 unsupported 0 0 2.1 NVIDIA Generic Unknown -NVIDIA Corporation unknown board/PCI/SSE2/3DNOW! unsupported 0 0 2.1 NVIDIA Generic Unknown -NVIDIA Corporation unknown board/PCIe/SSE2 unsupported 0 0 2.1 NVIDIA Generic Unknown -NVIDIA D9M supported 1 0 0 NVIDIA D9M -NVIDIA G 103M supported 1 1 3.3 NVIDIA G 100M -NVIDIA G 105M supported 1 1 3.3 NVIDIA G 100M -NVIDIA G 110M supported 1 1 3.3 NVIDIA G 110M -NVIDIA G 120M supported 1 1 3.3 NVIDIA G 120M -NVIDIA G 200 supported 2 1 3.3 NVIDIA G200 -NVIDIA G 205M supported 1 0 0 NVIDIA G 200M -NVIDIA G 210 supported 3 1 3.3 NVIDIA G210 -NVIDIA G 310M supported 2 0 3.3 NVIDIA G 310M -NVIDIA G 320M supported 3 0 3.3 NVIDIA GT 320M -NVIDIA G 405 supported 3 0 3.3 NVIDIA 405 -NVIDIA G 410M supported 3 1 4.2 NVIDIA G 410M -NVIDIA G 610M supported 3 1 4.3 NVIDIA 610M -NVIDIA G100 supported 3 1 4.2 NVIDIA G100 -NVIDIA G100M supported 1 1 3.3 NVIDIA G 100M -NVIDIA G102M supported 1 1 3.3 NVIDIA G 100M -NVIDIA G103M supported 1 1 3.3 NVIDIA G 100M -NVIDIA G105M supported 1 1 3.3 NVIDIA G 100M -NVIDIA G200 supported 2 1 3.3 NVIDIA G200 -NVIDIA G210 supported 3 1 3.3 NVIDIA G210 -NVIDIA G210M supported 3 0 3.3 NVIDIA G210M -NVIDIA G73 supported 1 0 0 NVIDIA G73 -NVIDIA G84 supported 2 0 0 NVIDIA G84 -NVIDIA G92 supported 3 0 0 NVIDIA G92 -NVIDIA G94 supported 3 0 0 NVIDIA G94 -NVIDIA GT 120 supported 2 0 3.3 NVIDIA GT 120 -NVIDIA GT 120M supported 2 0 3.3 NVIDIA GT 120 -NVIDIA GT 130 supported 2 0 3.3 NVIDIA GT 130 -NVIDIA GT 130M supported 3 1 3.3 NVIDIA GT 130M -NVIDIA GT 140 supported 2 0 3.3 NVIDIA GT 140 -NVIDIA GT 140M supported 3 1 3.3 NVIDIA GT 140M -NVIDIA GT 150 supported 2 1 3.3 NVIDIA GT 150 -NVIDIA GT 220 supported 2 1 3.3 NVIDIA GT 220 -NVIDIA GT 220M supported 3 1 3.3 NVIDIA GT 220M -NVIDIA GT 230 supported 2 1 3.3 NVIDIA GT 230 -NVIDIA GT 230M supported 3 1 3.3 NVIDIA GT 230M -NVIDIA GT 240 supported 4 1 3.3 NVIDIA GT 240 -NVIDIA GT 240M supported 3 1 3.3 NVIDIA GT 240M -NVIDIA GT 260M supported 3 1 3.3 NVIDIA GT 260M -NVIDIA GT 320 supported 3 0 3.3 NVIDIA GT 320 -NVIDIA GT 320M supported 3 0 3.3 NVIDIA GT 320M -NVIDIA GT 325M supported 3 0 3.3 NVIDIA GT 320M -NVIDIA GT 330 supported 3 0 3.3 NVIDIA GT 330 -NVIDIA GT 330M supported 3 1 3.3 NVIDIA GT 330M -NVIDIA GT 335M supported 3 1 3.3 NVIDIA GT 330M -NVIDIA GT 340 supported 3 0 0 NVIDIA GT 340 -NVIDIA GT 340M supported 4 1 3.3 NVIDIA GT 340M -NVIDIA GT 415M supported 3 0 0 NVIDIA 410M -NVIDIA GT 420 supported 3 1 4.3 NVIDIA GT 420 -NVIDIA GT 420M supported 3 1 4.3 NVIDIA GT 420M -NVIDIA GT 425M supported 3 1 4.3 NVIDIA GT 420M -NVIDIA GT 430 supported 3 1 4.3 NVIDIA GT 430 -NVIDIA GT 430M supported 3 1 4.3 NVIDIA GT 430M -NVIDIA GT 435M supported 3 1 4.3 NVIDIA GT 430M -NVIDIA GT 440 supported 4 1 4.3 NVIDIA GT 440 -NVIDIA GT 440M supported 3 1 4.3 NVIDIA GT 440M -NVIDIA GT 445M supported 3 1 4.3 NVIDIA GT 440M -NVIDIA GT 450 supported 4 1 4.3 NVIDIA GT 450 -NVIDIA GT 520 supported 3 1 4.3 NVIDIA GT 520 -NVIDIA GT 520M supported 3 1 4.3 NVIDIA GT 520M -NVIDIA GT 525M supported 3 1 4.3 NVIDIA GT 520M -NVIDIA GT 530M supported 3 1 4.3 NVIDIA GT 530M -NVIDIA GT 540 supported 3 1 4.3 NVIDIA GT 540 -NVIDIA GT 540M supported 3 1 4.3 NVIDIA GT 540M -NVIDIA GT 550 supported 3 1 4.3 NVIDIA GT 550 -NVIDIA GT 550M supported 3 1 4.3 NVIDIA GT 550M -NVIDIA GT 555M supported 3 1 4.3 NVIDIA GT 550M -NVIDIA GT 610 supported 3 1 4.3 NVIDIA GT 61x -NVIDIA GT 620 supported 3 0 4.3 NVIDIA GT 62x -NVIDIA GT 620M supported 3 0 4.3 NVIDIA GT 620M -NVIDIA GT 630 supported 3 0 4.3 NVIDIA GT 63x -NVIDIA GT 630M supported 3 0 4.3 NVIDIA GT 630M -NVIDIA GT 635M supported 3 0 4.3 NVIDIA GT 630M -NVIDIA GT 640 supported 3 0 4.3 NVIDIA GT 64x -NVIDIA GT 640M supported 3 0 4.3 NVIDIA GT 640M -NVIDIA GT 650 supported 3 1 4.3 NVIDIA GT 65x -NVIDIA GT 650M supported 3 0 4.3 NVIDIA GT 650M -NVIDIA GTS 160M supported 2 0 0 NVIDIA GTS 160M -NVIDIA GTS 240 supported 4 1 3.3 NVIDIA GTS 240 -NVIDIA GTS 250 supported 4 1 3.3 NVIDIA GTS 250 -NVIDIA GTS 350M supported 4 1 3.3 NVIDIA GTS 350M -NVIDIA GTS 360 supported 4 1 3.3 NVIDIA GTS 360 -NVIDIA GTS 360M supported 5 1 3.3 NVIDIA GTS 360M -NVIDIA GTS 450 supported 4 1 4.3 NVIDIA GTS 450 -NVIDIA GTX 260 supported 4 1 3.3 NVIDIA GTX 260 -NVIDIA GTX 270 supported 4 0 3.3 NVIDIA GTX 270 -NVIDIA GTX 275 supported 4 0 3.3 NVIDIA GTX 270 -NVIDIA GTX 280 supported 4 1 3.3 NVIDIA GTX 280 -NVIDIA GTX 285 supported 4 1 3.3 NVIDIA GTX 280 -NVIDIA GTX 290 supported 5 0 3.3 NVIDIA GTX 290 -NVIDIA GTX 295 supported 5 0 3.3 NVIDIA GTX 290 -NVIDIA GTX 460 supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA GTX 460M supported 4 1 4.3 NVIDIA GTX 460M -NVIDIA GTX 465 supported 5 1 4.3 NVIDIA GTX 460 -NVIDIA GTX 470 supported 5 1 4.3 NVIDIA GTX 470 -NVIDIA GTX 470M supported 3 0 4.3 NVIDIA GTX 470M -NVIDIA GTX 480 supported 5 1 4.3 NVIDIA GTX 480 -NVIDIA GTX 480M supported 3 1 4.3 NVIDIA GTX 480M -NVIDIA GTX 485M supported 3 1 4.3 NVIDIA GTX 480M -NVIDIA GTX 550 supported 5 1 4.3 NVIDIA GTX 550 -NVIDIA GTX 560 supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA GTX 560 Ti supported 5 1 4.3 NVIDIA GTX 560 -NVIDIA GTX 570 supported 5 1 4.3 NVIDIA GTX 570 -NVIDIA GTX 580 supported 5 1 4.3 NVIDIA GTX 580 -NVIDIA GTX 580M supported 5 1 4.3 NVIDIA GTX 580M -NVIDIA GTX 590 supported 5 1 4.3 NVIDIA GTX 590 -NVIDIA GTX 650 supported 3 1 4.3 NVIDIA GTX 65x -NVIDIA GTX 660 supported 5 0 4.3 NVIDIA GTX 66x -NVIDIA GTX 670 supported 5 1 4.3 NVIDIA GTX 67x -NVIDIA GTX 670M supported 5 1 4.3 NVIDIA GTX 670M -NVIDIA GTX 675M supported 5 1 4.3 NVIDIA GTX 670M -NVIDIA GTX 680 supported 5 1 4.3 NVIDIA GTX 68x -NVIDIA GTX 680M supported 5 0 4.3 NVIDIA GTX 680M -NVIDIA GTX 690 supported 5 1 4.3 NVIDIA GTX 69x -NVIDIA GTX 770 supported 5 0 4.3 NVIDIA GTX 77x -NVIDIA GTX TITAN supported 5 0 4.3 NVIDIA GTX TITAN -NVIDIA GeForce 2 supported 0 1 1.5 NVIDIA GeForce 2 -NVIDIA GeForce 3 supported 2 1 2.1 NVIDIA GeForce 3 -NVIDIA GeForce 4 supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA GeForce 4 Go supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA GeForce 4 MX supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA GeForce 4 Ti supported 0 1 1.5 NVIDIA GeForce 4 -NVIDIA GeForce 6100 supported 3 1 4.2 NVIDIA GeForce 6100 -NVIDIA GeForce 6200 supported 0 1 2.1 NVIDIA GeForce 6200 -NVIDIA GeForce 6500 supported 1 1 2.1 NVIDIA GeForce 6500 -NVIDIA GeForce 6600 supported 2 1 2.1 NVIDIA GeForce 6600 -NVIDIA GeForce 6700 supported 2 1 2.1 NVIDIA GeForce 6700 -NVIDIA GeForce 6800 supported 1 1 2.1 NVIDIA GeForce 6800 -NVIDIA GeForce 7000 supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA GeForce 7000M supported 1 1 2.1 NVIDIA GeForce 7000 -NVIDIA GeForce 7100 supported 1 1 2.1 NVIDIA GeForce 7100 -NVIDIA GeForce 7300 supported 1 1 2.1 NVIDIA GeForce 7300 -NVIDIA GeForce 7500 supported 2 1 2.1 NVIDIA GeForce 7500 -NVIDIA GeForce 7600 supported 2 1 2.1 NVIDIA GeForce 7600 -NVIDIA GeForce 7800 supported 2 1 2.1 NVIDIA GeForce 7800 -NVIDIA GeForce 7900 supported 3 1 2.1 NVIDIA GeForce 7900 -NVIDIA GeForce 8100 supported 1 0 3.3 NVIDIA GeForce 8100 -NVIDIA GeForce 8200 supported 1 0 3.3 NVIDIA GeForce 8200 -NVIDIA GeForce 8200M supported 1 0 3.3 NVIDIA GeForce 8200M -NVIDIA GeForce 8300 supported 3 1 3.3 NVIDIA GeForce 8300 -NVIDIA GeForce 8400 supported 2 1 3.3 NVIDIA GeForce 8400 -NVIDIA GeForce 8400M supported 1 1 3.3 NVIDIA GeForce 8400M -NVIDIA GeForce 8500 supported 2 1 3.3 NVIDIA GeForce 8500 -NVIDIA GeForce 8600 supported 3 1 3.3 NVIDIA GeForce 8600 -NVIDIA GeForce 8600M supported 2 1 3.3 NVIDIA GeForce 8600M -NVIDIA GeForce 8700 supported 3 0 0 NVIDIA GeForce 8700 -NVIDIA GeForce 8700M supported 2 1 3.3 NVIDIA GeForce 8700M -NVIDIA GeForce 8800 supported 3 1 3.3 NVIDIA GeForce 8800 -NVIDIA GeForce 8800M supported 2 1 3.3 NVIDIA GeForce 8800M -NVIDIA GeForce 9100 supported 0 0 3.3 NVIDIA GeForce 9100 -NVIDIA GeForce 9100M supported 0 0 3.3 NVIDIA GeForce 9100M -NVIDIA GeForce 9200 supported 1 0 3.3 NVIDIA GeForce 9200 -NVIDIA GeForce 9200M supported 1 0 3.3 NVIDIA GeForce 9200M -NVIDIA GeForce 9300 supported 1 1 3.3 NVIDIA GeForce 9300 -NVIDIA GeForce 9300M supported 1 1 3.3 NVIDIA GeForce 9300M -NVIDIA GeForce 9400 supported 3 1 3.3 NVIDIA GeForce 9400 -NVIDIA GeForce 9400M supported 2 1 3.3 NVIDIA GeForce 9400M -NVIDIA GeForce 9500 supported 3 1 3.3 NVIDIA GeForce 9500 -NVIDIA GeForce 9500M supported 1 1 3.3 NVIDIA GeForce 9500M -NVIDIA GeForce 9600 supported 3 1 3.3 NVIDIA GeForce 9600 -NVIDIA GeForce 9600M supported 2 1 3.3 NVIDIA GeForce 9600M -NVIDIA GeForce 9700M supported 0 1 3.3 NVIDIA GeForce 9700M -NVIDIA GeForce 9800 supported 3 1 3.3 NVIDIA GeForce 9800 -NVIDIA GeForce 9800M supported 2 1 3.3 NVIDIA GeForce 9800M -NVIDIA GeForce FX 5200 supported 0 0 2.1 NVIDIA GeForce FX 5200 -NVIDIA GeForce FX 5500 supported 0 1 2.1 NVIDIA GeForce FX 5500 -NVIDIA GeForce FX 5600 supported 1 1 2.1 NVIDIA GeForce FX 5600 -NVIDIA GeForce FX 5700 supported 0 1 2.1 NVIDIA GeForce FX 5700 -NVIDIA GeForce FX 5900 supported 1 1 2.1 NVIDIA GeForce FX 5900 -NVIDIA GeForce FX Go5100 supported 3 0 0 NVIDIA 510 -NVIDIA GeForce FX Go5200 supported 0 0 1.5 NVIDIA GeForce FX Go5200 -NVIDIA GeForce FX Go5600 supported 0 1 2.1 NVIDIA GeForce FX Go5600 -NVIDIA GeForce FX Go5700 supported 1 1 1.5 NVIDIA GeForce FX Go5700 -NVIDIA GeForce Go 6 supported 1 0 0 NVIDIA GeForce Go 6 -NVIDIA GeForce Go 6100 supported 0 1 2.1 NVIDIA GeForce Go 6100 -NVIDIA GeForce Go 6200 supported 0 0 1.5 NVIDIA GeForce Go 6200 -NVIDIA GeForce Go 6400 supported 1 1 2.1 NVIDIA GeForce Go 6400 -NVIDIA GeForce Go 6600 supported 0 1 2.1 NVIDIA GeForce Go 6600 -NVIDIA GeForce Go 6800 supported 0 1 2.1 NVIDIA GeForce Go 6800 -NVIDIA GeForce Go 7200 supported 1 0 2.1 NVIDIA GeForce Go 7200 -NVIDIA GeForce Go 7300 supported 1 1 2.1 NVIDIA GeForce Go 7300 -NVIDIA GeForce Go 7400 supported 1 1 2.1 NVIDIA GeForce Go 7400 -NVIDIA GeForce Go 7600 supported 1 1 2.1 NVIDIA GeForce Go 7600 -NVIDIA GeForce Go 7700 supported 0 1 2.1 NVIDIA GeForce Go 7700 -NVIDIA GeForce Go 7800 supported 2 0 0 NVIDIA GeForce Go 7800 -NVIDIA GeForce Go 7900 supported 1 1 2.1 NVIDIA GeForce Go 7900 -NVIDIA GeForce PCX supported 0 0 1.5 NVIDIA GeForce PCX -NVIDIA Generic unsupported 0 0 2.1 NVIDIA Generic -NVIDIA ION supported 2 1 3.3 NVIDIA ION a -NVIDIA MCP61 supported 1 0 2.1 NVIDIA MCP61 -NVIDIA NV34 supported 0 0 0 NVIDIA NV34 -NVIDIA PCI unsupported 0 0 2.1 NVIDIA PCI -NVIDIA Quadro 2000 supported 3 0 4.2 NVIDIA Quadro 2000 M/D -NVIDIA Quadro 2000 M/D supported 3 0 4.2 NVIDIA Quadro 2000 M/D -NVIDIA Quadro 3000M supported 3 0 4.2 NVIDIA Quadro 3000M -NVIDIA Quadro 400 supported 2 0 3.3 NVIDIA Quadro 400 -NVIDIA Quadro 4000 supported 3 0 4.2 NVIDIA Quadro 4000 -NVIDIA Quadro 4000M supported 3 0 4.2 NVIDIA Quadro 4000M -NVIDIA Quadro 50x0 M supported 3 0 4.2 NVIDIA Quadro 50x0 M -NVIDIA Quadro 600 supported 2 0 4.2 NVIDIA Quadro 600 -NVIDIA Quadro 6000 supported 3 0 0 NVIDIA Quadro 6000 -NVIDIA Quadro FX supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Quadro FX 1500M supported 1 0 2.1 NVIDIA Quadro FX 1500M -NVIDIA Quadro FX 1800 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Quadro FX 2500M supported 2 0 2.1 NVIDIA Quadro FX 2500M -NVIDIA Quadro FX 2700M supported 3 0 3.3 NVIDIA Quadro FX 2700M -NVIDIA Quadro FX 2800M supported 3 0 3.3 NVIDIA Quadro FX 2800M -NVIDIA Quadro FX 3500 supported 2 0 2.1 NVIDIA Quadro FX 3500 -NVIDIA Quadro FX 3700 supported 3 0 3.3 NVIDIA Quadro FX 3700 -NVIDIA Quadro FX 3800 supported 3 0 3.3 NVIDIA Quadro FX 3800 -NVIDIA Quadro FX 4500 supported 3 0 2.1 NVIDIA Quadro FX 4500 -NVIDIA Quadro FX 4800 supported 3 0 3.1 NVIDIA Quadro FX 4800 -NVIDIA Quadro FX 550 supported 1 0 3.3 NVIDIA Quadro FX -NVIDIA Quadro FX 770M supported 2 0 3.3 NVIDIA Quadro FX 770M -NVIDIA Quadro FX 880M supported 3 0 3.3 NVIDIA Quadro FX 880M -NVIDIA Quadro NVS supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Quadro NVS 1xxM supported 0 0 4.2 NVIDIA Quadro NVS -NVIDIA Quadro NVS 4200M supported 2 0 4.2 NVIDIA Quadro NVS 4200M -NVIDIA Quadro2 supported 0 0 1.5 NVIDIA Quadro2 -NVIDIA nForce unsupported 0 0 3.3 NVIDIA nForce -Oracle VirtualBox Graphics supported 0 1 2.1 Oracle -Parallels and ATI Technologies Inc. Parallels using ATI Radeon Barts XT Prototype OpenGL Engine supported 3 1 2.1 AMD BARTS (HD 6800) -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 2600 OpenGL Engine supported 2 1 4 ATI Radeon HD 2600 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 2600 PRO OpenGL Engine supported 2 1 4 ATI Radeon HD 2600 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 4670 OpenGL Engine supported 3 1 4 ATI Radeon HD 4600 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 4850 OpenGL Engine supported 3 1 4 ATI Radeon HD 4800 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5670 OpenGL Engine supported 3 1 4.2 ATI Radeon HD 5600 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5750 OpenGL Engine supported 3 1 4.2 ATI Radeon HD 5700 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5770 OpenGL Engine supported 3 1 4.2 ATI Radeon HD 5700 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6630M OpenGL Engine supported 3 1 4.2 ATI Radeon HD 6600 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6750M OpenGL Engine supported 3 1 4.2 ATI Radeon HD 6700 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6770M OpenGL Engine supported 3 1 4.2 ATI Radeon HD 6700 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6970M OpenGL Engine supported 5 1 4.2 ATI Radeon HD 6900 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon X1600 OpenGL Engine supported 2 1 2.1 ATI Radeon X1600 -Parallels and Intel Inc. Parallels using Intel GMA X3100 OpenGL Engine supported 1 1 2.1 Intel X3100 -Parallels and Intel Inc. Parallels using Intel HD Graphics 3000 OpenGL Engine supported 3 1 3.1 Intel HD Graphics 3000 -Parallels and Intel Inc. Parallels using Intel HD Graphics 4000 OpenGL Engine supported 3 1 4.2 Intel HD Graphics 4000 -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce 320M OpenGL Engine supported 2 0 3.3 NVIDIA 320M -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce 8800 GS OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 8800 -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce 9400 OpenGL Engine supported 3 1 3.3 NVIDIA GeForce 9400 -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce 9400M OpenGL Engine supported 2 1 3.3 NVIDIA GeForce 9400M -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce 9600M GT OpenGL Engine supported 2 1 3.3 NVIDIA GeForce 9600M -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GT 130 OpenGL Engine supported 2 0 3.3 NVIDIA GT 130 -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GT 330M OpenGL Engine supported 3 1 3.3 NVIDIA GT 330M -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GT 640 OpenGL Engine supported 3 0 4.3 NVIDIA GT 64x -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GT 640M OpenGL Engine supported 3 0 4.3 NVIDIA GT 640M -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GT 650M OpenGL Engine supported 3 0 4.3 NVIDIA GT 650M -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GTX 570 OpenGL Engine supported 5 1 4.3 NVIDIA GTX 570 -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GTX 660 OpenGL Engine supported 5 0 4.3 NVIDIA GTX 66x -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GTX 660 Ti OpenGL Engine supported 5 0 4.3 NVIDIA GTX 66x -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GTX 670 OpenGL Engine supported 5 1 4.3 NVIDIA GTX 67x -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GTX 680MX OpenGL Engine supported 5 0 4.3 NVIDIA GTX 680M -PowerVR SGX545 supported 1 1 3 PowerVR SGX545 -S3 unsupported 0 1 1.4 S3 -S3 Graphics K8M800/MMX/K3D unsupported 0 1 1.4 S3 -S3 Graphics KM400/KN400/MMX/SSE unsupported 0 1 1.4 S3 -S3 Graphics P8M800/MMX/SSE unsupported 0 1 1.4 S3 -S3 Graphics Unknown Device/MMX/SSE unsupported 0 1 1.4 S3 -S3 Graphics VIA/S3G UniChrome IGP/MMX/SSE unsupported 0 1 1.4 S3 -S3 Graphics VIA/S3G UniChrome Pro IGP/MMX/SSE unsupported 0 1 1.4 S3 -S3 Graphics, Incorporated ProSavage/Twister unsupported 0 1 1.4 S3 -S3 Graphics, Incorporated S3 Graphics Chrome9 HC unsupported 0 1 1.4 S3 -S3 Graphics, Incorporated S3 Graphics DeltaChrome unsupported 0 1 1.4 S3 -S3 Graphics, Incorporated VIA Chrome9 HC IGP unsupported 0 1 1.4 S3 -S3 Graphics, Incorporated VIA Chrome9 HC3 IGP unsupported 0 1 1.4 S3 -S3 Graphics, Incorporated VIA Chrome9 HD Pro IGP unsupported 0 1 1.4 S3 -SiS unsupported 0 1 1.5 SiS -SiS 3D-Analyze v2.3 - http://www.tommti-systems.com unsupported 0 1 1.5 SiS -SiS 650/M650 VGA unsupported 0 1 1.5 SiS -SiS 650/M650 VGA / MMX/SSE2 /AGP unsupported 0 1 1.5 SiS -SiS 661 VGA unsupported 0 1 1.5 SiS -SiS 662 VGA unsupported 0 1 1.5 SiS -SiS 760 VGA unsupported 0 1 1.5 SiS -SiS 761GX VGA unsupported 0 1 1.5 SiS -SiS Mirage Graphics3 unsupported 0 1 1.4 S3 -SiS Xabre VGA unsupported 0 1 1.5 SiS -Tungsten Graphics, Inc Mesa DRI Intel(R) 845G unsupported 0 1 1.4 Intel 845G -Tungsten Graphics, Inc Mesa DRI Intel(R) 852GM/855GM unsupported 0 1 1.4 Intel 855GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 852GM/855GM x86/MMX/SSE2 unsupported 0 1 1.4 Intel 855GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 865G unsupported 0 1 1.4 Intel 865G -Tungsten Graphics, Inc Mesa DRI Intel(R) 865G x86/MMX/SSE2 unsupported 0 1 1.4 Intel 865G -Tungsten Graphics, Inc Mesa DRI Intel(R) 915G unsupported 0 1 1.4 Intel 915G -Tungsten Graphics, Inc Mesa DRI Intel(R) 915G x86/MMX/SSE2 unsupported 0 1 1.4 Intel 915G -Tungsten Graphics, Inc Mesa DRI Intel(R) 915GM unsupported 0 1 1.4 Intel 915GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 915GM 20061017 x86/MMX/SSE2 unsupported 0 1 1.4 Intel 915GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 915GM GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 1 1.4 Intel 915GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 915GM x86/MMX/SSE2 unsupported 0 1 1.4 Intel 915GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 945G GEM 20091221 2009Q4 x86/MMX/SSE2 supported 0 1 1.4 Intel 945G -Tungsten Graphics, Inc Mesa DRI Intel(R) 945G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 supported 0 1 1.4 Intel 945G -Tungsten Graphics, Inc Mesa DRI Intel(R) 945G x86/MMX/SSE2 supported 0 1 1.4 Intel 945G -Tungsten Graphics, Inc Mesa DRI Intel(R) 945GM GEM 20091221 2009Q4 x86/MMX/SSE2 supported 0 1 1.4 Intel 945GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 945GM x86/MMX/SSE2 supported 0 1 1.4 Intel 945GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 945GME supported 0 1 1.4 Intel 945GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 945GME GEM 20091221 2009Q4 x86/MMX/SSE2 supported 0 1 1.4 Intel 945GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 945GME x86/MMX/SSE2 supported 0 1 1.4 Intel 945GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 965GM supported 0 1 2.1 Intel 965 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965GM GEM 20091221 2009Q4 x86/MMX/SSE2 supported 0 1 2.1 Intel 965 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965GM x86/MMX/SSE2 supported 0 1 2.1 Intel 965 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965GME/GLE x86/MMX/SSE2 supported 0 1 2.1 Intel 965 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965Q supported 0 1 2.1 Intel 965 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965Q GEM 20091221 2009Q4 x86/MMX/SSE2 supported 0 1 2.1 Intel 965 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965Q x86/MMX/SSE2 supported 0 1 2.1 Intel 965 -Tungsten Graphics, Inc Mesa DRI Intel(R) G33 GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 1 1 1.4 Intel G33 -Tungsten Graphics, Inc Mesa DRI Intel(R) G33 x86/MMX/SSE2 unsupported 1 1 1.4 Intel G33 -Tungsten Graphics, Inc Mesa DRI Intel(R) G41 GEM 20091221 2009Q4 x86/MMX/SSE2 supported 1 1 2.1 Intel G41 -Tungsten Graphics, Inc Mesa DRI Intel(R) G41 GEM 20100330 DEVELOPMENT x86/MMX/SSE2 supported 1 1 2.1 Intel G41 -Tungsten Graphics, Inc Mesa DRI Intel(R) G41 x86/MMX/SSE2 supported 1 1 2.1 Intel G41 -Tungsten Graphics, Inc Mesa DRI Intel(R) IGD unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) IGD x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) IGD GEM 20091221 2009Q4 supported 1 1 2.1 Intel Q45/Q43 -Tungsten Graphics, Inc Mesa DRI Intel(R) IGD GEM 20091221 2009Q4 x86/MMX/SSE2 supported 1 1 2.1 Intel Q45/Q43 -Tungsten Graphics, Inc Mesa DRI Intel(R) IGD x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) IGDNG_M GEM 20091221 2009Q4 supported 1 1 2.1 Intel Q45/Q43 -Tungsten Graphics, Inc Mesa DRI Intel(R) IGDNG_M GEM 20091221 2009Q4 x86/MMX/SSE2 supported 1 1 2.1 Intel Q45/Q43 -Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Desktop unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Desktop x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Mobile unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Mobile GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Mobile x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Ivybridge Desktop unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Ivybridge Desktop x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Ivybridge Mobile unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Ivybridge Mobile x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Q35 GEM 20091221 2009Q4 x86/MMX/SSE2 supported 1 1 2.1 Intel Q45/Q43 -Tungsten Graphics, Inc Mesa DRI Intel(R) Q35 x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Q45/Q43 x86/MMX/SSE2 supported 1 1 2.1 Intel Q45/Q43 -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Desktop unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Desktop x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Mobile unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Mobile GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Server unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Mobile Intel(R) GM45 Express Chipset unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Mobile Intel(R) GM45 Express Chipset GEM 20091221 2009Q4 supported 1 1 2.1 Intel Q45/Q43 -Tungsten Graphics, Inc Mesa DRI Mobile Intel(R) GM45 Express Chipset GEM 20091221 2009Q4 x86/MMX/SSE2 supported 1 1 2.1 Intel Q45/Q43 -Tungsten Graphics, Inc Mesa DRI Mobile Intel(R) GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MMX unsupported 1 1 3 Mesa -Tungsten Graphics, Inc Mesa DRI Mobile Intel(R) GM45 Express Chipset x86/MMX/SSE2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc. Mesa DRI R100 (RS200 4437) x86/MMX/SSE2 NO-TCL DRI2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc. Mesa DRI R100 (RV200 4C57) TCL DRI2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc. Mesa DRI R100 (RV200 4C57) x86/MMX/SSE2 TCL DRI2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc. Mesa DRI R200 (RV250 4C66) x86/MMX/SSE2 TCL DRI2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5960) x86/MMX+/3DNow!+/SSE2 TCL DRI2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5960) x86/MMX/SSE2 TCL DRI2 unsupported 1 1 3 Mesa -Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5961) x86/MMX/SSE2 TCL DRI2 unsupported 1 1 3 Mesa -VMware, Inc. Gallium 0.3 on SVGA3D; build: RELEASE; supported 1 1 2.1 Gallium -VMware, Inc. Gallium 0.4 on SVGA3D; build: RELEASE; supported 1 1 2.1 Gallium -VMware, Inc. Gallium 0.4 on i915 (chipset: 945GME) supported 1 1 2.1 Gallium -VMware, Inc. Gallium 0.4 on llvmpipe supported 1 1 2.1 Gallium -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x209) supported 1 1 2.1 Gallium -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x300) supported 1 1 2.1 Gallium -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x301) supported 1 1 2.1 Gallium -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x302) supported 1 1 2.1 Gallium -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 3.2, 128 bits) supported 1 1 2.1 Gallium -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 3.2, 256 bits) supported 1 1 2.1 Gallium -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 3.3, 128 bits) supported 1 1 2.1 Gallium -X.Org Gallium 0.4 on AMD ARUBA supported 3 1 2.1 AMD ARUBA (HD 6800) -X.Org Gallium 0.4 on AMD BARTS supported 3 1 2.1 AMD BARTS (HD 6800) -X.Org Gallium 0.4 on AMD CAICOS supported 3 0 0 AMD CAICOS (HD 6400) -X.Org Gallium 0.4 on AMD CAPE VERDE supported 1 1 2.1 Gallium -X.Org Gallium 0.4 on AMD CEDAR supported 2 0 2.1 AMD CEDAR (HD 5450) -X.Org Gallium 0.4 on AMD CYPRESS supported 3 0 0 AMD CYPRESS (HD 5800) -X.Org Gallium 0.4 on AMD JUNIPER supported 3 0 0 AMD JUNIPER (HD 5700) -X.Org Gallium 0.4 on AMD PALM supported 1 1 2.1 Gallium -X.Org Gallium 0.4 on AMD REDWOOD supported 3 0 1.4 AMD REDWOOD (HD 5500/5600) -X.Org Gallium 0.4 on AMD RS780 supported 0 1 2.1 AMD RS780 (HD 3200) -X.Org Gallium 0.4 on AMD RS880 supported 0 1 3.2 AMD RS880 (HD 4200) -X.Org Gallium 0.4 on AMD RV610 supported 1 0 0 AMD RV610 (HD 2400) -X.Org Gallium 0.4 on AMD RV620 supported 1 0 0 AMD RV620 (HD 3400) -X.Org Gallium 0.4 on AMD RV630 supported 2 0 0 AMD RV630 (HD 2600) -X.Org Gallium 0.4 on AMD RV635 supported 3 0 1.4 AMD RV635 (HD 3600) -X.Org Gallium 0.4 on AMD RV670 supported 3 0 0 AMD RV670 (HD 3800) -X.Org Gallium 0.4 on AMD RV710 supported 0 1 1.4 AMD RV710 (HD 4300) -X.Org Gallium 0.4 on AMD RV730 supported 3 0 1.4 AMD RV730 (HD 4600) -X.Org Gallium 0.4 on AMD RV740 supported 3 0 0 AMD RV740 (HD 4700) -X.Org Gallium 0.4 on AMD RV770 supported 3 0 0 AMD RV770 (HD 4800) -X.Org Gallium 0.4 on AMD SUMO supported 3 1 4.1 AMD SUMO -X.Org Gallium 0.4 on AMD SUMO2 supported 3 1 4.1 AMD SUMO -X.Org Gallium 0.4 on AMD TURKS supported 3 0 2.1 AMD TURKS (HD 6500/6600) -X.Org R300 Project Gallium 0.4 on ATI R350 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI R580 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RC410 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RS480 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RS482 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RS600 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RS690 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RV350 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RV370 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RV380 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RV410 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RV515 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RV530 supported 0 1 2.1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RV570 supported 0 1 2.1 ATI R300 (9700) -XGI Volari V3 unsupported 0 0 0 XGI -http://TitaniumGL.tk NVIDIA GeForce GTX 690/3999M VRAM/TitaniumGL/4 THREADs/3D GRAPHICS ACCELERATION supported 5 1 4.3 NVIDIA GTX 69x -nouveau Gallium 0.4 on NV34 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV42 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV44 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV46 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV49 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV4A supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV4B supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV4C supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV4E supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV50 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV63 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV67 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV84 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV86 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV92 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV94 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV96 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NV98 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVA0 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVA3 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVA5 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVA8 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVAA supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVAC supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVAF supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVC0 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVC1 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVC3 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVC4 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVCE supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVCF supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVD9 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVE4 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVE6 supported 1 1 2.1 Gallium -nouveau Gallium 0.4 on NVE7 supported 1 1 2.1 Gallium diff --git a/indra/newview/tests/gpus_seen.txt b/indra/newview/tests/gpus_seen.txt deleted file mode 100644 index 66cbeece97..0000000000 --- a/indra/newview/tests/gpus_seen.txt +++ /dev/null @@ -1,4225 +0,0 @@ -AMD BARTS (HD 6800) -AMD BARTS (HD 6800) -AMD CAICOS (HD 6400) -AMD CAICOS (HD 6400) -AMD CAYMAN (HD 6900) -AMD CEDAR (HD 5450) -AMD CEDAR (HD 5450) -AMD JUNIPER (HD 5700) -AMD PARK -AMD REDWOOD (HD 5500/5600) -AMD RS780 (HD 3200) -AMD RS880 (HD 4200) -AMD RS880 (HD 4200) -AMD RV610 (HD 2400) -AMD RV620 (HD 3400) -AMD RV630 (HD 2600) -AMD RV635 (HD 3600) -AMD RV670 (HD 3800) -AMD RV710 (HD 4300) -AMD RV730 (HD 4600) -AMD RV770 (HD 4800) -AMD RV790 (HD 4800) -AMD TURKS (HD 6500/6600) -ATI -ATI 760G/Radeon 3000 -ATI ASUS AH24xx -ATI ASUS AH34xx -ATI ASUS AH36xx -ATI ASUS AH46xx -ATI ASUS AX3xx -ATI ASUS AX5xx -ATI ASUS EAH38xx -ATI ASUS EAH43xx -ATI ASUS EAH45xx -ATI ASUS EAH48xx -ATI ASUS EAH54xx -ATI ASUS EAH57xx -ATI ASUS EAH58xx -ATI ASUS EAH64xx -ATI ASUS EAH65xx -ATI ASUS EAH66xx -ATI ASUS EAH67xx -ATI ASUS EAH68xx -ATI ASUS EAH69xx -ATI ASUS EAH6xxx -ATI ASUS EAH77xx -ATI ASUS HD7700 -ATI ASUS Radeon X1xxx -ATI All-in-Wonder HD -ATI All-in-Wonder PCI-E -ATI Display Adapter -ATI FireGL -ATI FireGL 5200 -ATI FireGL 5xxx -ATI FireMV -ATI FirePro 2000 -ATI FirePro 4000 -ATI FirePro M -ATI FirePro M3900 -ATI FirePro M5800 -ATI FirePro M7740 -ATI FirePro M7820 -ATI Geforce 9500 GT -ATI Geforce 9600 GT -ATI Geforce 9800 GT -ATI IGP 340M -ATI Mobility Radeon -ATI Mobility Radeon 4100 -ATI Mobility Radeon 4100 -ATI Mobility Radeon 7xxx -ATI Mobility Radeon 9600 -ATI Mobility Radeon 9700 -ATI Mobility Radeon 9800 -ATI Mobility Radeon HD 2300 -ATI Mobility Radeon HD 2300 -ATI Mobility Radeon HD 2400 -ATI Mobility Radeon HD 2400 -ATI Mobility Radeon HD 2600 -ATI Mobility Radeon HD 2600 -ATI Mobility Radeon HD 2700 -ATI Mobility Radeon HD 3400 -ATI Mobility Radeon HD 3400 -ATI Mobility Radeon HD 3600 -ATI Mobility Radeon HD 3600 -ATI Mobility Radeon HD 3800 -ATI Mobility Radeon HD 4200 -ATI Mobility Radeon HD 4200 -ATI Mobility Radeon HD 4300 -ATI Mobility Radeon HD 4500 -ATI Mobility Radeon HD 4600 -ATI Mobility Radeon HD 4800 -ATI Mobility Radeon HD 5100 -ATI Mobility Radeon HD 5100 -ATI Mobility Radeon HD 5300 -ATI Mobility Radeon HD 530v -ATI Mobility Radeon HD 5400 -ATI Mobility Radeon HD 5400 -ATI Mobility Radeon HD 540v -ATI Mobility Radeon HD 545v -ATI Mobility Radeon HD 5500 -ATI Mobility Radeon HD 550v -ATI Mobility Radeon HD 5600 -ATI Mobility Radeon HD 5600 -ATI Mobility Radeon HD 560v -ATI Mobility Radeon HD 565v -ATI Mobility Radeon HD 5700 -ATI Mobility Radeon HD 6300 -ATI Mobility Radeon HD 6300 -ATI Mobility Radeon HD 6500 -ATI Mobility Radeon HD 6500M -ATI Mobility Radeon X1xxx -ATI Mobility Radeon X2xxx -ATI Mobility Radeon X3xx -ATI Mobility Radeon X6xx -ATI Mobility Radeon X7xx -ATI Mobility Radeon Xxxx -ATI Mobility Radeon Xxxx -ATI R300 (9700) -ATI RV410 (X700) -ATI RV530 -ATI Radeon -ATI Radeon 2100 -ATI Radeon 3000 -ATI Radeon 3100 -ATI Radeon 3100 -ATI Radeon 5xxx -ATI Radeon 7000 -ATI Radeon 7xxx -ATI Radeon 8xxx -ATI Radeon 9000 -ATI Radeon 9100 -ATI Radeon 9200 -ATI Radeon 9500 -ATI Radeon 9600 -ATI Radeon 9700 -ATI Radeon 9800 -ATI Radeon HD 2300 -ATI Radeon HD 2300 -ATI Radeon HD 2400 -ATI Radeon HD 2400 -ATI Radeon HD 2600 -ATI Radeon HD 2900 -ATI Radeon HD 3000 -ATI Radeon HD 3100 -ATI Radeon HD 3200 -ATI Radeon HD 3200 -ATI Radeon HD 3300 -ATI Radeon HD 3400 -ATI Radeon HD 3400 -ATI Radeon HD 3400 -ATI Radeon HD 3500 -ATI Radeon HD 3600 -ATI Radeon HD 3700 -ATI Radeon HD 3800 -ATI Radeon HD 4200 -ATI Radeon HD 4300 -ATI Radeon HD 4300 -ATI Radeon HD 4400 -ATI Radeon HD 4500 -ATI Radeon HD 4500 -ATI Radeon HD 4600 -ATI Radeon HD 4700 -ATI Radeon HD 4800 -ATI Radeon HD 4800 -ATI Radeon HD 5400 -ATI Radeon HD 5400 -ATI Radeon HD 5500 -ATI Radeon HD 5500 -ATI Radeon HD 5600 -ATI Radeon HD 5700 -ATI Radeon HD 5700 -ATI Radeon HD 5800 -ATI Radeon HD 5900 -ATI Radeon HD 6200 -ATI Radeon HD 6200 -ATI Radeon HD 6300 -ATI Radeon HD 6300 -ATI Radeon HD 6300 -ATI Radeon HD 6300M -ATI Radeon HD 6400 -ATI Radeon HD 64xx -ATI Radeon HD 64xx -ATI Radeon HD 6500 -ATI Radeon HD 65xx -ATI Radeon HD 65xx -ATI Radeon HD 6600 -ATI Radeon HD 66xx -ATI Radeon HD 6700 -ATI Radeon HD 6700 -ATI Radeon HD 6700M -ATI Radeon HD 6800 -ATI Radeon HD 6900 -ATI Radeon HD 6900 -ATI Radeon HD 7200 -ATI Radeon HD 7300 -ATI Radeon HD 7300 -ATI Radeon HD 7400 -ATI Radeon HD 7400 -ATI Radeon HD 7500 -ATI Radeon HD 7600 -ATI Radeon HD 7700 -ATI Radeon HD 7800 -ATI Radeon HD 7900 -ATI Radeon X1000 -ATI Radeon X1200 -ATI Radeon X1300 -ATI Radeon X13xx -ATI Radeon X1400 -ATI Radeon X1500 -ATI Radeon X15xx -ATI Radeon X1600 -ATI Radeon X16xx -ATI Radeon X17xx -ATI Radeon X1800 -ATI Radeon X18xx -ATI Radeon X1900 -ATI Radeon X1900 -ATI Radeon X19xx -ATI Radeon X1xxx -ATI Radeon X1xxx -ATI Radeon X1xxx -ATI Radeon X1xxx -ATI Radeon X2xxx -ATI Radeon X2xxx -ATI Radeon X300 -ATI Radeon X500 -ATI Radeon X500 -ATI Radeon X500 -ATI Radeon X600 -ATI Radeon X700 -ATI Radeon X800 -ATI Radeon Xpress -ATI Radeon Xpress -ATI Rage 128 -ATI Technologies -ATI Technologies Inc. -ATI Technologies Inc. (DNA-AMD GFX) AMD Radeon HD 6290 Graphics -ATI Technologies Inc. (DNA-ATi 5.1.7.5x32) ATI Mobility Radeon HD 2 -ATI Technologies Inc. (Vista) ATI Mobility Radeon HD 5730 -ATI Technologies Inc. (Vista) ATI Mobility Radeon HD 5870 -ATI Technologies Inc. 128MB ATI RADEON X600 SE -ATI Technologies Inc. 128MB ATI RADEON X600 SE x86/SSE2 -ATI Technologies Inc. 128MB ATI Radeon X1300 -ATI Technologies Inc. 128MB ATI Radeon X1300 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. 128MB ATI Radeon X1300 x86/SSE2 -ATI Technologies Inc. 256MB ATI RADEON X600 -ATI Technologies Inc. 256MB ATI Radeon X1300PRO -ATI Technologies Inc. 256MB ATI Radeon X1300PRO x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. 256MB ATI Radeon X1300PRO x86/SSE2 -ATI Technologies Inc. 3DP (ATI RADEON XPRESS 200M) -ATI Technologies Inc. 3DP Edition v10.04 (Mobility Radeon X1600) x86/SSE2 -ATI Technologies Inc. 7900 MOD - AMD Radeon HD 7400M Series -ATI Technologies Inc. 7900 MOD - AMD Radeon HD 7640G -ATI Technologies Inc. ALL-IN-WONDER 9600 SERIES -ATI Technologies Inc. AMD (ATI) FirePro M5950 (FireGL) Mobility Pro Graphics -ATI Technologies Inc. AMD (ATI) FirePro M4000 (FireGL V) Mobility Pro Graphics -ATI Technologies Inc. AMD (ATI) FirePro M5950 (FireGL) Mobility Pro Graphics -ATI Technologies Inc. AMD (ATI) FirePro M6000 (FireGL V) Mobility Pro Graphics -ATI Technologies Inc. AMD (ATI) FirePro M8900 (FireGL) Mobility Pro -ATI Technologies Inc. AMD (ATI) FirePro M8900 (FireGL) Mobility Pro Graphics -ATI Technologies Inc. AMD (ATI) FirePro M8900 (FireGL) Mobility Pro Graphics -ATI Technologies Inc. AMD 760G -ATI Technologies Inc. AMD 760G -ATI Technologies Inc. AMD 760G (Microsoft Corporation WDDM 1.1) -ATI Technologies Inc. AMD FirePro 2270 -ATI Technologies Inc. AMD FirePro 2460 -ATI Technologies Inc. AMD FirePro M2000 -ATI Technologies Inc. AMD FirePro M3900 -ATI Technologies Inc. AMD FirePro M4000 -ATI Technologies Inc. AMD FirePro M5950 -ATI Technologies Inc. AMD FirePro M5950 Mobility Professional Graphics -ATI Technologies Inc. AMD FirePro M5950 Mobility Professional Graphics -ATI Technologies Inc. AMD FirePro V3900 -ATI Technologies Inc. AMD FirePro V3900 (ATI FireGL) -ATI Technologies Inc. AMD FirePro V4900 -ATI Technologies Inc. AMD FirePro V4900 (ATI FireGL) -ATI Technologies Inc. AMD FirePro V4900 (FireGL V) -ATI Technologies Inc. AMD FirePro V4900 (FireGL V) Graphics Adapter -ATI Technologies Inc. AMD FirePro V5900 -ATI Technologies Inc. AMD FirePro V5900 (ATI FireGL) -ATI Technologies Inc. AMD FirePro V5900 (FireGL V) -ATI Technologies Inc. AMD FirePro V5900 (FireGL V) Graphics Adapter -ATI Technologies Inc. AMD FirePro V7900 -ATI Technologies Inc. AMD FirePro V7900 (ATI FireGL) -ATI Technologies Inc. AMD FirePro V7900 (FireGL V) -ATI Technologies Inc. AMD FirePro V7900 (FireGL V) Graphics Adapter -ATI Technologies Inc. AMD FirePro W5000 (FireGL V) -ATI Technologies Inc. AMD FirePro W9000 (FireGL V) -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 4200 -ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4225 -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 6350 -ATI Technologies Inc. AMD RADEON HD 6450 -ATI Technologies Inc. AMD RADEON HD 6450 -ATI Technologies Inc. AMD RADEON HD 6450A -ATI Technologies Inc. AMD RADEON HD 6670 -ATI Technologies Inc. AMD RADEON HD 6670 -ATI Technologies Inc. AMD RADEON HD 7450 -ATI Technologies Inc. AMD RADEON HD6370D Graphics -ATI Technologies Inc. AMD RADEON HD6370D Graphics -ATI Technologies Inc. AMD RADEON HD6410D Graphics -ATI Technologies Inc. AMD RADEON HD6410D Graphics -ATI Technologies Inc. AMD RADEON HD6530D Graphics -ATI Technologies Inc. AMD RADEON HD6550D Graphics -ATI Technologies Inc. AMD Radeon -ATI Technologies Inc. AMD Radeon -ATI Technologies Inc. AMD Radeon (TM) HD 8500M/8700M -ATI Technologies Inc. AMD Radeon (TM) HD 8500M/8700M -ATI Technologies Inc. AMD Radeon 6600M and 6700M Series -ATI Technologies Inc. AMD Radeon 6600M and 6700M Series -ATI Technologies Inc. AMD Radeon 6600M and 6700M Series (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 5450 -ATI Technologies Inc. AMD Radeon HD 5500 Series -ATI Technologies Inc. AMD Radeon HD 5500 Series -ATI Technologies Inc. AMD Radeon HD 5500 Series (Microsoft Corporation - WDDM v1.20) -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 -ATI Technologies Inc. AMD Radeon HD 6250 Graphics -ATI Technologies Inc. AMD Radeon HD 6250 Graphics -ATI Technologies Inc. AMD Radeon HD 6250M -ATI Technologies Inc. AMD Radeon HD 6250M -ATI Technologies Inc. AMD Radeon HD 6290 -ATI Technologies Inc. AMD Radeon HD 6290 Graphics -ATI Technologies Inc. AMD Radeon HD 6290 Graphics -ATI Technologies Inc. AMD Radeon HD 6290M -ATI Technologies Inc. AMD Radeon HD 6290M -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 -ATI Technologies Inc. AMD Radeon HD 6310 -ATI Technologies Inc. AMD Radeon HD 6310 Graphics -ATI Technologies Inc. AMD Radeon HD 6310 Graphics -ATI Technologies Inc. AMD Radeon HD 6310 Graphics -ATI Technologies Inc. AMD Radeon HD 6310 Graphics -ATI Technologies Inc. AMD Radeon HD 6310 Graphics (Engineering Sample - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 6310 Graphics (Microsoft Corporation - WDDM v1.3) -ATI Technologies Inc. AMD Radeon HD 6310 Graphics (Microsoft Corporation- WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 6310M -ATI Technologies Inc. AMD Radeon HD 6310M -ATI Technologies Inc. AMD Radeon HD 6320 -ATI Technologies Inc. AMD Radeon HD 6320 Graphics -ATI Technologies Inc. AMD Radeon HD 6320 Graphic -ATI Technologies Inc. AMD Radeon HD 6320 Graphics -ATI Technologies Inc. AMD Radeon HD 6320 Graphics -ATI Technologies Inc. AMD Radeon HD 6320 Graphics (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 6320 series Graphics -ATI Technologies Inc. AMD Radeon HD 6320 series Graphics -ATI Technologies Inc. AMD Radeon HD 6320M -ATI Technologies Inc. AMD Radeon HD 6330M -ATI Technologies Inc. AMD Radeon HD 6350 -ATI Technologies Inc. AMD Radeon HD 6350 -ATI Technologies Inc. AMD Radeon HD 6370D -ATI Technologies Inc. AMD Radeon HD 6370M -ATI Technologies Inc. AMD Radeon HD 6370M -ATI Technologies Inc. AMD Radeon HD 6380G -ATI Technologies Inc. AMD Radeon HD 6400 Series -ATI Technologies Inc. AMD Radeon HD 6400M Series -ATI Technologies Inc. AMD Radeon HD 6410D -ATI Technologies Inc. AMD Radeon HD 6410D -ATI Technologies Inc. AMD Radeon HD 6410D Graphics -ATI Technologies Inc. AMD Radeon HD 6410D Graphics -ATI Technologies Inc. AMD Radeon HD 6450 -ATI Technologies Inc. AMD Radeon HD 6450 -ATI Technologies Inc. AMD Radeon HD 6450 (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. AMD Radeon HD 6450 Graphics -ATI Technologies Inc. AMD Radeon HD 6450A -ATI Technologies Inc. AMD Radeon HD 6450A Graphics -ATI Technologies Inc. AMD Radeon HD 6450M -ATI Technologies Inc. AMD Radeon HD 6450M -ATI Technologies Inc. AMD Radeon HD 6470M -ATI Technologies Inc. AMD Radeon HD 6470M -ATI Technologies Inc. AMD Radeon HD 6470M/7400M Series -ATI Technologies Inc. AMD Radeon HD 6480G -ATI Technologies Inc. AMD Radeon HD 6480M -ATI Technologies Inc. AMD Radeon HD 6490M -ATI Technologies Inc. AMD Radeon HD 6500 Series -ATI Technologies Inc. AMD Radeon HD 6500 Series -ATI Technologies Inc. AMD Radeon HD 6500 series graphics -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 6500M/5600/5700 Series -ATI Technologies Inc. AMD Radeon HD 6510 Series -ATI Technologies Inc. AMD Radeon HD 6510 Series -ATI Technologies Inc. AMD Radeon HD 6520G -ATI Technologies Inc. AMD Radeon HD 6520G -ATI Technologies Inc. AMD Radeon HD 6530D -ATI Technologies Inc. AMD Radeon HD 6530D -ATI Technologies Inc. AMD Radeon HD 6530D Graphics -ATI Technologies Inc. AMD Radeon HD 6530D Graphics -ATI Technologies Inc. AMD Radeon HD 6530M -ATI Technologies Inc. AMD Radeon HD 6550A -ATI Technologies Inc. AMD Radeon HD 6550A -ATI Technologies Inc. AMD Radeon HD 6550D -ATI Technologies Inc. AMD Radeon HD 6550D -ATI Technologies Inc. AMD Radeon HD 6550D Graphics -ATI Technologies Inc. AMD Radeon HD 6550D Graphics -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 6570 (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. AMD Radeon HD 6570 (Microsoft Corporation - WDDM v1.20) -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 6570M/5730 -ATI Technologies Inc. AMD Radeon HD 6600 Series -ATI Technologies Inc. AMD Radeon HD 6600 Series -ATI Technologies Inc. AMD Radeon HD 6600M Series -ATI Technologies Inc. AMD Radeon HD 6610M Graphics -ATI Technologies Inc. AMD Radeon HD 6620G -ATI Technologies Inc. AMD Radeon HD 6620G -ATI Technologies Inc. AMD Radeon HD 6625M Graphics -ATI Technologies Inc. AMD Radeon HD 6630M -ATI Technologies Inc. AMD Radeon HD 6630M -ATI Technologies Inc. AMD Radeon HD 6650A Graphics -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 6670 (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. AMD Radeon HD 6670 (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 6700 Series -ATI Technologies Inc. AMD Radeon HD 6700 Series -ATI Technologies Inc. AMD Radeon HD 6700 series -ATI Technologies Inc. AMD Radeon HD 6700M Series -ATI Technologies Inc. AMD Radeon HD 6700M Series (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 6700M/7700M/7900M Series -ATI Technologies Inc. AMD Radeon HD 6730M -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 6770M -ATI Technologies Inc. AMD Radeon HD 6770M -ATI Technologies Inc. AMD Radeon HD 6770M OpenGL Engine -ATI Technologies Inc. AMD Radeon HD 6800 Series -ATI Technologies Inc. AMD Radeon HD 6800 Series -ATI Technologies Inc. AMD Radeon HD 6800 Series -ATI Technologies Inc. AMD Radeon HD 6800 Series (Engineering Sample - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 6800 Series (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. AMD Radeon HD 6800 Series (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 6800M Series -ATI Technologies Inc. AMD Radeon HD 6800M Series -ATI Technologies Inc. AMD Radeon HD 6850 -ATI Technologies Inc. AMD Radeon HD 6850 -ATI Technologies Inc. AMD Radeon HD 6850 X2 -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 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 6900 Series -ATI Technologies Inc. AMD Radeon HD 6900 Series -ATI Technologies Inc. AMD Radeon HD 6900 Series (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. AMD Radeon HD 6900 Series (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. AMD Radeon HD 6900M Series -ATI Technologies Inc. AMD Radeon HD 6900M Series -ATI Technologies Inc. AMD Radeon HD 6970 -ATI Technologies Inc. AMD Radeon HD 6970 -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 HD 6990M -ATI Technologies Inc. AMD Radeon HD 6990M -ATI Technologies Inc. AMD Radeon HD 6990M -ATI Technologies Inc. AMD Radeon HD 7000 series -ATI Technologies Inc. AMD Radeon HD 7000 series -ATI Technologies Inc. AMD Radeon HD 7290 Graphics -ATI Technologies Inc. AMD Radeon HD 7300 Series (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. AMD Radeon HD 7300 Series Graphics -ATI Technologies Inc. AMD Radeon HD 7300 Series Graphics -ATI Technologies Inc. AMD Radeon HD 7310 -ATI Technologies Inc. AMD Radeon HD 7310 -ATI Technologies Inc. AMD Radeon HD 7310 Graphics -ATI Technologies Inc. AMD Radeon HD 7310 Graphics -ATI Technologies Inc. AMD Radeon HD 7310 Graphics -ATI Technologies Inc. AMD Radeon HD 7310 Graphics (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. AMD Radeon HD 7310G -ATI Technologies Inc. AMD Radeon HD 7310M -ATI Technologies Inc. AMD Radeon HD 7310M -ATI Technologies Inc. AMD Radeon HD 7340 -ATI Technologies Inc. AMD Radeon HD 7340 -ATI Technologies Inc. AMD Radeon HD 7340 Graphics -ATI Technologies Inc. AMD Radeon HD 7340 Graphics -ATI Technologies Inc. AMD Radeon HD 7340G -ATI Technologies Inc. AMD Radeon HD 7340G -ATI Technologies Inc. AMD Radeon HD 7340M -ATI Technologies Inc. AMD Radeon HD 7340M -ATI Technologies Inc. AMD Radeon HD 7350 -ATI Technologies Inc. AMD Radeon HD 7350 -ATI Technologies Inc. AMD Radeon HD 7350 Graphics -ATI Technologies Inc. AMD Radeon HD 7370M -ATI Technologies Inc. AMD Radeon HD 7400 Series -ATI Technologies Inc. AMD Radeon HD 7400 Series (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. AMD Radeon HD 7400G -ATI Technologies Inc. AMD Radeon HD 7400G -ATI Technologies Inc. AMD Radeon HD 7400M Series -ATI Technologies Inc. AMD Radeon HD 7400M Series -ATI Technologies Inc. AMD Radeon HD 7400M Series (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 7410M -ATI Technologies Inc. AMD Radeon HD 7420G -ATI Technologies Inc. AMD Radeon HD 7420G -ATI Technologies Inc. AMD Radeon HD 7450 -ATI Technologies Inc. AMD Radeon HD 7450 -ATI Technologies Inc. AMD Radeon HD 7450 -ATI Technologies Inc. AMD Radeon HD 7450 Graphics -ATI Technologies Inc. AMD Radeon HD 7450A Graphics -ATI Technologies Inc. AMD Radeon HD 7450A Graphics -ATI Technologies Inc. AMD Radeon HD 7450M -ATI Technologies Inc. AMD Radeon HD 7470 -ATI Technologies Inc. AMD Radeon HD 7470 -ATI Technologies Inc. AMD Radeon HD 7470 -ATI Technologies Inc. AMD Radeon HD 7470 Series -ATI Technologies Inc. AMD Radeon HD 7470 Series -ATI Technologies Inc. AMD Radeon HD 7470M -ATI Technologies Inc. AMD Radeon HD 7470M -ATI Technologies Inc. AMD Radeon HD 7480D -ATI Technologies Inc. AMD Radeon HD 7480D -ATI Technologies Inc. AMD Radeon HD 7500 Series -ATI Technologies Inc. AMD Radeon HD 7500 Series (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. AMD Radeon HD 7500 Series (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 7500/7600 Series -ATI Technologies Inc. AMD Radeon HD 7500G -ATI Technologies Inc. AMD Radeon HD 7500G -ATI Technologies Inc. AMD Radeon HD 7500G + 7500M/7600M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7500M/7600M Series -ATI Technologies Inc. AMD Radeon HD 7510 -ATI Technologies Inc. AMD Radeon HD 7510 -ATI Technologies Inc. AMD Radeon HD 7520G -ATI Technologies Inc. AMD Radeon HD 7520G -ATI Technologies Inc. AMD Radeon HD 7520G + 6400M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7520G + 7470M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7520G + 7470M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7520G + 7500/7600 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7520G + 7600M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7520G + 7610M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7520G + 7670M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7520G + 7670M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7540D -ATI Technologies Inc. AMD Radeon HD 7540D -ATI Technologies Inc. AMD Radeon HD 7540D + 7450 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7550M -ATI Technologies Inc. AMD Radeon HD 7550M -ATI Technologies Inc. AMD Radeon HD 7550M/7650M Graphics -ATI Technologies Inc. AMD Radeon HD 7550M/7650M Graphics -ATI Technologies Inc. AMD Radeon HD 7560D -ATI Technologies Inc. AMD Radeon HD 7560D -ATI Technologies Inc. AMD Radeon HD 7560D (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 7560D + 6570 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7560D + 6670 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7560D + 7560D Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7560D + 7600 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7560D + 7670 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7570 -ATI Technologies Inc. AMD Radeon HD 7570 -ATI Technologies Inc. AMD Radeon HD 7570 Graphics -ATI Technologies Inc. AMD Radeon HD 7570 Series -ATI Technologies Inc. AMD Radeon HD 7570M -ATI Technologies Inc. AMD Radeon HD 7570M/HD 7670M Graphics -ATI Technologies Inc. AMD Radeon HD 7580D -ATI Technologies Inc. AMD Radeon HD 7600 Series (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 7600G -ATI Technologies Inc. AMD Radeon HD 7600G + 7500M/7600M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7600G + 7550M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7600M + 7600M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7600M Series -ATI Technologies Inc. AMD Radeon HD 7600M Series -ATI Technologies Inc. AMD Radeon HD 7610M -ATI Technologies Inc. AMD Radeon HD 7610M -ATI Technologies Inc. AMD Radeon HD 7620G -ATI Technologies Inc. AMD Radeon HD 7640G -ATI Technologies Inc. AMD Radeon HD 7640G -ATI Technologies Inc. AMD Radeon HD 7640G + 6400M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7640G + 7450M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7640G + 7470M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7640G + 7470M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7640G + 7500/7600 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7640G + 7500M/7600M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7640G + 7600M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7640G + 7610M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7640G + 7670M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7650A -ATI Technologies Inc. AMD Radeon HD 7650A Graphics -ATI Technologies Inc. AMD Radeon HD 7650M -ATI Technologies Inc. AMD Radeon HD 7650M -ATI Technologies Inc. AMD Radeon HD 7650M Series -ATI Technologies Inc. AMD Radeon HD 7660D -ATI Technologies Inc. AMD Radeon HD 7660D -ATI Technologies Inc. AMD Radeon HD 7660D + 6570 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660D + 6670 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660D + 7670 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660D + 7700 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660G -ATI Technologies Inc. AMD Radeon HD 7660G -ATI Technologies Inc. AMD Radeon HD 7660G + 6400M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660G + 7400M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660G + 7470M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660G + 7500/7600 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660G + 7600M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660G + 7610M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660G + 7670M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660G + 7670M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7660G + 7700M Dual Graphics -ATI Technologies Inc. AMD Radeon HD 7670 -ATI Technologies Inc. AMD Radeon HD 7670 -ATI Technologies Inc. AMD Radeon HD 7670M -ATI Technologies Inc. AMD Radeon HD 7670M -ATI Technologies Inc. AMD Radeon HD 7690M -ATI Technologies Inc. AMD Radeon HD 7700 Series -ATI Technologies Inc. AMD Radeon HD 7700 Series -ATI Technologies Inc. AMD Radeon HD 7700 Series -ATI Technologies Inc. AMD Radeon HD 7700 Series (Microsoft Corporation - WDDM v1.3) -ATI Technologies Inc. AMD Radeon HD 7700M Series -ATI Technologies Inc. AMD Radeon HD 7730M -ATI Technologies Inc. AMD Radeon HD 7770 -ATI Technologies Inc. AMD Radeon HD 7770 -ATI Technologies Inc. AMD Radeon HD 7770 GHz Edition -ATI Technologies Inc. AMD Radeon HD 7800 Series -ATI Technologies Inc. AMD Radeon HD 7800 Series -ATI Technologies Inc. AMD Radeon HD 7800 Series -ATI Technologies Inc. AMD Radeon HD 7800 Series -ATI Technologies Inc. AMD Radeon HD 7800 Series (Engineering Sample - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 7800 Series (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. AMD Radeon HD 7800 Series (Microsoft Corporation - WDDM v1.3) -ATI Technologies Inc. AMD Radeon HD 7800 Series (Microsoft Corporation - WDDM v1.3) -ATI Technologies Inc. AMD Radeon HD 7800M Series -ATI Technologies Inc. AMD Radeon HD 7800M Series -ATI Technologies Inc. AMD Radeon HD 7870 -ATI Technologies Inc. AMD Radeon HD 7870 -ATI Technologies Inc. AMD Radeon HD 7870M -ATI Technologies Inc. AMD Radeon HD 7870M -ATI Technologies Inc. AMD Radeon HD 7900 Series -ATI Technologies Inc. AMD Radeon HD 7900 Series -ATI Technologies Inc. AMD Radeon HD 7900 Series -ATI Technologies Inc. AMD Radeon HD 7900 Series -ATI Technologies Inc. AMD Radeon HD 7900 Series (Microsoft Corporation - WDDM v1.3) -ATI Technologies Inc. AMD Radeon HD 7950 -ATI Technologies Inc. AMD Radeon HD 7950 -ATI Technologies Inc. AMD Radeon HD 7950 -ATI Technologies Inc. AMD Radeon HD 7970 -ATI Technologies Inc. AMD Radeon HD 7970 -ATI Technologies Inc. AMD Radeon HD 7970M -ATI Technologies Inc. AMD Radeon HD 7970M -ATI Technologies Inc. AMD Radeon HD 7970M -ATI Technologies Inc. AMD Radeon HD 8210 -ATI Technologies Inc. AMD Radeon HD 8240 -ATI Technologies Inc. AMD Radeon HD 8250 -ATI Technologies Inc. AMD Radeon HD 8280G -ATI Technologies Inc. AMD Radeon HD 8330 -ATI Technologies Inc. AMD Radeon HD 8330 -ATI Technologies Inc. AMD Radeon HD 8350 -ATI Technologies Inc. AMD Radeon HD 8350 -ATI Technologies Inc. AMD Radeon HD 8350G -ATI Technologies Inc. AMD Radeon HD 8400 -ATI Technologies Inc. AMD Radeon HD 8450 -ATI Technologies Inc. AMD Radeon HD 8450G -ATI Technologies Inc. AMD Radeon HD 8470 -ATI Technologies Inc. AMD Radeon HD 8470 -ATI Technologies Inc. AMD Radeon HD 8470D -ATI Technologies Inc. AMD Radeon HD 8550G -ATI Technologies Inc. AMD Radeon HD 8550G -ATI Technologies Inc. AMD Radeon HD 8570 -ATI Technologies Inc. AMD Radeon HD 8570 -ATI Technologies Inc. AMD Radeon HD 8570D -ATI Technologies Inc. AMD Radeon HD 8570D -ATI Technologies Inc. AMD Radeon HD 8610G -ATI Technologies Inc. AMD Radeon HD 8650G -ATI Technologies Inc. AMD Radeon HD 8650G -ATI Technologies Inc. AMD Radeon HD 8670D -ATI Technologies Inc. AMD Radeon HD 8670D -ATI Technologies Inc. AMD Radeon HD 8670D -ATI Technologies Inc. AMD Radeon HD 8670D + 6670 Dual Graphics -ATI Technologies Inc. AMD Radeon HD 8700M Series -ATI Technologies Inc. AMD Radeon HD 8700M Series -ATI Technologies Inc. AMD Radeon HD 8730M -ATI Technologies Inc. AMD Radeon HD 8730M -ATI Technologies Inc. AMD Radeon HD 8730M -ATI Technologies Inc. AMD Radeon HD 8750M -ATI Technologies Inc. AMD Radeon HD 8760 -ATI Technologies Inc. AMD Radeon HD 8760 -ATI Technologies Inc. AMD Radeon HD 8760 -ATI Technologies Inc. AMD Radeon HD 8800M Series -ATI Technologies Inc. AMD Radeon HD 8800M Series -ATI Technologies Inc. AMD Radeon HD 8900 Series (OEM) -ATI Technologies Inc. AMD Radeon HD 8950 -ATI Technologies Inc. AMD Radeon HD 8950 -ATI Technologies Inc. AMD Radeon HD HD7850M -ATI Technologies Inc. AMD Radeon HD HD7850M -ATI Technologies Inc. AMD Radeon HD6370D Graphics -ATI Technologies Inc. AMD Radeon HD6370D Graphics -ATI Technologies Inc. AMD Radeon HD7610M -ATI Technologies Inc. AMD Radeon HD7610M -ATI Technologies Inc. AMD Radeon HD7700 Series -ATI Technologies Inc. AMD Radeon HD7700 Series -ATI Technologies Inc. AMD Radeon HD7700 Series -ATI Technologies Inc. AMD Radeon HD7770 -ATI Technologies Inc. AMD Radeon HD7770 -ATI Technologies Inc. AMD Radeon HD7770 GHz Edition -ATI Technologies Inc. AMD Radeon HD7770 GHz Edition -ATI Technologies Inc. AMD Radeon HD8350 -ATI Technologies Inc. AMD Radeon(TM) HD 6380G -ATI Technologies Inc. AMD Radeon(TM) HD 6380G -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 6480G -ATI Technologies Inc. AMD Radeon(TM) HD 6480G (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. AMD Radeon(TM) HD 6520G -ATI Technologies Inc. AMD Radeon(TM) HD 6520G -ATI Technologies Inc. AMD Radeon(TM) HD 6620G -ATI Technologies Inc. AMD Radeon(TM) HD 6620G -ATI Technologies Inc. AMD Radeon(TM) HD 6630M -ATI Technologies Inc. AMD Radeon(TM) HD 6650M -ATI Technologies Inc. AMD Radeon(TM) HD 7450 -ATI Technologies Inc. AMD Radeon(TM) HD 7450A Graphics -ATI Technologies Inc. AMD Radeon(TM) HD 7650A Graphics -ATI Technologies Inc. AMD Radeon(TM) HD 7670A Graphics -ATI Technologies Inc. AMD Radeon(TM) HD 7670M -ATI Technologies Inc. AMD Radeon(TM) HD 8350 -ATI Technologies Inc. AMD Radeon(TM) HD8490 -ATI Technologies Inc. AMD Radeon. HD 7350 -ATI Technologies Inc. AMD Radeon. HD 7670M -ATI Technologies Inc. AMD Radeon. HD 7730M -ATI Technologies Inc. AMD Radeon. HD 7730M -ATI Technologies Inc. ASUS AH3450 Series -ATI Technologies Inc. ASUS AH3450 Series -ATI Technologies Inc. ASUS AH3650 Series -ATI Technologies Inc. ASUS AH4650 Series -ATI Technologies Inc. ASUS ARES -ATI Technologies Inc. ASUS ARES2 -ATI Technologies Inc. ASUS EAH2400 Series -ATI Technologies Inc. ASUS EAH2600 Series -ATI Technologies Inc. ASUS EAH3450 Series -ATI Technologies Inc. ASUS EAH3650 Series -ATI Technologies Inc. ASUS EAH3850 Series -ATI Technologies Inc. ASUS EAH3870 Series -ATI Technologies Inc. ASUS EAH4350 series -ATI Technologies Inc. ASUS EAH4350 series -ATI Technologies Inc. ASUS EAH4550 series -ATI Technologies Inc. ASUS EAH4650 series -ATI Technologies Inc. ASUS EAH4670 series -ATI Technologies Inc. ASUS EAH4770 Series -ATI Technologies Inc. ASUS EAH4770 series -ATI Technologies Inc. ASUS EAH4850 series -ATI Technologies Inc. ASUS EAH4870 series -ATI Technologies Inc. ASUS EAH4870x2 -ATI Technologies Inc. ASUS EAH4890 -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 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 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 EAH6450 Series -ATI Technologies Inc. ASUS EAH6450 Series -ATI Technologies Inc. ASUS EAH6570 Series -ATI Technologies Inc. ASUS EAH6570 Series -ATI Technologies Inc. ASUS EAH6670 Series -ATI Technologies Inc. ASUS EAH6670 Series -ATI Technologies Inc. ASUS EAH6750 Series -ATI Technologies Inc. ASUS EAH6750 Series -ATI Technologies Inc. ASUS EAH6770 Series -ATI Technologies Inc. ASUS EAH6770 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 Extreme AX300 Series -ATI Technologies Inc. ASUS Extreme AX300SE/T -ATI Technologies Inc. ASUS Extreme AX550 Series -ATI Technologies Inc. ASUS Extreme AX550 Series x86/SSE2 -ATI Technologies Inc. ASUS Extreme AX600 Series -ATI Technologies Inc. ASUS HD 7350 -ATI Technologies Inc. ASUS HD7470 Series -ATI Technologies Inc. ASUS HD7670 Series -ATI Technologies Inc. ASUS HD7670 Series -ATI Technologies Inc. ASUS HD7750 Series -ATI Technologies Inc. ASUS HD7750 Series -ATI Technologies Inc. ASUS HD7770 Series -ATI Technologies Inc. ASUS HD7770 Series -ATI Technologies Inc. ASUS HD7790 Series -ATI Technologies Inc. ASUS HD7850 Series -ATI Technologies Inc. ASUS HD7850 Series -ATI Technologies Inc. ASUS HD7850 Series -ATI Technologies Inc. ASUS HD7870 Series -ATI Technologies Inc. ASUS HD7870 Series -ATI Technologies Inc. ASUS HD7870 Series -ATI Technologies Inc. ASUS HD7870 Series -ATI Technologies Inc. ASUS HD7950 Series -ATI Technologies Inc. ASUS HD7950 Series -ATI Technologies Inc. ASUS HD7950 Series -ATI Technologies Inc. ASUS HD7970 Series -ATI Technologies Inc. ASUS HD7970 Series -ATI Technologies Inc. ASUS HD7970 Series -ATI Technologies Inc. ASUS X1300 Series -ATI Technologies Inc. ASUS X1300 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ASUS X1300 Series x86/SSE2 -ATI Technologies Inc. ASUS X1300 x86/SSE2 -ATI Technologies Inc. ASUS X1550 Series -ATI Technologies Inc. ASUS X1550 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ASUS X1550 Series x86/SSE2 -ATI Technologies Inc. ASUS X1600 Series -ATI Technologies Inc. ASUS X1600 Series x86 -ATI Technologies Inc. ASUS X1600 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ASUS X1600 Series x86/SSE2 -ATI Technologies Inc. ASUS X1650 Series -ATI Technologies Inc. ASUS X1650 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ASUS X1650 Series x86/SSE2 -ATI Technologies Inc. ASUS X1950 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Radeon HD 5000 Series -ATI Technologies Inc. ATI Radeon HD 6350 -ATI Technologies Inc. ATI All-in-Wonder HD -ATI Technologies Inc. ATI Display Adapter -ATI Technologies Inc. ATI FireGL V3100 -ATI Technologies Inc. ATI FireGL V3200 Pentium 4 (SSE2) -ATI Technologies Inc. ATI FireGL V3300 -ATI Technologies Inc. ATI FireGL V3350 -ATI Technologies Inc. ATI FireGL V3350 Pentium 4 (SSE2) -ATI Technologies Inc. ATI FireGL V3400 (Microsoft Corporation - WDDM) -ATI Technologies Inc. ATI FireGL V3400 Pentium 4 (SSE2) -ATI Technologies Inc. ATI FireGL V3600 -ATI Technologies Inc. ATI FireGL V5200 (Microsoft Corporation - WDDM) -ATI Technologies Inc. ATI FireGL V5200 Pentium 4 (SSE2) -ATI Technologies Inc. ATI FireGL V5600 -ATI Technologies Inc. ATI FireGL V7200 -ATI Technologies Inc. ATI FireGL V7200 Pentium 4 (SSE2) -ATI Technologies Inc. ATI FireGL V7600 -ATI Technologies Inc. ATI FireGL V7700 -ATI Technologies Inc. ATI FireMV 2250 -ATI Technologies Inc. ATI FireMV 2250 x86/SSE2 -ATI Technologies Inc. ATI FirePro 2260 -ATI Technologies Inc. ATI FirePro 2260 -ATI Technologies Inc. ATI FirePro 2450 -ATI Technologies Inc. ATI FirePro 3800 (FireGL) Graphics Adapter -ATI Technologies Inc. ATI FirePro M5800 -ATI Technologies Inc. ATI FirePro M7740 -ATI Technologies Inc. ATI FirePro M7820 -ATI Technologies Inc. ATI FirePro M7820 -ATI Technologies Inc. ATI FirePro M7820 (FireGL) -ATI Technologies Inc. ATI FirePro V3700 (FireGL) -ATI Technologies Inc. ATI FirePro V3800 -ATI Technologies Inc. ATI FirePro V3800 (FireGL V) -ATI Technologies Inc. ATI FirePro V3800 (FireGL V) Graphics Adapter -ATI Technologies Inc. ATI FirePro V3800 (FireGL) -ATI Technologies Inc. ATI FirePro V4800 -ATI Technologies Inc. ATI FirePro V4800 (FireGL V) -ATI Technologies Inc. ATI FirePro V4800 (FireGL) -ATI Technologies Inc. ATI FirePro V5700 (FireGL) -ATI Technologies Inc. ATI FirePro V5800 (FireGL V) -ATI Technologies Inc. ATI FirePro V5800 (FireGL) -ATI Technologies Inc. ATI FirePro V7800 (FireGL V) -ATI Technologies Inc. ATI FirePro V7800 (FireGL) -ATI Technologies Inc. ATI FirePro V8700 (FireGL) -ATI Technologies Inc. ATI FirePro V9800 (FireGL V) -ATI Technologies Inc. ATI MOBILITY FIRE GL T2/T2e -ATI Technologies Inc. ATI MOBILITY FireGL V3200 -ATI Technologies Inc. ATI MOBILITY FireGL V5000 Pentium 4 (SSE2) -ATI Technologies Inc. ATI MOBILITY FireGL V5200 -ATI Technologies Inc. ATI MOBILITY FireGL V5200 Pentium 4 (SSE2) -ATI Technologies Inc. ATI MOBILITY FireGL V5250 -ATI Technologies Inc. ATI MOBILITY RADEON 9600 Series -ATI Technologies Inc. ATI MOBILITY RADEON 9600/9700 -ATI Technologies Inc. ATI MOBILITY RADEON 9600/9700 -ATI Technologies Inc. ATI MOBILITY RADEON 9600/9700 Series -ATI Technologies Inc. ATI MOBILITY RADEON 9600/9700 Series -ATI Technologies Inc. ATI MOBILITY RADEON 9600/9700 Series (Omega 3 -ATI Technologies Inc. ATI MOBILITY RADEON HD 2300 -ATI Technologies Inc. ATI MOBILITY RADEON HD 2400 -ATI Technologies Inc. ATI MOBILITY RADEON HD 2600 -ATI Technologies Inc. ATI MOBILITY RADEON HD 3430 -ATI Technologies Inc. ATI MOBILITY RADEON HD 3450 -ATI Technologies Inc. ATI MOBILITY RADEON HD 3650 -ATI Technologies Inc. ATI MOBILITY RADEON HD 4530 / 4570 -ATI Technologies Inc. ATI MOBILITY RADEON X1300 -ATI Technologies Inc. ATI MOBILITY RADEON X1350 -ATI Technologies Inc. ATI MOBILITY RADEON X1400 -ATI Technologies Inc. ATI MOBILITY RADEON X1600 -ATI Technologies Inc. ATI MOBILITY RADEON X1700 -ATI Technologies Inc. ATI MOBILITY RADEON X1800 -ATI Technologies Inc. ATI MOBILITY RADEON X1900 -ATI Technologies Inc. ATI MOBILITY RADEON X2300 -ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI MOBILITY RADEON X300 -ATI Technologies Inc. ATI MOBILITY RADEON X300 x86/SSE2 -ATI Technologies Inc. ATI MOBILITY RADEON X600 -ATI Technologies Inc. ATI MOBILITY RADEON X600 SE -ATI Technologies Inc. ATI MOBILITY RADEON X700 -ATI Technologies Inc. ATI MOBILITY RADEON XPRESS 200 -ATI Technologies Inc. ATI MOBILITY RADEON XPRESS 200 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI MOBILITY Radeon HD 4650 -ATI Technologies Inc. ATI Mobility FireGL V5700 -ATI Technologies Inc. ATI Mobility FireGL V5725 -ATI Technologies Inc. ATI Mobility FireGL V5725 -ATI Technologies Inc. ATI Mobility Radeon 4100 -ATI Technologies Inc. ATI Mobility Radeon Graphics -ATI Technologies Inc. ATI Mobility Radeon HD 2300 -ATI Technologies Inc. ATI Mobility Radeon HD 2300 x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon HD 2400 -ATI Technologies Inc. ATI Mobility Radeon HD 2400 -ATI Technologies Inc. ATI Mobility Radeon HD 2400 (Omega 3.8.442) -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 2600 XT (Microsoft Corporation WDDM 1.1) -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 3400 Series (Microsoft Corporation WDDM 1.1) -ATI Technologies Inc. ATI Mobility Radeon HD 3400 Series (Microsoft Corporation- WDDM v1.1) -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 3430 (Microsoft Corporation- WDDM v1.1) -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 3470 Series -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 3850 -ATI Technologies Inc. ATI Mobility Radeon HD 3870 -ATI Technologies Inc. ATI Mobility Radeon HD 3870 X2 -ATI Technologies Inc. ATI Mobility Radeon HD 4200 -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 4200 Series (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Mobility Radeon HD 4225 -ATI Technologies Inc. ATI Mobility Radeon HD 4225 Series -ATI Technologies Inc. ATI Mobility Radeon HD 4250 -ATI Technologies Inc. ATI Mobility Radeon HD 4250 -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 4270 Series -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 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 4500 Series -ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series -ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series (Microsoft Corporation WDDM 1.1) -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 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 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 4650 -ATI Technologies Inc. ATI Mobility Radeon HD 4650 -ATI Technologies Inc. ATI Mobility Radeon HD 4650 (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Mobility Radeon HD 4650 (Microsoft Corporation- WDDM v1.1) -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 (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Mobility Radeon HD 4830 -ATI Technologies Inc. ATI Mobility Radeon HD 4830 Series -ATI Technologies Inc. ATI Mobility Radeon HD 4850 -ATI Technologies Inc. ATI Mobility Radeon HD 4870 -ATI Technologies Inc. ATI Mobility Radeon HD 5000 -ATI Technologies Inc. ATI Mobility Radeon HD 5000 -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 5000 Series -ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series -ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series (Engineering Sample - WDDM v1.20) -ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. ATI Mobility Radeon HD 5100 -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 -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 5450 -ATI Technologies Inc. ATI Mobility Radeon HD 5450 Series -ATI Technologies Inc. ATI Mobility Radeon HD 545v -ATI Technologies Inc. ATI Mobility Radeon HD 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 5570 -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 565v -ATI Technologies Inc. ATI Mobility Radeon HD 5700 Series -ATI Technologies Inc. ATI Mobility Radeon HD 5730 -ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series -ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series -ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series (Microsoft Corporation - WDDM v1.20) -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 6370 -ATI Technologies Inc. ATI Mobility Radeon HD 6370 -ATI Technologies Inc. ATI Mobility Radeon HD 6550 -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 (Omega 3.8.252) x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X1300 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X1300 x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X1350 -ATI Technologies Inc. ATI Mobility Radeon X1350 x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X1400 -ATI Technologies Inc. ATI Mobility Radeon X1400 (Omega 3.8.442) -ATI Technologies Inc. ATI Mobility Radeon X1400 x86 -ATI Technologies Inc. ATI Mobility Radeon X1400 x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X1450 x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X1600 -ATI Technologies Inc. ATI Mobility Radeon X1600 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X1600 x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X1700 -ATI Technologies Inc. ATI Mobility Radeon X1700 x86 -ATI Technologies Inc. ATI Mobility Radeon X1700 x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X1800 x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X1900 -ATI Technologies Inc. ATI Mobility Radeon X2300 -ATI Technologies Inc. ATI Mobility Radeon X2300 -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow! -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X2500 -ATI Technologies Inc. ATI Mobility Radeon. HD 530v -ATI Technologies Inc. ATI Mobility Radeon. HD 5470 -ATI Technologies Inc. ATI RADEON 9600 Series -ATI Technologies Inc. ATI RADEON 9600/X1050 Series -ATI Technologies Inc. ATI RADEON E4690 -ATI Technologies Inc. ATI RADEON HD 3200 Graphics -ATI Technologies Inc. ATI RADEON XPRESS 1100 -ATI Technologies Inc. ATI RADEON XPRESS 1100 Series -ATI Technologies Inc. ATI RADEON XPRESS 1100 Series -ATI Technologies Inc. ATI RADEON XPRESS 1100 x86/SSE2 -ATI Technologies Inc. ATI RADEON XPRESS 1200 Series -ATI Technologies Inc. ATI RADEON XPRESS 200 -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 200 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI RADEON XPRESS 200M SERIES -ATI Technologies Inc. ATI RADEON XPRESS 200M Series -ATI Technologies Inc. ATI RADEON XPRESS 200M Series (Microsoft Corporation) -ATI Technologies Inc. ATI RADEON XPRESS 200M Series (Omega 3.8.421) x86/SSE2 -ATI Technologies Inc. ATI RADEON XPRESS 200M Series x86/SSE2 -ATI Technologies Inc. ATI Radeon 2100 -ATI Technologies Inc. ATI Radeon 2100 (Microsoft Corporation - WDDM) -ATI Technologies Inc. ATI Radeon 2100 (Microsoft Corporation - WDDM) -ATI Technologies Inc. ATI Radeon 2100 Graphics -ATI Technologies Inc. ATI Radeon 3000 -ATI Technologies Inc. ATI Radeon 3000 Graphics -ATI Technologies Inc. ATI Radeon 3000 Graphics -ATI Technologies Inc. ATI Radeon 3000 Graphics -ATI Technologies Inc. ATI Radeon 3000 Graphics (Engineering Sample - WDDM v1.1) -ATI Technologies Inc. ATI Radeon 3000 Series Graphics -ATI Technologies Inc. ATI Radeon 3100 Graphics -ATI Technologies Inc. ATI Radeon 3100 Graphics -ATI Technologies Inc. ATI Radeon 3100 Graphics (Microsoft Corporation WDDM 1.1) -ATI Technologies Inc. ATI Radeon 3100 Series Graphics -ATI Technologies Inc. ATI Radeon 9550 / X1050 -ATI Technologies Inc. ATI Radeon 9550 / X1050 Series -ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/SSE2 -ATI Technologies Inc. ATI Radeon 9550 / X1050 Series(Microsoft Corporation - WDDM) -ATI Technologies Inc. ATI Radeon 9600 / X1050 Series -ATI Technologies Inc. ATI Radeon 9600 / X1050 Series x86/SSE2 -ATI Technologies Inc. ATI Radeon 9600/9550/X1050 Series -ATI Technologies Inc. ATI Radeon BA Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon BA Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Barts PRO Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Barts PRO Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Barts PRO Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Barts XT Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Barts XT Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Caicos PRO Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Caicos Unknown Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Cedar PRO Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Graphics Processor -ATI Technologies Inc. ATI Radeon HD 2350 -ATI Technologies Inc. ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 2400 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 2400 PCI -ATI Technologies Inc. ATI Radeon HD 2400 PRO -ATI Technologies Inc. ATI Radeon HD 2400 PRO AGP -ATI Technologies Inc. ATI Radeon HD 2400 Pro -ATI Technologies Inc. ATI Radeon HD 2400 Series -ATI Technologies Inc. ATI Radeon HD 2400 Series AGP -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 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 AGP -ATI Technologies Inc. ATI Radeon HD 2600 Series -ATI Technologies Inc. ATI Radeon HD 2600 Series AGP -ATI Technologies Inc. ATI Radeon HD 2600 XT -ATI Technologies Inc. ATI Radeon HD 2600/3600 Series -ATI Technologies Inc. ATI Radeon HD 2900 GT -ATI Technologies Inc. ATI Radeon HD 2900 PRO -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 3200 Graphics (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 3200 Graphics (Microsoft Corporation WDDM 1.1) -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 AGP -ATI Technologies Inc. ATI Radeon HD 3470 -ATI Technologies Inc. ATI Radeon HD 3470 - Dell Optiplex -ATI Technologies Inc. ATI Radeon HD 3600 Series -ATI Technologies Inc. ATI Radeon HD 3600 Series -ATI Technologies Inc. ATI Radeon HD 3600 Series (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 3600 Series (Microsoft Corporation WDDM 1.1) -ATI Technologies Inc. ATI Radeon HD 3650 -ATI Technologies Inc. ATI Radeon HD 3650 AGP -ATI Technologies Inc. ATI Radeon HD 3800 Series -ATI Technologies Inc. ATI Radeon HD 3850 -ATI Technologies Inc. ATI Radeon HD 3850 (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 3850 AGP -ATI Technologies Inc. ATI Radeon HD 3870 -ATI Technologies Inc. ATI Radeon HD 3870 (Engineering Sample - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 3870 (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 3870 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 3870 OpenGL Engine -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 4200 (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 4250 -ATI Technologies Inc. ATI Radeon HD 4250 -ATI Technologies Inc. ATI Radeon HD 4250 (Engineering Sample - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 4250 (Microsoft Corporation - WDDM v1.1) -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 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 4300/4500 Series (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 4300/4500 Series (Microsoft Corporation- WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 4350 -ATI Technologies Inc. ATI Radeon HD 4350 -ATI Technologies Inc. ATI Radeon HD 4350 (Microsoft Corporation WDDM 1.1) -ATI Technologies Inc. ATI Radeon HD 4450 -ATI Technologies Inc. ATI Radeon HD 4500 Series -ATI Technologies Inc. ATI Radeon HD 4520 -ATI Technologies Inc. ATI Radeon HD 4550 -ATI Technologies Inc. ATI Radeon HD 4550 -ATI Technologies Inc. ATI Radeon HD 4550 (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 4570 -ATI Technologies Inc. ATI Radeon HD 4580 -ATI Technologies Inc. ATI Radeon HD 4590 -ATI Technologies Inc. ATI Radeon HD 4600 Series -ATI Technologies Inc. ATI Radeon HD 4600 Series -ATI Technologies Inc. ATI Radeon HD 4600 Series (Engineering Sample - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 4600 Series (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 4600-serie (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 4650 -ATI Technologies Inc. ATI Radeon HD 4650 -ATI Technologies Inc. ATI Radeon HD 4650 (Microsoft Corporation WDDM 1.1) -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 4670 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 4700 -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 4730 -ATI Technologies Inc. ATI Radeon HD 4730 Series -ATI Technologies Inc. ATI Radeon HD 4770 -ATI Technologies Inc. ATI Radeon HD 4770 -ATI Technologies Inc. ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4800 Series -ATI Technologies Inc. ATI Radeon HD 4800 Series -ATI Technologies Inc. ATI Radeon HD 4800 Series (Microsoft Corporation - WDDM v1.1) -ATI Technologies Inc. ATI Radeon HD 4810 series -ATI Technologies Inc. ATI Radeon HD 4830 -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 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 4850 PRO OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 4850 Series -ATI Technologies Inc. ATI Radeon HD 4850 X2 -ATI Technologies Inc. ATI Radeon HD 4870 -ATI Technologies Inc. ATI Radeon HD 4870 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 4870 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 4870 Series -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 5450 -ATI Technologies Inc. ATI Radeon HD 5450 (Microsoft Corporation - WDDM v1.20) -ATI Technologies Inc. ATI Radeon HD 5470 -ATI Technologies Inc. ATI Radeon HD 5500 -ATI Technologies Inc. ATI Radeon HD 5500 Series -ATI Technologies Inc. ATI Radeon HD 5500 Series -ATI Technologies Inc. ATI Radeon HD 5530 -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 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 5700 Series (Microsoft Corporation - WDDM v1.2) -ATI Technologies Inc. ATI Radeon HD 5700 Series (Microsoft Corporation - WDDM v1.20) -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 5750 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 5750 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 5750 Series -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 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 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 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 6290 -ATI Technologies Inc. ATI Radeon HD 6350 -ATI Technologies Inc. ATI Radeon HD 6390 -ATI Technologies Inc. ATI Radeon HD 6490 -ATI Technologies Inc. ATI Radeon HD 6490M OpenGL Engine -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 6630M OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 6630M OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 6630M OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 6750M OpenGL Engine -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 6770M OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 6970M OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 6970M OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 6970M OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 7350 -ATI Technologies Inc. ATI Radeon HD 7350 -ATI Technologies Inc. ATI Radeon HD 7950 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 7950 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 7950 OpenGL Engine -ATI Technologies Inc. ATI Radeon HD Pitcairn XT Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon HD Tahiti XT Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon HD Tahiti XT Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon HD Verde XT Prototype 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 HD4650 -ATI Technologies Inc. ATI Radeon HD4670 -ATI Technologies Inc. ATI Radeon HD4670 -ATI Technologies Inc. ATI Radeon RV730 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 RV790 Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Redwood XT Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Turks PRO Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Turks XT Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Turks XT Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon X1050 -ATI Technologies Inc. ATI Radeon X1050 Series -ATI Technologies Inc. ATI Radeon X1050 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Radeon X1050 x86/SSE2 -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 (Microsoft Corporation - WDDM) -ATI Technologies Inc. ATI Radeon X1200 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Radeon X1200 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Radeon X1250 -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 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Radeon X1300 / X1550 Series -ATI Technologies Inc. ATI Radeon X1300/X1550 Series -ATI Technologies Inc. ATI Radeon X1550 -ATI Technologies Inc. ATI Radeon X1550 Series -ATI Technologies Inc. ATI Radeon X1550 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Radeon X1550 Series x86/SSE2 -ATI Technologies Inc. ATI Radeon X1550 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Radeon X1550 x86/SSE2 -ATI Technologies Inc. ATI Radeon X1600 OpenGL Engine -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 X1950 GT -ATI Technologies Inc. ATI Radeon X1950 GT x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Radeon X1950 GT x86/SSE2 -ATI Technologies Inc. ATI Radeon X300/X550/X1050 Series -ATI Technologies Inc. ATI Radeon X300/X550/X1050 Series -ATI Technologies Inc. ATI Radeon X600/X550/X1050 Series -ATI Technologies Inc. ATI Radeon Xpress 1100 -ATI Technologies Inc. ATI Radeon Xpress 1100 x86/SSE2 -ATI Technologies Inc. ATI Radeon Xpress 1150 -ATI Technologies Inc. ATI Radeon Xpress 1150 Series -ATI Technologies Inc. ATI Radeon Xpress 1150 Series -ATI Technologies Inc. ATI Radeon Xpress 1150 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Radeon Xpress 1200 Series -ATI Technologies Inc. ATI Radeon Xpress 1200 Series (Microsoft Corporation - WDDM) -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 1200 x86/MMX/3DNow!/SSE2 -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 1270 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Radeon Xpress Series -ATI Technologies Inc. ATI Radeon Xpress Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. All-in-Wonder 2006 PCI-E Edition -ATI Technologies Inc. All-in-Wonder 2006 PCI-E Edition x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. Diamond Radeon X1550 -ATI Technologies Inc. Diamond Radeon X1550 Series -ATI Technologies Inc. Diamond Radeon X1550 Series x86/SSE2 -ATI Technologies Inc. Diamond Radeon X1550 x86/SSE2 -ATI Technologies Inc. Diamond X1600 PRO 512MB PCI-E x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. FireGL V3100 Pentium 4 (SSE2) -ATI Technologies Inc. FireGL V3200 Pentium 4 (SSE2) -ATI Technologies Inc. FireGL X1-128 -ATI Technologies Inc. FireMV 2400 PCI DDR x86 -ATI Technologies Inc. FireMV 2400 PCI DDR x86/SSE2 -ATI Technologies Inc. FirePro M3900 Mobility Professional Graphics -ATI Technologies Inc. GIGABYTE RADEON 9600 PRO -ATI Technologies Inc. GIGABYTE Radeon X1300 Pro -ATI Technologies Inc. GIGABYTE Radeon X1300 Series -ATI Technologies Inc. GIGABYTE Radeon X1600 PRO -ATI Technologies Inc. GeCube RADEON 9600XT -ATI Technologies Inc. GeCube RADEON X550 x86/SSE2 -ATI Technologies Inc. GeCube RADEON X700 Series -ATI Technologies Inc. GeCube Radeon X1550 -ATI Technologies Inc. GeCube Radeon X1550 Series -ATI Technologies Inc. GeCube Radeon X1550 Series -ATI Technologies Inc. GeForce 9600 GT x86/SSE2 -ATI Technologies Inc. GigaByte Radeon X1050 -ATI Technologies Inc. Gigabyte RADEON X300 -ATI Technologies Inc. Gigabyte RADEON X300 -ATI Technologies Inc. Gigabyte RADEON X300 SE -ATI Technologies Inc. Gigabyte RADEON X300 x86/SSE2 -ATI Technologies Inc. HD3730 -ATI Technologies Inc. HIGHTECH EXCALIBUR RADEON 9550SE Series -ATI Technologies Inc. HIGHTECH EXCALIBUR RADEON 9550SE Series x86/SSE2 -ATI Technologies Inc. HIGHTECH RADEON 9600XT -ATI Technologies Inc. HIS Radeon X1550 x86/SSE2 -ATI Technologies Inc. M52 x86 -ATI Technologies Inc. M72-M -ATI Technologies Inc. MEDION RADEON 9600 TX -ATI Technologies Inc. MEDION RADEON X740XL x86/SSE2 -ATI Technologies Inc. MOBILITY FIREGL T2 Pentium 4 (SSE2) -ATI Technologies Inc. MOBILITY RADEON 7000 IGP DDR x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON 7500 DDR x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86 -ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86 -ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9000/9100 IGP Series DDR x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9000/9100 PRO IGP Series DDR x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9200 DDR x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9600 x86 -ATI Technologies Inc. MOBILITY RADEON 9600 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9600 x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9700 x86 -ATI Technologies Inc. MOBILITY RADEON 9700 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9700 x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9800 x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON X300 x86 -ATI Technologies Inc. MOBILITY RADEON X300 x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON X300 x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON X600 SE x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON X600 x86 -ATI Technologies Inc. MOBILITY RADEON X600 x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON X700 SE x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON X700 x86/MMX/3DNow!/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. MOBILITY/RADEON 9000 DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. MOBILITY/RADEON 9000 DDR x86/SSE2 -ATI Technologies Inc. MOBILITY/RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. MOBILITY/RADEON 9250/9200 Series DDR x86/SSE2 -ATI Technologies Inc. MSI RX9550SE x86/MMX/3DNow!/SSE -ATI Technologies Inc. MSI Radeon X1550 -ATI Technologies Inc. Mobility Radeon X2300 HD -ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2 -ATI Technologies Inc. RADEON 7000 DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 7000 DDR x86/SSE2 -ATI Technologies Inc. RADEON 7000 SDR x86 -ATI Technologies Inc. RADEON 7000 SW TCL x86/SSE2 -ATI Technologies Inc. RADEON 7200 DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 7200 DDR x86/SSE2 -ATI Technologies Inc. RADEON 7200 SDR x86/SSE2 -ATI Technologies Inc. RADEON 7500 DDR x86/SSE2 -ATI Technologies Inc. RADEON 8500 DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 8500 DDR x86/SSE2 -ATI Technologies Inc. RADEON 9000 DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 9000 DDR x86/SSE2 -ATI Technologies Inc. RADEON 9000 PRO DDR x86/SSE2 -ATI Technologies Inc. RADEON 9000 XT IGPRADEON 9100 XT IGP DDR x86/SSE2 -ATI Technologies Inc. RADEON 9100 DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 9100 DDR x86/SSE2 -ATI Technologies Inc. RADEON 9100 IGP DDR x86 -ATI Technologies Inc. RADEON 9100 IGP DDR x86/SSE2 -ATI Technologies Inc. RADEON 9200 DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 9200 DDR x86/SSE2 -ATI Technologies Inc. RADEON 9200 LE DDR x86/SSE2 -ATI Technologies Inc. RADEON 9200 PRO DDR x86/SSE2 -ATI Technologies Inc. RADEON 9200 Series DDR x86 -ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow! -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/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 9200SE DDR x86/SSE2 -ATI Technologies Inc. RADEON 9250/9000 Series DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/SSE2 -ATI Technologies Inc. RADEON 9500 -ATI Technologies Inc. RADEON 9500 PRO / 9700 -ATI Technologies Inc. RADEON 9550 -ATI Technologies Inc. RADEON 9550 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 9550 x86/SSE2 -ATI Technologies Inc. RADEON 9600 SERIES -ATI Technologies Inc. RADEON 9600 TX -ATI Technologies Inc. RADEON 9600 TX x86/SSE2 -ATI Technologies Inc. RADEON 9600 XT x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 9600 XT x86/SSE2 -ATI Technologies Inc. RADEON 9600 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 9600 x86/SSE2 -ATI Technologies Inc. RADEON 9600SE x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 9600SE x86/SSE2 -ATI Technologies Inc. RADEON 9700 PRO -ATI Technologies Inc. RADEON 9800 PRO -ATI Technologies Inc. RADEON 9800 PRO (Microsoft Corporation - WDDM) -ATI Technologies Inc. RADEON 9800 PRO - Secondary -ATI Technologies Inc. RADEON 9800 Pro x86/SSE2 -ATI Technologies Inc. RADEON 9800 SERIES -ATI Technologies Inc. RADEON 9800 XT -ATI Technologies Inc. RADEON 9800 XT x86/SSE2 -ATI Technologies Inc. RADEON 9800 x86/SSE2 -ATI Technologies Inc. RADEON IGP 340M DDR x86/SSE2 -ATI Technologies Inc. RADEON Radeon X300/X550/X1050 Series x86/SSE2 -ATI Technologies Inc. RADEON X1600 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X1600 Series x86/SSE2 -ATI Technologies Inc. RADEON X300 SE 128MB HyperMemory x86/SSE2 -ATI Technologies Inc. RADEON X300 SE x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X300 Series -ATI Technologies Inc. RADEON X300 Series x86/SSE2 -ATI Technologies Inc. RADEON X300 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X300 x86/SSE2 -ATI Technologies Inc. RADEON X300/X550 Series x86 -ATI Technologies Inc. RADEON X300/X550 Series x86/MMX/3DNow!/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! -ATI Technologies Inc. RADEON X550 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X550 x86/SSE2 -ATI Technologies Inc. RADEON X550XT -ATI Technologies Inc. RADEON X600 256MB HyperMemory x86/SSE2 -ATI Technologies Inc. RADEON X600 PRO x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X600 PRO x86/SSE2 -ATI Technologies Inc. RADEON X600 SE x86/SSE2 -ATI Technologies Inc. RADEON X600 Series -ATI Technologies Inc. RADEON X600 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X600 x86/SSE2 -ATI Technologies Inc. RADEON X600/X550 Series -ATI Technologies Inc. RADEON X600/X550 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. RADEON X600/X550 Series Secondary -ATI Technologies Inc. RADEON X600/X550 Series x86/SSE2 -ATI Technologies Inc. RADEON X700 PRO x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X700 PRO x86/SSE2 -ATI Technologies Inc. RADEON X700 SE -ATI Technologies Inc. RADEON X700 SE x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X700 SE x86/SSE2 -ATI Technologies Inc. RADEON X700 Series -ATI Technologies Inc. RADEON X700 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X700 Series x86/SSE2 -ATI Technologies Inc. RADEON X700 x86/SSE2 -ATI Technologies Inc. RADEON X700/X550 Series x86/SSE2 -ATI Technologies Inc. RADEON X800 GT x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X800 GTO -ATI Technologies Inc. RADEON X800 GTO x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X800 GTO x86/SSE2 -ATI Technologies Inc. RADEON X800 PRO/GTO -ATI Technologies Inc. RADEON X800 SE x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X800 SE x86/SSE2 -ATI Technologies Inc. RADEON X800 Series -ATI Technologies Inc. RADEON X800 Series -ATI Technologies Inc. RADEON X800 XL x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON X800 XL x86/SSE2 -ATI Technologies Inc. RADEON X800 XT -ATI Technologies Inc. RADEON X800 XT (Microsoft Corporation - WDDM) -ATI Technologies Inc. RADEON X800 XT x86/SSE2 -ATI Technologies Inc. RADEON X800/X850 Series -ATI Technologies Inc. RADEON X800GT -ATI Technologies Inc. RADEON X850 Series -ATI Technologies Inc. RADEON X850 XT Platinum Edition (Microsoft Corporation - WDDM) -ATI Technologies Inc. RADEON X850 XT Platinum Edition x86/SSE2 -ATI Technologies Inc. RADEON X850 XT x86/SSE2 -ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86 -ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/MMX/3DNow! -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 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON XPRESS 200 Series x86/SSE2 -ATI Technologies Inc. RADEON XPRESS 200M Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86 -ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/MMX/3DNow! -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! -ATI Technologies Inc. RADEON XPRESS 200M Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON XPRESS 200M Series x86/SSE2 -ATI Technologies Inc. RADEON XPRESS Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON XPRESS Series x86/SSE2 -ATI Technologies Inc. RADEON Xpress 200 Series SW TCL x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON Xpress 200G Series SW TCL x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ROBSON CE -ATI Technologies Inc. ROBSON LE -ATI Technologies Inc. RS780M -ATI Technologies Inc. RS880 -ATI Technologies Inc. RS880 -ATI Technologies Inc. RV250 DDR x86/SSE2 -ATI Technologies Inc. Radeon X1300XT/X1600 Pro Series -ATI Technologies Inc. Radeon X1300XT/X1600Pro/X1650 Series -ATI Technologies Inc. Radeon X1300XT/X1600Pro/X1650 Series -ATI Technologies Inc. Radeon (TM) HD 7670M -ATI Technologies Inc. Radeon (TM) HD 7670M -ATI Technologies Inc. Radeon (TM) HD 6370M -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 6490M -ATI Technologies Inc. Radeon (TM) HD 6630M -ATI Technologies Inc. Radeon (TM) HD 6750M -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 6770M -ATI Technologies Inc. Radeon (TM) HD 6850M -ATI Technologies Inc. Radeon (TM) HD 6850M -ATI Technologies Inc. Radeon (TM) HD 7450M -ATI Technologies Inc. Radeon (TM) HD 7470M -ATI Technologies Inc. Radeon (TM) HD 7670M -ATI Technologies Inc. Radeon (TM) HD 7670M -ATI Technologies Inc. Radeon (TM) HD 7670M -ATI Technologies Inc. Radeon (TM) HD 7690M XT -ATI Technologies Inc. Radeon (TM) HD 7690M XT -ATI Technologies Inc. Radeon (TM) HD 7690M XT -ATI Technologies Inc. Radeon (TM) HD 7750M -ATI Technologies Inc. Radeon (TM) HD 7750M -ATI Technologies Inc. Radeon (TM) HD 7850M -ATI Technologies Inc. Radeon (TM) HD 7850M -ATI Technologies Inc. Radeon (TM) HD 8750M -ATI Technologies Inc. Radeon (TM) HD 8750M -ATI Technologies Inc. Radeon 7000 DDR x86/SSE2 -ATI Technologies Inc. Radeon 7500 DDR x86 -ATI Technologies Inc. Radeon 7500 DDR x86/SSE2 -ATI Technologies Inc. Radeon 9100 DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. Radeon 9200 DDR x86/SSE2 -ATI Technologies Inc. Radeon HD 2600 PRO (Omega 3.8.442) -ATI Technologies Inc. Radeon HD 6470M -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 Radeon X300/X550/X1050 Series x86/SSE2 -ATI Technologies Inc. Radeon X1050 -ATI Technologies Inc. Radeon X1050 Series (Omega 3.8.442) -ATI Technologies Inc. Radeon X1200 Series (Omega 3.8.442) -ATI Technologies Inc. Radeon X1300 / X1550 Series -ATI Technologies Inc. Radeon X1300 / X1550 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1300 / X1550 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1300 / X1600 Series -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 Series x86/SSE2 -ATI Technologies Inc. Radeon X1300/X1550 Series -ATI Technologies Inc. Radeon X1300/X1550 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1300/X1550 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1300/X1550 Series (Omega 3.8.442) -ATI Technologies Inc. Radeon X1300/X1550 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. Radeon X1300/X1550 Series x86/SSE2 -ATI Technologies Inc. Radeon X1550 64-bit (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1550 64-bit x86/SSE2 -ATI Technologies Inc. Radeon X1550 Series -ATI Technologies Inc. Radeon X1550 Series -ATI Technologies Inc. Radeon X1550 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1550 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. Radeon X1550 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. Radeon X1550 Series x86/SSE2 -ATI Technologies Inc. Radeon X1600 -ATI Technologies Inc. Radeon X1600 Pro / X1300XT -ATI Technologies Inc. Radeon X1600 Pro / X1300XT x86/SSE2 -ATI Technologies Inc. Radeon X1600 Series -ATI Technologies Inc. Radeon X1600 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1600 Series (Omega 3.8.442) -ATI Technologies Inc. Radeon X1600 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. Radeon X1600 Series x86/SSE2 -ATI Technologies Inc. Radeon X1600 x86/SSE2 -ATI Technologies Inc. Radeon X1600/1650 Series -ATI Technologies Inc. Radeon X1600/X1650 Series -ATI Technologies Inc. Radeon X1600/X1650 Series x86/SSE2 -ATI Technologies Inc. Radeon X1650 GTO -ATI Technologies Inc. Radeon X1650 SE -ATI Technologies Inc. Radeon X1650 SE x86/SSE2 -ATI Technologies Inc. Radeon X1650 Series -ATI Technologies Inc. Radeon X1650 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1650 Series -ATI Technologies Inc. Radeon X1650 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1650 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1650 Series (Omega 3.8.442) -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 X1650/X1700 Series (Omega 3.8.442) -ATI Technologies Inc. Radeon X1700 FSC -ATI Technologies Inc. Radeon X1800 CrossFire Edition -ATI Technologies Inc. Radeon X1800 Series -ATI Technologies Inc. Radeon X1800 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. Radeon X1900 CrossFire Edition -ATI Technologies Inc. Radeon X1900 GT -ATI Technologies Inc. Radeon X1900 GT x86/SSE2 -ATI Technologies Inc. Radeon X1900 Series -ATI Technologies Inc. Radeon X1900 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1900 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. Radeon X1900 Series x86/SSE2 -ATI Technologies Inc. Radeon X1950 CrossFire Edition -ATI Technologies Inc. Radeon X1950 Pro -ATI Technologies Inc. Radeon X1950 Pro (Omega 3.8.442) -ATI Technologies Inc. Radeon X1950 Pro x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. Radeon X1950 Pro x86/SSE2 -ATI Technologies Inc. Radeon X1950 Series -ATI Technologies Inc. Radeon X1950 Series -ATI Technologies Inc. Radeon X1950 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1950 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X1950 Series x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. Radeon X1950 Series x86/SSE2 -ATI Technologies Inc. Radeon X300/X550/X1050 Series -ATI Technologies Inc. Radeon X300/X550/X1050 Series -ATI Technologies Inc. Radeon X300/X550/X1050 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X300/X550/X1050 Series (Microsoft Corporation - WDDM) -ATI Technologies Inc. Radeon X300/X550/X1050 Series (Omega 3.8.442) -ATI Technologies Inc. Radeon X300/X550/X1050 Series x86/SSE2 -ATI Technologies Inc. Radeon X550/X700 Series -ATI Technologies Inc. Radeon X550XTX -ATI Technologies Inc. Radeon Xpress 200 Series (Omega 3.8.442) x86/SSE2 -ATI Technologies Inc. Radeon Xpress 200M Series (Omega 3.8.442) -ATI Technologies Inc. SAPPHIRE RADEON 9600 ATLANTIS -ATI Technologies Inc. SAPPHIRE RADEON X300SE -ATI Technologies Inc. SAPPHIRE Radeon X1550 -ATI Technologies Inc. SAPPHIRE Radeon X1550 Series -ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/SSE2 -ATI Technologies Inc. SUMO 9640 -ATI Technologies Inc. SUMO 964A -ATI Technologies Inc. Sapphire RADEON X1600 PRO -ATI Technologies Inc. Sapphire RADEON X1600 PRO x86/SSE2 -ATI Technologies Inc. Sapphire RADEON X1600 XT -ATI Technologies Inc. Tul Corporation, RADEON X1300 Series -ATI Technologies Inc. Tul Corporation, RADEON X300SE -ATI Technologies Inc. VisionTek Radeon 4350 -ATI Technologies Inc. VisionTek Radeon 4350 -ATI Technologies Inc. VisionTek Radeon HD 2400 PCI -ATI Technologies Inc. VisionTek Radeon HD 2600 XT AGP -ATI Technologies Inc. VisionTek Radeon HD 5450 -ATI Technologies Inc. VisionTek Radeon HD2400 Pro AGP -ATI Technologies Inc. VisionTek Radeon HD2400 Pro PCI -ATI Technologies Inc. VisionTek Radeon X1300 -ATI Technologies Inc. VisionTek Radeon X1300 Series -ATI Technologies Inc. VisionTek Radeon X1300 XGE -ATI Technologies Inc. VisionTek Radeon X1550 Series -ATI Technologies Inc. WRESTLER 9802 -ATI Technologies Inc. XFX Radeon HD 4570 -Advanced Micro Devices, Inc. Mesa DRI R600 (RS880 9712) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -Alex Mohr GL Hijacker! -Brian Paul Mesa X11 -Gallium -Humper -Humper Chromium -Humper Chromium -Imagination Technologies 3D-Analyze v2.3 - http://www.tommti-systems.com -Imagination Technologies PowerVR SGX545 -Imagination Technologies PowerVR SGX545 -Intel -Intel 3D-Analyze v2.3 - http://www.tommti-systems.com -Intel 4 Series Internal -Intel 845G -Intel 855GM -Intel 865G -Intel 915G -Intel 915GM -Intel 945G -Intel 945GM -Intel 950 -Intel 965 -Intel 965 -Intel 965 -Intel Bear Lake -Intel Broadwater -Intel Brookdale -Intel Cantiga -Intel Corporation Intel(R) Graphics Media Accelerator 3600 Series -Intel Corporation Intel(R) Graphics Media Accelerator 3600 Series -Intel Eaglelake -Intel G33 -Intel G41 -Intel G45 -Intel Graphics Media HD -Intel Graphics Media HD -Intel HD Graphics -Intel HD Graphics -Intel HD Graphics -Intel HD Graphics -Intel HD Graphics 2000 -Intel HD Graphics 2000 -Intel HD Graphics 3000 -Intel HD Graphics 3000 -Intel HD Graphics 4000 -Intel HD Graphics 4000 -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 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 3000 OpenGL Engine -Intel Inc. Intel HD Graphics 4000 OpenGL Engine -Intel Inc. Intel HD Graphics 4000 OpenGL Engine -Intel Inc. Intel HD Graphics 4000 OpenGL Engine -Intel Inc. Intel HD Graphics 4000 OpenGL Engine -Intel Inc. Intel HD Graphics 5000 OpenGL Engine -Intel Inc. Intel HD Graphics 5000 OpenGL Engine -Intel Inc. Intel HD Graphics 5000 OpenGL Engine -Intel Inc. Intel HD Graphics 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 Cantiga -Intel Intel Cantiga -Intel Intel Eaglelake -Intel Intel Eaglelake -Intel Intel Grantsdale-G -Intel Intel Grantsdale-G -Intel Intel Iris Pro Graphics 5200 -Intel Intel Montara-GM -Intel Intel Pineview Platform -Intel Intel Pineview Platform -Intel Intel Springdale-G -Intel Intel(R) HD Graphics Family -Intel Intel(R) 4 Series Internal Chipset -Intel Intel(R) 4 Series Internal Chipset -Intel Intel(R) B43 Express Chipset -Intel Intel(R) B43 Express Chipset -Intel Intel(R) G41 Express Chipset -Intel Intel(R) G41 Express Chipset -Intel Intel(R) G41 Express Chipset -Intel Intel(R) G41 Express Chipset (Microsoft Corporation - WDDM 1.1) -Intel Intel(R) G41 Express Chipset v2 -Intel Intel(R) G45/G43 Express Chipset -Intel Intel(R) G45/G43 Express Chipset -Intel Intel(R) G45/G43 Express Chipset -Intel Intel(R) G45/G43/G41 Express Chipset -Intel Intel(R) Graphics Media Accelerator HD -Intel Intel(R) Graphics Media Accelerator HD -Intel Intel(R) Graphics Media Accelerator HD -Intel Intel(R) HD Graphics -Intel Intel(R) HD Graphics -Intel Intel(R) HD Graphics -Intel Intel(R) HD Graphics 100 -Intel Intel(R) HD Graphics 2000 -Intel Intel(R) HD Graphics 2000 -Intel Intel(R) HD Graphics 2500 -Intel Intel(R) HD Graphics 2500 -Intel Intel(R) HD Graphics 3000 -Intel Intel(R) HD Graphics 3000 -Intel Intel(R) HD Graphics 3000 -Intel Intel(R) HD Graphics 4000 -Intel Intel(R) HD Graphics 4000 -Intel Intel(R) HD Graphics 4000 -Intel Intel(R) HD Graphics 4000 -Intel Intel(R) HD Graphics 4400 -Intel Intel(R) HD Graphics 4600 -Intel Intel(R) HD Graphics 4600 -Intel Intel(R) HD Graphics 5000 -Intel Intel(R) HD Graphics BR-1004-01Y1 -Intel Intel(R) HD Graphics Family -Intel Intel(R) HD Graphics Family -Intel Intel(R) HD Graphics P3000 -Intel Intel(R) HD Graphics P4000 -Intel Intel(R) Q45/Q43 Express Chipset -Intel Intel(R) Q45/Q43 Express Chipset -Intel Iris OpenGL Graphics Engine -Intel Mobile 4 Series -Intel Mobile Intel(R) 4 Series Express Chipset Family -Intel Mobile Intel(R) 4 Series Express Chipset Family -Intel Mobile Intel(R) 4 Series Express Chipset Family v2 -Intel Mobile Intel(R) 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1) -Intel Mobile Intel(R) HD Graphics -Intel Mobile Intel(R) HD Graphics -Intel Montara -Intel Open Source Technology Center Mesa DRI Intel(R) 852GM/855GM x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) 915G -Intel Open Source Technology Center Mesa DRI Intel(R) 915G x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) 915GM x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) 945G -Intel Open Source Technology Center Mesa DRI Intel(R) 945G x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) 945GM -Intel Open Source Technology Center Mesa DRI Intel(R) 945GM x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) 945GME x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) 965G x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) 965GM -Intel Open Source Technology Center Mesa DRI Intel(R) 965GM x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) 965GME/GLE -Intel Open Source Technology Center Mesa DRI Intel(R) 965Q -Intel Open Source Technology Center Mesa DRI Intel(R) 965Q x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) G33 x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) G41 x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) G45/G43 -Intel Open Source Technology Center Mesa DRI Intel(R) G45/G43 x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) IGD -Intel Open Source Technology Center Mesa DRI Intel(R) IGD x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) Ironlake Desktop x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) Ironlake Mobile -Intel Open Source Technology Center Mesa DRI Intel(R) Ironlake Mobile x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) Ivybridge Desktop -Intel Open Source Technology Center Mesa DRI Intel(R) Ivybridge Desktop x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) Ivybridge Mobile -Intel Open Source Technology Center Mesa DRI Intel(R) Ivybridge Mobile x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) Q35 -Intel Open Source Technology Center Mesa DRI Intel(R) Q35 x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) Q45/Q43 -Intel Open Source Technology Center Mesa DRI Intel(R) Q45/Q43 x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) Sandybridge Desktop -Intel Open Source Technology Center Mesa DRI Intel(R) Sandybridge Desktop x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) Sandybridge Mobile -Intel Open Source Technology Center Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2 -Intel Open Source Technology Center Mesa DRI Mobile Intel(R) GM45 Express Chipset -Intel Open Source Technology Center Mesa DRI Mobile Intel(R) GM45 Express Chipset x86/MMX/SSE2 -Intel Pineview -Intel Q45/Q43 -Intel Royal BNA Driver -Intel Springdale -Intel X3100 -Intel X3100 -Matrox Graphics Inc. Matrox ICD for M-Series -Matrox Graphics Inc. Matrox G400 -Matrox Graphics Inc. Matrox ICD for Parhelia -Mesa -Mesa -Mesa Project Software Rasterizer -Mesa project: www.mesa3d.org Mesa GLX Indirect -NVIDIA 205 -NVIDIA 210 -NVIDIA 210 -NVIDIA 310 -NVIDIA 310 -NVIDIA 310 -NVIDIA 310M -NVIDIA 310M -NVIDIA 315 -NVIDIA 315M -NVIDIA 315M -NVIDIA 320M -NVIDIA 320M -NVIDIA 405 -NVIDIA 410 -NVIDIA 510 -NVIDIA 610M -NVIDIA Corporation /PCI/SSE2 -NVIDIA Corporation 3D-Analyze v2.3 - http://www.tommti-systems.com -NVIDIA Corporation C51/PCI/SSE2/3DNOW! -NVIDIA Corporation C51G/PCI/SSE2/3DNOW! -NVIDIA Corporation D10P1-25/PCI/SSE2/3DNOW! -NVIDIA Corporation D14P1-30/PCIe/SSE2 -NVIDIA Corporation D9M-20/PCI/SSE2 -NVIDIA Corporation D9M-20/PCI/SSE2/3DNOW! -NVIDIA Corporation G72/PCI/SSE2/3DNOW! -NVIDIA Corporation G73/AGP/SSE2/3DNOW! -NVIDIA Corporation G73/PCI/SSE2/3DNOW! -NVIDIA Corporation G84-50/PCI/SSE2 -NVIDIA Corporation G92-100/PCI/SSE2/3DNOW! -NVIDIA Corporation GK106/PCIe/SSE2 -NVIDIA Corporation GRID K2/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 555/PCI/SSE2 -NVIDIA Corporation GeForce GTX 555/PCI/SSE2 -NVIDIA Corporation GeForce GTX 555/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 555/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 555/PCIe/SSE2 -NVIDIA Corporation GeForce 205/PCI/SSE2 -NVIDIA Corporation GeForce 210/PCI/SSE2 -NVIDIA Corporation GeForce 210/PCI/SSE2 -NVIDIA Corporation GeForce 210/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 210/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 210/PCIe/SSE2 -NVIDIA Corporation GeForce 210/PCIe/SSE2 -NVIDIA Corporation GeForce 210/PCIe/SSE2 -NVIDIA Corporation GeForce 210/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 210/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 310/PCI/SSE2 -NVIDIA Corporation GeForce 310/PCI/SSE2 -NVIDIA Corporation GeForce 310/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 310/PCIe/SSE2 -NVIDIA Corporation GeForce 310/PCIe/SSE2 -NVIDIA Corporation GeForce 310/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 310M/PCI/SSE2 -NVIDIA Corporation GeForce 310M/PCI/SSE2 -NVIDIA Corporation GeForce 310M/PCIe/SSE2 -NVIDIA Corporation GeForce 310M/PCIe/SSE2 -NVIDIA Corporation GeForce 310M/PCIe/SSE2 -NVIDIA Corporation GeForce 315/PCI/SSE2 -NVIDIA Corporation GeForce 315/PCI/SSE2 -NVIDIA Corporation GeForce 315/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 315/PCIe/SSE2 -NVIDIA Corporation GeForce 315/PCIe/SSE2 -NVIDIA Corporation GeForce 315/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 315M/PCI/SSE2 -NVIDIA Corporation GeForce 315M/PCI/SSE2 -NVIDIA Corporation GeForce 315M/PCI/SSE2 -NVIDIA Corporation GeForce 315M/PCIe/SSE2 -NVIDIA Corporation GeForce 315M/PCIe/SSE2 -NVIDIA Corporation GeForce 320M/PCI/SSE2 -NVIDIA Corporation GeForce 320M/PCI/SSE2 -NVIDIA Corporation GeForce 320M/integrated/SSE2 -NVIDIA Corporation GeForce 405/PCI/SSE2 -NVIDIA Corporation GeForce 405/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 405/PCIe/SSE2 -NVIDIA Corporation GeForce 405/PCIe/SSE2 -NVIDIA Corporation GeForce 405/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 410M/PCI/SSE2 -NVIDIA Corporation GeForce 410M/PCI/SSE2 -NVIDIA Corporation GeForce 410M/PCIe/SSE2 -NVIDIA Corporation GeForce 410M/PCIe/SSE2 -NVIDIA Corporation GeForce 505/PCIe/SSE2 -NVIDIA Corporation GeForce 510/PCI/SSE2 -NVIDIA Corporation GeForce 510/PCI/SSE2 -NVIDIA Corporation GeForce 510/PCIe/SSE2 -NVIDIA Corporation GeForce 510/PCIe/SSE2 -NVIDIA Corporation GeForce 510/PCIe/SSE2 -NVIDIA Corporation GeForce 605/PCI/SSE2 -NVIDIA Corporation GeForce 605/PCIe/SSE2 -NVIDIA Corporation GeForce 605/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 610/PCIe/SSE2 -NVIDIA Corporation GeForce 6100 nForce 400/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6100 nForce 400/integrated/SSE2 -NVIDIA Corporation GeForce 6100 nForce 400/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 6100 nForce 405/PCI/SSE2 -NVIDIA Corporation GeForce 6100 nForce 405/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6100 nForce 405/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6100 nForce 405/integrated/SSE2 -NVIDIA Corporation GeForce 6100 nForce 405/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 6100 nForce 405/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 6100 nForce 420/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6100 nForce 430/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6100 nForce 430/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6100/PCI/SSE2 -NVIDIA Corporation GeForce 6100/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6100/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6100/integrated/SSE2 -NVIDIA Corporation GeForce 6100/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 610M/PCI/SSE2 -NVIDIA Corporation GeForce 610M/PCIe/SSE2 -NVIDIA Corporation GeForce 610M/PCIe/SSE2 -NVIDIA Corporation GeForce 610M/PCIe/SSE2 -NVIDIA Corporation GeForce 615/PCIe/SSE2 -NVIDIA Corporation GeForce 6150 LE/PCI/SSE2 -NVIDIA Corporation GeForce 6150 LE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150 LE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150 LE/integrated/SSE2 -NVIDIA Corporation GeForce 6150 LE/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150 LE/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150 SE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150/integrated/SSE2 -NVIDIA Corporation GeForce 6150/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150SE nForce 430/PCI/SSE2 -NVIDIA Corporation GeForce 6150SE nForce 430/PCI/SSE2 -NVIDIA Corporation GeForce 6150SE nForce 430/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150SE nForce 430/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150SE nForce 430/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150SE nForce 430/integrated/SSE2 -NVIDIA Corporation GeForce 6150SE nForce 430/integrated/SSE2 -NVIDIA Corporation GeForce 6150SE nForce 430/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150SE nForce 430/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 6150SE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200 A-LE/AGP/SSE2 -NVIDIA Corporation GeForce 6200 A-LE/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200 A-LE/PCI/SSE2 -NVIDIA Corporation GeForce 6200 A-LE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200 LE/PCI/SSE2 -NVIDIA Corporation GeForce 6200 LE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200 LE/PCIe/SSE2 -NVIDIA Corporation GeForce 6200 LE/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200 TurboCache(TM)/PCI/SSE2 -NVIDIA Corporation GeForce 6200 TurboCache(TM)/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200 TurboCache(TM)/PCIe/SSE2 -NVIDIA Corporation GeForce 6200 TurboCache(TM)/PCIe/SSE2 -NVIDIA Corporation GeForce 6200 TurboCache(TM)/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200/AGP/SSE2 -NVIDIA Corporation GeForce 6200/AGP/SSE2 -NVIDIA Corporation GeForce 6200/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200/PCI/SSE2 -NVIDIA Corporation GeForce 6200/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200/PCIe/SSE2 -NVIDIA Corporation GeForce 6200/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200SE TurboCache(TM)/PCI/SSE2 -NVIDIA Corporation GeForce 6200SE TurboCache(TM)/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6200SE TurboCache(TM)/PCIe/SSE2 -NVIDIA Corporation GeForce 6200SE TurboCache(TM)/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6500/PCI/SSE2 -NVIDIA Corporation GeForce 6500/PCI/SSE2 -NVIDIA Corporation GeForce 6500/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6500/PCIe/SSE2 -NVIDIA Corporation GeForce 6500/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6600 GT/AGP/SSE2 -NVIDIA Corporation GeForce 6600 GT/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6600 GT/PCI/SSE2 -NVIDIA Corporation GeForce 6600 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6600 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 6600 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 6600 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6600 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6600 LE/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6600 LE/PCI/SSE2 -NVIDIA Corporation GeForce 6600 LE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6600 LE/PCIe/SSE2 -NVIDIA Corporation GeForce 6600 LE/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6600/AGP/SSE2 -NVIDIA Corporation GeForce 6600/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6600/PCI/SSE2 -NVIDIA Corporation GeForce 6600/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6600/PCIe/SSE2 -NVIDIA Corporation GeForce 6600/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6610 XL/PCI/SSE2 -NVIDIA Corporation GeForce 6610 XL/PCIe/SSE2 -NVIDIA Corporation GeForce 6700 XL/PCI/SSE2 -NVIDIA Corporation GeForce 6700 XL/PCIe/SSE2 -NVIDIA Corporation GeForce 6800 GS/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800 GS/PCI/SSE2 -NVIDIA Corporation GeForce 6800 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 6800 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800 GT/AGP/SSE2 -NVIDIA Corporation GeForce 6800 GT/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 6800 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800 LE/AGP/SSE2 -NVIDIA Corporation GeForce 6800 LE/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800 LE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800 Ultra/AGP/SSE2 -NVIDIA Corporation GeForce 6800 Ultra/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800 Ultra/PCI/SSE2 -NVIDIA Corporation GeForce 6800 Ultra/PCIe/SSE2 -NVIDIA Corporation GeForce 6800 Ultra/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800 XT/AGP/SSE2 -NVIDIA Corporation GeForce 6800 XT/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800 XT/PCI/SSE2 -NVIDIA Corporation GeForce 6800 XT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800 XT/PCIe/SSE2 -NVIDIA Corporation GeForce 6800 XT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800/AGP/SSE2 -NVIDIA Corporation GeForce 6800/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 6800/PCI/SSE2 -NVIDIA Corporation GeForce 6800/PCIe/SSE2 -NVIDIA Corporation GeForce 6800/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7000M / nForce 610M/PCI/SSE2 -NVIDIA Corporation GeForce 7000M / nForce 610M/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7000M / nForce 610M/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7000M / nForce 610M/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2 -NVIDIA Corporation GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7025 / nForce 630a/PCI/SSE2 -NVIDIA Corporation GeForce 7025 / nForce 630a/PCI/SSE2 -NVIDIA Corporation GeForce 7025 / nForce 630a/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7025 / nForce 630a/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7025 / nForce 630a/integrated/SSE2 -NVIDIA Corporation GeForce 7025 / nForce 630a/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 7025 / nForce 630a/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 7050 / NVIDIA nForce 610i/PCI/SSE2 -NVIDIA Corporation GeForce 7050 / NVIDIA nForce 620i/PCI/SSE2 -NVIDIA Corporation GeForce 7050 / NVIDIA nForce 630i/PCI/SSE2 -NVIDIA Corporation GeForce 7050 / nForce 610i/PCI/SSE2 -NVIDIA Corporation GeForce 7050 / nForce 610i/integrated/SSE2 -NVIDIA Corporation GeForce 7050 / nForce 610i/integrated/SSE2 -NVIDIA Corporation GeForce 7050 / nForce 620i/PCI/SSE2 -NVIDIA Corporation GeForce 7050 / nForce 620i/PCI/SSE2 -NVIDIA Corporation GeForce 7050 / nForce 620i/integrated/SSE2 -NVIDIA Corporation GeForce 7050 / nForce 620i/integrated/SSE2 -NVIDIA Corporation GeForce 7050 / nForce 630i/PCI/SSE2 -NVIDIA Corporation GeForce 7050 / nForce 630i/integrated/SSE2 -NVIDIA Corporation GeForce 7050 PV / NVIDIA nForce 630a/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7050 PV / nForce 630a/PCI/SSE2 -NVIDIA Corporation GeForce 7050 PV / nForce 630a/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7050 PV / nForce 630a/integrated/SSE2 -NVIDIA Corporation GeForce 7050 PV / nForce 630a/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 7050 PV / nForce 630a/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 7100 / NVIDIA nForce 620i/PCI/SSE2 -NVIDIA Corporation GeForce 7100 / NVIDIA nForce 630i/PCI/SSE2 -NVIDIA Corporation GeForce 7100 / nForce 630i/PCI/SSE2 -NVIDIA Corporation GeForce 7100 / nForce 630i/PCI/SSE2 -NVIDIA Corporation GeForce 7100 / nForce 630i/integrated/SSE2 -NVIDIA Corporation GeForce 7100 / nForce 630i/integrated/SSE2 -NVIDIA Corporation GeForce 7100 GS/PCI/SSE2 -NVIDIA Corporation GeForce 7100 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7100 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 7100 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 7100 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 710A/PCIe/SSE2 -NVIDIA Corporation GeForce 710M/PCIe/SSE2 -NVIDIA Corporation GeForce 710M/PCIe/SSE2 -NVIDIA Corporation GeForce 710M/PCIe/SSE2 -NVIDIA Corporation GeForce 7150 / nForce 630i/PCI/SSE2 -NVIDIA Corporation GeForce 7150M / nForce 630M/PCI/SSE2 -NVIDIA Corporation GeForce 7150M / nForce 630M/PCI/SSE2 -NVIDIA Corporation GeForce 7150M / nForce 630M/PCI/SSE2 -NVIDIA Corporation GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7150M / nForce 630M/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 GS/PCI/SSE2 -NVIDIA Corporation GeForce 7300 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 7300 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 7300 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 GT/AGP/SSE2 -NVIDIA Corporation GeForce 7300 GT/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 GT/PCI/SSE2 -NVIDIA Corporation GeForce 7300 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 7300 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 7300 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 LE/PCI/SSE2 -NVIDIA Corporation GeForce 7300 LE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 LE/PCIe/SSE2 -NVIDIA Corporation GeForce 7300 LE/PCIe/SSE2 -NVIDIA Corporation GeForce 7300 LE/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 SE/7200 GS/PCI/SSE2 -NVIDIA Corporation GeForce 7300 SE/7200 GS/PCI/SSE2 -NVIDIA Corporation GeForce 7300 SE/7200 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 SE/7200 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 7300 SE/7200 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 7300 SE/7200 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 SE/7200 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 SE/PCI/SSE2 -NVIDIA Corporation GeForce 7300 SE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7300 SE/PCIe/SSE2 -NVIDIA Corporation GeForce 7350 LE/PCI/SSE2 -NVIDIA Corporation GeForce 7350 LE/PCIe/SSE2 -NVIDIA Corporation GeForce 7350 LE/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7500 LE/PCI/SSE2 -NVIDIA Corporation GeForce 7500 LE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7500 LE/PCIe/SSE2 -NVIDIA Corporation GeForce 7500 LE/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7600 GS/AGP/SSE2 -NVIDIA Corporation GeForce 7600 GS/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 7600 GS/PCI/SSE2 -NVIDIA Corporation GeForce 7600 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7600 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7600 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 7600 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7600 GT/AGP/SSE2 -NVIDIA Corporation GeForce 7600 GT/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 7600 GT/PCI/SSE2 -NVIDIA Corporation GeForce 7600 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7600 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 7600 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 7600 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7600 LE/PCIe/SSE2 -NVIDIA Corporation GeForce 7650 GS/AGP/SSE2 -NVIDIA Corporation GeForce 7650 GS/PCI/SSE2 -NVIDIA Corporation GeForce 7650 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7650 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 7800 GS/AGP/SSE2 -NVIDIA Corporation GeForce 7800 GS/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 7800 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7800 GT/PCI/SSE2 -NVIDIA Corporation GeForce 7800 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 7800 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7800 GTX/PCI/SSE2 -NVIDIA Corporation GeForce 7800 GTX/PCIe/SSE2 -NVIDIA Corporation GeForce 7800 GTX/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7900 GS/AGP/SSE2 -NVIDIA Corporation GeForce 7900 GS/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 7900 GS/PCI/SSE2 -NVIDIA Corporation GeForce 7900 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7900 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 7900 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7900 GT/GTO/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7900 GT/GTO/PCIe/SSE2 -NVIDIA Corporation GeForce 7900 GT/GTO/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7900 GT/PCI/SSE2 -NVIDIA Corporation GeForce 7900 GTX/PCI/SSE2 -NVIDIA Corporation GeForce 7900 GTX/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7900 GTX/PCIe/SSE2 -NVIDIA Corporation GeForce 7900 GTX/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7950 GT/AGP/SSE2 -NVIDIA Corporation GeForce 7950 GT/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce 7950 GT/PCI/SSE2 -NVIDIA Corporation GeForce 7950 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 7950 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 7950 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 7950 GX2/PCI/SSE2 -NVIDIA Corporation GeForce 7950 GX2/PCIe/SSE2 -NVIDIA Corporation GeForce 7950 GX2/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8100 / nForce 720a/PCI/SSE2 -NVIDIA Corporation GeForce 8100 / nForce 720a/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8100 / nForce 720a/integrated/SSE2 -NVIDIA Corporation GeForce 8100 / nForce 720a/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 8200/PCI/SSE2 -NVIDIA Corporation GeForce 8200/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8200/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8200/integrated/SSE2 -NVIDIA Corporation GeForce 8200/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 8200/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 8200M G/PCI/SSE2 -NVIDIA Corporation GeForce 8200M G/PCI/SSE2 -NVIDIA Corporation GeForce 8200M G/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8200M G/integrated/SSE2 -NVIDIA Corporation GeForce 8200M G/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 8200M/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8300 GS/PCI/SSE2 -NVIDIA Corporation GeForce 8300 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8300 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8300 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8300/PCI/SSE2 -NVIDIA Corporation GeForce 8300/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8300/integrated/SSE2 -NVIDIA Corporation GeForce 8300/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400 GS/PCI/SSE2 -NVIDIA Corporation GeForce 8400 GS/PCI/SSE2 -NVIDIA Corporation GeForce 8400 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8400 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8400 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400 SE/PCI/SSE2 -NVIDIA Corporation GeForce 8400 SE/PCIe/SSE2 -NVIDIA Corporation GeForce 8400/PCI/SSE2 -NVIDIA Corporation GeForce 8400/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400/PCIe/SSE2 -NVIDIA Corporation GeForce 8400/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400GS/PCI/SSE2 -NVIDIA Corporation GeForce 8400GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8400GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8400GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400M G/PCI/SSE2 -NVIDIA Corporation GeForce 8400M G/PCI/SSE2 -NVIDIA Corporation GeForce 8400M G/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400M G/PCIe/SSE2 -NVIDIA Corporation GeForce 8400M G/PCIe/SSE2 -NVIDIA Corporation GeForce 8400M G/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400M GS/PCI/SSE2 -NVIDIA Corporation GeForce 8400M GS/PCI/SSE2 -NVIDIA Corporation GeForce 8400M GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8400M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8400M GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400M GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8400M GT/PCI/SSE2 -NVIDIA Corporation GeForce 8400M GT/PCIe/SSE2 -NVIDIA Corporation GeForce 8500 GT/PCI/SSE2 -NVIDIA Corporation GeForce 8500 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8500 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8500 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 8500 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8500 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8600 GS/PCI/SSE2 -NVIDIA Corporation GeForce 8600 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8600 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8600 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8600 GT/PCI/SSE2 -NVIDIA Corporation GeForce 8600 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8600 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 8600 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 8600 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8600 GTS/PCI/SSE2 -NVIDIA Corporation GeForce 8600 GTS/PCI/SSE2 -NVIDIA Corporation GeForce 8600 GTS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8600 GTS/PCIe/SSE2 -NVIDIA Corporation GeForce 8600 GTS/PCIe/SSE2 -NVIDIA Corporation GeForce 8600 GTS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8600GS/PCI/SSE2 -NVIDIA Corporation GeForce 8600GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8600M GS/PCI/SSE2 -NVIDIA Corporation GeForce 8600M GS/PCI/SSE2 -NVIDIA Corporation GeForce 8600M GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8600M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8600M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8600M GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8600M GT/PCI/SSE2 -NVIDIA Corporation GeForce 8600M GT/PCI/SSE2 -NVIDIA Corporation GeForce 8600M GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8600M GT/PCIe/SSE2 -NVIDIA Corporation GeForce 8600M GT/PCIe/SSE2 -NVIDIA Corporation GeForce 8600M GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8700M GT/PCI/SSE2 -NVIDIA Corporation GeForce 8700M GT/PCIe/SSE2 -NVIDIA Corporation GeForce 8700M GT/PCIe/SSE2 -NVIDIA Corporation GeForce 8800 GS/PCI/SSE2 -NVIDIA Corporation GeForce 8800 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8800 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8800 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 8800 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8800 GT/PCI/SSE2 -NVIDIA Corporation GeForce 8800 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8800 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 8800 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 8800 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8800 GTS 512/PCI/SSE2 -NVIDIA Corporation GeForce 8800 GTS 512/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8800 GTS 512/PCIe/SSE2 -NVIDIA Corporation GeForce 8800 GTS 512/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8800 GTS/PCI/SSE2 -NVIDIA Corporation GeForce 8800 GTS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8800 GTS/PCIe/SSE2 -NVIDIA Corporation GeForce 8800 GTS/PCIe/SSE2 -NVIDIA Corporation GeForce 8800 GTS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8800 GTX/PCI/SSE2 -NVIDIA Corporation GeForce 8800 GTX/PCI/SSE2 -NVIDIA Corporation GeForce 8800 GTX/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 8800 GTX/PCIe/SSE2 -NVIDIA Corporation GeForce 8800 GTX/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8800 Ultra/PCI/SSE2 -NVIDIA Corporation GeForce 8800 Ultra/PCIe/SSE2 -NVIDIA Corporation GeForce 8800 Ultra/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 8800M GTS/PCI/SSE2 -NVIDIA Corporation GeForce 8800M GTS/PCIe/SSE2 -NVIDIA Corporation GeForce 8800M GTX/PCI/SSE2 -NVIDIA Corporation GeForce 8800M GTX/PCIe/SSE2 -NVIDIA Corporation GeForce 9100/PCI/SSE2 -NVIDIA Corporation GeForce 9100/PCI/SSE2 -NVIDIA Corporation GeForce 9100/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9100/integrated/SSE2 -NVIDIA Corporation GeForce 9100/integrated/SSE2 -NVIDIA Corporation GeForce 9100/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 9100M G/PCI/SSE2 -NVIDIA Corporation GeForce 9100M G/PCI/SSE2 -NVIDIA Corporation GeForce 9100M G/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9100M G/integrated/SSE2 -NVIDIA Corporation GeForce 9100M G/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 9200/PCI/SSE2 -NVIDIA Corporation GeForce 9200/PCI/SSE2 -NVIDIA Corporation GeForce 9200/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9200/integrated/SSE2 -NVIDIA Corporation GeForce 9200/integrated/SSE2 -NVIDIA Corporation GeForce 9200/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 9200/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce 9200M GE/PCI/SSE2 -NVIDIA Corporation GeForce 9200M GE/PCI/SSE2 -NVIDIA Corporation GeForce 9200M GE/PCIe/SSE2 -NVIDIA Corporation GeForce 9200M GS/PCI/SSE2 -NVIDIA Corporation GeForce 9200M GS/PCI/SSE2 -NVIDIA Corporation GeForce 9200M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9200M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9300 / nForce 730i/integrated/SSE2 -NVIDIA Corporation GeForce 9300 GE/PCI/SSE2 -NVIDIA Corporation GeForce 9300 GE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9300 GE/PCIe/SSE2 -NVIDIA Corporation GeForce 9300 GE/PCIe/SSE2 -NVIDIA Corporation GeForce 9300 GE/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9300 GS/PCI/SSE2 -NVIDIA Corporation GeForce 9300 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9300 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9300 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9300 SE/PCIe/SSE2 -NVIDIA Corporation GeForce 9300/PCI/SSE2 -NVIDIA Corporation GeForce 9300/integrated/SSE2 -NVIDIA Corporation GeForce 9300M G/PCI/SSE2 -NVIDIA Corporation GeForce 9300M G/PCI/SSE2 -NVIDIA Corporation GeForce 9300M G/PCI/SSE2 -NVIDIA Corporation GeForce 9300M G/PCIe/SSE2 -NVIDIA Corporation GeForce 9300M G/PCIe/SSE2 -NVIDIA Corporation GeForce 9300M G/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9300M GS/PCI/SSE2 -NVIDIA Corporation GeForce 9300M GS/PCI/SSE2 -NVIDIA Corporation GeForce 9300M GS/PCI/SSE2 -NVIDIA Corporation GeForce 9300M GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9300M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9300M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9300M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9400 GT/PCI/SSE2 -NVIDIA Corporation GeForce 9400 GT/PCI/SSE2 -NVIDIA Corporation GeForce 9400 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9400 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9400 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9400 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9400/PCI/SSE2 -NVIDIA Corporation GeForce 9400/integrated/SSE2 -NVIDIA Corporation GeForce 9400/integrated/SSE2 -NVIDIA Corporation GeForce 9400M G/PCI/SSE2 -NVIDIA Corporation GeForce 9400M G/PCI/SSE2 -NVIDIA Corporation GeForce 9400M G/integrated/SSE2 -NVIDIA Corporation GeForce 9400M/PCI/SSE2 -NVIDIA Corporation GeForce 9400M/integrated/SSE2 -NVIDIA Corporation GeForce 9500 GS/PCI/SSE2 -NVIDIA Corporation GeForce 9500 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9500 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9500 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9500 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9500 GT/PCI/SSE2 -NVIDIA Corporation GeForce 9500 GT/PCI/SSE2 -NVIDIA Corporation GeForce 9500 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9500 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9500 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9500 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9500 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9500 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9500 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9500 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9500M GS/PCI/SSE2 -NVIDIA Corporation GeForce 9500M GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9500M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9600 GS/PCI/SSE2 -NVIDIA Corporation GeForce 9600 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9600 GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9600 GS/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9600 GSO 512/PCI/SSE2 -NVIDIA Corporation GeForce 9600 GSO 512/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9600 GSO 512/PCIe/SSE2 -NVIDIA Corporation GeForce 9600 GSO 512/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9600 GSO/PCI/SSE2 -NVIDIA Corporation GeForce 9600 GSO/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9600 GSO/PCIe/SSE2 -NVIDIA Corporation GeForce 9600 GSO/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9600 GT/PCI/SSE2 -NVIDIA Corporation GeForce 9600 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9600 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9600 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9600 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9600 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9600 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9600M GS/PCI/SSE2 -NVIDIA Corporation GeForce 9600M GS/PCI/SSE2 -NVIDIA Corporation GeForce 9600M GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9600M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9600M GT/PCI/SSE2 -NVIDIA Corporation GeForce 9600M GT/PCI/SSE2 -NVIDIA Corporation GeForce 9600M GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9600M GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9600M GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9600M GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9600M GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9650M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9650M GT/PCI/SSE2 -NVIDIA Corporation GeForce 9650M GT/PCI/SSE2 -NVIDIA Corporation GeForce 9650M GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9700M GT/PCI/SSE2 -NVIDIA Corporation GeForce 9700M GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9700M GTS/PCI/SSE2 -NVIDIA Corporation GeForce 9700M GTS/PCI/SSE2 -NVIDIA Corporation GeForce 9700M GTS/PCIe/SSE2 -NVIDIA Corporation GeForce 9800 GT/PCI/SSE2 -NVIDIA Corporation GeForce 9800 GT/PCI/SSE2 -NVIDIA Corporation GeForce 9800 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9800 GT/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9800 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9800 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9800 GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9800 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9800 GT/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9800 GTX+/PCI/SSE2 -NVIDIA Corporation GeForce 9800 GTX+/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9800 GTX+/PCIe/SSE2 -NVIDIA Corporation GeForce 9800 GTX+/PCIe/SSE2 -NVIDIA Corporation GeForce 9800 GTX+/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9800 GTX/9800 GTX+/PCI/SSE2 -NVIDIA Corporation GeForce 9800 GTX/9800 GTX+/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce 9800 GTX/9800 GTX+/PCIe/SSE2 -NVIDIA Corporation GeForce 9800 GTX/9800 GTX+/PCIe/SSE2 -NVIDIA Corporation GeForce 9800 GTX/9800 GTX+/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce 9800 GTX/PCI/SSE2 -NVIDIA Corporation GeForce 9800 GTX/PCI/SSE2 -NVIDIA Corporation GeForce 9800 GX2/PCIe/SSE2 -NVIDIA Corporation GeForce 9800 S/PCI/SSE2 -NVIDIA Corporation GeForce 9800M GS/PCI/SSE2 -NVIDIA Corporation GeForce 9800M GS/PCIe/SSE2 -NVIDIA Corporation GeForce 9800M GT/PCI/SSE2 -NVIDIA Corporation GeForce 9800M GT/PCIe/SSE2 -NVIDIA Corporation GeForce 9800M GTS/PCI/SSE2 -NVIDIA Corporation GeForce 9800M GTS/PCIe/SSE2 -NVIDIA Corporation GeForce 9800M GTX/PCI/SSE2 -NVIDIA Corporation GeForce 9800M GTX/PCIe/SSE2 -NVIDIA Corporation GeForce FX 5100/AGP/SSE2 -NVIDIA Corporation GeForce FX 5200 Ultra/AGP/SSE2 -NVIDIA Corporation GeForce FX 5200 Ultra/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5200/AGP/SSE/3DNOW! -NVIDIA Corporation GeForce FX 5200/AGP/SSE2 -NVIDIA Corporation GeForce FX 5200/AGP/SSE2 -NVIDIA Corporation GeForce FX 5200/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5200/PCI/SSE2 -NVIDIA Corporation GeForce FX 5200/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5200LE/AGP/SSE2 -NVIDIA Corporation GeForce FX 5200LE/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5200SE/AGP/SSE2 -NVIDIA Corporation GeForce FX 5500/AGP/SSE2 -NVIDIA Corporation GeForce FX 5500/AGP/SSE2 -NVIDIA Corporation GeForce FX 5500/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5500/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5500/PCI/SSE2 -NVIDIA Corporation GeForce FX 5500/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5600/AGP/SSE2 -NVIDIA Corporation GeForce FX 5600XT/AGP/SSE2 -NVIDIA Corporation GeForce FX 5600XT/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5600XT/PCI/SSE2 -NVIDIA Corporation GeForce FX 5700/AGP/SSE2 -NVIDIA Corporation GeForce FX 5700/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5700LE/AGP/SSE2 -NVIDIA Corporation GeForce FX 5700LE/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5700LE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5700VE/AGP/SSE2 -NVIDIA Corporation GeForce FX 5700VE/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5900 Ultra/AGP/SSE2 -NVIDIA Corporation GeForce FX 5900/AGP/SSE2 -NVIDIA Corporation GeForce FX 5900XT/AGP/SSE2 -NVIDIA Corporation GeForce FX 5900ZT/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX 5950 Ultra/AGP/SSE2 -NVIDIA Corporation GeForce FX 5950 Ultra/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX Go5200 32M/64M/AGP/SSE2 -NVIDIA Corporation GeForce FX Go5200/AGP/SSE2 -NVIDIA Corporation GeForce FX Go5200/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce FX Go5200/PCI/SSE2 -NVIDIA Corporation GeForce FX Go5300/AGP/SSE2 -NVIDIA Corporation GeForce FX Go53xx Series/AGP/SSE2 -NVIDIA Corporation GeForce FX Go5600/AGP/SSE2 -NVIDIA Corporation GeForce FX Go5650/AGP/SSE2 -NVIDIA Corporation GeForce FX Go5700/AGP/SSE2 -NVIDIA Corporation GeForce FX Go5700/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce G 103M/PCI/SSE2 -NVIDIA Corporation GeForce G 103M/PCI/SSE2 -NVIDIA Corporation GeForce G 103M/PCIe/SSE2 -NVIDIA Corporation GeForce G 103M/PCIe/SSE2 -NVIDIA Corporation GeForce G 105M/PCI/SSE2 -NVIDIA Corporation GeForce G 105M/PCIe/SSE2 -NVIDIA Corporation GeForce G 105M/PCIe/SSE2 -NVIDIA Corporation GeForce G 110M/PCI/SSE2 -NVIDIA Corporation GeForce G100/PCI/SSE2 -NVIDIA Corporation GeForce G100/PCI/SSE2 -NVIDIA Corporation GeForce G100/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce G100/PCIe/SSE2 -NVIDIA Corporation GeForce G100/PCIe/SSE2 -NVIDIA Corporation GeForce G100/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce G100/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce G102M/PCI/SSE2 -NVIDIA Corporation GeForce G102M/PCI/SSE2 -NVIDIA Corporation GeForce G102M/integrated/SSE2 -NVIDIA Corporation GeForce G102M/integrated/SSE2 -NVIDIA Corporation GeForce G105M/PCI/SSE2 -NVIDIA Corporation GeForce G105M/PCI/SSE2 -NVIDIA Corporation GeForce G105M/PCIe/SSE2 -NVIDIA Corporation GeForce G105M/PCIe/SSE2 -NVIDIA Corporation GeForce G200/PCI/SSE2 -NVIDIA Corporation GeForce G200/PCI/SSE2 -NVIDIA Corporation GeForce G200/integrated/SSE2 -NVIDIA Corporation GeForce G205M/PCI/SSE2 -NVIDIA Corporation GeForce G205M/integrated/SSE2 -NVIDIA Corporation GeForce G205M/integrated/SSE2 -NVIDIA Corporation GeForce G210/PCI/SSE2 -NVIDIA Corporation GeForce G210/PCI/SSE2 -NVIDIA Corporation GeForce G210/PCI/SSE2 -NVIDIA Corporation GeForce G210/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce G210/PCIe/SSE2 -NVIDIA Corporation GeForce G210/PCIe/SSE2 -NVIDIA Corporation GeForce G210/PCIe/SSE2 -NVIDIA Corporation GeForce G210/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce G210M/PCI/SSE2 -NVIDIA Corporation GeForce G210M/PCI/SSE2 -NVIDIA Corporation GeForce G210M/PCIe/SSE2 -NVIDIA Corporation GeForce G210M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 120/PCI/SSE2 -NVIDIA Corporation GeForce GT 120/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 120/PCIe/SSE2 -NVIDIA Corporation GeForce GT 120/PCIe/SSE2 -NVIDIA Corporation GeForce GT 120/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 120M/PCI/SSE2 -NVIDIA Corporation GeForce GT 120M/PCI/SSE2 -NVIDIA Corporation GeForce GT 120M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 120M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 130/PCI/SSE2 -NVIDIA Corporation GeForce GT 130/PCIe/SSE2 -NVIDIA Corporation GeForce GT 130/PCIe/SSE2 -NVIDIA Corporation GeForce GT 130/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 130M/PCI/SSE2 -NVIDIA Corporation GeForce GT 130M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 130M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 140/PCI/SSE2 -NVIDIA Corporation GeForce GT 140/PCIe/SSE2 -NVIDIA Corporation GeForce GT 220/PCI/SSE2 -NVIDIA Corporation GeForce GT 220/PCI/SSE2 -NVIDIA Corporation GeForce GT 220/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 220/PCIe/SSE2 -NVIDIA Corporation GeForce GT 220/PCIe/SSE2 -NVIDIA Corporation GeForce GT 220/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 220/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 220M/PCI/SSE2 -NVIDIA Corporation GeForce GT 220M/PCI/SSE2 -NVIDIA Corporation GeForce GT 220M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 220M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 220M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 230/PCI/SSE2 -NVIDIA Corporation GeForce GT 230/PCIe/SSE2 -NVIDIA Corporation GeForce GT 230/PCIe/SSE2 -NVIDIA Corporation GeForce GT 230/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 230M/PCI/SSE2 -NVIDIA Corporation GeForce GT 230M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 230M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 230M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 240/PCI/SSE2 -NVIDIA Corporation GeForce GT 240/PCI/SSE2 -NVIDIA Corporation GeForce GT 240/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 240/PCIe/SSE2 -NVIDIA Corporation GeForce GT 240/PCIe/SSE2 -NVIDIA Corporation GeForce GT 240/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 240/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 240M LE/PCIe/SSE2 -NVIDIA Corporation GeForce GT 240M/PCI/SSE2 -NVIDIA Corporation GeForce GT 240M/PCI/SSE2 -NVIDIA Corporation GeForce GT 240M/PCI/SSE2 -NVIDIA Corporation GeForce GT 240M/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 240M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 240M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 240M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 320/PCI/SSE2 -NVIDIA Corporation GeForce GT 320/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 320/PCIe/SSE2 -NVIDIA Corporation GeForce GT 320/PCIe/SSE2 -NVIDIA Corporation GeForce GT 320/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 320M/PCI/SSE2 -NVIDIA Corporation GeForce GT 320M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 320M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 325M/PCI/SSE2 -NVIDIA Corporation GeForce GT 325M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 330/PCI/SSE2 -NVIDIA Corporation GeForce GT 330/PCIe/SSE2 -NVIDIA Corporation GeForce GT 330/PCIe/SSE2 -NVIDIA Corporation GeForce GT 330/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 330M/PCI/SSE2 -NVIDIA Corporation GeForce GT 330M/PCI/SSE2 -NVIDIA Corporation GeForce GT 330M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 330M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 335M/PCI/SSE2 -NVIDIA Corporation GeForce GT 335M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 335M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 335M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 340/PCI/SSE2 -NVIDIA Corporation GeForce GT 340/PCIe/SSE2 -NVIDIA Corporation GeForce GT 415/PCIe/SSE2 -NVIDIA Corporation GeForce GT 415/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 415M/PCI/SSE2 -NVIDIA Corporation GeForce GT 415M/PCI/SSE2 -NVIDIA Corporation GeForce GT 415M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 415M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 420/PCI/SSE2 -NVIDIA Corporation GeForce GT 420/PCI/SSE2 -NVIDIA Corporation GeForce GT 420/PCIe/SSE2 -NVIDIA Corporation GeForce GT 420/PCIe/SSE2 -NVIDIA Corporation GeForce GT 420/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 420M/PCI/SSE2 -NVIDIA Corporation GeForce GT 420M/PCI/SSE2 -NVIDIA Corporation GeForce GT 420M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 420M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 425M/PCI/SSE2 -NVIDIA Corporation GeForce GT 425M/PCI/SSE2 -NVIDIA Corporation GeForce GT 425M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 425M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 430/PCI/SSE2 -NVIDIA Corporation GeForce GT 430/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 430/PCIe/SSE2 -NVIDIA Corporation GeForce GT 430/PCIe/SSE2 -NVIDIA Corporation GeForce GT 430/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 430/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 435M/PCI/SSE2 -NVIDIA Corporation GeForce GT 435M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 435M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 440/PCI/SSE2 -NVIDIA Corporation GeForce GT 440/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 440/PCIe/SSE2 -NVIDIA Corporation GeForce GT 440/PCIe/SSE2 -NVIDIA Corporation GeForce GT 440/PCIe/SSE2 -NVIDIA Corporation GeForce GT 440/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 440/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 445M/PCI/SSE2 -NVIDIA Corporation GeForce GT 445M/PCI/SSE2 -NVIDIA Corporation GeForce GT 445M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 445M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 445M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 520/PCI/SSE2 -NVIDIA Corporation GeForce GT 520/PCI/SSE2 -NVIDIA Corporation GeForce GT 520/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 520/PCIe/SSE2 -NVIDIA Corporation GeForce GT 520/PCIe/SSE2 -NVIDIA Corporation GeForce GT 520/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 520/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 520M/PCI/SSE2 -NVIDIA Corporation GeForce GT 520M/PCI/SSE2 -NVIDIA Corporation GeForce GT 520M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 520M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 520MX/PCI/SSE2 -NVIDIA Corporation GeForce GT 520MX/PCI/SSE2 -NVIDIA Corporation GeForce GT 520MX/PCIe/SSE2 -NVIDIA Corporation GeForce GT 520MX/PCIe/SSE2 -NVIDIA Corporation GeForce GT 525M/PCI/SSE2 -NVIDIA Corporation GeForce GT 525M/PCI/SSE2 -NVIDIA Corporation GeForce GT 525M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 525M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 530/PCI/SSE2 -NVIDIA Corporation GeForce GT 530/PCI/SSE2 -NVIDIA Corporation GeForce GT 530/PCIe/SSE2 -NVIDIA Corporation GeForce GT 530/PCIe/SSE2 -NVIDIA Corporation GeForce GT 530/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 540M/PCI/SSE2 -NVIDIA Corporation GeForce GT 540M/PCI/SSE2 -NVIDIA Corporation GeForce GT 540M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 540M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 545/PCI/SSE2 -NVIDIA Corporation GeForce GT 545/PCIe/SSE2 -NVIDIA Corporation GeForce GT 545/PCIe/SSE2 -NVIDIA Corporation GeForce GT 545/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 550M/PCI/SSE2 -NVIDIA Corporation GeForce GT 550M/PCI/SSE2 -NVIDIA Corporation GeForce GT 550M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 550M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 555M/PCI/SSE2 -NVIDIA Corporation GeForce GT 555M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 555M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 610/PCIe/SSE2 -NVIDIA Corporation GeForce GT 610/PCIe/SSE2 -NVIDIA Corporation GeForce GT 610/PCIe/SSE2 -NVIDIA Corporation GeForce GT 610/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 610/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 620/PCI/SSE2 -NVIDIA Corporation GeForce GT 620/PCIe/SSE2 -NVIDIA Corporation GeForce GT 620/PCIe/SSE2 -NVIDIA Corporation GeForce GT 620/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 620/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 620M/PCI/SSE2 -NVIDIA Corporation GeForce GT 620M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 620M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 625/PCIe/SSE2 -NVIDIA Corporation GeForce GT 625M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 625M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 630/PCIe/SSE2 -NVIDIA Corporation GeForce GT 630/PCIe/SSE2 -NVIDIA Corporation GeForce GT 630/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 630/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 630M/PCI/SSE2 -NVIDIA Corporation GeForce GT 630M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 630M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 630M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 635M/PCI/SSE2 -NVIDIA Corporation GeForce GT 635M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 635M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 640/PCIe/SSE2 -NVIDIA Corporation GeForce GT 640/PCIe/SSE2 -NVIDIA Corporation GeForce GT 640/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 640/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GT 640M LE/PCI/SSE2 -NVIDIA Corporation GeForce GT 640M LE/PCIe/SSE2 -NVIDIA Corporation GeForce GT 640M LE/PCIe/SSE2 -NVIDIA Corporation GeForce GT 640M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 640M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 645/PCIe/SSE2 -NVIDIA Corporation GeForce GT 645/PCIe/SSE2 -NVIDIA Corporation GeForce GT 645M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 645M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 650M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 650M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 650M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 720M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 720M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 730M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 730M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 735M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 735M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 740M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 740M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 750M/PCIe/SSE2 -NVIDIA Corporation GeForce GT 750M/PCIe/SSE2 -NVIDIA Corporation GeForce GT620M/PCIe/SSE2 -NVIDIA Corporation GeForce GT625M/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 150/PCI/SSE2 -NVIDIA Corporation GeForce GTS 160M/PCI/SSE2 -NVIDIA Corporation GeForce GTS 160M/PCI/SSE2 -NVIDIA Corporation GeForce GTS 160M/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 160M/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 240/PCI/SSE2 -NVIDIA Corporation GeForce GTS 240/PCI/SSE2 -NVIDIA Corporation GeForce GTS 240/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 240/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 240/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTS 250/PCI/SSE2 -NVIDIA Corporation GeForce GTS 250/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTS 250/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 250/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 250/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 250/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTS 250/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTS 250M/PCI/SSE2 -NVIDIA Corporation GeForce GTS 250M/PCI/SSE2 -NVIDIA Corporation GeForce GTS 250M/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 250M/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 350M/PCI/SSE2 -NVIDIA Corporation GeForce GTS 350M/PCI/SSE2 -NVIDIA Corporation GeForce GTS 350M/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 350M/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 360M/PCI/SSE2 -NVIDIA Corporation GeForce GTS 360M/PCI/SSE2 -NVIDIA Corporation GeForce GTS 360M/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 360M/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 360M/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 360M/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 450/PCI/SSE2 -NVIDIA Corporation GeForce GTS 450/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTS 450/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 450/PCIe/SSE2 -NVIDIA Corporation GeForce GTS 450/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTS 450/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 260/PCI/SSE2 -NVIDIA Corporation GeForce GTX 260/PCI/SSE2 -NVIDIA Corporation GeForce GTX 260/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 260/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 260/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 260/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 260/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 260/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 260M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 260M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 260M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 260M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 260M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 275/PCI/SSE2 -NVIDIA Corporation GeForce GTX 275/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 275/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 275/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 275/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 275/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 280/PCI/SSE2 -NVIDIA Corporation GeForce GTX 280/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 280/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 280M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 280M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 280M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 280M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 285/PCI/SSE2 -NVIDIA Corporation GeForce GTX 285/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 285/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 285/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 285M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 285M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 285M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 285M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 295/PCI/SSE2 -NVIDIA Corporation GeForce GTX 295/PCI/SSE2 -NVIDIA Corporation GeForce GTX 295/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 295/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 295/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 295/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 295/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 460 SE/PCI/SSE2 -NVIDIA Corporation GeForce GTX 460 SE/PCI/SSE2 -NVIDIA Corporation GeForce GTX 460 SE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 460 SE/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 460 SE/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460 SE/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460 SE/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460 SE/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 460 SE/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 460 v2/PCI/SSE2 -NVIDIA Corporation GeForce GTX 460 v2/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460 v2/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460 v2/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460 v2/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460 v2/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 460/PCI/SSE2 -NVIDIA Corporation GeForce GTX 460/PCI/SSE2 -NVIDIA Corporation GeForce GTX 460/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 460/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 460/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 460/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 460/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 460M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 460M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 460M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 460M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 460M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 465/PCI/SSE2 -NVIDIA Corporation GeForce GTX 465/PCI/SSE2 -NVIDIA Corporation GeForce GTX 465/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 465/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 465/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 465/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 465/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 465/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 470/PCI/SSE2 -NVIDIA Corporation GeForce GTX 470/PCI/SSE2 -NVIDIA Corporation GeForce GTX 470/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 470/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 470/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 470/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 470/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 470/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 470/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 470M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 470M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 480/PCI/SSE2 -NVIDIA Corporation GeForce GTX 480/PCI/SSE2 -NVIDIA Corporation GeForce GTX 480/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 480/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 480/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 480/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 480/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 480/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 480M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 480M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 485M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 485M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 485M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 550 Ti/PCI/SSE2 -NVIDIA Corporation GeForce GTX 550 Ti/PCI/SSE2 -NVIDIA Corporation GeForce GTX 550 Ti/PCI/SSE2 -NVIDIA Corporation GeForce GTX 550 Ti/PCI/SSE2 -NVIDIA Corporation GeForce GTX 550 Ti/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 550 Ti/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 550 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 550 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 550 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 550 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 550 Ti/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 550 Ti/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 550 Ti/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 560 SE/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560 SE/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560 SE/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560 Ti/PCI/SSE2 -NVIDIA Corporation GeForce GTX 560 Ti/PCI/SSE2 -NVIDIA Corporation GeForce GTX 560 Ti/PCI/SSE2 -NVIDIA Corporation GeForce GTX 560 Ti/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 560 Ti/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 560 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560 Ti/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 560 Ti/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 560 Ti/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 560/PCI/SSE2 -NVIDIA Corporation GeForce GTX 560/PCI/SSE2 -NVIDIA Corporation GeForce GTX 560/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 560/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 560/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 560/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 560M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 560M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 560M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 560M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 560M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 570/PCI/SSE2 -NVIDIA Corporation GeForce GTX 570/PCI/SSE2 -NVIDIA Corporation GeForce GTX 570/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 570/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 570/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 570/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 570/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 570/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 570/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 570/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 570M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 570M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 570M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 570M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 580/PCI/SSE2 -NVIDIA Corporation GeForce GTX 580/PCI/SSE2 -NVIDIA Corporation GeForce GTX 580/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 580/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 580/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 580/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 580/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 580/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 580/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 580/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 580M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 580M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 580M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 580M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 590/PCI/SSE2 -NVIDIA Corporation GeForce GTX 590/PCI/SSE2 -NVIDIA Corporation GeForce GTX 590/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 590/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 590/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 590/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 645/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 645/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 650 Ti BOOST/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 650 Ti BOOST/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 650 Ti BOOST/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 650 Ti Boost/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 650 Ti Boost/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 650 Ti Boost/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 650 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 650 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 650 Ti/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 650 Ti/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 650/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 650/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 650/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 650/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 650/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 660 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660 Ti/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660 Ti/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 660 Ti/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 660/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 660/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 660/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 660M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 660M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 670/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 670/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 670/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 670/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 670/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 670/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 670/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 670M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 670M/PCI/SSE2 -NVIDIA Corporation GeForce GTX 670M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 670M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 670M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 670MX/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 670MX/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 670MX/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 675M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 675M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 675M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 675MX/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 675MX/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 675MX/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 680/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 680/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 680/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 680/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 680/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 680/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 680M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 680M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 680M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 680MX/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 680MX/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 690/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 690/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 690/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 760/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 760/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 760M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 760M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 765M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 765M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 770/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 770/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 770/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 770/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX 770M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 770M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 780/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 780/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 780/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 780M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX 780M/PCIe/SSE2 -NVIDIA Corporation GeForce GTX TITAN/PCIe/SSE2 -NVIDIA Corporation GeForce GTX TITAN/PCIe/SSE2 -NVIDIA Corporation GeForce GTX TITAN/PCIe/SSE2 -NVIDIA Corporation GeForce GTX TITAN/PCIe/SSE2 -NVIDIA Corporation GeForce GTX TITAN/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce GTX Titan/PCIe/SSE2 -NVIDIA Corporation GeForce GTX Titan/PCIe/SSE2 -NVIDIA Corporation GeForce Go 6100/PCI/SSE2 -NVIDIA Corporation GeForce Go 6100/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 6100/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 6150/PCI/SSE2 -NVIDIA Corporation GeForce Go 6150/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 6150/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 6150/integrated/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 6200/PCI/SSE2 -NVIDIA Corporation GeForce Go 6200/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 6400/PCI/SSE2 -NVIDIA Corporation GeForce Go 6400/PCIe/SSE2 -NVIDIA Corporation GeForce Go 6600 TE/6200 TE/PCI/SSE2 -NVIDIA Corporation GeForce Go 6600/PCI/SSE2 -NVIDIA Corporation GeForce Go 6800 Ultra/PCI/SSE2 -NVIDIA Corporation GeForce Go 6800/PCI/SSE2 -NVIDIA Corporation GeForce Go 6800/PCIe/SSE2 -NVIDIA Corporation GeForce Go 7200/PCI/SSE2 -NVIDIA Corporation GeForce Go 7200/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 7300/PCI/SSE2 -NVIDIA Corporation GeForce Go 7300/PCI/SSE2 -NVIDIA Corporation GeForce Go 7300/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 7300/PCIe/SSE2 -NVIDIA Corporation GeForce Go 7400/PCI/SSE2 -NVIDIA Corporation GeForce Go 7400/PCI/SSE2 -NVIDIA Corporation GeForce Go 7400/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 7400/PCIe/SSE2 -NVIDIA Corporation GeForce Go 7600 GT/PCI/SSE2 -NVIDIA Corporation GeForce Go 7600/PCI/SSE2 -NVIDIA Corporation GeForce Go 7600/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 7600/PCIe/SSE2 -NVIDIA Corporation GeForce Go 7600/PCIe/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 7700/PCI/SSE2 -NVIDIA Corporation GeForce Go 7800 GTX/PCI/SSE2 -NVIDIA Corporation GeForce Go 7800/PCI/SSE2 -NVIDIA Corporation GeForce Go 7800/PCI/SSE2 -NVIDIA Corporation GeForce Go 7900 GS/PCI/SSE2 -NVIDIA Corporation GeForce Go 7900 GS/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce Go 7900 GS/PCIe/SSE2 -NVIDIA Corporation GeForce Go 7900 GTX/PCI/SSE2 -NVIDIA Corporation GeForce Go 7950 GTX/PCI/SSE2 -NVIDIA Corporation GeForce Go 7950 GTX/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce PCX 5300/PCI/SSE2 -NVIDIA Corporation GeForce PCX 5750/PCI/SSE2 -NVIDIA Corporation GeForce2 GTS/AGP/SSE2 -NVIDIA Corporation GeForce2 MX/AGP/SSE2 -NVIDIA Corporation GeForce2 MX/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce2 MX/PCI/SSE2 -NVIDIA Corporation GeForce3/AGP/SSE2 -NVIDIA Corporation GeForce3/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce4 420 Go 32M/AGP/SSE2 -NVIDIA Corporation GeForce4 420 Go 32M/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce4 420 Go 32M/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce4 420 Go/AGP/SSE2 -NVIDIA Corporation GeForce4 4200 Go/AGP/SSE2 -NVIDIA Corporation GeForce4 440 Go 64M/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce4 440 Go 64M/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce4 440 Go/AGP/SSE2 -NVIDIA Corporation GeForce4 448 Go/AGP/SSE2 -NVIDIA Corporation GeForce4 MX 4000/AGP/SSE2 -NVIDIA Corporation GeForce4 MX 4000/AGP/SSE2 -NVIDIA Corporation GeForce4 MX 4000/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce4 MX 4000/PCI/SSE2 -NVIDIA Corporation GeForce4 MX 4000/PCI/SSE2/3DNOW! -NVIDIA Corporation GeForce4 MX 420/AGP/SSE2 -NVIDIA Corporation GeForce4 MX 420/PCI/SSE2 -NVIDIA Corporation GeForce4 MX 440 with AGP8X/AGP/SSE2 -NVIDIA Corporation GeForce4 MX 440 with AGP8X/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce4 MX 440 with AGP8X/PCI/SSE2 -NVIDIA Corporation GeForce4 MX 440/440SE/AGP/SSE2 -NVIDIA Corporation GeForce4 MX 440/AGP/SSE2 -NVIDIA Corporation GeForce4 MX 440/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce4 MX 440/PCI/SSE2 -NVIDIA Corporation GeForce4 MX 440SE with AGP8X/AGP/SSE2 -NVIDIA Corporation GeForce4 MX 440SE with AGP8X/PCI/SSE2 -NVIDIA Corporation GeForce4 MX 460/AGP/SSE2 -NVIDIA Corporation GeForce4 MX 460/AGP/SSE2/3DNOW! -NVIDIA Corporation GeForce4 Ti 4200 with AGP8X/AGP/SSE2 -NVIDIA Corporation GeForce4 Ti 4200 with AGP8X/PCI/SSE2 -NVIDIA Corporation GeForce4 Ti 4200/AGP/SSE2 -NVIDIA Corporation GeForce4 Ti 4400/AGP/SSE2 -NVIDIA Corporation GeForce4 Ti 4600/AGP/SSE2 -NVIDIA Corporation GeForce4 Ti 4600/PCI/SSE2 -NVIDIA Corporation ION LE/PCI/SSE2 -NVIDIA Corporation ION LE/integrated/SSE2 -NVIDIA Corporation ION LE/integrated/SSE2 -NVIDIA Corporation ION/PCI/SSE2 -NVIDIA Corporation ION/PCIe/SSE2 -NVIDIA Corporation ION/PCIe/SSE2 -NVIDIA Corporation ION/PCIe/SSE2/3DNOW! -NVIDIA Corporation ION/integrated/SSE2 -NVIDIA Corporation ION/integrated/SSE2 -NVIDIA Corporation MCP61/PCI/SSE2/3DNOW! -NVIDIA Corporation MCP7A-O/PCI/SSE2 -NVIDIA Corporation MCP7A-P/PCI/SSE2 -NVIDIA Corporation N10P-GV2/PCI/SSE2 -NVIDIA Corporation N11M-GE2/PCI/SSE2 -NVIDIA Corporation N11M-GE2/PCI/SSE2 -NVIDIA Corporation N12P-GVR-B-A1/PCI/SSE2 -NVIDIA Corporation N12P-GVR-B-A1/PCI/SSE2 -NVIDIA Corporation NB9M-GE1/PCI/SSE2 -NVIDIA Corporation NB9M-GS/PCI/SSE2 -NVIDIA Corporation NV17/AGP/SSE2 -NVIDIA Corporation NVIDIA GeForce 210 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 210 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 310M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 320M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 320M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 6600 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 7300 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 7600 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 7950 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 7950 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8400 GS OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8500 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8600 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8600 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8600 GTS OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8600M GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8600M GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8800 GS OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8800 GS OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8800 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8800 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8800 GTS 512 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8800 GTS OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8800 GTX OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 8800 Ultra OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9200M GS OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9400 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9400 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9400 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9400 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9400 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9400M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9400M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9500 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9500 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9600 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9600M GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9600M GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9800 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9800 GT OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9800 GTX+ OpenGL Engine -NVIDIA Corporation NVIDIA GeForce 9800 GTX+ OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 120 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 120 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 120 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 130 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 130 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 220 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 220 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 240 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 240 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 320M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 330M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 330M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 330M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 430 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 440 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 440 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 520 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 630 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 640 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 640 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 640M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 640M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 640M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 650M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 650M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GT 650M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTS 250 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTS 250 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTS 450 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 260 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 280 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 280 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 285 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 285 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 460 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 470 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 480 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 480 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 550 Ti OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 550 Ti OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 560 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 560 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 560 Ti OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 560 Ti OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 570 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 570 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 580 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 650 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 650 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 650 Ti OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 650 Ti OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 660 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 660 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 660 Ti OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 660 Ti OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 660 Ti OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 660M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 660M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 660M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 670 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 670 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 675MX OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 675MX OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 675MX OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 675MX OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 680 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 680 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 680 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 680MX OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 680MX OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 680MX OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 775M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce GTX 780M OpenGL Engine -NVIDIA Corporation NVIDIA GeForce Go 7600 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce Pre-Release D14P2-30 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce Pre-Release GK104 OpenGL Engine -NVIDIA Corporation NVIDIA GeForce Pre-Release ION OpenGL Engine -NVIDIA Corporation NVIDIA GeForce Pre-Release Unknown OpenGL Engine -NVIDIA Corporation NVIDIA NV34MAP OpenGL Engine -NVIDIA Corporation NVIDIA Quadro 4000 OpenGL Engine -NVIDIA Corporation NVIDIA Quadro 4000 OpenGL Engine -NVIDIA Corporation NVIDIA Quadro FX 4500 OpenGL Engine -NVIDIA Corporation NVIDIA Quadro FX 4500 OpenGL Engine -NVIDIA Corporation NVIDIA Quadro FX 4800 OpenGL Engine -NVIDIA Corporation NVIDIA Quadro FX 4800 OpenGL Engine -NVIDIA Corporation NVIDIA Quadro FX 5600 OpenGL Engine -NVIDIA Corporation NVIDIA Quadro FX 580 OpenGL Engine -NVIDIA Corporation NVIDIA Quadro FX 770M OpenGL Engine -NVIDIA Corporation NVS 2100M/PCI/SSE2 -NVIDIA Corporation NVS 2100M/PCIe/SSE2 -NVIDIA Corporation NVS 2100M/PCIe/SSE2 -NVIDIA Corporation NVS 300/PCI/SSE2 -NVIDIA Corporation NVS 300/PCI/SSE2/3DNOW! -NVIDIA Corporation NVS 300/PCIe/SSE2 -NVIDIA Corporation NVS 310/PCIe/SSE2 -NVIDIA Corporation NVS 310/PCIe/SSE2 -NVIDIA Corporation NVS 3100M/PCI/SSE2 -NVIDIA Corporation NVS 3100M/PCI/SSE2 -NVIDIA Corporation NVS 3100M/PCIe/SSE2 -NVIDIA Corporation NVS 3100M/PCIe/SSE2 -NVIDIA Corporation NVS 315/PCIe/SSE2 -NVIDIA Corporation NVS 4200M/PCI/SSE2 -NVIDIA Corporation NVS 4200M/PCI/SSE2 -NVIDIA Corporation NVS 4200M/PCIe/SSE2 -NVIDIA Corporation NVS 4200M/PCIe/SSE2 -NVIDIA Corporation NVS 510/PCIe/SSE2 -NVIDIA Corporation NVS 510/PCIe/SSE2 -NVIDIA Corporation NVS 5100M/PCI/SSE2 -NVIDIA Corporation NVS 5100M/PCIe/SSE2 -NVIDIA Corporation NVS 5100M/PCIe/SSE2 -NVIDIA Corporation NVS 5200M/PCI/SSE2 -NVIDIA Corporation NVS 5200M/PCIe/SSE2 -NVIDIA Corporation NVS 5200M/PCIe/SSE2 -NVIDIA Corporation NVS 5400M/PCIe/SSE2 -NVIDIA Corporation NVS 5400M/PCIe/SSE2 -NVIDIA Corporation Quadro 1000M/PCI/SSE2 -NVIDIA Corporation Quadro 1000M/PCIe/SSE2 -NVIDIA Corporation Quadro 1000M/PCIe/SSE2 -NVIDIA Corporation Quadro 1100M/PCIe/SSE2 -NVIDIA Corporation Quadro 2000 D/PCI/SSE2 -NVIDIA Corporation Quadro 2000/PCI/SSE2 -NVIDIA Corporation Quadro 2000/PCIe/SSE2 -NVIDIA Corporation Quadro 2000/PCIe/SSE2 -NVIDIA Corporation Quadro 2000D/PCIe/SSE2 -NVIDIA Corporation Quadro 2000M/PCI/SSE2 -NVIDIA Corporation Quadro 2000M/PCIe/SSE2 -NVIDIA Corporation Quadro 3000M/PCI/SSE2 -NVIDIA Corporation Quadro 3000M/PCIe/SSE2 -NVIDIA Corporation Quadro 3000M/PCIe/SSE2 -NVIDIA Corporation Quadro 400/PCI/SSE2 -NVIDIA Corporation Quadro 400/PCI/SSE2 -NVIDIA Corporation Quadro 400/PCI/SSE2/3DNOW! -NVIDIA Corporation Quadro 400/PCIe/SSE2 -NVIDIA Corporation Quadro 4000/PCI/SSE2 -NVIDIA Corporation Quadro 4000/PCIe/SSE2 -NVIDIA Corporation Quadro 4000/PCIe/SSE2 -NVIDIA Corporation Quadro 4000M/PCI/SSE2 -NVIDIA Corporation Quadro 4000M/PCI/SSE2 -NVIDIA Corporation Quadro 4000M/PCIe/SSE2 -NVIDIA Corporation Quadro 410/PCIe/SSE2 -NVIDIA Corporation Quadro 5000/PCI/SSE2 -NVIDIA Corporation Quadro 5000/PCIe/SSE2 -NVIDIA Corporation Quadro 5000M/PCI/SSE2 -NVIDIA Corporation Quadro 5000M/PCIe/SSE2 -NVIDIA Corporation Quadro 5010M/PCI/SSE2 -NVIDIA Corporation Quadro 5010M/PCIe/SSE2 -NVIDIA Corporation Quadro 5010M/PCIe/SSE2 -NVIDIA Corporation Quadro 600/PCI/SSE2 -NVIDIA Corporation Quadro 600/PCI/SSE2 -NVIDIA Corporation Quadro 600/PCIe/SSE2 -NVIDIA Corporation Quadro 600/PCIe/SSE2 -NVIDIA Corporation Quadro 600/PCIe/SSE2/3DNOW! -NVIDIA Corporation Quadro 6000/PCIe/SSE2 -NVIDIA Corporation Quadro FX 1000/AGP/SSE2 -NVIDIA Corporation Quadro FX 1100/AGP/SSE2 -NVIDIA Corporation Quadro FX 1300/PCI/SSE2 -NVIDIA Corporation Quadro FX 1400/PCI/SSE2 -NVIDIA Corporation Quadro FX 1400/PCI/SSE2 -NVIDIA Corporation Quadro FX 1400/PCIe/SSE2 -NVIDIA Corporation Quadro FX 1400/PCIe/SSE2 -NVIDIA Corporation Quadro FX 1400/PCIe/SSE2/3DNOW! -NVIDIA Corporation Quadro FX 1500/PCI/SSE2 -NVIDIA Corporation Quadro FX 1500/PCIe/SSE2 -NVIDIA Corporation Quadro FX 1500/PCIe/SSE2/3DNOW! -NVIDIA Corporation Quadro FX 1500M/PCI/SSE2 -NVIDIA Corporation Quadro FX 1600M/PCI/SSE2 -NVIDIA Corporation Quadro FX 1600M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 1700/PCI/SSE2 -NVIDIA Corporation Quadro FX 1700/PCIe/SSE2 -NVIDIA Corporation Quadro FX 1700/PCIe/SSE2 -NVIDIA Corporation Quadro FX 1700/PCIe/SSE2/3DNOW! -NVIDIA Corporation Quadro FX 1700M/PCI/SSE2 -NVIDIA Corporation Quadro FX 1700M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 1800/PCI/SSE2 -NVIDIA Corporation Quadro FX 1800/PCIe/SSE2 -NVIDIA Corporation Quadro FX 1800M/PCI/SSE2 -NVIDIA Corporation Quadro FX 1800M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 2000/AGP/SSE2 -NVIDIA Corporation Quadro FX 2500M/PCI/SSE2 -NVIDIA Corporation Quadro FX 2500M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 2700M/PCI/SSE2 -NVIDIA Corporation Quadro FX 2700M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 2800M/PCI/SSE2 -NVIDIA Corporation Quadro FX 2800M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 3000/AGP/SSE2 -NVIDIA Corporation Quadro FX 3400/PCI/SSE2 -NVIDIA Corporation Quadro FX 3400/PCI/SSE2 -NVIDIA Corporation Quadro FX 3450/4000 SDI/PCI/SSE2 -NVIDIA Corporation Quadro FX 3450/4000 SDI/PCI/SSE2 -NVIDIA Corporation Quadro FX 3450/4000 SDI/PCI/SSE2/3DNOW! -NVIDIA Corporation Quadro FX 3450/4000 SDI/PCI/SSE2/3DNOW! -NVIDIA Corporation Quadro FX 3450/4000 SDI/PCIe/SSE2 -NVIDIA Corporation Quadro FX 3450/4000 SDI/PCIe/SSE2 -NVIDIA Corporation Quadro FX 3500/PCI/SSE2 -NVIDIA Corporation Quadro FX 3500/PCIe/SSE2 -NVIDIA Corporation Quadro FX 3500M/PCI/SSE2 -NVIDIA Corporation Quadro FX 350M/PCI/SSE2 -NVIDIA Corporation Quadro FX 3600M/PCI/SSE2 -NVIDIA Corporation Quadro FX 3600M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 360M/PCI/SSE2 -NVIDIA Corporation Quadro FX 360M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 370 Low Profile/PCIe/SSE2 -NVIDIA Corporation Quadro FX 370/PCI/SSE2 -NVIDIA Corporation Quadro FX 370/PCIe/SSE2 -NVIDIA Corporation Quadro FX 370/PCIe/SSE2/3DNOW! -NVIDIA Corporation Quadro FX 3700/PCI/SSE2 -NVIDIA Corporation Quadro FX 3700/PCIe/SSE2 -NVIDIA Corporation Quadro FX 3700M/PCI/SSE2 -NVIDIA Corporation Quadro FX 3700M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 370M/PCI/SSE2 -NVIDIA Corporation Quadro FX 370M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 380 LP/PCIe/SSE2 -NVIDIA Corporation Quadro FX 380 LP/PCIe/SSE2/3DNOW! -NVIDIA Corporation Quadro FX 380/PCI/SSE2 -NVIDIA Corporation Quadro FX 380/PCIe/SSE2 -NVIDIA Corporation Quadro FX 3800/PCI/SSE2 -NVIDIA Corporation Quadro FX 3800/PCIe/SSE2 -NVIDIA Corporation Quadro FX 3800M/PCI/SSE2 -NVIDIA Corporation Quadro FX 3800M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 380M/PCI/SSE2 -NVIDIA Corporation Quadro FX 380M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 4500/PCI/SSE2 -NVIDIA Corporation Quadro FX 4500/PCIe/SSE2 -NVIDIA Corporation Quadro FX 4600/PCIe/SSE2 -NVIDIA Corporation Quadro FX 4800/PCI/SSE2 -NVIDIA Corporation Quadro FX 4800/PCIe/SSE2 -NVIDIA Corporation Quadro FX 500/AGP/SSE2 -NVIDIA Corporation Quadro FX 500/FX 600/AGP/SSE2 -NVIDIA Corporation Quadro FX 500/FX 600/AGP/SSE2/3DNOW! -NVIDIA Corporation Quadro FX 500/FX 600/PCI/SSE2 -NVIDIA Corporation Quadro FX 540/PCI/SSE2 -NVIDIA Corporation Quadro FX 540/PCIe/SSE2 -NVIDIA Corporation Quadro FX 550/PCI/SSE2 -NVIDIA Corporation Quadro FX 550/PCIe/SSE2 -NVIDIA Corporation Quadro FX 5500/PCI/SSE2 -NVIDIA Corporation Quadro FX 560/PCI/SSE2 -NVIDIA Corporation Quadro FX 560/PCIe/SSE2 -NVIDIA Corporation Quadro FX 5600/PCIe/SSE2 -NVIDIA Corporation Quadro FX 570/PCI/SSE2 -NVIDIA Corporation Quadro FX 570/PCIe/SSE2 -NVIDIA Corporation Quadro FX 570M/PCI/SSE2 -NVIDIA Corporation Quadro FX 570M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 580/PCI/SSE2 -NVIDIA Corporation Quadro FX 580/PCIe/SSE2 -NVIDIA Corporation Quadro FX 5800/PCIe/SSE2 -NVIDIA Corporation Quadro FX 770M/PCI/SSE2 -NVIDIA Corporation Quadro FX 770M/PCIe/SSE2 -NVIDIA Corporation Quadro FX 880M/PCI/SSE2 -NVIDIA Corporation Quadro FX 880M/PCIe/SSE2 -NVIDIA Corporation Quadro FX Go1400/PCI/SSE2 -NVIDIA Corporation Quadro FX Go1400/PCI/SSE2 -NVIDIA Corporation Quadro FX Go1400/PCIe/SSE2 -NVIDIA Corporation Quadro FX Go700/AGP/SSE2 -NVIDIA Corporation Quadro K1000/PCIe/SSE2 -NVIDIA Corporation Quadro K1000M/PCIe/SSE2 -NVIDIA Corporation Quadro K2000/PCIe/SSE2 -NVIDIA Corporation Quadro K2000/PCIe/SSE2 -NVIDIA Corporation Quadro K2000D/PCIe/SSE2 -NVIDIA Corporation Quadro K2000M/PCIe/SSE2 -NVIDIA Corporation Quadro K2000M/PCIe/SSE2 -NVIDIA Corporation Quadro K3000M/PCIe/SSE2 -NVIDIA Corporation Quadro K4000/PCIe/SSE2 -NVIDIA Corporation Quadro K4000/PCIe/SSE2 -NVIDIA Corporation Quadro K4000/PCIe/SSE2 -NVIDIA Corporation Quadro K4000M/PCIe/SSE2 -NVIDIA Corporation Quadro K5000/PCIe/SSE2 -NVIDIA Corporation Quadro K5000M/PCIe/SSE2 -NVIDIA Corporation Quadro K600/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 110M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 110M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 130M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 130M/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 130M/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 135M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 135M/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 140M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 140M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 140M/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 150M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 150M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 150M/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 160M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 160M/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 210S / GeForce 6150LE/PCI/SSE2 -NVIDIA Corporation Quadro NVS 210S / GeForce 6150LE/PCI/SSE2/3DNOW! -NVIDIA Corporation Quadro NVS 210S / GeForce 6150LE/integrated/SSE2/3DNOW! -NVIDIA Corporation Quadro NVS 210S / NVIDIA GeForce 6150LE/PCI/SSE2/3DNOW! -NVIDIA Corporation Quadro NVS 210S/PCI/SSE2/3DNOW! -NVIDIA Corporation Quadro NVS 280 PCI-E/PCI/SSE2 -NVIDIA Corporation Quadro NVS 280 SD/AGP/SSE2 -NVIDIA Corporation Quadro NVS 285/PCI/SSE2 -NVIDIA Corporation Quadro NVS 285/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 290/PCI/SSE2 -NVIDIA Corporation Quadro NVS 290/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 290/PCIe/SSE2/3DNOW! -NVIDIA Corporation Quadro NVS 295/PCI/SSE2 -NVIDIA Corporation Quadro NVS 295/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 300M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 320M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 320M/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 420/PCI/SSE2 -NVIDIA Corporation Quadro NVS 420/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 420/PCIe/SSE2/3DNOW! -NVIDIA Corporation Quadro NVS 450/PCIe/SSE2 -NVIDIA Corporation Quadro NVS 510M/PCI/SSE2 -NVIDIA Corporation Quadro NVS 55/280 PCI/PCI/SSE2 -NVIDIA Corporation Quadro NVS with AGP8X/AGP/SSE2 -NVIDIA Corporation Quadro NVS/AGP/SSE2 -NVIDIA Corporation Quadro PCI-E Series/PCI/SSE2 -NVIDIA Corporation Quadro2 MXR/AGP/SSE2 -NVIDIA Corporation Quadro4 380 XGL/AGP/SSE2 -NVIDIA Corporation Quadro4 550 XGL/AGP/SSE2 -NVIDIA Corporation Quadro4 700 XGL/AGP/SSE2 -NVIDIA Corporation Quadro4 980 XGL/AGP/SSE2 -NVIDIA Corporation RIVA TNT2/AGP/SSE2 -NVIDIA Corporation RIVA TNT2/AGP/SSE2/3DNOW! -NVIDIA Corporation Stinger/emulated by Quadro FX 500/FX 600/PCI/SSE2 -NVIDIA Corporation nForce 750a SLI/PCI/SSE2 -NVIDIA Corporation nForce 750a SLI/integrated/SSE2 -NVIDIA Corporation nForce 760i SLI/integrated/SSE2 -NVIDIA Corporation nForce 980a/780a SLI/integrated/SSE2 -NVIDIA Corporation unknown board/AGP/SSE2 -NVIDIA Corporation unknown board/PCI/SSE2 -NVIDIA Corporation unknown board/PCI/SSE2/3DNOW! -NVIDIA Corporation unknown board/PCIe/SSE2 -NVIDIA D9M -NVIDIA G 103M -NVIDIA G 105M -NVIDIA G 110M -NVIDIA G 120M -NVIDIA G 200 -NVIDIA G 205M -NVIDIA G 210 -NVIDIA G 310M -NVIDIA G 320M -NVIDIA G 405 -NVIDIA G 410M -NVIDIA G 610M -NVIDIA G100 -NVIDIA G100M -NVIDIA G102M -NVIDIA G103M -NVIDIA G105M -NVIDIA G200 -NVIDIA G210 -NVIDIA G210M -NVIDIA G73 -NVIDIA G84 -NVIDIA G84 -NVIDIA G92 -NVIDIA G94 -NVIDIA GT 120 -NVIDIA GT 120 -NVIDIA GT 120M -NVIDIA GT 130 -NVIDIA GT 130 -NVIDIA GT 130 -NVIDIA GT 130M -NVIDIA GT 140 -NVIDIA GT 140M -NVIDIA GT 150 -NVIDIA GT 220 -NVIDIA GT 220 -NVIDIA GT 220 -NVIDIA GT 220 -NVIDIA GT 220M -NVIDIA GT 230 -NVIDIA GT 230 -NVIDIA GT 230M -NVIDIA GT 240 -NVIDIA GT 240 -NVIDIA GT 240 -NVIDIA GT 240M -NVIDIA GT 260M -NVIDIA GT 320 -NVIDIA GT 320M -NVIDIA GT 320M -NVIDIA GT 325M -NVIDIA GT 330 -NVIDIA GT 330 -NVIDIA GT 330 -NVIDIA GT 330M -NVIDIA GT 330M -NVIDIA GT 335M -NVIDIA GT 340 -NVIDIA GT 340M -NVIDIA GT 415M -NVIDIA GT 420 -NVIDIA GT 420M -NVIDIA GT 425M -NVIDIA GT 430 -NVIDIA GT 430M -NVIDIA GT 435M -NVIDIA GT 440 -NVIDIA GT 440M -NVIDIA GT 445M -NVIDIA GT 450 -NVIDIA GT 520 -NVIDIA GT 520 -NVIDIA GT 520M -NVIDIA GT 525M -NVIDIA GT 530M -NVIDIA GT 540 -NVIDIA GT 540M -NVIDIA GT 550 -NVIDIA GT 550M -NVIDIA GT 555M -NVIDIA GT 610 -NVIDIA GT 620 -NVIDIA GT 620M -NVIDIA GT 630 -NVIDIA GT 630M -NVIDIA GT 635M -NVIDIA GT 640 -NVIDIA GT 640M -NVIDIA GT 650 -NVIDIA GT 650M -NVIDIA GT 650M -NVIDIA GTS 160M -NVIDIA GTS 240 -NVIDIA GTS 240 -NVIDIA GTS 250 -NVIDIA GTS 350M -NVIDIA GTS 360 -NVIDIA GTS 360M -NVIDIA GTS 450 -NVIDIA GTX 260 -NVIDIA GTX 270 -NVIDIA GTX 275 -NVIDIA GTX 280 -NVIDIA GTX 285 -NVIDIA GTX 290 -NVIDIA GTX 295 -NVIDIA GTX 460 -NVIDIA GTX 460M -NVIDIA GTX 465 -NVIDIA GTX 470 -NVIDIA GTX 470M -NVIDIA GTX 480 -NVIDIA GTX 480M -NVIDIA GTX 485M -NVIDIA GTX 550 -NVIDIA GTX 560 -NVIDIA GTX 560 -NVIDIA GTX 560 -NVIDIA GTX 560 Ti -NVIDIA GTX 570 -NVIDIA GTX 580 -NVIDIA GTX 580M -NVIDIA GTX 590 -NVIDIA GTX 650 -NVIDIA GTX 660 -NVIDIA GTX 660 -NVIDIA GTX 670 -NVIDIA GTX 670 -NVIDIA GTX 670M -NVIDIA GTX 675M -NVIDIA GTX 675M -NVIDIA GTX 680 -NVIDIA GTX 680 -NVIDIA GTX 680M -NVIDIA GTX 690 -NVIDIA GTX 770 -NVIDIA GTX 770 -NVIDIA GTX TITAN -NVIDIA GeForce 2 -NVIDIA GeForce 3 -NVIDIA GeForce 4 -NVIDIA GeForce 4 Go -NVIDIA GeForce 4 MX -NVIDIA GeForce 4 Ti -NVIDIA GeForce 6100 -NVIDIA GeForce 6100 -NVIDIA GeForce 6200 -NVIDIA GeForce 6200 -NVIDIA GeForce 6500 -NVIDIA GeForce 6600 -NVIDIA GeForce 6700 -NVIDIA GeForce 6800 -NVIDIA GeForce 7000 -NVIDIA GeForce 7000M -NVIDIA GeForce 7100 -NVIDIA GeForce 7300 -NVIDIA GeForce 7300 -NVIDIA GeForce 7500 -NVIDIA GeForce 7600 -NVIDIA GeForce 7600 -NVIDIA GeForce 7800 -NVIDIA GeForce 7800 -NVIDIA GeForce 7900 -NVIDIA GeForce 7900 -NVIDIA GeForce 8100 -NVIDIA GeForce 8200 -NVIDIA GeForce 8200M -NVIDIA GeForce 8300 -NVIDIA GeForce 8300 -NVIDIA GeForce 8400 -NVIDIA GeForce 8400 -NVIDIA GeForce 8400M -NVIDIA GeForce 8400M -NVIDIA GeForce 8500 -NVIDIA GeForce 8500 -NVIDIA GeForce 8600 -NVIDIA GeForce 8600M -NVIDIA GeForce 8600M -NVIDIA GeForce 8700 -NVIDIA GeForce 8700M -NVIDIA GeForce 8800 -NVIDIA GeForce 8800M -NVIDIA GeForce 9100 -NVIDIA GeForce 9100M -NVIDIA GeForce 9200 -NVIDIA GeForce 9200 -NVIDIA GeForce 9200M -NVIDIA GeForce 9300 -NVIDIA GeForce 9300 -NVIDIA GeForce 9300M -NVIDIA GeForce 9300M -NVIDIA GeForce 9400 -NVIDIA GeForce 9400 -NVIDIA GeForce 9400M -NVIDIA GeForce 9400M -NVIDIA GeForce 9500 -NVIDIA GeForce 9500M -NVIDIA GeForce 9600 -NVIDIA GeForce 9600 -NVIDIA GeForce 9600M -NVIDIA GeForce 9600M -NVIDIA GeForce 9700M -NVIDIA GeForce 9800 -NVIDIA GeForce 9800M -NVIDIA GeForce FX 5200 -NVIDIA GeForce FX 5200 -NVIDIA GeForce FX 5500 -NVIDIA GeForce FX 5500 -NVIDIA GeForce FX 5600 -NVIDIA GeForce FX 5700 -NVIDIA GeForce FX 5900 -NVIDIA GeForce FX Go5100 -NVIDIA GeForce FX Go5200 -NVIDIA GeForce FX Go5600 -NVIDIA GeForce FX Go5700 -NVIDIA GeForce Go 6 -NVIDIA GeForce Go 6100 -NVIDIA GeForce Go 6200 -NVIDIA GeForce Go 6400 -NVIDIA GeForce Go 6600 -NVIDIA GeForce Go 6800 -NVIDIA GeForce Go 7200 -NVIDIA GeForce Go 7300 -NVIDIA GeForce Go 7400 -NVIDIA GeForce Go 7600 -NVIDIA GeForce Go 7700 -NVIDIA GeForce Go 7800 -NVIDIA GeForce Go 7900 -NVIDIA GeForce PCX -NVIDIA Generic -NVIDIA ION -NVIDIA MCP61 -NVIDIA NV34 -NVIDIA PCI -NVIDIA Quadro 2000 -NVIDIA Quadro 2000 M/D -NVIDIA Quadro 2000 M/D -NVIDIA Quadro 3000M -NVIDIA Quadro 400 -NVIDIA Quadro 4000 -NVIDIA Quadro 4000 -NVIDIA Quadro 4000M -NVIDIA Quadro 50x0 M -NVIDIA Quadro 600 -NVIDIA Quadro 6000 -NVIDIA Quadro FX -NVIDIA Quadro FX 1500M -NVIDIA Quadro FX 1800 -NVIDIA Quadro FX 2500M -NVIDIA Quadro FX 2700M -NVIDIA Quadro FX 2800M -NVIDIA Quadro FX 3500 -NVIDIA Quadro FX 3700 -NVIDIA Quadro FX 3800 -NVIDIA Quadro FX 4500 -NVIDIA Quadro FX 4800 -NVIDIA Quadro FX 550 -NVIDIA Quadro FX 770M -NVIDIA Quadro FX 880M -NVIDIA Quadro NVS -NVIDIA Quadro NVS 1xxM -NVIDIA Quadro NVS 4200M -NVIDIA Quadro2 -NVIDIA nForce -Oracle VirtualBox Graphics -Parallels and ATI Technologies Inc. Parallels using ATI Radeon Barts XT Prototype OpenGL Engine -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 2600 OpenGL Engine -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 2600 PRO OpenGL Engine -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 4670 OpenGL Engine -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 4850 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 5770 OpenGL Engine -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6630M 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 ATI Technologies Inc. Parallels using ATI Radeon HD 6970M OpenGL Engine -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6970M OpenGL Engine -Parallels and ATI Technologies Inc. Parallels using ATI Radeon X1600 OpenGL Engine -Parallels and Intel Inc. Parallels using Intel GMA X3100 OpenGL Engine -Parallels and Intel Inc. Parallels using Intel HD Graphics 3000 OpenGL Engine -Parallels and Intel Inc. Parallels using Intel HD Graphics 4000 OpenGL Engine -Parallels and Intel Inc. Parallels using Intel HD Graphics 4000 OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce 320M OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce 8800 GS OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce 9400 OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce 9400M OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce 9600M GT OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GT 130 OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GT 330M OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GT 640 OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GT 640M OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GT 650M OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GTX 570 OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GTX 660 OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GTX 660 Ti OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GTX 670 OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GTX 680MX OpenGL Engine -Parallels and NVIDIA Corporation Parallels using NVIDIA GeForce GTX 680MX OpenGL Engine -PowerVR SGX545 -S3 -S3 Graphics K8M800/MMX/K3D -S3 Graphics KM400/KN400/MMX/SSE -S3 Graphics P8M800/MMX/SSE -S3 Graphics Unknown Device/MMX/SSE -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 DeltaChrome -S3 Graphics, Incorporated VIA Chrome9 HC IGP -S3 Graphics, Incorporated VIA Chrome9 HC IGP -S3 Graphics, Incorporated VIA Chrome9 HC3 IGP -S3 Graphics, Incorporated VIA Chrome9 HD Pro IGP -S3 Graphics, Incorporated VIA Chrome9 HD Pro IGP -SiS -SiS 3D-Analyze v2.3 - http://www.tommti-systems.com -SiS 650/M650 VGA -SiS 650/M650 VGA / MMX/SSE2 /AGP -SiS 661 VGA -SiS 662 VGA -SiS 760 VGA -SiS 761GX VGA -SiS Mirage Graphics3 -SiS Mirage Graphics3 -SiS Xabre VGA -Tungsten Graphics, Inc Mesa DRI Intel(R) 845G -Tungsten Graphics, Inc Mesa DRI Intel(R) 852GM/855GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 852GM/855GM x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 865G -Tungsten Graphics, Inc Mesa DRI Intel(R) 865G x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 915G -Tungsten Graphics, Inc Mesa DRI Intel(R) 915G x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 915GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 915GM 20061017 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 915GM GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 915GM GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 915GM x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 945G GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 945G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 945G x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 945GM GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 945GM x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 945GME -Tungsten Graphics, Inc Mesa DRI Intel(R) 945GME GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 945GME x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965GM -Tungsten Graphics, Inc Mesa DRI Intel(R) 965GM GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965GM GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965GM x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965GM x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965GME/GLE x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965Q -Tungsten Graphics, Inc Mesa DRI Intel(R) 965Q GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) 965Q x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) G33 GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) G33 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) G41 GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) G41 GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) G41 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) G41 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) IGD x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) IGD -Tungsten Graphics, Inc Mesa DRI Intel(R) IGD GEM 20091221 2009Q4 -Tungsten Graphics, Inc Mesa DRI Intel(R) IGD GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) IGD GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) IGD x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) IGDNG_M GEM 20091221 2009Q4 -Tungsten Graphics, Inc Mesa DRI Intel(R) IGDNG_M GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Desktop -Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Desktop x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Mobile -Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Mobile GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Mobile x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Ironlake Mobile x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Ivybridge Desktop -Tungsten Graphics, Inc Mesa DRI Intel(R) Ivybridge Desktop x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Ivybridge Mobile -Tungsten Graphics, Inc Mesa DRI Intel(R) Ivybridge Mobile x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Ivybridge Mobile x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Q35 GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Q35 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Q45/Q43 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Desktop -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Desktop x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Mobile -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Mobile GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Intel(R) Sandybridge Server -Tungsten Graphics, Inc Mesa DRI Mobile Intel(R) GM45 Express Chipset -Tungsten Graphics, Inc Mesa DRI Mobile Intel(R) GM45 Express Chipset GEM 20091221 2009Q4 -Tungsten Graphics, Inc Mesa DRI Mobile Intel(R) GM45 Express Chipset GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Mobile Intel(R) GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Mobile Intel(R) GM45 Express Chipset x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Mobile Intel(R) GM45 Express Chipset x86/MMX/SSE2 -Tungsten Graphics, Inc. Mesa DRI R100 (RS200 4437) x86/MMX/SSE2 NO-TCL DRI2 -Tungsten Graphics, Inc. Mesa DRI R100 (RV200 4C57) TCL DRI2 -Tungsten Graphics, Inc. Mesa DRI R100 (RV200 4C57) x86/MMX/SSE2 TCL DRI2 -Tungsten Graphics, Inc. Mesa DRI R200 (RV250 4C66) x86/MMX/SSE2 TCL DRI2 -Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5960) x86/MMX+/3DNow!+/SSE2 TCL DRI2 -Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5960) x86/MMX/SSE2 TCL DRI2 -Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5961) x86/MMX/SSE2 TCL DRI2 -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: RELEASE; -VMware, Inc. Gallium 0.4 on SVGA3D; build: RELEASE; -VMware, Inc. Gallium 0.4 on i915 (chipset: 945GME) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x209) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x209) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x300) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x300) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x301) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x301) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x302) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 0x302) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 3.2, 128 bits) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 3.2, 128 bits) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 3.2, 256 bits) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 3.2, 256 bits) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 3.3, 128 bits) -VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 3.3, 128 bits) -VMware, Inc. Gallium 0.4 on llvmpipe -X.Org Gallium 0.4 on AMD ARUBA -X.Org Gallium 0.4 on AMD ARUBA -X.Org Gallium 0.4 on AMD BARTS -X.Org Gallium 0.4 on AMD BARTS -X.Org Gallium 0.4 on AMD CAICOS -X.Org Gallium 0.4 on AMD CAPE VERDE -X.Org Gallium 0.4 on AMD CEDAR -X.Org Gallium 0.4 on AMD CYPRESS -X.Org Gallium 0.4 on AMD JUNIPER -X.Org Gallium 0.4 on AMD PALM -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 RV610 -X.Org Gallium 0.4 on AMD RV610 -X.Org Gallium 0.4 on AMD RV620 -X.Org Gallium 0.4 on AMD RV630 -X.Org Gallium 0.4 on AMD RV635 -X.Org Gallium 0.4 on AMD RV670 -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 RV770 -X.Org Gallium 0.4 on AMD SUMO -X.Org Gallium 0.4 on AMD SUMO -X.Org Gallium 0.4 on AMD SUMO2 -X.Org Gallium 0.4 on AMD TURKS -X.Org R300 Project Gallium 0.4 on ATI R350 -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 RS480 -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 RS600 -X.Org R300 Project Gallium 0.4 on ATI RS690 -X.Org R300 Project Gallium 0.4 on ATI RV350 -X.Org R300 Project Gallium 0.4 on ATI RV350 -X.Org R300 Project Gallium 0.4 on ATI RV370 -X.Org R300 Project Gallium 0.4 on ATI RV380 -X.Org R300 Project Gallium 0.4 on ATI RV410 -X.Org R300 Project Gallium 0.4 on ATI RV515 -X.Org R300 Project Gallium 0.4 on ATI RV530 -X.Org R300 Project Gallium 0.4 on ATI RV530 -X.Org R300 Project Gallium 0.4 on ATI RV570 -XGI Volari V3 -http://TitaniumGL.tk NVIDIA GeForce GTX 690/3999M VRAM/TitaniumGL/4 THREADs/3D GRAPHICS ACCELERATION/4 TMUs -nouveau Gallium 0.4 on NV34 -nouveau Gallium 0.4 on NV34 -nouveau Gallium 0.4 on NV42 -nouveau Gallium 0.4 on NV42 -nouveau Gallium 0.4 on NV44 -nouveau Gallium 0.4 on NV44 -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 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 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 -nouveau Gallium 0.4 on NVAF -nouveau Gallium 0.4 on NVC0 -nouveau Gallium 0.4 on NVC0 -nouveau Gallium 0.4 on NVC1 -nouveau Gallium 0.4 on NVC1 -nouveau Gallium 0.4 on NVC3 -nouveau Gallium 0.4 on NVC4 -nouveau Gallium 0.4 on NVC4 -nouveau Gallium 0.4 on NVCE -nouveau Gallium 0.4 on NVCE -nouveau Gallium 0.4 on NVCF -nouveau Gallium 0.4 on NVCF -nouveau Gallium 0.4 on NVD9 -nouveau Gallium 0.4 on NVD9 -nouveau Gallium 0.4 on NVE4 -nouveau Gallium 0.4 on NVE6 -nouveau Gallium 0.4 on NVE7 -nouveau Gallium 0.4 on NVE7 diff --git a/indra/newview/tests/gpus_unmatched.txt b/indra/newview/tests/gpus_unmatched.txt deleted file mode 100644 index 083f29aaa0..0000000000 --- a/indra/newview/tests/gpus_unmatched.txt +++ /dev/null @@ -1,9 +0,0 @@ -ATI NO MATCH -ATI Technologies NO MATCH -ATI Technologies Inc. NO MATCH -ATI Technologies Inc. (DNA-ATi 5.1.7.5x32) ATI Mobility Radeon HD 2 NO MATCH -ATI Technologies Inc. ATI Mobility Radeon Graphics NO MATCH -ATI Technologies Inc. ATI Radeon Graphics Processor NO MATCH -Intel NO MATCH -NVIDIA Corporation /PCI/SSE2 NO MATCH -NVIDIA Corporation Quadro PCI-E Series/PCI/SSE2 NO MATCH diff --git a/indra/newview/tests/lldir_stub.cpp b/indra/newview/tests/lldir_stub.cpp index 5d9c2f718b..ff4a4daf6d 100644 --- a/indra/newview/tests/lldir_stub.cpp +++ b/indra/newview/tests/lldir_stub.cpp @@ -28,7 +28,7 @@ LLDir::LLDir() {} LLDir::~LLDir() {} -BOOL LLDir::deleteFilesInDir(const std::string &dirname, const std::string &mask) { return true; } +S32 LLDir::deleteFilesInDir(const std::string &dirname, const std::string &mask) { return 1; } void LLDir::setChatLogsDir(const std::string &path) {} void LLDir::setPerAccountChatLogsDir(const std::string &) {} void LLDir::updatePerAccountChatLogsDir() {} diff --git a/indra/newview/tests/llglslshader_stub.cpp b/indra/newview/tests/llglslshader_stub.cpp deleted file mode 100644 index 537434a6d8..0000000000 --- a/indra/newview/tests/llglslshader_stub.cpp +++ /dev/null @@ -1,39 +0,0 @@ -/** - * @file llglslshader_stub.cpp - * @brief stub class to allow unit testing - * - * $LicenseInfo:firstyear=2009&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2011, 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 "llglslshader.h" - -void LLGLSLShader::uniform1f(const std::string& uniform, F32 num) -{ -} - -void LLGLSLShader::uniform3fv(const std::string& uniform, U32 count, const GLfloat *v) -{ -} - -void LLGLSLShader::uniform4fv(U32 index, U32 count, const GLfloat* v) -{ -} diff --git a/indra/newview/tests/llpipeline_stub.cpp b/indra/newview/tests/llpipeline_stub.cpp deleted file mode 100644 index 62b71e51e5..0000000000 --- a/indra/newview/tests/llpipeline_stub.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @file llpipeline_stub.cpp - * @brief stub class to allow unit testing - * - * $LicenseInfo:firstyear=2009&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2011, 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$ - */ - -class LLPipeline -{ -public: BOOL canUseWindLightShaders() const; -}; -BOOL LLPipeline::canUseWindLightShaders() const {return TRUE;} -LLPipeline gPipeline; diff --git a/indra/newview/tests/llremoteparcelrequest_test.cpp b/indra/newview/tests/llremoteparcelrequest_test.cpp index c8fa2fbd6f..9f3d7454ad 100644 --- a/indra/newview/tests/llremoteparcelrequest_test.cpp +++ b/indra/newview/tests/llremoteparcelrequest_test.cpp @@ -27,7 +27,6 @@ #include "linden_common.h" #include "../test/lltut.h" -#if 0 #include "../llremoteparcelrequest.h" @@ -40,16 +39,6 @@ namespace { const LLUUID TEST_PARCEL_ID("11111111-1111-1111-1111-111111111111"); } -LLCurl::Responder::Responder() { } -LLCurl::Responder::~Responder() { } -void LLCurl::Responder::httpFailure() { } -void LLCurl::Responder::httpSuccess() { } -void LLCurl::Responder::httpCompleted() { } -void LLCurl::Responder::failureResult(S32 status, const std::string& reason, const LLSD& content) { } -void LLCurl::Responder::successResult(const LLSD& content) { } -void LLCurl::Responder::completeResult(S32 status, const std::string& reason, const LLSD& content) { } -std::string LLCurl::Responder::dumpResponse() const { return "(failure)"; } -void LLCurl::Responder::completedRaw(LLChannelDescriptors const &,std::shared_ptr<LLBufferArray> const &) { } void LLMessageSystem::getF32(char const *,char const *,F32 &,S32) { } void LLMessageSystem::getU8(char const *,char const *,U8 &,S32) { } void LLMessageSystem::getS32(char const *,char const *,S32 &,S32) { } @@ -136,4 +125,3 @@ namespace tut processor.processParcelInfoReply(gMessageSystem, NULL); } } -#endif diff --git a/indra/newview/tests/llsky_stub.cpp b/indra/newview/tests/llsky_stub.cpp deleted file mode 100644 index 8faca2665a..0000000000 --- a/indra/newview/tests/llsky_stub.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/** - * @file llsky_stub.cpp - * @brief stub class to allow unit testing - * - * $LicenseInfo:firstyear=2009&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2011, 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$ - */ - -class LLSky -{ -public: - void setOverrideSun(BOOL override); - void setSunDirection(const LLVector3 &sun_direction, const LLVector3 &sun_ang_velocity); -}; - -void LLSky::setOverrideSun(BOOL override) {} -void LLSky::setSunDirection(const LLVector3 &sun_direction, const LLVector3 &sun_ang_velocity) {} - -LLSky gSky; diff --git a/indra/newview/tests/lltextureinfo_test.cpp b/indra/newview/tests/lltextureinfo_test.cpp index d491ce0f65..58451a1069 100644 --- a/indra/newview/tests/lltextureinfo_test.cpp +++ b/indra/newview/tests/lltextureinfo_test.cpp @@ -32,6 +32,13 @@ // Dependencies #include "../lltextureinfodetails.cpp" +#include "../llagent.h" +#include "../llappviewer.h" +#include "../llmeshrepository.h" +#include "../lltexturecache.h" +#include "../lltexturefetch.h" +#include "../llvocache.h" + // Tut header #include "../test/lltut.h" @@ -43,6 +50,39 @@ // * Do not make any assumption as to how those classes or methods work (i.e. don't copy/paste code) // * A simulator for a class can be implemented here. Please comment and document thoroughly. +LLControlGroup gSavedSettings("Global"); + +void send_texture_stats_to_sim(const LLSD& texture_stats) {} + +LLAgent gAgent; +LLAgent::LLAgent() : mAgentAccess(nullptr) { } +LLAgent::~LLAgent() { } +LLViewerRegion* LLAgent::getRegion() const { return nullptr; } + +LLTextureCache* LLAppViewer::sTextureCache = nullptr; +LLTextureFetch* LLAppViewer::sTextureFetch = nullptr; + +U32 LLMeshRepository::sCacheReads = 0; +std::atomic<U32> LLMeshRepository::sCacheWrites = 0; + +S64 LLTextureCache::sCacheMaxTexturesSize = 0; // no limit + +void LLTextureFetch::getStateStats(U32* cache_read, U32* cache_write, U32* res_wait) +{ + *cache_read = 0; + *cache_write = 0; + *res_wait = 0; +} + +LLVOCache::LLVOCache(bool read_only) : + mInitialized(false), + mReadOnly(read_only), + mNumEntries(0), + mCacheSize(1), + mEnabled(true) +{} + +LLVOCache::~LLVOCache() {} // End Stubbing // ------------------------------------------------------------------------------------------- @@ -89,7 +129,7 @@ namespace tut void textureinfo_object_t::test<1>() { LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); ensure("have we crashed?", true); } @@ -98,7 +138,7 @@ namespace tut void textureinfo_object_t::test<2>() { LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); LLUUID nonExistant("3a0efa3b-84dc-4e17-9b8c-79ea028850c1"); ensure(!tex_info.has(nonExistant)); @@ -109,7 +149,7 @@ namespace tut void textureinfo_object_t::test<3>() { LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); LLUUID id("10e65d70-46fd-429f-841a-bf698e9424d3"); tex_info.setRequestStartTime(id, 200); @@ -122,7 +162,7 @@ namespace tut void textureinfo_object_t::test<4>() { LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); LLUUID nonExistant("3a0efa3b-84dc-4e17-9b8c-79ea028850c1"); ensure_equals(tex_info.getRequestStartTime(nonExistant), 0); @@ -133,7 +173,7 @@ namespace tut void textureinfo_object_t::test<5>() { LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); LLUUID nonExistant("3a0efa3b-84dc-4e17-9b8c-79ea028850c1"); ensure_equals(tex_info.getRequestCompleteTime(nonExistant), 0); @@ -144,7 +184,7 @@ namespace tut void textureinfo_object_t::test<6>() { LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); LLUUID id("10e65d70-46fd-429f-841a-bf698e9424d3"); tex_info.setRequestSize(id, 600); @@ -157,7 +197,7 @@ namespace tut void textureinfo_object_t::test<7>() { LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); LLUUID id("10e65d70-46fd-429f-841a-bf698e9424d3"); tex_info.setRequestType(id, LLTextureInfoDetails::REQUEST_TYPE_HTTP); @@ -170,7 +210,7 @@ namespace tut void textureinfo_object_t::test<8>() { LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); LLUUID id("10e65d70-46fd-429f-841a-bf698e9424d3"); tex_info.setRequestType(id, LLTextureInfoDetails::REQUEST_TYPE_UDP); @@ -183,7 +223,7 @@ namespace tut void textureinfo_object_t::test<9>() { LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); LLUUID id("10e65d70-46fd-429f-841a-bf698e9424d3"); tex_info.setRequestOffset(id, 1234); @@ -195,11 +235,13 @@ namespace tut template<> template<> void textureinfo_object_t::test<10>() { + skip("Test skipped due to use of LLTrace stats failing in test"); + LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); S32 requestStartTimeOne = 200; - S32 requestEndTimeOne = 400; + U64Microseconds requestEndTimeOne(400); S32 requestSizeOne = 1024; S32 requestSizeOneBits = requestSizeOne * 8; LLUUID id1("10e65d70-46fd-429f-841a-bf698e9424d3"); @@ -209,7 +251,7 @@ namespace tut tex_info.setRequestCompleteTimeAndLog(id1, requestEndTimeOne); U32 requestStartTimeTwo = 100; - U32 requestEndTimeTwo = 500; + U64Microseconds requestEndTimeTwo(500); U32 requestSizeTwo = 2048; S32 requestSizeTwoBits = requestSizeTwo * 8; LLUUID id2("10e65d70-46fd-429f-841a-bf698e9424d4"); @@ -218,8 +260,9 @@ namespace tut tex_info.setRequestType(id2, LLTextureInfoDetails::REQUEST_TYPE_HTTP); tex_info.setRequestCompleteTimeAndLog(id2, requestEndTimeTwo); - S32 averageBitRate = ((requestSizeOneBits/(requestEndTimeOne - requestStartTimeOne)) + - (requestSizeTwoBits/(requestEndTimeTwo - requestStartTimeTwo))) / 2; + S32 averageBitRate = ((requestSizeOneBits / (S32(requestEndTimeOne.value()) - requestStartTimeOne)) + + (requestSizeTwoBits / (S32(requestEndTimeTwo.value()) - requestStartTimeTwo))) / + 2; S32 totalBytes = requestSizeOne + requestSizeTwo; @@ -234,10 +277,10 @@ namespace tut void textureinfo_object_t::test<11>() { LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); S32 requestStartTimeOne = 200; - S32 requestEndTimeOne = 400; + U64Microseconds requestEndTimeOne(400); S32 requestSizeOne = 1024; LLUUID id1("10e65d70-46fd-429f-841a-bf698e9424d3"); tex_info.setRequestStartTime(id1, requestStartTimeOne); @@ -246,7 +289,7 @@ namespace tut tex_info.setRequestCompleteTimeAndLog(id1, requestEndTimeOne); tex_info.getAverages(); - tex_info.reset(); + tex_info.resetTextureStatistics(); LLSD results = tex_info.getAverages(); ensure_equals("is average bits per second correct", results["bits_per_second"].asInteger(), 0); ensure_equals("is total bytes is correct", results["bytes_downloaded"].asInteger(), 0); @@ -258,10 +301,10 @@ namespace tut void textureinfo_object_t::test<12>() { LLTextureInfo tex_info; - tex_info.setUpLogging(true, true); + tex_info.setLogging(true); S32 requestStartTimeOne = 200; - S32 requestEndTimeOne = 400; + U64Microseconds requestEndTimeOne(400); S32 requestSizeOne = 1024; LLUUID id1("10e65d70-46fd-429f-841a-bf698e9424d3"); tex_info.setRequestStartTime(id1, requestStartTimeOne); diff --git a/indra/newview/tests/lltexturestatsuploader_test.cpp b/indra/newview/tests/lltexturestatsuploader_test.cpp deleted file mode 100644 index 782a4892b9..0000000000 --- a/indra/newview/tests/lltexturestatsuploader_test.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/** - * @file lltexturestatsuploader_test.cpp - * @author Si - * @date 2009-05-27 - * - * $LicenseInfo:firstyear=2006&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$ - */ - -// Precompiled header: almost always required for newview cpp files -#include "../llviewerprecompiledheaders.h" -// Class to test -#include "../lltexturestatsuploader.h" -// Dependencies - -// Tut header -#include "../test/lltut.h" - -// ------------------------------------------------------------------------------------------- -// Stubbing: Declarations required to link and run the class being tested -// Notes: -// * Add here stubbed implementation of the few classes and methods used in the class to be tested -// * Add as little as possible (let the link errors guide you) -// * Do not make any assumption as to how those classes or methods work (i.e. don't copy/paste code) -// * A simulator for a class can be implemented here. Please comment and document thoroughly. - -#include "boost/intrusive_ptr.hpp" -void boost::intrusive_ptr_add_ref(LLCurl::Responder*){} -void boost::intrusive_ptr_release(LLCurl::Responder* p){} -const F32 HTTP_REQUEST_EXPIRY_SECS = 0.0f; - -static std::string most_recent_url; -static LLSD most_recent_body; - -void LLHTTPClient::post( - const std::string& url, - const LLSD& body, - ResponderPtr, - const LLSD& headers, - const F32 timeout) -{ - // set some sensor code - most_recent_url = url; - most_recent_body = body; - return; -} - -// End Stubbing -// ------------------------------------------------------------------------------------------- - -// ------------------------------------------------------------------------------------------- -// TUT -// ------------------------------------------------------------------------------------------- - -namespace tut -{ - // Test wrapper declarations - struct texturestatsuploader_test - { - // Constructor and destructor of the test wrapper - texturestatsuploader_test() - { - most_recent_url = "some sort of default text that should never match anything the tests are expecting!"; - LLSD blank_llsd; - most_recent_body = blank_llsd; - } - ~texturestatsuploader_test() - { - } - }; - - // Tut templating thingamagic: test group, object and test instance - typedef test_group<texturestatsuploader_test> texturestatsuploader_t; - typedef texturestatsuploader_t::object texturestatsuploader_object_t; - tut::texturestatsuploader_t tut_texturestatsuploader("LLTextureStatsUploader"); - - - // --------------------------------------------------------------------------------------- - // Test functions - // Notes: - // * Test as many as you possibly can without requiring a full blown simulation of everything - // * The tests are executed in sequence so the test instance state may change between calls - // * Remember that you cannot test private methods with tut - // --------------------------------------------------------------------------------------- - - // --------------------------------------------------------------------------------------- - // Test the LLTextureInfo - // --------------------------------------------------------------------------------------- - - - // Test instantiation - template<> template<> - void texturestatsuploader_object_t::test<1>() - { - LLTextureStatsUploader tsu; - LL_INFOS() << &tsu << LL_ENDL; - ensure("have we crashed?", true); - } - - // does it call out to the provided url if we ask it to? - template<> template<> - void texturestatsuploader_object_t::test<2>() - { - LLTextureStatsUploader tsu; - std::string url = "http://blahblahblah"; - LLSD texture_stats; - tsu.uploadStatsToSimulator(url, texture_stats); - ensure_equals("did the right url get called?", most_recent_url, url); - ensure_equals("did the right body get sent?", most_recent_body, texture_stats); - } - - // does it not call out to the provided url if we send it an ungranted cap? - template<> template<> - void texturestatsuploader_object_t::test<3>() - { - LLTextureStatsUploader tsu; - - // this url left intentionally blank to mirror - // not getting a cap in the caller. - std::string url_for_ungranted_cap = ""; - - LLSD texture_stats; - std::string most_recent_url_before_test = most_recent_url; - tsu.uploadStatsToSimulator(url_for_ungranted_cap, texture_stats); - - ensure_equals("hopefully no url got called!", most_recent_url, most_recent_url_before_test); - } - - // does it call out if the data is empty? - // should it even do that? -} - diff --git a/indra/newview/tests/llvieweroctree_stub.cpp b/indra/newview/tests/llvieweroctree_stub.cpp index caf9299a2f..e850efd9ac 100644 --- a/indra/newview/tests/llvieweroctree_stub.cpp +++ b/indra/newview/tests/llvieweroctree_stub.cpp @@ -35,7 +35,7 @@ bool LLViewerOctreeCull::checkObjects(const OctreeNode* branch, const LLViewerOc void LLViewerOctreeCull::processGroup(LLViewerOctreeGroup* group) {} -bool LLViewerOctreeGroup::boundObjects(BOOL empty, LLVector4a& minOut, LLVector4a& maxOut) { return false; } +bool LLViewerOctreeGroup::boundObjects(bool empty, LLVector4a& minOut, LLVector4a& maxOut) { return false; } void LLViewerOctreeGroup::unbound() {} void LLViewerOctreeGroup::rebound() {} void LLViewerOctreeGroup::handleInsertion(const TreeNode* node, LLViewerOctreeEntry* obj) {} @@ -55,8 +55,8 @@ void LLOcclusionCullingGroup::doOcclusion(LLCamera* camera, const LLVector4a* sh void LLOcclusionCullingGroup::setOcclusionState(U32 state, S32 mode) {} void LLOcclusionCullingGroup::clearOcclusionState(U32 state, S32 mode) {} void LLOcclusionCullingGroup::handleChildAddition(const OctreeNode *parent, OctreeNode *child) {} -BOOL LLOcclusionCullingGroup::isRecentlyVisible() const { return FALSE; } -BOOL LLOcclusionCullingGroup::isAnyRecentlyVisible() const { return FALSE; } +bool LLOcclusionCullingGroup::isRecentlyVisible() const { return false; } +bool LLOcclusionCullingGroup::isAnyRecentlyVisible() const { return false; } LLViewerOctreeGroup::LLViewerOctreeGroup(OctreeNode* node) : mOctreeNode(node) {} @@ -81,6 +81,6 @@ LLViewerOctreePartition::LLViewerOctreePartition() = default; LLViewerOctreePartition::~LLViewerOctreePartition() = default; void LLViewerOctreePartition::cleanup() {} -BOOL LLViewerOctreeGroup::isRecentlyVisible() const { return FALSE; } +bool LLViewerOctreeGroup::isRecentlyVisible() const { return false; } diff --git a/indra/newview/tests/llviewershadermgr_stub.cpp b/indra/newview/tests/llviewershadermgr_stub.cpp deleted file mode 100644 index 5d6cb33019..0000000000 --- a/indra/newview/tests/llviewershadermgr_stub.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/** - * @file llglslshader_stub.cpp - * @brief stub class to allow unit testing - * - * $LicenseInfo:firstyear=2009&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2011, 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 "../llviewershadermgr.h" - -LLShaderMgr::LLShaderMgr() {} -LLShaderMgr::~LLShaderMgr() {} - -LLViewerShaderMgr::LLViewerShaderMgr() {} -LLViewerShaderMgr::~LLViewerShaderMgr() {} - -LLViewerShaderMgr* stub_instance = NULL; - -LLViewerShaderMgr* LLViewerShaderMgr::instance() { - if(NULL == stub_instance) - { - stub_instance = new LLViewerShaderMgr(); - } - - return stub_instance; -} -LLViewerShaderMgr::shader_iter fake_iter; -LLViewerShaderMgr::shader_iter LLViewerShaderMgr::beginShaders() const {return fake_iter;} -LLViewerShaderMgr::shader_iter LLViewerShaderMgr::endShaders() const {return fake_iter;} - -void LLViewerShaderMgr::updateShaderUniforms(LLGLSLShader* shader) {return;} -std::string LLViewerShaderMgr::getShaderDirPrefix() {return "SHADER_DIR_PREFIX-";} diff --git a/indra/newview/tests/llwlanimator_stub.cpp b/indra/newview/tests/llwlanimator_stub.cpp deleted file mode 100644 index 2b4510a6b7..0000000000 --- a/indra/newview/tests/llwlanimator_stub.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/** - * @file llwlanimator_stub.cpp - * @brief stub class to allow unit testing - * - * $LicenseInfo:firstyear=2009&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2011, 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$ - */ - -LLWLAnimator::LLWLAnimator(void) {} -void LLWLAnimator::update(LLWLParamSet& set) {} -void LLWLAnimator::setTrack(std::map<F32, LLWLParamKey>& track, F32 dayRate, F64 dayTime, bool run) {} diff --git a/indra/newview/tests/llwldaycycle_stub.cpp b/indra/newview/tests/llwldaycycle_stub.cpp deleted file mode 100644 index cd82e9b200..0000000000 --- a/indra/newview/tests/llwldaycycle_stub.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/** - * @file llwldaycycle_stub.cpp - * @brief stub class to allow unit testing - * - * $LicenseInfo:firstyear=2009&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2011, 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$ - */ - -LLWLDayCycle::LLWLDayCycle(void) -{ -} - -LLWLDayCycle::~LLWLDayCycle(void) -{ -} - -bool LLWLDayCycle::getKeytime(LLWLParamKey keyFrame, F32& keyTime) -{ - keyTime = 0.5; - return true; -} - -bool LLWLDayCycle::removeKeyframe(F32 time) -{ - return true; -} - -void LLWLDayCycle::loadDayCycleFromFile(const std::string& fileName) -{ -} - -void LLWLDayCycle::removeReferencesTo(const LLWLParamKey &keyframe) -{ -} diff --git a/indra/newview/tests/llwlparammanager_test.cpp b/indra/newview/tests/llwlparammanager_test.cpp deleted file mode 100644 index 2838ddb719..0000000000 --- a/indra/newview/tests/llwlparammanager_test.cpp +++ /dev/null @@ -1,271 +0,0 @@ -/** - * @file llwlparammanager_test.cpp - * @brief LLWLParamManager tests - * - * $LicenseInfo:firstyear=2009&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2011, 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$ - */ - -// Precompiled headers -#include "../llviewerprecompiledheaders.h" - -// Class to test -#include "../llwlparammanager.h" - -// Dependencies -#include "linden_common.h" - -// TUT header -#include "lltut.h" - -// Stubs -#include "llwldaycycle_stub.cpp" -#include "llwlparamset_stub.cpp" -#include "llwlanimator_stub.cpp" -#include "llglslshader_stub.cpp" -#include "lldir_stub.cpp" -#include "llsky_stub.cpp" -#include "llpipeline_stub.cpp" -#include "llviewershadermgr_stub.cpp" - -void assert_glerror(void) {} -LLViewerCamera::LLViewerCamera() {} -void LLViewerCamera::setView(F32 vertical_fov_rads) {} -std::string LLTrans::getString(const std::string &xml_desc, const LLStringUtil::format_map_t& args) { return std::string(""); } - -char* curl_unescape(const char* c_str, int length) -{ - char* copy = new char[length+4]; - memcpy(copy, c_str, length); - copy[length+0] = 'E'; - copy[length+1] = 'S'; - copy[length+2] = 'C'; - copy[length+3] = '\0'; - return copy; -} -void curl_free(void* p) {delete[] ((char*)p);} -char* curl_escape(const char* c_str, int length) { - char* copy = new char[length+6]; - memcpy(copy, c_str, length); - copy[length+0] = 'U'; - copy[length+1] = 'N'; - copy[length+2] = 'E'; - copy[length+3] = 'S'; - copy[length+4] = 'C'; - copy[length+5] = '\0'; - return copy; -} - -namespace tut -{ - // Main Setup - struct LLWLParamManagerFixture - { - class LLWLParamManagerTest - { - }; - - LLWLParamManager* mTestManager; - - LLWLParamManagerFixture() - : mTestManager(LLWLParamManager::getInstance()) - { - } - - ~LLWLParamManagerFixture() - { - } - }; - typedef test_group<LLWLParamManagerFixture> factory; - typedef factory::object object; - factory tf("LLWLParamManager test"); - - // Tests - template<> template<> - void object::test<1>() - { - try - { - std::string preset = - "<llsd>\ - <map>\ - <key>ambient</key>\ - <array>\ - <real>1.0499999523162842</real>\ - <real>1.0499999523162842</real>\ - <real>1.0499999523162842</real>\ - <real>0.34999999403953552</real>\ - </array>\ - <key>blue_density</key>\ - <array>\ - <real>0.2447581488182351</real>\ - <real>0.44872328639030457</real>\ - <real>0.75999999046325684</real>\ - <real>0.38000004053115788</real>\ - </array>\ - <key>blue_horizon</key>\ - <array>\ - <real>0.49548382097675159</real>\ - <real>0.49548381382419748</real>\ - <real>0.63999999284744291</real>\ - <real>0.31999999642372146</real>\ - </array>\ - <key>cloud_color</key>\ - <array>\ - <real>0.40999999165535073</real>\ - <real>0.40999999165535073</real>\ - <real>0.40999999165535073</real>\ - <real>0.40999999165535073</real>\ - </array>\ - <key>cloud_pos_density1</key>\ - <array>\ - <real>1.6884100437164307</real>\ - <real>0.52609699964523315</real>\ - <real>0.99999999999999289</real>\ - <real>1</real>\ - </array>\ - <key>cloud_pos_density2</key>\ - <array>\ - <real>1.6884100437164307</real>\ - <real>0.52609699964523315</real>\ - <real>0.125</real>\ - <real>1</real>\ - </array>\ - <key>cloud_scale</key>\ - <array>\ - <real>0.4199999868869746</real>\ - <real>0</real>\ - <real>0</real>\ - <real>1</real>\ - </array>\ - <key>cloud_scroll_rate</key>\ - <array>\ - <real>10.199999809265137</real>\ - <real>10.01099967956543</real>\ - </array>\ - <key>cloud_shadow</key>\ - <array>\ - <real>0.26999998092651367</real>\ - <real>0</real>\ - <real>0</real>\ - <real>1</real>\ - </array>\ - <key>density_multiplier</key>\ - <array>\ - <real>0.00017999998817685818</real>\ - <real>0</real>\ - <real>0</real>\ - <real>1</real>\ - </array>\ - <key>distance_multiplier</key>\ - <array>\ - <real>0.80000001192093606</real>\ - <real>0</real>\ - <real>0</real>\ - <real>1</real>\ - </array>\ - <key>east_angle</key>\ - <real>0</real>\ - <key>enable_cloud_scroll</key>\ - <array>\ - <boolean>1</boolean>\ - <boolean>1</boolean>\ - </array>\ - <key>gamma</key>\ - <array>\ - <real>1</real>\ - <real>0</real>\ - <real>0</real>\ - <real>1</real>\ - </array>\ - <key>glow</key>\ - <array>\ - <real>5</real>\ - <real>0.0010000000474974513</real>\ - <real>-0.47999998927116394</real>\ - <real>1</real>\ - </array>\ - <key>haze_density</key>\ - <array>\ - <real>0.69999998807907104</real>\ - <real>0</real>\ - <real>0</real>\ - <real>1</real>\ - </array>\ - <key>haze_horizon</key>\ - <array>\ - <real>0.18999999761581243</real>\ - <real>0.19915600121021271</real>\ - <real>0.19915600121021271</real>\ - <real>1</real>\ - </array>\ - <key>lightnorm</key>\ - <array>\ - <real>0</real>\ - <real>0.70710659027099609</real>\ - <real>-0.70710694789886475</real>\ - <real>0</real>\ - </array>\ - <key>max_y</key>\ - <array>\ - <real>1605</real>\ - <real>0</real>\ - <real>0</real>\ - <real>1</real>\ - </array>\ - <key>preset_num</key>\ - <integer>22</integer>\ - <key>star_brightness</key>\ - <real>0</real>\ - <key>sun_angle</key>\ - <real>2.3561947345733643</real>\ - <key>sunlight_color</key>\ - <array>\ - <real>0.73421055078505759</real>\ - <real>0.78157895803450828</real>\ - <real>0.89999997615813498</real>\ - <real>0.29999998211860301</real>\ - </array>\ - </map>\ - </llsd>"; - - std::stringstream preset_stream(preset); - mTestManager->loadPresetFromXML(LLWLParamKey("test1", LLWLParamKey::SCOPE_LOCAL), preset_stream); - LLWLParamSet dummy; - ensure("Couldn't get ParamSet after loading it", mTestManager->getParamSet(LLWLParamKey("test1", LLWLParamKey::SCOPE_LOCAL), dummy)); - } - catch (...) - { - fail("loadPresetFromXML test crashed!"); - } - } - - template<> template<> - void object::test<2>() - { - mTestManager->propagateParameters(); - ensure_equals("Wrong value from getDomeOffset()", mTestManager->getDomeOffset(), 0.96f); - ensure_equals("Wrong value from getDomeRadius()", mTestManager->getDomeRadius(), 15000.f); - ensure_equals("Wrong value from getLightDir()", mTestManager->getLightDir(), LLVector4(-0,0,1,0)); - ensure_equals("Wrong value from getClampedLightDir()", mTestManager->getClampedLightDir(), LLVector4(-0,0,1,0)); - ensure_equals("Wrong value from getRotatedLightDir()", mTestManager->getRotatedLightDir(), LLVector4(0,0,0,1)); - } -} diff --git a/indra/newview/tests/llwlparamset_stub.cpp b/indra/newview/tests/llwlparamset_stub.cpp deleted file mode 100644 index e6c4221895..0000000000 --- a/indra/newview/tests/llwlparamset_stub.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/** - * @file llwlparamset_stub.cpp - * @brief stub class to allow unit testing - * - * $LicenseInfo:firstyear=2009&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2011, 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$ - */ - -LLWLParamSet::LLWLParamSet(void) -{ -} - -void LLWLParamSet::updateCloudScrolling() -{ -} - -void LLWLParamSet::set(const std::string& name, const LLVector4& val) -{ -} - -void LLWLParamSet::update(LLGLSLShader *shader) const -{ -} diff --git a/indra/newview/tests/llxmlrpclistener_test.cpp b/indra/newview/tests/llxmlrpclistener_test.cpp index ee6281fc24..c77ce367c5 100644 --- a/indra/newview/tests/llxmlrpclistener_test.cpp +++ b/indra/newview/tests/llxmlrpclistener_test.cpp @@ -62,8 +62,8 @@ namespace tut // These variables are required by machinery used by // LLXMLRPCTransaction. The values reflect reality for this test // executable; hopefully these values are correct. - gSavedSettings.declareBOOL("BrowserProxyEnabled", FALSE, "", LLControlVariable::PERSIST_NO); // don't persist - gSavedSettings.declareBOOL("NoVerifySSLCert", TRUE, "", LLControlVariable::PERSIST_NO); // don't persist + gSavedSettings.declareBOOL("BrowserProxyEnabled", false, "", LLControlVariable::PERSIST_NO); // don't persist + gSavedSettings.declareBOOL("NoVerifySSLCert", true, "", LLControlVariable::PERSIST_NO); // don't persist } // LLEventPump listener signature diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt index 87b4e5e454..c1e63a7470 100644 --- a/indra/test/CMakeLists.txt +++ b/indra/test/CMakeLists.txt @@ -17,128 +17,34 @@ set(test_lib_SOURCE_FILES set(test_lib_HEADER_FILES CMakeLists.txt - lltut.h - ) - -list(APPEND test_lib_SOURCE_FILES ${test_lib_HEADER_FILES}) - -add_library(lltut_runner_lib ${test_lib_SOURCE_FILES}) - -target_link_libraries(lltut_runner_lib PRIVATE llcommon) - -set_target_properties(lltut_runner_lib - PROPERTIES - FOLDER "Tests" - ) - -set(test_SOURCE_FILES - io.cpp - llapp_tut.cpp - llbuffer_tut.cpp - lldoubledispatch_tut.cpp - llevents_tut.cpp - llhttpdate_tut.cpp - llhttpnode_tut.cpp - lliohttpserver_tut.cpp - llmessageconfig_tut.cpp - llpermissions_tut.cpp - llpipeutil.cpp - llsaleinfo_tut.cpp - llsdmessagebuilder_tut.cpp - llsdmessagereader_tut.cpp - llsd_new_tut.cpp - llsdutil_tut.cpp - llservicebuilder_tut.cpp - llstreamtools_tut.cpp - lltemplatemessagebuilder_tut.cpp - message_tut.cpp - ) - -set(test_HEADER_FILES - CMakeLists.txt + catch_and_store_what_in.h + chained_callback.h debug.h - llpipeutil.h llsdtraits.h + lltestapp.h lltut.h + namedtempfile.h + print.h + setenv.h sync.h + test.h ) -if (NOT WINDOWS) - list(APPEND test_SOURCE_FILES - llmessagetemplateparser_tut.cpp - ) -endif (NOT WINDOWS) - -list(APPEND test_SOURCE_FILES ${test_HEADER_FILES}) +list(APPEND test_lib_SOURCE_FILES ${test_lib_HEADER_FILES}) -add_executable(lltest ${test_SOURCE_FILES}) +add_library(lltut_runner_lib ${test_lib_SOURCE_FILES}) -target_link_libraries(lltest - lltut_runner_lib - llinventory - llmessage - llmath - llfilesystem - llxml - llcommon - llcorehttp - ) +target_link_libraries(lltut_runner_lib PRIVATE llcommon) -set_target_properties(lltest +set_target_properties(lltut_runner_lib PROPERTIES FOLDER "Tests" ) -if (WINDOWS) - set_target_properties(lltest - PROPERTIES - LINK_FLAGS "/NODEFAULTLIB:LIBCMT" - LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\"" - RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}" - ) -elseif (DARWIN) +if (DARWIN) set_target_properties(lltut_runner_lib PROPERTIES OSX_ARCHITECTURES ${LL_MACOS_TEST_ARCHITECTURE} ) - set_target_properties(lltest - PROPERTIES - OSX_ARCHITECTURES ${LL_MACOS_TEST_ARCHITECTURE} - ) - # Support our "@executable_path/../Resources" load path for our test - # executable. This SHOULD properly be "$<TARGET_FILE_DIR:lltest>/Resources", - # but the CMake $<TARGET_FILE_DIR> generator expression isn't evaluated by - # CREATE_LINK, so fudge it. - file(CREATE_LINK "../sharedlibs/Release/Resources" "${CMAKE_BINARY_DIR}/test/Resources" - SYMBOLIC) -endif (WINDOWS) - -# This should cause the test executable to be built, but not -# run if LL_TESTS is disabled. This will hopefully keep the -# tests up to date with any code changes changes even if -# developers choose to disable LL_TESTS. -if (LL_TESTS) - set(TEST_EXE $<TARGET_FILE:lltest>) - - SET_TEST_PATH(LD_LIBRARY_PATH) - - LL_TEST_COMMAND(command - "${LD_LIBRARY_PATH}" - "${TEST_EXE}" - "--output=${CMAKE_CURRENT_BINARY_DIR}/cpp_test_results.txt" - "--touch=${CMAKE_CURRENT_BINARY_DIR}/cpp_tests_ok.txt") - - add_test(NAME "C++ unit tests" COMMAND ${command} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - - add_dependencies(BUILD_TESTS lltest) - if(DARWIN) - # Support our "@executable_path/../Resources" load path for our test - # executable. This SHOULD properly be "$<TARGET_FILE_DIR:lltest>/Resources", - # but the CMake $<TARGET_FILE_DIR> generator expression isn't evaluated by - # CREATE_LINK, so fudge it. - add_custom_command( TARGET lltest POST_BUILD - COMMAND ${CMAKE_COMMAND} -E create_symlink ${SHARED_LIB_STAGING_DIR} ${CMAKE_BINARY_DIR}/test/Resources - ) - endif() -endif (LL_TESTS) +endif () diff --git a/indra/test/hexdump.h b/indra/test/hexdump.h deleted file mode 100644 index 95f1e297c3..0000000000 --- a/indra/test/hexdump.h +++ /dev/null @@ -1,97 +0,0 @@ -/** - * @file hexdump.h - * @author Nat Goodspeed - * @date 2023-09-08 - * @brief Provide hexdump() and hexmix() ostream formatters - * - * $LicenseInfo:firstyear=2023&license=viewerlgpl$ - * Copyright (c) 2023, Linden Research, Inc. - * $/LicenseInfo$ - */ - -#if ! defined(LL_HEXDUMP_H) -#define LL_HEXDUMP_H - -#include <cctype> -#include <iomanip> -#include <iostream> -#include <string_view> - -// Format a given byte string as 2-digit hex values, no separators -// Usage: std::cout << hexdump(somestring) << ... -class hexdump -{ -public: - hexdump(const std::string_view& data): - hexdump(data.data(), data.length()) - {} - - hexdump(const char* data, size_t len): - hexdump(reinterpret_cast<const unsigned char*>(data), len) - {} - - hexdump(const unsigned char* data, size_t len): - mData(data, data + len) - {} - - friend std::ostream& operator<<(std::ostream& out, const hexdump& self) - { - auto oldfmt{ out.flags() }; - auto oldfill{ out.fill() }; - out.setf(std::ios_base::hex, std::ios_base::basefield); - out.fill('0'); - for (auto c : self.mData) - { - out << std::setw(2) << unsigned(c); - } - out.setf(oldfmt, std::ios_base::basefield); - out.fill(oldfill); - return out; - } - -private: - std::vector<unsigned char> mData; -}; - -// Format a given byte string as a mix of printable characters and, for each -// non-printable character, "\xnn" -// Usage: std::cout << hexmix(somestring) << ... -class hexmix -{ -public: - hexmix(const std::string_view& data): - mData(data) - {} - - hexmix(const char* data, size_t len): - mData(data, len) - {} - - friend std::ostream& operator<<(std::ostream& out, const hexmix& self) - { - auto oldfmt{ out.flags() }; - auto oldfill{ out.fill() }; - out.setf(std::ios_base::hex, std::ios_base::basefield); - out.fill('0'); - for (auto c : self.mData) - { - // std::isprint() must be passed an unsigned char! - if (std::isprint(static_cast<unsigned char>(c))) - { - out << c; - } - else - { - out << "\\x" << std::setw(2) << unsigned(c); - } - } - out.setf(oldfmt, std::ios_base::basefield); - out.fill(oldfill); - return out; - } - -private: - std::string mData; -}; - -#endif /* ! defined(LL_HEXDUMP_H) */ diff --git a/indra/test/llassetuploadqueue_tut.cpp b/indra/test/llassetuploadqueue_tut.cpp deleted file mode 100644 index be5f9e4288..0000000000 --- a/indra/test/llassetuploadqueue_tut.cpp +++ /dev/null @@ -1,195 +0,0 @@ -/** - * @file asset_upload_queue_tut.cpp - * @brief Tests for newview/llassetuploadqueue.cpp - * - * $LicenseInfo:firstyear=2007&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 "lltut.h" - -#include "mock_http_client.h" -#include "../newview/llassetuploadqueue.cpp" - -// Mock implementation. -LLAssetUploadResponder::LLAssetUploadResponder(const LLSD& post_data, - const LLUUID& vfile_id, - LLAssetType::EType asset_type) -{ -} - -LLAssetUploadResponder::LLAssetUploadResponder(const LLSD& post_data, const std::string& file_name) -{ -} - -LLAssetUploadResponder::~LLAssetUploadResponder() -{ -} - -void LLAssetUploadResponder::httpFailure() -{ -} - -void LLAssetUploadResponder::httpSuccess() -{ -} - -void LLAssetUploadResponder::uploadUpload(const LLSD& content) -{ -} - -void LLAssetUploadResponder::uploadComplete(const LLSD& content) -{ -} - -void LLAssetUploadResponder::uploadFailure(const LLSD& content) -{ -} - -LLUpdateTaskInventoryResponder::LLUpdateTaskInventoryResponder(const LLSD& post_data, - const LLUUID& vfile_id, - LLAssetType::EType asset_type) : - LLAssetUploadResponder(post_data, vfile_id, asset_type) -{ -} - -LLUpdateTaskInventoryResponder::LLUpdateTaskInventoryResponder(const LLSD& post_data, - const std::string& file_name) : - LLAssetUploadResponder(post_data, file_name) -{ -} - -LLUpdateTaskInventoryResponder::LLUpdateTaskInventoryResponder(const LLSD& post_data, - const std::string& file_name, - const LLUUID& queue_id) : - LLAssetUploadResponder(post_data, file_name) -{ -} - -void LLUpdateTaskInventoryResponder::uploadComplete(const LLSD& content) -{ -} - -namespace tut -{ - class asset_upload_queue_test_data : public MockHttpClient {}; - typedef test_group<asset_upload_queue_test_data> asset_upload_queue_test; - typedef asset_upload_queue_test::object asset_upload_queue_object; - tut::asset_upload_queue_test asset_upload_queue("asset_upload_queue"); - - void queue(LLAssetUploadQueue& q, const std::string& filename) - { - LLUUID task_id; - LLUUID item_id; - BOOL is_running = FALSE; - BOOL is_target_mono = TRUE; - LLUUID queue_id; - q.queue(filename, task_id, item_id, is_running, is_target_mono, queue_id); - } - - class LLTestSupplier : public LLAssetUploadQueueSupplier - { - public: - - void set(LLAssetUploadQueue* queue) {mQueue = queue;} - - virtual LLAssetUploadQueue* get() const - { - return mQueue; - } - - private: - LLAssetUploadQueue* mQueue; - }; - - template<> template<> - void asset_upload_queue_object::test<1>() - { - setupTheServer(); - reset(); - LLTestSupplier* supplier = new LLTestSupplier(); - LLAssetUploadQueue q("http://localhost:8888/test/success", supplier); - supplier->set(&q); - queue(q, "foo.bar"); - ensure("upload queue not empty before request", q.isEmpty()); - runThePump(10); - ensure("upload queue not empty after request", q.isEmpty()); - } - - template<> template<> - void asset_upload_queue_object::test<2>() - { - reset(); - LLTestSupplier* supplier = new LLTestSupplier(); - LLAssetUploadQueue q("http://localhost:8888/test/error", supplier); - supplier->set(&q); - queue(q, "foo.bar"); - ensure("upload queue not empty before request", q.isEmpty()); - runThePump(10); - ensure("upload queue not empty after request", q.isEmpty()); - } - - template<> template<> - void asset_upload_queue_object::test<3>() - { - reset(); - LLTestSupplier* supplier = new LLTestSupplier(); - LLAssetUploadQueue q("http://localhost:8888/test/timeout", supplier); - supplier->set(&q); - queue(q, "foo.bar"); - ensure("upload queue not empty before request", q.isEmpty()); - runThePump(10); - ensure("upload queue not empty after request", q.isEmpty()); - } - - template<> template<> - void asset_upload_queue_object::test<4>() - { - reset(); - LLTestSupplier* supplier = new LLTestSupplier(); - LLAssetUploadQueue q("http://localhost:8888/test/success", supplier); - supplier->set(&q); - queue(q, "foo.bar"); - queue(q, "baz.bar"); - ensure("upload queue empty before request", !q.isEmpty()); - runThePump(10); - ensure("upload queue not empty before request", q.isEmpty()); - runThePump(10); - ensure("upload queue not empty after request", q.isEmpty()); - } - - template<> template<> - void asset_upload_queue_object::test<5>() - { - reset(); - LLTestSupplier* supplier = new LLTestSupplier(); - LLAssetUploadQueue q("http://localhost:8888/test/success", supplier); - supplier->set(&q); - queue(q, "foo.bar"); - runThePump(10); - ensure("upload queue not empty before request", q.isEmpty()); - queue(q, "baz.bar"); - ensure("upload queue not empty after request", q.isEmpty()); - runThePump(10); - killServer(); - } -} diff --git a/indra/test/lltimestampcache_tut.cpp b/indra/test/lltimestampcache_tut.cpp deleted file mode 100644 index 857dfe6e6e..0000000000 --- a/indra/test/lltimestampcache_tut.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/** - * @file lltimestampcache_tut.cpp - * @author James Tess - * @date 2008-12-03 - * - * $LicenseInfo:firstyear=2008&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 <tut/tut.hpp> - -#include "linden_common.h" -#include "../mapserver/lltimestampcache.h" -#include "lltut.h" - - -namespace tut -{ - struct LLTimestampCacheTestData - { - }; - - typedef test_group<LLTimestampCacheTestData> LLTimestampCacheTestGroup; - typedef LLTimestampCacheTestGroup::object LLTimestampCacheTestObject; - - LLTimestampCacheTestGroup timestampCacheTestGroup("LLTimestampCache"); - - // Most common usage - template<> template<> - void LLTimestampCacheTestObject::test<1>() - { - LLTimestampCache<std::string, std::string> cache; - // put in some data - cache.insert("key1", "val1", 1); - cache.insert("key2", "val2", 2); - cache.insert("key3", "val3", 3); - ensure_equals("size is 3", cache.size(), 3); - // check some items - ensure("has key1", cache.has("key1")); - ensure("no invalid key", !cache.has("invalid key")); - // get some items - ensure_equals("get key1", cache.get("key1", 4), "val1"); - ensure_equals("get invalid key", - cache.get("invalid key", 4), std::string() ); - // timestamps - ensure_equals("key1 timestamp updated", cache.getTimestamp("key1"), 4); - ensure_equals("invalid key timestamp", - cache.getTimestamp("invalid key"), 0); - } - - // New empty cache shouldn't have any entries - template<> template<> - void LLTimestampCacheTestObject::test<2>() - { - LLTimestampCache<std::string, std::string> cache; - ensure_equals("starts empty", cache.size(), 0); - ensure_equals("has nothing", cache.has("foo"), false); - ensure_equals("gets nothing", cache.get("foo", 0), std::string() ); - U32 max_time = 0xFFFFFFFF; - ensure_equals("erases nothing", cache.eraseBefore(max_time), 0); - } - - // Non empty cache - template<> template<> - void LLTimestampCacheTestObject::test<3>() - { - LLTimestampCache<std::string, std::string> cache; - cache.insert("foo", "bar", 123); - ensure_equals("size one", cache.size(), 1); - ensure_equals("has it", cache.has("foo"), true); - ensure_equals("timestamp correct", cache.getTimestamp("foo"), 123); - std::string value = cache.get("foo", 456); - ensure_equals("get value", value, "bar"); - ensure_equals("timestamp updated", cache.getTimestamp("foo"), 456); - ensure_equals("erase nothing", cache.eraseBefore(0), 0); - ensure_equals("erase one", cache.eraseBefore(789), 1); - ensure_equals("empty after erase", cache.size(), 0); - } - - // Recache of item should update timestamp - template<> template<> - void LLTimestampCacheTestObject::test<4>() - { - LLTimestampCache<std::string, std::string> cache; - cache.insert("foo", "bar", 123); - cache.insert("foo", "bar", 456); - ensure_equals("duplicate suppressed", cache.size(), 1); - ensure_equals("timestamp replaced", cache.getTimestamp("foo"), 456); - } - - // Erasing some items - template<> template<> - void LLTimestampCacheTestObject::test<5>() - { - LLTimestampCache<std::string, std::string> cache; - cache.insert("key1", "val1", 1); - cache.insert("key2", "val2", 2); - cache.insert("key3", "val3", 3); - cache.insert("key4", "val4", 4); - size_t erased = cache.eraseBefore(3); - ensure_equals("erase range", erased, 2); - ensure_equals("cache post erase", cache.size(), 2); - ensure_equals("has key3", cache.has("key3"), true); - ensure_equals("not has key2", cache.has("key2"), false); - } -} diff --git a/indra/test/lltranscode_tut.cpp b/indra/test/lltranscode_tut.cpp deleted file mode 100644 index 23d554d46d..0000000000 --- a/indra/test/lltranscode_tut.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/** - * @file llscriptresource_tut.cpp - * @brief Test LLScriptResource - * - * $LicenseInfo:firstyear=2008&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 <tut/tut.h> -#include "linden_common.h" - -#include "lltut.h" - -#include "../newsim/lltranscode.cpp" // include TU to pull in newsim implementation. - -static const char test_utf8[] = "Edelwei\xc3\x9f"; -static const char test_utf7[] = "Edelwei+AN8-"; -static const char test_latin1[] = "Edelwei\xdf"; -static const char test_latin2[] = "Edelwei\xdf"; - -namespace tut -{ - class LLTranscodeTestData - { - }; - - typedef test_group<LLTranscodeTestData> LLTranscodeTestGroup; - typedef LLTranscodeTestGroup::object LLTranscodeTestObject; - LLTranscodeTestGroup transcodeTestGroup("transcode"); - - template<> template<> - void LLTranscodeTestObject::test<1>() - { - // Test utf8 - std::stringstream input; - std::stringstream output; - - input.str(test_utf7); - output.clear(); - LLTranscode::transcode("charset=UTF-7", input, output); - ensure_equals("UTF-7 to UTF-8 transcoding", output.str(), - std::string(test_utf8)); - - input.str(test_latin1); - output.clear(); - LLTranscode::transcode("", input, output); - ensure_equals("Default (latin_1) to UTF8 transcoding", output.str(), - std::string(test_utf8)); - - input.str(test_latin1); - output.clear(); - LLTranscode::transcode("charset=iso-8859-1", input, output); - ensure_equals("latin_1 (ISO-8859-1) to UTF8 transcoding", output.str(), - std::string(test_utf8)); - - input.str(test_latin2); - output.clear(); - LLTranscode::transcode("charset=iso-8859-2", input, output); - ensure_equals("latin_2 (ISO-8859-2) to UTF8 transcoding", output.str(), - std::string(test_utf8)); - - input.str(test_utf8); - output.clear(); - LLTranscode::transcode("charset=utf-8", input, output); - ensure_equals("UTF8 to UTF8 transcoding", output.str(), - std::string(test_utf8)); - } -} diff --git a/indra/test/mock_http_client.cpp b/indra/test/mock_http_client.cpp deleted file mode 100644 index a97d31c7f4..0000000000 --- a/indra/test/mock_http_client.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/** - * @file mock_http_client.cpp - * @brief Framework for testing HTTP requests - * - * $LicenseInfo:firstyear=2007&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 "llhttpnode.h" - -namespace tut -{ - class SuccessNode : public LLHTTPNode - { - public: - void get(ResponsePtr r, const LLSD& context) const - { - LLSD result; - result["state"] = "complete"; - result["test"] = "test"; - r->result(result); - } - void post(ResponsePtr r, const LLSD& context, const LLSD& input) const - { - LLSD result; - result["state"] = "complete"; - result["test"] = "test"; - r->result(result); - } - }; - - class ErrorNode : public LLHTTPNode - { - public: - void get(ResponsePtr r, const LLSD& context) const - { r->status(599, "Intentional error"); } - void post(ResponsePtr r, const LLSD& context, const LLSD& input) const - { r->status(input["status"], input["reason"]); } - }; - - class TimeOutNode : public LLHTTPNode - { - public: - void get(ResponsePtr r, const LLSD& context) const - { - /* do nothing, the request will eventually time out */ - } - }; - - LLSD storage; - - class LLSDStorageNode : public LLHTTPNode - { - public: - LLSD get() const{ return storage; } - LLSD put(const LLSD& value) const{ storage = value; return LLSD(); } - }; - - LLHTTPRegistration<LLSDStorageNode> gStorageNode("/test/storage"); - LLHTTPRegistration<SuccessNode> gSuccessNode("/test/success"); - LLHTTPRegistration<ErrorNode> gErrorNode("/test/error"); - LLHTTPRegistration<TimeOutNode> gTimeOutNode("/test/timeout"); -} diff --git a/indra/test/mock_http_client.h b/indra/test/mock_http_client.h deleted file mode 100644 index ef268abc6e..0000000000 --- a/indra/test/mock_http_client.h +++ /dev/null @@ -1,190 +0,0 @@ -/** - * @file mock_http_client.cpp - * @brief Framework for testing HTTP requests - * - * $LicenseInfo:firstyear=2007&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 "llsdhttpserver.h" -#include "lliohttpserver.h" -#include "llhttpclient.h" -#include "llformat.h" -#include "llpipeutil.h" -#include "llpumpio.h" - -namespace tut -{ - struct MockHttpClient - { - public: - MockHttpClient() - { - apr_pool_create(&mPool, NULL); - mServerPump = new LLPumpIO(mPool); - mClientPump = new LLPumpIO(mPool); - - LLHTTPClient::setPump(*mClientPump); - } - - ~MockHttpClient() - { - delete mServerPump; - delete mClientPump; - apr_pool_destroy(mPool); - } - - void setupTheServer() - { - LLHTTPNode& root = LLIOHTTPServer::create(mPool, *mServerPump, 8888); - - LLHTTPStandardServices::useServices(); - LLHTTPRegistrar::buildAllServices(root); - } - - void runThePump(float timeout = 100.0f) - { - LLTimer timer; - timer.setTimerExpirySec(timeout); - - while(!mSawCompleted && !timer.hasExpired()) - { - if (mServerPump) - { - mServerPump->pump(); - mServerPump->callback(); - } - if (mClientPump) - { - mClientPump->pump(); - mClientPump->callback(); - } - } - } - - void killServer() - { - delete mServerPump; - mServerPump = NULL; - } - - private: - apr_pool_t* mPool; - LLPumpIO* mServerPump; - LLPumpIO* mClientPump; - - - protected: - void ensureStatusOK() - { - if (mSawError) - { - std::string msg = - llformat("httpFailure() called when not expected, status %d", - mStatus); - fail(msg); - } - } - - void ensureStatusError() - { - if (!mSawError) - { - fail("httpFailure() wasn't called"); - } - } - - LLSD getResult() - { - return mResult; - } - - protected: - bool mSawError; - S32 mStatus; - std::string mReason; - bool mSawCompleted; - LLSD mResult; - bool mResultDeleted; - - class Result : public LLHTTPClient::Responder - { - protected: - Result(MockHttpClient& client) - : mClient(client) - { - } - - public: - static boost::intrusive_ptr<Result> build(MockHttpClient& client) - { - return boost::intrusive_ptr<Result>(new Result(client)); - } - - ~Result() - { - mClient.mResultDeleted = true; - } - - protected: - virtual void httpFailure() - { - mClient.mSawError = true; - mClient.mStatus = getStatus(); - mClient.mReason = getReason(); - } - - virtual void httpSuccess() - { - mClient.mResult = getContent(); - } - - virtual void httpCompleted() - { - LLHTTPClient::Responder::httpCompleted(); - - mClient.mSawCompleted = true; - } - - private: - MockHttpClient& mClient; - }; - - friend class Result; - - protected: - - void reset() - { - mSawError = false; - mStatus = 0; - mSawCompleted = false; - mResult.clear(); - mResultDeleted = false; - } - - LLHTTPClient::ResponderPtr newResult() - { - reset(); - return Result::build(*this); - } - }; -} diff --git a/indra/test/prim_linkability_tut.cpp b/indra/test/prim_linkability_tut.cpp deleted file mode 100644 index 3603b25f18..0000000000 --- a/indra/test/prim_linkability_tut.cpp +++ /dev/null @@ -1,495 +0,0 @@ -/** - * @file linkability.cpp - * @author andrew@lindenlab.com - * @date 2007-04-23 - * @brief Tests for the LLPrimLinkInfo template which computes the linkability of prims - * - * $LicenseInfo:firstyear=2007&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 "lltut.h" -#include "llprimlinkinfo.h" -#include "llrand.h" - - -// helper function -void randomize_sphere(LLSphere& sphere, F32 center_range, F32 radius_range) -{ - F32 radius = ll_frand(2.f * radius_range) - radius_range; - LLVector3 center; - for (S32 i=0; i<3; ++i) - { - center.mV[i] = ll_frand(2.f * center_range) - center_range; - } - sphere.setRadius(radius); - sphere.setCenter(center); -} - -// helper function. Same as above with a min and max radius. -void randomize_sphere(LLSphere& sphere, F32 center_range, F32 minimum_radius, F32 maximum_radius) -{ - F32 radius = ll_frand(maximum_radius - minimum_radius) + minimum_radius; - LLVector3 center; - for (S32 i=0; i<3; ++i) - { - center.mV[i] = ll_frand(2.f * center_range) - center_range; - } - sphere.setRadius(radius); - sphere.setCenter(center); -} - -// helper function -bool random_sort( const LLPrimLinkInfo< S32 >&, const LLPrimLinkInfo< S32 >& b) -{ - return (ll_rand(64) < 32); -} - -namespace tut -{ - struct linkable_data - { - LLPrimLinkInfo<S32> info; - }; - - typedef test_group<linkable_data> linkable_test; - typedef linkable_test::object linkable_object; - tut::linkable_test wtf("prim linkability"); - - template<> template<> - void linkable_object::test<1>() - { - // Here we test the boundary of the LLPrimLinkInfo::canLink() method - // between semi-random middle-sized objects. - - S32 number_of_tests = 100; - for (S32 test = 0; test < number_of_tests; ++test) - { - // compute the radii that would provide the above max link distance - F32 first_radius = 0.f; - F32 second_radius = 0.f; - - // compute a random center for the first sphere - // compute some random max link distance - F32 max_link_span = ll_frand(MAX_OBJECT_SPAN); - if (max_link_span < OBJECT_SPAN_BONUS) - { - max_link_span += OBJECT_SPAN_BONUS; - } - LLVector3 first_center( - ll_frand(2.f * max_link_span) - max_link_span, - ll_frand(2.f * max_link_span) - max_link_span, - ll_frand(2.f * max_link_span) - max_link_span); - - // put the second sphere at the right distance from the origin - // such that it is within the max_link_distance of the first - LLVector3 direction(ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f); - direction.normalize(); - F32 half_milimeter = 0.0005f; - LLVector3 second_center; - - // max_span = 3 * (first_radius + second_radius) + OBJECT_SPAN_BONUS - // make sure they link at short distances - { - second_center = first_center + (OBJECT_SPAN_BONUS - half_milimeter) * direction; - LLPrimLinkInfo<S32> first_info(0, LLSphere(first_center, first_radius) ); - LLPrimLinkInfo<S32> second_info(1, LLSphere(second_center, second_radius) ); - ensure("these nearby objects should link", first_info.canLink(second_info) ); - } - - // make sure they fail to link if we move them apart just a little bit - { - second_center = first_center + (OBJECT_SPAN_BONUS + half_milimeter) * direction; - LLPrimLinkInfo<S32> first_info(0, LLSphere(first_center, first_radius) ); - LLPrimLinkInfo<S32> second_info(1, LLSphere(second_center, second_radius) ); - ensure("these nearby objects should NOT link", !first_info.canLink(second_info) ); - } - - // make sure the objects link or not at medium distances - { - first_radius = 0.3f * ll_frand(max_link_span - OBJECT_SPAN_BONUS); - - // This is the exact second radius that will link at exactly our random max_link_distance - second_radius = ((max_link_span - OBJECT_SPAN_BONUS) / 3.f) - first_radius; - second_center = first_center + (max_link_span - first_radius - second_radius - half_milimeter) * direction; - - LLPrimLinkInfo<S32> first_info(0, LLSphere(first_center, first_radius) ); - LLPrimLinkInfo<S32> second_info(1, LLSphere(second_center, second_radius) ); - - ensure("these objects should link", first_info.canLink(second_info) ); - } - - // make sure they fail to link if we move them apart just a little bit - { - // move the second sphere such that it is a little too far from the first - second_center += (2.f * half_milimeter) * direction; - LLPrimLinkInfo<S32> first_info(0, LLSphere(first_center, first_radius) ); - LLPrimLinkInfo<S32> second_info(1, LLSphere(second_center, second_radius) ); - - ensure("these objects should NOT link", !first_info.canLink(second_info) ); - } - - // make sure things don't link at far distances - { - second_center = first_center + (MAX_OBJECT_SPAN + 2.f * half_milimeter) * direction; - second_radius = 0.3f * MAX_OBJECT_SPAN; - LLPrimLinkInfo<S32> first_info(0, LLSphere(first_center, first_radius) ); - LLPrimLinkInfo<S32> second_info(1, LLSphere(second_center, second_radius) ); - ensure("these objects should NOT link", !first_info.canLink(second_info) ); - } - - } - } - - template<> template<> - void linkable_object::test<2>() - { - - // Consider a row of eight spheres in a row, each 10m in diameter and centered - // at 10m intervals: 01234567. - - F32 radius = 5.f; - F32 spacing = 10.f; - - LLVector3 line_direction(ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f); - line_direction.normalize(); - - LLVector3 first_center(ll_frand(2.f * spacing) -spacing, ll_frand(2.f * spacing) - spacing, ll_frand(2.f * spacing) - spacing); - - LLPrimLinkInfo<S32> infos[8]; - - for (S32 index = 0; index < 8; ++index) - { - LLVector3 center = first_center + ((F32)(index) * spacing) * line_direction; - infos[index].set(index, LLSphere(center, radius)); - } - - // Max span for 2 spheres of 5m radius is 3 * (5 + 5) + 1 = 31m - // spheres 0&2 have a 30m span (from outside edge to outside edge) and should link - { - LLPrimLinkInfo<S32> root_info = infos[0]; - std::list< LLPrimLinkInfo<S32> > info_list; - info_list.push_back(infos[2]); - root_info.mergeLinkableSet(info_list); - S32 prim_count = root_info.getPrimCount(); - ensure_equals("0&2 prim count should be 2", prim_count, 2); - ensure_equals("0&2 unlinkable list should have length 0", (S32) info_list.size(), 0); - } - - - // spheres 0&3 have a 40 meter span and should NOT link outright - { - LLPrimLinkInfo<S32> root_info = infos[0]; - std::list< LLPrimLinkInfo<S32> > info_list; - info_list.push_back(infos[3]); - root_info.mergeLinkableSet(info_list); - S32 prim_count = root_info.getPrimCount(); - ensure_equals("0&4 prim count should be 1", prim_count, 1); - ensure_equals("0&4 unlinkable list should have length 1", (S32) info_list.size(), 1); - } - - - // spheres 0-4 should link no matter what order : 01234 - // Total span = 50m, 012 link with a r=15.5 giving max span of 3 * (15.5 + 5) + 1 = 62.5, but the cap is 54m - { - LLPrimLinkInfo<S32> root_info = infos[0]; - std::list< LLPrimLinkInfo<S32> > info_list; - for (S32 index = 1; index < 5; ++index) - { - info_list.push_back(infos[index]); - } - root_info.mergeLinkableSet(info_list); - S32 prim_count = root_info.getPrimCount(); - ensure_equals("01234 prim count should be 5", prim_count, 5); - ensure_equals("01234 unlinkable list should have length 0", (S32) info_list.size(), 0); - } - - - // spheres 0-5 should link no matter what order : 04321 - { - LLPrimLinkInfo<S32> root_info = infos[0]; - std::list< LLPrimLinkInfo<S32> > info_list; - for (S32 index = 4; index > 0; --index) - { - info_list.push_back(infos[index]); - } - root_info.mergeLinkableSet(info_list); - S32 prim_count = root_info.getPrimCount(); - ensure_equals("04321 prim count should be 5", prim_count, 5); - ensure_equals("04321 unlinkable list should have length 0", (S32) info_list.size(), 0); - } - - // spheres 0-4 should link no matter what order : 01423 - { - LLPrimLinkInfo<S32> root_info = infos[0]; - std::list< LLPrimLinkInfo<S32> > info_list; - info_list.push_back(infos[1]); - info_list.push_back(infos[4]); - info_list.push_back(infos[2]); - info_list.push_back(infos[3]); - root_info.mergeLinkableSet(info_list); - S32 prim_count = root_info.getPrimCount(); - ensure_equals("01423 prim count should be 5", prim_count, 5); - ensure_equals("01423 unlinkable list should have length 0", (S32) info_list.size(), 0); - } - - // spheres 0-5 should NOT fully link, only 0-4 - { - LLPrimLinkInfo<S32> root_info = infos[0]; - std::list< LLPrimLinkInfo<S32> > info_list; - for (S32 index = 1; index < 6; ++index) - { - info_list.push_back(infos[index]); - } - root_info.mergeLinkableSet(info_list); - S32 prim_count = root_info.getPrimCount(); - ensure_equals("012345 prim count should be 5", prim_count, 5); - ensure_equals("012345 unlinkable list should have length 1", (S32) info_list.size(), 1); - std::list< LLPrimLinkInfo<S32> >::iterator info_itr = info_list.begin(); - if (info_itr != info_list.end()) - { - // examine the contents of the unlinked info - std::list<S32> unlinked_indecies; - info_itr->getData(unlinked_indecies); - // make sure there is only one index in the unlinked_info - ensure_equals("012345 unlinkable index count should be 1", (S32) unlinked_indecies.size(), 1); - // make sure its value is 6 - std::list<S32>::iterator unlinked_index_itr = unlinked_indecies.begin(); - S32 unlinkable_index = *unlinked_index_itr; - ensure_equals("012345 unlinkable index should be 5", (S32) unlinkable_index, 5); - } - } - - // spheres 0-7 should NOT fully link, only 0-5 - { - LLPrimLinkInfo<S32> root_info = infos[0]; - std::list< LLPrimLinkInfo<S32> > info_list; - for (S32 index = 1; index < 8; ++index) - { - info_list.push_back(infos[index]); - } - root_info.mergeLinkableSet(info_list); - S32 prim_count = root_info.getPrimCount(); - ensure_equals("01234567 prim count should be 5", prim_count, 5); - // Should be 1 linkinfo on unlinkable that has 2 prims - ensure_equals("01234567 unlinkable list should have length 1", (S32) info_list.size(), 1); - std::list< LLPrimLinkInfo<S32> >::iterator info_itr = info_list.begin(); - if (info_itr != info_list.end()) - { - // make sure there is only one index in the unlinked_info - std::list<S32> unlinked_indecies; - info_itr->getData(unlinked_indecies); - ensure_equals("0123456 unlinkable index count should be 3", (S32) unlinked_indecies.size(), 3); - - // make sure its values are 6 and 7 - std::list<S32>::iterator unlinked_index_itr = unlinked_indecies.begin(); - S32 unlinkable_index = *unlinked_index_itr; - ensure_equals("0123456 first unlinkable index should be 5", (S32) unlinkable_index, 5); - ++unlinked_index_itr; - unlinkable_index = *unlinked_index_itr; - ensure_equals("0123456 second unlinkable index should be 6", (S32) unlinkable_index, 6); - ++unlinked_index_itr; - unlinkable_index = *unlinked_index_itr; - ensure_equals("0123456 third unlinkable index should be 7", (S32) unlinkable_index, 7); - - } - } - } - - template<> template<> - void linkable_object::test<3>() - { - // Here we test the link results between an LLPrimLinkInfo and a set of - // randomized LLPrimLinkInfos where the expected results are known. - S32 number_of_tests = 5; - for (S32 test = 0; test < number_of_tests; ++test) - { - // the radii are known - F32 first_radius = 1.f; - F32 second_radius = 2.f; - F32 third_radius = 3.f; - - // compute the distances - F32 half_milimeter = 0.0005f; - F32 max_first_second_span = 3.f * (first_radius + second_radius) + OBJECT_SPAN_BONUS; - F32 linkable_distance = max_first_second_span - first_radius - second_radius - half_milimeter; - - F32 max_full_span = 3.f * (0.5f * max_first_second_span + third_radius) + OBJECT_SPAN_BONUS; - F32 unlinkable_distance = max_full_span - 0.5f * linkable_distance - third_radius + half_milimeter; - - // compute some random directions - LLVector3 first_direction(ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f); - first_direction.normalize(); - LLVector3 second_direction(ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f); - second_direction.normalize(); - LLVector3 third_direction(ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f, ll_frand(2.f) - 1.f); - third_direction.normalize(); - - // compute the centers - LLVector3 first_center = ll_frand(10.f) * first_direction; - LLVector3 second_center = first_center + ll_frand(linkable_distance) * second_direction; - LLVector3 first_join_center = 0.5f * (first_center + second_center); - LLVector3 third_center = first_join_center + unlinkable_distance * third_direction; - - // make sure the second info links and the third does not - { - // initialize the infos - S32 index = 0; - LLPrimLinkInfo<S32> first_info(index++, LLSphere(first_center, first_radius)); - LLPrimLinkInfo<S32> second_info(index++, LLSphere(second_center, second_radius)); - LLPrimLinkInfo<S32> third_info(index++, LLSphere(third_center, third_radius)); - - // put the second and third infos in a list - std::list< LLPrimLinkInfo<S32> > info_list; - info_list.push_back(second_info); - info_list.push_back(third_info); - - // merge the list with the first_info - first_info.mergeLinkableSet(info_list); - S32 prim_count = first_info.getPrimCount(); - - ensure_equals("prim count should be 2", prim_count, 2); - ensure_equals("unlinkable list should have length 1", (S32) info_list.size(), 1); - } - - // reverse the order and make sure we get the same results - { - // initialize the infos - S32 index = 0; - LLPrimLinkInfo<S32> first_info(index++, LLSphere(first_center, first_radius)); - LLPrimLinkInfo<S32> second_info(index++, LLSphere(second_center, second_radius)); - LLPrimLinkInfo<S32> third_info(index++, LLSphere(third_center, third_radius)); - - // build the list in the reverse order - std::list< LLPrimLinkInfo<S32> > info_list; - info_list.push_back(third_info); - info_list.push_back(second_info); - - // merge the list with the first_info - first_info.mergeLinkableSet(info_list); - S32 prim_count = first_info.getPrimCount(); - - ensure_equals("prim count should be 2", prim_count, 2); - ensure_equals("unlinkable list should have length 1", (S32) info_list.size(), 1); - } - } - } - - template<> template<> - void linkable_object::test<4>() - { - // Here we test whether linkability is invarient under permutations - // of link order. To do this we generate a bunch of random spheres - // and then try to link them in different ways. - // - // NOTE: the linkability will only be invarient if there is only one - // linkable solution. Multiple solutions will exist if the set of - // candidates are larger than the maximum linkable distance, or more - // numerous than a single linked object can contain. This is easily - // understood by considering a very large set of link candidates, - // and first linking preferentially to the left until linking fails, - // then doing the same to the right -- the final solutions will differ. - // Hence for this test we must generate candidate sets that lie within - // the linkability envelope of a single object. - // - // NOTE: a random set of objects will tend to either be totally linkable - // or totally not. That is, the random orientations that - - F32 root_center_range = 0.f; - F32 min_prim_radius = 0.1f; - F32 max_prim_radius = 2.f; - - // Linkability is min(MAX_OBJECT_SPAN,3 *( R1 + R2 ) + BONUS) - // 3 * (min_prim_radius + min_prim_radius) + OBJECT_SPAN_BONUS = 6 * min_prim_radius + OBJECT_SPAN_BONUS; - // Use .45 instead of .5 to gaurantee objects are within the minimum span. - F32 child_center_range = 0.45f * ( (6*min_prim_radius) + OBJECT_SPAN_BONUS ); - - S32 number_of_tests = 100; - S32 number_of_spheres = 10; - S32 number_of_scrambles = 10; - S32 number_of_random_bubble_sorts = 10; - - for (S32 test = 0; test < number_of_tests; ++test) - { - LLSphere sphere; - S32 sphere_index = 0; - - // build the root piece - randomize_sphere(sphere, root_center_range, min_prim_radius, max_prim_radius); - info.set( sphere_index++, sphere ); - - // build the unlinked pieces - std::list< LLPrimLinkInfo<S32> > info_list; - for (; sphere_index < number_of_spheres; ++sphere_index) - { - randomize_sphere(sphere, child_center_range, min_prim_radius, max_prim_radius); - LLPrimLinkInfo<S32> child_info( sphere_index, sphere ); - info_list.push_back(child_info); - } - - // declare the variables used to store the results - std::list<S32> first_linked_list; - - { - // the link attempt will modify our original info's, so we - // have to make copies of the originals for testing - LLPrimLinkInfo<S32> test_info( 0, LLSphere(info.getCenter(), 0.5f * info.getDiameter()) ); - std::list< LLPrimLinkInfo<S32> > test_list; - test_list.assign(info_list.begin(), info_list.end()); - - // try to link - test_info.mergeLinkableSet(test_list); - - ensure("All prims should link, but did not.",test_list.empty()); - - // store the results - test_info.getData(first_linked_list); - first_linked_list.sort(); - } - - // try to link the spheres in various random orders - for (S32 scramble = 0; scramble < number_of_scrambles; ++scramble) - { - LLPrimLinkInfo<S32> test_info(0, LLSphere(info.getCenter(), 0.5f * info.getDiameter()) ); - - // scramble the order of the info_list - std::list< LLPrimLinkInfo<S32> > test_list; - test_list.assign(info_list.begin(), info_list.end()); - for (S32 i = 0; i < number_of_random_bubble_sorts; i++) - { - test_list.sort(random_sort); - } - - // try to link - test_info.mergeLinkableSet(test_list); - - // get the results - std::list<S32> linked_list; - test_info.getData(linked_list); - linked_list.sort(); - - ensure_equals("linked set size should be order independent",linked_list.size(),first_linked_list.size()); - } - } - } -} - diff --git a/indra/test/test.cpp b/indra/test/test.cpp index fd8034b811..5b36bb618d 100644 --- a/indra/test/test.cpp +++ b/indra/test/test.cpp @@ -46,13 +46,6 @@ #include "apr_pools.h" #include "apr_getopt.h" -// the CTYPE_WORKAROUND is needed for linux dev stations that don't -// have the broken libc6 packages needed by our out-of-date static -// libs (such as libcrypto and libcurl). -- Leviathan 20060113 -#ifdef CTYPE_WORKAROUND -# include "ctype_workaround.h" -#endif - #include <boost/iostreams/tee.hpp> #include <boost/iostreams/stream.hpp> @@ -316,122 +309,6 @@ protected: std::shared_ptr<LLReplayLog> mReplayer; }; -// TeamCity specific class which emits service messages -// http://confluence.jetbrains.net/display/TCD3/Build+Script+Interaction+with+TeamCity;#BuildScriptInteractionwithTeamCity-testReporting - -class LLTCTestCallback : public LLTestCallback -{ -public: - LLTCTestCallback(bool verbose_mode, std::ostream *stream, - std::shared_ptr<LLReplayLog> replayer) : - LLTestCallback(verbose_mode, stream, replayer) - { - } - - ~LLTCTestCallback() - { - } - - virtual void group_started(const std::string& name) { - LLTestCallback::group_started(name); - std::cout << "\n##teamcity[testSuiteStarted name='" << escape(name) << "']" << std::endl; - } - - virtual void group_completed(const std::string& name) { - LLTestCallback::group_completed(name); - std::cout << "##teamcity[testSuiteFinished name='" << escape(name) << "']" << std::endl; - } - - virtual void test_completed(const tut::test_result& tr) - { - std::string testname(STRINGIZE(tr.group << "." << tr.test)); - if (! tr.name.empty()) - { - testname.append(":"); - testname.append(tr.name); - } - testname = escape(testname); - - // Sadly, tut::callback doesn't give us control at test start; have to - // backfill start message into TC output. - std::cout << "##teamcity[testStarted name='" << testname << "']" << std::endl; - - // now forward call to base class so any output produced there is in - // the right TC context - LLTestCallback::test_completed(tr); - - switch(tr.result) - { - case tut::test_result::ok: - break; - - case tut::test_result::fail: - case tut::test_result::ex: - case tut::test_result::warn: - case tut::test_result::term: - std::cout << "##teamcity[testFailed name='" << testname - << "' message='" << escape(tr.message) << "']" << std::endl; - break; - - case tut::test_result::skip: - std::cout << "##teamcity[testIgnored name='" << testname << "']" << std::endl; - break; - - default: - break; - } - - std::cout << "##teamcity[testFinished name='" << testname << "']" << std::endl; - } - - static std::string escape(const std::string& str) - { - // Per http://confluence.jetbrains.net/display/TCD65/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-ServiceMessages - std::string result; - for (char c : str) - { - switch (c) - { - case '\'': - result.append("|'"); - break; - case '\n': - result.append("|n"); - break; - case '\r': - result.append("|r"); - break; -/*==========================================================================*| - // These are not possible 'char' values from a std::string. - case '\u0085': // next line - result.append("|x"); - break; - case '\u2028': // line separator - result.append("|l"); - break; - case '\u2029': // paragraph separator - result.append("|p"); - break; -|*==========================================================================*/ - case '|': - result.append("||"); - break; - case '[': - result.append("|["); - break; - case ']': - result.append("|]"); - break; - default: - result.push_back(c); - break; - } - } - return result; - } -}; - - static const apr_getopt_option_t TEST_CL_OPTIONS[] = { {"help", 'h', 0, "Print the help message."}, @@ -619,10 +496,6 @@ int main(int argc, char **argv) LLFile::remove(test_log); LLError::logToFile(test_log); -#ifdef CTYPE_WORKAROUND - ctype_workaround(); -#endif - if (!sMasterThreadRecorder) { sMasterThreadRecorder = new LLTrace::ThreadRecorder(); @@ -631,15 +504,7 @@ int main(int argc, char **argv) // run the tests - LLTestCallback* mycallback; - if (getenv("TEAMCITY_PROJECT_NAME")) - { - mycallback = new LLTCTestCallback(verbose_mode, output.get(), replayer); - } - else - { - mycallback = new LLTestCallback(verbose_mode, output.get(), replayer); - } + LLTestCallback* mycallback = new LLTestCallback(verbose_mode, output.get(), replayer); // a chained_callback subclass must be linked with previous mycallback->link(); |
