diff options
285 files changed, 10733 insertions, 5570 deletions
@@ -468,3 +468,8 @@ bf6d453046011a11de2643fac610cc5258650f82 3.6.5-release ae457ece77001767ae9613148c495e7b98cc0f4a 3.6.7-release d40c66e410741de7e90b1ed6dac28dd8a2d7e1f6 3.6.8-release 70eda3721d36df3e00730629c42a1304e5bc65b8 3.6.9-release +5b54b36862ff8bc3b6935673c9d1c1f22ee8d521 3.6.10-release +2feb70a4cfde43f2898d95ff8fcae3e67805c7c2 3.6.11-release +88bbfd7a6971033f3aa103f3a3500ceb4c73521b 3.6.12-release +0d9b9e50f1a8880e05f15688a9ec7d09e0e81013 3.6.13-release +5d746de933a98ca17887cde2fece80e9c7ab0b98 3.7.0-release diff --git a/BuildParams b/BuildParams index 31e7e841ad..ede2595cd3 100755 --- a/BuildParams +++ b/BuildParams @@ -49,15 +49,17 @@ viewer_channel = "Second Life Test" # Setup default packaging parameters. sourceid = "" -additional_packages = "Amazon Desura B C" +additional_packages = "Amazon Desura A B C" Amazon_sourceid = "1207v_Amazon" -Amazon_viewer_channel_suffix = " Amazon" +Amazon_viewer_channel_suffix = "Amazon" Desura_sourceid = "1208_desura" -Desura_viewer_channel_suffix = " Desura" +Desura_viewer_channel_suffix = "Desura" +A_sourceid = "1300_A" +A_viewer_channel_suffix = "A" B_sourceid = "1301_B" -B_viewer_channel_suffix = " B" +B_viewer_channel_suffix = "B" C_sourceid = "1302_C" -C_viewer_channel_suffix = " C" +C_viewer_channel_suffix = "C" # Report changes since... viewer-development.show_changes_since = last_sprint @@ -36,24 +36,59 @@ build_dir_CYGWIN() echo build-vc100 } +viewer_channel_suffix() +{ + local package_name="$1" + local suffix_var="${package_name}_viewer_channel_suffix" + local suffix=$(eval "echo \$${suffix_var}") + if [ "$suffix"x = ""x ] + then + echo "" + else + echo "_$suffix" + fi +} + installer_Darwin() { - ls -1tr "$(build_dir_Darwin ${last_built_variant:-Release})/newview/"*"$additional_package_name"*.dmg 2>/dev/null | sed 1q + local package_name="$1" + local package_dir="$(build_dir_Darwin ${last_built_variant:-Release})/newview/" + local pattern=".*$(viewer_channel_suffix ${package_name})_[0-9]+_[0-9]+_[0-9]+_[0-9]+_i386\\.dmg\$" + # since the additional packages are built after the base package, + # sorting oldest first ensures that the unqualified package is returned + # even if someone makes a qualified name that duplicates the last word of the base name + local package=$(ls -1tr "$package_dir" 2>/dev/null | grep -E "$pattern" | head -n 1) + test "$package"x != ""x && echo "$package_dir/$package" } installer_Linux() { - ls -1tr "$(build_dir_Linux ${last_built_variant:-Release})/newview/"*"$additional_package_name"*.tar.bz2 2>/dev/null | grep -v symbols | sed 1q + local package_name="$1" + local package_dir="$(build_dir_Linux ${last_built_variant:-Release})/newview/" + local pattern=".*$(viewer_channel_suffix ${package_name})_[0-9]+_[0-9]+_[0-9]+_[0-9]+_i686\\.tar\\.bz2\$" + # since the additional packages are built after the base package, + # sorting oldest first ensures that the unqualified package is returned + # even if someone makes a qualified name that duplicates the last word of the base name + package=$(ls -1tr "$package_dir" 2>/dev/null | grep -E "$pattern" | head -n 1) + test "$package"x != ""x && echo "$package_dir/$package" } installer_CYGWIN() { - v=${last_built_variant:-Release} - d=$(build_dir_CYGWIN $v) - if [ -r "$d/newview/$additional_package_name$v/touched.bat" ] + local package_name="$1" + local variant=${last_built_variant:-Release} + local build_dir=$(build_dir_CYGWIN ${variant}) + local package_dir + if [ "$package_name"x = ""x ] then - p=$(sed 's:.*=::' "$d/newview/$additional_package_name$v/touched.bat") - echo "$d/newview/$additional_package_name$v/$p" + package_dir="${build_dir}/newview/${variant}" + else + package_dir="${build_dir}/newview/${package_name}/${variant}" + fi + if [ -r "${package_dir}/touched.bat" ] + then + local package_file=$(sed 's:.*=::' "${package_dir}/touched.bat") + echo "${package_dir}/${package_file}" fi } @@ -275,7 +310,7 @@ then if $build_viewer_deb && [ "$last_built_variant" == "Release" ] then begin_section "Build Viewer Debian Package" - local have_private_repo=false + have_private_repo=false # mangle the changelog dch --force-bad-version \ --distribution unstable \ @@ -347,8 +382,7 @@ then if $build_viewer then begin_section Upload Installer - # Upload installer - note that ONLY THE FIRST ITEM uploaded as "installer" - # will appear in the version manager. + # Upload installer package=$(installer_$arch) if [ x"$package" = x ] || test -d "$package" then @@ -363,19 +397,15 @@ then # Upload additional packages. for package_id in $additional_packages do - case $arch in - CYGWIN) export additional_package_name="$package_id/" ;; - *) export additional_package_name=$package_id ;; - esac - package=$(installer_$arch) + package=$(installer_$arch "$package_id") if [ x"$package" != x ] then upload_item installer "$package" binary/octet-stream + upload_item quicklink "$package" binary/octet-stream else - record_failure "Failed to upload $package_id package." + record_failure "Failed to find additional package for '$package_id'." fi done - export additional_package_name="" case "$last_built_variant" in Release) @@ -385,6 +415,12 @@ then upload_item symbolfile "$build_dir/$symbolfile" binary/octet-stream done + # Upload the actual dependencies used + if [ -r "$build_dir/packages/installed-packages.xml" ] + then + upload_item installer "$build_dir/packages/installed-packages.xml" text/xml + fi + # Upload the llphysicsextensions_tpv package, if one was produced # *TODO: Make this an upload-extension if [ -r "$build_dir/llphysicsextensions_package" ] diff --git a/doc/contributions.txt b/doc/contributions.txt index 99527c0587..89390d9977 100755 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -180,6 +180,9 @@ Ansariel Hiller MAINT-2368 STORM-1931 MAINT-2773 + BUG-3764 + STORM-1984 + STORM-1979 Aralara Rajal Arare Chantilly CHUIBUG-191 @@ -307,6 +310,7 @@ Christopher Organiser Ciaran Laval Cinder Roxley BUG-2326 + BUG-3863 OPEN-185 STORM-1703 STORM-1948 @@ -674,6 +678,19 @@ Jonathan Yap OPEN-161 STORM-1953 STORM-1957 + STORM-1993 + STORM-1980 + OPEN-113 + STORM-1975 + STORM-1982 + STORM-1975 + STORM-1987 + STORM-1982 + STORM-1992 + STORM-1989 + STORM-1987 + STORM-1986 + STORM-1981 Kadah Coba STORM-1060 STORM-1843 @@ -1140,6 +1157,7 @@ snowy Sidran Sovereign Engineer MAINT-2334 OPEN-189 + OPEN-195 SpacedOut Frye VWR-34 VWR-45 @@ -1184,6 +1202,7 @@ TankMaster Finesmith STORM-1258 STORM-1602 STORM-1868 + STORM-1950 VWR-26622 VWR-29224 Talamasca @@ -1258,6 +1277,8 @@ Tofu Buzzard Tony Kembia Tonya Souther STORM-1905 + BUG-3875 + BUG-3968 Torben Trautman TouchaHoney Perhaps TraductoresAnonimos Alter diff --git a/indra/lib/python/indra/base/lluuid.py b/indra/lib/python/indra/base/lluuid.py index 369ae4e92f..7413ffe10d 100755 --- a/indra/lib/python/indra/base/lluuid.py +++ b/indra/lib/python/indra/base/lluuid.py @@ -72,7 +72,7 @@ class UUID(object): ip = '' try: ip = socket.gethostbyname(socket.gethostname()) - except(socket.gaierror): + except(socket.gaierror, socket.error): # no ip address, so just default to somewhere in 10.x.x.x ip = '10' for i in range(3): diff --git a/indra/lib/python/indra/util/llmanifest.py b/indra/lib/python/indra/util/llmanifest.py index 52b4acbc94..1d85aa2978 100755 --- a/indra/lib/python/indra/util/llmanifest.py +++ b/indra/lib/python/indra/util/llmanifest.py @@ -85,7 +85,8 @@ def get_default_platform(dummy): }[sys.platform] DEFAULT_SRCTREE = os.path.dirname(sys.argv[0]) -RELEASE_CHANNEL = 'Second Life Release' +CHANNEL_VENDOR_BASE = 'Second Life' +RELEASE_CHANNEL = CHANNEL_VENDOR_BASE + ' Release' ARGUMENTS=[ dict(name='actions', @@ -112,13 +113,14 @@ ARGUMENTS=[ default="Release"), dict(name='dest', description='Destination directory.', default=DEFAULT_SRCTREE), dict(name='grid', - description="""Which grid the client will try to connect to. Even - though it's not strictly a grid, 'firstlook' is also an acceptable - value for this parameter.""", - default=""), + description="""Which grid the client will try to connect to.""", + default=None), dict(name='channel', description="""The channel to use for updates, packaging, settings name, etc.""", default='CHANNEL UNSET'), + dict(name='channel_suffix', + description="""Addition to the channel for packaging and channel value, but not application name (used internally)""", + default=None), dict(name='installer_name', description=""" The name of the file that the installer should be packaged up into. Only used on Linux at the moment.""", @@ -213,9 +215,9 @@ def main(): print "Unable to read versionfile '%s'" % args['versionfile'] raise - # default and agni are default - if args['grid'] in ['default', 'agni']: - args['grid'] = '' + # unspecified, default, and agni are default + if args['grid'] in ['', 'default', 'agni']: + args['grid'] = None if 'actions' in args: args['actions'] = args['actions'].split() @@ -286,21 +288,24 @@ def main(): base_channel_name = args['channel'] # Build each additional package. package_id_list = additional_packages.split(" ") + args['channel'] = base_channel_name for package_id in package_id_list: try: - args['package_id'] = package_id - args['channel'] = base_channel_name + os.environ[package_id + "_viewer_channel_suffix"] + if package_id + "_viewer_channel_suffix" in os.environ: + args['channel_suffix'] = os.environ[package_id + "_viewer_channel_suffix"] + else: + args['channel_suffix'] = None if package_id + "_sourceid" in os.environ: args['sourceid'] = os.environ[package_id + "_sourceid"] else: - args['sourceid'] = "" + args['sourceid'] = None args['dest'] = base_dest_prefix + os.sep + package_id + os.sep + base_dest_postfix except KeyError: sys.stderr.write("Failed to create package for package_id: %s" % package_id) sys.stderr.flush() continue if touch: - print 'Creating additional package for ', package_id, ' in ', args['dest'] + print 'Creating additional package for "', package_id, '" in ', args['dest'] wm = LLManifest.for_platform(args['platform'], args.get('arch'))(args) wm.do(*args['actions']) if touch: @@ -332,7 +337,7 @@ class LLManifest(object): manifests = {} def for_platform(self, platform, arch = None): if arch: - platform = platform + '_' + arch + platform = platform + '_' + arch + '_' return self.manifests[platform.lower()] for_platform = classmethod(for_platform) @@ -349,8 +354,6 @@ class LLManifest(object): self.created_paths = [] self.package_name = "Unknown" - def default_grid(self): - return self.args.get('grid', None) == '' def default_channel(self): return self.args.get('channel', None) == RELEASE_CHANNEL diff --git a/indra/llappearance/llavatarappearance.cpp b/indra/llappearance/llavatarappearance.cpp index 3bb759d458..ce2b51cea2 100644 --- a/indra/llappearance/llavatarappearance.cpp +++ b/indra/llappearance/llavatarappearance.cpp @@ -291,10 +291,6 @@ LLAvatarAppearance::~LLAvatarAppearance() clearSkeleton(); deleteAndClearArray(mCollisionVolumes); - deleteAndClear(mTexSkinColor); - deleteAndClear(mTexHairColor); - deleteAndClear(mTexEyeColor); - std::for_each(mPolyMeshes.begin(), mPolyMeshes.end(), DeletePairedPointer()); mPolyMeshes.clear(); diff --git a/indra/llaudio/llaudiodecodemgr.cpp b/indra/llaudio/llaudiodecodemgr.cpp index 6c97a64ed7..8c31f8b4de 100755 --- a/indra/llaudio/llaudiodecodemgr.cpp +++ b/indra/llaudio/llaudiodecodemgr.cpp @@ -135,7 +135,7 @@ int vfs_seek(void *datasource, ogg_int64_t offset, int whence) origin = -1; break; default: - llerrs << "Invalid whence argument to vfs_seek" << llendl; + LL_ERRS("AudioEngine") << "Invalid whence argument to vfs_seek" << LL_ENDL; return -1; } @@ -197,12 +197,12 @@ BOOL LLVorbisDecodeState::initDecode() vfs_callbacks.close_func = vfs_close; vfs_callbacks.tell_func = vfs_tell; - //llinfos << "Initing decode from vfile: " << mUUID << llendl; + LL_DEBUGS("AudioEngine") << "Initing decode from vfile: " << mUUID << LL_ENDL; mInFilep = new LLVFile(gVFS, mUUID, LLAssetType::AT_SOUND); if (!mInFilep || !mInFilep->getSize()) { - llwarns << "unable to open vorbis source vfile for reading" << llendl; + LL_WARNS("AudioEngine") << "unable to open vorbis source vfile for reading" << LL_ENDL; delete mInFilep; mInFilep = NULL; return FALSE; @@ -211,7 +211,7 @@ BOOL LLVorbisDecodeState::initDecode() int r = ov_open_callbacks(mInFilep, &mVF, NULL, 0, vfs_callbacks); if(r < 0) { - llwarns << r << " Input to vorbis decode does not appear to be an Ogg bitstream: " << mUUID << llendl; + LL_WARNS("AudioEngine") << r << " Input to vorbis decode does not appear to be an Ogg bitstream: " << mUUID << LL_ENDL; return(FALSE); } @@ -229,36 +229,36 @@ BOOL LLVorbisDecodeState::initDecode() if( vi->channels < 1 || vi->channels > LLVORBIS_CLIP_MAX_CHANNELS ) { abort_decode = true; - llwarns << "Bad channel count: " << vi->channels << llendl; + LL_WARNS("AudioEngine") << "Bad channel count: " << vi->channels << LL_ENDL; } } else // !vi { abort_decode = true; - llwarns << "No default bitstream found" << llendl; + LL_WARNS("AudioEngine") << "No default bitstream found" << LL_ENDL; } if( (size_t)sample_count > LLVORBIS_CLIP_REJECT_SAMPLES || (size_t)sample_count <= 0) { abort_decode = true; - llwarns << "Illegal sample count: " << sample_count << llendl; + LL_WARNS("AudioEngine") << "Illegal sample count: " << sample_count << LL_ENDL; } if( size_guess > LLVORBIS_CLIP_REJECT_SIZE || size_guess < 0) { abort_decode = true; - llwarns << "Illegal sample size: " << size_guess << llendl; + LL_WARNS("AudioEngine") << "Illegal sample size: " << size_guess << LL_ENDL; } if( abort_decode ) { - llwarns << "Canceling initDecode. Bad asset: " << mUUID << llendl; + LL_WARNS("AudioEngine") << "Canceling initDecode. Bad asset: " << mUUID << LL_ENDL; vorbis_comment* comment = ov_comment(&mVF,-1); if (comment && comment->vendor) { - llwarns << "Bad asset encoded by: " << comment->vendor << llendl; + LL_WARNS("AudioEngine") << "Bad asset encoded by: " << comment->vendor << LL_ENDL; } delete mInFilep; mInFilep = NULL; @@ -359,12 +359,12 @@ BOOL LLVorbisDecodeState::decodeSection() { if (!mInFilep) { - llwarns << "No VFS file to decode in vorbis!" << llendl; + LL_WARNS("AudioEngine") << "No VFS file to decode in vorbis!" << LL_ENDL; return TRUE; } if (mDone) { -// llwarns << "Already done with decode, aborting!" << llendl; +// LL_WARNS("AudioEngine") << "Already done with decode, aborting!" << LL_ENDL; return TRUE; } char pcmout[4096]; /*Flawfinder: ignore*/ @@ -377,14 +377,14 @@ BOOL LLVorbisDecodeState::decodeSection() eof = TRUE; mDone = TRUE; mValid = TRUE; -// llinfos << "Vorbis EOF" << llendl; +// LL_INFOS("AudioEngine") << "Vorbis EOF" << LL_ENDL; } else if (ret < 0) { /* error in the stream. Not a problem, just reporting it in case we (the app) cares. In this case, we don't. */ - llwarns << "BAD vorbis decode in decodeSection." << llendl; + LL_WARNS("AudioEngine") << "BAD vorbis decode in decodeSection." << LL_ENDL; mValid = FALSE; mDone = TRUE; @@ -393,7 +393,7 @@ BOOL LLVorbisDecodeState::decodeSection() } else { -// llinfos << "Vorbis read " << ret << "bytes" << llendl; +// LL_INFOS("AudioEngine") << "Vorbis read " << ret << "bytes" << LL_ENDL; /* we don't bother dealing with sample rate changes, etc, but. you'll have to*/ std::copy(pcmout, pcmout+ret, std::back_inserter(mWAVBuffer)); @@ -405,7 +405,7 @@ BOOL LLVorbisDecodeState::finishDecode() { if (!isValid()) { - llwarns << "Bogus vorbis decode state for " << getUUID() << ", aborting!" << llendl; + LL_WARNS("AudioEngine") << "Bogus vorbis decode state for " << getUUID() << ", aborting!" << LL_ENDL; return TRUE; // We've finished } @@ -480,7 +480,7 @@ BOOL LLVorbisDecodeState::finishDecode() if (36 == data_length) { - llwarns << "BAD Vorbis decode in finishDecode!" << llendl; + LL_WARNS("AudioEngine") << "BAD Vorbis decode in finishDecode!" << LL_ENDL; mValid = FALSE; return TRUE; // we've finished } @@ -497,7 +497,7 @@ BOOL LLVorbisDecodeState::finishDecode() { if (mBytesRead == 0) { - llwarns << "Unable to write file in LLVorbisDecodeState::finishDecode" << llendl; + LL_WARNS("AudioEngine") << "Unable to write file in LLVorbisDecodeState::finishDecode" << LL_ENDL; mValid = FALSE; return TRUE; // we've finished } @@ -515,7 +515,7 @@ BOOL LLVorbisDecodeState::finishDecode() LLVFile output(gVFS, mUUID, LLAssetType::AT_SOUND_WAV); output.write(&mWAVBuffer[0], mWAVBuffer.size()); #endif - //llinfos << "Finished decode for " << getUUID() << llendl; + LL_DEBUGS("AudioEngine") << "Finished decode for " << getUUID() << LL_ENDL; return TRUE; } @@ -524,7 +524,7 @@ void LLVorbisDecodeState::flushBadFile() { if (mInFilep) { - llwarns << "Flushing bad vorbis file from VFS for " << mUUID << llendl; + LL_WARNS("AudioEngine") << "Flushing bad vorbis file from VFS for " << mUUID << LL_ENDL; mInFilep->remove(); } } @@ -568,7 +568,7 @@ void LLAudioDecodeMgr::Impl::processQueue(const F32 num_secs) if (mCurrentDecodep->isDone() && !mCurrentDecodep->isValid()) { // We had an error when decoding, abort. - llwarns << mCurrentDecodep->getUUID() << " has invalid vorbis data, aborting decode" << llendl; + LL_WARNS("AudioEngine") << mCurrentDecodep->getUUID() << " has invalid vorbis data, aborting decode" << LL_ENDL; mCurrentDecodep->flushBadFile(); LLAudioData *adp = gAudiop->getAudioData(mCurrentDecodep->getUUID()); adp->setHasValidData(false); @@ -590,7 +590,7 @@ void LLAudioDecodeMgr::Impl::processQueue(const F32 num_secs) LLAudioData *adp = gAudiop->getAudioData(mCurrentDecodep->getUUID()); if (!adp) { - llwarns << "Missing LLAudioData for decode of " << mCurrentDecodep->getUUID() << llendl; + LL_WARNS("AudioEngine") << "Missing LLAudioData for decode of " << mCurrentDecodep->getUUID() << LL_ENDL; } else if (mCurrentDecodep->isValid() && mCurrentDecodep->isDone()) { @@ -601,12 +601,12 @@ void LLAudioDecodeMgr::Impl::processQueue(const F32 num_secs) // At this point, we could see if anyone needs this sound immediately, but // I'm not sure that there's a reason to - we need to poll all of the playing // sounds anyway. - //llinfos << "Finished the vorbis decode, now what?" << llendl; + //LL_INFOS("AudioEngine") << "Finished the vorbis decode, now what?" << LL_ENDL; } else { adp->setHasCompletedDecode(true); - llinfos << "Vorbis decode failed for " << mCurrentDecodep->getUUID() << llendl; + LL_INFOS("AudioEngine") << "Vorbis decode failed for " << mCurrentDecodep->getUUID() << LL_ENDL; } mCurrentDecodep = NULL; } @@ -631,7 +631,7 @@ void LLAudioDecodeMgr::Impl::processQueue(const F32 num_secs) continue; } - lldebugs << "Decoding " << uuid << " from audio queue!" << llendl; + lldebugs << "Decoding " << uuid << " from audio queue!" << LL_ENDL; std::string uuid_str; std::string d_path; @@ -674,19 +674,19 @@ BOOL LLAudioDecodeMgr::addDecodeRequest(const LLUUID &uuid) if (gAudiop->hasDecodedFile(uuid)) { // Already have a decoded version, don't need to decode it. - //llinfos << "addDecodeRequest for " << uuid << " has decoded file already" << llendl; + LL_DEBUGS("AudioEngine") << "addDecodeRequest for " << uuid << " has decoded file already" << LL_ENDL; return TRUE; } if (gAssetStorage->hasLocalAsset(uuid, LLAssetType::AT_SOUND)) { // Just put it on the decode queue. - //llinfos << "addDecodeRequest for " << uuid << " has local asset file already" << llendl; + LL_DEBUGS("AudioEngine") << "addDecodeRequest for " << uuid << " has local asset file already" << LL_ENDL; mImpl->mDecodeQueue.push(uuid); return TRUE; } - //llinfos << "addDecodeRequest for " << uuid << " no file available" << llendl; + LL_DEBUGS("AudioEngine") << "addDecodeRequest for " << uuid << " no file available" << LL_ENDL; return FALSE; } diff --git a/indra/llaudio/llaudioengine.cpp b/indra/llaudio/llaudioengine.cpp index 06e752cf34..ca614f5395 100755 --- a/indra/llaudio/llaudioengine.cpp +++ b/indra/llaudio/llaudioengine.cpp @@ -123,7 +123,7 @@ bool LLAudioEngine::init(const S32 num_channels, void* userdata) // Initialize the decode manager gAudioDecodeMgrp = new LLAudioDecodeMgr; - llinfos << "LLAudioEngine::init() AudioEngine successfully initialized" << llendl; + LL_INFOS("AudioEngine") << "LLAudioEngine::init() AudioEngine successfully initialized" << LL_ENDL; return true; } @@ -308,7 +308,7 @@ void LLAudioEngine::idle(F32 max_decode_time) LLAudioChannel *channelp = getFreeChannel(max_priority); if (channelp) { - //llinfos << "Replacing source in channel due to priority!" << llendl; + LL_DEBUGS("AudioEngine") << "Replacing source in channel due to priority!" << LL_ENDL; max_sourcep->setChannel(channelp); channelp->setSource(max_sourcep); if (max_sourcep->isSyncSlave()) @@ -479,7 +479,7 @@ void LLAudioEngine::idle(F32 max_decode_time) { if (!mBuffers[i]->mInUse && mBuffers[i]->mLastUseTimer.getElapsedTimeF32() > 30.f) { - //llinfos << "Flushing unused buffer!" << llendl; + LL_DEBUGS("AudioEngine") << "Flushing unused buffer!" << LL_ENDL; mBuffers[i]->mAudioDatap->mBufferp = NULL; delete mBuffers[i]; mBuffers[i] = NULL; @@ -591,8 +591,8 @@ LLAudioBuffer * LLAudioEngine::getFreeBuffer() if (buffer_id >= 0) { - lldebugs << "Taking over unused buffer " << buffer_id << llendl; - //llinfos << "Flushing unused buffer!" << llendl; + lldebugs << "Taking over unused buffer " << buffer_id << LL_ENDL; + LL_DEBUGS("AudioEngine") << "Flushing unused buffer!" << LL_ENDL; mBuffers[buffer_id]->mAudioDatap->mBufferp = NULL; delete mBuffers[buffer_id]; mBuffers[buffer_id] = createBuffer(); @@ -673,6 +673,8 @@ void LLAudioEngine::cleanupBuffer(LLAudioBuffer *bufferp) bool LLAudioEngine::preloadSound(const LLUUID &uuid) { + LL_DEBUGS("AudioEngine")<<"( "<<uuid<<" )"<<LL_ENDL; + gAudiop->getAudioData(uuid); // We don't care about the return value, this is just to make sure // that we have an entry, which will mean that the audio engine knows about this @@ -684,7 +686,7 @@ bool LLAudioEngine::preloadSound(const LLUUID &uuid) // At some point we need to have the audio/asset system check the static VFS // before it goes off and fetches stuff from the server. - //llwarns << "Used internal preload for non-local sound" << llendl; + LL_DEBUGS("AudioEngine") << "Used internal preload for non-local sound "<< uuid << LL_ENDL; return false; } @@ -815,7 +817,7 @@ void LLAudioEngine::triggerSound(const LLUUID &audio_uuid, const LLUUID& owner_i const S32 type, const LLVector3d &pos_global) { // Create a new source (since this can't be associated with an existing source. - //llinfos << "Localized: " << audio_uuid << llendl; + LL_DEBUGS("AudioEngine") << "Localized: " << audio_uuid << LL_ENDL; if (mMuted) { @@ -982,11 +984,14 @@ void LLAudioEngine::cleanupAudioSource(LLAudioSource *asp) iter = mAllSources.find(asp->getID()); if (iter == mAllSources.end()) { - llwarns << "Cleaning up unknown audio source!" << llendl; - return; + LL_WARNS("AudioEngine") << "Cleaning up unknown audio source!" << LL_ENDL; + } + else + { + LL_DEBUGS("AudioEngine") << "Cleaning up audio sources for "<< asp->getID() <<LL_ENDL; + delete asp; + mAllSources.erase(iter); } - delete asp; - mAllSources.erase(iter); } @@ -1013,16 +1018,18 @@ bool LLAudioEngine::hasDecodedFile(const LLUUID &uuid) bool LLAudioEngine::hasLocalFile(const LLUUID &uuid) { // See if it's in the VFS. - return gVFS->getExists(uuid, LLAssetType::AT_SOUND); + bool have_local = gVFS->getExists(uuid, LLAssetType::AT_SOUND); + LL_DEBUGS("AudioEngine") << "sound uuid "<<uuid<<" exists in VFS"<<LL_ENDL; + return have_local; } void LLAudioEngine::startNextTransfer() { - //llinfos << "LLAudioEngine::startNextTransfer()" << llendl; + //LL_DEBUGS("AudioEngine") << "LLAudioEngine::startNextTransfer()" << LL_ENDL; if (mCurrentTransfer.notNull() || getMuted()) { - //llinfos << "Transfer in progress, aborting" << llendl; + //LL_DEBUGS("AudioEngine") << "Transfer in progress, aborting" << LL_ENDL; return; } @@ -1203,7 +1210,7 @@ void LLAudioEngine::startNextTransfer() if (asset_id.notNull()) { - llinfos << "Getting asset data for: " << asset_id << llendl; + LL_INFOS("AudioEngine") << "Getting audio asset data for: " << asset_id << LL_ENDL; gAudiop->mCurrentTransfer = asset_id; gAudiop->mCurrentTransferTimer.reset(); gAssetStorage->getAssetData(asset_id, LLAssetType::AT_SOUND, @@ -1211,7 +1218,7 @@ void LLAudioEngine::startNextTransfer() } else { - //llinfos << "No pending transfers?" << llendl; + //LL_DEBUGS("AudioEngine") << "No pending transfers?" << LL_ENDL; } } @@ -1221,7 +1228,7 @@ void LLAudioEngine::assetCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::E { if (result_code) { - llinfos << "Boom, error in audio file transfer: " << LLAssetStorage::getErrorString( result_code ) << " (" << result_code << ")" << llendl; + LL_INFOS("AudioEngine") << "Boom, error in audio file transfer: " << LLAssetStorage::getErrorString( result_code ) << " (" << result_code << ")" << LL_ENDL; // Need to mark data as bad to avoid constant rerequests. LLAudioData *adp = gAudiop->getAudioData(uuid); if (adp) @@ -1238,11 +1245,11 @@ void LLAudioEngine::assetCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::E if (!adp) { // Should never happen - llwarns << "Got asset callback without audio data for " << uuid << llendl; + LL_WARNS("AudioEngine") << "Got asset callback without audio data for " << uuid << LL_ENDL; } else { - // llinfos << "Got asset callback with good audio data for " << uuid << ", making decode request" << llendl; + LL_DEBUGS("AudioEngine") << "Got asset callback with good audio data for " << uuid << ", making decode request" << LL_ENDL; adp->setHasValidData(true); adp->setHasLocalData(true); gAudioDecodeMgrp->addDecodeRequest(uuid); @@ -1321,7 +1328,7 @@ void LLAudioSource::update() } else if (adp->hasCompletedDecode()) // Only mark corrupted after decode is done { - llwarns << "Marking LLAudioSource corrupted for " << adp->getID() << llendl; + LL_WARNS("AudioEngine") << "Marking LLAudioSource corrupted for " << adp->getID() << LL_ENDL; mCorrupted = true ; } } @@ -1357,7 +1364,6 @@ bool LLAudioSource::setupChannel() if (!adp->getBuffer()) { // We're not ready to play back the sound yet, so don't try and allocate a channel for it. - //llwarns << "Aborting, no buffer" << llendl; return false; } @@ -1375,7 +1381,7 @@ bool LLAudioSource::setupChannel() // Ugh, we don't have any free channels. // Now we have to reprioritize. // For now, just don't play the sound. - //llwarns << "Aborting, no free channels" << llendl; + //llwarns << "Aborting, no free channels" << LL_ENDL; return false; } @@ -1474,7 +1480,7 @@ bool LLAudioSource::isDone() const { // We don't have a channel assigned, and it's been // over 15 seconds since we tried to play it. Don't bother. - //llinfos << "No channel assigned, source is done" << llendl; + LL_DEBUGS("AudioEngine") << "No channel assigned, source is done" << LL_ENDL; return true; } else @@ -1640,7 +1646,7 @@ LLAudioChannel::LLAudioChannel() : LLAudioChannel::~LLAudioChannel() { // Need to disconnect any sources which are using this channel. - //llinfos << "Cleaning up audio channel" << llendl; + LL_DEBUGS("AudioEngine") << "Cleaning up audio channel" << LL_ENDL; if (mCurrentSourcep) { mCurrentSourcep->setChannel(NULL); @@ -1651,29 +1657,29 @@ LLAudioChannel::~LLAudioChannel() void LLAudioChannel::setSource(LLAudioSource *sourcep) { - //llinfos << this << ": setSource(" << sourcep << ")" << llendl; - if (!sourcep) { // Clearing the source for this channel, don't need to do anything. - //llinfos << "Clearing source for channel" << llendl; + LL_DEBUGS("AudioEngine") << "Clearing source" << ( mCurrentSourcep ? mCurrentSourcep->getID() : LLUUID::null ) << LL_ENDL; cleanup(); mCurrentSourcep = NULL; mWaiting = false; - return; } - - if (sourcep == mCurrentSourcep) + else { - // Don't reallocate the channel, this will make FMOD goofy. - //llinfos << "Calling setSource with same source!" << llendl; - } - - mCurrentSourcep = sourcep; + LL_DEBUGS("AudioEngine") << "( id: " << sourcep->getID() << ")" << LL_ENDL; + if (sourcep == mCurrentSourcep) + { + // Don't reallocate the channel, this will make FMOD goofy. + //LL_DEBUGS("AudioEngine") << "Calling setSource with same source!" << LL_ENDL; + } - updateBuffer(); - update3DPosition(); + mCurrentSourcep = sourcep; + + updateBuffer(); + update3DPosition(); + } } @@ -1768,7 +1774,7 @@ bool LLAudioData::load() if (mBufferp) { // We already have this sound in a buffer, don't do anything. - llinfos << "Already have a buffer for this sound, don't bother loading!" << llendl; + LL_INFOS("AudioEngine") << "Already have a buffer for this sound, don't bother loading!" << LL_ENDL; return true; } @@ -1776,7 +1782,7 @@ bool LLAudioData::load() if (!mBufferp) { // No free buffers, abort. - llinfos << "Not able to allocate a new audio buffer, aborting." << llendl; + LL_INFOS("AudioEngine") << "Not able to allocate a new audio buffer, aborting." << LL_ENDL; return true; } diff --git a/indra/llcommon/llavatarname.cpp b/indra/llcommon/llavatarname.cpp index 642bd82e90..d12f157910 100755 --- a/indra/llcommon/llavatarname.cpp +++ b/indra/llcommon/llavatarname.cpp @@ -44,6 +44,7 @@ static const std::string DISPLAY_NAME_EXPIRES("display_name_expires"); static const std::string DISPLAY_NAME_NEXT_UPDATE("display_name_next_update"); bool LLAvatarName::sUseDisplayNames = true; +bool LLAvatarName::sUseUsernames = true; // Minimum time-to-live (in seconds) for a name entry. // Avatar name should always guarantee to expire reasonably soon by default @@ -81,6 +82,16 @@ bool LLAvatarName::useDisplayNames() return sUseDisplayNames; } +void LLAvatarName::setUseUsernames(bool use) +{ + sUseUsernames = use; +} + +bool LLAvatarName::useUsernames() +{ + return sUseUsernames; +} + LLSD LLAvatarName::asLLSD() const { LLSD sd; @@ -168,7 +179,11 @@ std::string LLAvatarName::getCompleteName() const } else { - name = mDisplayName + " (" + mUsername + ")"; + name = mDisplayName; + if(sUseUsernames) + { + name += " (" + mUsername + ")"; + } } } else diff --git a/indra/llcommon/llavatarname.h b/indra/llcommon/llavatarname.h index 5d2fccc5ba..1cb3ae421f 100755 --- a/indra/llcommon/llavatarname.h +++ b/indra/llcommon/llavatarname.h @@ -54,6 +54,9 @@ public: static void setUseDisplayNames(bool use); static bool useDisplayNames(); + static void setUseUsernames(bool use); + static bool useUsernames(); + // A name object is valid if not temporary and not yet expired (default is expiration not checked) bool isValidName(F64 max_unrefreshed = 0.0f) const { return !mIsTemporaryName && (mExpires >= max_unrefreshed); } @@ -128,6 +131,9 @@ private: // Global flag indicating if display name should be used or not // This will affect the output of the high level "get" methods static bool sUseDisplayNames; + + // Flag indicating if username should be shown after display name or not + static bool sUseUsernames; }; #endif diff --git a/indra/llcommon/llsd.cpp b/indra/llcommon/llsd.cpp index 8276ec836a..f962485284 100755 --- a/indra/llcommon/llsd.cpp +++ b/indra/llcommon/llsd.cpp @@ -506,6 +506,8 @@ namespace LLSD::array_iterator beginArray() { return mData.begin(); } LLSD::array_iterator endArray() { return mData.end(); } + LLSD::reverse_array_iterator rbeginArray() { return mData.rbegin(); } + LLSD::reverse_array_iterator rendArray() { return mData.rend(); } virtual LLSD::array_const_iterator beginArray() const { return mData.begin(); } virtual LLSD::array_const_iterator endArray() const { return mData.end(); } @@ -947,6 +949,9 @@ LLSD::array_iterator LLSD::endArray() { return makeArray(impl).endArray(); } LLSD::array_const_iterator LLSD::beginArray() const{ return safe(impl).beginArray(); } LLSD::array_const_iterator LLSD::endArray() const { return safe(impl).endArray(); } +LLSD::reverse_array_iterator LLSD::rbeginArray() { return makeArray(impl).rbeginArray(); } +LLSD::reverse_array_iterator LLSD::rendArray() { return makeArray(impl).rendArray(); } + namespace llsd { diff --git a/indra/llcommon/llsd.h b/indra/llcommon/llsd.h index 5eb69059ac..deb87d7497 100755 --- a/indra/llcommon/llsd.h +++ b/indra/llcommon/llsd.h @@ -320,11 +320,15 @@ public: typedef std::vector<LLSD>::iterator array_iterator; typedef std::vector<LLSD>::const_iterator array_const_iterator; + typedef std::vector<LLSD>::reverse_iterator reverse_array_iterator; array_iterator beginArray(); array_iterator endArray(); array_const_iterator beginArray() const; array_const_iterator endArray() const; + + reverse_array_iterator rbeginArray(); + reverse_array_iterator rendArray(); //@} /** @name Type Testing */ diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp index 0730b2ed8b..e63045659e 100755 --- a/indra/llcommon/llsys.cpp +++ b/indra/llcommon/llsys.cpp @@ -114,6 +114,9 @@ static const F32 MEM_INFO_THROTTLE = 20; static const F32 MEM_INFO_WINDOW = 10*60; #if LL_WINDOWS +// We cannot trust GetVersionEx function on Win8.1 , we should check this value when creating OS string +static const U32 WINNT_WINBLUE = 0x0603; + #ifndef DLLVERSIONINFO typedef struct _DllVersionInfo { @@ -214,6 +217,26 @@ static bool regex_search_no_exc(const S& string, M& match, const R& regex) } } +#if LL_WINDOWS +// GetVersionEx should not works correct with Windows 8.1 and the later version. We need to check this case +static bool check_for_version(WORD wMajorVersion, WORD wMinorVersion, WORD wServicePackMajor) +{ + OSVERSIONINFOEXW osvi = { sizeof(osvi), 0, 0, 0, 0, {0}, 0, 0 }; + DWORDLONG const dwlConditionMask = VerSetConditionMask( + VerSetConditionMask( + VerSetConditionMask( + 0, VER_MAJORVERSION, VER_GREATER_EQUAL), + VER_MINORVERSION, VER_GREATER_EQUAL), + VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL); + + osvi.dwMajorVersion = wMajorVersion; + osvi.dwMinorVersion = wMinorVersion; + osvi.wServicePackMajor = wServicePackMajor; + + return VerifyVersionInfoW(&osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask) != FALSE; +} +#endif + LLOSInfo::LLOSInfo() : mMajorVer(0), mMinorVer(0), mBuild(0), mOSVersionString("") @@ -222,6 +245,7 @@ LLOSInfo::LLOSInfo() : #if LL_WINDOWS OSVERSIONINFOEX osvi; BOOL bOsVersionInfoEx; + BOOL bShouldUseShellVersion = false; // Try calling GetVersionEx using the OSVERSIONINFOEX structure. ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); @@ -284,11 +308,19 @@ LLOSInfo::LLOSInfo() : } else if(osvi.dwMinorVersion == 2) { + if (check_for_version(HIBYTE(WINNT_WINBLUE), LOBYTE(WINNT_WINBLUE), 0)) + { + mOSStringSimple = "Microsoft Windows 8.1 "; + bShouldUseShellVersion = true; // GetVersionEx failed, going to use shell version + } + else + { if(osvi.wProductType == VER_NT_WORKSTATION) mOSStringSimple = "Microsoft Windows 8 "; else mOSStringSimple = "Windows Server 2012 "; } + } ///get native system info if available.. typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO); ///function pointer for loading GetNativeSystemInfo @@ -354,9 +386,8 @@ LLOSInfo::LLOSInfo() : } else { - tmpstr = llformat("%s (Build %d)", - csdversion.c_str(), - (osvi.dwBuildNumber & 0xffff)); + tmpstr = !bShouldUseShellVersion ? llformat("%s (Build %d)", csdversion.c_str(), (osvi.dwBuildNumber & 0xffff)): + llformat("%s (Build %d)", csdversion.c_str(), shell32_build); } mOSString = mOSStringSimple + tmpstr; @@ -392,7 +423,7 @@ LLOSInfo::LLOSInfo() : std::string compatibility_mode; if(got_shell32_version) { - if(osvi.dwMajorVersion != shell32_major || osvi.dwMinorVersion != shell32_minor) + if((osvi.dwMajorVersion != shell32_major || osvi.dwMinorVersion != shell32_minor) && !bShouldUseShellVersion) { compatibility_mode = llformat(" compatibility mode. real ver: %d.%d (Build %d)", shell32_major, diff --git a/indra/llinventory/llparcel.cpp b/indra/llinventory/llparcel.cpp index 37c603348e..5eb5fb442d 100755 --- a/indra/llinventory/llparcel.cpp +++ b/indra/llinventory/llparcel.cpp @@ -414,117 +414,6 @@ BOOL LLParcel::allowTerraformBy(const LLUUID &agent_id) const } -bool LLParcel::isAgentBlockedFromParcel(LLParcel* parcelp, - const LLUUID& agent_id, - const uuid_vec_t& group_ids, - const BOOL is_agent_identified, - const BOOL is_agent_transacted, - const BOOL is_agent_ageverified) -{ - S32 current_group_access = parcelp->blockAccess(agent_id, LLUUID::null, is_agent_identified, is_agent_transacted, is_agent_ageverified); - S32 count; - bool is_allowed = (current_group_access == BA_ALLOWED) ? true: false; - LLUUID group_id; - - count = group_ids.size(); - for (int i = 0; i < count && !is_allowed; i++) - { - group_id = group_ids[i]; - current_group_access = parcelp->blockAccess(agent_id, group_id, is_agent_identified, is_agent_transacted, is_agent_ageverified); - - if (current_group_access == BA_ALLOWED) is_allowed = true; - } - - return !is_allowed; -} - -BOOL LLParcel::isAgentBanned(const LLUUID& agent_id) const -{ - // Test ban list - if (mBanList.find(agent_id) != mBanList.end()) - { - return TRUE; - } - - return FALSE; -} - -S32 LLParcel::blockAccess(const LLUUID& agent_id, const LLUUID& group_id, - const BOOL is_agent_identified, - const BOOL is_agent_transacted, - const BOOL is_agent_ageverified) const -{ - // Test ban list - if (isAgentBanned(agent_id)) - { - return BA_BANNED; - } - - // Always allow owner on (unless he banned himself, useful for - // testing). We will also allow estate owners/managers in if they - // are not explicitly banned. - if (agent_id == mOwnerID) - { - return BA_ALLOWED; - } - - // Special case when using pass list where group access is being restricted but not - // using access list. In this case group members are allowed only if they buy a pass. - // We return BA_NOT_IN_LIST if not in list - BOOL passWithGroup = getParcelFlag(PF_USE_PASS_LIST) && !getParcelFlag(PF_USE_ACCESS_LIST) - && getParcelFlag(PF_USE_ACCESS_GROUP) && !mGroupID.isNull() && group_id == mGroupID; - - - // Test group list - if (getParcelFlag(PF_USE_ACCESS_GROUP) - && !mGroupID.isNull() - && group_id == mGroupID - && !passWithGroup) - { - return BA_ALLOWED; - } - - // Test access list - if (getParcelFlag(PF_USE_ACCESS_LIST) || passWithGroup ) - { - if (mAccessList.find(agent_id) != mAccessList.end()) - { - return BA_ALLOWED; - } - - return BA_NOT_ON_LIST; - } - - // If we're not doing any other limitations, all users - // can enter, unless - if ( !getParcelFlag(PF_USE_ACCESS_GROUP) - && !getParcelFlag(PF_USE_ACCESS_LIST)) - { - //If the land is group owned, and you are in the group, bypass these checks - if(getIsGroupOwned() && group_id == mGroupID) - { - return BA_ALLOWED; - } - - // Test for "payment" access levels - // Anonymous - No Payment Info on File - if(getParcelFlag(PF_DENY_ANONYMOUS) && !is_agent_identified && !is_agent_transacted) - { - return BA_NO_ACCESS_LEVEL; - } - // AgeUnverified - Not Age Verified - if(getParcelFlag(PF_DENY_AGEUNVERIFIED) && !is_agent_ageverified) - { - return BA_NOT_AGE_VERIFIED; - } - - return BA_ALLOWED; - } - - return BA_NOT_IN_GROUP; - -} - void LLParcel::setArea(S32 area, S32 sim_object_limit) { diff --git a/indra/llinventory/llparcel.h b/indra/llinventory/llparcel.h index 0279e8bef9..c4363a48df 100755 --- a/indra/llinventory/llparcel.h +++ b/indra/llinventory/llparcel.h @@ -527,23 +527,6 @@ public: // Can this agent change the shape of the land? BOOL allowTerraformBy(const LLUUID &agent_id) const; - // Returns 0 if access is OK, otherwise a BA_ return code above. - S32 blockAccess(const LLUUID& agent_id, - const LLUUID& group_id, - const BOOL is_agent_identified, - const BOOL is_agent_transacted, - const BOOL is_agent_ageverified) const; - - // Only checks if the agent is explicitly banned from this parcel - BOOL isAgentBanned(const LLUUID& agent_id) const; - - static bool isAgentBlockedFromParcel(LLParcel* parcelp, - const LLUUID& agent_id, - const uuid_vec_t& group_ids, - const BOOL is_agent_identified, - const BOOL is_agent_transacted, - const BOOL is_agent_ageverified); - bool operator==(const LLParcel &rhs) const; // Calculate rent - area * rent * discount rate diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp index 2b865b4a8e..cc5742ff7a 100755 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -166,7 +166,8 @@ void calc_tangent_from_triangle( F32 rd = s1*t2-s2*t1; - float r = ((rd*rd) > FLT_EPSILON) ? 1.0F / rd : 1024.f; //some made up large ratio for division by zero + float r = ((rd*rd) > FLT_EPSILON) ? (1.0f / rd) + : ((rd > 0.0f) ? 1024.f : -1024.f); //some made up large ratio for division by zero llassert(llfinite(r)); llassert(!llisnan(r)); @@ -6746,7 +6747,7 @@ BOOL LLVolumeFace::createSide(LLVolume* volume, BOOL partial_build) return TRUE; } -//adapted from Lengyel, Eric. “Computing Tangent Space Basis Vectors for an Arbitrary Mesh”. Terathon Software 3D Graphics Library, 2001. http://www.terathon.com/code/tangent.html +//adapted from Lengyel, Eric. "Computing Tangent Space Basis Vectors for an Arbitrary Mesh". Terathon Software 3D Graphics Library, 2001. http://www.terathon.com/code/tangent.html void CalculateTangentArray(U32 vertexCount, const LLVector4a *vertex, const LLVector4a *normal, const LLVector2 *texcoord, U32 triangleCount, const U16* index_array, LLVector4a *tangent) { @@ -6789,7 +6790,8 @@ void CalculateTangentArray(U32 vertexCount, const LLVector4a *vertex, const LLVe F32 rd = s1*t2-s2*t1; - float r = ((rd*rd) > FLT_EPSILON) ? 1.0F / rd : 1024.f; //some made up large ratio for division by zero + float r = ((rd*rd) > FLT_EPSILON) ? (1.0f / rd) + : ((rd > 0.0f) ? 1024.f : -1024.f); //some made up large ratio for division by zero llassert(llfinite(r)); llassert(!llisnan(r)); diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp index 9a68093427..31dd264021 100755 --- a/indra/llmessage/llavatarnamecache.cpp +++ b/indra/llmessage/llavatarnamecache.cpp @@ -680,6 +680,15 @@ void LLAvatarNameCache::setUseDisplayNames(bool use) } } +void LLAvatarNameCache::setUseUsernames(bool use) +{ + if (use != LLAvatarName::useUsernames()) + { + LLAvatarName::setUseUsernames(use); + mUseDisplayNamesSignal(); + } +} + void LLAvatarNameCache::erase(const LLUUID& agent_id) { sCache.erase(agent_id); diff --git a/indra/llmessage/llavatarnamecache.h b/indra/llmessage/llavatarnamecache.h index 2a8eb46187..3a19cee3ed 100755 --- a/indra/llmessage/llavatarnamecache.h +++ b/indra/llmessage/llavatarnamecache.h @@ -80,6 +80,8 @@ namespace LLAvatarNameCache // Set display name: flips the switch and triggers the callbacks. void setUseDisplayNames(bool use); + void setUseUsernames(bool use); + void insert(const LLUUID& agent_id, const LLAvatarName& av_name); void erase(const LLUUID& agent_id); diff --git a/indra/llmessage/lltemplatemessagereader.cpp b/indra/llmessage/lltemplatemessagereader.cpp index ab91f74abe..94bc7cb045 100755 --- a/indra/llmessage/lltemplatemessagereader.cpp +++ b/indra/llmessage/lltemplatemessagereader.cpp @@ -91,15 +91,17 @@ void LLTemplateMessageReader::getData(const char *blockname, const char *varname } LLMsgBlkData *msg_block_data = iter->second; - LLMsgVarData& vardata = msg_block_data->mMemberVarData[vnamep]; + LLMsgBlkData::msg_var_data_map_t &var_data_map = msg_block_data->mMemberVarData; - if (!vardata.getName()) + if (var_data_map.find(vnamep) == var_data_map.end()) { llerrs << "Variable "<< vnamep << " not in message " << mCurrentRMessageData->mName<< " block " << bnamep << llendl; return; } + LLMsgVarData& vardata = msg_block_data->mMemberVarData[vnamep]; + if (size && size != vardata.getSize()) { llerrs << "Msg " << mCurrentRMessageData->mName diff --git a/indra/llmessage/message.cpp b/indra/llmessage/message.cpp index ae95087377..c3642ccbe8 100755 --- a/indra/llmessage/message.cpp +++ b/indra/llmessage/message.cpp @@ -3032,12 +3032,23 @@ void LLMessageSystem::setExceptionFunc(EMessageException e, BOOL LLMessageSystem::callExceptionFunc(EMessageException exception) { callbacks_t::iterator it = mExceptionCallbacks.find(exception); - if(it != mExceptionCallbacks.end()) + if(it == mExceptionCallbacks.end()) { - ((*it).second.first)(this, (*it).second.second,exception); - return TRUE; + return FALSE; } - return FALSE; + + exception_t& ex = it->second; + msg_exception_callback ex_cb = ex.first; + + if (!ex_cb) + { + LL_WARNS("Messaging") << "LLMessageSystem::callExceptionFunc: bad message exception callback." << llendl; + return FALSE; + } + + (ex_cb)(this, ex.second, exception); + + return TRUE; } void LLMessageSystem::setTimingFunc(msg_timing_callback func, void* data) diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp index 35620bb656..1c50a51d02 100755 --- a/indra/llrender/llglslshader.cpp +++ b/indra/llrender/llglslshader.cpp @@ -717,7 +717,14 @@ BOOL LLGLSLShader::mapUniforms(const vector<LLStaticHashedString> * uniforms) BOOL LLGLSLShader::link(BOOL suppress_errors) { - return LLShaderMgr::instance()->linkProgramObject(mProgramObject, suppress_errors); + BOOL success = LLShaderMgr::instance()->linkProgramObject(mProgramObject, suppress_errors); + + if (!suppress_errors) + { + LLShaderMgr::instance()->dumpObjectLog(mProgramObject, !success, mName); + } + + return success; } void LLGLSLShader::bind() diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index 0ac30b4d63..b481cf7095 100755 --- a/indra/llrender/llrender.cpp +++ b/indra/llrender/llrender.cpp @@ -2196,7 +2196,15 @@ void LLRender::texCoord2fv(const GLfloat* tc) void LLRender::color4ub(const GLubyte& r, const GLubyte& g, const GLubyte& b, const GLubyte& a) { - mColorsp[mCount] = LLColor4U(r,g,b,a); + if (!LLGLSLShader::sCurBoundShaderPtr || + LLGLSLShader::sCurBoundShaderPtr->mAttributeMask & LLVertexBuffer::MAP_COLOR) + { + mColorsp[mCount] = LLColor4U(r,g,b,a); + } + else + { //not using shaders or shader reads color from a uniform + diffuseColor4ub(r,g,b,a); + } } void LLRender::color4ubv(const GLubyte* c) { diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index d230574752..6e04fc82df 100755 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -505,9 +505,25 @@ static std::string get_object_log(GLhandleARB ret) return res; } -void LLShaderMgr::dumpObjectLog(GLhandleARB ret, BOOL warns) +void LLShaderMgr::dumpObjectLog(GLhandleARB ret, BOOL warns, const std::string& filename) { std::string log = get_object_log(ret); + + if (log.length() > 0 || warns) + { + if (!filename.empty()) + { + if (warns) + { + LL_WARNS("ShaderLoading") << "From " << filename << ":" << LL_ENDL; + } + else + { + LL_INFOS("ShaderLoading") << "From " << filename << ":" << LL_ENDL; + } + } + } + if ( log.length() > 0 ) { if (warns) @@ -558,7 +574,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade file = LLFile::fopen(fname.str(), "r"); /* Flawfinder: ignore */ if (file) { - LL_INFOS("ShaderLoading") << "Loading file: shaders/class" << gpu_class << "/" << filename << " (Want class " << gpu_class << ")" << LL_ENDL; + LL_DEBUGS("ShaderLoading") << "Loading file: shaders/class" << gpu_class << "/" << filename << " (Want class " << gpu_class << ")" << LL_ENDL; break; // done } } @@ -812,8 +828,8 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade if (error != GL_NO_ERROR || success == GL_FALSE) { //an error occured, print log - LL_WARNS("ShaderLoading") << "GLSL Compilation Error: (" << error << ") in " << filename << LL_ENDL; - dumpObjectLog(ret); + LL_WARNS("ShaderLoading") << "GLSL Compilation Error:" << LL_ENDL; + dumpObjectLog(ret, TRUE, filename); #if LL_WINDOWS std::stringstream ostr; //dump shader source for debugging @@ -938,11 +954,6 @@ BOOL LLShaderMgr::linkProgramObject(GLhandleARB obj, BOOL suppress_errors) suppress_errors = FALSE; } #endif - if (!suppress_errors) - { - dumpObjectLog(obj, !success); - } - return success; } @@ -1146,6 +1157,7 @@ void LLShaderMgr::initAttribsAndUniforms() mReservedUniforms.push_back("env_intensity"); mReservedUniforms.push_back("matrixPalette"); + mReservedUniforms.push_back("translationPalette"); mReservedUniforms.push_back("screenTex"); mReservedUniforms.push_back("screenDepth"); diff --git a/indra/llrender/llshadermgr.h b/indra/llrender/llshadermgr.h index 51c27fc8b6..394b38f832 100755 --- a/indra/llrender/llshadermgr.h +++ b/indra/llrender/llshadermgr.h @@ -176,6 +176,7 @@ public: ENVIRONMENT_INTENSITY, AVATAR_MATRIX, + AVATAR_TRANSLATION, WATER_SCREENTEX, WATER_SCREENDEPTH, @@ -224,7 +225,7 @@ DISPLAY_GAMMA, virtual void initAttribsAndUniforms(void); BOOL attachShaderFeatures(LLGLSLShader * shader); - void dumpObjectLog(GLhandleARB ret, BOOL warns = TRUE); + void dumpObjectLog(GLhandleARB ret, BOOL warns = TRUE, const std::string& filename = ""); BOOL linkProgramObject(GLhandleARB obj, BOOL suppress_errors = FALSE); BOOL validateProgramObject(GLhandleARB obj); GLhandleARB loadShaderFile(const std::string& filename, S32 & shader_level, GLenum type, boost::unordered_map<std::string, std::string>* defines = NULL, S32 texture_index_channels = -1); diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index 50ac511d18..3cfe5ac57f 100755 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -641,7 +641,7 @@ void LLButton::draw() bool use_glow_effect = FALSE; LLColor4 highlighting_color = LLColor4::white; - LLColor4 glow_color; + LLColor4 glow_color = LLColor4::white; LLRender::eBlendType glow_type = LLRender::BT_ADD_WITH_ALPHA; LLUIImage* imagep = NULL; diff --git a/indra/llui/llcombobox.cpp b/indra/llui/llcombobox.cpp index d4e14d9419..56be52f69a 100755 --- a/indra/llui/llcombobox.cpp +++ b/indra/llui/llcombobox.cpp @@ -534,6 +534,13 @@ void LLComboBox::createLineEditor(const LLComboBox::Params& p) } } +void LLComboBox::setLeftTextPadding(S32 pad) +{ + S32 left_pad, right_pad; + mTextEntry->getTextPadding(&left_pad, &right_pad); + mTextEntry->setTextPadding(pad, right_pad); +} + void* LLComboBox::getCurrentUserdata() { LLScrollListItem* item = mList->getFirstSelected(); diff --git a/indra/llui/llcombobox.h b/indra/llui/llcombobox.h index 64dbaea306..67393504e7 100755 --- a/indra/llui/llcombobox.h +++ b/indra/llui/llcombobox.h @@ -191,6 +191,8 @@ public: //======================================================================== + void setLeftTextPadding(S32 pad); + void* getCurrentUserdata(); void setPrearrangeCallback( commit_callback_t cb ) { mPrearrangeCallback = cb; } diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 182c5cfd8a..acf38afe32 100755 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -1821,7 +1821,7 @@ void LLFloater::onClickClose( LLFloater* self ) self->onClickCloseBtn(); } -void LLFloater::onClickCloseBtn() +void LLFloater::onClickCloseBtn(bool app_quitting) { closeFloater(false); } @@ -1951,6 +1951,7 @@ void LLFloater::drawShadow(LLPanel* panel) void LLFloater::updateTransparency(LLView* view, ETypeTransparency transparency_type) { + if (!view) return; child_list_t children = *view->getChildList(); child_list_t::iterator it = children.begin(); @@ -2742,8 +2743,6 @@ void LLFloaterView::refresh() } } -const S32 FLOATER_MIN_VISIBLE_PIXELS = 16; - void LLFloaterView::adjustToFitScreen(LLFloater* floater, BOOL allow_partial_outside, BOOL snap_in_toolbars/* = false*/) { if (floater->getParent() != this) @@ -2796,11 +2795,32 @@ void LLFloaterView::adjustToFitScreen(LLFloater* floater, BOOL allow_partial_out } } + const LLRect& left_toolbar_rect = mToolbarRects[LLToolBarEnums::TOOLBAR_LEFT]; + const LLRect& bottom_toolbar_rect = mToolbarRects[LLToolBarEnums::TOOLBAR_BOTTOM]; + const LLRect& right_toolbar_rect = mToolbarRects[LLToolBarEnums::TOOLBAR_RIGHT]; + const LLRect& floater_rect = floater->getRect(); + + S32 delta_left = left_toolbar_rect.notEmpty() ? left_toolbar_rect.mRight - floater_rect.mRight : 0; + S32 delta_bottom = bottom_toolbar_rect.notEmpty() ? bottom_toolbar_rect.mTop - floater_rect.mTop : 0; + S32 delta_right = right_toolbar_rect.notEmpty() ? right_toolbar_rect.mLeft - floater_rect.mLeft : 0; + // move window fully onscreen if (floater->translateIntoRect( snap_in_toolbars ? getSnapRect() : gFloaterView->getRect(), allow_partial_outside ? FLOATER_MIN_VISIBLE_PIXELS : S32_MAX )) { floater->clearSnapTarget(); } + else if (delta_left > 0 && floater_rect.mTop < left_toolbar_rect.mTop && floater_rect.mBottom > left_toolbar_rect.mBottom) + { + floater->translate(delta_left, 0); + } + else if (delta_bottom > 0 && floater_rect.mLeft > bottom_toolbar_rect.mLeft && floater_rect.mRight < bottom_toolbar_rect.mRight) + { + floater->translate(0, delta_bottom); + } + else if (delta_right < 0 && floater_rect.mTop < right_toolbar_rect.mTop && floater_rect.mBottom > right_toolbar_rect.mBottom) + { + floater->translate(delta_right, 0); + } } void LLFloaterView::draw() @@ -3000,6 +3020,14 @@ void LLFloaterView::popVisibleAll(const skip_list_t& skip_list) LLFloaterReg::blockShowFloaters(false); } +void LLFloaterView::setToolbarRect(LLToolBarEnums::EToolBarLocation tb, const LLRect& toolbar_rect) +{ + if (tb < LLToolBarEnums::TOOLBAR_COUNT) + { + mToolbarRects[tb] = toolbar_rect; + } +} + void LLFloater::setInstanceName(const std::string& name) { if (name != mInstanceName) diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index 953689498f..ccaae1d02b 100755 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -32,6 +32,7 @@ #define LL_FLOATER_H #include "llpanel.h" +#include "lltoolbar.h" #include "lluuid.h" //#include "llnotificationsutil.h" #include <set> @@ -390,7 +391,7 @@ protected: void destroy(); // Don't call this directly. You probably want to call closeFloater() - virtual void onClickCloseBtn(); + virtual void onClickCloseBtn(bool app_quitting = false); virtual void updateTitleButtons(); @@ -514,6 +515,8 @@ private: // LLFloaterView // Parent of all floating panels +const S32 FLOATER_MIN_VISIBLE_PIXELS = 16; + class LLFloaterView : public LLUICtrl { public: @@ -572,10 +575,13 @@ public: void setFloaterSnapView(LLHandle<LLView> snap_view) {mSnapView = snap_view; } LLFloater* getFrontmostClosableFloater(); + void setToolbarRect(LLToolBarEnums::EToolBarLocation tb, const LLRect& toolbar_rect); + private: void hiddenFloaterClosed(LLFloater* floater); LLRect mLastSnapRect; + LLRect mToolbarRects[LLToolBarEnums::TOOLBAR_COUNT]; LLHandle<LLView> mSnapView; BOOL mFocusCycleMode; S32 mSnapOffsetBottom; diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp index f061313645..aa2343226c 100644 --- a/indra/llui/llfolderviewitem.cpp +++ b/indra/llui/llfolderviewitem.cpp @@ -526,7 +526,7 @@ BOOL LLFolderViewItem::handleMouseDown( S32 x, S32 y, MASK mask ) BOOL LLFolderViewItem::handleHover( S32 x, S32 y, MASK mask ) { - static LLCachedControl<S32> drag_and_drop_threshold(*LLUI::sSettingGroups["config"],"DragAndDropDistanceThreshold"); + static LLCachedControl<S32> drag_and_drop_threshold(*LLUI::sSettingGroups["config"],"DragAndDropDistanceThreshold", 3); mIsMouseOverTitle = (y > (getRect().getHeight() - mItemHeight)); diff --git a/indra/llui/llmodaldialog.cpp b/indra/llui/llmodaldialog.cpp index 8c2be44904..4d6e189b92 100755 --- a/indra/llui/llmodaldialog.cpp +++ b/indra/llui/llmodaldialog.cpp @@ -34,7 +34,7 @@ #include "llui.h" #include "llwindow.h" #include "llkeyboard.h" - +#include "llmenugl.h" // static std::list<LLModalDialog*> LLModalDialog::sModalStack; @@ -161,6 +161,18 @@ void LLModalDialog::setVisible( BOOL visible ) BOOL LLModalDialog::handleMouseDown(S32 x, S32 y, MASK mask) { + LLView* popup_menu = LLMenuGL::sMenuContainer->getVisibleMenu(); + if (popup_menu != NULL) + { + S32 mx, my; + LLUI::getMousePositionScreen(&mx, &my); + LLRect menu_screen_rc = popup_menu->calcScreenRect(); + if(!menu_screen_rc.pointInRect(mx, my)) + { + LLMenuGL::sMenuContainer->hideMenus(); + } + } + if (mModal) { if (!LLFloater::handleMouseDown(x, y, mask)) @@ -173,6 +185,8 @@ BOOL LLModalDialog::handleMouseDown(S32 x, S32 y, MASK mask) { LLFloater::handleMouseDown(x, y, mask); } + + return TRUE; } @@ -183,6 +197,22 @@ BOOL LLModalDialog::handleHover(S32 x, S32 y, MASK mask) getWindow()->setCursor(UI_CURSOR_ARROW); lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << llendl; } + + LLView* popup_menu = LLMenuGL::sMenuContainer->getVisibleMenu(); + if (popup_menu != NULL) + { + S32 mx, my; + LLUI::getMousePositionScreen(&mx, &my); + LLRect menu_screen_rc = popup_menu->calcScreenRect(); + if(menu_screen_rc.pointInRect(mx, my)) + { + S32 local_x = mx - popup_menu->getRect().mLeft; + S32 local_y = my - popup_menu->getRect().mBottom; + popup_menu->handleHover(local_x, local_y, mask); + gFocusMgr.setMouseCapture(NULL); + } + } + return TRUE; } @@ -210,6 +240,7 @@ BOOL LLModalDialog::handleDoubleClick(S32 x, S32 y, MASK mask) BOOL LLModalDialog::handleRightMouseDown(S32 x, S32 y, MASK mask) { + LLMenuGL::sMenuContainer->hideMenus(); childrenHandleRightMouseDown(x, y, mask); return TRUE; } diff --git a/indra/llui/llscrollcontainer.cpp b/indra/llui/llscrollcontainer.cpp index cbcce0ece5..238eae21c2 100755 --- a/indra/llui/llscrollcontainer.cpp +++ b/indra/llui/llscrollcontainer.cpp @@ -519,7 +519,7 @@ bool LLScrollContainer::addChild(LLView* view, S32 tab_group) void LLScrollContainer::updateScroll() { - if (!mScrolledView) + if (!getVisible() || !mScrolledView) { return; } diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp index 6e03f604a2..594e1e150b 100755 --- a/indra/llui/llscrolllistctrl.cpp +++ b/indra/llui/llscrolllistctrl.cpp @@ -1855,7 +1855,7 @@ void LLScrollListCtrl::showNameDetails(std::string id, bool is_group) // open the resident's details or the group details std::string sltype = is_group ? "group" : "agent"; std::string slurl = "secondlife:///app/" + sltype + "/" + id + "/about"; - LLUrlAction::clickAction(slurl); + LLUrlAction::clickAction(slurl, true); } void LLScrollListCtrl::copyNameToClipboard(std::string id, bool is_group) diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index cc171661ce..4144a42fd6 100755 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -167,6 +167,7 @@ LLTextBase::Params::Params() max_text_length("max_length", 255), font_shadow("font_shadow"), wrap("wrap"), + trusted_content("trusted_content", true), use_ellipses("use_ellipses", false), parse_urls("parse_urls", false), parse_highlights("parse_highlights", false) @@ -211,6 +212,7 @@ LLTextBase::LLTextBase(const LLTextBase::Params &p) mLineSpacingPixels(p.line_spacing.pixels), mClip(p.clip), mClipPartial(p.clip_partial && !p.allow_scroll), + mTrustedContent(p.trusted_content), mTrackEnd( p.track_end ), mScrollIndex(-1), mSelectionStart( 0 ), @@ -1029,7 +1031,7 @@ BOOL LLTextBase::handleMouseDown(S32 x, S32 y, MASK mask) BOOL LLTextBase::handleMouseUp(S32 x, S32 y, MASK mask) { LLTextSegmentPtr cur_segment = getSegmentAtLocalPos(x, y); - if (cur_segment && cur_segment->handleMouseUp(x, y, mask)) + if (hasMouseCapture() && cur_segment && cur_segment->handleMouseUp(x, y, mask)) { // Did we just click on a link? if (mURLClickSignal @@ -3164,7 +3166,7 @@ BOOL LLNormalTextSegment::handleMouseUp(S32 x, S32 y, MASK mask) // Only process the click if it's actually in this segment, not to the right of the end-of-line. if(mEditor.getSegmentAtLocalPos(x, y, false) == this) { - LLUrlAction::clickAction(getStyle()->getLinkHREF()); + LLUrlAction::clickAction(getStyle()->getLinkHREF(), mEditor.isContentTrusted()); return TRUE; } } diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h index a74e97cac8..3603f55c3f 100755 --- a/indra/llui/lltextbase.h +++ b/indra/llui/lltextbase.h @@ -291,7 +291,8 @@ public: parse_urls, parse_highlights, clip, - clip_partial; + clip_partial, + trusted_content; Optional<S32> v_pad, h_pad; @@ -361,6 +362,7 @@ public: bool getWordWrap() { return mWordWrap; } bool getUseEllipses() { return mUseEllipses; } bool truncate(); // returns true of truncation occurred + bool isContentTrusted() {return mTrustedContent;} // TODO: move into LLTextSegment? void createUrlContextMenu(S32 x, S32 y, const std::string &url); // create a popup context menu for the given Url @@ -634,6 +636,7 @@ protected: bool mBGVisible; // render background? bool mClip; // clip text to widget rect bool mClipPartial; // false if we show lines that are partially inside bounding rect + bool mTrustedContent; // if false, does not allow to execute SURL links from this editor bool mPlainText; // didn't use Image or Icon segments bool mAutoIndent; S32 mMaxTextByteLength; // Maximum length mText is allowed to be in bytes diff --git a/indra/llui/lltextbox.cpp b/indra/llui/lltextbox.cpp index 11cfa1d263..d175204e6d 100755 --- a/indra/llui/lltextbox.cpp +++ b/indra/llui/lltextbox.cpp @@ -60,10 +60,13 @@ BOOL LLTextBox::handleMouseDown(S32 x, S32 y, MASK mask) if (!handled && mClickedCallback) { + handled = TRUE; + } + + if (handled) + { // Route future Mouse messages here preemptively. (Release on mouse up.) gFocusMgr.setMouseCapture( this ); - - handled = TRUE; } return handled; @@ -71,7 +74,7 @@ BOOL LLTextBox::handleMouseDown(S32 x, S32 y, MASK mask) BOOL LLTextBox::handleMouseUp(S32 x, S32 y, MASK mask) { - BOOL handled = FALSE; + BOOL handled = LLTextBase::handleMouseUp(x, y, mask); if (getSoundFlags() & MOUSE_UP) { @@ -93,10 +96,6 @@ BOOL LLTextBox::handleMouseUp(S32 x, S32 y, MASK mask) handled = TRUE; } } - else - { - handled = LLTextBase::handleMouseUp(x, y, mask); - } return handled; } diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 0c16e06109..81d9fd1ec9 100755 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -666,6 +666,14 @@ void LLTextEditor::selectAll() updatePrimary(); } +void LLTextEditor::selectByCursorPosition(S32 prev_cursor_pos, S32 next_cursor_pos) +{ + setCursorPos(prev_cursor_pos); + startSelection(); + setCursorPos(next_cursor_pos); + endSelection(); +} + BOOL LLTextEditor::handleMouseDown(S32 x, S32 y, MASK mask) { BOOL handled = FALSE; @@ -713,7 +721,6 @@ BOOL LLTextEditor::handleMouseDown(S32 x, S32 y, MASK mask) setCursorAtLocalPos( x, y, true ); startSelection(); } - gFocusMgr.setMouseCapture( this ); } handled = TRUE; @@ -722,6 +729,10 @@ BOOL LLTextEditor::handleMouseDown(S32 x, S32 y, MASK mask) // Delay cursor flashing resetCursorBlink(); + if (handled && !gFocusMgr.getMouseCapture()) + { + gFocusMgr.setMouseCapture( this ); + } return handled; } @@ -1609,7 +1620,7 @@ BOOL LLTextEditor::handleControlKey(const KEY key, const MASK mask) } } - if (handled) + if (handled && !gFocusMgr.getMouseCapture()) { updatePrimary(); } diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h index 32b543ec0e..d3b7bc0eb7 100755 --- a/indra/llui/lltexteditor.h +++ b/indra/llui/lltexteditor.h @@ -144,6 +144,8 @@ public: virtual void selectAll(); virtual BOOL canSelectAll() const; + void selectByCursorPosition(S32 prev_cursor_pos, S32 next_cursor_pos); + virtual bool canLoadOrSaveToFile(); void selectNext(const std::string& search_text_in, BOOL case_insensitive, BOOL wrap = TRUE); diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp index 928e82cb8c..ee82e0403b 100755 --- a/indra/llui/lltoolbar.cpp +++ b/indra/llui/lltoolbar.cpp @@ -118,7 +118,8 @@ LLToolBar::LLToolBar(const LLToolBar::Params& p) mButtonLeaveSignal(NULL), mButtonRemoveSignal(NULL), mDragAndDropTarget(false), - mCaretIcon(NULL) + mCaretIcon(NULL), + mCenterPanel(NULL) { mButtonParams[LLToolBarEnums::BTNTYPE_ICONS_WITH_TEXT] = p.button_icon_and_text; mButtonParams[LLToolBarEnums::BTNTYPE_ICONS_ONLY] = p.button_icon; @@ -200,14 +201,15 @@ void LLToolBar::initFromParams(const LLToolBar::Params& p) center_panel_p.auto_resize = false; center_panel_p.user_resize = false; center_panel_p.mouse_opaque = false; - LLLayoutPanel* center_panel = LLUICtrlFactory::create<LLLayoutPanel>(center_panel_p); - mCenteringStack->addChild(center_panel); + mCenterPanel = LLUICtrlFactory::create<LLCenterLayoutPanel>(center_panel_p); + mCenteringStack->addChild(mCenterPanel); LLPanel::Params button_panel_p(p.button_panel); - button_panel_p.rect = center_panel->getLocalRect(); - button_panel_p.follows.flags = FOLLOWS_BOTTOM|FOLLOWS_LEFT; + button_panel_p.rect = mCenterPanel->getLocalRect(); + button_panel_p.follows.flags = FOLLOWS_BOTTOM|FOLLOWS_LEFT; mButtonPanel = LLUICtrlFactory::create<LLPanel>(button_panel_p); - center_panel->addChild(mButtonPanel); + mCenterPanel->setButtonPanel(mButtonPanel); + mCenterPanel->addChild(mButtonPanel); mCenteringStack->addChild(LLUICtrlFactory::create<LLLayoutPanel>(border_panel_p)); @@ -1242,3 +1244,15 @@ const std::string LLToolBarButton::getToolTip() const return tooltip; } +void LLToolBar::LLCenterLayoutPanel::handleReshape(const LLRect& rect, bool by_user) +{ + LLLayoutPanel::handleReshape(rect, by_user); + + if (!mReshapeCallback.empty()) + { + LLRect r; + localRectToOtherView(mButtonPanel->getRect(), &r, gFloaterView); + r.stretch(FLOATER_MIN_VISIBLE_PIXELS); + mReshapeCallback(mLocationId, r); + } +} diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h index 743951a41f..9e17eaed8b 100755 --- a/indra/llui/lltoolbar.h +++ b/indra/llui/lltoolbar.h @@ -125,6 +125,19 @@ namespace LLToolBarEnums SIDE_TOP, }; + enum EToolBarLocation + { + TOOLBAR_NONE = 0, + TOOLBAR_LEFT, + TOOLBAR_RIGHT, + TOOLBAR_BOTTOM, + + TOOLBAR_COUNT, + + TOOLBAR_FIRST = TOOLBAR_LEFT, + TOOLBAR_LAST = TOOLBAR_BOTTOM, + }; + LLLayoutStack::ELayoutOrientation getOrientation(SideType sideType); } @@ -150,6 +163,30 @@ class LLToolBar { friend class LLToolBarButton; public: + + class LLCenterLayoutPanel : public LLLayoutPanel + { + public: + typedef struct LLLayoutPanel::Params Params; + typedef boost::function<void(LLToolBarEnums::EToolBarLocation tb, const LLRect& rect)> reshape_callback_t; + + virtual ~LLCenterLayoutPanel() {} + /*virtual*/ void handleReshape(const LLRect& rect, bool by_user); + + void setLocationId(LLToolBarEnums::EToolBarLocation id) { mLocationId = id; } + void setReshapeCallback(reshape_callback_t cb) { mReshapeCallback = cb; } + void setButtonPanel(LLPanel * panel) { mButtonPanel = panel; } + + protected: + friend class LLUICtrlFactory; + LLCenterLayoutPanel(const Params& params) : LLLayoutPanel(params), mButtonPanel(NULL) {} + + private: + reshape_callback_t mReshapeCallback; + LLToolBarEnums::EToolBarLocation mLocationId; + LLPanel * mButtonPanel; + }; + struct Params : public LLInitParam::Block<Params, LLUICtrl::Params> { Mandatory<LLToolBarEnums::ButtonType> button_display_mode; @@ -198,6 +235,7 @@ public: void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; } void setHandleDropCallback(tool_handledrop_callback_t cb) { mHandleDropCallback = cb; } bool isReadOnly() const { return mReadOnly; } + LLCenterLayoutPanel * getCenterLayoutPanel() const { return mCenterPanel; } LLToolBarButton* createButton(const LLCommandId& id); @@ -270,6 +308,7 @@ private: // related widgets LLLayoutStack* mCenteringStack; + LLCenterLayoutPanel* mCenterPanel; LLPanel* mButtonPanel; LLHandle<class LLContextMenu> mPopupMenuHandle; LLHandle<class LLView> mRemoveButtonHandle; diff --git a/indra/llui/llui.h b/indra/llui/llui.h index 0a0e0e164e..0bc4424a8c 100755 --- a/indra/llui/llui.h +++ b/indra/llui/llui.h @@ -405,11 +405,6 @@ public: const std::string& comment = "Declared In Code") : LLCachedControl<T>(LLUI::getControlControlGroup(name), name, default_value, comment) {} - - // This constructor will signal an error if the control doesn't exist in the control group - LLUICachedControl(const std::string& name) - : LLCachedControl<T>(LLUI::getControlControlGroup(name), name) - {} }; namespace LLInitParam diff --git a/indra/llui/llurlaction.cpp b/indra/llui/llurlaction.cpp index 23e574cb74..12537d9dd1 100755 --- a/indra/llui/llurlaction.cpp +++ b/indra/llui/llurlaction.cpp @@ -87,14 +87,14 @@ void LLUrlAction::executeSLURL(std::string url) { if (sExecuteSLURLCallback) { - sExecuteSLURLCallback(url); + sExecuteSLURLCallback(url ,true); } } -void LLUrlAction::clickAction(std::string url) +void LLUrlAction::clickAction(std::string url, bool trusted_content) { // Try to handle as SLURL first, then http Url - if ( (sExecuteSLURLCallback) && !sExecuteSLURLCallback(url) ) + if ( (sExecuteSLURLCallback) && !sExecuteSLURLCallback(url, trusted_content) ) { if (sOpenURLCallback) { diff --git a/indra/llui/llurlaction.h b/indra/llui/llurlaction.h index e731376b95..5f3626490c 100755 --- a/indra/llui/llurlaction.h +++ b/indra/llui/llurlaction.h @@ -66,7 +66,7 @@ public: static void showLocationOnMap(std::string url); /// perform the appropriate action for left-clicking on a Url - static void clickAction(std::string url); + static void clickAction(std::string url, bool trusted_content); /// copy the label for a Url to the clipboard static void copyLabelToClipboard(std::string url); @@ -86,7 +86,7 @@ public: /// specify the callbacks to enable this class's functionality typedef boost::function<void (const std::string&)> url_callback_t; - typedef boost::function<bool(const std::string& url)> execute_url_callback_t; + typedef boost::function<bool(const std::string& url, bool trusted_content)> execute_url_callback_t; static void setOpenURLCallback(url_callback_t cb); static void setOpenURLInternalCallback(url_callback_t cb); diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index b1cc502c4b..840f67968d 100755 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -1067,7 +1067,8 @@ LLUrlEntrySLLabel::LLUrlEntrySLLabel() std::string LLUrlEntrySLLabel::getLabel(const std::string &url, const LLUrlLabelCallback &cb) { - return getLabelFromWikiLink(url); + std::string label = getLabelFromWikiLink(url); + return (!LLUrlRegistry::instance().hasUrl(label)) ? label : getUrl(url); } std::string LLUrlEntrySLLabel::getUrl(const std::string &string) const diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 20015dca1a..5ee2169b66 100755 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -645,14 +645,18 @@ void LLView::setVisible(BOOL visible) void LLView::handleVisibilityChange ( BOOL new_visibility ) { BOOL old_visibility; + BOOL log_visibility_change = LLViewerEventRecorder::instance().getLoggingStatus(); BOOST_FOREACH(LLView* viewp, mChildList) { // only views that are themselves visible will have their overall visibility affected by their ancestors old_visibility=viewp->getVisible(); - if (old_visibility!=new_visibility) + if(log_visibility_change) { - LLViewerEventRecorder::instance().logVisibilityChange( viewp->getPathname(), viewp->getName(), new_visibility,"widget"); + if (old_visibility!=new_visibility) + { + LLViewerEventRecorder::instance().logVisibilityChange( viewp->getPathname(), viewp->getName(), new_visibility,"widget"); + } } if (old_visibility) @@ -660,11 +664,13 @@ void LLView::handleVisibilityChange ( BOOL new_visibility ) viewp->handleVisibilityChange ( new_visibility ); } - // Consider changing returns to confirm success and know which widget grabbed it - // For now assume success and log at highest xui possible - // NOTE we log actual state - which may differ if it somehow failed to set visibility - lldebugs << "LLView::handleVisibilityChange - now: " << getVisible() << " xui: " << viewp->getPathname() << " name: " << viewp->getName() << llendl; - + if(log_visibility_change) + { + // Consider changing returns to confirm success and know which widget grabbed it + // For now assume success and log at highest xui possible + // NOTE we log actual state - which may differ if it somehow failed to set visibility + lldebugs << "LLView::handleVisibilityChange - now: " << getVisible() << " xui: " << viewp->getPathname() << " name: " << viewp->getName() << llendl; + } } } @@ -1308,52 +1314,55 @@ void LLView::reshape(S32 width, S32 height, BOOL called_from_parent) // move child views according to reshape flags BOOST_FOREACH(LLView* viewp, mChildList) { - LLRect child_rect( viewp->mRect ); - - if (viewp->followsRight() && viewp->followsLeft()) - { - child_rect.mRight += delta_width; - } - else if (viewp->followsRight()) - { - child_rect.mLeft += delta_width; - child_rect.mRight += delta_width; - } - else if (viewp->followsLeft()) - { - // left is 0, don't need to adjust coords - } - else + if (viewp != NULL) { - // BUG what to do when we don't follow anyone? - // for now, same as followsLeft - } + LLRect child_rect( viewp->mRect ); - if (viewp->followsTop() && viewp->followsBottom()) - { - child_rect.mTop += delta_height; - } - else if (viewp->followsTop()) - { - child_rect.mTop += delta_height; - child_rect.mBottom += delta_height; - } - else if (viewp->followsBottom()) - { - // bottom is 0, so don't need to adjust coords - } - else - { - // BUG what to do when we don't follow? - // for now, same as bottom - } + if (viewp->followsRight() && viewp->followsLeft()) + { + child_rect.mRight += delta_width; + } + else if (viewp->followsRight()) + { + child_rect.mLeft += delta_width; + child_rect.mRight += delta_width; + } + else if (viewp->followsLeft()) + { + // left is 0, don't need to adjust coords + } + else + { + // BUG what to do when we don't follow anyone? + // for now, same as followsLeft + } - S32 delta_x = child_rect.mLeft - viewp->getRect().mLeft; - S32 delta_y = child_rect.mBottom - viewp->getRect().mBottom; - viewp->translate( delta_x, delta_y ); - if (child_rect.getWidth() != viewp->getRect().getWidth() || child_rect.getHeight() != viewp->getRect().getHeight()) - { - viewp->reshape(child_rect.getWidth(), child_rect.getHeight()); + if (viewp->followsTop() && viewp->followsBottom()) + { + child_rect.mTop += delta_height; + } + else if (viewp->followsTop()) + { + child_rect.mTop += delta_height; + child_rect.mBottom += delta_height; + } + else if (viewp->followsBottom()) + { + // bottom is 0, so don't need to adjust coords + } + else + { + // BUG what to do when we don't follow? + // for now, same as bottom + } + + S32 delta_x = child_rect.mLeft - viewp->getRect().mLeft; + S32 delta_y = child_rect.mBottom - viewp->getRect().mBottom; + viewp->translate( delta_x, delta_y ); + if (child_rect.getWidth() != viewp->getRect().getWidth() || child_rect.getHeight() != viewp->getRect().getHeight()) + { + viewp->reshape(child_rect.getWidth(), child_rect.getHeight()); + } } } } diff --git a/indra/llui/llviewereventrecorder.cpp b/indra/llui/llviewereventrecorder.cpp index a352f621eb..546a0f5866 100644 --- a/indra/llui/llviewereventrecorder.cpp +++ b/indra/llui/llviewereventrecorder.cpp @@ -31,7 +31,7 @@ LLViewerEventRecorder::LLViewerEventRecorder() { clear(UNDEFINED); - + logEvents = false; // Remove any previous event log file std::string old_log_ui_events_to_llsd_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "SecondLife_Events_log.old"); LLFile::remove(old_log_ui_events_to_llsd_file); diff --git a/indra/llui/llviewereventrecorder.h b/indra/llui/llviewereventrecorder.h index 72ca643ced..375efcc3de 100644 --- a/indra/llui/llviewereventrecorder.h +++ b/indra/llui/llviewereventrecorder.h @@ -65,7 +65,7 @@ class LLViewerEventRecorder : public LLSingleton<LLViewerEventRecorder> std::string get_xui(); void update_xui(std::string xui); - bool getLoggingStatus(); + bool getLoggingStatus(){return logEvents;}; void setEventLoggingOn(); void setEventLoggingOff(); diff --git a/indra/llvfs/lldiriterator.cpp b/indra/llvfs/lldiriterator.cpp index 460d2a8b4f..229608231c 100755 --- a/indra/llvfs/lldiriterator.cpp +++ b/indra/llvfs/lldiriterator.cpp @@ -119,16 +119,25 @@ bool LLDirIterator::Impl::next(std::string &fname) fs::directory_iterator end_itr; // default construction yields past-the-end bool found = false; - while (mIter != end_itr && !found) + + // Check if path is a directory. + try { - boost::smatch match; - std::string name = mIter->path().filename().string(); - if (found = boost::regex_match(name, match, mFilterExp)) + while (mIter != end_itr && !found) { - fname = name; + boost::smatch match; + std::string name = mIter->path().filename().string(); + if (found = boost::regex_match(name, match, mFilterExp)) + { + fname = name; + } + + ++mIter; } - - ++mIter; + } + catch (const fs::filesystem_error& e) + { + llwarns << e.what() << llendl; } return found; diff --git a/indra/llwindow/llopenglview-objc.mm b/indra/llwindow/llopenglview-objc.mm index 7415c9d8dc..b393a3796d 100644 --- a/indra/llwindow/llopenglview-objc.mm +++ b/indra/llwindow/llopenglview-objc.mm @@ -376,13 +376,6 @@ attributedStringInfo getSegments(NSAttributedString *str) [[self inputContext] handleEvent:theEvent]; } - if ([[theEvent charactersIgnoringModifiers] characterAtIndex:0] == NSCarriageReturnCharacter || - [[theEvent charactersIgnoringModifiers] characterAtIndex:0] == NSEnterCharacter) - { - // callKeyDown won't return the value we expect for enter or return. Handle them as a separate case. - [[self inputContext] handleEvent:theEvent]; - } - // OS X intentionally does not send us key-up information on cmd-key combinations. // This behaviour is not a bug, and only applies to cmd-combinations (no others). // Since SL assumes we receive those, we fake it here. diff --git a/indra/llwindow/llwindowcallbacks.cpp b/indra/llwindow/llwindowcallbacks.cpp index 9329010df9..eadff8a6b4 100755 --- a/indra/llwindow/llwindowcallbacks.cpp +++ b/indra/llwindow/llwindowcallbacks.cpp @@ -122,7 +122,7 @@ void LLWindowCallbacks::handleResize(LLWindow *window, const S32 width, const S3 void LLWindowCallbacks::handleFocus(LLWindow *window) { - LL_WARNS("COCOA") << "Called handleFocus proto" << LL_ENDL; + LL_WARNS("COCOA") << "Called handleFocus proto" << LL_ENDL; } void LLWindowCallbacks::handleFocusLost(LLWindow *window) diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index 2cbbee83bd..11c0b51086 100755 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -331,14 +331,16 @@ void callMouseExit() void callWindowFocus() { - if ( gWindowImplementation && gWindowImplementation->getCallbacks() ) - { - gWindowImplementation->getCallbacks()->handleFocus (gWindowImplementation); - } - else - { - LL_WARNS("COCOA") << "Window Implementation or callbacks not yet initialized." << LL_ENDL; - } + if ( gWindowImplementation && gWindowImplementation->getCallbacks() ) + { + gWindowImplementation->getCallbacks()->handleFocus (gWindowImplementation); + } + else + { + LL_WARNS("COCOA") << "Window Implementation or callbacks not yet initialized." << LL_ENDL; + } + + } void callWindowUnfocus() diff --git a/indra/llxml/llcontrol.h b/indra/llxml/llcontrol.h index e1f9be80dd..f46d21408b 100755 --- a/indra/llxml/llcontrol.h +++ b/indra/llxml/llcontrol.h @@ -408,16 +408,6 @@ public: } } - LLCachedControl(LLControlGroup& group, - const std::string& name) - { - mCachedControlPtr = LLControlCache<T>::getInstance(name); - if (mCachedControlPtr.isNull()) - { - mCachedControlPtr = new LLControlCache<T>(group, name); - } - } - operator const T&() const { return mCachedControlPtr->getValue(); } operator boost::function<const T&()> () const { return boost::function<const T&()>(*this); } const T& operator()() { return mCachedControlPtr->getValue(); } diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 1fea6dea9f..17e340d136 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -267,6 +267,7 @@ set(viewer_SOURCE_FILES llfloaterregiondebugconsole.cpp llfloaterregioninfo.cpp llfloaterreporter.cpp + llfloaterregionrestarting.cpp llfloaterscriptdebug.cpp llfloaterscriptlimits.cpp llfloatersearch.cpp @@ -855,6 +856,7 @@ set(viewer_HEADER_FILES llfloaterregiondebugconsole.h llfloaterregioninfo.h llfloaterreporter.h + llfloaterregionrestarting.h llfloaterscriptdebug.h llfloaterscriptlimits.h llfloatersearch.h @@ -1748,6 +1750,7 @@ if (WINDOWS) ARGS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py --actions=copy + --arch=${ARCH} --artwork=${ARTWORK_DIR} --build=${CMAKE_CURRENT_BINARY_DIR} --buildtype=${CMAKE_BUILD_TYPE} @@ -1815,6 +1818,7 @@ if (WINDOWS) COMMAND ${PYTHON_EXECUTABLE} ARGS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py + --arch=${ARCH} --artwork=${ARTWORK_DIR} --build=${CMAKE_CURRENT_BINARY_DIR} --buildtype=${CMAKE_BUILD_TYPE} @@ -1939,7 +1943,6 @@ if (LINUX) --configuration=${CMAKE_CFG_INTDIR} --dest=${CMAKE_CURRENT_BINARY_DIR}/packaged --grid=${GRID} - --installer_name=${product} --source=${CMAKE_CURRENT_SOURCE_DIR} --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched DEPENDS @@ -2017,6 +2020,7 @@ if (DARWIN) ARGS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py --actions=copy + --arch=${ARCH} --artwork=${ARTWORK_DIR} --build=${CMAKE_CURRENT_BINARY_DIR} --buildtype=${CMAKE_BUILD_TYPE} @@ -2049,6 +2053,7 @@ if (DARWIN) COMMAND ${PYTHON_EXECUTABLE} ARGS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py + --arch=${ARCH} --artwork=${ARTWORK_DIR} --build=${CMAKE_CURRENT_BINARY_DIR} --buildtype=${CMAKE_BUILD_TYPE} diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt index c47e8b5872..a76ccff2a6 100644 --- a/indra/newview/VIEWER_VERSION.txt +++ b/indra/newview/VIEWER_VERSION.txt @@ -1 +1 @@ -3.6.10 +3.7.1 diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 41aac583d7..e601b82f23 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1203,7 +1203,7 @@ <key>Type</key> <string>Boolean</string> <key>Value</key> - <integer>0</integer> + <integer>1</integer> </map> <key>BulkChangeShareWithGroup</key> <map> @@ -3569,13 +3569,13 @@ <key>FPSLogFrequency</key> <map> <key>Comment</key> - <string>Seconds between display of FPS in log (0 for never)</string> + <string>Seconds between display of FPS in log (0 for never)</string> <key>Persist</key> - <integer>1</integer> + <integer>1</integer> <key>Type</key> - <string>F32</string> + <string>F32</string> <key>Value</key> - <real>10.0</real> + <real>10.0</real> </map> <key>FilterItemsMaxTimePerFrameVisible</key> <map> @@ -5942,6 +5942,17 @@ <key>Value</key> <real>1.6</real> </map> + <key>MaxPersistentNotifications</key> + <map> + <key>Comment</key> + <string>Maximum amount of persistent notifications</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>S32</string> + <key>Value</key> + <real>250</real> + </map> <key>MaxSelectDistance</key> <map> <key>Comment</key> @@ -8685,7 +8696,7 @@ <key>RenderDepthOfField</key> <map> <key>Comment</key> - <string>Whether to use depth of field effect when lighting and shadows are enabled</string> + <string>Whether to use depth of field effect when Advanced Lighting Model is enabled</string> <key>Persist</key> <integer>1</integer> <key>Type</key> @@ -9850,7 +9861,7 @@ <key>RenderUseVAO</key> <map> <key>Comment</key> - <string>[EXPERIMENTAL] Use GL Vertex Array Objects</string> + <string>[EXPERIMENTAL] Use GL Vertex Array Objects.</string> <key>Persist</key> <integer>1</integer> <key>Type</key> @@ -9980,7 +9991,18 @@ <key>Value</key> <integer>0</integer> </map> - <key>RevokePermsOnStopAnimation</key> + <key>ReportBugURL</key> + <map> + <key>Comment</key> + <string>URL used for filing bugs from viewer</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>String</string> + <key>Value</key> + <string>https://jira.secondlife.com/secure/CreateIssueDetails!init.jspa?pid=10610&issuetype=1&environment=[ENVIRONMENT]&customfield_10253=[LOCATION]</string> + </map> + <key>RevokePermsOnStopAnimation</key> <map> <key>Comment</key> <string>Clear animation permssions when choosing "Stop Animating Me"</string> @@ -12621,6 +12643,17 @@ <key>Value</key> <string>00000000-0000-0000-0000-000000000000</string> </map> + <key>UISndRestart</key> + <map> + <key>Comment</key> + <string>Sound file for region restarting (uuid for sound asset)</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>String</string> + <key>Value</key> + <string>b92a0f64-7709-8811-40c5-16afd624a45f</string> + </map> <key>UISndSnapshot</key> <map> <key>Comment</key> @@ -13334,7 +13367,7 @@ <key>Type</key> <string>String</string> <key>Value</key> - <string>-1</string> + <string>0</string> </map> <key>VivoxDebugSIPURIHostName</key> <map> @@ -14860,17 +14893,6 @@ <key>Value</key> <integer>0</integer> </map> - <key>DisablePrecacheDelayAfterTeleporting</key> - <map> - <key>Comment</key> - <string>Disables the artificial delay in the viewer that precaches some incoming assets</string> - <key>Persist</key> - <integer>0</integer> - <key>Type</key> - <string>Boolean</string> - <key>Value</key> - <integer>0</integer> - </map> <key>FMODExProfilerEnable</key> <map> <key>Comment</key> diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml index 636caf5ef3..500151c935 100755 --- a/indra/newview/app_settings/settings_per_account.xml +++ b/indra/newview/app_settings/settings_per_account.xml @@ -77,6 +77,17 @@ <key>Value</key> <integer>412</integer> </map> + <key>ConversationsParticipantListCollapsed</key> + <map> + <key>Comment</key> + <string>Stores the expanded/collapsed state of Nearby chat participant list</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>true</integer> + </map> <key>InstantMessageLogPath</key> <map> <key>Comment</key> diff --git a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl index bc63d07d72..c98e7d1cd3 100755 --- a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl +++ b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl @@ -33,8 +33,8 @@ mat4 getSkinnedTransform() mat4 ret; int i = int(floor(weight.x)); float x = fract(weight.x); - - ret[0] = mix(matrixPalette[i+0], matrixPalette[i+1], x); + + ret[0] = mix(matrixPalette[i+0], matrixPalette[i+1], x); ret[1] = mix(matrixPalette[i+15],matrixPalette[i+16], x); ret[2] = mix(matrixPalette[i+30],matrixPalette[i+31], x); ret[3] = vec4(0,0,0,1); diff --git a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl index efd0d03965..57129c3bd1 100755 --- a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl +++ b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl @@ -22,27 +22,46 @@ * $/LicenseInfo$ */ - - ATTRIBUTE vec4 weight4; -uniform mat4 matrixPalette[32]; +uniform mat3 matrixPalette[52]; +uniform vec3 translationPalette[52]; mat4 getObjectSkinnedTransform() { - int i; + int i; vec4 w = fract(weight4); vec4 index = floor(weight4); + index = min(index, vec4(51.0)); + index = max(index, vec4( 0.0)); + float scale = 1.0/(w.x+w.y+w.z+w.w); w *= scale; - mat4 mat = matrixPalette[int(index.x)]*w.x; - mat += matrixPalette[int(index.y)]*w.y; - mat += matrixPalette[int(index.z)]*w.z; - mat += matrixPalette[int(index.w)]*w.w; + int i1 = int(index.x); + int i2 = int(index.y); + int i3 = int(index.z); + int i4 = int(index.w); - return mat; + mat3 mat = matrixPalette[i1]*w.x; + mat += matrixPalette[i2]*w.y; + mat += matrixPalette[i3]*w.z; + mat += matrixPalette[i4]*w.w; + + vec3 trans = translationPalette[i1]*w.x; + trans += translationPalette[i2]*w.y; + trans += translationPalette[i3]*w.z; + trans += translationPalette[i4]*w.w; + + mat4 ret; + + ret[0] = vec4(mat[0], 0); + ret[1] = vec4(mat[1], 0); + ret[2] = vec4(mat[2], 0); + ret[3] = vec4(trans, 1.0); + + return ret; } diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl index e5f7366b70..2b5f001873 100755 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl @@ -534,6 +534,7 @@ void main() #ifdef FOR_IMPOSTOR vec4 color; color.rgb = diff.rgb; + color.a = 1.0; #ifdef USE_VERTEX_COLOR float final_alpha = diff.a * vertex_color.a; diff --git a/indra/newview/app_settings/shaders/class1/interface/benchmarkF.glsl b/indra/newview/app_settings/shaders/class1/interface/benchmarkF.glsl new file mode 100644 index 0000000000..1936e0dcaa --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/interface/benchmarkF.glsl @@ -0,0 +1,39 @@ +/** + * @file benchmarkF.glsl + * + * $LicenseInfo:firstyear=2007&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$ + */ + +#ifdef DEFINE_GL_FRAGCOLOR +out vec4 frag_color; +#else +#define frag_color gl_FragColor +#endif + +uniform sampler2D diffuseMap; + +VARYING vec2 tc0; + +void main() +{ + frag_color = texture2D(diffuseMap, tc0); +} diff --git a/indra/newview/app_settings/shaders/class1/interface/benchmarkV.glsl b/indra/newview/app_settings/shaders/class1/interface/benchmarkV.glsl new file mode 100644 index 0000000000..7beb20ede4 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/interface/benchmarkV.glsl @@ -0,0 +1,38 @@ +/** + * @file benchmarkV.glsl + * + * $LicenseInfo:firstyear=2007&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$ + */ + +uniform mat4 modelview_projection_matrix; + +ATTRIBUTE vec3 position; + +VARYING vec2 tc0; + +void main() +{ + gl_Position = vec4(position, 1.0); + + tc0 = (position.xy*0.5+0.5); +} + diff --git a/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl b/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl index 67dc500493..da02534dbb 100755 --- a/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/solidcolorF.glsl @@ -31,12 +31,13 @@ out vec4 frag_color; uniform sampler2D tex0; -VARYING vec4 vertex_color; +uniform vec4 color; + VARYING vec2 vary_texcoord0; void main() { - float alpha = texture2D(tex0, vary_texcoord0.xy).a * vertex_color.a; + float alpha = texture2D(tex0, vary_texcoord0.xy).a * color.a; - frag_color = vec4(vertex_color.rgb, alpha); + frag_color = vec4(color.rgb, alpha); } diff --git a/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl b/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl index c58f9dfdaf..f33115d78d 100755 --- a/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl @@ -26,16 +26,13 @@ uniform mat4 modelview_projection_matrix; ATTRIBUTE vec3 position; -ATTRIBUTE vec4 diffuse_color; ATTRIBUTE vec2 texcoord0; -VARYING vec4 vertex_color; VARYING vec2 vary_texcoord0; void main() { gl_Position = modelview_projection_matrix * vec4(position.xyz, 1.0); - vertex_color = diffuse_color; vary_texcoord0 = texcoord0; } diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index e5b385f4aa..5268498d56 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -3825,7 +3825,11 @@ <volume_morph name="BELLY" scale="0.075 0.04 0.03" - pos="0.07 0 -0.07"/> + pos="0.07 0 -0.02"/> + <volume_morph + name="PELVIS" + scale="0.075 0.04 0.03" + pos="0.07 0 -0.02"/> </param_morph> </param> @@ -3844,7 +3848,16 @@ camera_elevation=".1" camera_distance="1" camera_angle="15"> - <param_morph /> + <param_morph> + <volume_morph + name="LEFT_PEC" + scale="0.0273 0.0273 0.0273" + pos="0.038 0.024 -0.016"/> + <volume_morph + name="RIGHT_PEC" + scale="0.0273 0.0273 0.0273" + pos="0.038 -0.024 -0.016"/> + </param_morph> </param> <param @@ -3861,7 +3874,16 @@ value_max="1" camera_elevation="0" camera_distance=".28"> - <param_morph /> + <param_morph> + <volume_morph + name="LEFT_PEC" + scale="-0.05 0.0 0.0" + pos="-0.01 -0.01 -0.02"/> + <volume_morph + name="RIGHT_PEC" + scale="-0.05 0.0 0.0" + pos="-0.01 -0.01 -0.02"/> + </param_morph> </param> <param @@ -3878,7 +3900,16 @@ value_max="1" camera_elevation="0" camera_distance=".28"> - <param_morph /> + <param_morph> + <volume_morph + name="LEFT_PEC" + scale="-0.051 0.0 0.0" + pos="-0.02 -0.01 -0.03"/> + <volume_morph + name="RIGHT_PEC" + scale="-0.051 0.0 0.0" + pos="-0.02 -0.01 -0.03"/> + </param_morph> </param> <param @@ -3944,6 +3975,10 @@ scale="0.0 -0.01 0.0" pos="0.0 0.0 0"/> <volume_morph + name="UPPER_BACK" + scale="-0.01 -0.01 0.0" + pos="0.0 0.0 0"/> + <volume_morph name="CHEST" scale="-0.01 -0.01 0.0" pos="0.01 0.0 0"/> @@ -3994,6 +4029,10 @@ scale="-0.01 -0.01 0.0" pos="0.01 0.0 0"/> <volume_morph + name="UPPER_BACK" + scale="-0.01 -0.01 0.0" + pos="0.0 0.0 0"/> + <volume_morph name="CHEST" scale="-0.02 -0.02 0.0" pos="0.01 0.0 0"/> @@ -4042,6 +4081,32 @@ scale="0.02 0.03 0.03" pos="0 0 -0.03"/> <volume_morph + name="PELVIS" + scale="0.02 0.03 0.03" + pos="0 0 -0.03"/> + <volume_morph + name="UPPER_BACK" + scale="0.01 0.03 0.0" + pos="-0.03 0 0"/> + <volume_morph + name="LOWER_BACK" + scale="0.04 0.06 0.0" + pos="-0.06 0 0"/> + <volume_morph + name="LEFT_HANDLE" + pos="0.0 0.08 0.0"/> + <volume_morph + name="RIGHT_HANDLE" + pos="0.0 -0.08 0.0"/> + <volume_morph + name="LEFT_PEC" + scale="0.0367 0.0367 0.016" + pos="0.00 -0.005 -0.013"/> + <volume_morph + name="RIGHT_PEC" + scale="0.0367 0.0367 0.016" + pos="0.00 0.005 -0.013"/> + <volume_morph name="BELLY" scale="0.09 0.08 0.07" pos="0 0 -0.05"/> @@ -4093,7 +4158,16 @@ value_max="2" camera_elevation=".3" camera_distance=".8"> - <param_morph /> + <param_morph> + <volume_morph + name="LEFT_PEC" + scale="0.0 0.0 0.0" + pos="0.004 0.0 -0.01"/> + <volume_morph + name="RIGHT_PEC" + scale="0.0 0.0 0.0" + pos="0.004 0.0 -0.01"/> + </param_morph> </param> <param @@ -4143,6 +4217,15 @@ <volume_morph name="BELLY" scale="0.0 0.02 0.0"/> + <volume_morph + name="LOWER_BACK" + scale="0.0 0.02 0.0"/> + <volume_morph + name="LEFT_HANDLE" + pos="0.0 0.025 0.0"/> + <volume_morph + name="RIGHT_HANDLE" + pos="0.0 -0.025 0.0"/> </param_morph> </param> @@ -4162,7 +4245,16 @@ value_max="1.3" camera_elevation=".3" camera_distance=".8"> - <param_morph /> + <param_morph> + <volume_morph + name="LEFT_PEC" + scale="0.0 0.0 0.0" + pos="0.0 -0.026 0.0"/> + <volume_morph + name="RIGHT_PEC" + scale="0.0 0.0 0.0" + pos="0.0 0.026 0.0"/> + </param_morph> </param> <param @@ -4177,11 +4269,20 @@ label_min="Big Pectorals" label_max="Sunken Chest" value_default="0" - value_min="-.5" + value_min="-1.0" value_max="1.1" camera_elevation=".3" camera_distance="1.2"> - <param_morph /> + <param_morph> + <volume_morph + name="LEFT_PEC" + scale="0.0 0.0 0.0" + pos="-0.03 -0.024 -0.01"/> + <volume_morph + name="RIGHT_PEC" + scale="0.0 0.0 0.0" + pos="-0.03 0.024 -0.01"/> + </param_morph> </param> <!-- ############# # @@ -4206,6 +4307,14 @@ scale="0.03 0.03 0.0" pos="-0.03 0 0.02"/> <volume_morph + name="LEFT_PEC" + scale="0.0 0.0 0.0" + pos="0.008 -0.03 0.01"/> + <volume_morph + name="RIGHT_PEC" + scale="0.0 0.0 0.0" + pos="0.008 0.03 0.01"/> + <volume_morph name="L_CLAVICLE" scale="0.02 0.0 0.01" pos="-0.02 0 0"/> @@ -4376,7 +4485,16 @@ value_default="0" value_min="-3" value_max="3"> - <param_morph /> + <param_morph> + <volume_morph + name="LEFT_PEC" + scale="0.0 0.0 0.0" + pos="0.0 0.0 -0.01"/> + <volume_morph + name="RIGHT_PEC" + scale="0.0 0.0 0.0" + pos="0.0 0.0 -0.01"/> + </param_morph> </param> <param @@ -4389,7 +4507,16 @@ value_default="0" value_min="-1.25" value_max="1.25"> - <param_morph /> + <param_morph> + <volume_morph + name="LEFT_PEC" + scale="0.0 0.0 0.0" + pos="0.0 -0.026 0.0"/> + <volume_morph + name="RIGHT_PEC" + scale="0.0 0.0 0.0" + pos="0.0 0.026 -0.0"/> + </param_morph> </param> <param @@ -4402,7 +4529,12 @@ value_default="0" value_min="-1" value_max="1"> - <param_morph /> + <param_morph> + <volume_morph + name="BELLY" + scale="0.0 0.0 0.0" + pos="0.0 0.0 0.05"/> + </param_morph> </param> <param @@ -4415,7 +4547,16 @@ value_default="0" value_min="-2" value_max="2"> - <param_morph /> + <param_morph> + <volume_morph + name="LEFT_PEC" + scale="0.0 0.0 0.0" + pos="0.0 0.03 0.0"/> + <volume_morph + name="RIGHT_PEC" + scale="0.0 0.0 0.0" + pos="0.0 0.03 0.0"/> + </param_morph> </param> <!-- @@ -4518,6 +4659,10 @@ name="PELVIS" scale="-0.01 0.0 0.0" pos="0.01 0 0.0"/> + <volume_morph + name="BUTT" + scale="0.0 0.0886 0.0" + pos="0.03 0 0.0"/> </param_morph> </param> @@ -4949,7 +5094,11 @@ value_default="0" value_min="-1" value_max="1"> - <param_morph /> + <param_morph> + <volume_morph + name="BUTT" + pos="0.0 0.0 0.05"/> + </param_morph> </param> <param @@ -4962,7 +5111,11 @@ value_default="0" value_min="-1" value_max="1"> - <param_morph /> + <param_morph> + <volume_morph + name="BUTT" + pos="0.0 0.05 0.0"/> + </param_morph> </param> <!-- diff --git a/indra/newview/character/avatar_skeleton.xml b/indra/newview/character/avatar_skeleton.xml index 5e73804f2d..6b07bbc1d3 100755 --- a/indra/newview/character/avatar_skeleton.xml +++ b/indra/newview/character/avatar_skeleton.xml @@ -1,11 +1,18 @@ <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> -<linden_skeleton version="1.0" num_bones="46" num_collision_volumes="19"> +<linden_skeleton version="1.0" num_bones="53" num_collision_volumes="26"> <bone name="mPelvis" pos="0.000 0.000 1.067" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 1.067015"> <collision_volume name="PELVIS" pos = "-0.01 0 -0.02" rot="0.000000 8.00000 0.000000" scale="0.12 0.16 0.17"/> + <collision_volume name="BUTT" pos = "-0.06 0 -0.1" rot="0.000000 0.00000 0.000000" scale="0.1 0.1 0.1"/> <bone name="mTorso" pos="0.000 0.000 0.084" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 0.084073"> <collision_volume name="BELLY" pos = "0.028 0 0.04" rot="0.000000 8.00000 0.000000" scale="0.09 0.13 0.15"/> + <collision_volume name="LOWER_BACK" pos = "0.0 0.0 0.023" rot="0.000000 0.00000 0.000000" scale="0.09 0.13 0.15"/> + <collision_volume name="LEFT_HANDLE" pos = "0.0 0.10 0.058" rot="0.000000 0.00000 0.000000" scale="0.05 0.05 0.05"/> + <collision_volume name="RIGHT_HANDLE" pos = "0.0 -0.10 0.058" rot="0.000000 0.00000 0.000000" scale="0.05 0.05 0.05"/> <bone name="mChest" pos="-0.015 0.000 0.205" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.015368 0.000000 0.204877"> <collision_volume name="CHEST" pos = "0.028 0 0.07" rot="0.000000 -10.00000 0.000000" scale="0.11 0.15 0.2"/> + <collision_volume name="UPPER_BACK" pos = "0.0 0.0 0.017" rot="0.000000 0.00000 0.000000" scale="0.09 0.13 0.15"/> + <collision_volume name="LEFT_PEC" pos = "0.119 0.082 0.042" rot="0.000000 4.29000 0.000000" scale="0.05 0.05 0.05"/> + <collision_volume name="RIGHT_PEC" pos = "0.119 -0.082 0.042" rot="0.000000 4.29000 0.000000" scale="0.05 0.05 0.05"/> <bone name="mNeck" pos="-0.010 0.000 0.251" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.009507 0.000000 0.251108"> <collision_volume name="NECK" pos = "0.0 0 0.02" rot="0.000000 0.000000 0.000000" scale="0.05 0.06 0.08"/> <bone name="mHead" pos="0.000 -0.000 0.076" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 -0.000000 0.075630"> diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index 23a065caff..8efc4ee87d 100755 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -22,11 +22,11 @@ // // Class Numbers: // 0 - Defaults to low graphics settings. No shaders on by default -// 1 - Defaults to mid graphics settings. Basic shaders on by default -// 2 - Defaults to high graphics settings. Atmospherics on by default. -// 3 - Same as 2, but with lighting and shadows enabled. -// 4 - Same as 3, but with ambient occlusion enabled. -// 5 - Same as 4, but with shadows set to "Sun/Moon+Projectors." +// 1 - Defaults to low-mid graphics settings. Basic shaders on by default +// 2 - Defaults to mid graphics settings. Atmospherics on by default +// 3 - Defaults to mid-high graphics settings. Advanced Lighting Model on by default +// 4 - Defaults to high graphics settings. Ambient Occlusion on by default +// 5 - Defaults to high-ultra graphics settings. Shadows set to "Sun/Moon+Projectors." // // Supported Number: // 0 - We claim to not support this card. @@ -35,7 +35,9 @@ 3Dfx .*3Dfx.* 0 0 0 0 3Dlabs .*3Dlabs.* 0 0 0 0 +Hijacker .*Mohr.*Hijacker.* 0 0 0 0 ATI 3D-Analyze .*ATI.*3D-Analyze.* 0 0 0 0 +ATI ARES .*ATI.*ARES.* 0 0 0 0 ATI All-in-Wonder 7500 .*ATI.*All-in-Wonder 75.* 0 1 0 0 ATI All-in-Wonder 8500 .*ATI.*All-in-Wonder 85.* 0 1 0 0 ATI All-in-Wonder 9200 .*ATI.*All-in-Wonder 92.* 0 1 0 0 @@ -47,15 +49,14 @@ ATI All-in-Wonder X1800 .*ATI.*All-in-Wonder X18.* 3 1 0 0 ATI All-in-Wonder X1900 .*ATI.*All-in-Wonder X19.* 3 1 0 0 ATI All-in-Wonder PCI-E .*ATI.*All-in-Wonder.*PCI-E.* 1 1 0 0 ATI All-in-Wonder Radeon .*ATI.*All-in-Wonder Radeon.* 0 1 0 0 -ATI Radeon X1300 .*ATI.*(ASUS|Radeon).*X13.* 2 1 1 2.1 -ATI Radeon X1500 .*ATI.*(ASUS|Radeon).*X15.* 2 1 1 2.1 -ATI Radeon X1600 .*ATI.*(ASUS|Radeon).*X16.* 2 1 1 2.1 -ATI Radeon X1700 .*ATI.*(ASUS|Radeon).*X17.* 2 1 1 2.1 -ATI Radeon X1800 .*ATI.*(Radeon|Diamond) X18.* ?.* 3 1 1 2.1 -ATI Radeon X1900 .*ATI.*(Radeon|Diamond|ASUS) X19.* ?.* 2 1 1 2.1 -ATI Radeon X17xx .*ATI.*(Radeon|Diamond) X17.* ?.* 1 1 1 2.1 -ATI Radeon X16xx .*ATI.*(Radeon|Diamond) X17.* ?.* 1 1 1 2.1 -ATI Radeon X28xx .*ATI.*(Radeon|Diamond) X28.. ?.* 1 1 1 2.1 +ATI Radeon X1300 .*ATI.*(Radeon|Diamond|ASUS) *X13.* ?.* 2 1 1 2.1 +ATI Radeon X1400 .*ATI.*(Radeon|Diamond|ASUS) *X14.* ?.* 2 1 1 2.1 +ATI Radeon X1500 .*ATI.*(Radeon|Diamond|ASUS) *X15.* ?.* 2 1 1 2.1 +ATI Radeon X1600 .*ATI.*(Radeon|Diamond|ASUS) *X16.* ?.* 2 1 1 2.1 +ATI Radeon X1700 .*ATI.*(Radeon|Diamond|ASUS) *X17.* ?.* 2 1 1 2.1 +ATI Radeon X1800 .*ATI.*(Radeon|Diamond|ASUS) *X18.* ?.* 3 1 1 2.1 +ATI Radeon X1900 .*ATI.*(Radeon|Diamond|ASUS) *X19.* ?.* 2 1 1 2.1 +ATI Radeon X2800 .*ATI.*(Radeon|Diamond|ASUS) *X28.* ?.* 2 1 1 2.1 ATI Display Adapter .*ATI.*display adapter.* 1 1 1 4.1 ATI FireGL 5200 .*ATI.*FireGL V52.* 1 1 1 2.1 ATI FireGL 5xxx .*ATI.*FireGL V5.* 2 1 1 3.3 @@ -74,26 +75,6 @@ ATI M56 .*ATI.*M56.* 1 1 0 0 ATI M71 .*ATI.*M71.* 1 1 0 0 ATI M72 .*ATI.*M72.* 1 1 0 0 ATI M76 .*ATI.*M76.* 3 1 0 0 -ATI Radeon HD 6300M .*ATI.*AMD Radeon.* (HD|HD )63..M 2 1 1 4.2 -ATI Radeon HD 6400M .*ATI.*AMD Radeon.* (HD|HD )64..M 2 1 1 4.2 -ATI Radeon HD 6500M .*ATI.*AMD Radeon.* (HD|HD )65..M 2 1 1 4.2 -ATI Radeon HD 6600M .*ATI.*AMD Radeon.* (HD 6|6)6..M 3 1 1 4.2 -ATI Radeon HD 6700M .*ATI.*AMD Radeon.* (HD|HD )67..M 3 1 1 4.2 -ATI Radeon HD 6800M .*ATI.*AMD Radeon.* (HD|HD )68..M 3 1 1 4.2 -ATI Radeon HD 6300G .*ATI.*AMD Radeon.* (HD|HD )63..G 2 1 1 4.2 -ATI Radeon HD 6400G .*ATI.*AMD Radeon.* (HD|HD )64..G 2 1 1 4.2 -ATI Radeon HD 6500G .*ATI.*AMD Radeon.* (HD|HD )65..G 2 1 1 4.2 -ATI Radeon HD 6600G .*ATI.*AMD Radeon.* (HD|HD )66..G 3 1 1 4.2 -ATI Radeon HD 7100 .*ATI.*(Radeon|ASUS).* (HD|HD )71.* 2 1 0 0 -ATI Radeon HD 7200 .*ATI.*(Radeon|ASUS).* (HD|HD )72.* 2 1 0 4.2 -ATI Radeon HD 7300 .*ATI.*(Radeon|ASUS).* (HD|HD )73.* 2 1 0 4.2 -ATI Radeon HD 7400 .*ATI.*(Radeon|ASUS).* (HD|HD )74.* 2 1 0 4.2 -ATI Radeon HD 7500 .*ATI.*(Radeon|ASUS).* (HD|HD )75.* 3 1 1 4.2 -ATI Radeon HD 7600 .*ATI.*(Radeon|ASUS).* (HD|HD )76.* 3 1 0 4.2 -ATI Radeon HD 7700 .*ATI.*(Radeon|ASUS).* (HD|HD )77.* 4 1 1 4.2 -ATI Radeon HD 7800 .*ATI.*(Radeon|ASUS).* (HD|HD )78.* 5 1 1 4.2 -ATI Radeon HD 7900 .*ATI.*(Radeon|ASUS).* (HD|HD )79.* 5 1 1 4.2 -ATI Radeon HD 7000 Series .*ATI.*(Radeon|ASUS).* (HD|HD )7000 Series.* 3 1 1 4.2 ATI Mobility Radeon 4100 .*ATI.*Mobility.* 41.. 1 1 1 3.3 ATI Mobility Radeon 5000 .*ATI.*Mobility.* 50.. 1 1 1 4.2 ATI Mobility Radeon 7xxx .*ATI.*Mobility.*Radeon 7.* 0 1 1 1.3 @@ -128,42 +109,66 @@ ATI Mobility Radeon HD 5400 .*ATI.*Mobility.*HD 54.* 2 1 1 4.2 ATI Mobility Radeon HD 5500 .*ATI.*Mobility.*HD 55.* 3 1 0 4.2 ATI Mobility Radeon HD 5600 .*ATI.*Mobility.*HD 56.* 3 1 1 4.2 ATI Mobility Radeon HD 5700 .*ATI.*Mobility.*HD 57.* 3 1 1 4.1 -ATI Mobility Radeon HD 6200 .*ATI.*Mobility.*HD 62.* 3 1 0 0 -ATI Mobility Radeon HD 6300 .*ATI.*Mobility.*HD 63.* 3 1 1 4.2 -ATI Mobility Radeon HD 6400M .*ATI.*Mobility.*HD 64.* 3 1 0 0 -ATI Mobility Radeon HD 6500M .*ATI.*Mobility.*HD 65.* 5 1 1 4.2 -ATI Mobility Radeon HD 6600M .*ATI.*Mobility.*HD 66.* 5 1 0 0 -ATI Mobility Radeon HD 6700M .*ATI.*Mobility.*HD 67.* 5 1 0 0 -ATI Mobility Radeon HD 6800M .*ATI.*Mobility.*HD 68.* 5 1 0 0 -ATI Mobility Radeon HD 6900M .*ATI.*Mobility.*HD 69.* 5 1 0 0 -ATI Mobility Radeon Graphics .*ATI Mobility Radeon Graphics.* 1 1 0 4 +ATI Mobility Radeon X1000 .*ATI.*Mobility.*Radeon ?X1..* 2 1 0 2.1 +ATI Mobility Radeon X1200 .*ATI.*Mobility.*Radeon ?X12.* 2 1 0 2.1 +ATI Mobility Radeon X2000 .*ATI.*Mobility.*Radeon ?X20.* 2 1 0 2.1 +ATI Mobility Radeon X2300 .*ATI.*Mobility.*Radeon ?X23.* 2 1 0 2.1 +ATI Mobility Radeon X2500 .*ATI.*Mobility.*Radeon ?X25.* 2 1 0 2.1 +ATI Mobility Radeon XX000 .*ATI.*Mobility.*Radeon ?Xx.* 2 1 0 2.1 +ATI Radeon HD 5xx .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)5x. 1 1 1 4 +ATI Radeon HD 6200D/G/M .*ATI.*AMD Radeon.* (HD|HD )62..[DGM].* 3 1 0 4.2 +ATI Radeon HD 6300D/G/M .*ATI.*AMD Radeon.* (HD|HD )63..[DGM].* 3 1 1 4.2 +ATI Radeon HD 6400D/G/M .*ATI.*AMD Radeon.* (HD|HD )64..[DGM].* 3 1 0 4.2 +ATI Radeon HD 6500D/G/M .*ATI.*AMD Radeon.* (HD|HD )65..[DGM].* 4 1 1 4.2 +ATI Radeon HD 6600D/G/M .*ATI.*AMD Radeon.* (HD|HD )66..[DGM].* 4 1 0 4.2 +ATI Radeon HD 6700D/G/M .*ATI.*AMD Radeon.* (HD|HD )67..[DGM].* 4 1 0 4.2 +ATI Radeon HD 6800D/G/M .*ATI.*AMD Radeon.* (HD|HD )68..[DGM].* 4 1 0 4.2 +ATI Radeon HD 6900D/G/M .*ATI.*AMD Radeon.* (HD|HD )69..[DGM].* 4 1 0 4.2 +ATI Radeon HD 7200D/G/M .*ATI.*AMD Radeon.* (HD|HD )72..[DGM].* 3 1 0 4.2 +ATI Radeon HD 7300D/G/M .*ATI.*AMD Radeon.* (HD|HD )73..[DGM].* 3 1 0 4.2 +ATI Radeon HD 7400D/G/M .*ATI.*AMD Radeon.* (HD|HD )74..[DGM].* 3 1 0 4.2 +ATI Radeon HD 7500D/G/M .*ATI.*AMD Radeon.* (HD|HD )75..[DGM].* 4 1 0 4.2 +ATI Radeon HD 7600D/G/M .*ATI.*AMD Radeon.* (HD|HD )76..[DGM].* 4 1 0 4.2 +ATI Radeon HD 7700D/G/M .*ATI.*AMD Radeon.* (HD|HD )77..[DGM].* 4 1 0 4.2 +ATI Radeon HD 7800D/G/M .*ATI.*AMD Radeon.* (HD|HD )78..[DGM].* 4 1 0 4.2 +ATI Radeon HD 7900D/G/M .*ATI.*AMD Radeon.* (HD|HD )79..[DGM].* 4 1 0 4.2 +ATI Radeon HD 8200D/G/M .*ATI.*AMD Radeon.* (HD|HD )82..[DGM].* 3 1 0 4.2 +ATI Radeon HD 8300D/G/M .*ATI.*AMD Radeon.* (HD|HD )83..[DGM].* 3 1 0 4.2 +ATI Radeon HD 8400D/G/M .*ATI.*AMD Radeon.* (HD|HD )84..[DGM].* 4 1 0 4.2 +ATI Radeon HD 8500D/G/M .*ATI.*AMD Radeon.* (HD|HD )85..[DGM].* 4 1 0 4.2 +ATI Radeon HD 8600D/G/M .*ATI.*AMD Radeon.* (HD|HD )86..[DGM].* 4 1 0 4.2 +ATI Radeon HD 8700D/G/M .*ATI.*AMD Radeon.* (HD|HD )87..[DGM].* 4 1 0 4.2 +ATI Radeon HD 8800D/G/M .*ATI.*AMD Radeon.* (HD|HD )88..[DGM].* 4 1 0 4.2 +ATI Radeon HD 8900D/G/M .*ATI.*AMD Radeon.* (HD|HD )89..[DGM].* 4 1 0 4.2 ATI Radeon HD 2300 .*ATI.*Radeon.* (HD|HD )23.. 0 1 1 3.3 -ATI Radeon HD 2400 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)24.. 1 1 1 4 -ATI Radeon HD 2600 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)26.. 2 1 1 4 +ATI Radeon HD 2400 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)24.. 1 1 1 4 +ATI Radeon HD 2600 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)26.. 2 1 1 4 ATI Radeon HD 2900 .*ATI.*Radeon.* (HD|HD )29.. 3 1 1 3.3 ATI Radeon HD 3000 .*ATI.*Radeon.* (HD|HD )30.. 0 1 0 0 ATI Radeon HD 3100 .*ATI.*Radeon.* (HD|HD )31.. 1 1 0 0 ATI Radeon HD 3200 .*ATI.*Radeon.* (HD|HD )32.. 1 1 1 4 ATI Radeon HD 3300 .*ATI.*Radeon.* (HD|HD )33.. 1 1 1 3.3 -ATI Radeon HD 3400 .*ATI.*(Radeon|ASUS).* (HD|HD |AH|EAH)34.. 1 1 1 4 +ATI Radeon HD 3400 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |AH||AX|EAH)34.. 1 1 1 4 ATI Radeon HD 3500 .*ATI.*Radeon.* (HD|HD )35.. 2 1 0 0 -ATI Radeon HD 3600 .*ATI.*(Radeon|ASUS).* (HD|HD |AH|EAH)36.. 3 1 1 4 +ATI Radeon HD 3600 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |AH||AX|EAH)36.. 3 1 1 4 ATI Radeon HD 3700 .*ATI.*Radeon.* (HD|HD )37.. 3 1 0 3.3 ATI HD3700 .*ATI.* HD37.. 3 1 0 3.3 -ATI Radeon HD 3800 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)38.. 3 1 1 4 +ATI Radeon HD 3800 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH|AX|)38.. 3 1 1 4 ATI Radeon HD 4100 .*ATI.*Radeon.* (HD|HD )41.. 1 1 0 0 ATI Radeon HD 4200 .*ATI.*Radeon.* (HD|HD )42.. 1 1 1 4 -ATI Radeon HD 4300 .*ATI.*(Radeon|ASUS).* (HD4|HD 4|EAH4|4)3.. 2 1 1 4 +ATI Radeon HD 4300 .*ATI.*(Radeon|ASUS).* (AH|AX|HD4|HD 4|EAH4|4)3.. 2 1 1 4 ATI Radeon HD 4400 .*ATI.*Radeon.* (HD|HD )44.. 2 1 0 0 -ATI Radeon HD 4500 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)45.. 2 1 1 3.3 -ATI Radeon HD 4600 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)46.. 3 1 1 4 -ATI Radeon HD 4700 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)47.. 3 1 1 3.3 -ATI Radeon HD 4800 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)48.. 3 1 1 4 -ATI Radeon HD 5400 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)54.. 3 1 1 4.2 -ATI Radeon HD 5500 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)55.. 3 1 1 4.2 -ATI Radeon HD 5600 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)56.. 3 1 1 4.2 -ATI Radeon HD 5700 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)57.. 3 1 1 4.2 -ATI Radeon HD 5800 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)58.. 4 1 1 4.2 +ATI Radeon HD 4500 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)45.. 2 1 1 3.3 +ATI RADEON E4690 .*ATI.*RADEON.* E46.. 3 1 1 4 +ATI Radeon HD 4600 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)46.. 3 1 1 4 +ATI Radeon HD 4700 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)47.. 3 1 1 3.3 +ATI Radeon HD 4800 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)48.. 3 1 1 4 +ATI Radeon HD 5000 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)50.. 3 1 1 4.2 +ATI Radeon HD 5400 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)54.. 3 1 1 4.2 +ATI Radeon HD 5500 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)55.. 3 1 1 4.2 +ATI Radeon HD 5600 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)56.. 3 1 1 4.2 +ATI Radeon HD 5700 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)57.. 3 1 1 4.2 +ATI Radeon HD 5800 .*ATI.*(Radeon|ASUS).* (AH|AX|HD|HD |EAH)58.. 4 1 1 4.2 ATI Radeon HD 5900 .*ATI.*Radeon.* (HD|HD )59.. 4 1 1 4.2 ATI Radeon HD 6200 .*ATI.*Radeon.* (HD|HD )62.. 0 1 1 4.2 ATI Radeon HD 6300 .*ATI.*Radeon.* (HD|HD )63.. 1 1 1 4.2 @@ -173,11 +178,31 @@ ATI Radeon HD 6600 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)66.. 3 1 1 4.2 ATI Radeon HD 6700 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)67.. 3 1 1 4.2 ATI Radeon HD 6800 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)68.. 4 1 1 4.2 ATI Radeon HD 6900 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)69.. 5 1 1 4.2 +ATI Radeon HD 6x00 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)6x.. 5 1 1 4.2 +ATI Radeon HD 7100 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)71.* 2 1 0 0 +ATI Radeon HD 7200 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)72.* 2 1 0 4.2 +ATI Radeon HD 7300 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)73.* 2 1 0 4.2 +ATI Radeon HD 7400 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)74.* 2 1 0 4.2 +ATI Radeon HD 7500 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)75.* 3 1 1 4.2 +ATI Radeon HD 7600 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)76.* 3 1 0 4.2 +ATI Radeon HD 7700 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)77.* 4 1 1 4.2 +ATI Radeon HD 7800 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)78.* 5 1 1 4.2 +ATI Radeon HD 7900 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)79.* 5 1 1 4.2 +ATI Radeon HD 7000 Series .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)7000 Series.* 3 1 1 4.2 +ATI Radeon HD 8200 .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)82.* 2 1 0 4.2 +ATI Radeon HD 8300 (OEM) .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)83.* 2 1 0 4.2 +ATI Radeon HD 8400 (OEM) .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)84.* 2 1 0 4.2 +ATI Radeon HD 8500 (OEM) .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)85.* 3 1 1 4.2 +ATI Radeon HD 8600 (OEM) .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)86.* 3 1 0 4.2 +ATI Radeon HD 8700 (OEM) .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)87.* 4 1 1 4.2 +ATI Radeon HD 8800 (OEM) .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)88.* 5 1 1 4.2 +ATI Radeon HD 8900 (OEM) .*ATI.*(Radeon|ASUS).* (HD|HD |EAH)89.* 5 1 1 4.2 ATI Radeon OpenGL .*ATI.*Radeon OpenGL.* 0 0 0 0 ATI Radeon 2100 .*ATI.*Radeon 21.. 0 1 1 2.1 ATI Radeon 3000 .*ATI.*Radeon 30.. 1 1 1 4 ATI Radeon 3100 .*ATI.*Radeon 31.. 0 1 1 3.3 ATI Radeon 5xxx .*ATI.*Radeon 5... 3 1 0 0 +ATI Radeon 6xxx .*ATI.*Radeon 6... 0 1 0 0 ATI Radeon 7xxx .*ATI.*Radeon 7... 0 1 1 2 ATI Radeon 8xxx .*ATI.*Radeon 8... 0 1 0 0 ATI Radeon 9000 .*ATI.*Radeon 90.. 0 1 1 1.3 @@ -187,6 +212,8 @@ ATI Radeon 9500 .*ATI.*Radeon 95.. 0 1 1 2.1 ATI Radeon 9600 .*ATI.*Radeon 96.. 0 1 1 2.1 ATI Radeon 9700 .*ATI.*Radeon 97.. 1 1 0 0 ATI Radeon 9800 .*ATI.*Radeon 98.. 1 1 1 2.1 +ATI Radeon R7 .*ATI.*(Radeon|ASUS).* R7.* 4 1 0 4.2 +ATI Radeon R9 .*ATI.*(Radeon|ASUS).* R9.* 5 1 0 4.2 ATI Radeon RV250 .*ATI.*RV250.* 0 1 0 0 ATI Radeon RV600 .*ATI.*RV6.* 1 1 0 0 ATI Radeon RX700 .*ATI.*RX70.* 1 1 0 0 @@ -195,6 +222,7 @@ ATI RS880M .*ATI.*RS880M 1 1 0 0 ATI Radeon RX9550 .*ATI.*RX9550.* 1 1 0 0 ATI Radeon VE .*ATI.*Radeon.*VE.* 0 0 0 0 ATI Radeon X300 .*ATI.*Radeon X3.* 1 1 1 2.1 +ATI RADEON X300SE .*ATI.*RADEON[ ]*X300SE* 1 1 1 2.1 ATI Radeon X400 .*ATI.*Radeon ?X4.* 0 1 0 0 ATI Radeon X500 .*ATI.*Radeon ?X5.* 1 1 1 2.1 ATI Radeon X600 .*ATI.*(Radeon |ASUS Extreme A)X6.* 1 1 1 2.1 @@ -202,10 +230,14 @@ ATI Radeon X700 .*ATI.*Radeon ?X7.* 2 1 1 2.1 ATI Radeon X800 .*ATI.*Radeon ?X8.* 1 1 1 2.1 ATI Radeon X900 .*ATI.*Radeon ?X9.* 2 1 0 0 ATI Radeon X1000 .*ATI.*Radeon ?X10.* 2 1 0 2.1 +ATI Radeon X1100 .*ATI.*Radeon ?X11.* 2 1 0 2.1 ATI Radeon X1200 .*ATI.*Radeon ?X12.* 2 1 0 2.1 -ATI Radeon X1400 .*ATI.*Radeon ?X14.* 2 1 0 2.1 +ATI Radeon X1xxx .*ATI.*Radeon ?X1xx.* 2 1 0 2.1 +ATI Radeon X12xx .*ATI.*Radeon ?X12x.* 2 1 0 2.1 +ATI Radeon X2xxx .*ATI.*Radeon ?X2x.* 2 1 0 2.1 ATI Radeon X2300 .*ATI.*Radeon ?X23.* 2 1 0 2.1 ATI Radeon Xpress .*ATI.*Radeon Xpress.* 0 1 1 2.1 +ATI Radeon .*ATI.*Radeon$ 3 1 0 0 ATI Rage 128 .*ATI.*Rage 128.* 0 1 0 0 ATI R300 (9700) .*R300.* 0 1 1 2.1 ATI R350 (9800) .*R350.* 1 1 0 0 @@ -224,7 +256,9 @@ ATI RX480 (Xpress 200P) .*RX480.* 0 1 0 0 ATI RX700 .*RX700.* 1 1 0 0 AMD ANTILLES (HD 6990) .*(AMD|ATI).*Antilles.* 3 1 0 0 ATI ROBSON .*(AMD|ATI).*ROBSON.* 3 1 0 4 +AMD ARUBA (HD 6800) .*(AMD|ATI).*ARUBA.* 3 1 1 2.1 AMD BARTS (HD 6800) .*(AMD|ATI).*Barts.* 3 1 1 2.1 +AMD BA (HD 6800) .*(AMD|ATI).*BA.* 3 1 1 2.1 AMD WRESTLER .*(AMD|ATI).*WRESTLER.* 3 1 1 4 AMD SUMO .*(AMD|ATI).*SUMO.* 3 1 1 4.1 AMD CAICOS (HD 6400) .*(AMD|ATI).*Caicos.* 3 1 0 0 @@ -236,6 +270,8 @@ AMD JUNIPER (HD 5700) .*(AMD|ATI).*Juniper.* 3 1 0 0 AMD PARK .*(AMD|ATI).*Park.* 3 1 0 0 AMD REDWOOD (HD 5500/5600) .*(AMD|ATI).*Redwood.* 3 1 0 1.4 AMD TURKS (HD 6500/6600) .*(AMD|ATI).*Turks.* 3 1 0 2.1 +AMD PITCAIRN (HD 7870) .*(AMD|ATI).*Pitcairn.* 3 1 0 2.1 +AMD TAHITI (HD 7000) .*(AMD|ATI).*Tahiti.* 3 1 0 2.1 AMD RS780 (HD 3200) .*RS780.* 0 1 1 2.1 AMD RS880 (HD 4200) .*RS880.* 0 1 1 3.2 AMD RV610 (HD 2400) .*RV610.* 1 1 0 0 @@ -253,15 +289,15 @@ AMD RV790 (HD 4800) .*RV790.* 3 1 0 0 ATI 760G/Radeon 3000 .*ATI.*AMD 760G.* 1 1 1 3.3 ATI 780L/Radeon 3000 .*ATI.*AMD 780L.* 1 1 0 0 ATI Radeon DDR .*ATI.*Radeon ?DDR.* 0 1 0 0 -ATI FirePro 2000 .*ATI.*FirePro 2.* 2 1 1 4.2 -ATI FirePro 3000 .*ATI.*FirePro V3.* 2 1 0 0 -ATI FirePro 4000 .*ATI.*FirePro V4.* 2 1 0 4.1 -ATI FirePro 5000 .*ATI.*FirePro V5.* 3 1 0 0 -ATI FirePro 7000 .*ATI.*FirePro V7.* 3 1 0 0 +ATI FirePro 2000 .*ATI.*FirePro [V]*2.* 2 1 1 4.2 +ATI FirePro 3000 .*ATI.*FirePro [V]*3.* 2 1 0 0 +ATI FirePro 4000 .*ATI.*FirePro [V]*4.* 2 1 0 4.1 +ATI FirePro 5000 .*ATI.*FirePro [V]*5.* 3 1 0 0 +ATI FirePro 7000 .*ATI.*FirePro [V]*7.* 3 1 0 0 ATI FirePro M .*ATI.*FirePro M.* 3 1 1 4.2 -ATI R300 (9700) .*R300.* 0 1 1 2.1 Intel X3100 .*Intel.*X3100.* 1 1 1 2.1 Intel GMA 3600 .*Intel.* 3600.* 0 1 1 3 +Intel Royal BNA .*Intel.*Royal[ ]*BNA.* 0 0 0 0 Intel 830M .*Intel.*830M 0 0 0 0 Intel 845G .*Intel.*845G 0 0 1 1.4 Intel 855GM .*Intel.*855GM 0 0 1 1.4 @@ -282,11 +318,20 @@ Intel Brookdale .*Intel.*Brookdale.* 0 0 1 1.3 Intel Cantiga .*Intel.*Cantiga.* 0 0 1 2 Intel Eaglelake .*Intel.*Eaglelake.* 1 1 1 2 Intel Graphics Media HD .*Intel.*Graphics Media.*HD.* 1 1 1 2.1 -Intel HD Graphics 2000 .*Intel.*HD Graphics 2.* 2 1 0 4 +Intel HD Graphics 2500 .*Intel.*HD Graphics 25.* 2 1 0 4.2 +Intel HD Graphics 2000 .*Intel.*HD Graphics 2.* 2 1 0 3.1 Intel HD Graphics 3000 .*Intel.*HD Graphics 3.* 3 1 1 3.1 -Intel HD Graphics 4000 .*Intel.*HD Graphics 4.* 3 1 1 4 +Intel HD Graphics 4200 .*Intel.*HD Graphics 42.* 3 1 0 4.2 +Intel HD Graphics 4400 .*Intel.*HD Graphics 44.* 3 1 0 4.2 +Intel HD Graphics 4600 .*Intel.*HD Graphics 46.* 3 1 0 4.2 +Intel HD Graphics 4000 .*Intel.*HD Graphics 4.* 3 1 1 4.2 +Intel Intel Iris Pro Graphics 5200 .*Intel.*Iris Pro Graphics 52.* 4 1 0 4 +Intel Intel Iris Graphics 5100 .*Intel.*Iris Graphics 51.* 4 1 0 4 +Intel Intel Iris OpenGL Engine .*Intel.*Iris (Pro )*OpenGL.* 4 1 0 4 +Intel HD Graphics 5000 .*Intel.*HD Graphics 5.* 4 1 0 4 Intel HD Graphics .*Intel.*HD Graphics.* 2 1 1 4 Intel Mobile 4 Series .*Intel.*Mobile.* 4 Series.* 0 1 1 2.1 +Intel Mobile 45 Express .*Intel.*Mobile.* 45 Express Chipset.* 0 1 0 2.1 Intel 4 Series Internal .*Intel.* 4 Series Internal.* 1 1 1 2.1 Intel Media Graphics HD .*Intel.*Media Graphics HD.* 0 1 0 0 Intel Montara .*Intel.*Montara.* 0 0 1 1.3 @@ -299,116 +344,197 @@ Intel 3D-Analyze .*Intel.*3D-Analyze.* 2 1 0 0 Matrox .*Matrox.* 0 0 0 0 Mesa .*Mesa.* 1 0 1 3 Gallium .*Gallium.* 1 1 1 2.1 -NVIDIA G100M .*NVIDIA .* 10[0-9]M.* 4 1 1 3.3 -NVIDIA G 110M .*NVIDIA .* 11[0-9]M.* 1 1 1 3.3 -NVIDIA G 120M .*NVIDIA .* 12[0-9]M.* 1 1 1 3.3 -NVIDIA G 200M .*NVIDIA .* 20[0-9]M.* 1 1 0 0 -NVIDIA G 410M .*NVIDIA .* 41[0-9]M.* 3 1 1 4.2 -NVIDIA GT 130M .*NVIDIA .*GT 13[0-9]M.* 3 1 1 3.3 -NVIDIA GT 140M .*NVIDIA .*GT 14[0-9]M.* 3 1 1 3.3 -NVIDIA GT 150M .*NVIDIA .*GTS 15[0-9]M.* 2 1 0 0 -NVIDIA GTS 160M .*NVIDIA .*GTS 16[0-9]M.* 2 1 0 0 -NVIDIA G210M .*NVIDIA .*G21[0-9]M.* 3 1 0 3.3 +NVIDIA GeForce Pre-Release .*NVIDIA .*GeForce[ ]Pre-Release.* 2 1 1 3.3 +NVIDIA D1xP1 .*NVIDIA .*D1[0-4]P1.* 0 0 0 0 +NVIDIA Mystery PCI Card .*NVIDIA .Corporation [/]PCI]/]SSE2.* 0 0 0 0 +NVIDIA Quadro FX 770M .*Quadro.*FX 77[0-9]M.* 2 1 0 3.3 +NVIDIA Quadro FX 1500M .*Quadro.*FX 150[0-9]M.* 1 1 0 2.1 +NVIDIA Quadro FX 1600M .*Quadro.*FX 160[0-9]M.* 2 1 0 3.3 +NVIDIA Quadro FX 2500M .*Quadro.*FX 250[0-9]M.* 2 1 0 2.1 +NVIDIA Quadro FX 2700M .*Quadro.*FX 270[0-9]M.* 3 1 0 3.3 +NVIDIA Quadro FX 2800M .*Quadro.*FX 280[0-9]M.* 3 1 0 3.3 +NVIDIA Quadro FX 3500 .*Quadro.*FX 3500.* 2 1 0 2.1 +NVIDIA Quadro FX 3600 .*Quadro.*FX 3600.* 3 1 0 3.3 +NVIDIA Quadro FX 3700 .*Quadro.*FX 3700.* 3 1 0 3.3 +NVIDIA Quadro FX 3800 .*Quadro.*FX 3800.* 3 1 0 3.3 +NVIDIA Quadro FX 4500 .*Quadro.*FX 45.* 3 1 0 2.1 +NVIDIA Quadro FX 880M .*Quadro.*FX 88[0-9]M.* 3 1 0 3.3 +NVIDIA Quadro FX 4800 .*NVIDIA .*Quadro FX 4800.* 3 1 0 3.1 +NVIDIA Quadro FX .*NVIDIA .*Quadro FX.* 1 1 0 3.3 +NVIDIA Quadro NVS 1xxM .*NVIDIA .*(Quadro)* NVS *1.[05]M.* 0 1 1 3.3 +NVIDIA Quadro NVS 300M .*NVIDIA .*(Quadro)*[ ]+NVS *30[0-9]M.* 2 1 0 0 +NVIDIA Quadro NVS 320M .*NVIDIA .*(Quadro)*[ ]+NVS *32[0-9]M.* 2 1 0 0 +NVIDIA Quadro NVS 2100M .*NVIDIA .*(Quadro)*[ ]+NVS *210[0-9]M.* 2 1 0 3.3 +NVIDIA Quadro NVS 3100M .*NVIDIA .*(Quadro)*[ ]+NVS *310[0-9]M.* 2 1 0 3.3 +NVIDIA Quadro NVS 4200M .*NVIDIA .*(Quadro)*[ ]+NVS *420[0-9]M.* 2 1 0 4.2 +NVIDIA Quadro NVS 5100M .*NVIDIA .*(Quadro)*[ ]+NVS *510[0-9]M.* 2 1 0 0 +NVIDIA Quadro NVS 5200M .*NVIDIA .*(Quadro)*[ ]+NVS *520[0-9]M.* 2 1 0 0 +NVIDIA Quadro NVS 5400M .*NVIDIA .*(Quadro)*[ ]+NVS *540[0-9]M.* 2 1 0 0 +NVIDIA Quadro NVS .*NVIDIA .*(Quadro)*[ ]+NVS 0 1 0 4.2 +NVIDIA Quadro2 .*Quadro2.* 0 1 0 1.5 +NVIDIA Quadro 1000M .*Quadro.* (K1|1)00[0-9]M.* 2 1 0 4.2 +NVIDIA Quadro 1100M .*Quadro.* *110[0-9]M.* 2 1 0 3.3 +NVIDIA Quadro K600 .*Quadro.* (K6|6)0[0-9][^0].* 2 1 0 4.2 +NVIDIA Quadro K1000 .*Quadro.* (K1|1)00[0-9].* 2 1 0 4.2 +NVIDIA Quadro 2000 M/D .*Quadro.* (K2|2)000.* 3 1 0 4.2 +NVIDIA Quadro 3000M .*Quadro.* (K3|3)00[0-9]M.* 3 1 0 4.2 +NVIDIA Quadro 4000M .*Quadro.* (K4|4)00[0-9]M.* 3 1 0 4.2 +NVIDIA Quadro 4000 .*Quadro.* (K4|4)000.* 3 1 0 4.2 +NVIDIA Quadro 50x0 M .*Quadro.* (K5|5)0.0.* 3 1 0 4.2 +NVIDIA Quadro 6000 .*Quadro.* (K6|6)000.* 3 1 0 0 +NVIDIA Quadro 400 .*Quadro.* 400.* 2 1 0 3.3 +NVIDIA Quadro 600 .*Quadro.* 600.* 2 1 0 4.2 +NVIDIA Quadro4 .*Quadro4.* 0 1 0 1.5 +NVIDIA Quadro DCC .*Quadro DCC.* 0 1 0 0 +NVIDIA Quadro CX .*Quadro.*CX.* 3 1 0 0 +NVIDIA G 100M .*NVIDIA .*G *10[0-9]M.* 1 1 1 3.3 +NVIDIA G 110M .*NVIDIA .*G *11[0-9]M.* 1 1 1 3.3 +NVIDIA G 120M .*NVIDIA .*G *12[0-9]M.* 1 1 1 3.3 +NVIDIA G 200M .*NVIDIA .*G *20[0-9]M.* 1 1 0 0 +NVIDIA G 410M .*NVIDIA .*G *41[0-9]M.* 3 1 1 4.2 +NVIDIA GT 130M .*NVIDIA .*GT *13[0-9]M.* 3 1 1 3.3 +NVIDIA GT 140M .*NVIDIA .*GT *14[0-9]M.* 3 1 1 3.3 +NVIDIA GT 150M .*NVIDIA .*GTS *15[0-9]M.* 2 1 0 0 +NVIDIA GTS 160M .*NVIDIA .*GTS *16[0-9]M.* 2 1 0 0 +NVIDIA G210M .*NVIDIA .*G *21[0-9]M.* 3 1 0 3.3 NVIDIA GT 220M .*NVIDIA .*GT 22[0-9]M.* 3 1 1 3.3 NVIDIA GT 230M .*NVIDIA .*GT 23[0-9]M.* 3 1 1 3.3 NVIDIA GT 240M .*NVIDIA .*GT 24[0-9]M.* 3 1 1 3.3 +NVIDIA GT 260M .*NVIDIA .*GT 26[0-9]M.* 3 1 1 3.3 NVIDIA GTS 250M .*NVIDIA .*GTS 25[0-9]M.* 3 1 0 3.3 NVIDIA GTS 260M .*NVIDIA .*GTS 26[0-9]M.* 3 1 0 0 NVIDIA GTX 260M .*NVIDIA .*GTX 26[0-9]M.* 3 1 0 3.3 NVIDIA GTX 270M .*NVIDIA .*GTX 27[0-9]M.* 3 1 0 0 NVIDIA GTX 280M .*NVIDIA .*GTX 28[0-9]M.* 3 1 0 3.3 NVIDIA 300M .*NVIDIA .*GT 30[0-9]M.* 3 1 1 4.2 -NVIDIA G 310M .*NVIDIA .* 31[0-9]M.* 2 1 0 3.3 -NVIDIA GT 320M .*NVIDIA .* 32[0-9]M.* 3 1 0 3.3 -NVIDIA GT 330M .*NVIDIA .*GT 33[0-9]M.* 3 1 1 3.3 -NVIDIA GT 340M .*NVIDIA .*GT 34[0-9]M.* 4 1 1 3.3 +NVIDIA G 310M .*NVIDIA .*G[T]* 31[0-9]M.* 2 1 0 3.3 +NVIDIA GT 320M .*NVIDIA .*G[T]* 32[0-9]M.* 3 1 0 3.3 +NVIDIA GT 330M .*NVIDIA .*G[T]* 33[0-9]M.* 3 1 1 3.3 +NVIDIA GT 340M .*NVIDIA .*G[T]* 34[0-9]M.* 4 1 1 3.3 NVIDIA GTS 350M .*NVIDIA .*GTS 35[0-9]M.* 4 1 1 3.3 NVIDIA GTS 360M .*NVIDIA .*GTS 36[0-9]M.* 5 1 1 3.3 -NVIDIA 400M .*NVIDIA .* 40[0-9]M.* 2 1 0 0 -NVIDIA 410M .*NVIDIA .* 41[0-9]M.* 3 1 0 0 -NVIDIA GT 420M .*NVIDIA .*GT 42[0-9]M.* 3 1 1 4.2 -NVIDIA GT 430M .*NVIDIA .*GT 43[0-9]M.* 3 1 1 4.2 -NVIDIA GT 440M .*NVIDIA .*GT 44[0-9]M.* 3 1 1 4.2 -NVIDIA GT 450M .*NVIDIA .*GT 45[0-9]M.* 3 1 0 0 -NVIDIA GTX 460M .*NVIDIA .*GTX 46[0-9]M.* 4 1 1 4.3 -NVIDIA GTX 470M .*NVIDIA .*GTX 47[0-9]M.* 3 1 0 4.2 -NVIDIA GTX 480M .*NVIDIA .*GTX 48[0-9]M.* 3 1 1 4.2 -NVIDIA GT 520M .*NVIDIA .*GT 52[0-9]M.* 3 1 1 4.2 -NVIDIA GT 530M .*NVIDIA .*GT 53[0-9]M.* 3 1 1 4.2 -NVIDIA GT 540M .*NVIDIA .*GT 54[0-9]M.* 3 1 1 4.2 -NVIDIA GT 550M .*GeForce GT 55[0-9]M.* 3 1 1 4.2 -NVIDIA GTX 560M .*NVIDIA .*GTX 56[0-9]M.* 3 1 0 4.2 -NVIDIA GTX 570M .*NVIDIA .*GTX 57[0-9]M.* 5 1 0 4.2 -NVIDIA GTX 580M .*NVIDIA .*GTX 58[0-9]M.* 5 1 1 4.2 -NVIDIA 610M .*NVIDIA.* 61[0-9]M.* 3 1 1 4.2 -NVIDIA GT 620M .*NVIDIA .*GT 62[0-9]M.* 3 1 0 4.2 -NVIDIA GT 630M .*NVIDIA .*GT 63[0-9]M.* 3 1 0 4.2 -NVIDIA GT 640M .*NVIDIA .*GT 64[0-9]M.* 3 1 0 4.2 -NVIDIA GT 650M .*NVIDIA .*GT 65[0-9]M.* 3 1 0 4.2 -NVIDIA GTX 660M .*NVIDIA .*GTX 66[0-9]M.* 5 1 0 4.3 -NVIDIA GTX 670M .*NVIDIA .*GTX 67[0-9]M.* 5 1 1 4.2 -NVIDIA GTX 680M .*NVIDIA .*GTX 68[0-9]M.* 5 1 0 4.2 -NVIDIA GTX 690M .*NVIDIA .*GTX 69[0-9]M.* 5 1 0 0 +NVIDIA 310M .*NVIDIA .*31[0-9]M.* 2 1 0 3.3 +NVIDIA 320M .*NVIDIA .*320M.* 2 1 0 3.3 +NVIDIA 400M .*NVIDIA .*[ ]+40[0-9]M.* 2 1 0 0 +NVIDIA 410M .*NVIDIA .*[ ]+41[0-9]M.* 3 1 0 0 +NVIDIA GT 420M .*NVIDIA .*GT *42[0-9]M.* 3 1 1 4.3 +NVIDIA GT 430M .*NVIDIA .*GT *43[0-9]M.* 3 1 1 4.3 +NVIDIA GT 440M .*NVIDIA .*GT *44[0-9]M.* 3 1 1 4.3 +NVIDIA GT 450M .*NVIDIA .*GT *45[0-9]M.* 3 1 0 0 +NVIDIA GTX 460M .*NVIDIA .*GTX *46[0-9]M.* 4 1 1 4.3 +NVIDIA GTX 470M .*NVIDIA .*GTX *47[0-9]M.* 3 1 0 4.3 +NVIDIA GTX 480M .*NVIDIA .*GTX *48[0-9]M.* 3 1 1 4.3 +NVIDIA GT 520M .*NVIDIA .*GT *52[0-9]M.* 3 1 1 4.3 +NVIDIA GT 530M .*NVIDIA .*GT *53[0-9]M.* 3 1 1 4.3 +NVIDIA GT 540M .*NVIDIA .*GT *54[0-9]M.* 3 1 1 4.3 +NVIDIA GT 550M .*NVIDIA .*GT *55[0-9]M.* 3 1 1 4.3 +NVIDIA GTX 560M .*NVIDIA .*GTX *56[0-9]M.* 3 1 0 4.3 +NVIDIA GTX 570M .*NVIDIA .*GTX *57[0-9]M.* 5 1 0 4.3 +NVIDIA GTX 580M .*NVIDIA .*GTX *58[0-9]M.* 5 1 1 4.3 +NVIDIA 610M .*NVIDIA.* 61[0-9]M.* 3 1 1 4.3 +NVIDIA GT 620M .*NVIDIA .*GT *62[0-9]M.* 3 1 0 4.3 +NVIDIA GT 630M .*NVIDIA .*GT *63[0-9]M.* 3 1 0 4.3 +NVIDIA GT 640M .*NVIDIA .*GT *64[0-9]M.* 3 1 0 4.3 +NVIDIA GT 650M .*NVIDIA .*GT *65[0-9]M.* 3 1 0 4.3 +NVIDIA GTX 660M .*NVIDIA .*GTX *66[0-9]M.* 5 1 0 4.3 +NVIDIA GTX 670M .*NVIDIA .*GTX *67[0-9]M.* 5 1 1 4.3 +NVIDIA GTX 680M .*NVIDIA .*GTX *68[0-9]M.* 5 1 0 4.3 +NVIDIA GTX 690M .*NVIDIA .*GTX *69[0-9]M.* 5 1 0 4.3 +NVIDIA 710M .*NVIDIA.* 71[0-9]M.* 3 1 0 4.3 +NVIDIA GT 720M .*NVIDIA .*GT *72[0-9]M.* 3 1 0 4.3 +NVIDIA GT 730M .*NVIDIA .*GT *73[0-9]M.* 3 1 0 4.3 +NVIDIA GT 740M .*NVIDIA .*GT *74[0-9]M.* 3 1 0 4.3 +NVIDIA GT 750M .*NVIDIA .*GT *75[0-9]M.* 3 1 0 4.3 +NVIDIA GTX 760M .*NVIDIA .*GTX *76[0-9]M.* 5 1 0 4.3 +NVIDIA GTX 770M .*NVIDIA .*GTX *77[0-9]M.* 5 1 0 4.3 +NVIDIA GTX 780M .*NVIDIA .*GTX *78[0-9]M.* 5 1 0 4.3 NVIDIA G100 .*NVIDIA .*G10.* 3 1 1 4.2 NVIDIA GT 120 .*NVIDIA .*GT 12.* 2 1 0 3.3 NVIDIA GT 130 .*NVIDIA .*GT 13.* 2 1 0 3.3 NVIDIA GT 140 .*NVIDIA .*GT 14.* 2 1 0 3.3 +NVIDIA GT 150 .*NVIDIA .*GT 15.* 2 1 1 3.3 NVIDIA GTS 150 .*NVIDIA .*GTS 15.* 2 1 0 0 -NVIDIA 200 .*NVIDIA .*GeForce 20.* 2 1 1 3.3 -NVIDIA G200 .*NVIDIA .*GeForce G20.* 2 1 1 3.3 -NVIDIA G210 .*NVIDIA .*GeForce G210.* 3 1 1 3.3 -NVIDIA 210 .*NVIDIA .*GeForce 210.* 3 1 1 3.3 -NVIDIA GT 220 .*NVIDIA .*GT 22.* 2 1 1 3.3 -NVIDIA GT 230 .*NVIDIA .*GT 23.* 2 1 1 3.3 -NVIDIA GT 240 .*NVIDIA .*GT 24.* 4 1 1 3.3 -NVIDIA GTS 240 .*NVIDIA .*GTS 24.* 4 1 1 3.3 -NVIDIA GTS 250 .*NVIDIA .*GTS 25.* 4 1 1 3.3 -NVIDIA GTX 260 .*NVIDIA .*GTX 26.* 4 1 1 3.3 -NVIDIA GTX 270 .*NVIDIA .*GTX 27.* 4 1 0 3.3 -NVIDIA GTX 280 .*NVIDIA .*GTX 28.* 4 1 1 3.3 -NVIDIA GTX 290 .*NVIDIA .*GTX 29.* 5 1 0 3.3 -NVIDIA 310 .*NVIDIA .*GeForce 310.* 3 1 1 3.3 -NVIDIA 315 .*NVIDIA .*GeForce 315.* 3 1 1 3.3 -NVIDIA GT 320 .*NVIDIA .*GT 32.* 3 1 0 3.3 -NVIDIA GT 330 .*NVIDIA .*GT 33.* 3 1 0 3.3 -NVIDIA GT 340 .*NVIDIA .*GT 34.* 3 1 0 3.3 -NVIDIA 405 .*NVIDIA .* 405.* 3 1 0 3.3 -NVIDIA GT 420 .*NVIDIA .*GT 42.* 3 1 1 4.2 -NVIDIA GT 430 .*NVIDIA .*GT 43.* 3 1 1 4.3 -NVIDIA GT 440 .*NVIDIA .*GT 44.* 4 1 0 4.3 -NVIDIA GTS 450 .*NVIDIA .*GTS 45.* 4 1 1 4.2 -NVIDIA GTX 460 .*NVIDIA .*GTX 46.* 5 1 1 4.3 -NVIDIA GTX 470 .*NVIDIA .*GTX 47.* 5 1 1 4.2 -NVIDIA GTX 480 .*NVIDIA .*GTX 48.* 5 1 1 4.2 -NVIDIA 510 .*NVIDIA .* 510.* 3 1 0 4.2 -NVIDIA GT 520 .*NVIDIA .*GT 52.* 3 1 1 4.2 -NVIDIA GT 530 .*NVIDIA .*GT 53.* 3 1 1 4.2 -NVIDIA GT 540 .*NVIDIA .*GT 54.* 3 1 1 4.2 -NVIDIA GTX 550 .*NVIDIA .*GTX 55.* 5 1 1 4.3 -NVIDIA GTX 560 .*NVIDIA .*GTX 56.* 5 1 1 4.3 -NVIDIA GTX 570 .*NVIDIA .*GTX 57.* 5 1 1 4.2 -NVIDIA GTX 580 .*NVIDIA .*GTX 58.* 5 1 1 4.3 -NVIDIA GTX 590 .*NVIDIA .*GTX 59.* 5 1 1 4.2 -NVIDIA 605 .*NVIDIA .* 605.* 3 1 1 4.2 -NVIDIA GT 610 .*NVIDIA .*GT 61.* 3 1 1 4.2 -NVIDIA GT 620 .*NVIDIA .*GT 62.* 3 1 0 4.2 -NVIDIA GT 630 .*NVIDIA .*GT 63.* 3 1 0 4.2 -NVIDIA GT 640 .*NVIDIA .*GT 64.* 3 1 0 4.2 -NVIDIA GT 650 .*NVIDIA .*GT 65.* 3 1 1 4.2 -NVIDIA GTX 650 .*NVIDIA .*GTX 65.* 3 1 1 4.2 -NVIDIA GTX 660 .*NVIDIA .*GTX 66.* 5 1 0 4.3 -NVIDIA GTX 670 .*NVIDIA .*GTX 67.* 5 1 1 4.2 -NVIDIA GTX 680 .*NVIDIA .*GTX 68.* 5 1 1 4.2 -NVIDIA GTX 690 .*NVIDIA .*GTX 69.* 5 1 1 4.2 +NVIDIA 200 .*NVIDIA .[ ]+200[^0].* 2 1 1 3.3 +NVIDIA G200 .*NVIDIA .*G[ ]*200.* 2 1 1 3.3 +NVIDIA G210 .*NVIDIA .*G[ ]*210.* 3 1 1 3.3 +NVIDIA 205 .*NVIDIA .*205[^0]*.* 3 1 1 3.3 +NVIDIA 210 .*NVIDIA .*210$ 3 1 1 3.3 +NVIDIA GeForce 210 .*NVIDIA .*(GeForce)[ ]210[^0]*$ 3 1 1 3.3 +NVIDIA GT 220 .*NVIDIA .*GT *22.* 2 1 1 3.3 +NVIDIA GT 230 .*NVIDIA .*GT *23.* 2 1 1 3.3 +NVIDIA GT 240 .*NVIDIA .*GT *24.* 4 1 1 3.3 +NVIDIA GTS 240 .*NVIDIA .*GTS *24.* 4 1 1 3.3 +NVIDIA GTS 250 .*NVIDIA .*GTS *25.* 4 1 1 3.3 +NVIDIA GTS 360 .*NVIDIA .*GTS *36.* 4 1 1 3.3 +NVIDIA GTX 260 .*NVIDIA .*GTX *26.* 4 1 1 3.3 +NVIDIA GTX 270 .*NVIDIA .*GTX *27.* 4 1 0 3.3 +NVIDIA GTX 280 .*NVIDIA .*GTX *28.* 4 1 1 3.3 +NVIDIA GTX 290 .*NVIDIA .*GTX *29.* 5 1 0 3.3 +NVIDIA GT 320 .*NVIDIA .*GT *32.* 3 1 0 3.3 +NVIDIA GT 330 .*NVIDIA .*GT *33.* 3 1 0 3.3 +NVIDIA GT 340 .*NVIDIA .*GT *34.* 3 1 0 0 +NVIDIA 310 .*NVIDIA .*310[^0M]*.* 3 1 1 3.3 +NVIDIA 315 .*NVIDIA .*315[^0M]*.* 3 1 1 3.3 +NVIDIA 320 .*NVIDIA .*320[^0M]*.* 3 1 1 3.3 +NVIDIA 405 .*NVIDIA .*405[^0]*.* 3 1 0 3.3 +NVIDIA 410 .*NVIDIA .*410[^0]*.* 3 1 0 3.3 +NVIDIA GT 415 .*NVIDIA .*GT *415.* 3 1 1 4.3 +NVIDIA GT 420 .*NVIDIA .*GT *42.* 3 1 1 4.3 +NVIDIA GT 430 .*NVIDIA .*GT *43.* 3 1 1 4.3 +NVIDIA GT 440 .*NVIDIA .*GT *44.* 4 1 1 4.3 +NVIDIA GT 450 .*NVIDIA .*GT *45.* 4 1 1 4.3 +NVIDIA GTS 450 .*NVIDIA .*GTS *45.* 4 1 1 4.3 +NVIDIA GTX 460 .*NVIDIA .*GTX *46.* 5 1 1 4.3 +NVIDIA GTX 470 .*NVIDIA .*GTX *47.* 5 1 1 4.3 +NVIDIA GTX 480 .*NVIDIA .*GTX *48.* 5 1 1 4.3 +NVIDIA 505 .*NVIDIA .*505[^0]*.* 3 1 0 0 +NVIDIA 510 .*NVIDIA .*510[^0]*.* 3 1 0 0 +NVIDIA GT 520 .*NVIDIA .*GT *52.* 3 1 1 4.3 +NVIDIA GT 530 .*NVIDIA .*GT *53.* 3 1 1 4.3 +NVIDIA GT 540 .*NVIDIA .*GT *54.* 3 1 1 4.3 +NVIDIA GT 550 .*NVIDIA .*GT *55.* 3 1 1 4.3 +NVIDIA GTX 550 .*NVIDIA .*GTX *55.* 5 1 1 4.3 +NVIDIA GTX 560 .*NVIDIA .*GTX *56.* 5 1 1 4.3 +NVIDIA GTX 570 .*NVIDIA .*GTX *57.* 5 1 1 4.3 +NVIDIA GTX 580 .*NVIDIA .*GTX *58.* 5 1 1 4.3 +NVIDIA GTX 590 .*NVIDIA .*GTX *59.* 5 1 1 4.3 +NVIDIA 605 .*NVIDIA .*605[^0]*.* 3 1 1 4.3 +NVIDIA GT 61x .*NVIDIA .*GT 61.* 3 1 1 4.3 +NVIDIA GT 62x .*NVIDIA .*GT 62.* 3 1 0 4.3 +NVIDIA GT 63x .*NVIDIA .*GT 63.* 3 1 0 4.3 +NVIDIA GT 64x .*NVIDIA .*GT 64.* 3 1 0 4.3 +NVIDIA GT 65x .*NVIDIA .*GT 65.* 3 1 1 4.3 +NVIDIA GTX 64x .*NVIDIA .*GTX 64.* 3 1 1 4.3 +NVIDIA GTX 65x .*NVIDIA .*GTX 65.* 3 1 1 4.3 +NVIDIA GTX 66x .*NVIDIA .*GTX 66.* 5 1 0 4.3 +NVIDIA GTX 67x .*NVIDIA .*GTX 67.* 5 1 1 4.3 +NVIDIA GTX 68x .*NVIDIA .*GTX 68.* 5 1 1 4.3 +NVIDIA GTX 69x .*NVIDIA .*GTX 69.* 5 1 1 4.3 +NVIDIA GT 71x .*NVIDIA .*GT *71.* 3 1 0 4.3 +NVIDIA GT 72x .*NVIDIA .*GT *72.* 3 1 0 4.3 +NVIDIA GT 73x .*NVIDIA .*GT *73.* 3 1 0 4.3 +NVIDIA GT 74x .*NVIDIA .*GT *74.* 3 1 0 4.3 +NVIDIA GTX 75x .*NVIDIA .*GTX *75.* 3 1 0 4.3 +NVIDIA GTX 76x .*NVIDIA .*GTX *76.* 5 1 0 4.3 +NVIDIA GTX 77x .*NVIDIA .*GTX *77.* 5 1 0 4.3 +NVIDIA GTX 78x .*NVIDIA .*GTX *78.* 5 1 0 4.3 +NVIDIA GTX TITAN .*NVIDIA .*GTX *TITAN.* 5 1 0 4.3 NVIDIA C51 .*NVIDIA .*C51.* 0 1 1 2 NVIDIA G72 .*NVIDIA .*G72.* 1 1 0 0 NVIDIA G73 .*NVIDIA .*G73.* 1 1 0 0 NVIDIA G84 .*NVIDIA .*G84.* 2 1 0 0 NVIDIA G86 .*NVIDIA .*G86.* 3 1 0 0 NVIDIA G92 .*NVIDIA .*G92.* 3 1 0 0 +NVIDIA GK106 .*NVIDIA .*GK106.* 5 1 0 4.3 NVIDIA GeForce .*GeForce 256.* 0 0 0 0 NVIDIA GeForce 2 .*GeForce ?2 ?.* 0 1 1 1.5 +NVIDIA GeForce 3 .*GeForce ?3 ?.* 2 1 1 2.1 +NVIDIA GeForce 3 Ti .*GeForce ?3 Ti.* 0 1 0 0 NVIDIA GeForce 4 .*NVIDIA .*GeForce ?4.* 0 1 1 1.5 +NVIDIA GeForce 4 Go .*NVIDIA .*GeForce ?4.*Go.* 0 1 0 0 +NVIDIA GeForce 4 MX .*NVIDIA .*GeForce ?4 MX.* 0 1 0 0 +NVIDIA GeForce 4 PCX .*NVIDIA .*GeForce ?4 PCX.* 0 1 0 0 +NVIDIA GeForce 4 Ti .*NVIDIA .*GeForce ?4 Ti.* 0 1 0 0 NVIDIA GeForce 6100 .*NVIDIA .*GeForce 61.* 3 1 1 4.2 NVIDIA GeForce 6200 .*NVIDIA .*GeForce 62.* 0 1 1 2.1 NVIDIA GeForce 6500 .*NVIDIA .*GeForce 65.* 1 1 1 2.1 @@ -486,8 +612,6 @@ NVIDIA GeForce Go 7900 .*NVIDIA .*GeForce Go 79.* 1 1 1 2.1 NVIDIA D9M .*NVIDIA .*D9M.* 1 1 0 0 NVIDIA G94 .*NVIDIA .*G94.* 3 1 0 0 NVIDIA GeForce Go 6 .*GeForce Go 6.* 1 1 0 0 -NVIDIA ION 2 .*NVIDIA .*ION 2.* 2 1 0 0 -NVIDIA ION .*NVIDIA Corporation.*ION.* 2 1 1 3.3 NVIDIA NB8M .*NVIDIA .*NB8M.* 1 1 0 0 NVIDIA NB8P .*NVIDIA .*NB8P.* 2 1 0 0 NVIDIA NB9E .*NVIDIA .*NB9E.* 3 1 0 0 @@ -495,7 +619,9 @@ NVIDIA NB9M .*NVIDIA .*NB9M.* 1 1 0 0 NVIDIA NB9P .*NVIDIA .*NB9P.* 2 1 0 0 NVIDIA N10 .*NVIDIA .*N10.* 1 1 0 2.1 NVIDIA GeForce PCX .*GeForce PCX.* 0 1 0 1.5 -NVIDIA Generic .*NVIDIA .*Unknown.* 0 0 0 2.1 +NVIDIA PCI .*NVIDIA PCI[ ]* 0 0 0 2.1 +NVIDIA Generic .*NVIDIA Generic.* 0 0 0 2.1 +NVIDIA Generic Unknown .*NVIDIA .*Unknown.* 0 0 0 2.1 NVIDIA NV17 .*NVIDIA .*NV17.* 0 1 0 0 NVIDIA NV34 .*NVIDIA .*NV34.* 0 1 0 0 NVIDIA NV35 .*NVIDIA .*NV35.* 0 1 0 0 @@ -513,45 +639,14 @@ NVIDIA MCP77 .*NVIDIA .*MCP77.* 1 1 0 0 NVIDIA MCP78 .*NVIDIA .*MCP78.* 1 1 0 0 NVIDIA MCP79 .*NVIDIA .*MCP79.* 1 1 0 0 NVIDIA MCP7A .*NVIDIA .*MCP7A.* 1 1 0 0 -NVIDIA Quadro2 .*Quadro2.* 0 1 0 1.5 -NVIDIA Quadro 1000M .*Quadro.* (K1|1)00[0-9]M.* 2 1 0 4.2 -NVIDIA Quadro 2000 M/D .*Quadro.* (K2|2)000.* 3 1 0 4.2 -NVIDIA Quadro 3000M .*Quadro.* (K3|3)00[0-9]M.* 3 1 0 4.2 -NVIDIA Quadro 4000M .*Quadro.* (K4|4)00[0-9]M.* 3 1 0 4.2 -NVIDIA Quadro 4000 .*Quadro 4000.* 3 1 0 4.2 -NVIDIA Quadro 50x0 M .*Quadro.* 50.0.* 3 1 0 4.2 -NVIDIA Quadro 6000 .*Quadro.* 6000.* 3 1 0 0 -NVIDIA Quadro 400 .*Quadro.* 400.* 2 1 0 3.3 -NVIDIA Quadro 600 .*Quadro.* 600.* 2 1 0 4.2 -NVIDIA Quadro4 .*Quadro4.* 0 1 0 1.5 -NVIDIA Quadro DCC .*Quadro DCC.* 0 1 0 0 -NVIDIA Quadro CX .*Quadro.*CX.* 3 1 0 0 -NVIDIA Quadro FX 770M .*Quadro.*FX 77[0-9]M.* 2 1 0 3.3 -NVIDIA Quadro FX 1500M .*Quadro.*FX 150[0-9]M.* 1 1 0 2.1 -NVIDIA Quadro FX 1600M .*Quadro.*FX 160[0-9]M.* 2 1 0 3.3 -NVIDIA Quadro FX 2500M .*Quadro.*FX 250[0-9]M.* 2 1 0 2.1 -NVIDIA Quadro FX 2700M .*Quadro.*FX 270[0-9]M.* 3 1 0 3.3 -NVIDIA Quadro FX 2800M .*Quadro.*FX 280[0-9]M.* 3 1 0 3.3 -NVIDIA Quadro FX 3500 .*Quadro.*FX 3500.* 2 1 0 2.1 -NVIDIA Quadro FX 3600 .*Quadro.*FX 3600.* 3 1 0 3.3 -NVIDIA Quadro FX 3700 .*Quadro.*FX 3700.* 3 1 0 3.3 -NVIDIA Quadro FX 3800 .*Quadro.*FX 3800.* 3 1 0 3.3 -NVIDIA Quadro FX 4500 .*Quadro.*FX 45.* 3 1 0 2.1 -NVIDIA Quadro FX 880M .*Quadro.*FX 88[0-9]M.* 3 1 0 3.3 -NVIDIA Quadro FX 4800 .*NVIDIA .*Quadro FX 4800.* 3 1 0 3.1 -NVIDIA Quadro FX .*Quadro FX.* 1 1 0 3.3 -NVIDIA Quadro NVS 1xxM .*Quadro NVS 1.[05]M.* 0 1 1 3.3 -NVIDIA Quadro NVS 300M .*NVIDIA .*NVS 30[0-9]M.* 2 1 0 0 -NVIDIA Quadro NVS 320M .*NVIDIA .*NVS 32[0-9]M.* 2 1 0 0 -NVIDIA Quadro NVS 2100M .*NVIDIA .*NVS 210[0-9]M.* 2 1 0 3.3 -NVIDIA Quadro NVS 3100M .*NVIDIA .*NVS 310[0-9]M.* 2 1 0 3.3 -NVIDIA Quadro NVS 4200M .*NVIDIA .*NVS 420[0-9]M.* 2 1 0 4.2 -NVIDIA Quadro NVS 5100M .*NVIDIA .*NVS 510[0-9]M.* 2 1 0 0 -NVIDIA Quadro NVS .*NVIDIA .*NVS 0 1 0 4.2 NVIDIA Corporation N12P .*NVIDIA .*N12P.* 1 1 1 4.1 NVIDIA Corporation N11M .*NVIDIA .*N11M.* 2 1 0 3.1 NVIDIA RIVA TNT .*RIVA TNT.* 0 0 0 1.5 -S3 .*S3 Graphics.* 0 0 1 1.4 +NVIDIA GRID .*NVIDIA .*GRID.* 0 0 0 1.5 +NVIDIA ION 2 .*NVIDIA .* *[I][O][N] 2.* 2 1 0 0 +NVIDIA ION a .*NVIDIA .*[I][O][N]$ 2 1 1 3.3 +NVIDIA ION b .*NVIDIA .*(Corporation) [I][O][N].* 2 1 1 3.3 +S3 .*S3 *(Graphics)*.* 0 0 1 1.4 SiS SiS.* 0 0 1 1.5 Trident Trident.* 0 0 0 0 Tungsten Graphics Tungsten.* 0 0 0 0 @@ -559,5 +654,9 @@ XGI XGI.* 0 0 0 0 VIA VIA.* 0 0 0 0 Apple Generic Apple.*Generic.* 0 0 0 0 Apple Software Renderer Apple.*Software Renderer.* 0 0 0 0 +Oracle VirtualBox.* 0 1 1 2.1 Humper Humper.* 0 1 1 2.1 PowerVR SGX545 .*PowerVR SGX.* 1 1 1 3 +ATI GeForce Lulz .*ATI.*GeForce.* 0 0 0 0 + + diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index 8a6114f0d5..c4f503ef4e 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -72,16 +72,8 @@ LangString LanguageCode ${LANG_RUSSIAN} "ru" LangString LanguageCode ${LANG_TURKISH} "tr"
LangString LanguageCode ${LANG_TRADCHINESE} "zh"
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Tweak for different servers/builds (this placeholder is replaced by viewer_manifest.py)
-;; For example:
-;; !define INSTFLAGS "%(flags)s"
-;; !define INSTNAME "SecondLife%(grid_caps)s"
-;; !define SHORTCUT "Second Life (%(grid_caps)s)"
-;; !define URLNAME "secondlife%(grid)s"
-;; !define UNINSTALL_SETTINGS 1
-
-%%GRID_VARS%%
+;; this placeholder is replaced by viewer_manifest.py
+%%INST_VARS%%
Name ${INSTNAME}
@@ -109,7 +101,6 @@ Page instfiles ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Var INSTPROG
Var INSTEXE
-Var INSTFLAGS
Var INSTSHORTCUT
Var COMMANDLINE ; command line passed to this installer, set in .onInit
Var SHORTCUT_LANG_PARAM ; "--set InstallLanguage de", passes language to viewer
@@ -147,7 +138,7 @@ label_ask_launch: label_launch:
# Assumes SetOutPath $INSTDIR
- Exec '"$INSTDIR\$INSTEXE" $INSTFLAGS $SHORTCUT_LANG_PARAM'
+ Exec '"$INSTDIR\$INSTEXE" $SHORTCUT_LANG_PARAM'
label_no_launch:
Pop $R0
FunctionEnd
@@ -310,6 +301,23 @@ Function CheckNetworkConnection Return
FunctionEnd
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Function CheckOldExeName
+; Viewer versions < 3.6.12 used the name 'SecondLife.exe'
+; If that name is found in the install folder, delete it to invalidate any
+; old shortcuts to it that may be in non-standard locations, so that the user
+; does not end up running the old version (potentially getting caught in an
+; infinite update loop). See MAINT-3575
+; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+Function CheckOldExeName
+ IfFileExists "$INSTDIR\SecondLife.exe" CHECKOLDEXE_FOUND CHECKOLDEXE_DONE
+
+CHECKOLDEXE_FOUND:
+ Delete "$INSTDIR\SecondLife.exe"
+CHECKOLDEXE_DONE:
+FunctionEnd
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Function CheckWillUninstallV2
@@ -682,6 +690,9 @@ Delete "$INSTDIR\*.glsl" Delete "$INSTDIR\motions\*.lla"
Delete "$INSTDIR\trial\*.html"
Delete "$INSTDIR\newview.exe"
+Delete "$INSTDIR\SecondLife.exe"
+;; MAINT-3099 workaround - prevent these log files, if present, from causing a user alert
+Delete "$INSTDIR\VivoxVoiceService-*.log"
;; Remove entire help directory
Delete "$INSTDIR\help\Advanced\*"
RMDir "$INSTDIR\help\Advanced"
@@ -720,7 +731,6 @@ ShowUninstDetails show Section Uninstall
; Start with some default values.
-StrCpy $INSTFLAGS ""
StrCpy $INSTPROG "${INSTNAME}"
StrCpy $INSTEXE "${INSTEXE}"
StrCpy $INSTSHORTCUT "${SHORTCUT}"
@@ -919,7 +929,6 @@ Section "" ; (default section) SetShellVarContext all ; install for all users (if you change this, change it in the uninstall as well)
; Start with some default values.
-StrCpy $INSTFLAGS "${INSTFLAGS}"
StrCpy $INSTPROG "${INSTNAME}"
StrCpy $INSTEXE "${INSTEXE}"
StrCpy $INSTSHORTCUT "${SHORTCUT}"
@@ -931,6 +940,7 @@ Call CheckIfAlreadyCurrent ; Make sure that we haven't already installed this v Call CloseSecondLife ; Make sure we're not running
Call CheckNetworkConnection ; ping secondlife.com
Call CheckWillUninstallV2 ; See if a V2 install exists and will be removed.
+Call CheckOldExeName ; Clean up a previous version of the exe
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
StrCmp $DO_UNINSTALL_V2 "" PRESERVE_DONE
@@ -966,7 +976,7 @@ StrCpy $SHORTCUT_LANG_PARAM "--set InstallLanguage $(LanguageCode)" CreateDirectory "$SMPROGRAMS\$INSTSHORTCUT"
SetOutPath "$INSTDIR"
CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT.lnk" \
- "$INSTDIR\$INSTEXE" "$INSTFLAGS $SHORTCUT_LANG_PARAM"
+ "$INSTDIR\$INSTEXE" "$SHORTCUT_LANG_PARAM"
WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Create Account.url" \
@@ -985,9 +995,9 @@ CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \ ; Other shortcuts
SetOutPath "$INSTDIR"
CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" \
- "$INSTDIR\$INSTEXE" "$INSTFLAGS $SHORTCUT_LANG_PARAM"
+ "$INSTDIR\$INSTEXE" "$SHORTCUT_LANG_PARAM"
CreateShortCut "$INSTDIR\$INSTSHORTCUT.lnk" \
- "$INSTDIR\$INSTEXE" "$INSTFLAGS $SHORTCUT_LANG_PARAM"
+ "$INSTDIR\$INSTEXE" "$SHORTCUT_LANG_PARAM"
CreateShortCut "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" \
'"$INSTDIR\uninst.exe"' ''
@@ -996,7 +1006,6 @@ CreateShortCut "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" \ ; Write registry
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" "$INSTDIR"
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" "${VERSION_LONG}"
-WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" "$INSTFLAGS"
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" "$INSTSHORTCUT"
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" "$INSTEXE"
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayName" "$INSTPROG (remove only)"
@@ -1009,13 +1018,13 @@ WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" "" WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$INSTEXE"'
;; URL param must be last item passed to viewer, it ignores subsequent params
;; to avoid parameter injection attacks.
-WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$INSTEXE" $INSTFLAGS -url "%1"'
+WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$INSTEXE" -url "%1"'
WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info"(default)" "URL:Second Life"
WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info" "URL Protocol" ""
WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info\DefaultIcon" "" '"$INSTDIR\$INSTEXE"'
;; URL param must be last item passed to viewer, it ignores subsequent params
;; to avoid parameter injection attacks.
-WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" "" '"$INSTDIR\$INSTEXE" $INSTFLAGS -url "%1"'
+WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" "" '"$INSTDIR\$INSTEXE" -url "%1"'
; write out uninstaller
WriteUninstaller "$INSTDIR\uninst.exe"
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 49f77e6c34..f150ceda67 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -259,11 +259,9 @@ bool handleSlowMotionAnimation(const LLSD& newvalue) return true; } -// static -void LLAgent::parcelChangedCallback() +void LLAgent::setCanEditParcel() // called via mParcelChangedSignal { bool can_edit = LLToolMgr::getInstance()->canEdit(); - gAgent.mCanEditParcel = can_edit; } @@ -425,6 +423,8 @@ LLAgent::LLAgent() : mListener.reset(new LLAgentListener(*this)); + addParcelChangedCallback(&setCanEditParcel); + mMoveTimer.stop(); } @@ -451,8 +451,6 @@ void LLAgent::init() mLastKnownRequestMaturity = mLastKnownResponseMaturity; mIsDoSendMaturityPreferenceToServer = true; - LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(boost::bind(&LLAgent::parcelChangedCallback)); - if (!mTeleportFinishedSlot.connected()) { mTeleportFinishedSlot = LLViewerParcelMgr::getInstance()->setTeleportFinishedCallback(boost::bind(&LLAgent::handleTeleportFinished, this)); @@ -835,22 +833,33 @@ void LLAgent::handleServerBakeRegionTransition(const LLUUID& region_id) } } +void LLAgent::changeParcels() +{ + LL_DEBUGS("AgentLocation") << "Calling ParcelChanged callbacks" << LL_ENDL; + // Notify anything that wants to know about parcel changes + mParcelChangedSignal(); +} + +boost::signals2::connection LLAgent::addParcelChangedCallback(parcel_changed_callback_t cb) +{ + return mParcelChangedSignal.connect(cb); +} + //----------------------------------------------------------------------------- // setRegion() //----------------------------------------------------------------------------- void LLAgent::setRegion(LLViewerRegion *regionp) { - bool teleport = true; - + bool notifyRegionChange; + llassert(regionp); if (mRegionp != regionp) { - // std::string host_name; - // host_name = regionp->getHost().getHostName(); - + notifyRegionChange = true; + std::string ip = regionp->getHost().getString(); - llinfos << "Moving agent into region: " << regionp->getName() - << " located at " << ip << llendl; + LL_INFOS("AgentLocation") << "Moving agent into region: " << regionp->getName() + << " located at " << ip << LL_ENDL; if (mRegionp) { // We've changed regions, we're now going to change our agent coordinate frame. @@ -878,9 +887,6 @@ void LLAgent::setRegion(LLViewerRegion *regionp) { gSky.mVOGroundp->setRegion(regionp); } - - // Notify windlight managers - teleport = (gAgent.getTeleportState() != LLAgent::TELEPORT_NONE); } else { @@ -902,8 +908,14 @@ void LLAgent::setRegion(LLViewerRegion *regionp) // Pass new region along to metrics components that care about this level of detail. LLAppViewer::metricsUpdateRegion(regionp->getHandle()); } + else + { + notifyRegionChange = false; + } mRegionp = regionp; + // TODO - most of what follows probably should be moved into callbacks + // Pass the region host to LLUrlEntryParcel to resolve parcel name // with a server request. LLUrlEntryParcel::setRegionHost(getRegionHost()); @@ -922,15 +934,6 @@ void LLAgent::setRegion(LLViewerRegion *regionp) LLFloaterMove::sUpdateFlyingStatus(); - if (teleport) - { - LLEnvManagerNew::instance().onTeleport(); - } - else - { - LLEnvManagerNew::instance().onRegionCrossing(); - } - // If the newly entered region is using server bakes, and our // current appearance is non-baked, request appearance update from // server. @@ -943,6 +946,12 @@ void LLAgent::setRegion(LLViewerRegion *regionp) // Need to handle via callback after caps arrive. mRegionp->setCapabilitiesReceivedCallback(boost::bind(&LLAgent::handleServerBakeRegionTransition,this,_1)); } + + if (notifyRegionChange) + { + LL_DEBUGS("AgentLocation") << "Calling RegionChanged callbacks" << LL_ENDL; + mRegionChangedSignal(); + } } @@ -967,6 +976,16 @@ LLHost LLAgent::getRegionHost() const } } +boost::signals2::connection LLAgent::addRegionChangedCallback(const region_changed_signal_t::slot_type& cb) +{ + return mRegionChangedSignal.connect(cb); +} + +void LLAgent::removeRegionChangedCallback(boost::signals2::connection callback) +{ + mRegionChangedSignal.disconnect(callback); +} + //----------------------------------------------------------------------------- // inPrelude() //----------------------------------------------------------------------------- @@ -1092,10 +1111,18 @@ const LLVector3d &LLAgent::getPositionGlobal() const //----------------------------------------------------------------------------- const LLVector3 &LLAgent::getPositionAgent() { - if (isAgentAvatarValid() && !gAgentAvatarp->mDrawable.isNull()) + if (isAgentAvatarValid()) + { + if(gAgentAvatarp->mDrawable.isNull()) + { + mFrameAgent.setOrigin(gAgentAvatarp->getPositionAgent()); + } + else { mFrameAgent.setOrigin(gAgentAvatarp->getRenderPosition()); } + } + return mFrameAgent.getOrigin(); } diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 7fac17d098..0766407494 100755 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -231,15 +231,54 @@ private: LLVector3 mHomePosRegion; //-------------------------------------------------------------------- - // Region + // Parcel //-------------------------------------------------------------------- public: + void changeParcels(); // called by LLViewerParcelMgr when we cross a parcel boundary + + // Register a boost callback to be called when the agent changes parcels + typedef boost::function<void()> parcel_changed_callback_t; + boost::signals2::connection addParcelChangedCallback(parcel_changed_callback_t); + +private: + typedef boost::signals2::signal<void()> parcel_changed_signal_t; + parcel_changed_signal_t mParcelChangedSignal; + + //-------------------------------------------------------------------- + // Region + //-------------------------------------------------------------------- + public: void setRegion(LLViewerRegion *regionp); LLViewerRegion *getRegion() const; LLHost getRegionHost() const; BOOL inPrelude(); -private: + + /** + * Register a boost callback to be called when the agent changes regions + * Note that if you need to access a capability for the region, you may need to wait + * for the capabilities to be received, since in some cases your region changed + * callback will be called before the capabilities have been received. Your callback + * may need to look something like: + * + * LLViewerRegion* region = gAgent.getRegion(); + * if (region->capabilitiesReceived()) + * { + * useCapability(region); + * } + * else // Need to handle via callback after caps arrive. + * { + * region->setCapabilitiesReceivedCallback(boost::bind(&useCapability,region,_1)); + * // you may or may not want to remove that callback + * } + */ + typedef boost::signals2::signal<void()> region_changed_signal_t; + + boost::signals2::connection addRegionChangedCallback(const region_changed_signal_t::slot_type& cb); + void removeRegionChangedCallback(boost::signals2::connection callback); + + private: LLViewerRegion *mRegionp; + region_changed_signal_t mRegionChangedSignal; //-------------------------------------------------------------------- // History @@ -640,9 +679,10 @@ private: public: bool canEditParcel() const { return mCanEditParcel; } private: + static void setCanEditParcel(); bool mCanEditParcel; - static void parcelChangedCallback(); + /******************************************************************************** ** ** diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 1edbbe2a2e..fa810aac76 100755 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -1538,7 +1538,11 @@ void LLAgentWearables::userUpdateAttachments(LLInventoryModel::item_array_t& obj std::set<LLUUID> requested_item_ids; std::set<LLUUID> current_item_ids; for (S32 i=0; i<obj_item_array.count(); i++) - requested_item_ids.insert(obj_item_array[i].get()->getLinkedUUID()); + { + const LLUUID & requested_id = obj_item_array[i].get()->getLinkedUUID(); + //llinfos << "Requested attachment id " << requested_id << llendl; + requested_item_ids.insert(requested_id); + } // Build up list of objects to be removed and items currently attached. llvo_vec_t objects_to_remove; @@ -1555,17 +1559,28 @@ void LLAgentWearables::userUpdateAttachments(LLInventoryModel::item_array_t& obj if (objectp) { LLUUID object_item_id = objectp->getAttachmentItemID(); + + bool remove_attachment = true; if (requested_item_ids.find(object_item_id) != requested_item_ids.end()) - { - // Object currently worn, was requested. + { // Object currently worn, was requested to keep it // Flag as currently worn so we won't have to add it again. - current_item_ids.insert(object_item_id); + remove_attachment = false; } - else + else if (objectp->isTempAttachment()) + { // Check if we should keep this temp attachment + remove_attachment = LLAppearanceMgr::instance().shouldRemoveTempAttachment(objectp->getID()); + } + + if (remove_attachment) { - // object currently worn, not requested. + // llinfos << "found object to remove, id " << objectp->getID() << ", item " << objectp->getAttachmentItemID() << llendl; objects_to_remove.push_back(objectp); } + else + { + // llinfos << "found object to keep, id " << objectp->getID() << ", item " << objectp->getAttachmentItemID() << llendl; + current_item_ids.insert(object_item_id); + } } } } diff --git a/indra/newview/llappdelegate-objc.mm b/indra/newview/llappdelegate-objc.mm index 91251ed7c0..988058aad3 100644 --- a/indra/newview/llappdelegate-objc.mm +++ b/indra/newview/llappdelegate-objc.mm @@ -40,6 +40,11 @@ [super dealloc]; } +- (void) applicationWillFinishLaunching:(NSNotification *)notification +{ + [[NSAppleEventManager sharedAppleEventManager] setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL]; +} + - (void) applicationDidFinishLaunching:(NSNotification *)notification { frameTimer = nil; @@ -55,7 +60,7 @@ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(languageUpdated) name:@"NSTextInputContextKeyboardSelectionDidChangeNotification" object:nil]; - [[NSAppleEventManager sharedAppleEventManager] setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL]; + // [[NSAppleEventManager sharedAppleEventManager] setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL]; } - (void) handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent { diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index fd9236c8b3..da1609297e 100755 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -3415,21 +3415,50 @@ void LLAppearanceMgr::removeItemsFromAvatar(const uuid_vec_t& ids_to_remove) llwarns << "called with empty list, nothing to do" << llendl; } for (uuid_vec_t::const_iterator it = ids_to_remove.begin(); it != ids_to_remove.end(); ++it) - { + { const LLUUID& id_to_remove = *it; const LLUUID& linked_item_id = gInventory.getLinkedItemID(id_to_remove); removeCOFItemLinks(linked_item_id); - } - updateAppearanceFromCOF(); + addDoomedTempAttachment(linked_item_id); } + updateAppearanceFromCOF(); +} void LLAppearanceMgr::removeItemFromAvatar(const LLUUID& id_to_remove) { LLUUID linked_item_id = gInventory.getLinkedItemID(id_to_remove); removeCOFItemLinks(linked_item_id); + addDoomedTempAttachment(linked_item_id); updateAppearanceFromCOF(); } + +// Adds the given item ID to mDoomedTempAttachmentIDs iff it's a temp attachment +void LLAppearanceMgr::addDoomedTempAttachment(const LLUUID& id_to_remove) +{ + LLViewerObject * attachmentp = gAgentAvatarp->findAttachmentByID(id_to_remove); + if (attachmentp && + attachmentp->isTempAttachment()) + { // If this is a temp attachment and we want to remove it, record the ID + // so it will be deleted when attachments are synced up with COF + mDoomedTempAttachmentIDs.insert(id_to_remove); + //llinfos << "Will remove temp attachment id " << id_to_remove << llendl; + } +} + +// Find AND REMOVES the given UUID from mDoomedTempAttachmentIDs +bool LLAppearanceMgr::shouldRemoveTempAttachment(const LLUUID& item_id) +{ + doomed_temp_attachments_t::iterator iter = mDoomedTempAttachmentIDs.find(item_id); + if (iter != mDoomedTempAttachmentIDs.end()) + { + mDoomedTempAttachmentIDs.erase(iter); + return true; + } + return false; +} + + bool LLAppearanceMgr::moveWearable(LLViewerInventoryItem* item, bool closer_to_body) { if (!item || !item->isWearableType()) return false; diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 46252afbde..5ec80f1cf0 100755 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -142,6 +142,9 @@ public: void removeAllClothesFromAvatar(); void removeAllAttachmentsFromAvatar(); + // Special handling of temp attachments, which are not in the COF + bool shouldRemoveTempAttachment(const LLUUID& item_id); + //has the current outfit changed since it was loaded? bool isOutfitDirty() { return mOutfitIsDirty; } @@ -239,6 +242,12 @@ private: std::auto_ptr<LLOutfitUnLockTimer> mUnlockOutfitTimer; + // Set of temp attachment UUIDs that should be removed + typedef std::set<LLUUID> doomed_temp_attachments_t; + doomed_temp_attachments_t mDoomedTempAttachmentIDs; + + void addDoomedTempAttachment(const LLUUID& id_to_remove); + ////////////////////////////////////////////////////////////////////////////////// // Item-specific convenience functions public: diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 539d186441..e3c89f1a5f 100755 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -40,6 +40,7 @@ #include "llagent.h" #include "llagentcamera.h" #include "llagentlanguage.h" +#include "llagentui.h" #include "llagentwearables.h" #include "llfloaterimcontainer.h" #include "llwindow.h" @@ -60,6 +61,7 @@ #include "llcurl.h" #include "llcalc.h" #include "llconversationlog.h" +#include "lldxhardware.h" #include "lltexturestats.h" #include "lltexturestats.h" #include "llviewerwindow.h" @@ -75,10 +77,10 @@ #include "lluicolortable.h" #include "llurldispatcher.h" #include "llurlhistory.h" -//#include "llfirstuse.h" #include "llrender.h" #include "llteleporthistory.h" #include "lltoast.h" +#include "llsdutil_math.h" #include "lllocationhistory.h" #include "llfasttimerview.h" #include "llvector4a.h" @@ -755,7 +757,7 @@ bool LLAppViewer::init() initLoggingAndGetLastDuration(); processMarkerFiles(); - + // // OK to write stuff to logs now, we've now crash reported if necessary // @@ -1230,8 +1232,8 @@ void LLAppViewer::checkMemory() } mMemCheckTimer.reset() ; - //update the availability of memory - LLMemory::updateMemoryInfo() ; + //update the availability of memory + LLMemory::updateMemoryInfo() ; bool is_low = LLMemory::isMemoryPoolLow() ; @@ -1761,7 +1763,7 @@ bool LLAppViewer::cleanup() gAudiop->setStreamingAudioImpl(NULL); // shut down the audio subsystem - gAudiop->shutdown(); + gAudiop->shutdown(); delete gAudiop; gAudiop = NULL; @@ -2574,9 +2576,9 @@ bool LLAppViewer::initConfiguration() { llwarns << "Failed --set " << name << ": setting name unknown." << llendl; } + } } } - } if (clp.hasOption("logevents")) { LLViewerEventRecorder::instance().setEventLoggingOn(); @@ -2584,7 +2586,7 @@ bool LLAppViewer::initConfiguration() std::string CmdLineChannel(gSavedSettings.getString("CmdLineChannel")); if(! CmdLineChannel.empty()) - { + { LLVersionInfo::resetChannel(CmdLineChannel); } @@ -2596,16 +2598,16 @@ bool LLAppViewer::initConfiguration() LLFastTimer::sLog = TRUE; LLFastTimer::sLogName = std::string("performance"); } - + std::string test_name(gSavedSettings.getString("LogMetrics")); if (! test_name.empty()) - { + { LLFastTimer::sMetricLog = TRUE ; // '--logmetrics' is specified with a named test metric argument so the data gathering is done only on that test // In the absence of argument, every metric would be gathered (makes for a rather slow run and hard to decipher report...) llinfos << "'--logmetrics' argument : " << test_name << llendl; LLFastTimer::sLogName = test_name; - } + } if (clp.hasOption("graphicslevel")) { @@ -2614,14 +2616,14 @@ bool LLAppViewer::initConfiguration() // that value for validity. U32 graphicslevel = gSavedSettings.getU32("RenderQualityPerformance"); if (LLFeatureManager::instance().isValidGraphicsLevel(graphicslevel)) - { + { // graphicslevel is valid: save it and engage it later. Capture // the requested value separately from the settings variable // because, if this is the first run, LLViewerWindow's constructor // will call LLFeatureManager::applyRecommendedSettings(), which // overwrites this settings variable! mForceGraphicsLevel = graphicslevel; - } + } } LLFastTimerView::sAnalyzePerformance = gSavedSettings.getBOOL("AnalyzePerformance"); @@ -2655,14 +2657,14 @@ bool LLAppViewer::initConfiguration() LLSLURL start_slurl; std::string CmdLineLoginLocation(gSavedSettings.getString("CmdLineLoginLocation")); if(! CmdLineLoginLocation.empty()) - { + { start_slurl = CmdLineLoginLocation; LLStartUp::setStartSLURL(start_slurl); if(start_slurl.getType() == LLSLURL::LOCATION) - { + { LLGridManager::getInstance()->setGridChoice(start_slurl.getGrid()); - } - } + } + } //RN: if we received a URL, hand it off to the existing instance. // don't call anotherInstanceRunning() when doing URL handoff, as @@ -2673,11 +2675,11 @@ bool LLAppViewer::initConfiguration() (gSavedSettings.getBOOL("SLURLPassToOtherInstance"))) { if (sendURLToOtherInstance(start_slurl.getSLURLString())) - { + { // successfully handed off URL to existing instance, exit return false; } - } + } const LLControlVariable* skinfolder = gSavedSettings.getControl("SkinCurrent"); if(skinfolder && LLStringUtil::null != skinfolder->getValue().asString()) @@ -2994,26 +2996,26 @@ namespace { { LL_WARNS("UpdaterService") << "no info url supplied - defaulting to hard coded release notes pattern" << LL_ENDL; - // truncate version at the rightmost '.' - std::string version_short(data["version"]); - size_t short_length = version_short.rfind('.'); - if (short_length != std::string::npos) - { - version_short.resize(short_length); - } + // truncate version at the rightmost '.' + std::string version_short(data["version"]); + size_t short_length = version_short.rfind('.'); + if (short_length != std::string::npos) + { + version_short.resize(short_length); + } - LLUIString relnotes_url("[RELEASE_NOTES_BASE_URL][CHANNEL_URL]/[VERSION_SHORT]"); - relnotes_url.setArg("[VERSION_SHORT]", version_short); + LLUIString relnotes_url("[RELEASE_NOTES_BASE_URL][CHANNEL_URL]/[VERSION_SHORT]"); + relnotes_url.setArg("[VERSION_SHORT]", version_short); - // *TODO thread the update service's response through to this point - std::string const & channel = LLVersionInfo::getChannel(); - boost::shared_ptr<char> channel_escaped(curl_escape(channel.c_str(), channel.size()), &curl_free); + // *TODO thread the update service's response through to this point + std::string const & channel = LLVersionInfo::getChannel(); + boost::shared_ptr<char> channel_escaped(curl_escape(channel.c_str(), channel.size()), &curl_free); - relnotes_url.setArg("[CHANNEL_URL]", channel_escaped.get()); - relnotes_url.setArg("[RELEASE_NOTES_BASE_URL]", LLTrans::getString("RELEASE_NOTES_BASE_URL")); + relnotes_url.setArg("[CHANNEL_URL]", channel_escaped.get()); + relnotes_url.setArg("[RELEASE_NOTES_BASE_URL]", LLTrans::getString("RELEASE_NOTES_BASE_URL")); substitutions["INFO_URL"] = relnotes_url.getString(); } - + LLNotificationsUtil::add(notification_name, substitutions, LLSD(), apply_callback); } @@ -3202,7 +3204,7 @@ bool LLAppViewer::initWindow() LLFeatureManager::getInstance()->setGraphicsLevel(*mForceGraphicsLevel, false); gSavedSettings.setU32("RenderQualityPerformance", *mForceGraphicsLevel); } - + // Set this flag in case we crash while initializing GL gSavedSettings.setBOOL("RenderInitError", TRUE); gSavedSettings.saveToFile( gSavedSettings.getString("ClientSettingsFile"), TRUE ); @@ -3261,6 +3263,183 @@ void LLAppViewer::writeDebugInfo() out_file.close(); } +LLSD LLAppViewer::getViewerInfo() const +{ + // The point of having one method build an LLSD info block and the other + // construct the user-visible About string is to ensure that the same info + // is available to a getInfo() caller as to the user opening + // LLFloaterAbout. + LLSD info; + LLSD version; + version.append(LLVersionInfo::getMajor()); + version.append(LLVersionInfo::getMinor()); + version.append(LLVersionInfo::getPatch()); + version.append(LLVersionInfo::getBuild()); + info["VIEWER_VERSION"] = version; + info["VIEWER_VERSION_STR"] = LLVersionInfo::getVersion(); + info["BUILD_DATE"] = __DATE__; + info["BUILD_TIME"] = __TIME__; + info["CHANNEL"] = LLVersionInfo::getChannel(); + + // return a URL to the release notes for this viewer, such as: + // http://wiki.secondlife.com/wiki/Release_Notes/Second Life Beta Viewer/2.1.0.123456 + std::string url = LLTrans::getString("RELEASE_NOTES_BASE_URL"); + if (! LLStringUtil::endsWith(url, "/")) + url += "/"; + url += LLURI::escape(LLVersionInfo::getChannel()) + "/"; + url += LLURI::escape(LLVersionInfo::getVersion()); + + info["VIEWER_RELEASE_NOTES_URL"] = url; + +#if LL_MSVC + info["COMPILER"] = "MSVC"; + info["COMPILER_VERSION"] = _MSC_VER; +#elif LL_GNUC + info["COMPILER"] = "GCC"; + info["COMPILER_VERSION"] = GCC_VERSION; +#endif + + // Position + LLViewerRegion* region = gAgent.getRegion(); + if (region) + { + LLVector3d pos = gAgent.getPositionGlobal(); + info["POSITION"] = ll_sd_from_vector3d(pos); + info["POSITION_LOCAL"] = ll_sd_from_vector3(gAgent.getPosAgentFromGlobal(pos)); + info["REGION"] = gAgent.getRegion()->getName(); + info["HOSTNAME"] = gAgent.getRegion()->getHost().getHostName(); + info["HOSTIP"] = gAgent.getRegion()->getHost().getString(); + info["SERVER_VERSION"] = gLastVersionChannel; + LLSLURL slurl; + LLAgentUI::buildSLURL(slurl); + info["SLURL"] = slurl.getSLURLString(); + } + + // CPU + info["CPU"] = gSysCPU.getCPUString(); + info["MEMORY_MB"] = LLSD::Integer(gSysMemory.getPhysicalMemoryKB() / 1024); + // Moved hack adjustment to Windows memory size into llsys.cpp + info["OS_VERSION"] = LLAppViewer::instance()->getOSInfo().getOSString(); + info["GRAPHICS_CARD_VENDOR"] = (const char*)(glGetString(GL_VENDOR)); + info["GRAPHICS_CARD"] = (const char*)(glGetString(GL_RENDERER)); + +#if LL_WINDOWS + LLSD driver_info = gDXHardware.getDisplayInfo(); + if (driver_info.has("DriverVersion")) + { + info["GRAPHICS_DRIVER_VERSION"] = driver_info["DriverVersion"]; + } +#endif + + info["OPENGL_VERSION"] = (const char*)(glGetString(GL_VERSION)); + info["LIBCURL_VERSION"] = LLCurl::getVersionString(); + info["J2C_VERSION"] = LLImageJ2C::getEngineInfo(); + bool want_fullname = true; + info["AUDIO_DRIVER_VERSION"] = gAudiop ? LLSD(gAudiop->getDriverName(want_fullname)) : LLSD(); + if(LLVoiceClient::getInstance()->voiceEnabled()) + { + LLVoiceVersionInfo version = LLVoiceClient::getInstance()->getVersion(); + std::ostringstream version_string; + version_string << version.serverType << " " << version.serverVersion << std::endl; + info["VOICE_VERSION"] = version_string.str(); + } + else + { + info["VOICE_VERSION"] = LLTrans::getString("NotConnected"); + } + + // TODO: Implement media plugin version query + info["QT_WEBKIT_VERSION"] = "4.7.1 (version number hard-coded)"; + + if (gPacketsIn > 0) + { + info["PACKETS_LOST"] = LLViewerStats::getInstance()->mPacketsLostStat.getCurrent(); + info["PACKETS_IN"] = F32(gPacketsIn); + info["PACKETS_PCT"] = 100.f*info["PACKETS_LOST"].asReal() / info["PACKETS_IN"].asReal(); + } + + if (mServerReleaseNotesURL.empty()) + { + if (gAgent.getRegion()) + { + info["SERVER_RELEASE_NOTES_URL"] = LLTrans::getString("RetrievingData"); + } + } + else if (LLStringUtil::startsWith(mServerReleaseNotesURL, "http")) // it's an URL + { + info["SERVER_RELEASE_NOTES_URL"] = "[" + LLWeb::escapeURL(mServerReleaseNotesURL) + " " + LLTrans::getString("ReleaseNotes") + "]"; + } + else + { + info["SERVER_RELEASE_NOTES_URL"] = mServerReleaseNotesURL; + } + + return info; +} + +std::string LLAppViewer::getViewerInfoString() const +{ + std::ostringstream support; + + LLSD info(getViewerInfo()); + + // Render the LLSD from getInfo() as a format_map_t + LLStringUtil::format_map_t args; + + // allow the "Release Notes" URL label to be localized + args["ReleaseNotes"] = LLTrans::getString("ReleaseNotes"); + + for (LLSD::map_const_iterator ii(info.beginMap()), iend(info.endMap()); + ii != iend; ++ii) + { + if (! ii->second.isArray()) + { + // Scalar value + if (ii->second.isUndefined()) + { + args[ii->first] = LLTrans::getString("none_text"); + } + else + { + // don't forget to render value asString() + args[ii->first] = ii->second.asString(); + } + } + else + { + // array value: build KEY_0, KEY_1 etc. entries + for (LLSD::Integer n(0), size(ii->second.size()); n < size; ++n) + { + args[STRINGIZE(ii->first << '_' << n)] = ii->second[n].asString(); + } + } + } + + // Now build the various pieces + support << LLTrans::getString("AboutHeader", args); + if (info.has("REGION")) + { + support << "\n\n" << LLTrans::getString("AboutPosition", args); + } + support << "\n\n" << LLTrans::getString("AboutSystem", args); + support << "\n"; + if (info.has("GRAPHICS_DRIVER_VERSION")) + { + support << "\n" << LLTrans::getString("AboutDriver", args); + } + support << "\n" << LLTrans::getString("AboutLibs", args); + if (info.has("COMPILER")) + { + support << "\n" << LLTrans::getString("AboutCompiler", args); + } + if (info.has("PACKETS_IN")) + { + support << '\n' << LLTrans::getString("AboutTraffic", args); + } + return support.str(); +} + + void LLAppViewer::cleanupSavedSettings() { gSavedSettings.setBOOL("MouseSun", FALSE); @@ -3485,9 +3664,9 @@ void LLAppViewer::handleViewerCrash() if (gDirUtilp) { std::string crash_marker_file_name = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, - gLLErrorActivated - ? LLERROR_MARKER_FILE_NAME - : ERROR_MARKER_FILE_NAME); + gLLErrorActivated + ? LLERROR_MARKER_FILE_NAME + : ERROR_MARKER_FILE_NAME); LLAPRFile crash_marker_file ; crash_marker_file.open(crash_marker_file_name, LL_APR_WB); if (crash_marker_file.getFileHandle()) @@ -3498,7 +3677,7 @@ void LLAppViewer::handleViewerCrash() else { LL_WARNS("MarkerFile") << "Cannot create error marker file " << crash_marker_file_name << LL_ENDL; - } + } } else { @@ -3637,7 +3816,7 @@ void LLAppViewer::processMarkerFiles() } if (mSecondInstance) - { + { LL_INFOS("MarkerFile") << "Exec marker '"<< mMarkerFileName << "' owned by another instance" << LL_ENDL; } else if (marker_is_same_version) @@ -3651,7 +3830,7 @@ void LLAppViewer::processMarkerFiles() { LL_INFOS("MarkerFile") << "Exec marker '"<< mMarkerFileName << "' found, but versions did not match" << LL_ENDL; } - } + } else // marker did not exist... last exec (if any) did not freeze { // Create the marker file for this execution & lock it; it will be deleted on a clean exit @@ -3705,12 +3884,12 @@ void LLAppViewer::processMarkerFiles() { gLastExecEvent = LAST_EXEC_LOGOUT_CRASH; LL_INFOS("MarkerFile") << "LLError marker '"<< llerror_marker_file << "' crashed, setting LastExecEvent to LOGOUT_CRASH" << LL_ENDL; - } - else - { + } + else + { gLastExecEvent = LAST_EXEC_LLERROR_CRASH; LL_INFOS("MarkerFile") << "LLError marker '"<< llerror_marker_file << "' crashed, setting LastExecEvent to LLERROR_CRASH" << LL_ENDL; - } + } } else { @@ -3723,20 +3902,20 @@ void LLAppViewer::processMarkerFiles() if(LLAPRFile::isExist(error_marker_file, NULL, LL_APR_RB)) { if (markerIsSameVersion(error_marker_file)) - { + { if (gLastExecEvent == LAST_EXEC_LOGOUT_FROZE) - { + { gLastExecEvent = LAST_EXEC_LOGOUT_CRASH; LL_INFOS("MarkerFile") << "Error marker '"<< error_marker_file << "' crashed, setting LastExecEvent to LOGOUT_CRASH" << LL_ENDL; - } - else - { - gLastExecEvent = LAST_EXEC_OTHER_CRASH; - LL_INFOS("MarkerFile") << "Error marker '"<< error_marker_file << "' crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL; - } } else { + gLastExecEvent = LAST_EXEC_OTHER_CRASH; + LL_INFOS("MarkerFile") << "Error marker '"<< error_marker_file << "' crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL; + } + } + else + { LL_INFOS("MarkerFile") << "Error marker '"<< error_marker_file << "' marker found, but versions did not match" << LL_ENDL; } LLAPRFile::remove(error_marker_file); @@ -3748,29 +3927,29 @@ void LLAppViewer::removeMarkerFile(bool leave_logout_marker) if (!mSecondInstance) { LL_DEBUGS("MarkerFile") << (leave_logout_marker?"leave":"remove") <<" logout" << LL_ENDL; - if (mMarkerFile.getFileHandle()) - { + if (mMarkerFile.getFileHandle()) + { LL_DEBUGS("MarkerFile") << "removing exec marker '"<<mMarkerFileName<<"'"<< LL_ENDL; mMarkerFile.close() ; - LLAPRFile::remove( mMarkerFileName ); - } - else - { + LLAPRFile::remove( mMarkerFileName ); + } + else + { LL_WARNS("MarkerFile") << "marker '"<<mMarkerFileName<<"' not open"<< LL_ENDL; - } - if (!leave_logout_marker) + } + if (!leave_logout_marker) + { + if (mLogoutMarkerFile.getFileHandle()) { - if (mLogoutMarkerFile.getFileHandle()) - { LL_DEBUGS("MarkerFile") << "removing logout marker '"<<mLogoutMarkerFileName<<"'"<< LL_ENDL; - mLogoutMarkerFile.close(); - } - else - { + mLogoutMarkerFile.close(); + } + else + { LL_WARNS("MarkerFile") << "logout marker '"<<mLogoutMarkerFileName<<"' not open"<< LL_ENDL; - } - LLAPRFile::remove( mLogoutMarkerFileName ); } + LLAPRFile::remove( mLogoutMarkerFileName ); + } } else { @@ -4713,7 +4892,7 @@ void LLAppViewer::idle() if (!(logoutRequestSent() && hasSavedFinalSnapshot())) { - gObjectList.update(gAgent, *LLWorld::getInstance()); + gObjectList.update(gAgent); } } @@ -5402,7 +5581,7 @@ void LLAppViewer::handleLoginComplete() void LLAppViewer::launchUpdater() { - LLSD query_map = LLSD::emptyMap(); + LLSD query_map = LLSD::emptyMap(); query_map["os"] = gPlatform; // *TODO change userserver to be grid on both viewer and sim, since @@ -5599,7 +5778,7 @@ void LLAppViewer::metricsSend(bool enable_reporting) // Make a copy of the main stats to send into another thread. // Receiving thread takes ownership. LLViewerAssetStats * main_stats(new LLViewerAssetStats(*gViewerAssetStatsMain)); - + // Send a report request into 'thread1' to get the rest of the data // and provide some additional parameters while here. LLAppViewer::sTextureFetch->commandSendMetrics(caps_url, diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index 3ae8a78845..05326c2baf 100755 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -86,6 +86,10 @@ public: const LLOSInfo& getOSInfo() const { return mSysOSInfo; } + void setServerReleaseNotesURL(const std::string& url) { mServerReleaseNotesURL = url; } + LLSD getViewerInfo() const; + std::string getViewerInfoString() const; + // Report true if under the control of a debugger. A null-op default. virtual bool beingDebugged() { return false; } @@ -246,6 +250,8 @@ private: LLOSInfo mSysOSInfo; bool mReportedCrash; + std::string mServerReleaseNotesURL; + // Thread objects. static LLTextureCache* sTextureCache; static LLImageDecodeThread* sImageDecodeThread; diff --git a/indra/newview/llautoreplace.cpp b/indra/newview/llautoreplace.cpp index 1d72397cbc..dd9354fe3a 100755 --- a/indra/newview/llautoreplace.cpp +++ b/indra/newview/llautoreplace.cpp @@ -39,7 +39,7 @@ void LLAutoReplace::autoreplaceCallback(S32& replacement_start, S32& replacement replacement_length = 0; replacement_string.clear(); - static LLCachedControl<bool> perform_autoreplace(gSavedSettings, "AutoReplace"); + static LLCachedControl<bool> perform_autoreplace(gSavedSettings, "AutoReplace", 0); if (perform_autoreplace) { S32 word_end = cursor_pos - 1; @@ -679,7 +679,7 @@ bool LLAutoReplaceSettings::decreaseListPriority(std::string listName) std::string LLAutoReplaceSettings::replaceWord(const std::string currentWord) { std::string returnedWord = currentWord; // in case no replacement is found - static LLCachedControl<bool> autoreplace_enabled(gSavedSettings, "AutoReplace"); + static LLCachedControl<bool> autoreplace_enabled(gSavedSettings, "AutoReplace", false); if ( autoreplace_enabled ) { LL_DEBUGS("AutoReplace")<<"checking '"<<currentWord<<"'"<< LL_ENDL; diff --git a/indra/newview/llavatarrenderinfoaccountant.cpp b/indra/newview/llavatarrenderinfoaccountant.cpp index 9e3225a264..d6a72b0c05 100644 --- a/indra/newview/llavatarrenderinfoaccountant.cpp +++ b/indra/newview/llavatarrenderinfoaccountant.cpp @@ -256,7 +256,7 @@ void LLAvatarRenderInfoAccountant::sendRenderInfoToRegion(LLViewerRegion * regio { llinfos << "LRI: Sending avatar render info for " << avatar->getID() << ": " << info << llendl; - llinfos << "LRI: geometry " << avatar->getAttachmentGeometryBytes() + llinfos << "LRI: other info geometry " << avatar->getAttachmentGeometryBytes() << ", area " << avatar->getAttachmentSurfaceArea() << llendl; } @@ -336,7 +336,7 @@ void LLAvatarRenderInfoAccountant::idle() sRenderInfoReportTimer.resetWithExpiry(SECS_BETWEEN_REGION_SCANS); } - static LLCachedControl<U32> render_auto_mute_functions(gSavedSettings, "RenderAutoMuteFunctions"); + static LLCachedControl<U32> render_auto_mute_functions(gSavedSettings, "RenderAutoMuteFunctions", 0); static U32 prev_render_auto_mute_functions = (U32) -1; if (prev_render_auto_mute_functions != render_auto_mute_functions) { diff --git a/indra/newview/llblocklist.cpp b/indra/newview/llblocklist.cpp index 066cb71677..3849fbeb54 100755 --- a/indra/newview/llblocklist.cpp +++ b/indra/newview/llblocklist.cpp @@ -41,10 +41,14 @@ static const LLBlockListNameTypeComparator NAME_TYPE_COMPARATOR; LLBlockList::LLBlockList(const Params& p) : LLFlatListViewEx(p), mSelectedItem(NULL), - mDirty(true) + mDirty(true), + mShouldAddAll(true), + mActionType(NONE), + mMuteListSize(0) { LLMuteList::getInstance()->addObserver(this); + mMuteListSize = LLMuteList::getInstance()->getMutes().size(); // Set up context menu. LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar; @@ -73,6 +77,41 @@ LLBlockList::~LLBlockList() LLMuteList::getInstance()->removeObserver(this); } +void LLBlockList::createList() +{ + std::vector<LLMute> mutes = LLMuteList::instance().getMutes(); + std::vector<LLMute>::const_iterator mute_it = mutes.begin(); + + for (; mute_it != mutes.end(); ++mute_it) + { + addNewItem(&*mute_it); + } +} + +BlockListActionType LLBlockList::getCurrentMuteListActionType() +{ + BlockListActionType type = NONE; + U32 curSize = LLMuteList::getInstance()->getMutes().size(); + if( curSize > mMuteListSize) + type = ADD; + else if(curSize < mMuteListSize) + type = REMOVE; + + return type; +} + +void LLBlockList::onChangeDetailed(const LLMute &mute) +{ + mActionType = getCurrentMuteListActionType(); + + mCurItemId = mute.mID; + mCurItemName = mute.mName; + mCurItemType = mute.mType; + mCurItemFlags = mute.mFlags; + + refresh(); +} + BOOL LLBlockList::handleRightMouseDown(S32 x, S32 y, MASK mask) { BOOL handled = LLUICtrl::handleRightMouseDown(x, y, mask); @@ -88,6 +127,16 @@ BOOL LLBlockList::handleRightMouseDown(S32 x, S32 y, MASK mask) return handled; } +void LLBlockList::removeListItem(const LLMute* mute) +{ + removeItemByUUID(mute->mID); +} + +void LLBlockList::hideListItem(LLBlockedListItem* item, bool show) +{ + item->setVisible(show); +} + void LLBlockList::setNameFilter(const std::string& filter) { std::string filter_upper = filter; @@ -136,28 +185,56 @@ void LLBlockList::refresh() bool have_filter = !mNameFilter.empty(); // save selection to restore it after list rebuilt - LLUUID selected = getSelectedUUID(); + LLUUID selected = getSelectedUUID(), next_selected; - // calling refresh may be initiated by removing currently selected item - // so select next item and save the selection to restore it after list rebuilt + if(mShouldAddAll) // creating list of blockers + { + clear(); + createList(); + mShouldAddAll = false; + } + else + { + // handle remove/add functionality + LLMute mute(mCurItemId, mCurItemName, mCurItemType, mCurItemFlags); + if(mActionType == ADD) + { + addNewItem(&mute); + } + else if(mActionType == REMOVE) + { + if(selected == mute.mID) + { + // we are going to remove currently selected item, so select next item and save the selection to restore it if (!selectNextItemPair(false, true)) { selectNextItemPair(true, true); } - LLUUID next_selected = getSelectedUUID(); - - clear(); - - std::vector<LLMute> mutes = LLMuteList::instance().getMutes(); - std::vector<LLMute>::const_iterator mute_it = mutes.begin(); + next_selected = getSelectedUUID(); + } + removeListItem(&mute); + } + mActionType = NONE; + } - for (; mute_it != mutes.end(); ++mute_it) + // handle filter functionality + if(have_filter || (!have_filter && !mPrevNameFilter.empty())) { - if (have_filter && !findInsensitive(mute_it->mName, mNameFilter)) - continue; + // we should update visibility of our items if previous filter was not empty + std::vector < LLPanel* > allItems; + getItems(allItems); + std::vector < LLPanel* >::iterator it = allItems.begin(); - addNewItem(&*mute_it); + for(; it != allItems.end() ; ++it) + { + LLBlockedListItem * curItem = dynamic_cast<LLBlockedListItem *> (*it); + if(curItem) + { + hideListItem(curItem, findInsensitive(curItem->getName(), mNameFilter)); + } + } } + mPrevNameFilter = mNameFilter; if (getItemPair(selected)) { @@ -169,6 +246,7 @@ void LLBlockList::refresh() // previously selected item was removed, so select next item selectItemPair(getItemPair(next_selected), true); } + mMuteListSize = LLMuteList::getInstance()->getMutes().size(); // Sort the list. sort(); diff --git a/indra/newview/llblocklist.h b/indra/newview/llblocklist.h index 1a215710f4..bac79f869e 100755 --- a/indra/newview/llblocklist.h +++ b/indra/newview/llblocklist.h @@ -34,6 +34,8 @@ class LLBlockedListItem; class LLMute; +enum BlockListActionType {NONE, ADD, REMOVE}; + /** * List of blocked avatars and objects. * This list represents contents of the LLMuteList. @@ -56,7 +58,8 @@ public: LLToggleableMenu* getContextMenu() const { return mContextMenu.get(); } LLBlockedListItem* getBlockedItem() const; - virtual void onChange() { refresh(); } + virtual void onChange() { } + virtual void onChangeDetailed(const LLMute& ); virtual void draw(); void setNameFilter(const std::string& filter); @@ -67,18 +70,32 @@ public: private: void addNewItem(const LLMute* mute); + void removeListItem(const LLMute* mute); + void hideListItem(LLBlockedListItem* item, bool show); void setDirty(bool dirty = true) { mDirty = dirty; } bool findInsensitive(std::string haystack, const std::string& needle_upper); bool isActionEnabled(const LLSD& userdata); void onCustomAction (const LLSD& userdata); + void createList(); + BlockListActionType getCurrentMuteListActionType(); LLHandle<LLToggleableMenu> mContextMenu; LLBlockedListItem* mSelectedItem; std::string mNameFilter; bool mDirty; + bool mShouldAddAll; + BlockListActionType mActionType; + U32 mMuteListSize; + + // This data is used to save information about item that currently changed(added or removed) + LLUUID mCurItemId; + std::string mCurItemName; + LLMute::EType mCurItemType; + U32 mCurItemFlags; + std::string mPrevNameFilter; }; diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp index 8b2d9e639f..fa23251d95 100755 --- a/indra/newview/llchannelmanager.cpp +++ b/indra/newview/llchannelmanager.cpp @@ -113,29 +113,33 @@ void LLChannelManager::onLoginCompleted() } else { - // create a channel for the StartUp Toast - LLScreenChannelBase::Params p; - p.id = LLUUID(gSavedSettings.getString("StartUpChannelUUID")); - p.channel_align = CA_RIGHT; - mStartUpChannel = createChannel(p); - - if(!mStartUpChannel) - { - onStartUpToastClose(); - } - else - { - gViewerWindow->getRootView()->addChild(mStartUpChannel); - - // init channel's position and size - S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin"); - S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth"); - mStartUpChannel->init(channel_right_bound - channel_width, channel_right_bound); - mStartUpChannel->setMouseDownCallback(boost::bind(&LLNotificationWellWindow::onStartUpToastClick, LLNotificationWellWindow::getInstance(), _2, _3, _4)); - - mStartUpChannel->setCommitCallback(boost::bind(&LLChannelManager::onStartUpToastClose, this)); - mStartUpChannel->createStartUpToast(away_notifications, gSavedSettings.getS32("StartUpToastLifeTime")); - } + // TODO: Seems this code leads to MAINT-3536 new crash in XML_ParserFree. + // Need to investigate this and fix possible problems with notifications in startup time + // Viewer can normally receive and show of postponed notifications about purchasing in marketplace on startup time. + // Other types of postponed notifications did not tested. + //// create a channel for the StartUp Toast + //LLScreenChannelBase::Params p; + //p.id = LLUUID(gSavedSettings.getString("StartUpChannelUUID")); + //p.channel_align = CA_RIGHT; + //mStartUpChannel = createChannel(p); + + //if(!mStartUpChannel) + //{ + // onStartUpToastClose(); + //} + //else + //{ + // gViewerWindow->getRootView()->addChild(mStartUpChannel); + + // // init channel's position and size + // S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin"); + // S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth"); + // mStartUpChannel->init(channel_right_bound - channel_width, channel_right_bound); + // mStartUpChannel->setMouseDownCallback(boost::bind(&LLNotificationWellWindow::onStartUpToastClick, LLNotificationWellWindow::getInstance(), _2, _3, _4)); + + // mStartUpChannel->setCommitCallback(boost::bind(&LLChannelManager::onStartUpToastClose, this)); + // mStartUpChannel->createStartUpToast(away_notifications, gSavedSettings.getS32("StartUpToastLifeTime")); + //} } LLPersistentNotificationStorage::getInstance()->loadNotifications(); diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 43a733f918..abeaf958eb 100755 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -60,6 +60,8 @@ #include "llstring.h" #include "llurlaction.h" #include "llviewercontrol.h" +#include "llviewerobjectlist.h" +#include "llmutelist.h" static LLDefaultChildRegistry::Register<LLChatHistory> r("chat_history"); @@ -181,6 +183,22 @@ public: { LLAvatarActions::startIM(getAvatarId()); } + else if (level == "teleport") + { + LLAvatarActions::offerTeleport(getAvatarId()); + } + else if (level == "request_teleport") + { + LLAvatarActions::teleportRequest(getAvatarId()); + } + else if (level == "voice_call") + { + LLAvatarActions::startCall(getAvatarId()); + } + else if (level == "chat_history") + { + LLAvatarActions::viewChatHistory(getAvatarId()); + } else if (level == "add") { LLAvatarActions::requestFriendshipDialog(getAvatarId(), mFrom); @@ -189,13 +207,75 @@ public: { LLAvatarActions::removeFriendDialog(getAvatarId()); } + else if (level == "invite_to_group") + { + LLAvatarActions::inviteToGroup(getAvatarId()); + } + else if (level == "zoom_in") + { + handle_zoom_to_object(getAvatarId()); + } + else if (level == "map") + { + LLAvatarActions::showOnMap(getAvatarId()); + } + else if (level == "share") + { + LLAvatarActions::share(getAvatarId()); + } + else if (level == "pay") + { + LLAvatarActions::pay(getAvatarId()); + } + else if(level == "block_unblock") + { + mute(getAvatarId(), LLMute::flagVoiceChat); + } + else if(level == "mute_unmute") + { + mute(getAvatarId(), LLMute::flagTextChat); + } + } + + bool onAvatarIconContextMenuItemChecked(const LLSD& userdata) + { + std::string level = userdata.asString(); + + if (level == "is_blocked") + { + return LLMuteList::getInstance()->isMuted(getAvatarId(), LLMute::flagVoiceChat); + } + if (level == "is_muted") + { + return LLMuteList::getInstance()->isMuted(getAvatarId(), LLMute::flagTextChat); + } + return false; + } + + void mute(const LLUUID& participant_id, U32 flags) + { + BOOL is_muted = LLMuteList::getInstance()->isMuted(participant_id, flags); + std::string name; + gCacheName->getFullName(participant_id, name); + LLMute mute(participant_id, name, LLMute::AGENT); + + if (!is_muted) + { + LLMuteList::getInstance()->add(mute, flags); + } + else + { + LLMuteList::getInstance()->remove(mute, flags); + } } BOOL postBuild() { LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar; + LLUICtrl::EnableCallbackRegistry::ScopedRegistrar registrar_enable; registrar.add("AvatarIcon.Action", boost::bind(&LLChatHistoryHeader::onAvatarIconContextMenuItemClicked, this, _2)); + registrar_enable.add("AvatarIcon.Check", boost::bind(&LLChatHistoryHeader::onAvatarIconContextMenuItemChecked, this, _2)); registrar.add("ObjectIcon.Action", boost::bind(&LLChatHistoryHeader::onObjectIconContextMenuItemClicked, this, _2)); LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_avatar_icon.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); @@ -460,7 +540,7 @@ protected: if(menu) { - bool is_friend = LLAvatarTracker::instance().getBuddyInfo(mAvatarID) != NULL; + bool is_friend = LLAvatarActions::isFriend(mAvatarID); menu->setItemEnabled("Add Friend", !is_friend); menu->setItemEnabled("Remove Friend", is_friend); @@ -470,13 +550,37 @@ protected: menu->setItemEnabled("Add Friend", false); menu->setItemEnabled("Send IM", false); menu->setItemEnabled("Remove Friend", false); + menu->setItemEnabled("Offer Teleport",false); + menu->setItemEnabled("Request Teleport",false); + menu->setItemEnabled("Voice Call", false); + menu->setItemEnabled("Chat History", false); + menu->setItemEnabled("Invite Group", false); + menu->setItemEnabled("Zoom In", false); + menu->setItemEnabled("Share", false); + menu->setItemEnabled("Pay", false); + menu->setItemEnabled("Block Unblock", false); + menu->setItemEnabled("Mute Text", false); } - - if (mSessionID == LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, mAvatarID)) + else + { + LLUUID currentSessionID = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, mAvatarID); + if (mSessionID == currentSessionID) { menu->setItemVisible("Send IM", false); } + menu->setItemEnabled("Offer Teleport", LLAvatarActions::canOfferTeleport(mAvatarID)); + menu->setItemEnabled("Request Teleport", LLAvatarActions::canOfferTeleport(mAvatarID)); + menu->setItemEnabled("Voice Call", LLAvatarActions::canCall()); + + // We should only show 'Zoom in' item in a nearby chat + bool should_show_zoom = !LLIMModel::getInstance()->findIMSession(currentSessionID); + menu->setItemVisible("Zoom In", should_show_zoom && gObjectList.findObject(mAvatarID)); + menu->setItemEnabled("Block Unblock", LLAvatarActions::canBlock(mAvatarID)); + menu->setItemEnabled("Mute Text", LLAvatarActions::canBlock(mAvatarID)); + menu->setItemEnabled("Chat History", LLLogChat::isTranscriptExist(mAvatarID)); + } + menu->setItemEnabled("Map", (LLAvatarTracker::instance().isBuddyOnline(mAvatarID) && is_agent_mappable(mAvatarID)) || gAgent.isGodlike() ); menu->buildDrawLabels(); menu->updateParent(LLMenuGL::sMenuContainer); LLMenuGL::showPopup(this, menu, x, y); @@ -627,6 +731,7 @@ LLChatHistory::LLChatHistory(const LLChatHistory::Params& p) editor_params.follows.flags = FOLLOWS_ALL; editor_params.enabled = false; // read only editor_params.show_context_menu = "true"; + editor_params.trusted_content = false; mEditor = LLUICtrlFactory::create<LLTextEditor>(editor_params, this); mEditor->setIsFriendCallback(LLAvatarActions::isFriend); } @@ -968,6 +1073,22 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL // notify processing if (chat.mNotifId.notNull()) { + bool create_toast = true; + for (LLToastNotifyPanel::instance_iter ti(LLToastNotifyPanel::beginInstances()) + , tend(LLToastNotifyPanel::endInstances()); ti != tend; ++ti) + { + LLToastNotifyPanel& panel = *ti; + LLIMToastNotifyPanel * imtoastp = dynamic_cast<LLIMToastNotifyPanel *>(&panel); + const std::string& notification_name = panel.getNotificationName(); + if (notification_name == "OfferFriendship" && panel.isControlPanelEnabled() && imtoastp) + { + create_toast = false; + break; + } + } + + if (create_toast) + { LLNotificationPtr notification = LLNotificationsUtil::find(chat.mNotifId); if (notification != NULL) { @@ -989,6 +1110,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL mEditor->appendWidget(params, "\n", false); } } + } // usual messages showing else diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp index 9faa12b2ee..90800fee58 100644 --- a/indra/newview/llconversationview.cpp +++ b/indra/newview/llconversationview.cpp @@ -267,6 +267,21 @@ BOOL LLConversationViewSession::handleMouseDown( S32 x, S32 y, MASK mask ) //This node (conversation) was selected and a child (participant) was not if(result && getRoot()) { + if(getRoot()->getCurSelectedItem() == this) + { + LLConversationItem* item = dynamic_cast<LLConversationItem *>(getViewModelItem()); + LLUUID session_id = item? item->getUUID() : LLUUID(); + + LLFloaterIMContainer *im_container = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container"); + if (im_container->isConversationsPaneCollapsed() && im_container->getSelectedSession() == session_id) + { + im_container->collapseMessagesPane(!im_container->isMessagesPaneCollapsed()); + } + else + { + im_container->collapseMessagesPane(false); + } + } selectConversationItem(); } @@ -318,7 +333,6 @@ void LLConversationViewSession::selectConversationItem() LLFloaterIMContainer *im_container = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container"); im_container->flashConversationItemWidget(session_id,false); im_container->selectConversationPair(session_id, false); - im_container->collapseMessagesPane(false); } } diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp index f622d5a63a..24f467f954 100755 --- a/indra/newview/lldrawpoolavatar.cpp +++ b/indra/newview/lldrawpoolavatar.cpp @@ -55,6 +55,7 @@ static U32 sDataMask = LLDrawPoolAvatar::VERTEX_DATA_MASK; static U32 sBufferUsage = GL_STREAM_DRAW_ARB; static U32 sShaderLevel = 0; +#define JOINT_COUNT 52 LLGLSLShader* LLDrawPoolAvatar::sVertexProgram = NULL; BOOL LLDrawPoolAvatar::sSkipOpaque = FALSE; @@ -1582,10 +1583,11 @@ void LLDrawPoolAvatar::updateRiggedFaceVertexBuffer(LLVOAvatar* avatar, LLFace* LLVector4a* norm = has_normal ? (LLVector4a*) normal.get() : NULL; //build matrix palette - LLMatrix4a mp[64]; + LLMatrix4a mp[JOINT_COUNT]; LLMatrix4* mat = (LLMatrix4*) mp; - for (U32 j = 0; j < skin->mJointNames.size(); ++j) + U32 count = llmin((U32) skin->mJointNames.size(), (U32) JOINT_COUNT); + for (U32 j = 0; j < count; ++j) { LLJoint* joint = avatar->getJoint(skin->mJointNames[j]); if (joint) @@ -1642,6 +1644,7 @@ void LLDrawPoolAvatar::updateRiggedFaceVertexBuffer(LLVOAvatar* avatar, LLFace* LLVector4a& n = vol_face.mNormals[j]; bind_shape_matrix.rotate(n, t); final_mat.rotate(t, dst); + dst.normalize3fast(); norm[j] = dst; } } @@ -1708,9 +1711,9 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow) { if (sShaderLevel > 0) { //upload matrix palette to shader - LLMatrix4 mat[32]; + LLMatrix4 mat[JOINT_COUNT]; - U32 count = llmin((U32) skin->mJointNames.size(), (U32) 32); + U32 count = llmin((U32) skin->mJointNames.size(), (U32) JOINT_COUNT); for (U32 i = 0; i < count; ++i) { @@ -1724,10 +1727,42 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow) stop_glerror(); - LLDrawPoolAvatar::sVertexProgram->uniformMatrix4fv(LLViewerShaderMgr::AVATAR_MATRIX, + F32 mp[JOINT_COUNT*9]; + + F32 transp[JOINT_COUNT*3]; + + for (U32 i = 0; i < count; ++i) + { + F32* m = (F32*) mat[i].mMatrix; + + U32 idx = i*9; + + mp[idx+0] = m[0]; + mp[idx+1] = m[1]; + mp[idx+2] = m[2]; + + mp[idx+3] = m[4]; + mp[idx+4] = m[5]; + mp[idx+5] = m[6]; + + mp[idx+6] = m[8]; + mp[idx+7] = m[9]; + mp[idx+8] = m[10]; + + idx = i*3; + + transp[idx+0] = m[12]; + transp[idx+1] = m[13]; + transp[idx+2] = m[14]; + } + + LLDrawPoolAvatar::sVertexProgram->uniformMatrix3fv(LLViewerShaderMgr::AVATAR_MATRIX, count, FALSE, - (GLfloat*) mat[0].mMatrix); + (GLfloat*) mp); + + LLDrawPoolAvatar::sVertexProgram->uniform3fv(LLShaderMgr::AVATAR_TRANSLATION, count, transp); + stop_glerror(); } diff --git a/indra/newview/lldrawpoolsimple.cpp b/indra/newview/lldrawpoolsimple.cpp index 8926f64c64..0bc7ae766c 100755 --- a/indra/newview/lldrawpoolsimple.cpp +++ b/indra/newview/lldrawpoolsimple.cpp @@ -37,8 +37,6 @@ #include "llviewershadermgr.h" #include "llrender.h" -#define GE_FORCE_WORKAROUND LL_DARWIN - static LLGLSLShader* simple_shader = NULL; static LLGLSLShader* fullbright_shader = NULL; @@ -660,14 +658,6 @@ void LLDrawPoolFullbrightAlphaMask::beginPostDeferredPass(S32 pass) } else { - -// Work-around until we can figure out why the right shader causes -// the GeForce driver to go tango uniform on OS X 10.6.8 only -// -#if GE_FORCE_WORKAROUND - gObjectFullbrightAlphaMaskProgram.bind(); - gObjectFullbrightAlphaMaskProgram.uniform1f(LLShaderMgr::TEXTURE_GAMMA, 2.2f); -#else if (LLPipeline::sUnderWaterRender) { gDeferredFullbrightAlphaMaskWaterProgram.bind(); @@ -678,9 +668,7 @@ void LLDrawPoolFullbrightAlphaMask::beginPostDeferredPass(S32 pass) gDeferredFullbrightAlphaMaskProgram.bind(); gDeferredFullbrightAlphaMaskProgram.uniform1f(LLShaderMgr::TEXTURE_GAMMA, 2.2f); } -#endif } - } void LLDrawPoolFullbrightAlphaMask::renderPostDeferred(S32 pass) @@ -699,13 +687,6 @@ void LLDrawPoolFullbrightAlphaMask::endPostDeferredPass(S32 pass) } else { - -// Work-around until we can figure out why the right shader causes -// the GeForce driver to go tango uniform on OS X 10.6.8 only -// -#if GE_FORCE_WORKAROUND - gObjectFullbrightAlphaMaskProgram.unbind(); -#else if (LLPipeline::sUnderWaterRender) { gDeferredFullbrightAlphaMaskWaterProgram.unbind(); @@ -714,8 +695,6 @@ void LLDrawPoolFullbrightAlphaMask::endPostDeferredPass(S32 pass) { gDeferredFullbrightAlphaMaskProgram.unbind(); } -#endif - } LLRenderPass::endRenderPass(pass); } diff --git a/indra/newview/llenvmanager.cpp b/indra/newview/llenvmanager.cpp index 86fe6754dc..589cf28615 100755 --- a/indra/newview/llenvmanager.cpp +++ b/indra/newview/llenvmanager.cpp @@ -92,9 +92,11 @@ void LLEnvPrefs::setUseDayCycle(const std::string& name) } //============================================================================= -LLEnvManagerNew::LLEnvManagerNew() +LLEnvManagerNew::LLEnvManagerNew(): + mInterpNextChangeMessage(true), + mCurRegionUUID(LLUUID::null), + mLastReceivedID(LLUUID::null) { - mInterpNextChangeMessage = true; // Set default environment settings. mUserPrefs.mUseRegionSettings = true; @@ -102,6 +104,9 @@ LLEnvManagerNew::LLEnvManagerNew() mUserPrefs.mWaterPresetName = "Default"; mUserPrefs.mSkyPresetName = "Default"; mUserPrefs.mDayCycleName = "Default"; + + LL_DEBUGS("Windlight")<<LL_ENDL; + gAgent.addRegionChangedCallback(boost::bind(&LLEnvManagerNew::onRegionChange, this)); } bool LLEnvManagerNew::getUseRegionSettings() const @@ -300,6 +305,11 @@ void LLEnvManagerNew::loadUserPrefs() mUserPrefs.mUseRegionSettings = gSavedSettings.getBOOL("UseEnvironmentFromRegion"); mUserPrefs.mUseDayCycle = gSavedSettings.getBOOL("UseDayCycle"); + + if (mUserPrefs.mUseRegionSettings) + { + requestRegionSettings(); + } } void LLEnvManagerNew::saveUserPrefs() @@ -398,6 +408,7 @@ void LLEnvManagerNew::dumpPresets() void LLEnvManagerNew::requestRegionSettings() { + LL_DEBUGS("Windlight") << LL_ENDL; LLEnvironmentRequest::initiate(); } @@ -422,11 +433,6 @@ boost::signals2::connection LLEnvManagerNew::setRegionSettingsChangeCallback(con return mRegionSettingsChangeSignal.connect(cb); } -boost::signals2::connection LLEnvManagerNew::setRegionChangeCallback(const region_change_signal_t::slot_type& cb) -{ - return mRegionChangeSignal.connect(cb); -} - boost::signals2::connection LLEnvManagerNew::setRegionSettingsAppliedCallback(const region_settings_applied_signal_t::slot_type& cb) { return mRegionSettingsAppliedSignal.connect(cb); @@ -457,25 +463,13 @@ const std::string LLEnvManagerNew::getScopeString(LLEnvKey::EScope scope) } } -void LLEnvManagerNew::onRegionCrossing() -{ - LL_DEBUGS("Windlight") << "Crossed region" << LL_ENDL; - onRegionChange(true); -} - -void LLEnvManagerNew::onTeleport() -{ - LL_DEBUGS("Windlight") << "Teleported" << LL_ENDL; - onRegionChange(false); -} - void LLEnvManagerNew::onRegionSettingsResponse(const LLSD& content) { // If the message was valid, grab the UUID from it and save it for next outbound update message. mLastReceivedID = content[0]["messageID"].asUUID(); // Refresh cached region settings. - LL_DEBUGS("Windlight") << "Caching region environment settings: " << content << LL_ENDL; + LL_DEBUGS("Windlight") << "Received region environment settings: " << content << LL_ENDL; F32 sun_hour = 0; // *TODO LLEnvironmentSettings new_settings(content[1], content[2], content[3], sun_hour); mCachedRegionPrefs = new_settings; @@ -594,6 +588,7 @@ void LLEnvManagerNew::updateWaterFromPrefs(bool interpolate) void LLEnvManagerNew::updateManagersFromPrefs(bool interpolate) { + LL_DEBUGS("Windlight")<<LL_ENDL; // Apply water settings. updateWaterFromPrefs(interpolate); @@ -651,28 +646,35 @@ bool LLEnvManagerNew::useDefaultWater() } -void LLEnvManagerNew::onRegionChange(bool interpolate) +void LLEnvManagerNew::onRegionChange() { // Avoid duplicating region setting requests // by checking whether the region is actually changing. LLViewerRegion* regionp = gAgent.getRegion(); LLUUID region_uuid = regionp ? regionp->getRegionID() : LLUUID::null; - if (region_uuid == mCurRegionUUID) + if (region_uuid != mCurRegionUUID) { - return; + // Clear locally modified region settings. + mNewRegionPrefs.clear(); + + // *TODO: clear environment settings of the previous region? + + // Request environment settings of the new region. + mCurRegionUUID = region_uuid; + // for region crossings, interpolate the change; for teleports, don't + mInterpNextChangeMessage = (gAgent.getTeleportState() == LLAgent::TELEPORT_NONE); + LL_DEBUGS("Windlight") << (mInterpNextChangeMessage ? "Crossed" : "Teleported") + << " to new region: " << region_uuid + << LL_ENDL; + requestRegionSettings(); + } + else + { + LL_DEBUGS("Windlight") << "disregarding region change; interp: " + << (mInterpNextChangeMessage ? "true" : "false") + << " regionp: " << regionp + << " old: " << mCurRegionUUID + << " new: " << region_uuid + << LL_ENDL; } - - // Clear locally modified region settings. - mNewRegionPrefs.clear(); - - // *TODO: clear environment settings of the previous region? - - // Request environment settings of the new region. - LL_DEBUGS("Windlight") << "New viewer region: " << region_uuid << LL_ENDL; - mCurRegionUUID = region_uuid; - mInterpNextChangeMessage = interpolate; - requestRegionSettings(); - - // Let interested parties know agent region has been changed. - mRegionChangeSignal(); } diff --git a/indra/newview/llenvmanager.h b/indra/newview/llenvmanager.h index ad56761bc7..c7877303fc 100755 --- a/indra/newview/llenvmanager.h +++ b/indra/newview/llenvmanager.h @@ -166,7 +166,6 @@ class LLEnvManagerNew : public LLSingleton<LLEnvManagerNew> public: typedef boost::signals2::signal<void()> prefs_change_signal_t; typedef boost::signals2::signal<void()> region_settings_change_signal_t; - typedef boost::signals2::signal<void()> region_change_signal_t; typedef boost::signals2::signal<void(bool)> region_settings_applied_signal_t; LLEnvManagerNew(); @@ -222,15 +221,12 @@ public: bool sendRegionSettings(const LLEnvironmentSettings& new_settings); boost::signals2::connection setPreferencesChangeCallback(const prefs_change_signal_t::slot_type& cb); boost::signals2::connection setRegionSettingsChangeCallback(const region_settings_change_signal_t::slot_type& cb); - boost::signals2::connection setRegionChangeCallback(const region_change_signal_t::slot_type& cb); boost::signals2::connection setRegionSettingsAppliedCallback(const region_settings_applied_signal_t::slot_type& cb); static bool canEditRegionSettings(); /// @return true if we have access to editing region environment static const std::string getScopeString(LLEnvKey::EScope scope); // Public callbacks. - void onRegionCrossing(); - void onTeleport(); void onRegionSettingsResponse(const LLSD& content); void onRegionSettingsApplyResponse(bool ok); @@ -251,7 +247,7 @@ private: bool useDefaultSky(); bool useDefaultWater(); - void onRegionChange(bool interpolate); + void onRegionChange(); /// Emitted when user environment preferences change. prefs_change_signal_t mUsePrefsChangeSignal; @@ -260,9 +256,6 @@ private: region_settings_change_signal_t mRegionSettingsChangeSignal; /// Emitted when agent region changes. Move to LLAgent? - region_change_signal_t mRegionChangeSignal; - - /// Emitted when agent region changes. Move to LLAgent? region_settings_applied_signal_t mRegionSettingsAppliedSignal; LLEnvPrefs mUserPrefs; /// User environment preferences. diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index 369273bca6..ae62be0ad0 100755 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -1386,7 +1386,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, } } - static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback"); + static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false); #ifdef GL_TRANSFORM_FEEDBACK_BUFFER if (use_transform_feedback && @@ -1526,7 +1526,6 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, } glBindBufferARB(GL_TRANSFORM_FEEDBACK_BUFFER, 0); - gGL.popMatrix(); if (cur_shader) diff --git a/indra/newview/llface.h b/indra/newview/llface.h index 66b5f13740..c9037ce1eb 100755 --- a/indra/newview/llface.h +++ b/indra/newview/llface.h @@ -194,7 +194,8 @@ public: void setSize(S32 numVertices, S32 num_indices = 0, bool align = false); - BOOL genVolumeBBoxes(const LLVolume &volume, S32 f,const LLMatrix4& mat, BOOL global_volume = FALSE); + BOOL genVolumeBBoxes(const LLVolume &volume, S32 f, + const LLMatrix4& mat_vert_in, BOOL global_volume = FALSE); void init(LLDrawable* drawablep, LLViewerObject* objp); void destroy(); diff --git a/indra/newview/llfacebookconnect.cpp b/indra/newview/llfacebookconnect.cpp index 611d18d6d6..9a20ce8f1b 100644 --- a/indra/newview/llfacebookconnect.cpp +++ b/indra/newview/llfacebookconnect.cpp @@ -356,13 +356,18 @@ void LLFacebookConnect::openFacebookWeb(std::string url) std::string LLFacebookConnect::getFacebookConnectURL(const std::string& route, bool include_read_from_master) { - std::string url = gAgent.getRegion()->getCapability("FacebookConnect"); - url += route; + std::string url(""); + LLViewerRegion *regionp = gAgent.getRegion(); + if (regionp) + { + url = regionp->getCapability("FacebookConnect"); + url += route; - if (include_read_from_master && mReadFromMaster) - { - url += "?read_from_master=true"; - } + if (include_read_from_master && mReadFromMaster) + { + url += "?read_from_master=true"; + } + } return url; } diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp index 8e1a1df211..06119620de 100755 --- a/indra/newview/llfasttimerview.cpp +++ b/indra/newview/llfasttimerview.cpp @@ -1545,7 +1545,7 @@ void LLFastTimerView::doAnalysis(std::string baseline, std::string target, std:: return ; } } -void LLFastTimerView::onClickCloseBtn() +void LLFastTimerView::onClickCloseBtn(bool) { setVisible(false); } diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h index 5766cfa0b0..1349b1e99c 100755 --- a/indra/newview/llfasttimerview.h +++ b/indra/newview/llfasttimerview.h @@ -63,7 +63,7 @@ public: F64 getTime(const std::string& name); protected: - virtual void onClickCloseBtn(); + virtual void onClickCloseBtn(bool app_quitting = false); private: typedef std::vector<std::vector<S32> > bar_positions_t; bar_positions_t mBarStart; diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp index c47618e1ec..73607e100a 100755 --- a/indra/newview/llfeaturemanager.cpp +++ b/indra/newview/llfeaturemanager.cpp @@ -350,7 +350,7 @@ bool LLFeatureManager::parseFeatureTable(std::string filename) } mTableVersion = version; - + LLFeatureList *flp = NULL; bool parse_ok = true; while (file >> name && parse_ok) @@ -381,11 +381,11 @@ bool LLFeatureManager::parseFeatureTable(std::string filename) file >> name; if (!mMaskList.count(name)) { - flp = new LLFeatureList(name); - mMaskList[name] = flp; - } - else - { + flp = new LLFeatureList(name); + mMaskList[name] = flp; + } + else + { LL_WARNS("RenderInit") << "Overriding mask " << name << ", this is invalid!" << LL_ENDL; parse_ok = false; } @@ -394,11 +394,11 @@ bool LLFeatureManager::parseFeatureTable(std::string filename) { if (flp) { - S32 available; - F32 recommended; - file >> available >> recommended; - flp->addFeature(name, available, recommended); - } + S32 available; + F32 recommended; + file >> available >> recommended; + flp->addFeature(name, available, recommended); + } else { LL_WARNS("RenderInit") << "Specified parameter before <list> keyword!" << LL_ENDL; @@ -444,7 +444,7 @@ bool LLFeatureManager::loadGPUClass() // the HTTP table failed to parse, so delete it LLFile::remove(http_path); LL_WARNS("RenderInit") << "Removed invalid gpu table '" << http_path << "'" << LL_ENDL; - } + } } if (!parse_ok) @@ -459,7 +459,7 @@ bool LLFeatureManager::loadGPUClass() bool LLFeatureManager::parseGPUTable(std::string filename) { llifstream file; - + LL_INFOS("RenderInit") << "Attempting to parse GPU table from " << filename << LL_ENDL; file.open(filename); diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index c151b51c23..16eacc9392 100755 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -422,6 +422,19 @@ BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename) L"PNG Images (*.png)\0*.png\0" \ L"\0"; break; + case FFSAVE_TGAPNG: + if (filename.empty()) + { + wcsncpy( mFilesW,L"untitled.png", FILENAME_BUFFER_SIZE); /*Flawfinder: ignore*/ + //PNG by default + } + mOFN.lpstrDefExt = L"png"; + mOFN.lpstrFilter = + L"PNG Images (*.png)\0*.png\0" \ + L"Targa Images (*.tga)\0*.tga\0" \ + L"\0"; + break; + case FFSAVE_JPEG: if (filename.empty()) { @@ -640,13 +653,16 @@ bool LLFilePicker::doNavSaveDialog(ESaveFilter filter, const std::string& filena creator = "TVOD"; extension = "wav"; break; - case FFSAVE_TGA: type = "TPIC"; creator = "prvw"; extension = "tga"; break; - + case FFSAVE_TGAPNG: + type = "PNG"; + creator = "prvw"; + extension = "png"; + break; case FFSAVE_BMP: type = "BMPf"; creator = "prvw"; @@ -921,6 +937,22 @@ void LLFilePicker::chooser_responder(GtkWidget *widget, gint response, gpointer g_slist_free (file_list); } + // let's save the extension of the last added file(considering current filter) + GtkFileFilter *gfilter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER(widget)); + if(gfilter) + { + std::string filter = gtk_file_filter_get_name(gfilter); + + if(filter == LLTrans::getString("png_image_files")) + { + picker->mCurrentExtension = ".png"; + } + else if(filter == LLTrans::getString("targa_image_files")) + { + picker->mCurrentExtension = ".tga"; + } + } + // set the default path for this usage context. const char* cur_folder = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(widget)); if (cur_folder != NULL) @@ -1092,6 +1124,24 @@ static std::string add_dictionary_filter_to_gtkchooser(GtkWindow *picker) LLTrans::getString("dictionary_files") + " (*.dic; *.xcu)"); } +static std::string add_save_texture_filter_to_gtkchooser(GtkWindow *picker) +{ + GtkFileFilter *gfilter_tga = gtk_file_filter_new(); + GtkFileFilter *gfilter_png = gtk_file_filter_new(); + + gtk_file_filter_add_pattern(gfilter_tga, "*.tga"); + gtk_file_filter_add_mime_type(gfilter_png, "image/png"); + std::string caption = LLTrans::getString("save_texture_image_files") + " (*.tga; *.png)"; + gtk_file_filter_set_name(gfilter_tga, LLTrans::getString("targa_image_files").c_str()); + gtk_file_filter_set_name(gfilter_png, LLTrans::getString("png_image_files").c_str()); + + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(picker), + gfilter_png); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(picker), + gfilter_tga); + return caption; +} + BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename ) { BOOL rtn = FALSE; @@ -1129,6 +1179,15 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename (picker, "image/bmp", LLTrans::getString("bitmap_image_files") + " (*.bmp)"); suggest_ext = ".bmp"; break; + case FFSAVE_PNG: + caption += add_simple_mime_filter_to_gtkchooser + (picker, "image/png", LLTrans::getString("png_image_files") + " (*.png)"); + suggest_ext = ".png"; + break; + case FFSAVE_TGAPNG: + caption += add_save_texture_filter_to_gtkchooser(picker); + suggest_ext = ".png"; + break; case FFSAVE_AVI: caption += add_simple_mime_filter_to_gtkchooser (picker, "video/x-msvideo", @@ -1181,9 +1240,17 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename } gtk_widget_show_all(GTK_WIDGET(picker)); + gtk_main(); rtn = (getFileCount() == 1); + + if(rtn && filter == FFSAVE_TGAPNG) + { + std::string selected_file = mFiles.back(); + mFiles.pop_back(); + mFiles.push_back(selected_file + mCurrentExtension); + } } gViewerWindow->getWindow()->afterDialog(); diff --git a/indra/newview/llfilepicker.h b/indra/newview/llfilepicker.h index 0d279f73f3..f0f82c51db 100755 --- a/indra/newview/llfilepicker.h +++ b/indra/newview/llfilepicker.h @@ -107,6 +107,7 @@ public: FFSAVE_PNG = 13, FFSAVE_JPEG = 14, FFSAVE_SCRIPT = 15, + FFSAVE_TGAPNG = 16 }; // open the dialog. This is a modal operation @@ -175,6 +176,8 @@ private: // we remember the last path that was accessed for a particular usage std::map <std::string, std::string> mContextToPathMap; std::string mCurContextName; + // we also remember the extension of the last added file. + std::string mCurrentExtension; #endif std::vector<std::string> mFiles; diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp index fea8e34729..4331a63346 100755 --- a/indra/newview/llfloaterabout.cpp +++ b/indra/newview/llfloaterabout.cpp @@ -70,8 +70,6 @@ extern LLMemoryInfo gSysMemory; extern U32 gPacketsIn; -static std::string get_viewer_release_notes_url(); - ///---------------------------------------------------------------------------- /// Class LLServerReleaseNotesURLFetcher ///---------------------------------------------------------------------------- @@ -108,8 +106,6 @@ public: static LLSD getInfo(); void onClickCopyToClipboard(); - void updateServerReleaseNotesURL(const std::string& url); - private: void setSupportText(const std::string& server_release_notes_url); }; @@ -219,107 +215,9 @@ BOOL LLFloaterAbout::postBuild() return TRUE; } -// static LLSD LLFloaterAbout::getInfo() { - // The point of having one method build an LLSD info block and the other - // construct the user-visible About string is to ensure that the same info - // is available to a getInfo() caller as to the user opening - // LLFloaterAbout. - LLSD info; - LLSD version; - version.append(LLVersionInfo::getMajor()); - version.append(LLVersionInfo::getMinor()); - version.append(LLVersionInfo::getPatch()); - version.append(LLVersionInfo::getBuild()); - info["VIEWER_VERSION"] = version; - info["VIEWER_VERSION_STR"] = LLVersionInfo::getVersion(); - info["BUILD_DATE"] = __DATE__; - info["BUILD_TIME"] = __TIME__; - info["CHANNEL"] = LLVersionInfo::getChannel(); - - info["VIEWER_RELEASE_NOTES_URL"] = get_viewer_release_notes_url(); - -#if LL_MSVC - info["COMPILER"] = "MSVC"; - info["COMPILER_VERSION"] = _MSC_VER; -#elif LL_GNUC - info["COMPILER"] = "GCC"; - info["COMPILER_VERSION"] = GCC_VERSION; -#endif - - // Position - LLViewerRegion* region = gAgent.getRegion(); - if (region) - { - LLVector3d pos = gAgent.getPositionGlobal(); - info["POSITION"] = ll_sd_from_vector3d(pos); - info["POSITION_LOCAL"] = ll_sd_from_vector3(gAgent.getPosAgentFromGlobal(pos)); - info["REGION"] = gAgent.getRegion()->getName(); - info["HOSTNAME"] = gAgent.getRegion()->getHost().getHostName(); - info["HOSTIP"] = gAgent.getRegion()->getHost().getString(); - info["SERVER_VERSION"] = gLastVersionChannel; - LLSLURL slurl; - LLAgentUI::buildSLURL(slurl); - info["SLURL"] = slurl.getSLURLString(); - } - - // CPU - info["CPU"] = gSysCPU.getCPUString(); - info["MEMORY_MB"] = LLSD::Integer(gSysMemory.getPhysicalMemoryKB() / 1024); - // Moved hack adjustment to Windows memory size into llsys.cpp - info["OS_VERSION"] = LLAppViewer::instance()->getOSInfo().getOSString(); - info["GRAPHICS_CARD_VENDOR"] = (const char*)(glGetString(GL_VENDOR)); - info["GRAPHICS_CARD"] = (const char*)(glGetString(GL_RENDERER)); - -#if LL_WINDOWS - LLSD driver_info = gDXHardware.getDisplayInfo(); - if (driver_info.has("DriverVersion")) - { - info["GRAPHICS_DRIVER_VERSION"] = driver_info["DriverVersion"]; - } -#endif - - info["OPENGL_VERSION"] = (const char*)(glGetString(GL_VERSION)); - info["LIBCURL_VERSION"] = LLCurl::getVersionString(); - info["J2C_VERSION"] = LLImageJ2C::getEngineInfo(); - bool want_fullname = true; - info["AUDIO_DRIVER_VERSION"] = gAudiop ? LLSD(gAudiop->getDriverName(want_fullname)) : LLSD(); - if(LLVoiceClient::getInstance()->voiceEnabled()) - { - LLVoiceVersionInfo version = LLVoiceClient::getInstance()->getVersion(); - std::ostringstream version_string; - version_string << version.serverType << " " << version.serverVersion << std::endl; - info["VOICE_VERSION"] = version_string.str(); - } - else - { - info["VOICE_VERSION"] = LLTrans::getString("NotConnected"); - } - - // TODO: Implement media plugin version query - info["QT_WEBKIT_VERSION"] = "4.7.1 (version number hard-coded)"; - - if (gPacketsIn > 0) - { - info["PACKETS_LOST"] = LLViewerStats::getInstance()->mPacketsLostStat.getCurrent(); - info["PACKETS_IN"] = F32(gPacketsIn); - info["PACKETS_PCT"] = 100.f*info["PACKETS_LOST"].asReal() / info["PACKETS_IN"].asReal(); - } - - return info; -} - -static std::string get_viewer_release_notes_url() -{ - // return a URL to the release notes for this viewer, such as: - // http://wiki.secondlife.com/wiki/Release_Notes/Second Life Beta Viewer/2.1.0.123456 - std::string url = LLTrans::getString("RELEASE_NOTES_BASE_URL"); - if (! LLStringUtil::endsWith(url, "/")) - url += "/"; - url += LLVersionInfo::getChannel() + "/"; - url += LLVersionInfo::getVersion(); - return LLWeb::escapeURL(url); + return LLAppViewer::instance()->getViewerInfo(); } class LLFloaterAboutListener: public LLEventAPI @@ -356,93 +254,22 @@ void LLFloaterAbout::onClickCopyToClipboard() support_widget->deselect(); } -void LLFloaterAbout::updateServerReleaseNotesURL(const std::string& url) -{ - setSupportText(url); -} - void LLFloaterAbout::setSupportText(const std::string& server_release_notes_url) { #if LL_WINDOWS getWindow()->incBusyCount(); getWindow()->setCursor(UI_CURSOR_ARROW); #endif - LLSD info(getInfo()); #if LL_WINDOWS getWindow()->decBusyCount(); getWindow()->setCursor(UI_CURSOR_ARROW); #endif - if (LLStringUtil::startsWith(server_release_notes_url, "http")) // it's an URL - { - info["SERVER_RELEASE_NOTES_URL"] = "[" + LLWeb::escapeURL(server_release_notes_url) + " " + LLTrans::getString("ReleaseNotes") + "]"; - } - else - { - info["SERVER_RELEASE_NOTES_URL"] = server_release_notes_url; - } - LLViewerTextEditor *support_widget = getChild<LLViewerTextEditor>("support_editor", true); - std::ostringstream support; - - // Render the LLSD from getInfo() as a format_map_t - LLStringUtil::format_map_t args; - - // allow the "Release Notes" URL label to be localized - args["ReleaseNotes"] = LLTrans::getString("ReleaseNotes"); - - for (LLSD::map_const_iterator ii(info.beginMap()), iend(info.endMap()); - ii != iend; ++ii) - { - if (! ii->second.isArray()) - { - // Scalar value - if (ii->second.isUndefined()) - { - args[ii->first] = getString("none"); - } - else - { - // don't forget to render value asString() - args[ii->first] = ii->second.asString(); - } - } - else - { - // array value: build KEY_0, KEY_1 etc. entries - for (LLSD::Integer n(0), size(ii->second.size()); n < size; ++n) - { - args[STRINGIZE(ii->first << '_' << n)] = ii->second[n].asString(); - } - } - } - - // Now build the various pieces - support << getString("AboutHeader", args); - if (info.has("REGION")) - { - support << "\n\n" << getString("AboutPosition", args); - } - support << "\n\n" << getString("AboutSystem", args); - support << "\n"; - if (info.has("GRAPHICS_DRIVER_VERSION")) - { - support << "\n" << getString("AboutDriver", args); - } - support << "\n" << getString("AboutLibs", args); - if (info.has("COMPILER")) - { - support << "\n" << getString("AboutCompiler", args); - } - if (info.has("PACKETS_IN")) - { - support << '\n' << getString("AboutTraffic", args); - } - support_widget->clear(); - support_widget->appendText(support.str(), + support_widget->appendText(LLAppViewer::instance()->getViewerInfoString(), FALSE, LLStyle::Params() .color(LLUIColorTable::instance().getColor("TextFgReadOnlyColor"))); @@ -489,9 +316,9 @@ void LLServerReleaseNotesURLFetcher::completedHeader(U32 status, const std::stri std::string location = content["location"].asString(); if (location.empty()) { - location = floater_about->getString("ErrorFetchingServerReleaseNotesURL"); + location = LLTrans::getString("ErrorFetchingServerReleaseNotesURL"); } - floater_about->updateServerReleaseNotesURL(location); + LLAppViewer::instance()->setServerReleaseNotesURL(location); } } diff --git a/indra/newview/llfloaterbulkpermission.cpp b/indra/newview/llfloaterbulkpermission.cpp index 76f62a7880..07bd262c00 100755 --- a/indra/newview/llfloaterbulkpermission.cpp +++ b/indra/newview/llfloaterbulkpermission.cpp @@ -82,6 +82,11 @@ BOOL LLFloaterBulkPermission::postBuild() mBulkChangeNextOwnerCopy = gSavedSettings.getBOOL("BulkChangeNextOwnerCopy"); mBulkChangeNextOwnerTransfer = gSavedSettings.getBOOL("BulkChangeNextOwnerTransfer"); + // fix invalid permissions case (in case initial settings were generated by a viewer affected by MAINT-3339) + if( !mBulkChangeNextOwnerTransfer && !mBulkChangeEveryoneCopy) + { + mBulkChangeNextOwnerTransfer = true; + } return TRUE; } diff --git a/indra/newview/llfloaterconversationpreview.cpp b/indra/newview/llfloaterconversationpreview.cpp index 4a85160f95..a303c2c6b3 100755 --- a/indra/newview/llfloaterconversationpreview.cpp +++ b/indra/newview/llfloaterconversationpreview.cpp @@ -44,7 +44,8 @@ LLFloaterConversationPreview::LLFloaterConversationPreview(const LLSD& session_i mPageSize(gSavedSettings.getS32("ConversationHistoryPageSize")), mAccountName(session_id[LL_FCP_ACCOUNT_NAME]), mCompleteName(session_id[LL_FCP_COMPLETE_NAME]), - mMutex(NULL) + mMutex(NULL), + mShowHistory(false) { } @@ -91,7 +92,6 @@ BOOL LLFloaterConversationPreview::postBuild() mPageSpinner->setMinValue(1); mPageSpinner->set(1); mPageSpinner->setEnabled(false); - mChatHistoryLoaded = false; LLLogChat::startChatHistoryThread(file, load_params); return LLFloater::postBuild(); } @@ -111,33 +111,29 @@ void LLFloaterConversationPreview::setPages(std::list<LLSD>& messages,const std: std::string total_page_num = llformat("/ %d", mCurrentPage+1); getChild<LLTextBox>("page_num_label")->setValue(total_page_num); - mChatHistoryLoaded = true; + mShowHistory = true; } } void LLFloaterConversationPreview::draw() { - if(mChatHistoryLoaded) + if(mShowHistory) { showHistory(); - mChatHistoryLoaded = false; + mShowHistory = false; } LLFloater::draw(); } void LLFloaterConversationPreview::onOpen(const LLSD& key) { - if(mChatHistoryLoaded) - { - showHistory(); - } + mShowHistory = true; } void LLFloaterConversationPreview::showHistory() { - // additional protection to avoid changes of mMessages in setPages() + // additional protection to avoid changes of mMessages in setPages LLMutexLock lock(&mMutex); - if (!mMessages.size() || mCurrentPage * mPageSize >= mMessages.size()) { return; @@ -198,10 +194,11 @@ void LLFloaterConversationPreview::showHistory() void LLFloaterConversationPreview::onMoreHistoryBtnClick() { mCurrentPage = (int)(mPageSpinner->getValueF32()); - if (--mCurrentPage < 0) + if (!mCurrentPage) { return; } - showHistory(); + mCurrentPage--; + mShowHistory = true; } diff --git a/indra/newview/llfloaterconversationpreview.h b/indra/newview/llfloaterconversationpreview.h index f8796127ba..b0488f4ff1 100755 --- a/indra/newview/llfloaterconversationpreview.h +++ b/indra/newview/llfloaterconversationpreview.h @@ -62,7 +62,7 @@ private: std::string mAccountName; std::string mCompleteName; std::string mChatHistoryFileName; - bool mChatHistoryLoaded; + bool mShowHistory; }; #endif /* LLFLOATERCONVERSATIONPREVIEW_H_ */ diff --git a/indra/newview/llfloatereditdaycycle.cpp b/indra/newview/llfloatereditdaycycle.cpp index b63677b258..78e20e3bf0 100755 --- a/indra/newview/llfloatereditdaycycle.cpp +++ b/indra/newview/llfloatereditdaycycle.cpp @@ -145,7 +145,7 @@ void LLFloaterEditDayCycle::initCallbacks(void) // Connect to env manager events. LLEnvManagerNew& env_mgr = LLEnvManagerNew::instance(); env_mgr.setRegionSettingsChangeCallback(boost::bind(&LLFloaterEditDayCycle::onRegionSettingsChange, this)); - env_mgr.setRegionChangeCallback(boost::bind(&LLFloaterEditDayCycle::onRegionChange, this)); + gAgent.addRegionChangedCallback(boost::bind(&LLFloaterEditDayCycle::onRegionChange, this)); env_mgr.setRegionSettingsAppliedCallback(boost::bind(&LLFloaterEditDayCycle::onRegionSettingsApplied, this, _1)); // Connect to day cycle manager events. diff --git a/indra/newview/llfloatergroupinvite.cpp b/indra/newview/llfloatergroupinvite.cpp index 49da4e64b3..d0f3289769 100755 --- a/indra/newview/llfloatergroupinvite.cpp +++ b/indra/newview/llfloatergroupinvite.cpp @@ -30,6 +30,8 @@ #include "llpanelgroupinvite.h" #include "lltrans.h" #include "lldraghandle.h" +#include "llagent.h" +#include "llgroupmgr.h" class LLFloaterGroupInvite::impl { @@ -123,6 +125,12 @@ void LLFloaterGroupInvite::showForGroup(const LLUUID& group_id, uuid_vec_t *agen LLFloaterGroupInvite *fgi = get_if_there(impl::sInstances, group_id, (LLFloaterGroupInvite*)NULL); + + // refresh group information + gAgent.sendAgentDataUpdateRequest(); + LLGroupMgr::getInstance()->clearGroupData(group_id); + + if (!fgi) { fgi = new LLFloaterGroupInvite(group_id); diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index 90b4490e1d..b5aa309066 100755 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -101,6 +101,7 @@ LLFloaterIMContainer::~LLFloaterIMContainer() gSavedPerAccountSettings.setBOOL("ConversationsListPaneCollapsed", mConversationsPane->isCollapsed()); gSavedPerAccountSettings.setBOOL("ConversationsMessagePaneCollapsed", mMessagesPane->isCollapsed()); + gSavedPerAccountSettings.setBOOL("ConversationsParticipantListCollapsed", !isParticipantListExpanded()); if (!LLSingleton<LLIMMgr>::destroyed()) { @@ -250,6 +251,11 @@ BOOL LLFloaterIMContainer::postBuild() // Init the sort order now that the root had been created setSortOrder(LLConversationSort(gSavedSettings.getU32("ConversationSortOrder"))); + //We should expand nearby chat participants list for the new user + if(gAgent.isFirstLogin() || !gSavedPerAccountSettings.getBOOL("ConversationsParticipantListCollapsed")) + { + expandConversation(); + } // Keep the xml set title around for when we have to overwrite it mGeneralTitle = getTitle(); @@ -715,6 +721,16 @@ void LLFloaterIMContainer::updateResizeLimits() assignResizeLimits(); } +bool LLFloaterIMContainer::isMessagesPaneCollapsed() +{ + return mMessagesPane->isCollapsed(); +} + +bool LLFloaterIMContainer::isConversationsPaneCollapsed() +{ + return mConversationsPane->isCollapsed(); +} + void LLFloaterIMContainer::collapseMessagesPane(bool collapse) { if (mMessagesPane->isCollapsed() == collapse) @@ -784,8 +800,8 @@ void LLFloaterIMContainer::collapseConversationsPane(bool collapse, bool save_is mConversationsPane->setTargetDim(gSavedPerAccountSettings.getS32("ConversationsListPaneWidth")); } - S32 delta_width = - gSavedPerAccountSettings.getS32("ConversationsListPaneWidth") - mConversationsPane->getMinDim(); + S32 delta_width = gSavedPerAccountSettings.getS32("ConversationsListPaneWidth") + - mConversationsPane->getMinDim() - mConversationsStack->getPanelSpacing() + 1; reshapeFloaterAndSetResizeLimits(collapse, delta_width); @@ -2086,6 +2102,19 @@ void LLFloaterIMContainer::expandConversation() } } } +bool LLFloaterIMContainer::isParticipantListExpanded() +{ + bool is_expanded = false; + if(!mConversationsPane->isCollapsed()) + { + LLConversationViewSession* widget = dynamic_cast<LLConversationViewSession*>(get_ptr_in_map(mConversationsWidgets,getSelectedSession())); + if (widget) + { + is_expanded = widget->isOpen(); + } + } + return is_expanded; +} // By default, if torn off session is currently frontmost, LLFloater::isFrontmost() will return FALSE, which can lead to some bugs // So LLFloater::isFrontmost() is overriden here to check both selected session and the IM floater itself @@ -2102,7 +2131,7 @@ BOOL LLFloaterIMContainer::isFrontmost() // For conversations, closeFloater() (linked to Ctrl-W) does not actually close the floater but the active conversation. // This is intentional so it doesn't confuse the user. onClickCloseBtn() closes the whole floater. -void LLFloaterIMContainer::onClickCloseBtn() +void LLFloaterIMContainer::onClickCloseBtn(bool app_quitting/* = false*/) { // Always unminimize before trying to close. // Most of the time the user will never see this state. @@ -2111,7 +2140,7 @@ void LLFloaterIMContainer::onClickCloseBtn() LLMultiFloater::setMinimized(FALSE); } - LLFloater::closeFloater(); + LLFloater::closeFloater(app_quitting); } void LLFloaterIMContainer::closeHostedFloater() @@ -2158,7 +2187,7 @@ void LLFloaterIMContainer::closeFloater(bool app_quitting/* = false*/) if(app_quitting) { closeAllConversations(); - onClickCloseBtn(); + onClickCloseBtn(app_quitting); } else { diff --git a/indra/newview/llfloaterimcontainer.h b/indra/newview/llfloaterimcontainer.h index 36da457cac..f6d973b9b3 100755 --- a/indra/newview/llfloaterimcontainer.h +++ b/indra/newview/llfloaterimcontainer.h @@ -90,6 +90,8 @@ public: static void onCurrentChannelChanged(const LLUUID& session_id); void collapseMessagesPane(bool collapse); + bool isMessagesPaneCollapsed(); + bool isConversationsPaneCollapsed(); // Callbacks static void idle(void* user_data); @@ -134,7 +136,7 @@ private: void onStubCollapseButtonClicked(); void processParticipantsStyleUpdate(); void onSpeakButtonClicked(); - /*virtual*/ void onClickCloseBtn(); + /*virtual*/ void onClickCloseBtn(bool app_quitting = false); /*virtual*/ void closeHostedFloater(); void collapseConversationsPane(bool collapse, bool save_is_allowed=true); @@ -172,6 +174,7 @@ private: void toggleAllowTextChat(const LLUUID& participant_uuid); void toggleMute(const LLUUID& participant_id, U32 flags); void openNearbyChat(); + bool isParticipantListExpanded(); LLButton* mExpandCollapseBtn; LLButton* mStubCollapseBtn; diff --git a/indra/newview/llfloaterimnearbychat.cpp b/indra/newview/llfloaterimnearbychat.cpp index 3d77ea4f0b..323e84751f 100755 --- a/indra/newview/llfloaterimnearbychat.cpp +++ b/indra/newview/llfloaterimnearbychat.cpp @@ -308,7 +308,8 @@ void LLFloaterIMNearbyChat::onClose(bool app_quitting) } // virtual -void LLFloaterIMNearbyChat::onClickCloseBtn() +void LLFloaterIMNearbyChat::onClickCloseBtn(bool) + { if (!isTornOff()) { @@ -493,11 +494,11 @@ void LLFloaterIMNearbyChat::onChatBoxKeystroke() if (!rest_of_match.empty()) { mInputEditor->setText(utf8_trigger + rest_of_match); // keep original capitalization for user-entered part - // Select to end of line, starting from the character // after the last one the user typed. - mInputEditor->selectNext(rest_of_match, false); + mInputEditor->selectByCursorPosition(utf8_out_str.size()-rest_of_match.size(),utf8_out_str.size()); } + } else if (matchChatTypeTrigger(utf8_trigger, &utf8_out_str)) { diff --git a/indra/newview/llfloaterimnearbychat.h b/indra/newview/llfloaterimnearbychat.h index 05b48cccb0..f0daacd6a9 100755 --- a/indra/newview/llfloaterimnearbychat.h +++ b/indra/newview/llfloaterimnearbychat.h @@ -95,7 +95,7 @@ protected: void onChatFontChange(LLFontGL* fontp); /*virtual*/ void onTearOffClicked(); - /*virtual*/ void onClickCloseBtn(); + /*virtual*/ void onClickCloseBtn(bool app_qutting = false); static LLWString stripChannelNumber(const LLWString &mesg, S32* channel); EChatType processChatTypeTriggers(EChatType type, std::string &str); diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp index 5cb9df5625..84921849d0 100755 --- a/indra/newview/llfloaterimsession.cpp +++ b/indra/newview/llfloaterimsession.cpp @@ -61,6 +61,9 @@ #include "llnotificationmanager.h" #include "llautoreplace.h" +const F32 ME_TYPING_TIMEOUT = 4.0f; +const F32 OTHER_TYPING_TIMEOUT = 9.0f; + floater_showed_signal_t LLFloaterIMSession::sIMFloaterShowedSignal; LLFloaterIMSession::LLFloaterIMSession(const LLUUID& session_id) @@ -75,7 +78,10 @@ LLFloaterIMSession::LLFloaterIMSession(const LLUUID& session_id) mTypingTimer(), mTypingTimeoutTimer(), mPositioned(false), - mSessionInitialized(false) + mSessionInitialized(false), + mMeTypingTimer(), + mOtherTypingTimer(), + mImInfo() { mIsNearbyChat = false; @@ -96,13 +102,31 @@ LLFloaterIMSession::LLFloaterIMSession(const LLUUID& session_id) void LLFloaterIMSession::refresh() { if (mMeTyping) -{ + { + // Send an additional Start Typing packet every ME_TYPING_TIMEOUT seconds + if (mMeTypingTimer.getElapsedTimeF32() > ME_TYPING_TIMEOUT && false == mShouldSendTypingState) + { + LL_DEBUGS("TypingMsgs") << "Send additional Start Typing packet" << LL_ENDL; + LLIMModel::instance().sendTypingState(mSessionID, mOtherParticipantUUID, TRUE); + mMeTypingTimer.reset(); + } + // Time out if user hasn't typed for a while. if (mTypingTimeoutTimer.getElapsedTimeF32() > LLAgent::TYPING_TIMEOUT_SECS) { - setTyping(false); + setTyping(false); + LL_DEBUGS("TypingMsgs") << "Send stop typing due to timeout" << LL_ENDL; } } + + // Clear <name is typing> message if no data received for OTHER_TYPING_TIMEOUT seconds + if (mOtherTyping && mOtherTypingTimer.getElapsedTimeF32() > OTHER_TYPING_TIMEOUT) + { + LL_DEBUGS("TypingMsgs") << "Received: is typing cleared due to timeout" << LL_ENDL; + removeTypingIndicator(mImInfo); + mOtherTyping = false; + } + } // virtual @@ -112,7 +136,7 @@ void LLFloaterIMSession::onTearOffClicked() } // virtual -void LLFloaterIMSession::onClickCloseBtn() +void LLFloaterIMSession::onClickCloseBtn(bool) { LLIMModel::LLIMSession* session = LLIMModel::instance().findIMSession(mSessionID); @@ -953,13 +977,21 @@ void LLFloaterIMSession::setTyping(bool typing) // much network traffic. Only send in person-to-person IMs. if ( mShouldSendTypingState && mDialog == IM_NOTHING_SPECIAL ) { - // Still typing, send 'start typing' notification or - // send 'stop typing' notification immediately - if (!mMeTyping || mTypingTimer.getElapsedTimeF32() > 1.f) + if ( mMeTyping ) { - LLIMModel::instance().sendTypingState(mSessionID, - mOtherParticipantUUID, mMeTyping); - mShouldSendTypingState = false; + if ( mTypingTimer.getElapsedTimeF32() > 1.f ) + { + // Still typing, send 'start typing' notification + LLIMModel::instance().sendTypingState(mSessionID, mOtherParticipantUUID, TRUE); + mShouldSendTypingState = false; + mMeTypingTimer.reset(); + } + } + else + { + // Send 'stop typing' notification immediately + LLIMModel::instance().sendTypingState(mSessionID, mOtherParticipantUUID, FALSE); + mShouldSendTypingState = false; } } @@ -975,10 +1007,12 @@ void LLFloaterIMSession::setTyping(bool typing) void LLFloaterIMSession::processIMTyping(const LLIMInfo* im_info, BOOL typing) { + LL_DEBUGS("TypingMsgs") << "typing=" << typing << LL_ENDL; if ( typing ) { // other user started typing addTypingIndicator(im_info); + mOtherTypingTimer.reset(); } else { @@ -1202,10 +1236,40 @@ BOOL LLFloaterIMSession::inviteToSession(const uuid_vec_t& ids) void LLFloaterIMSession::addTypingIndicator(const LLIMInfo* im_info) { +/* Operation of "<name> is typing" state machine: +Not Typing state: + + User types in P2P IM chat ... Send Start Typing, save Started time, + start Idle Timer (N seconds) go to Typing state + +Typing State: + + User enters a non-return character: if Now - Started > ME_TYPING_TIMEOUT, send + Start Typing, restart Idle Timer + User enters a return character: stop Idle Timer, send IM and Stop + Typing, go to Not Typing state + Idle Timer expires: send Stop Typing, go to Not Typing state + +The recipient has a complementary state machine in which a Start Typing +that is not followed by either an IM or another Start Typing within OTHER_TYPING_TIMEOUT +seconds switches the sender out of typing state. + +This has the nice quality of being self-healing for lost start/stop +messages while adding messages only for the (relatively rare) case of a +user who types a very long message (one that takes more than ME_TYPING_TIMEOUT seconds +to type). + +Note: OTHER_TYPING_TIMEOUT must be > ME_TYPING_TIMEOUT for proper operation of the state machine + +*/ + // We may have lost a "stop-typing" packet, don't add it twice if (im_info && !mOtherTyping) { mOtherTyping = true; + mOtherTypingTimer.reset(); + // Save im_info so that removeTypingIndicator can be properly called because a timeout has occurred + mImInfo = im_info; // Update speaker LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(mSessionID); diff --git a/indra/newview/llfloaterimsession.h b/indra/newview/llfloaterimsession.h index a0e0171b34..2b9d06e744 100755 --- a/indra/newview/llfloaterimsession.h +++ b/indra/newview/llfloaterimsession.h @@ -141,7 +141,7 @@ private: /*virtual*/ void refresh(); /*virtual*/ void onTearOffClicked(); - /*virtual*/ void onClickCloseBtn(); + /*virtual*/ void onClickCloseBtn(bool app_qutting); // Update the window title and input field help text /*virtual*/ void updateSessionName(const std::string& name); @@ -187,6 +187,8 @@ private: LLFrameTimer mTypingTimer; LLFrameTimer mTypingTimeoutTimer; bool mSessionNameUpdatedForTyping; + LLFrameTimer mMeTypingTimer; + LLFrameTimer mOtherTypingTimer; bool mSessionInitialized; LLSD mQueuedMsgsForInit; @@ -196,6 +198,8 @@ private: // connection to voice channel state change signal boost::signals2::connection mVoiceChannelStateChangeConnection; + + const LLIMInfo* mImInfo; }; #endif // LL_FLOATERIMSESSION_H diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp index 0ccfdb9a7b..29511f56ff 100755 --- a/indra/newview/llfloaterimsessiontab.cpp +++ b/indra/newview/llfloaterimsessiontab.cpp @@ -825,6 +825,7 @@ void LLFloaterIMSessionTab::updateCallBtnState(bool callIsActive) void LLFloaterIMSessionTab::onSlide(LLFloaterIMSessionTab* self) { LLFloaterIMContainer* host_floater = dynamic_cast<LLFloaterIMContainer*>(self->getHost()); + bool should_be_expanded = false; if (host_floater) { // Hide the messages pane if a floater is hosted in the Conversations @@ -835,7 +836,7 @@ void LLFloaterIMSessionTab::onSlide(LLFloaterIMSessionTab* self) if (!self->mIsP2PChat) { // The state must toggle the collapsed state of the panel - bool should_be_expanded = self->mParticipantListPanel->isCollapsed(); + should_be_expanded = self->mParticipantListPanel->isCollapsed(); // Update the expand/collapse flag of the participant list panel and save it gSavedSettings.setBOOL("IMShowControlPanel", should_be_expanded); @@ -847,6 +848,10 @@ void LLFloaterIMSessionTab::onSlide(LLFloaterIMSessionTab* self) } self->assignResizeLimits(); + if (should_be_expanded) + { + self->forceReshape(); + } } void LLFloaterIMSessionTab::onCollapseToLine(LLFloaterIMSessionTab* self) diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 8f20d4e082..b16ef6dd79 100755 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -1791,10 +1791,15 @@ void LLPanelLandObjects::onCommitClean(LLUICtrl *caller, void* user_data) LLParcel* parcel = lop->mParcel->getParcel(); if (parcel) { - lop->mOtherTime = atoi(lop->mCleanOtherObjectsTime->getText().c_str()); + S32 return_time = atoi(lop->mCleanOtherObjectsTime->getText().c_str()); + // Only send return time if it has changed + if (return_time != lop->mOtherTime) + { + lop->mOtherTime = return_time; - parcel->setCleanOtherTime(lop->mOtherTime); - send_other_clean_time_message(parcel->getLocalID(), lop->mOtherTime); + parcel->setCleanOtherTime(lop->mOtherTime); + send_other_clean_time_message(parcel->getLocalID(), lop->mOtherTime); + } } } @@ -2374,7 +2379,7 @@ void LLPanelLandAccess::refresh() { BOOL use_access_list = parcel->getParcelFlag(PF_USE_ACCESS_LIST); BOOL use_group = parcel->getParcelFlag(PF_USE_ACCESS_GROUP); - BOOL public_access = !use_access_list && !use_group; + BOOL public_access = !use_access_list; getChild<LLUICtrl>("public_access")->setValue(public_access ); getChild<LLUICtrl>("GroupCheck")->setValue(use_group ); @@ -2541,6 +2546,10 @@ void LLPanelLandAccess::refresh_ui() getChildView("HoursSpin")->setEnabled(FALSE); getChildView("AccessList")->setEnabled(FALSE); getChildView("BannedList")->setEnabled(FALSE); + getChildView("add_allowed")->setEnabled(FALSE); + getChildView("remove_allowed")->setEnabled(FALSE); + getChildView("add_banned")->setEnabled(FALSE); + getChildView("remove_banned")->setEnabled(FALSE); LLParcel *parcel = mParcel->getParcel(); if (parcel) @@ -2579,7 +2588,6 @@ void LLPanelLandAccess::refresh_ui() { getChildView("Only Allow")->setToolTip(std::string()); } - getChildView("GroupCheck")->setEnabled(FALSE); getChildView("PassCheck")->setEnabled(FALSE); getChildView("pass_combo")->setEnabled(FALSE); getChildView("AccessList")->setEnabled(FALSE); @@ -2589,11 +2597,7 @@ void LLPanelLandAccess::refresh_ui() getChildView("limit_payment")->setEnabled(FALSE); getChildView("limit_age_verified")->setEnabled(FALSE); - std::string group_name; - if (gCacheName->getGroupName(parcel->getGroupID(), group_name)) - { - getChildView("GroupCheck")->setEnabled(can_manage_allowed); - } + BOOL group_access = getChild<LLUICtrl>("GroupCheck")->getValue().asBoolean(); BOOL sell_passes = getChild<LLUICtrl>("PassCheck")->getValue().asBoolean(); getChildView("PassCheck")->setEnabled(can_manage_allowed); @@ -2604,6 +2608,11 @@ void LLPanelLandAccess::refresh_ui() getChildView("HoursSpin")->setEnabled(can_manage_allowed); } } + std::string group_name; + if (gCacheName->getGroupName(parcel->getGroupID(), group_name)) + { + getChildView("GroupCheck")->setEnabled(can_manage_allowed); + } getChildView("AccessList")->setEnabled(can_manage_allowed); S32 allowed_list_count = parcel->mAccessList.size(); getChildView("add_allowed")->setEnabled(can_manage_allowed && allowed_list_count < PARCEL_MAX_ACCESS_LIST); @@ -2650,17 +2659,6 @@ void LLPanelLandAccess::onCommitPublicAccess(LLUICtrl *ctrl, void *userdata) return; } - // If we disabled public access, enable group access by default (if applicable) - BOOL public_access = self->getChild<LLUICtrl>("public_access")->getValue().asBoolean(); - if (public_access == FALSE) - { - std::string group_name; - if (gCacheName->getGroupName(parcel->getGroupID(), group_name)) - { - self->getChild<LLUICtrl>("GroupCheck")->setValue(public_access ? FALSE : TRUE); - } - } - onCommitAny(ctrl, userdata); } @@ -2694,7 +2692,6 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata) if (public_access) { use_access_list = FALSE; - use_access_group = FALSE; limit_payment = self->getChild<LLUICtrl>("limit_payment")->getValue().asBoolean(); limit_age_verified = self->getChild<LLUICtrl>("limit_age_verified")->getValue().asBoolean(); } diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index 19cec55837..855836af7a 100755 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -535,9 +535,16 @@ BOOL LLFloaterModelPreview::postBuild() mUploadBtn = getChild<LLButton>("ok_btn"); mCalculateBtn = getChild<LLButton>("calculate_btn"); - mCalculateBtn->setClickedCallback(boost::bind(&LLFloaterModelPreview::onClickCalculateBtn, this)); + if (LLConvexDecomposition::getInstance() != NULL) + { + mCalculateBtn->setClickedCallback(boost::bind(&LLFloaterModelPreview::onClickCalculateBtn, this)); - toggleCalculateButton(true); + toggleCalculateButton(true); + } + else + { + mCalculateBtn->setEnabled(false); + } return TRUE; } diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp index 298454724b..161259d049 100755 --- a/indra/newview/llfloaterpathfindingconsole.cpp +++ b/indra/newview/llfloaterpathfindingconsole.cpp @@ -34,11 +34,11 @@ #include <boost/signals2.hpp> +#include "llagent.h" #include "llbutton.h" #include "llcheckboxctrl.h" #include "llcombobox.h" #include "llcontrol.h" -#include "llenvmanager.h" #include "llfloaterpathfindingcharacters.h" #include "llfloaterpathfindinglinksets.h" #include "llfloaterreg.h" @@ -224,7 +224,7 @@ void LLFloaterPathfindingConsole::onOpen(const LLSD& pKey) if (!mRegionBoundarySlot.connected()) { - mRegionBoundarySlot = LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLFloaterPathfindingConsole::onRegionBoundaryCross, this)); + mRegionBoundarySlot = gAgent.addRegionChangedCallback(boost::bind(&LLFloaterPathfindingConsole::onRegionBoundaryCross, this)); } if (!mTeleportFailedSlot.connected()) diff --git a/indra/newview/llfloaterpathfindingobjects.cpp b/indra/newview/llfloaterpathfindingobjects.cpp index 20c1215bcb..d72ee073e1 100755 --- a/indra/newview/llfloaterpathfindingobjects.cpp +++ b/indra/newview/llfloaterpathfindingobjects.cpp @@ -41,7 +41,6 @@ #include "llavatarnamecache.h" #include "llbutton.h" #include "llcheckboxctrl.h" -#include "llenvmanager.h" #include "llfloater.h" #include "llfontgl.h" #include "llnotifications.h" @@ -85,7 +84,7 @@ void LLFloaterPathfindingObjects::onOpen(const LLSD &pKey) if (!mRegionBoundaryCrossingSlot.connected()) { - mRegionBoundaryCrossingSlot = LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLFloaterPathfindingObjects::onRegionBoundaryCrossed, this)); + mRegionBoundaryCrossingSlot = gAgent.addRegionChangedCallback(boost::bind(&LLFloaterPathfindingObjects::onRegionBoundaryCrossed, this)); } if (!mGodLevelChangeSlot.connected()) diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 87ae36716d..c339ee3beb 100755 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -238,6 +238,7 @@ bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response void handleNameTagOptionChanged(const LLSD& newvalue) { + LLAvatarNameCache::setUseUsernames(gSavedSettings.getBOOL("NameTagShowUsernames")); LLVOAvatar::invalidateNameTags(); } diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 66bf49331b..73c0963a1d 100755 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -91,6 +91,7 @@ #include "lltrans.h" #include "llagentui.h" #include "llmeshrepository.h" +#include "llfloaterregionrestarting.h" const S32 TERRAIN_TEXTURE_COUNT = 4; const S32 CORNER_COUNT = 4; @@ -219,7 +220,7 @@ BOOL LLFloaterRegionInfo::postBuild() &processEstateOwnerRequest); // Request region info when agent region changes. - LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLFloaterRegionInfo::requestRegionInfo, this)); + gAgent.addRegionChangedCallback(boost::bind(&LLFloaterRegionInfo::requestRegionInfo, this)); return TRUE; } diff --git a/indra/newview/llfloaterregionrestarting.cpp b/indra/newview/llfloaterregionrestarting.cpp new file mode 100644 index 0000000000..95d4265bb4 --- /dev/null +++ b/indra/newview/llfloaterregionrestarting.cpp @@ -0,0 +1,176 @@ +/** + * @file llfloaterregionrestarting.cpp + * @brief Shows countdown timer during region restart + * + * $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$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llfloaterregionrestarting.h" + +#include "llfloaterreg.h" +#include "lluictrl.h" +#include "llagent.h" +#include "llagentcamera.h" +#include "llviewerwindow.h" + +static S32 sSeconds; +static U32 sShakeState; + +LLFloaterRegionRestarting::LLFloaterRegionRestarting(const LLSD& key) : + LLFloater(key), + LLEventTimer(1) +{ + mName = (std::string)key["NAME"]; + sSeconds = (LLSD::Integer)key["SECONDS"]; +} + +LLFloaterRegionRestarting::~LLFloaterRegionRestarting() +{ + mRegionChangedConnection.disconnect(); +} + +BOOL LLFloaterRegionRestarting::postBuild() +{ + mRegionChangedConnection = gAgent.addRegionChangedCallback(boost::bind(&LLFloaterRegionRestarting::regionChange, this)); + + LLStringUtil::format_map_t args; + std::string text; + + args["[NAME]"] = mName; + text = getString("RegionName", args); + LLTextBox* textbox = getChild<LLTextBox>("region_name"); + textbox->setValue(text); + + sShakeState = SHAKE_START; + + refresh(); + + return TRUE; +} + +void LLFloaterRegionRestarting::regionChange() +{ + close(); +} + +BOOL LLFloaterRegionRestarting::tick() +{ + refresh(); + + return FALSE; +} + +void LLFloaterRegionRestarting::refresh() +{ + LLStringUtil::format_map_t args; + std::string text; + + args["[SECONDS]"] = llformat("%d", sSeconds); + getChild<LLTextBox>("restart_seconds")->setValue(getString("RestartSeconds", args)); + + sSeconds = sSeconds - 1; + if(sSeconds < 0.0) + { + sSeconds = 0; + } +} + +void LLFloaterRegionRestarting::draw() +{ + LLFloater::draw(); + + const F32 SHAKE_INTERVAL = 0.025; + const F32 SHAKE_TOTAL_DURATION = 1.8; // the length of the default alert tone for this + const F32 SHAKE_INITIAL_MAGNITUDE = 1.5; + const F32 SHAKE_HORIZONTAL_BIAS = 0.25; + F32 time_shaking; + + if(SHAKE_START == sShakeState) + { + mShakeTimer.setTimerExpirySec(SHAKE_INTERVAL); + sShakeState = SHAKE_LEFT; + mShakeIterations = 0; + mShakeMagnitude = SHAKE_INITIAL_MAGNITUDE; + } + + if(SHAKE_DONE != sShakeState && mShakeTimer.hasExpired()) + { + gAgentCamera.unlockView(); + + switch(sShakeState) + { + case SHAKE_LEFT: + gAgentCamera.setPanLeftKey(mShakeMagnitude * SHAKE_HORIZONTAL_BIAS); + sShakeState = SHAKE_UP; + break; + + case SHAKE_UP: + gAgentCamera.setPanUpKey(mShakeMagnitude); + sShakeState = SHAKE_RIGHT; + break; + + case SHAKE_RIGHT: + gAgentCamera.setPanRightKey(mShakeMagnitude * SHAKE_HORIZONTAL_BIAS); + sShakeState = SHAKE_DOWN; + break; + + case SHAKE_DOWN: + gAgentCamera.setPanDownKey(mShakeMagnitude); + mShakeIterations++; + time_shaking = SHAKE_INTERVAL * (mShakeIterations * 4 /* left, up, right, down */); + if(SHAKE_TOTAL_DURATION <= time_shaking) + { + sShakeState = SHAKE_DONE; + mShakeMagnitude = 0.0; + } + else + { + sShakeState = SHAKE_LEFT; + F32 percent_done_shaking = (SHAKE_TOTAL_DURATION - time_shaking) / SHAKE_TOTAL_DURATION; + mShakeMagnitude = SHAKE_INITIAL_MAGNITUDE * (percent_done_shaking * percent_done_shaking); // exponential decay + } + break; + + default: + break; + } + mShakeTimer.setTimerExpirySec(SHAKE_INTERVAL); + } +} + +void LLFloaterRegionRestarting::close() +{ + LLFloaterRegionRestarting* floaterp = LLFloaterReg::findTypedInstance<LLFloaterRegionRestarting>("region_restarting"); + + if (floaterp) + { + floaterp->closeFloater(); + } +} + +void LLFloaterRegionRestarting::updateTime(S32 time) +{ + sSeconds = time; + sShakeState = SHAKE_START; +} diff --git a/indra/newview/llfloaterregionrestarting.h b/indra/newview/llfloaterregionrestarting.h new file mode 100644 index 0000000000..46416db2c8 --- /dev/null +++ b/indra/newview/llfloaterregionrestarting.h @@ -0,0 +1,69 @@ +/** + * @file llfloaterregionrestarting.h + * @brief Shows countdown timer during region restart + * + * $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 LL_LLFLOATERREGIONRESTARTING_H +#define LL_LLFLOATERREGIONRESTARTING_H + +#include "llfloater.h" +#include "lltextbox.h" +#include "lleventtimer.h" + +class LLFloaterRegionRestarting : public LLFloater, public LLEventTimer +{ + friend class LLFloaterReg; + +public: + static void close(); + static void updateTime(S32 time); + +private: + LLFloaterRegionRestarting(const LLSD& key); + virtual ~LLFloaterRegionRestarting(); + virtual BOOL postBuild(); + virtual BOOL tick(); + virtual void refresh(); + virtual void draw(); + virtual void regionChange(); + + std::string mName; + U32 mShakeIterations; + F32 mShakeMagnitude; + LLTimer mShakeTimer; + + boost::signals2::connection mRegionChangedConnection; + + enum + { + SHAKE_START, + SHAKE_LEFT, + SHAKE_UP, + SHAKE_RIGHT, + SHAKE_DOWN, + SHAKE_DONE + }; +}; + +#endif // LL_LLFLOATERREGIONRESTARTING_H diff --git a/indra/newview/llfloatersidepanelcontainer.cpp b/indra/newview/llfloatersidepanelcontainer.cpp index 5f9556a870..c5248719e9 100755 --- a/indra/newview/llfloatersidepanelcontainer.cpp +++ b/indra/newview/llfloatersidepanelcontainer.cpp @@ -57,7 +57,7 @@ void LLFloaterSidePanelContainer::onOpen(const LLSD& key) getChild<LLPanel>(sMainPanelName)->onOpen(key); } -void LLFloaterSidePanelContainer::onClickCloseBtn() +void LLFloaterSidePanelContainer::onClickCloseBtn(bool) { LLPanelOutfitEdit* panel_outfit_edit = dynamic_cast<LLPanelOutfitEdit*>(LLFloaterSidePanelContainer::getPanel("appearance", "panel_outfit_edit")); diff --git a/indra/newview/llfloatersidepanelcontainer.h b/indra/newview/llfloatersidepanelcontainer.h index 491723471f..65ec8f604e 100755 --- a/indra/newview/llfloatersidepanelcontainer.h +++ b/indra/newview/llfloatersidepanelcontainer.h @@ -51,7 +51,7 @@ public: /*virtual*/ void onOpen(const LLSD& key); - /*virtual*/ void onClickCloseBtn(); + /*virtual*/ void onClickCloseBtn(bool app_quitting = false); LLPanel* openChildPanel(const std::string& panel_name, const LLSD& params); diff --git a/indra/newview/llfloatertoybox.cpp b/indra/newview/llfloatertoybox.cpp index 324afe661f..a025a859e7 100755 --- a/indra/newview/llfloatertoybox.cpp +++ b/indra/newview/llfloatertoybox.cpp @@ -107,7 +107,7 @@ void LLFloaterToybox::draw() { const LLCommandId& id = *it; - const bool command_not_present = (gToolBarView->hasCommand(id) == LLToolBarView::TOOLBAR_NONE); + const bool command_not_present = (gToolBarView->hasCommand(id) == LLToolBarEnums::TOOLBAR_NONE); mToolBar->enableCommand(id, command_not_present); } @@ -175,9 +175,9 @@ void LLFloaterToybox::onToolBarButtonEnter(LLView* button) switch(command_loc) { - case LLToolBarView::TOOLBAR_BOTTOM: suffix = LLTrans::getString("Toolbar_Bottom_Tooltip"); break; - case LLToolBarView::TOOLBAR_LEFT: suffix = LLTrans::getString("Toolbar_Left_Tooltip"); break; - case LLToolBarView::TOOLBAR_RIGHT: suffix = LLTrans::getString("Toolbar_Right_Tooltip"); break; + case LLToolBarEnums::TOOLBAR_BOTTOM: suffix = LLTrans::getString("Toolbar_Bottom_Tooltip"); break; + case LLToolBarEnums::TOOLBAR_LEFT: suffix = LLTrans::getString("Toolbar_Left_Tooltip"); break; + case LLToolBarEnums::TOOLBAR_RIGHT: suffix = LLTrans::getString("Toolbar_Right_Tooltip"); break; default: break; diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index 9d703d2752..76b73fcf29 100755 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -362,6 +362,8 @@ void LLFloaterWebContent::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent // we populate the status bar with URLs as they change so clear it now we're done const std::string end_str = ""; mStatusBarText->setText( end_str ); + mAddressCombo->setLeftTextPadding(22); + mAddressCombo->setLeftTextPadding(2); } else if(event == MEDIA_EVENT_CLOSE_REQUEST) { diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp index 137b5446cf..cb637c7162 100755 --- a/indra/newview/llfloaterworldmap.cpp +++ b/indra/newview/llfloaterworldmap.cpp @@ -627,8 +627,8 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global) if (!sim_info) { // We haven't found a region for that point yet, leave the tracking to the world map - LLWorldMap::getInstance()->setTracking(pos_global); LLTracker::stopTracking(NULL); + LLWorldMap::getInstance()->setTracking(pos_global); S32 world_x = S32(pos_global.mdV[0] / 256); S32 world_y = S32(pos_global.mdV[1] / 256); LLWorldMapMessage::getInstance()->sendMapBlockRequest(world_x, world_y, world_x, world_y, true); @@ -643,9 +643,9 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global) { // Down region. Show the blue circle of death! // i.e. let the world map that this and tell it it's invalid + LLTracker::stopTracking(NULL); LLWorldMap::getInstance()->setTracking(pos_global); LLWorldMap::getInstance()->setTrackingInvalid(); - LLTracker::stopTracking(NULL); setDefaultBtn(""); // clicked on a down region - turn off coord display @@ -665,8 +665,8 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global) std::string tooltip(""); mTrackedStatus = LLTracker::TRACKING_LOCATION; - LLTracker::trackLocation(pos_global, full_name, tooltip); LLWorldMap::getInstance()->cancelTracking(); // The floater is taking over the tracking + LLTracker::trackLocation(pos_global, full_name, tooltip); LLVector3d coord_pos = LLTracker::getTrackedPositionGlobal(); updateTeleportCoordsDisplay( coord_pos ); diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp index 60fa53f491..c4c1827266 100755 --- a/indra/newview/llglsandbox.cpp +++ b/indra/newview/llglsandbox.cpp @@ -62,6 +62,7 @@ #include "llresmgr.h" #include "pipeline.h" #include "llspatialpartition.h" +#include "llviewershadermgr.h" // Height of the yellow selection highlight posts for land const F32 PARCEL_POST_HEIGHT = 0.666f; @@ -767,7 +768,6 @@ void draw_line_cube(F32 width, const LLVector3& center) gGL.vertex3f(center.mV[VX] + width ,center.mV[VY] - width,center.mV[VZ] - width); } - void LLViewerObjectList::renderObjectBeacons() { if (mDebugBeacons.empty()) @@ -878,3 +878,134 @@ void LLViewerObjectList::renderObjectBeacons() } +void gpu_benchmark() +{ + if (!LLGLSLShader::sNoFixedFunction) + { //don't bother benchmarking the fixed function + return; + } + + //measure memory bandwidth by: + // - allocating a batch of textures and render targets + // - rendering those textures to those render targets + // - recording time taken + // - taking the median time for a given number of samples + + //resolution of textures/render targets + const U32 res = 1024; + + //number of textures + const U32 count = 32; + + //number of samples to take + const S32 samples = 64; + + LLGLSLShader::initProfile(); + + LLRenderTarget dest[count]; + U32 source[count]; + LLImageGL::generateTextures(count, source); + std::vector<F32> results; + + //build a random texture + U8 pixels[res*res*4]; + + for (U32 i = 0; i < res*res*4; ++i) + { + pixels[i] = (U8) ll_rand(255); + } + + + gGL.setColorMask(true, true); + LLGLDepthTest depth(GL_FALSE); + + for (U32 i = 0; i < count; ++i) + { //allocate render targets and textures + dest[i].allocate(res,res,GL_RGBA,false, false, LLTexUnit::TT_TEXTURE, true); + dest[i].bindTarget(); + dest[i].clear(); + dest[i].flush(); + + gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, source[i]); + LLImageGL::setManualImage(GL_TEXTURE_2D, 0, GL_RGBA, res,res,GL_RGBA, GL_UNSIGNED_BYTE, pixels); + } + + //make a dummy triangle to draw with + LLPointer<LLVertexBuffer> buff = new LLVertexBuffer(LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, GL_STATIC_DRAW_ARB); + buff->allocateBuffer(3, 0, true); + + LLStrider<LLVector3> v; + LLStrider<LLVector2> tc; + + buff->getVertexStrider(v); + + v[0].set(-1,1,0); + v[1].set(-1,-3,0); + v[2].set(3,1,0); + buff->flush(); + + gBenchmarkProgram.bind(); + buff->setBuffer(LLVertexBuffer::MAP_VERTEX); + + //wait for any previoius GL commands to finish + glFinish(); + + for (S32 c = -1; c < samples; ++c) + { + LLTimer timer; + timer.start(); + + for (U32 i = 0; i < count; ++i) + { + dest[i].bindTarget(); + gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, source[i]); + buff->drawArrays(LLRender::TRIANGLES, 0, 3); + dest[i].flush(); + } + + //wait for current batch of copies to finish + glFinish(); + + F32 time = timer.getElapsedTimeF32(); + + if (c >= 0) // <-- ignore the first sample as it tends to be artificially slow + { + //store result in gigabytes per second + F32 gb = (F32) ((F64) (res*res*8*count))/(1000000000); + + F32 gbps = gb/time; + + results.push_back(gbps); + } + } + + gBenchmarkProgram.unbind(); + + LLGLSLShader::finishProfile(); + + LLImageGL::deleteTextures(count, source); + + + std::sort(results.begin(), results.end()); + + F32 gbps = results[results.size()/2]; + + llinfos << "Memory bandwidth is " << llformat("%.3f", gbps) << "GB/sec according to CPU timers" << llendl; + + F32 ms = gBenchmarkProgram.mTimeElapsed/1000000.f; + F32 seconds = ms/1000.f; + + F64 samples_drawn = res*res*count*samples; + F32 samples_sec = (samples_drawn/1000000000.0)/seconds; + gbps = samples_sec*8; + + if (gGLManager.mHasTimerQuery) + { + llinfos << "Memory bandwidth is " << llformat("%.3f", gbps) << "GB/sec according to ARB_timer_query" << llendl; + } + else + { + llinfos << "ARB_timer_query unavailable." << llendl; + } +} + diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 9ffbd1a675..70ffdc14ff 100755 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1959,11 +1959,11 @@ LLDockControl::DocAt LLCallDialog::getDockControlPos(const std::string& toolbarB switch (toolbar_loc) { - case LLToolBarView::TOOLBAR_LEFT: + case LLToolBarEnums::TOOLBAR_LEFT: doc_at = LLDockControl::RIGHT; break; - case LLToolBarView::TOOLBAR_RIGHT: + case LLToolBarEnums::TOOLBAR_RIGHT: doc_at = LLDockControl::LEFT; break; } diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 80ef506272..44943d8722 100755 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -74,6 +74,7 @@ #include "llvoavatarself.h" #include "llwearablelist.h" #include "lllandmarkactions.h" +#include "llpanellandmarks.h" void copy_slurl_to_clipboard_callback_inv(const std::string& slurl); @@ -1449,6 +1450,38 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action) } } } + else if ("show_on_map" == action) + { + doActionOnCurSelectedLandmark(boost::bind(&LLItemBridge::doShowOnMap, this, _1)); + } +} + +void LLItemBridge::doActionOnCurSelectedLandmark(LLLandmarkList::loaded_callback_t cb) +{ + LLViewerInventoryItem* cur_item = getItem(); + if(cur_item && cur_item->getInventoryType() == LLInventoryType::IT_LANDMARK) + { + LLLandmark* landmark = LLLandmarkActions::getLandmark(cur_item->getUUID(), cb); + if (landmark) + { + cb(landmark); + } + } +} + +void LLItemBridge::doShowOnMap(LLLandmark* landmark) +{ + LLVector3d landmark_global_pos; + // landmark has already been tested for NULL by calling routine + if (landmark->getGlobalPos(landmark_global_pos)) + { + LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance(); + if (!landmark_global_pos.isExactlyZero() && worldmap_instance) + { + worldmap_instance->trackLocation(landmark_global_pos); + LLFloaterReg::showInstance("world_map", "center"); + } + } } void copy_slurl_to_clipboard_callback_inv(const std::string& slurl) @@ -4580,6 +4613,7 @@ void LLLandmarkBridge::buildContextMenu(LLMenuGL& menu, U32 flags) items.push_back(std::string("Landmark Separator")); items.push_back(std::string("url_copy")); items.push_back(std::string("About Landmark")); + items.push_back(std::string("show_on_map")); } // Disable "About Landmark" menu item for diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index 517153e171..bc875e8f37 100755 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -36,6 +36,7 @@ #include "llviewercontrol.h" #include "llviewerwearable.h" #include "lltooldraganddrop.h" +#include "lllandmarklist.h" class LLInventoryFilter; class LLInventoryPanel; @@ -239,7 +240,10 @@ protected: BOOL confirmRemoveItem(const LLSD& notification, const LLSD& response); virtual BOOL isItemPermissive() const; virtual void buildDisplayName() const; + void doActionOnCurSelectedLandmark(LLLandmarkList::loaded_callback_t cb); +private: + void doShowOnMap(LLLandmark* landmark); }; class LLFolderBridge : public LLInvFVBridge diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index 3c6974cf6d..15463e0d33 100755 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -139,7 +139,14 @@ bool LLInventoryFilter::checkFolder(const LLUUID& folder_id) const { return passed_clipboard; } - + + // show folder links + LLViewerInventoryItem* item = gInventory.getItem(folder_id); + if (item && item->getActualType() == LLAssetType::AT_LINK_FOLDER) + { + return passed_clipboard; + } + if (mFilterOps.mFilterTypes & FILTERTYPE_CATEGORY) { // Can only filter categories for items in your inventory diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index 5022dba934..dbdff11f11 100755 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -407,14 +407,14 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p) // - Make the "Add landmark" button updated when either current parcel gets changed // or a landmark gets created or removed from the inventory. // - Update the location string on parcel change. - mParcelMgrConnection = LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback( + mParcelMgrConnection = gAgent.addParcelChangedCallback( boost::bind(&LLLocationInputCtrl::onAgentParcelChange, this)); // LLLocationHistory instance is being created before the location input control, so we have to update initial state of button manually. mButton->setEnabled(LLLocationHistory::instance().getItemCount() > 0); mLocationHistoryConnection = LLLocationHistory::getInstance()->setChangedCallback( boost::bind(&LLLocationInputCtrl::onLocationHistoryChanged, this,_1)); - mRegionCrossingSlot = LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLLocationInputCtrl::onRegionBoundaryCrossed, this)); + mRegionCrossingSlot = gAgent.addRegionChangedCallback(boost::bind(&LLLocationInputCtrl::onRegionBoundaryCrossed, this)); createNavMeshStatusListenerForCurrentRegion(); mRemoveLandmarkObserver = new LLRemoveLandmarkObserver(this); diff --git a/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp b/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp index a567d1217a..8879cfd7fb 100755 --- a/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp +++ b/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp @@ -79,7 +79,7 @@ void LLMenuOptionPathfindingRebakeNavmesh::initialize() if ( !mRegionCrossingSlot.connected() ) { - mRegionCrossingSlot = LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLMenuOptionPathfindingRebakeNavmesh::handleRegionBoundaryCrossed, this)); + mRegionCrossingSlot = gAgent.addRegionChangedCallback(boost::bind(&LLMenuOptionPathfindingRebakeNavmesh::handleRegionBoundaryCrossed, this)); } if (!mAgentStateSlot.connected()) diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp index eb6591eb39..8bddf49fb5 100755 --- a/indra/newview/llmoveview.cpp +++ b/indra/newview/llmoveview.cpp @@ -140,7 +140,7 @@ BOOL LLFloaterMove::postBuild() initMovementMode(); - LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(LLFloaterMove::sUpdateFlyingStatus); + gAgent.addParcelChangedCallback(LLFloaterMove::sUpdateFlyingStatus); return TRUE; } @@ -698,14 +698,14 @@ void LLPanelStandStopFlying::updatePosition() S32 y_pos = 0; S32 bottom_tb_center = 0; - if (LLToolBar* toolbar_bottom = gToolBarView->getToolbar(LLToolBarView::TOOLBAR_BOTTOM)) + if (LLToolBar* toolbar_bottom = gToolBarView->getToolbar(LLToolBarEnums::TOOLBAR_BOTTOM)) { y_pos = toolbar_bottom->getRect().getHeight(); bottom_tb_center = toolbar_bottom->getRect().getCenterX(); } S32 left_tb_width = 0; - if (LLToolBar* toolbar_left = gToolBarView->getToolbar(LLToolBarView::TOOLBAR_LEFT)) + if (LLToolBar* toolbar_left = gToolBarView->getToolbar(LLToolBarEnums::TOOLBAR_LEFT)) { left_tb_width = toolbar_left->getRect().getWidth(); } diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp index 54522bb7f6..0720d443f8 100755 --- a/indra/newview/llmutelist.cpp +++ b/indra/newview/llmutelist.cpp @@ -251,6 +251,7 @@ BOOL LLMuteList::add(const LLMute& mute, U32 flags) llinfos << "Muting by name " << mute.mName << llendl; updateAdd(mute); notifyObservers(); + notifyObserversDetailed(mute); return TRUE; } else @@ -299,6 +300,7 @@ BOOL LLMuteList::add(const LLMute& mute, U32 flags) llinfos << "Muting " << localmute.mName << " id " << localmute.mID << " flags " << localmute.mFlags << llendl; updateAdd(localmute); notifyObservers(); + notifyObserversDetailed(localmute); if(!(localmute.mFlags & LLMute::flagParticles)) { //Kill all particle systems owned by muted task @@ -396,6 +398,7 @@ BOOL LLMuteList::remove(const LLMute& mute, U32 flags) } // Must be after erase. + notifyObserversDetailed(localmute); setLoaded(); // why is this here? -MG } else @@ -409,6 +412,7 @@ BOOL LLMuteList::remove(const LLMute& mute, U32 flags) updateRemove(mute); mLegacyMutes.erase(legacy_it); // Must be after erase. + notifyObserversDetailed(mute); setLoaded(); // why is this here? -MG } } @@ -762,3 +766,16 @@ void LLMuteList::notifyObservers() it = mObservers.upper_bound(observer); } } + +void LLMuteList::notifyObserversDetailed(const LLMute& mute) +{ + for (observer_set_t::iterator it = mObservers.begin(); + it != mObservers.end(); + ) + { + LLMuteListObserver* observer = *it; + observer->onChangeDetailed(mute); + // In case onChange() deleted an entry. + it = mObservers.upper_bound(observer); + } +} diff --git a/indra/newview/llmutelist.h b/indra/newview/llmutelist.h index 7a70370fe3..3e998b4f0e 100755 --- a/indra/newview/llmutelist.h +++ b/indra/newview/llmutelist.h @@ -123,6 +123,7 @@ private: void setLoaded(); void notifyObservers(); + void notifyObserversDetailed(const LLMute &mute); void updateAdd(const LLMute& mute); void updateRemove(const LLMute& mute); @@ -173,6 +174,7 @@ class LLMuteListObserver public: virtual ~LLMuteListObserver() { } virtual void onChange() = 0; + virtual void onChangeDetailed(const LLMute& ) { } }; diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp index 0cd93b330a..68835ec5b8 100755 --- a/indra/newview/llpanelgroupgeneral.cpp +++ b/indra/newview/llpanelgroupgeneral.cpp @@ -63,14 +63,12 @@ const S32 DECLINE_TO_STATE = 0; LLPanelGroupGeneral::LLPanelGroupGeneral() : LLPanelGroupTab(), - mPendingMemberUpdate(FALSE), mChanged(FALSE), mFirstUse(TRUE), mGroupNameEditor(NULL), mFounderName(NULL), mInsignia(NULL), mEditCharter(NULL), - mListVisibleMembers(NULL), mCtrlShowInGroupList(NULL), mComboMature(NULL), mCtrlOpenEnrollment(NULL), @@ -79,18 +77,13 @@ LLPanelGroupGeneral::LLPanelGroupGeneral() mCtrlReceiveNotices(NULL), mCtrlListGroup(NULL), mActiveTitleLabel(NULL), - mComboActiveTitle(NULL), - mAvatarNameCacheConnection() + mComboActiveTitle(NULL) { } LLPanelGroupGeneral::~LLPanelGroupGeneral() { - if (mAvatarNameCacheConnection.connected()) - { - mAvatarNameCacheConnection.disconnect(); - } } BOOL LLPanelGroupGeneral::postBuild() @@ -105,17 +98,6 @@ BOOL LLPanelGroupGeneral::postBuild() mEditCharter->setFocusChangedCallback(boost::bind(onFocusEdit, _1, this)); } - - - mListVisibleMembers = getChild<LLNameListCtrl>("visible_members", recurse); - if (mListVisibleMembers) - { - mListVisibleMembers->setDoubleClickCallback(openProfile, this); - mListVisibleMembers->setContextMenu(LLScrollListCtrl::MENU_AVATAR); - - mListVisibleMembers->setSortCallback(boost::bind(&LLPanelGroupGeneral::sortMembersList,this,_1,_2,_3)); - } - // Options mCtrlShowInGroupList = getChild<LLCheckBoxCtrl>("show_in_group_list", recurse); if (mCtrlShowInGroupList) @@ -290,21 +272,6 @@ void LLPanelGroupGeneral::onClickInfo(void *userdata) } -// static -void LLPanelGroupGeneral::openProfile(void* data) -{ - LLPanelGroupGeneral* self = (LLPanelGroupGeneral*)data; - - if (self && self->mListVisibleMembers) - { - LLScrollListItem* selected = self->mListVisibleMembers->getFirstSelected(); - if (selected) - { - LLAvatarActions::showProfile(selected->getUUID()); - } - } -} - bool LLPanelGroupGeneral::needsApply(std::string& mesg) { updateChanged(); @@ -336,11 +303,6 @@ void LLPanelGroupGeneral::activate() void LLPanelGroupGeneral::draw() { LLPanelGroupTab::draw(); - - if (mPendingMemberUpdate) - { - updateMembers(); - } } bool LLPanelGroupGeneral::apply(std::string& mesg) @@ -522,10 +484,6 @@ bool LLPanelGroupGeneral::createGroupCallback(const LLSD& notification, const LL return false; } -static F32 sSDTime = 0.0f; -static F32 sElementTime = 0.0f; -static F32 sAllTime = 0.0f; - // virtual void LLPanelGroupGeneral::update(LLGroupChange gc) { @@ -666,132 +624,10 @@ void LLPanelGroupGeneral::update(LLGroupChange gc) { mEditCharter->setText(gdatap->mCharter); } - - if (mListVisibleMembers) - { - mListVisibleMembers->deleteAllItems(); - - if (gdatap->isMemberDataComplete()) - { - mMemberProgress = gdatap->mMembers.begin(); - mPendingMemberUpdate = TRUE; - - sSDTime = 0.0f; - sElementTime = 0.0f; - sAllTime = 0.0f; - } - else - { - std::stringstream pending; - pending << "Retrieving member list (" << gdatap->mMembers.size() << "\\" << gdatap->mMemberCount << ")"; - - LLSD row; - row["columns"][0]["value"] = pending.str(); - row["columns"][0]["column"] = "name"; - - mListVisibleMembers->setEnabled(FALSE); - mListVisibleMembers->addElement(row); - } - } resetDirty(); } -void LLPanelGroupGeneral::updateMembers() -{ - mPendingMemberUpdate = FALSE; - - LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID); - - if (!mListVisibleMembers - || !gdatap - || !gdatap->isMemberDataComplete() - || gdatap->mMembers.empty()) - { - return; - } - - LLTimer update_time; - update_time.setTimerExpirySec(UPDATE_MEMBERS_SECONDS_PER_FRAME); - - LLAvatarName av_name; - - for( ; mMemberProgress != gdatap->mMembers.end() && !update_time.hasExpired(); - ++mMemberProgress) - { - LLGroupMemberData* member = mMemberProgress->second; - if (!member) - { - continue; - } - - if (LLAvatarNameCache::get(mMemberProgress->first, &av_name)) - { - addMember(mMemberProgress->second); - } - else - { - // If name is not cached, onNameCache() should be called when it is cached and add this member to list. - // *TODO : Use a callback per member, not for the panel group. - if (mAvatarNameCacheConnection.connected()) - { - mAvatarNameCacheConnection.disconnect(); - } - mAvatarNameCacheConnection = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupGeneral::onNameCache, this, gdatap->getMemberVersion(), member, _2)); - } - } - - if (mMemberProgress == gdatap->mMembers.end()) - { - lldebugs << " member list completed." << llendl; - mListVisibleMembers->setEnabled(TRUE); - } - else - { - mPendingMemberUpdate = TRUE; - mListVisibleMembers->setEnabled(FALSE); - } -} - -void LLPanelGroupGeneral::addMember(LLGroupMemberData* member) -{ - LLNameListCtrl::NameItem item_params; - item_params.value = member->getID(); - - LLScrollListCell::Params column; - item_params.columns.add().column("name").font.name("SANSSERIF_SMALL"); - - item_params.columns.add().column("title").value(member->getTitle()).font.name("SANSSERIF_SMALL"); - - item_params.columns.add().column("status").value(member->getOnlineStatus()).font.name("SANSSERIF_SMALL"); - - LLScrollListItem* member_row = mListVisibleMembers->addNameItemRow(item_params); - - if ( member->isOwner() ) - { - LLScrollListText* name_textp = dynamic_cast<LLScrollListText*>(member_row->getColumn(0)); - if (name_textp) - name_textp->setFontStyle(LLFontGL::BOLD); - } -} - -void LLPanelGroupGeneral::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name) -{ - mAvatarNameCacheConnection.disconnect(); - - LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID); - - if (!gdatap - || !gdatap->isMemberDataComplete() - || gdatap->getMemberVersion() != update_id) - { - // Stale data - return; - } - - addMember(member); -} - void LLPanelGroupGeneral::updateChanged() { // List all the controls we want to check for changes... @@ -867,17 +703,6 @@ void LLPanelGroupGeneral::reset() mEditCharter->setText(empty_str); mGroupNameEditor->setText(empty_str); } - - { - LLSD row; - row["columns"][0]["value"] = "no members yet"; - row["columns"][0]["column"] = "name"; - - mListVisibleMembers->deleteAllItems(); - mListVisibleMembers->setEnabled(FALSE); - mListVisibleMembers->addElement(row); - } - { mComboMature->setEnabled(true); @@ -964,18 +789,3 @@ void LLPanelGroupGeneral::setGroupID(const LLUUID& id) activate(); } -S32 LLPanelGroupGeneral::sortMembersList(S32 col_idx,const LLScrollListItem* i1,const LLScrollListItem* i2) -{ - const LLScrollListCell *cell1 = i1->getColumn(col_idx); - const LLScrollListCell *cell2 = i2->getColumn(col_idx); - - if(col_idx == 2) - { - if(LLStringUtil::compareDict(cell1->getValue().asString(),"Online") == 0 ) - return 1; - if(LLStringUtil::compareDict(cell2->getValue().asString(),"Online") == 0 ) - return -1; - } - - return LLStringUtil::compareDict(cell1->getValue().asString(), cell2->getValue().asString()); -} diff --git a/indra/newview/llpanelgroupgeneral.h b/indra/newview/llpanelgroupgeneral.h index b7f4a01139..11972bafa9 100755 --- a/indra/newview/llpanelgroupgeneral.h +++ b/indra/newview/llpanelgroupgeneral.h @@ -62,8 +62,6 @@ public: virtual void setGroupID(const LLUUID& id); virtual void setupCtrls (LLPanel* parent); - - void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name); private: void reset(); @@ -75,18 +73,12 @@ private: static void onCommitEnrollment(LLUICtrl* ctrl, void* data); static void onClickInfo(void* userdata); static void onReceiveNotices(LLUICtrl* ctrl, void* data); - static void openProfile(void* data); - - S32 sortMembersList(S32,const LLScrollListItem*,const LLScrollListItem*); - void addMember(LLGroupMemberData* member); static bool joinDlgCB(const LLSD& notification, const LLSD& response); - void updateMembers(); void updateChanged(); bool confirmMatureApply(const LLSD& notification, const LLSD& response); - BOOL mPendingMemberUpdate; BOOL mChanged; BOOL mFirstUse; std::string mIncompleteMemberDataStr; @@ -97,8 +89,6 @@ private: LLTextureCtrl *mInsignia; LLTextEditor *mEditCharter; - LLNameListCtrl *mListVisibleMembers; - // Options (include any updates in updateChanged) LLCheckBoxCtrl *mCtrlShowInGroupList; LLCheckBoxCtrl *mCtrlOpenEnrollment; @@ -109,9 +99,6 @@ private: LLTextBox *mActiveTitleLabel; LLComboBox *mComboActiveTitle; LLComboBox *mComboMature; - - LLGroupMgrGroupData::member_list_t::iterator mMemberProgress; - boost::signals2::connection mAvatarNameCacheConnection; }; #endif diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp index fdcd1f5ebb..b89e7b8b73 100755 --- a/indra/newview/llpanelgrouproles.cpp +++ b/indra/newview/llpanelgrouproles.cpp @@ -1636,6 +1636,9 @@ void LLPanelGroupMembersSubTab::addMemberToList(LLGroupMemberData* data) item_params.columns.add().column("online").value(data->getOnlineStatus()) .font.name("SANSSERIF_SMALL").style("NORMAL"); + + item_params.columns.add().column("title").value(data->getTitle()).font.name("SANSSERIF_SMALL").style("NORMAL");; + mMembersList->addNameItemRow(item_params); mHasMatch = TRUE; @@ -2658,7 +2661,7 @@ void LLPanelGroupRoles::setGroupID(const LLUUID& id) button->setEnabled(gAgent.hasPowerInGroup(mGroupID, GP_MEMBER_INVITE)); if(mSubTabContainer) - mSubTabContainer->selectTab(0); + mSubTabContainer->selectTab(1); activate(); } diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 53deded2f2..bd173fadc7 100755 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -542,6 +542,13 @@ void LLPanelMainInventory::changed(U32) updateItemcountText(); } +void LLPanelMainInventory::setFocusFilterEditor() +{ + if(mFilterEditor) + { + mFilterEditor->setFocus(true); + } +} // virtual void LLPanelMainInventory::draw() @@ -567,13 +574,16 @@ void LLPanelMainInventory::draw() void LLPanelMainInventory::updateItemcountText() { - // *TODO: Calling setlocale() on each frame may be inefficient. - //LLLocale locale(LLStringUtil::getLocale()); - std::string item_count_string; - LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount()); + if(mItemCount != gInventory.getItemCount()) + { + mItemCount = gInventory.getItemCount(); + mItemCountString = ""; + LLLocale locale(LLLocale::USER_LOCALE); + LLResMgr::getInstance()->getIntegerString(mItemCountString, mItemCount); + } LLStringUtil::format_map_t string_args; - string_args["[ITEM_COUNT]"] = item_count_string; + string_args["[ITEM_COUNT]"] = mItemCountString; string_args["[FILTER]"] = getFilterText(); std::string text = ""; diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h index 394b004e20..21f0ca0cae 100755 --- a/indra/newview/llpanelmaininventory.h +++ b/indra/newview/llpanelmaininventory.h @@ -82,6 +82,9 @@ public: void setSelectCallback(const LLFolderView::signal_t::slot_type& cb); void onFilterEdit(const std::string& search_string ); + + void setFocusFilterEditor(); + protected: // // Misc functions @@ -128,6 +131,8 @@ private: LLSaveFolderState* mSavedFolderState; std::string mFilterText; std::string mFilterSubString; + S32 mItemCount; + std::string mItemCountString; ////////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp index 6c2a01fc82..8bb3ace2d9 100755 --- a/indra/newview/llpanelplaces.cpp +++ b/indra/newview/llpanelplaces.cpp @@ -251,7 +251,7 @@ LLPanelPlaces::LLPanelPlaces() gInventory.addObserver(mInventoryObserver); - mAgentParcelChangedConnection = LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback( + mAgentParcelChangedConnection = gAgent.addParcelChangedCallback( boost::bind(&LLPanelPlaces::updateVerbs, this)); //buildFromFile( "panel_places.xml"); // Called from LLRegisterPanelClass::defaultPanelClassBuilder() diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp index 0756faf5c0..9c380f63bd 100755 --- a/indra/newview/llpanelteleporthistory.cpp +++ b/indra/newview/llpanelteleporthistory.cpp @@ -359,6 +359,11 @@ void LLTeleportHistoryPanel::ContextMenu::onInfo() void LLTeleportHistoryPanel::ContextMenu::gotSLURLCallback(const std::string& slurl) { LLClipboard::instance().copyToClipboard(utf8str_to_wstring(slurl),0,slurl.size()); + + LLSD args; + args["SLURL"] = slurl; + + LLNotificationsUtil::add("CopySLURL", args); } void LLTeleportHistoryPanel::ContextMenu::onCopyToClipboard() diff --git a/indra/newview/llpaneltopinfobar.cpp b/indra/newview/llpaneltopinfobar.cpp index 9dd665198f..0d09f0bbfc 100755 --- a/indra/newview/llpaneltopinfobar.cpp +++ b/indra/newview/llpaneltopinfobar.cpp @@ -166,7 +166,7 @@ BOOL LLPanelTopInfoBar::postBuild() mShowCoordsCtrlConnection = ctrl->getSignal()->connect(boost::bind(&LLPanelTopInfoBar::onNavBarShowParcelPropertiesCtrlChanged, this)); } - mParcelMgrConnection = LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback( + mParcelMgrConnection = gAgent.addParcelChangedCallback( boost::bind(&LLPanelTopInfoBar::onAgentParcelChange, this)); setVisibleCallback(boost::bind(&LLPanelTopInfoBar::onVisibilityChange, this, _2)); diff --git a/indra/newview/llpersistentnotificationstorage.cpp b/indra/newview/llpersistentnotificationstorage.cpp index 076c3e0235..4f7d071d66 100755 --- a/indra/newview/llpersistentnotificationstorage.cpp +++ b/indra/newview/llpersistentnotificationstorage.cpp @@ -77,6 +77,14 @@ void LLPersistentNotificationStorage::saveNotifications() } data.append(notification->asLLSD(true)); + if (data.size() >= gSavedSettings.getS32("MaxPersistentNotifications")) + { + llwarns << "Too many persistent notifications." + << " Saved " << gSavedSettings.getS32("MaxPersistentNotifications") << " of " << history_channel->size() + << " persistent notifications." << llendl; + break; + } + } writeNotifications(output); @@ -97,7 +105,6 @@ void LLPersistentNotificationStorage::loadNotifications() } mLoaded = true; - LLSD input; if (!readNotifications(input) ||input.isUndefined()) { @@ -115,9 +122,9 @@ void LLPersistentNotificationStorage::loadNotifications() findChannelByID(LLUUID(gSavedSettings.getString("NotificationChannelUUID")))); LLNotifications& instance = LLNotifications::instance(); - - for (LLSD::array_const_iterator notification_it = data.beginArray(); - notification_it != data.endArray(); + S32 processed_notifications = 0; + for (LLSD::reverse_array_iterator notification_it = data.rbeginArray(); + notification_it != data.rendArray(); ++notification_it) { LLSD notification_params = *notification_it; @@ -136,8 +143,16 @@ void LLPersistentNotificationStorage::loadNotifications() // hide saved toasts so they don't confuse the user notification_channel->hideToast(notification->getID()); } + ++processed_notifications; + if (processed_notifications >= gSavedSettings.getS32("MaxPersistentNotifications")) + { + llwarns << "Too many persistent notifications." + << " Processed " << gSavedSettings.getS32("MaxPersistentNotifications") << " of " << data.size() << " persistent notifications." << llendl; + break; } - + } + LLNotifications::instance().getChannel("Persistent")-> + connectChanged(boost::bind(&LLPersistentNotificationStorage::onPersistentChannelChanged, this, _1)); LL_INFOS("LLPersistentNotificationStorage") << "finished loading notifications" << LL_ENDL; } diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index 91a98792eb..1ed48a978f 100755 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -36,6 +36,7 @@ #include "llfilepicker.h" #include "llfloaterreg.h" #include "llimagetga.h" +#include "llimagepng.h" #include "llinventory.h" #include "llnotificationsutil.h" #include "llresmgr.h" @@ -261,7 +262,7 @@ void LLPreviewTexture::saveAs() LLFilePicker& file_picker = LLFilePicker::instance(); const LLInventoryItem* item = getItem() ; - if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TGA, item ? LLDir::getScrubbedFileName(item->getName()) : LLStringUtil::null) ) + if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TGAPNG, item ? LLDir::getScrubbedFileName(item->getName()) : LLStringUtil::null) ) { // User canceled or we failed to acquire save file. return; @@ -358,14 +359,27 @@ void LLPreviewTexture::onFileLoadedForSave(BOOL success, if( self && final && success ) { - LLPointer<LLImageTGA> image_tga = new LLImageTGA; - if( !image_tga->encode( src ) ) + const U32 ext_length = 3; + std::string extension = self->mSaveFileName.substr( self->mSaveFileName.length() - ext_length); + + // We only support saving in PNG or TGA format + LLPointer<LLImageFormatted> image; + if(extension == "png") + { + image = new LLImagePNG; + } + else if(extension == "tga") + { + image = new LLImageTGA; + } + + if( image && !image->encode( src, 0 ) ) { LLSD args; args["FILE"] = self->mSaveFileName; LLNotificationsUtil::add("CannotEncodeFile", args); } - else if( !image_tga->save( self->mSaveFileName ) ) + else if( image && !image->save( self->mSaveFileName ) ) { LLSD args; args["FILE"] = self->mSaveFileName; diff --git a/indra/newview/llsceneview.cpp b/indra/newview/llsceneview.cpp index 09e799e4f7..cbd8bee9d5 100755 --- a/indra/newview/llsceneview.cpp +++ b/indra/newview/llsceneview.cpp @@ -51,7 +51,7 @@ LLSceneView::LLSceneView(const LLRect& rect) setCanClose(true); } -void LLSceneView::onClickCloseBtn() +void LLSceneView::onClickCloseBtn(bool) { setVisible(false); } diff --git a/indra/newview/llsceneview.h b/indra/newview/llsceneview.h index 2a3a14bbee..1fceecb9e1 100755 --- a/indra/newview/llsceneview.h +++ b/indra/newview/llsceneview.h @@ -38,7 +38,7 @@ public: virtual void draw(); protected: - virtual void onClickCloseBtn(); + virtual void onClickCloseBtn(bool app_qutting = false); }; diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 7b397d46f3..c83b459279 100755 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -6187,8 +6187,8 @@ void LLSelectNode::renderOneSilhouette(const LLColor4 &color) LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr; if (shader) - { //switch to "solid color" program for SH-2690 -- works around driver bug causing bad triangles when rendering silhouettes - gSolidColorProgram.bind(); + { //use UI program for selection highlights (texture color modulated by vertex color) + gUIProgram.bind(); } gGL.matrixMode(LLRender::MM_MODELVIEW); @@ -6243,10 +6243,11 @@ void LLSelectNode::renderOneSilhouette(const LLColor4 &color) gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); gGL.begin(LLRender::LINES); { + gGL.color4f(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE], 0.4f); + for(S32 i = 0; i < mSilhouetteVertices.size(); i += 2) { u_coord += u_divisor * LLSelectMgr::sHighlightUScale; - gGL.color4f(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE], 0.4f); gGL.texCoord2f( u_coord, v_coord ); gGL.vertex3fv( mSilhouetteVertices[i].mV); u_coord += u_divisor * LLSelectMgr::sHighlightUScale; diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp index 8915bb2fef..cbf43dbb93 100755 --- a/indra/newview/llsidepanelinventory.cpp +++ b/indra/newview/llsidepanelinventory.cpp @@ -397,7 +397,7 @@ void LLSidepanelInventory::onToggleInboxBtn() void LLSidepanelInventory::onOpen(const LLSD& key) { LLFirstUse::newInventory(false); - + mPanelMainInventory->setFocusFilterEditor(); #if AUTO_EXPAND_INBOX // Expand the inbox if we have fresh items LLPanelMarketplaceInbox * inbox = findChild<LLPanelMarketplaceInbox>(MARKETPLACE_INBOX_PANEL); diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp index ad7c939728..9be6d0c5f1 100755 --- a/indra/newview/llsidepaneltaskinfo.cpp +++ b/indra/newview/llsidepaneltaskinfo.cpp @@ -1170,6 +1170,10 @@ void LLSidepanelTaskInfo::doClickAction(U8 click_action) // Warn, but do it anyway. LLNotificationsUtil::add("ClickActionNotPayable"); } + else + { + handle_give_money_dialog(); + } } LLSelectMgr::getInstance()->selectionSetClickAction(click_action); } diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp index 00eb0c1ab1..2c83f6d0b7 100755 --- a/indra/newview/llspatialpartition.cpp +++ b/indra/newview/llspatialpartition.cpp @@ -1568,7 +1568,7 @@ void LLSpatialGroup::checkOcclusion() { glGetQueryObjectuivARB(mOcclusionQuery[LLViewerCamera::sCurCameraID], GL_QUERY_RESULT_AVAILABLE_ARB, &available); - static LLCachedControl<bool> wait_for_query(gSavedSettings, "RenderSynchronousOcclusion"); + static LLCachedControl<bool> wait_for_query(gSavedSettings, "RenderSynchronousOcclusion", true); if (wait_for_query && mOcclusionIssued[LLViewerCamera::sCurCameraID] < gFrameCount) { //query was issued last frame, wait until it's available diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 67a76460a7..d5f8a1e46e 100755 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -786,14 +786,18 @@ bool idle_startup() display_startup(); LLPanelLogin::giveFocus(); - if (gSavedSettings.getBOOL("FirstLoginThisInstall")) + // MAINT-3231 Show first run dialog only for Desura viewer + if (gSavedSettings.getString("sourceid") == "1208_desura") { - LL_INFOS("AppInit") << "FirstLoginThisInstall, calling show_first_run_dialog()" << LL_ENDL; - show_first_run_dialog(); - } - else - { - LL_DEBUGS("AppInit") << "FirstLoginThisInstall off" << LL_ENDL; + if (gSavedSettings.getBOOL("FirstLoginThisInstall")) + { + LL_INFOS("AppInit") << "FirstLoginThisInstall, calling show_first_run_dialog()" << LL_ENDL; + show_first_run_dialog(); + } + else + { + LL_DEBUGS("AppInit") << "FirstLoginThisInstall off" << LL_ENDL; + } } LLStartUp::setStartupState( STATE_LOGIN_WAIT ); // Wait for user input diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index 4300cafb6b..ea837c9127 100755 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -820,7 +820,7 @@ void LLFloaterTexturePicker::onSelectionChange(const std::deque<LLFolderViewItem { mNoCopyTextureSelected = TRUE; } - mImageAssetID = itemp->getAssetUUID(); + setImageID(itemp->getAssetUUID()); mViewModel->setDirty(); // *TODO: shouldn't we be using setValue() here? if (user_action && mCanPreview) { diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 6173e76a35..def26b3885 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -1270,7 +1270,7 @@ bool LLTextureFetchWorker::doWork(S32 param) if (mState == LOAD_FROM_NETWORK) { - static LLCachedControl<bool> use_http(gSavedSettings,"ImagePipelineUseHTTP"); + static LLCachedControl<bool> use_http(gSavedSettings,"ImagePipelineUseHTTP", true); // if (mHost != LLHost::invalid) get_url = false; if ( use_http && mCanUseHTTP && mUrl.empty())//get http url. @@ -1697,7 +1697,7 @@ bool LLTextureFetchWorker::doWork(S32 param) if (mState == DECODE_IMAGE) { - static LLCachedControl<bool> textures_decode_disabled(gSavedSettings,"TextureDecodeDisabled"); + static LLCachedControl<bool> textures_decode_disabled(gSavedSettings,"TextureDecodeDisabled", false); setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it if (textures_decode_disabled) @@ -1873,9 +1873,9 @@ bool LLTextureFetchWorker::doWork(S32 param) // virtual void LLTextureFetchWorker::onCompleted(LLCore::HttpHandle handle, LLCore::HttpResponse * response) { - static LLCachedControl<bool> log_to_viewer_log(gSavedSettings, "LogTextureDownloadsToViewerLog"); - static LLCachedControl<bool> log_to_sim(gSavedSettings, "LogTextureDownloadsToSimulator"); - static LLCachedControl<bool> log_texture_traffic(gSavedSettings, "LogTextureNetworkTraffic") ; + static LLCachedControl<bool> log_to_viewer_log(gSavedSettings, "LogTextureDownloadsToViewerLog", false); + static LLCachedControl<bool> log_to_sim(gSavedSettings, "LogTextureDownloadsToSimulator", false); + static LLCachedControl<bool> log_texture_traffic(gSavedSettings, "LogTextureNetworkTraffic", false) ; LLMutexLock lock(&mWorkMutex); // +Mw @@ -2876,7 +2876,7 @@ void LLTextureFetch::commonUpdate() //virtual S32 LLTextureFetch::update(F32 max_time_ms) { - static LLCachedControl<F32> band_width(gSavedSettings,"ThrottleBandwidthKBPS"); + static LLCachedControl<F32> band_width(gSavedSettings,"ThrottleBandwidthKBPS", 500.0); { mNetworkQueueMutex.lock(); // +Mfnq @@ -3099,8 +3099,8 @@ void LLTextureFetch::sendRequestListToSimulators() // llinfos << "IMAGE REQUEST: " << req->mID << " Discard: " << req->mDesiredDiscard // << " Packet: " << packet << " Priority: " << req->mImagePriority << llendl; - static LLCachedControl<bool> log_to_viewer_log(gSavedSettings,"LogTextureDownloadsToViewerLog"); - static LLCachedControl<bool> log_to_sim(gSavedSettings,"LogTextureDownloadsToSimulator"); + static LLCachedControl<bool> log_to_viewer_log(gSavedSettings,"LogTextureDownloadsToViewerLog", false); + static LLCachedControl<bool> log_to_sim(gSavedSettings,"LogTextureDownloadsToSimulator", false); if (log_to_viewer_log || log_to_sim) { mTextureInfo.setRequestStartTime(req->mID, LLTimer::getTotalTime()); @@ -3359,8 +3359,8 @@ bool LLTextureFetch::receiveImagePacket(const LLHost& host, const LLUUID& id, U1 if (packet_num >= (worker->mTotalPackets - 1)) { - static LLCachedControl<bool> log_to_viewer_log(gSavedSettings,"LogTextureDownloadsToViewerLog"); - static LLCachedControl<bool> log_to_sim(gSavedSettings,"LogTextureDownloadsToSimulator"); + static LLCachedControl<bool> log_to_viewer_log(gSavedSettings,"LogTextureDownloadsToViewerLog", false); + static LLCachedControl<bool> log_to_sim(gSavedSettings,"LogTextureDownloadsToSimulator", false); if (log_to_viewer_log || log_to_sim) { diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index d876c9a3f4..448fae48de 100755 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -555,7 +555,7 @@ BOOL LLToast::handleMouseDown(S32 x, S32 y, MASK mask) mHideBtnPressed = mHideBtn->getRect().pointInRect(x, y); } - return LLFloater::handleMouseDown(x, y, mask); + return LLModalDialog::handleMouseDown(x, y, mask); } //-------------------------------------------------------------------------- diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index 3f75f8da5e..6083210080 100755 --- a/indra/newview/lltoastalertpanel.cpp +++ b/indra/newview/lltoastalertpanel.cpp @@ -492,7 +492,7 @@ void LLToastAlertPanel::draw() } static LLUIColor shadow_color = LLUIColorTable::instance().getColor("ColorDropShadow"); - static LLUICachedControl<S32> shadow_lines ("DropShadowFloater"); + static LLUICachedControl<S32> shadow_lines ("DropShadowFloater", 5); gl_drop_shadow( 0, LLToastPanel::getRect().getHeight(), LLToastPanel::getRect().getWidth(), 0, shadow_color, shadow_lines); diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp index 94d07b37ef..7d48634381 100755 --- a/indra/newview/lltoastnotifypanel.cpp +++ b/indra/newview/lltoastnotifypanel.cpp @@ -41,6 +41,7 @@ #include "llnotificationsutil.h" #include "llviewermessage.h" #include "llfloaterimsession.h" +#include "llavataractions.h" const S32 BOTTOM_PAD = VPAD * 3; const S32 IGNORE_BTN_TOP_DELTA = 3*VPAD;//additional ignore_btn padding @@ -313,6 +314,7 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images ) mTextBox->setVisible(TRUE); mTextBox->setPlainText(!show_images); mTextBox->setValue(mNotification->getMessage()); + mTextBox->setIsFriendCallback(LLAvatarActions::isFriend); // add buttons for a script notification if (mIsTip) @@ -407,6 +409,28 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images ) } } +bool LLToastNotifyPanel::isControlPanelEnabled() const +{ + bool cp_enabled = mControlPanel->getEnabled(); + bool some_buttons_enabled = false; + if (cp_enabled) + { + LLView::child_list_const_iter_t child_it = mControlPanel->beginChild(); + LLView::child_list_const_iter_t child_it_end = mControlPanel->endChild(); + for(; child_it != child_it_end; ++child_it) + { + LLButton * buttonp = dynamic_cast<LLButton *>(*child_it); + if (buttonp && buttonp->getEnabled()) + { + some_buttons_enabled = true; + break; + } + } + } + + return cp_enabled && some_buttons_enabled; +} + ////////////////////////////////////////////////////////////////////////// LLIMToastNotifyPanel::LLIMToastNotifyPanel(LLNotificationPtr& pNotification, const LLUUID& session_id, const LLRect& rect /* = LLRect::null */, diff --git a/indra/newview/lltoastnotifypanel.h b/indra/newview/lltoastnotifypanel.h index d02171b512..fe7f1cf8f3 100755 --- a/indra/newview/lltoastnotifypanel.h +++ b/indra/newview/lltoastnotifypanel.h @@ -69,6 +69,8 @@ public: virtual void updateNotification() {} + bool isControlPanelEnabled() const; + protected: LLButton* createButton(const LLSD& form_element, BOOL is_option); diff --git a/indra/newview/lltoastpanel.cpp b/indra/newview/lltoastpanel.cpp index a30f841980..e1b764a943 100755 --- a/indra/newview/lltoastpanel.cpp +++ b/indra/newview/lltoastpanel.cpp @@ -53,6 +53,12 @@ std::string LLToastPanel::getTitle() } //virtual +const std::string& LLToastPanel::getNotificationName() +{ + return mNotification->getName(); +} + +//virtual const LLUUID& LLToastPanel::getID() { return mNotification->id(); diff --git a/indra/newview/lltoastpanel.h b/indra/newview/lltoastpanel.h index e4ab95007e..51630381f2 100755 --- a/indra/newview/lltoastpanel.h +++ b/indra/newview/lltoastpanel.h @@ -45,6 +45,7 @@ public: virtual ~LLToastPanel() = 0; virtual std::string getTitle(); + virtual const std::string& getNotificationName(); virtual const LLUUID& getID(); static const S32 MIN_PANEL_HEIGHT; diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index 78a555d67d..36d4654393 100755 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -77,7 +77,7 @@ LLToolBarView::LLToolBarView(const LLToolBarView::Params& p) mToolbarsLoaded(false), mBottomToolbarPanel(NULL) { - for (S32 i = 0; i < TOOLBAR_COUNT; i++) + for (S32 i = 0; i < LLToolBarEnums::TOOLBAR_COUNT; i++) { mToolbars[i] = NULL; } @@ -96,12 +96,18 @@ LLToolBarView::~LLToolBarView() BOOL LLToolBarView::postBuild() { - mToolbars[TOOLBAR_LEFT] = getChild<LLToolBar>("toolbar_left"); - mToolbars[TOOLBAR_RIGHT] = getChild<LLToolBar>("toolbar_right"); - mToolbars[TOOLBAR_BOTTOM] = getChild<LLToolBar>("toolbar_bottom"); + mToolbars[LLToolBarEnums::TOOLBAR_LEFT] = getChild<LLToolBar>("toolbar_left"); + mToolbars[LLToolBarEnums::TOOLBAR_LEFT]->getCenterLayoutPanel()->setLocationId(LLToolBarEnums::TOOLBAR_LEFT); + + mToolbars[LLToolBarEnums::TOOLBAR_RIGHT] = getChild<LLToolBar>("toolbar_right"); + mToolbars[LLToolBarEnums::TOOLBAR_RIGHT]->getCenterLayoutPanel()->setLocationId(LLToolBarEnums::TOOLBAR_RIGHT); + + mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM] = getChild<LLToolBar>("toolbar_bottom"); + mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM]->getCenterLayoutPanel()->setLocationId(LLToolBarEnums::TOOLBAR_BOTTOM); + mBottomToolbarPanel = getChild<LLView>("bottom_toolbar_panel"); - for (int i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) + for (int i = LLToolBarEnums::TOOLBAR_FIRST; i <= LLToolBarEnums::TOOLBAR_LAST; i++) { mToolbars[i]->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3)); mToolbars[i]->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4)); @@ -115,9 +121,9 @@ BOOL LLToolBarView::postBuild() S32 LLToolBarView::hasCommand(const LLCommandId& commandId) const { - S32 command_location = TOOLBAR_NONE; + S32 command_location = LLToolBarEnums::TOOLBAR_NONE; - for (S32 loc = TOOLBAR_FIRST; loc <= TOOLBAR_LAST; loc++) + for (S32 loc = LLToolBarEnums::TOOLBAR_FIRST; loc <= LLToolBarEnums::TOOLBAR_LAST; loc++) { if (mToolbars[loc]->hasCommand(commandId)) { @@ -129,7 +135,7 @@ S32 LLToolBarView::hasCommand(const LLCommandId& commandId) const return command_location; } -S32 LLToolBarView::addCommand(const LLCommandId& commandId, EToolBarLocation toolbar, int rank) +S32 LLToolBarView::addCommand(const LLCommandId& commandId, LLToolBarEnums::EToolBarLocation toolbar, int rank) { int old_rank; removeCommand(commandId, old_rank); @@ -144,7 +150,7 @@ S32 LLToolBarView::removeCommand(const LLCommandId& commandId, int& rank) S32 command_location = hasCommand(commandId); rank = LLToolBar::RANK_NONE; - if (command_location != TOOLBAR_NONE) + if (command_location != LLToolBarEnums::TOOLBAR_NONE) { rank = mToolbars[command_location]->removeCommand(commandId); } @@ -156,7 +162,7 @@ S32 LLToolBarView::enableCommand(const LLCommandId& commandId, bool enabled) { S32 command_location = hasCommand(commandId); - if (command_location != TOOLBAR_NONE) + if (command_location != LLToolBarEnums::TOOLBAR_NONE) { mToolbars[command_location]->enableCommand(commandId, enabled); } @@ -168,7 +174,7 @@ S32 LLToolBarView::stopCommandInProgress(const LLCommandId& commandId) { S32 command_location = hasCommand(commandId); - if (command_location != TOOLBAR_NONE) + if (command_location != LLToolBarEnums::TOOLBAR_NONE) { mToolbars[command_location]->stopCommandInProgress(commandId); } @@ -180,7 +186,7 @@ S32 LLToolBarView::flashCommand(const LLCommandId& commandId, bool flash, bool f { S32 command_location = hasCommand(commandId); - if (command_location != TOOLBAR_NONE) + if (command_location != LLToolBarEnums::TOOLBAR_NONE) { mToolbars[command_location]->flashCommand(commandId, flash, force_flashing); } @@ -259,7 +265,7 @@ bool LLToolBarView::loadToolbars(bool force_default) } // Clear the toolbars now before adding the loaded commands and settings - for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) + for (S32 i = LLToolBarEnums::TOOLBAR_FIRST; i <= LLToolBarEnums::TOOLBAR_LAST; i++) { if (mToolbars[i]) { @@ -268,46 +274,46 @@ bool LLToolBarView::loadToolbars(bool force_default) } // Add commands to each toolbar - if (toolbar_set.left_toolbar.isProvided() && mToolbars[TOOLBAR_LEFT]) + if (toolbar_set.left_toolbar.isProvided() && mToolbars[LLToolBarEnums::TOOLBAR_LEFT]) { if (toolbar_set.left_toolbar.button_display_mode.isProvided()) { LLToolBarEnums::ButtonType button_type = toolbar_set.left_toolbar.button_display_mode; - mToolbars[TOOLBAR_LEFT]->setButtonType(button_type); + mToolbars[LLToolBarEnums::TOOLBAR_LEFT]->setButtonType(button_type); } BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.left_toolbar.commands) { - if (addCommandInternal(LLCommandId(command_params), mToolbars[TOOLBAR_LEFT])) + if (addCommandInternal(LLCommandId(command_params), mToolbars[LLToolBarEnums::TOOLBAR_LEFT])) { llwarns << "Error adding command '" << command_params.name() << "' to left toolbar." << llendl; } } } - if (toolbar_set.right_toolbar.isProvided() && mToolbars[TOOLBAR_RIGHT]) + if (toolbar_set.right_toolbar.isProvided() && mToolbars[LLToolBarEnums::TOOLBAR_RIGHT]) { if (toolbar_set.right_toolbar.button_display_mode.isProvided()) { LLToolBarEnums::ButtonType button_type = toolbar_set.right_toolbar.button_display_mode; - mToolbars[TOOLBAR_RIGHT]->setButtonType(button_type); + mToolbars[LLToolBarEnums::TOOLBAR_RIGHT]->setButtonType(button_type); } BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.right_toolbar.commands) { - if (addCommandInternal(LLCommandId(command_params), mToolbars[TOOLBAR_RIGHT])) + if (addCommandInternal(LLCommandId(command_params), mToolbars[LLToolBarEnums::TOOLBAR_RIGHT])) { llwarns << "Error adding command '" << command_params.name() << "' to right toolbar." << llendl; } } } - if (toolbar_set.bottom_toolbar.isProvided() && mToolbars[TOOLBAR_BOTTOM]) + if (toolbar_set.bottom_toolbar.isProvided() && mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM]) { if (toolbar_set.bottom_toolbar.button_display_mode.isProvided()) { LLToolBarEnums::ButtonType button_type = toolbar_set.bottom_toolbar.button_display_mode; - mToolbars[TOOLBAR_BOTTOM]->setButtonType(button_type); + mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM]->setButtonType(button_type); } BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.bottom_toolbar.commands) { - if (addCommandInternal(LLCommandId(command_params), mToolbars[TOOLBAR_BOTTOM])) + if (addCommandInternal(LLCommandId(command_params), mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM])) { llwarns << "Error adding command '" << command_params.name() << "' to bottom toolbar." << llendl; } @@ -319,7 +325,7 @@ bool LLToolBarView::loadToolbars(bool force_default) bool LLToolBarView::clearToolbars() { - for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) + for (S32 i = LLToolBarEnums::TOOLBAR_FIRST; i <= LLToolBarEnums::TOOLBAR_LAST; i++) { if (mToolbars[i]) { @@ -371,20 +377,20 @@ void LLToolBarView::saveToolbars() const // Build the parameter tree from the toolbar data LLToolBarView::ToolbarSet toolbar_set; - if (mToolbars[TOOLBAR_LEFT]) + if (mToolbars[LLToolBarEnums::TOOLBAR_LEFT]) { - toolbar_set.left_toolbar.button_display_mode = mToolbars[TOOLBAR_LEFT]->getButtonType(); - addToToolset(mToolbars[TOOLBAR_LEFT]->getCommandsList(), toolbar_set.left_toolbar); + toolbar_set.left_toolbar.button_display_mode = mToolbars[LLToolBarEnums::TOOLBAR_LEFT]->getButtonType(); + addToToolset(mToolbars[LLToolBarEnums::TOOLBAR_LEFT]->getCommandsList(), toolbar_set.left_toolbar); } - if (mToolbars[TOOLBAR_RIGHT]) + if (mToolbars[LLToolBarEnums::TOOLBAR_RIGHT]) { - toolbar_set.right_toolbar.button_display_mode = mToolbars[TOOLBAR_RIGHT]->getButtonType(); - addToToolset(mToolbars[TOOLBAR_RIGHT]->getCommandsList(), toolbar_set.right_toolbar); + toolbar_set.right_toolbar.button_display_mode = mToolbars[LLToolBarEnums::TOOLBAR_RIGHT]->getButtonType(); + addToToolset(mToolbars[LLToolBarEnums::TOOLBAR_RIGHT]->getCommandsList(), toolbar_set.right_toolbar); } - if (mToolbars[TOOLBAR_BOTTOM]) + if (mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM]) { - toolbar_set.bottom_toolbar.button_display_mode = mToolbars[TOOLBAR_BOTTOM]->getButtonType(); - addToToolset(mToolbars[TOOLBAR_BOTTOM]->getCommandsList(), toolbar_set.bottom_toolbar); + toolbar_set.bottom_toolbar.button_display_mode = mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM]->getButtonType(); + addToToolset(mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM]->getCommandsList(), toolbar_set.bottom_toolbar); } // Serialize the parameter tree @@ -511,9 +517,9 @@ void LLToolBarView::onToolBarButtonRemoved(LLView* button) void LLToolBarView::draw() { - LLRect toolbar_rects[TOOLBAR_COUNT]; + LLRect toolbar_rects[LLToolBarEnums::TOOLBAR_COUNT]; - for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) + for (S32 i = LLToolBarEnums::TOOLBAR_FIRST; i <= LLToolBarEnums::TOOLBAR_LAST; i++) { if (mToolbars[i]) { @@ -532,7 +538,7 @@ void LLToolBarView::draw() } } - for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) + for (S32 i = LLToolBarEnums::TOOLBAR_FIRST; i <= LLToolBarEnums::TOOLBAR_LAST; i++) { mToolbars[i]->getParent()->setVisible(mShowToolbars && (mToolbars[i]->hasButtons() @@ -544,7 +550,7 @@ void LLToolBarView::draw() { LLColor4 drop_color = LLUIColorTable::instance().getColor( "ToolbarDropZoneColor" ); - for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) + for (S32 i = LLToolBarEnums::TOOLBAR_FIRST; i <= LLToolBarEnums::TOOLBAR_LAST; i++) { gl_rect_2d(toolbar_rects[i], drop_color, TRUE); } @@ -620,7 +626,7 @@ BOOL LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t S32 old_toolbar_loc = gToolBarView->hasCommand(command_id); LLToolBar* old_toolbar = NULL; - if (old_toolbar_loc != TOOLBAR_NONE) + if (old_toolbar_loc != LLToolBarEnums::TOOLBAR_NONE) { llassert(gToolBarView->mDragToolbarButton); old_toolbar = gToolBarView->mDragToolbarButton->getParentByType<LLToolBar>(); @@ -683,7 +689,7 @@ bool LLToolBarView::isModified() const { bool modified = false; - for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) + for (S32 i = LLToolBarEnums::TOOLBAR_FIRST; i <= LLToolBarEnums::TOOLBAR_LAST; i++) { modified |= mToolbars[i]->isModified(); } diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h index dcc3862074..a230c2fdee 100755 --- a/indra/newview/lltoolbarview.h +++ b/indra/newview/lltoolbarview.h @@ -40,19 +40,6 @@ class LLUICtrlFactory; class LLToolBarView : public LLUICtrl { public: - typedef enum - { - TOOLBAR_NONE = 0, - TOOLBAR_LEFT, - TOOLBAR_RIGHT, - TOOLBAR_BOTTOM, - - TOOLBAR_COUNT, - - TOOLBAR_FIRST = TOOLBAR_LEFT, - TOOLBAR_LAST = TOOLBAR_BOTTOM, - } EToolBarLocation; - // Xui structure of the toolbar panel struct Params : public LLInitParam::Block<Params, LLUICtrl::Params> {}; @@ -84,9 +71,9 @@ public: virtual void draw(); // Toolbar view interface with the rest of the world - // Checks if the commandId is being used somewhere in one of the toolbars, returns EToolBarLocation + // Checks if the commandId is being used somewhere in one of the toolbars, returns LLToolBarEnums::EToolBarLocation S32 hasCommand(const LLCommandId& commandId) const; - S32 addCommand(const LLCommandId& commandId, EToolBarLocation toolbar, int rank = LLToolBar::RANK_NONE); + S32 addCommand(const LLCommandId& commandId, LLToolBarEnums::EToolBarLocation toolbar, int rank = LLToolBar::RANK_NONE); S32 removeCommand(const LLCommandId& commandId, int& rank); // Sets the rank the removed command was at, RANK_NONE if not found S32 enableCommand(const LLCommandId& commandId, bool enabled); S32 stopCommandInProgress(const LLCommandId& commandId); @@ -109,7 +96,7 @@ public: static void resetDragTool(LLToolBarButton* toolbarButton); LLInventoryObject* getDragItem(); LLView* getBottomToolbar() { return mBottomToolbarPanel; } - LLToolBar* getToolbar(EToolBarLocation toolbar) { return mToolbars[toolbar]; } + LLToolBar* getToolbar(LLToolBarEnums::EToolBarLocation toolbar) { return mToolbars[toolbar]; } bool isModified() const; protected: @@ -127,7 +114,7 @@ private: static void onToolBarButtonRemoved(LLView* button); // Pointers to the toolbars handled by the toolbar view - LLToolBar* mToolbars[TOOLBAR_COUNT]; + LLToolBar* mToolbars[LLToolBarEnums::TOOLBAR_COUNT]; bool mToolbarsLoaded; bool mDragStarted; diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index ef7d0cd81b..1a137f7129 100755 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -355,7 +355,7 @@ void LLToolDragAndDrop::setDragStart(S32 x, S32 y) BOOL LLToolDragAndDrop::isOverThreshold(S32 x,S32 y) { - static LLCachedControl<S32> drag_and_drop_threshold(gSavedSettings,"DragAndDropDistanceThreshold"); + static LLCachedControl<S32> drag_and_drop_threshold(gSavedSettings,"DragAndDropDistanceThreshold", 3); S32 mouse_delta_x = x - mDragStartX; S32 mouse_delta_y = y - mDragStartY; diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp index cbd16e873d..73ceb783b5 100755 --- a/indra/newview/lltracker.cpp +++ b/indra/newview/lltracker.cpp @@ -167,6 +167,7 @@ void LLTracker::render3D() } static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white); + static LLUIColor map_track_color_under = LLUIColorTable::instance().getColor("MapTrackColorUnder", LLColor4::white); // Arbitary location beacon if( instance()->mIsTrackingLocation ) @@ -187,7 +188,7 @@ void LLTracker::render3D() } else { - renderBeacon( instance()->mTrackedPositionGlobal, map_track_color, + renderBeacon( instance()->mTrackedPositionGlobal, map_track_color, map_track_color_under, instance()->mBeaconText, instance()->mTrackedLocationName ); } } @@ -229,7 +230,7 @@ void LLTracker::render3D() // and back again instance()->mHasReachedLandmark = FALSE; } - renderBeacon( instance()->mTrackedPositionGlobal, map_track_color, + renderBeacon( instance()->mTrackedPositionGlobal, map_track_color, map_track_color_under, instance()->mBeaconText, instance()->mTrackedLandmarkName ); } } @@ -258,7 +259,7 @@ void LLTracker::render3D() } else { - renderBeacon( av_tracker.getGlobalPos(), map_track_color, + renderBeacon( av_tracker.getGlobalPos(), map_track_color, map_track_color_under, instance()->mBeaconText, av_tracker.getName() ); } } @@ -412,7 +413,7 @@ const std::string& LLTracker::getTrackedLocationName() return instance()->mTrackedLocationName; } -F32 pulse_func(F32 t, F32 z) +F32 pulse_func(F32 t, F32 z, bool tracking_avatar, std::string direction) { if (!LLTracker::sCheesyBeacon) { @@ -420,8 +421,15 @@ F32 pulse_func(F32 t, F32 z) } t *= F_PI; - z -= t*64.f - 256.f; - + if ("DOWN" == direction) + { + z += t*64.f - 256.f; + } + else + { + z -= t*64.f - 256.f; + } + F32 a = cosf(z*F_PI/512.f)*10.0f; a = llmax(a, 9.9f); a -= 9.9f; @@ -474,10 +482,78 @@ void draw_shockwave(F32 center_z, F32 t, S32 steps, LLColor4 color) gGL.end(); } +void LLTracker::drawBeacon(LLVector3 pos_agent, std::string direction, LLColor4 fogged_color, F32 dist) +{ + const U32 BEACON_VERTS = 256; + F32 step; + + gGL.matrixMode(LLRender::MM_MODELVIEW); + gGL.pushMatrix(); + + if ("DOWN" == direction) + { + gGL.translatef(pos_agent.mV[0], pos_agent.mV[1], pos_agent.mV[2]); + draw_shockwave(1024.f, gRenderStartTime.getElapsedTimeF32(), 32, fogged_color); + step = (5020.0f - pos_agent.mV[2]) / BEACON_VERTS; + } + else + { + gGL.translatef(pos_agent.mV[0], pos_agent.mV[1], 0); + step = pos_agent.mV[2] / BEACON_VERTS; + } + + gGL.color4fv(fogged_color.mV); + + LLVector3 x_axis = LLViewerCamera::getInstance()->getLeftAxis(); + F32 t = gRenderStartTime.getElapsedTimeF32(); + + for (U32 i = 0; i < BEACON_VERTS; i++) + { + F32 x = x_axis.mV[0]; + F32 y = x_axis.mV[1]; + + F32 z = i * step; + F32 z_next = (i+1)*step; + + bool tracking_avatar = getTrackingStatus() == TRACKING_AVATAR; + F32 a = pulse_func(t, z, tracking_avatar, direction); + F32 an = pulse_func(t, z_next, tracking_avatar, direction); + + LLColor4 c_col = fogged_color + LLColor4(a,a,a,a); + LLColor4 col_next = fogged_color + LLColor4(an,an,an,an); + LLColor4 col_edge = fogged_color * LLColor4(a,a,a,0.0f); + LLColor4 col_edge_next = fogged_color * LLColor4(an,an,an,0.0f); + + a *= 2.f; + a += 1.0f; + + an *= 2.f; + an += 1.0f; + + gGL.begin(LLRender::TRIANGLE_STRIP); + gGL.color4fv(col_edge.mV); + gGL.vertex3f(-x*a, -y*a, z); + gGL.color4fv(col_edge_next.mV); + gGL.vertex3f(-x*an, -y*an, z_next); + + gGL.color4fv(c_col.mV); + gGL.vertex3f(0, 0, z); + gGL.color4fv(col_next.mV); + gGL.vertex3f(0, 0, z_next); + + gGL.color4fv(col_edge.mV); + gGL.vertex3f(x*a,y*a,z); + gGL.color4fv(col_edge_next.mV); + gGL.vertex3f(x*an,y*an,z_next); + gGL.end(); + } + gGL.popMatrix(); +} // static void LLTracker::renderBeacon(LLVector3d pos_global, - const LLColor4& color, + const LLColor4& color, + const LLColor4& color_under, LLHUDText* hud_textp, const std::string& label ) { @@ -497,9 +573,11 @@ void LLTracker::renderBeacon(LLVector3d pos_global, } LLColor4 fogged_color = color_frac * color + (1 - color_frac)*gSky.getFogColor(); + LLColor4 fogged_color_under = color_frac * color_under + (1 - color_frac) * gSky.getFogColor(); F32 FADE_DIST = 3.f; fogged_color.mV[3] = llmax(0.2f, llmin(0.5f,(dist-FADE_DIST)/FADE_DIST)); + fogged_color_under.mV[3] = llmax(0.2f, llmin(0.5f,(dist-FADE_DIST)/FADE_DIST)); LLVector3 pos_agent = gAgent.getPosAgentFromGlobal(pos_global); @@ -508,64 +586,8 @@ void LLTracker::renderBeacon(LLVector3d pos_global, LLGLDisable cull_face(GL_CULL_FACE); LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); - - gGL.matrixMode(LLRender::MM_MODELVIEW); - gGL.pushMatrix(); - { - gGL.translatef(pos_agent.mV[0], pos_agent.mV[1], pos_agent.mV[2]); - - draw_shockwave(1024.f, gRenderStartTime.getElapsedTimeF32(), 32, fogged_color); - - gGL.color4fv(fogged_color.mV); - const U32 BEACON_VERTS = 256; - const F32 step = 1024.0f/BEACON_VERTS; - - LLVector3 x_axis = LLViewerCamera::getInstance()->getLeftAxis(); - F32 t = gRenderStartTime.getElapsedTimeF32(); - F32 dr = dist/LLViewerCamera::getInstance()->getFar(); - - for (U32 i = 0; i < BEACON_VERTS; i++) - { - F32 x = x_axis.mV[0]; - F32 y = x_axis.mV[1]; - - F32 z = i * step; - F32 z_next = (i+1)*step; - - F32 a = pulse_func(t, z); - F32 an = pulse_func(t, z_next); - - LLColor4 c_col = fogged_color + LLColor4(a,a,a,a); - LLColor4 col_next = fogged_color + LLColor4(an,an,an,an); - LLColor4 col_edge = fogged_color * LLColor4(a,a,a,0.0f); - LLColor4 col_edge_next = fogged_color * LLColor4(an,an,an,0.0f); - - a *= 2.f; - a += 1.0f+dr; - - an *= 2.f; - an += 1.0f+dr; - - gGL.begin(LLRender::TRIANGLE_STRIP); - gGL.color4fv(col_edge.mV); - gGL.vertex3f(-x*a, -y*a, z); - gGL.color4fv(col_edge_next.mV); - gGL.vertex3f(-x*an, -y*an, z_next); - - gGL.color4fv(c_col.mV); - gGL.vertex3f(0, 0, z); - gGL.color4fv(col_next.mV); - gGL.vertex3f(0, 0, z_next); - - gGL.color4fv(col_edge.mV); - gGL.vertex3f(x*a,y*a,z); - gGL.color4fv(col_edge_next.mV); - gGL.vertex3f(x*an,y*an,z_next); - - gGL.end(); - } - } - gGL.popMatrix(); + LLTracker::drawBeacon(pos_agent, "DOWN", fogged_color, dist); + LLTracker::drawBeacon(pos_agent, "UP", fogged_color_under, dist); std::string text; text = llformat( "%.0f m", to_vec.magVec()); diff --git a/indra/newview/lltracker.h b/indra/newview/lltracker.h index 8e916af315..d8d5803787 100755 --- a/indra/newview/lltracker.h +++ b/indra/newview/lltracker.h @@ -108,8 +108,10 @@ protected: LLTracker(); ~LLTracker(); + static void drawBeacon(LLVector3 pos_agent, std::string direction, LLColor4 fogged_color, F32 dist); static void renderBeacon( LLVector3d pos_global, const LLColor4& color, + const LLColor4& color_under, LLHUDText* hud_textp, const std::string& label ); diff --git a/indra/newview/llurldispatcher.cpp b/indra/newview/llurldispatcher.cpp index 00b15a5f26..0c34db39b5 100755 --- a/indra/newview/llurldispatcher.cpp +++ b/indra/newview/llurldispatcher.cpp @@ -307,7 +307,7 @@ bool LLURLDispatcher::dispatchRightClick(const std::string& slurl) } // static -bool LLURLDispatcher::dispatchFromTextEditor(const std::string& slurl) +bool LLURLDispatcher::dispatchFromTextEditor(const std::string& slurl, bool trusted_content) { // *NOTE: Text editors are considered sources of trusted URLs // in order to make avatar profile links in chat history work. @@ -315,9 +315,9 @@ bool LLURLDispatcher::dispatchFromTextEditor(const std::string& slurl) // receiving resident will see it and must affirmatively // click on it. // *TODO: Make this trust model more refined. JC - const bool trusted_browser = true; + LLMediaCtrl* web = NULL; - return LLURLDispatcherImpl::dispatch(LLSLURL(slurl), "clicked", web, trusted_browser); + return LLURLDispatcherImpl::dispatch(LLSLURL(slurl), "clicked", web, trusted_content); } diff --git a/indra/newview/llurldispatcher.h b/indra/newview/llurldispatcher.h index 6309a97af5..9b05260af1 100755 --- a/indra/newview/llurldispatcher.h +++ b/indra/newview/llurldispatcher.h @@ -53,7 +53,7 @@ public: static bool dispatchRightClick(const std::string& slurl); - static bool dispatchFromTextEditor(const std::string& slurl); + static bool dispatchFromTextEditor(const std::string& slurl, bool trusted_content); }; #endif diff --git a/indra/newview/llurldispatcherlistener.cpp b/indra/newview/llurldispatcherlistener.cpp index c7b9afafef..7545f3a9b3 100755 --- a/indra/newview/llurldispatcherlistener.cpp +++ b/indra/newview/llurldispatcherlistener.cpp @@ -71,5 +71,5 @@ void LLURLDispatcherListener::dispatchRightClick(const LLSD& params) const void LLURLDispatcherListener::dispatchFromTextEditor(const LLSD& params) const { - LLURLDispatcher::dispatchFromTextEditor(params["url"]); + LLURLDispatcher::dispatchFromTextEditor(params["url"], false); } diff --git a/indra/newview/llvieweraudio.cpp b/indra/newview/llvieweraudio.cpp index 3da934b148..826d296117 100755 --- a/indra/newview/llvieweraudio.cpp +++ b/indra/newview/llvieweraudio.cpp @@ -368,6 +368,7 @@ void init_audio() gAudiop->preloadSound(LLUUID(gSavedSettings.getString("UISndTyping"))); gAudiop->preloadSound(LLUUID(gSavedSettings.getString("UISndWindowClose"))); gAudiop->preloadSound(LLUUID(gSavedSettings.getString("UISndWindowOpen"))); + gAudiop->preloadSound(LLUUID(gSavedSettings.getString("UISndRestart"))); } audio_update_volume(true); diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 4ce049df03..a8eeddb798 100755 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -95,6 +95,7 @@ #include "llfloaterproperties.h" #include "llfloaterregiondebugconsole.h" #include "llfloaterregioninfo.h" +#include "llfloaterregionrestarting.h" #include "llfloaterreporter.h" #include "llfloaterscriptdebug.h" #include "llfloaterscriptlimits.h" @@ -296,6 +297,7 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("reset_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterResetQueue>); LLFloaterReg::add("region_debug_console", "floater_region_debug_console.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterRegionDebugConsole>); LLFloaterReg::add("region_info", "floater_region_info.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterRegionInfo>); + LLFloaterReg::add("region_restarting", "floater_region_restarting.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterRegionRestarting>); LLFloaterReg::add("script_debug", "floater_script_debug.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterScriptDebug>); LLFloaterReg::add("script_debug_output", "floater_script_debug_panel.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterScriptDebugOutput>); diff --git a/indra/newview/llviewerjoystick.cpp b/indra/newview/llviewerjoystick.cpp index f6e840adcd..aeeb591d55 100755 --- a/indra/newview/llviewerjoystick.cpp +++ b/indra/newview/llviewerjoystick.cpp @@ -919,7 +919,7 @@ void LLViewerJoystick::moveFlycam(bool reset) { if (i == X_I || i == Y_I || i == Z_I) { - static LLCachedControl<F32> build_mode_scale(gSavedSettings,"FlycamBuildModeScale"); + static LLCachedControl<F32> build_mode_scale(gSavedSettings,"FlycamBuildModeScale", 1.0); cur_delta[i] *= build_mode_scale; } } diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 13483790ed..21fb8d519b 100755 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -3773,18 +3773,18 @@ bool LLViewerMediaImpl::shouldShowBasedOnClass() const // If it is attached to an avatar and the pref is off, we shouldn't show it if (attached_to_another_avatar) { - static LLCachedControl<bool> show_media_on_others(gSavedSettings, LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING); + static LLCachedControl<bool> show_media_on_others(gSavedSettings, LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING, false); return show_media_on_others; } if (inside_parcel) { - static LLCachedControl<bool> show_media_within_parcel(gSavedSettings, LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING); + static LLCachedControl<bool> show_media_within_parcel(gSavedSettings, LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING, true); return show_media_within_parcel; } else { - static LLCachedControl<bool> show_media_outside_parcel(gSavedSettings, LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING); + static LLCachedControl<bool> show_media_outside_parcel(gSavedSettings, LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING, true); return show_media_outside_parcel; } diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index ac2940fcfc..c7c8da27f3 100755 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -1025,6 +1025,10 @@ U32 info_display_from_string(std::string info_display) { return LLPipeline::RENDER_DEBUG_AVATAR_VOLUME; } + else if ("joints" == info_display) + { + return LLPipeline::RENDER_DEBUG_AVATAR_JOINTS; + } else if ("raycast" == info_display) { return LLPipeline::RENDER_DEBUG_RAYCAST; @@ -7193,6 +7197,17 @@ class LLAdvancedClickRenderProfile: public view_listener_t } }; +void gpu_benchmark(); + +class LLAdvancedClickRenderBenchmark: public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + gpu_benchmark(); + return true; + } +}; + void menu_toggle_attached_lights(void* user_data) { LLPipeline::sRenderAttachedLights = gSavedSettings.getBOOL("RenderAttachedLights"); @@ -7802,6 +7817,22 @@ void handle_show_url(const LLSD& param) } +void handle_report_bug(const LLSD& param) +{ + LLUIString url(param.asString()); + + LLStringUtil::format_map_t replace; + replace["[ENVIRONMENT]"] = LLURI::escape(LLAppViewer::instance()->getViewerInfoString()); + LLSLURL location_url; + LLAgentUI::buildSLURL(location_url); + replace["[LOCATION]"] = location_url.getSLURLString(); + + LLUIString file_bug_url = gSavedSettings.getString("ReportBugURL"); + file_bug_url.setArgs(replace); + + LLWeb::loadURLExternal(file_bug_url.getString()); +} + void handle_buy_currency_test(void*) { std::string url = @@ -8633,6 +8664,7 @@ void initialize_menus() view_listener_t::addMenu(new LLAdvancedCheckRenderShadowOption(), "Advanced.CheckRenderShadowOption"); view_listener_t::addMenu(new LLAdvancedClickRenderShadowOption(), "Advanced.ClickRenderShadowOption"); view_listener_t::addMenu(new LLAdvancedClickRenderProfile(), "Advanced.ClickRenderProfile"); + view_listener_t::addMenu(new LLAdvancedClickRenderBenchmark(), "Advanced.ClickRenderBenchmark"); #ifdef TOGGLE_HACKED_GODLIKE_VIEWER view_listener_t::addMenu(new LLAdvancedHandleToggleHackedGodmode(), "Advanced.HandleToggleHackedGodmode"); @@ -8648,6 +8680,7 @@ void initialize_menus() commit.add("Advanced.WebBrowserTest", boost::bind(&handle_web_browser_test, _2)); // sigh! this one opens the MEDIA browser commit.add("Advanced.WebContentTest", boost::bind(&handle_web_content_test, _2)); // this one opens the Web Content floater commit.add("Advanced.ShowURL", boost::bind(&handle_show_url, _2)); + commit.add("Advanced.ReportBug", boost::bind(&handle_report_bug, _2)); view_listener_t::addMenu(new LLAdvancedBuyCurrencyTest(), "Advanced.BuyCurrencyTest"); view_listener_t::addMenu(new LLAdvancedDumpSelectMgr(), "Advanced.DumpSelectMgr"); view_listener_t::addMenu(new LLAdvancedDumpInventory(), "Advanced.DumpInventory"); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index ab9ea5618e..df5c7d5c2e 100755 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -45,6 +45,7 @@ #include "llsd.h" #include "llsdserialize.h" #include "llteleportflags.h" +#include "lltoastnotifypanel.h" #include "lltransactionflags.h" #include "llvfile.h" #include "llvfs.h" @@ -110,6 +111,7 @@ #include "llpanelblockedlist.h" #include "llpanelplaceprofile.h" #include "llviewerregion.h" +#include "llfloaterregionrestarting.h" #include <boost/algorithm/string/split.hpp> // #include <boost/regex.hpp> @@ -2407,14 +2409,10 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) && from_id.notNull() //not a system message && to_id.notNull()) //not global message { - // return a standard "do not disturb" message, but only do it to online IM + // return a standard "do not disturb" message, but only do it to online IM // (i.e. not other auto responses and not store-and-forward IM) - if (!gIMMgr->hasSession(session_id)) - { - // if there is not a panel for this conversation (i.e. it is a new IM conversation - // initiated by the other party) then... - send_do_not_disturb_message(msg, from_id, session_id); - } + + send_do_not_disturb_message(msg, from_id, session_id); // now store incoming IM in chat history @@ -3228,7 +3226,20 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) payload["online"] = (offline == IM_ONLINE); payload["sender"] = msg->getSender().getIPandPort(); - if (is_muted) + bool add_notification = true; + for (LLToastNotifyPanel::instance_iter ti(LLToastNotifyPanel::beginInstances()) + , tend(LLToastNotifyPanel::endInstances()); ti != tend; ++ti) + { + LLToastNotifyPanel& panel = *ti; + const std::string& notification_name = panel.getNotificationName(); + if (notification_name == "OfferFriendship" && panel.isControlPanelEnabled()) + { + add_notification = false; + break; + } + } + + if (is_muted && add_notification) { LLNotifications::instance().forceResponse(LLNotification::Params("OfferFriendship").payload(payload), 1); } @@ -3239,6 +3250,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) send_do_not_disturb_message(msg, from_id); } args["NAME_SLURL"] = LLSLURL("agent", from_id, "about").getSLURLString(); + + if (add_notification) + { if(message.empty()) { //support for frienship offers from clients before July 2008 @@ -3254,6 +3268,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) } } } + } break; case IM_FRIENDSHIP_ACCEPTED: @@ -3816,19 +3831,6 @@ public: LLInventoryModel::EXCLUDE_TRASH, is_card); } - LLSD args; - if ( land_items.count() > 0 ) - { // Show notification that they can now teleport to landmarks. Use a random landmark from the inventory - S32 random_land = ll_rand( land_items.count() - 1 ); - args["NAME"] = land_items[random_land]->getName(); - LLNotificationsUtil::add("TeleportToLandmark",args); - } - if ( card_items.count() > 0 ) - { // Show notification that they can now contact people. Use a random calling card from the inventory - S32 random_card = ll_rand( card_items.count() - 1 ); - args["NAME"] = card_items[random_card]->getName(); - LLNotificationsUtil::add("TeleportToPerson",args); - } gInventory.removeObserver(this); delete this; @@ -4105,18 +4107,6 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) if (isAgentAvatarValid()) { - // Chat the "back" SLURL. (DEV-4907) - - LLSLURL slurl; - gAgent.getTeleportSourceSLURL(slurl); - LLSD substitution = LLSD().with("[T_SLURL]", slurl.getSLURLString()); - std::string completed_from = LLAgent::sTeleportProgressMessages["completed_from"]; - LLStringUtil::format(completed_from, substitution); - - LLSD args; - args["MESSAGE"] = completed_from; - LLNotificationsUtil::add("SystemMessageTip", args); - // Set the new position gAgentAvatarp->setPositionAgent(agent_pos); gAgentAvatarp->clearChat(); @@ -5748,7 +5738,6 @@ bool handle_special_notification(std::string notificationID, LLSD& llsdBlock) std::string regionMaturity = LLViewerRegion::accessToString(regionAccess); LLStringUtil::toLower(regionMaturity); llsdBlock["REGIONMATURITY"] = regionMaturity; - bool returnValue = false; LLNotificationPtr maturityLevelNotification; std::string notifySuffix = "_Notify"; @@ -5918,6 +5907,7 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem) (notificationID == "RegionEntryAccessBlocked") || (notificationID == "LandClaimAccessBlocked") || (notificationID == "LandBuyAccessBlocked") + ) { /*--------------------------------------------------------------------- @@ -5959,7 +5949,41 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem) snap_filename += SCREEN_HOME_FILENAME; gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw(), FALSE, FALSE); } - + + if (notificationID == "RegionRestartMinutes" || + notificationID == "RegionRestartSeconds") + { + S32 seconds; + if (notificationID == "RegionRestartMinutes") + { + seconds = 60 * static_cast<S32>(llsdBlock["MINUTES"].asInteger()); + } + else + { + seconds = static_cast<S32>(llsdBlock["SECONDS"].asInteger()); + } + + LLFloaterRegionRestarting* floaterp = LLFloaterReg::findTypedInstance<LLFloaterRegionRestarting>("region_restarting"); + + if (floaterp) + { + LLFloaterRegionRestarting::updateTime(seconds); + } + else + { + LLSD params; + params["NAME"] = llsdBlock["NAME"]; + params["SECONDS"] = (LLSD::Integer)seconds; + LLFloaterRegionRestarting* restarting_floater = dynamic_cast<LLFloaterRegionRestarting*>(LLFloaterReg::showInstance("region_restarting", params)); + if(restarting_floater) + { + restarting_floater->center(); + } + } + + send_sound_trigger(LLUUID(gSavedSettings.getString("UISndRestart")), 1.0f); + } + LLNotificationsUtil::add(notificationID, llsdBlock); return true; } @@ -6019,7 +6043,6 @@ void process_alert_message(LLMessageSystem *msgsystem, void **user_data) std::string message; msgsystem->getStringFast(_PREHASH_AlertData, _PREHASH_Message, message); - process_special_alert_messages(message); if (!attempt_standard_notification(msgsystem)) @@ -6043,7 +6066,6 @@ bool handle_not_age_verified_alert(const std::string &pAlertName) bool handle_special_alerts(const std::string &pAlertName) { bool isHandled = false; - if (LLStringUtil::compareStrings(pAlertName, "NotAgeVerified") == 0) { @@ -6079,26 +6101,17 @@ void process_alert_core(const std::string& message, BOOL modal) // System message is important, show in upper-right box not tip std::string text(message.substr(1)); LLSD args; - if (text.substr(0,17) == "RESTART_X_MINUTES") - { - S32 mins = 0; - LLStringUtil::convertToS32(text.substr(18), mins); - args["MINUTES"] = llformat("%d",mins); - LLNotificationsUtil::add("RegionRestartMinutes", args); - } - else if (text.substr(0,17) == "RESTART_X_SECONDS") + + // *NOTE: If the text from the server ever changes this line will need to be adjusted. + std::string restart_cancelled = "Region restart cancelled."; + if (text.substr(0, restart_cancelled.length()) == restart_cancelled) { - S32 secs = 0; - LLStringUtil::convertToS32(text.substr(18), secs); - args["SECONDS"] = llformat("%d",secs); - LLNotificationsUtil::add("RegionRestartSeconds", args); - } - else - { - std::string new_msg =LLNotifications::instance().getGlobalString(text); - args["MESSAGE"] = new_msg; - LLNotificationsUtil::add("SystemMessage", args); + LLFloaterRegionRestarting::close(); } + + std::string new_msg =LLNotifications::instance().getGlobalString(text); + args["MESSAGE"] = new_msg; + LLNotificationsUtil::add("SystemMessage", args); } else if (modal) { diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 7151a0d6ed..e62998db70 100755 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -236,7 +236,6 @@ LLViewerObject::LLViewerObject(const LLUUID &id, const LLPCode pcode, LLViewerRe mOnMap(FALSE), mStatic(FALSE), mNumFaces(0), - mTimeDilation(1.f), mRotTime(0.f), mAngularVelocityRot(), mPreviousRotation(), @@ -943,7 +942,6 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, U16 time_dilation16; mesgsys->getU16Fast(_PREHASH_RegionData, _PREHASH_TimeDilation, time_dilation16); F32 time_dilation = ((F32) time_dilation16) / 65535.f; - mTimeDilation = time_dilation; mRegionp->setTimeDilation(time_dilation); // this will be used to determine if we've really changed position @@ -1986,7 +1984,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(mesgsys->getSender()); if (cdp) { - F32 ping_delay = 0.5f * mTimeDilation * ( ((F32)cdp->getPingDelay()) * 0.001f + gFrameDTClamped); + F32 ping_delay = 0.5f * time_dilation * ( ((F32)cdp->getPingDelay()) * 0.001f + gFrameDTClamped); LLVector3 diff = getVelocity() * ping_delay; new_pos_parent += diff; } @@ -2185,35 +2183,33 @@ BOOL LLViewerObject::isActive() const -void LLViewerObject::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) +void LLViewerObject::idleUpdate(LLAgent &agent, const F64 &time) { //static LLFastTimer::DeclareTimer ftm("Viewer Object"); //LLFastTimer t(ftm); if (!mDead) { - // CRO - don't velocity interp linked objects! - // Leviathan - but DO velocity interp joints - if (!mStatic && sVelocityInterpolate && !isSelected()) - { - // calculate dt from last update - F32 dt_raw = (F32)(time - mLastInterpUpdateSecs); - F32 dt = mTimeDilation * dt_raw; + if (!mStatic && sVelocityInterpolate && !isSelected()) + { + // calculate dt from last update + F32 time_dilation = mRegionp ? mRegionp->getTimeDilation() : 1.0f; + F32 dt = time_dilation * (F32)(time - mLastInterpUpdateSecs); applyAngularVelocity(dt); if (isAttachment()) - { - mLastInterpUpdateSecs = time; + { + mLastInterpUpdateSecs = time; return; + } + else + { // Move object based on it's velocity and rotation + interpolateLinearMotion(time, dt); + } } - else - { // Move object based on it's velocity and rotation - interpolateLinearMotion(time, dt); - } - } - updateDrawable(FALSE); + updateDrawable(FALSE); } } @@ -4063,7 +4059,7 @@ void LLViewerObject::setTE(const U8 te, const LLTextureEntry &texture_entry) { LLPrimitive::setTE(te, texture_entry); - const LLUUID& image_id = getTE(te)->getID(); + const LLUUID& image_id = getTE(te)->getID(); mTEImages[te] = LLViewerTextureManager::getFetchedTexture(image_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); if (getTE(te)->getMaterialParams().notNull()) @@ -5879,6 +5875,13 @@ void LLViewerObject::resetChildrenPosition(const LLVector3& offset, BOOL simplif return ; } +// virtual +BOOL LLViewerObject::isTempAttachment() const +{ + return (mID.notNull() && (mID == mAttachmentItemID)); +} + + const LLUUID &LLViewerObject::getAttachmentItemID() const { return mAttachmentItemID; diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index b035473c74..c34d4493d5 100755 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -143,7 +143,7 @@ public: LLNameValue* getNVPair(const std::string& name) const; // null if no name value pair by that name // Object create and update functions - virtual void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time); + virtual void idleUpdate(LLAgent &agent, const F64 &time); // Types of media we can associate enum { MEDIA_NONE = 0, MEDIA_SET = 1 }; @@ -171,6 +171,8 @@ public: virtual BOOL isAttachment() const { return FALSE; } virtual LLVOAvatar* getAvatar() const; //get the avatar this object is attached to, or NULL if object is not an attachment virtual BOOL isHUDAttachment() const { return FALSE; } + virtual BOOL isTempAttachment() const; + virtual void updateRadius() {}; virtual F32 getVObjRadius() const; // default implemenation is mDrawable->getRadius() @@ -303,7 +305,7 @@ public: /*virtual*/ S32 setTETexture(const U8 te, const LLUUID &uuid); /*virtual*/ S32 setTENormalMap(const U8 te, const LLUUID &uuid); /*virtual*/ S32 setTESpecularMap(const U8 te, const LLUUID &uuid); - S32 setTETextureCore(const U8 te, LLViewerTexture *image); + S32 setTETextureCore(const U8 te, LLViewerTexture *image); S32 setTENormalMapCore(const U8 te, LLViewerTexture *image); S32 setTESpecularMapCore(const U8 te, LLViewerTexture *image); /*virtual*/ S32 setTEColor(const U8 te, const LLColor3 &color); @@ -741,7 +743,6 @@ protected: BOOL mStatic; // Object doesn't move. S32 mNumFaces; - F32 mTimeDilation; // Time dilation sent with the object. F32 mRotTime; // Amount (in seconds) that object has rotated according to angular velocity (llSetTargetOmega) LLQuaternion mAngularVelocityRot; // accumulated rotation from the angular velocity computations LLQuaternion mPreviousRotation; diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index b4e287c446..f667c2bf33 100755 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -399,10 +399,10 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys, if (update_type != OUT_TERSE_IMPROVED) // OUT_FULL_COMPRESSED only? { - compressed_dp.unpackUUID(fullid, "ID"); - compressed_dp.unpackU32(local_id, "LocalID"); - compressed_dp.unpackU8(pcode, "PCode"); - } + compressed_dp.unpackUUID(fullid, "ID"); + compressed_dp.unpackU32(local_id, "LocalID"); + compressed_dp.unpackU8(pcode, "PCode"); + } else { compressed_dp.unpackU32(local_id, "LocalID"); @@ -561,7 +561,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys, processUpdateCore(objectp, user_data, i, update_type, NULL, justCreated); } recorder.objectUpdateEvent(local_id, update_type, objectp, msg_size); - objectp->setLastUpdateType(update_type); + objectp->setLastUpdateType(update_type); objectp->setLastUpdateCached(bCached); } @@ -852,7 +852,7 @@ private: LLSD mObjectIDs; }; -void LLViewerObjectList::update(LLAgent &agent, LLWorld &world) +void LLViewerObjectList::update(LLAgent &agent) { // Update globals LLViewerObject::setVelocityInterpolate( gSavedSettings.getBOOL("VelocityInterpolate") ); @@ -942,7 +942,7 @@ void LLViewerObjectList::update(LLAgent &agent, LLWorld &world) objectp = *iter; if (objectp->isAvatar()) { - objectp->idleUpdate(agent, world, frame_time); + objectp->idleUpdate(agent, frame_time); } } } @@ -953,7 +953,7 @@ void LLViewerObjectList::update(LLAgent &agent, LLWorld &world) { objectp = *idle_iter; llassert(objectp->isActive()); - objectp->idleUpdate(agent, world, frame_time); + objectp->idleUpdate(agent, frame_time); } //update flexible objects diff --git a/indra/newview/llviewerobjectlist.h b/indra/newview/llviewerobjectlist.h index 6518c25d09..98b50fa789 100755 --- a/indra/newview/llviewerobjectlist.h +++ b/indra/newview/llviewerobjectlist.h @@ -83,7 +83,7 @@ public: void processCompressedObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type); void processCachedObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type); void updateApparentAngles(LLAgent &agent); - void update(LLAgent &agent, LLWorld &world); + void update(LLAgent &agent); void fetchObjectCosts(); void fetchPhysicsFlags(); diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index 4cdb568d17..e361fad9de 100755 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -1580,7 +1580,8 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use // Let interesting parties know about agent parcel change. LLViewerParcelMgr* instance = LLViewerParcelMgr::getInstance(); - instance->mAgentParcelChangedSignal(); + // Notify anything that wants to know when the agent changes parcels + gAgent.changeParcels(); if (instance->mTeleportInProgress) { @@ -2458,10 +2459,6 @@ LLViewerTexture* LLViewerParcelMgr::getPassImage() const return sPassImage; } -boost::signals2::connection LLViewerParcelMgr::addAgentParcelChangedCallback(parcel_changed_callback_t cb) -{ - return mAgentParcelChangedSignal.connect(cb); -} /* * Set finish teleport callback. You can use it to observe all teleport events. * NOTE: @@ -2475,7 +2472,7 @@ boost::signals2::connection LLViewerParcelMgr::setTeleportFinishedCallback(telep return mTeleportFinishedSignal.connect(cb); } -boost::signals2::connection LLViewerParcelMgr::setTeleportFailedCallback(parcel_changed_callback_t cb) +boost::signals2::connection LLViewerParcelMgr::setTeleportFailedCallback(teleport_failed_callback_t cb) { return mTeleportFailedSignal.connect(cb); } diff --git a/indra/newview/llviewerparcelmgr.h b/indra/newview/llviewerparcelmgr.h index 6183b7e90e..9da49bb3f3 100755 --- a/indra/newview/llviewerparcelmgr.h +++ b/indra/newview/llviewerparcelmgr.h @@ -80,8 +80,8 @@ class LLViewerParcelMgr : public LLSingleton<LLViewerParcelMgr> public: typedef boost::function<void (const LLVector3d&, const bool& local)> teleport_finished_callback_t; typedef boost::signals2::signal<void (const LLVector3d&, const bool&)> teleport_finished_signal_t; - typedef boost::function<void()> parcel_changed_callback_t; - typedef boost::signals2::signal<void()> parcel_changed_signal_t; + typedef boost::function<void()> teleport_failed_callback_t; + typedef boost::signals2::signal<void()> teleport_failed_signal_t; LLViewerParcelMgr(); ~LLViewerParcelMgr(); @@ -283,9 +283,8 @@ public: // the agent is banned or not in the allowed group BOOL isCollisionBanned(); - boost::signals2::connection addAgentParcelChangedCallback(parcel_changed_callback_t cb); boost::signals2::connection setTeleportFinishedCallback(teleport_finished_callback_t cb); - boost::signals2::connection setTeleportFailedCallback(parcel_changed_callback_t cb); + boost::signals2::connection setTeleportFailedCallback(teleport_failed_callback_t cb); void onTeleportFinished(bool local, const LLVector3d& new_pos); void onTeleportFailed(); @@ -338,8 +337,7 @@ private: BOOL mTeleportInProgress; teleport_finished_signal_t mTeleportFinishedSignal; - parcel_changed_signal_t mTeleportFailedSignal; - parcel_changed_signal_t mAgentParcelChangedSignal; + teleport_failed_signal_t mTeleportFailedSignal; // Array of pieces of parcel edges to potentially draw // Has (parcels_per_edge + 1) * (parcels_per_edge + 1) elements so diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 460f9084d9..c10782bb0f 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -232,6 +232,7 @@ public: if( mID != regionp->getHttpResponderID() ) // region is no longer referring to this responder { LL_WARNS2("AppInit", "Capabilities") << "Received results for a stale http responder!" << LL_ENDL; + regionp->failedSeedCapability(); return ; } @@ -304,8 +305,8 @@ public: llinfos << "BaseCapabilitiesCompleteTracker " << "sim " << regionp->getName() << " sent duplicate seed caps that differs in size - most likely content. " << (S32) regionp->getRegionImpl()->mCapabilities.size() << " vs " << regionp->getRegionImpl()->mSecondCapabilitiesTracker.size() - << llendl; - + << llendl; + //todo#add cap debug versus original check? /* CapabilityMap::const_iterator iter = regionp->getRegionImpl()->mCapabilities.begin(); diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index 50f0a5f1af..e88b22b461 100755 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -87,6 +87,8 @@ LLGLSLShader gClipProgram; LLGLSLShader gDownsampleDepthProgram; LLGLSLShader gDownsampleDepthRectProgram; LLGLSLShader gAlphaMaskProgram; +LLGLSLShader gBenchmarkProgram; + //object shaders LLGLSLShader gObjectSimpleProgram; @@ -461,7 +463,7 @@ void LLViewerShaderMgr::setShaders() S32 deferred_class = 0; S32 transform_class = gGLManager.mHasTransformFeedback ? 1 : 0; - static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback"); + static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false); if (!use_transform_feedback) { transform_class = 0; @@ -681,6 +683,7 @@ void LLViewerShaderMgr::unloadShaders() gClipProgram.unload(); gDownsampleDepthProgram.unload(); gDownsampleDepthRectProgram.unload(); + gBenchmarkProgram.unload(); gAlphaMaskProgram.unload(); gUIProgram.unload(); gPathfindingProgram.unload(); @@ -3190,6 +3193,26 @@ BOOL LLViewerShaderMgr::loadShadersInterface() if (success) { + gBenchmarkProgram.mName = "Benchmark Shader"; + gBenchmarkProgram.mShaderFiles.clear(); + gBenchmarkProgram.mShaderFiles.push_back(make_pair("interface/benchmarkV.glsl", GL_VERTEX_SHADER_ARB)); + gBenchmarkProgram.mShaderFiles.push_back(make_pair("interface/benchmarkF.glsl", GL_FRAGMENT_SHADER_ARB)); + gBenchmarkProgram.mShaderLevel = mVertexShaderLevel[SHADER_INTERFACE]; + success = gBenchmarkProgram.createShader(NULL, NULL); + } + + if (success) + { + gDownsampleDepthRectProgram.mName = "DownsampleDepthRect Shader"; + gDownsampleDepthRectProgram.mShaderFiles.clear(); + gDownsampleDepthRectProgram.mShaderFiles.push_back(make_pair("interface/downsampleDepthV.glsl", GL_VERTEX_SHADER_ARB)); + gDownsampleDepthRectProgram.mShaderFiles.push_back(make_pair("interface/downsampleDepthRectF.glsl", GL_FRAGMENT_SHADER_ARB)); + gDownsampleDepthRectProgram.mShaderLevel = mVertexShaderLevel[SHADER_INTERFACE]; + success = gDownsampleDepthRectProgram.createShader(NULL, NULL); + } + + if (success) + { gDownsampleDepthRectProgram.mName = "DownsampleDepthRect Shader"; gDownsampleDepthRectProgram.mShaderFiles.clear(); gDownsampleDepthRectProgram.mShaderFiles.push_back(make_pair("interface/downsampleDepthV.glsl", GL_VERTEX_SHADER_ARB)); diff --git a/indra/newview/llviewershadermgr.h b/indra/newview/llviewershadermgr.h index 3d89f8d20a..53569ca7ab 100755 --- a/indra/newview/llviewershadermgr.h +++ b/indra/newview/llviewershadermgr.h @@ -183,6 +183,7 @@ extern LLGLSLShader gDebugProgram; extern LLGLSLShader gClipProgram; extern LLGLSLShader gDownsampleDepthProgram; extern LLGLSLShader gDownsampleDepthRectProgram; +extern LLGLSLShader gBenchmarkProgram; //output tex0[tc0] + tex1[tc1] extern LLGLSLShader gTwoTextureAddProgram; diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp index 8036a4e258..e51f7b2c71 100755 --- a/indra/newview/llviewertexteditor.cpp +++ b/indra/newview/llviewertexteditor.cpp @@ -689,6 +689,11 @@ void LLViewerTextEditor::makePristine() LLTextEditor::makePristine(); } +void LLViewerTextEditor::handleVisibilityChange( BOOL new_visibility ) +{ + LLUICtrl::handleVisibilityChange(new_visibility); +} + BOOL LLViewerTextEditor::handleMouseDown(S32 x, S32 y, MASK mask) { BOOL handled = FALSE; diff --git a/indra/newview/llviewertexteditor.h b/indra/newview/llviewertexteditor.h index fb428d0dc1..33b78a5964 100755 --- a/indra/newview/llviewertexteditor.h +++ b/indra/newview/llviewertexteditor.h @@ -46,6 +46,8 @@ public: virtual ~LLViewerTextEditor(); virtual void makePristine(); + + /*virtual*/ void handleVisibilityChange( BOOL new_visibility ); // mousehandler overrides virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 84f66c359f..3da6d33d72 100755 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -422,7 +422,9 @@ void LLViewerTextureManager::cleanup() LLViewerFetchedTexture::sDefaultImagep = NULL; LLViewerFetchedTexture::sSmokeImagep = NULL; LLViewerFetchedTexture::sMissingAssetImagep = NULL; + LLTexUnit::sWhiteTexture = 0; LLViewerFetchedTexture::sWhiteImagep = NULL; + LLViewerFetchedTexture::sFlatNormalImagep = NULL; LLViewerMediaTexture::cleanUpClass() ; @@ -1422,7 +1424,7 @@ void LLViewerFetchedTexture::processTextureStats() { updateVirtualSize() ; - static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes"); + static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes", false); if (textures_fullres) { @@ -1747,9 +1749,9 @@ bool LLViewerFetchedTexture::setDebugFetching(S32 debug_level) bool LLViewerFetchedTexture::updateFetch() { - static LLCachedControl<bool> textures_decode_disabled(gSavedSettings,"TextureDecodeDisabled"); - static LLCachedControl<F32> sCameraMotionThreshold(gSavedSettings,"TextureCameraMotionThreshold"); - static LLCachedControl<S32> sCameraMotionBoost(gSavedSettings,"TextureCameraMotionBoost"); + static LLCachedControl<bool> textures_decode_disabled(gSavedSettings,"TextureDecodeDisabled", false); + static LLCachedControl<F32> sCameraMotionThreshold(gSavedSettings,"TextureCameraMotionThreshold", 0.2); + static LLCachedControl<S32> sCameraMotionBoost(gSavedSettings,"TextureCameraMotionBoost", 3); if(textures_decode_disabled) { return false ; @@ -2828,7 +2830,7 @@ void LLViewerLODTexture::processTextureStats() { updateVirtualSize() ; - static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes"); + static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes", false); if (textures_fullres) { diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 2efe4665fa..783d1f2202 100755 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -500,7 +500,7 @@ LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id, LLGLenum primary_format, LLHost request_from_host) { - static LLCachedControl<bool> fast_cache_fetching_enabled(gSavedSettings, "FastCacheFetchEnabled"); + static LLCachedControl<bool> fast_cache_fetching_enabled(gSavedSettings, "FastCacheFetchEnabled", true); LLPointer<LLViewerFetchedTexture> imagep ; switch(texture_type) @@ -1373,7 +1373,7 @@ void LLViewerTextureList::updateMaxResidentTexMem(S32 mem) // static void LLViewerTextureList::receiveImageHeader(LLMessageSystem *msg, void **user_data) { - static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic") ; + static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic", false) ; LLFastTimer t(FTM_PROCESS_IMAGES); @@ -1445,7 +1445,7 @@ void LLViewerTextureList::receiveImageHeader(LLMessageSystem *msg, void **user_d // static void LLViewerTextureList::receiveImagePacket(LLMessageSystem *msg, void **user_data) { - static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic") ; + static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic", false) ; LLFastTimer t(FTM_PROCESS_IMAGES); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index ff7642a773..3193a2955b 100755 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -315,7 +315,7 @@ public: void update() { - static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic") ; + static LLCachedControl<bool> log_texture_traffic(gSavedSettings,"LogTextureNetworkTraffic", false) ; std::string wind_vel_text; std::string wind_vector_text; @@ -1860,6 +1860,14 @@ void LLViewerWindow::initBase() // Constrain floaters to inside the menu and status bar regions. gFloaterView = main_view->getChild<LLFloaterView>("Floater View"); + for (S32 i = 0; i < LLToolBarEnums::TOOLBAR_COUNT; ++i) + { + LLToolBar * toolbarp = gToolBarView->getToolbar((LLToolBarEnums::EToolBarLocation)i); + if (toolbarp) + { + toolbarp->getCenterLayoutPanel()->setReshapeCallback(boost::bind(&LLFloaterView::setToolbarRect, gFloaterView, _1, _2)); + } + } gFloaterView->setFloaterSnapView(main_view->getChild<LLView>("floater_snap_region")->getHandle()); gSnapshotFloaterView = main_view->getChild<LLSnapshotFloaterView>("Snapshot Floater View"); @@ -3236,8 +3244,6 @@ void LLViewerWindow::updateUI() updateLayout(); - mLastMousePoint = mCurrentMousePoint; - // cleanup unused selections when no modal dialogs are open if (LLModalDialog::activeCount() == 0) { @@ -3475,6 +3481,9 @@ void LLViewerWindow::saveLastMouse(const LLCoordGL &point) { // Store last mouse location. // If mouse leaves window, pretend last point was on edge of window + + mLastMousePoint = mCurrentMousePoint; + if (point.mX < 0) { mCurrentMousePoint.mX = 0; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index fe035a0a7f..c47b6d2335 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -116,16 +116,16 @@ using namespace LLAvatarAppearanceDefines; //----------------------------------------------------------------------------- // Global constants //----------------------------------------------------------------------------- -const LLUUID ANIM_AGENT_BODY_NOISE = LLUUID("9aa8b0a6-0c6f-9518-c7c3-4f41f2c001ad"); //"body_noise" -const LLUUID ANIM_AGENT_BREATHE_ROT = LLUUID("4c5a103e-b830-2f1c-16bc-224aa0ad5bc8"); //"breathe_rot" -const LLUUID ANIM_AGENT_EDITING = LLUUID("2a8eba1d-a7f8-5596-d44a-b4977bf8c8bb"); //"editing" -const LLUUID ANIM_AGENT_EYE = LLUUID("5c780ea8-1cd1-c463-a128-48c023f6fbea"); //"eye" -const LLUUID ANIM_AGENT_FLY_ADJUST = LLUUID("db95561f-f1b0-9f9a-7224-b12f71af126e"); //"fly_adjust" -const LLUUID ANIM_AGENT_HAND_MOTION = LLUUID("ce986325-0ba7-6e6e-cc24-b17c4b795578"); //"hand_motion" -const LLUUID ANIM_AGENT_HEAD_ROT = LLUUID("e6e8d1dd-e643-fff7-b238-c6b4b056a68d"); //"head_rot" -const LLUUID ANIM_AGENT_PELVIS_FIX = LLUUID("0c5dd2a2-514d-8893-d44d-05beffad208b"); //"pelvis_fix" -const LLUUID ANIM_AGENT_TARGET = LLUUID("0e4896cb-fba4-926c-f355-8720189d5b55"); //"target" -const LLUUID ANIM_AGENT_WALK_ADJUST = LLUUID("829bc85b-02fc-ec41-be2e-74cc6dd7215d"); //"walk_adjust" +const LLUUID ANIM_AGENT_BODY_NOISE = LLUUID("9aa8b0a6-0c6f-9518-c7c3-4f41f2c001ad"); //"body_noise" +const LLUUID ANIM_AGENT_BREATHE_ROT = LLUUID("4c5a103e-b830-2f1c-16bc-224aa0ad5bc8"); //"breathe_rot" +const LLUUID ANIM_AGENT_EDITING = LLUUID("2a8eba1d-a7f8-5596-d44a-b4977bf8c8bb"); //"editing" +const LLUUID ANIM_AGENT_EYE = LLUUID("5c780ea8-1cd1-c463-a128-48c023f6fbea"); //"eye" +const LLUUID ANIM_AGENT_FLY_ADJUST = LLUUID("db95561f-f1b0-9f9a-7224-b12f71af126e"); //"fly_adjust" +const LLUUID ANIM_AGENT_HAND_MOTION = LLUUID("ce986325-0ba7-6e6e-cc24-b17c4b795578"); //"hand_motion" +const LLUUID ANIM_AGENT_HEAD_ROT = LLUUID("e6e8d1dd-e643-fff7-b238-c6b4b056a68d"); //"head_rot" +const LLUUID ANIM_AGENT_PELVIS_FIX = LLUUID("0c5dd2a2-514d-8893-d44d-05beffad208b"); //"pelvis_fix" +const LLUUID ANIM_AGENT_TARGET = LLUUID("0e4896cb-fba4-926c-f355-8720189d5b55"); //"target" +const LLUUID ANIM_AGENT_WALK_ADJUST = LLUUID("829bc85b-02fc-ec41-be2e-74cc6dd7215d"); //"walk_adjust" const LLUUID ANIM_AGENT_PHYSICS_MOTION = LLUUID("7360e029-3cb8-ebc4-863e-212df440d987"); //"physics_motion" @@ -253,7 +253,7 @@ struct LLAppearanceMessageContents }; struct LLVOAvatarChildJoint : public LLInitParam::ChoiceBlock<LLVOAvatarChildJoint> - { +{ Alternative<Lazy<struct LLVOAvatarBoneInfo, IS_A_BLOCK> > bone; Alternative<LLVOAvatarCollisionVolumeInfo> collision_volume; @@ -707,7 +707,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id, mVisualComplexityStale(TRUE), mLoadedCallbacksPaused(FALSE), mHasPelvisOffset( FALSE ), - mRenderUnloadedAvatar(LLCachedControl<bool>(gSavedSettings, "RenderUnloadedAvatar")), + mRenderUnloadedAvatar(LLCachedControl<bool>(gSavedSettings, "RenderUnloadedAvatar", false)), mLastRezzedStatus(-1), mIsEditingAppearance(FALSE), mUseLocalAppearance(FALSE), @@ -813,17 +813,17 @@ void LLVOAvatar::debugAvatarRezTime(std::string notification_name, std::string c //------------------------------------------------------------------------ LLVOAvatar::~LLVOAvatar() { - if (!mFullyLoaded) - { + if (!mFullyLoaded) + { debugAvatarRezTime("AvatarRezLeftCloudNotification","left after ruth seconds as cloud"); - } - else - { + } + else + { debugAvatarRezTime("AvatarRezLeftNotification","left sometime after declouding"); - } + } logPendingPhases(); - + lldebugs << "LLVOAvatar Destructor (0x" << this << ") id:" << mID << llendl; std::for_each(mAttachmentPoints.begin(), mAttachmentPoints.end(), DeletePairedPointer()); @@ -1207,7 +1207,7 @@ void LLVOAvatar::initInstance(void) registerMotion( ANIM_AGENT_TARGET, LLTargetingMotion::create ); registerMotion( ANIM_AGENT_WALK_ADJUST, LLWalkAdjustMotion::create ); } - + LLAvatarAppearance::initInstance(); // preload specific motions here @@ -1392,9 +1392,11 @@ void LLVOAvatar::getSpatialExtents(LLVector4a& newMin, LLVector4a& newMax) //----------------------------------------------------------------------------- void LLVOAvatar::renderCollisionVolumes() { + std::ostringstream ostr; for (S32 i = 0; i < mNumCollisionVolumes; i++) { mCollisionVolumes[i].renderCollision(); + ostr << mCollisionVolumes[i].getName() << ", "; } if (mNameText.notNull()) @@ -1403,6 +1405,96 @@ void LLVOAvatar::renderCollisionVolumes() mNameText->lineSegmentIntersect(unused, unused, unused, TRUE); } + + mDebugText.clear(); + addDebugText(ostr.str()); +} + +void LLVOAvatar::renderJoints() +{ + std::ostringstream ostr; + std::ostringstream nullstr; + + for (joint_map_t::iterator iter = mJointMap.begin(); iter != mJointMap.end(); ++iter) + { + LLJoint* jointp = iter->second; + if (!jointp) + { + nullstr << iter->first << " is NULL" << std::endl; + continue; + } + + ostr << jointp->getName() << ", "; + + jointp->updateWorldMatrix(); + + gGL.pushMatrix(); + gGL.multMatrix( &jointp->getXform()->getWorldMatrix().mMatrix[0][0] ); + + gGL.diffuseColor3f( 1.f, 0.f, 1.f ); + + gGL.begin(LLRender::LINES); + + LLVector3 v[] = + { + LLVector3(1,0,0), + LLVector3(-1,0,0), + LLVector3(0,1,0), + LLVector3(0,-1,0), + + LLVector3(0,0,-1), + LLVector3(0,0,1), + }; + + //sides + gGL.vertex3fv(v[0].mV); + gGL.vertex3fv(v[2].mV); + + gGL.vertex3fv(v[0].mV); + gGL.vertex3fv(v[3].mV); + + gGL.vertex3fv(v[1].mV); + gGL.vertex3fv(v[2].mV); + + gGL.vertex3fv(v[1].mV); + gGL.vertex3fv(v[3].mV); + + + //top + gGL.vertex3fv(v[0].mV); + gGL.vertex3fv(v[4].mV); + + gGL.vertex3fv(v[1].mV); + gGL.vertex3fv(v[4].mV); + + gGL.vertex3fv(v[2].mV); + gGL.vertex3fv(v[4].mV); + + gGL.vertex3fv(v[3].mV); + gGL.vertex3fv(v[4].mV); + + + //bottom + gGL.vertex3fv(v[0].mV); + gGL.vertex3fv(v[5].mV); + + gGL.vertex3fv(v[1].mV); + gGL.vertex3fv(v[5].mV); + + gGL.vertex3fv(v[2].mV); + gGL.vertex3fv(v[5].mV); + + gGL.vertex3fv(v[3].mV); + gGL.vertex3fv(v[5].mV); + + gGL.end(); + + gGL.popMatrix(); + } + + mDebugText.clear(); + addDebugText(ostr.str()); + addDebugText(nullstr.str()); } BOOL LLVOAvatar::lineSegmentIntersect(const LLVector4a& start, const LLVector4a& end, @@ -1554,7 +1646,7 @@ LLViewerObject* LLVOAvatar::lineSegmentIntersectRiggedAttachments(const LLVector return hit; } - + LLVOAvatar* LLVOAvatar::asAvatar() { return this; @@ -1889,22 +1981,22 @@ LLViewerFetchedTexture *LLVOAvatar::getBakedTextureImage(const U8 te, const LLUU } if (!result) -{ + { const std::string url = getImageURL(te,uuid); if (!url.empty()) - { + { LL_DEBUGS("Avatar") << avString() << "from URL " << url << llendl; result = LLViewerTextureManager::getFetchedTextureFromUrl( url, FTT_SERVER_BAKE, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, uuid); - } - else - { + } + else + { LL_DEBUGS("Avatar") << avString() << "from host " << uuid << llendl; LLHost host = getObjectHost(); result = LLViewerTextureManager::getFetchedTexture( uuid, FTT_HOST_BAKE, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host); + } } -} return result; } @@ -1955,7 +2047,7 @@ void LLVOAvatar::dumpAnimationState() //------------------------------------------------------------------------ // idleUpdate() //------------------------------------------------------------------------ -void LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) +void LLVOAvatar::idleUpdate(LLAgent &agent, const F64 &time) { LLFastTimer t(FTM_AVATAR_UPDATE); @@ -2010,7 +2102,7 @@ void LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) if (isSelf()) { - LLViewerObject::idleUpdate(agent, world, time); + LLViewerObject::idleUpdate(agent, time); // trigger fidget anims if (isAnyAnimationSignaled(AGENT_STAND_ANIMS, NUM_AGENT_STAND_ANIMS)) @@ -2022,7 +2114,7 @@ void LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) { // Should override the idleUpdate stuff and leave out the angular update part. LLQuaternion rotation = getRotation(); - LLViewerObject::idleUpdate(agent, world, time); + LLViewerObject::idleUpdate(agent, time); setRotation(rotation); } @@ -2707,8 +2799,8 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name) LLFontGL::getFontSansSerifSmall()); } - static LLUICachedControl<bool> show_display_names("NameTagShowDisplayNames"); - static LLUICachedControl<bool> show_usernames("NameTagShowUsernames"); + static LLUICachedControl<bool> show_display_names("NameTagShowDisplayNames", true); + static LLUICachedControl<bool> show_usernames("NameTagShowUsernames", true); if (LLAvatarName::useDisplayNames()) { @@ -2934,7 +3026,7 @@ void LLVOAvatar::idleUpdateNameTagAlpha(BOOL new_name, F32 alpha) LLColor4 LLVOAvatar::getNameTagColor(bool is_friend) { - static LLUICachedControl<bool> show_friends("NameTagShowFriends"); + static LLUICachedControl<bool> show_friends("NameTagShowFriends", false); const char* color_name; if (show_friends && is_friend) { @@ -2989,7 +3081,7 @@ bool LLVOAvatar::isVisuallyMuted() if (!isSelf()) { - static LLCachedControl<U32> render_auto_mute_functions(gSavedSettings, "RenderAutoMuteFunctions"); + static LLCachedControl<U32> render_auto_mute_functions(gSavedSettings, "RenderAutoMuteFunctions", 0); if (render_auto_mute_functions) // Hacky debug switch for developing feature { // Priority order (highest priority first) @@ -3001,9 +3093,9 @@ bool LLVOAvatar::isVisuallyMuted() // - AND aren't over the thresholds // * otherwise visually mute all other avatars - static LLCachedControl<U32> max_attachment_bytes(gSavedSettings, "RenderAutoMuteByteLimit"); - static LLCachedControl<F32> max_attachment_area(gSavedSettings, "RenderAutoMuteSurfaceAreaLimit"); - static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAutoMuteRenderWeightLimit"); + static LLCachedControl<U32> max_attachment_bytes(gSavedSettings, "RenderAutoMuteByteLimit", 0); + static LLCachedControl<F32> max_attachment_area(gSavedSettings, "RenderAutoMuteSurfaceAreaLimit", 0.0); + static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAutoMuteRenderWeightLimit", 0); if (mVisuallyMuteSetting == ALWAYS_VISUAL_MUTE) { // Always want to see this AV as an impostor @@ -3077,9 +3169,6 @@ void LLVOAvatar::forceUpdateVisualMuteSettings() //------------------------------------------------------------------------ BOOL LLVOAvatar::updateCharacter(LLAgent &agent) { - // clear debug text - mDebugText.clear(); - if (gSavedSettings.getBOOL("DebugAvatarAppearanceMessage")) { S32 central_bake_version = -1; @@ -3390,8 +3479,8 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent) LLVector3 pelvisDir( mRoot->getWorldMatrix().getFwdRow4().mV ); - static LLCachedControl<F32> s_pelvis_rot_threshold_slow(gSavedSettings, "AvatarRotateThresholdSlow"); - static LLCachedControl<F32> s_pelvis_rot_threshold_fast(gSavedSettings, "AvatarRotateThresholdFast"); + static LLCachedControl<F32> s_pelvis_rot_threshold_slow(gSavedSettings, "AvatarRotateThresholdSlow", 60.0); + static LLCachedControl<F32> s_pelvis_rot_threshold_fast(gSavedSettings, "AvatarRotateThresholdFast", 2.0); F32 pelvis_rot_threshold = clamp_rescale(speed, 0.1f, 1.0f, s_pelvis_rot_threshold_slow, s_pelvis_rot_threshold_fast); @@ -3588,6 +3677,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent) { setDebugText(mDebugText); } + mDebugText.clear(); //mesh vertices need to be reskinned mNeedsSkin = TRUE; @@ -4072,7 +4162,7 @@ U32 LLVOAvatar::renderTransparent(BOOL first_pass) { LLViewerJoint* hair_mesh = getViewerJoint(MESH_ID_HAIR); if (hair_mesh) - { + { num_indices += hair_mesh->render(mAdjustedPixelArea, first_pass, mIsDummy); } first_pass = FALSE; @@ -4082,7 +4172,7 @@ U32 LLVOAvatar::renderTransparent(BOOL first_pass) gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); } } - + return num_indices; } @@ -5147,7 +5237,7 @@ void LLVOAvatar::getGround(const LLVector3 &in_pos_agent, LLVector3 &out_pos_age //----------------------------------------------------------------------------- F32 LLVOAvatar::getTimeDilation() { - return mTimeDilation; + return mRegionp ? mRegionp->getTimeDilation() : 1.f; } @@ -5199,9 +5289,9 @@ BOOL LLVOAvatar::loadSkeletonNode () { if (!LLAvatarAppearance::loadSkeletonNode()) { - return FALSE; - } - + return FALSE; + } + // ATTACHMENTS { LLAvatarXmlInfo::attachment_info_list_t::iterator iter; @@ -5521,7 +5611,15 @@ void LLVOAvatar::addChild(LLViewerObject *childp) LLViewerObject::addChild(childp); if (childp->mDrawable) { - attachObject(childp); + if (!attachObject(childp)) + { + llwarns << "addChild() failed for " + << childp->getID() + << " item " << childp->getAttachmentItemID() + << llendl; + // MAINT-3312 backout + // mPendingAttachment.push_back(childp); + } } else { @@ -5554,8 +5652,27 @@ LLViewerJointAttachment* LLVOAvatar::getTargetAttachmentPoint(LLViewerObject* vi if (!attachment) { - llwarns << "Object attachment point invalid: " << attachmentID << llendl; + llwarns << "Object attachment point invalid: " << attachmentID + << " trying to use 1 (chest)" + << llendl; + attachment = get_if_there(mAttachmentPoints, 1, (LLViewerJointAttachment*)NULL); // Arbitrary using 1 (chest) + if (attachment) + { + llwarns << "Object attachment point invalid: " << attachmentID + << " on object " << viewer_object->getID() + << " attachment item " << viewer_object->getAttachmentItemID() + << " falling back to 1 (chest)" + << llendl; + } + else + { + llwarns << "Object attachment point invalid: " << attachmentID + << " on object " << viewer_object->getID() + << " attachment item " << viewer_object->getAttachmentItemID() + << "Unable to use fallback attachment point 1 (chest)" + << llendl; + } } return attachment; @@ -5626,13 +5743,22 @@ void LLVOAvatar::lazyAttach() for (U32 i = 0; i < mPendingAttachment.size(); i++) { - if (mPendingAttachment[i]->mDrawable) + LLPointer<LLViewerObject> cur_attachment = mPendingAttachment[i]; + if (cur_attachment->mDrawable) { - attachObject(mPendingAttachment[i]); + if (!attachObject(cur_attachment)) + { // Drop it + llwarns << "attachObject() failed for " + << cur_attachment->getID() + << " item " << cur_attachment->getAttachmentItemID() + << llendl; + // MAINT-3312 backout + //still_pending.push_back(cur_attachment); + } } else { - still_pending.push_back(mPendingAttachment[i]); + still_pending.push_back(cur_attachment); } } @@ -5708,7 +5834,8 @@ void LLVOAvatar::cleanupAttachedMesh( LLViewerObject* pVO ) } } } - } +} + //----------------------------------------------------------------------------- // detachObject() //----------------------------------------------------------------------------- @@ -5921,24 +6048,46 @@ BOOL LLVOAvatar::isWearingWearableType(LLWearableType::EType type) const { const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = tex_iter->second; if (texture_dict->mWearableType == type) - { + { // Thus, you must check to see if the corresponding baked texture is defined. // NOTE: this is a poor substitute if you actually want to know about individual pieces of clothing // this works for detecting a skirt (most important), but is ineffective at any piece of clothing that // gets baked into a texture that always exists (upper or lower). if (texture_dict->mIsUsedByBakedTexture) - { + { const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex; return isTextureDefined(LLAvatarAppearanceDictionary::getInstance()->getBakedTexture(baked_index)->mTextureIndex); - } + } return FALSE; - } + } } return FALSE; } +LLViewerObject * LLVOAvatar::findAttachmentByID( const LLUUID & target_id ) const +{ + for(attachment_map_t::const_iterator attachment_points_iter = mAttachmentPoints.begin(); + attachment_points_iter != gAgentAvatarp->mAttachmentPoints.end(); + ++attachment_points_iter) + { + LLViewerJointAttachment* attachment = attachment_points_iter->second; + for (LLViewerJointAttachment::attachedobjs_vec_t::iterator attachment_iter = attachment->mAttachedObjects.begin(); + attachment_iter != attachment->mAttachedObjects.end(); + ++attachment_iter) + { + LLViewerObject *attached_object = (*attachment_iter); + if (attached_object && + attached_object->getID() == target_id) + { + return attached_object; + } + } + } + + return NULL; +} // virtual @@ -5975,7 +6124,7 @@ void LLVOAvatar::onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL { LLAvatarJointMesh* mesh = (*iter); if (mesh) - { + { mesh->setColor( color ); } } @@ -6043,9 +6192,9 @@ void LLVOAvatar::updateRezzedStatusTimers() { // load level has decreased. start phase timers for higher load levels. for (S32 i = rez_status+1; i <= mLastRezzedStatus; i++) - { + { startPhase("load_" + LLVOAvatar::rezStatusToString(i)); - } + } } else if (rez_status > mLastRezzedStatus) { @@ -6054,16 +6203,16 @@ void LLVOAvatar::updateRezzedStatusTimers() { stopPhase("load_" + LLVOAvatar::rezStatusToString(i)); stopPhase("first_load_" + LLVOAvatar::rezStatusToString(i), false); - } + } if (rez_status == 3) - { + { // "fully loaded", mark any pending appearance change complete. selfStopPhase("update_appearance_from_cof"); selfStopPhase("wear_inventory_category", false); selfStopPhase("process_initial_wearables_update", false); } } - + mLastRezzedStatus = rez_status; } } @@ -6090,7 +6239,7 @@ void LLVOAvatar::startPhase(const std::string& phase_name) } void LLVOAvatar::stopPhase(const std::string& phase_name, bool err_check) - { +{ F32 elapsed; bool completed; if (getPhases().getPhaseValues(phase_name, elapsed, completed)) @@ -6122,7 +6271,7 @@ void LLVOAvatar::stopPhase(const std::string& phase_name, bool err_check) void LLVOAvatar::logPendingPhases() { if (!isAgentAvatarValid()) - { + { return; } @@ -6138,14 +6287,14 @@ void LLVOAvatar::logPendingPhases() if (!completed) { logMetricsTimerRecord(phase_name, elapsed, completed); - } + } } } - } +} //static void LLVOAvatar::logPendingPhasesAllAvatars() - { +{ for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin(); iter != LLCharacter::sInstances.end(); ++iter) { @@ -6156,14 +6305,14 @@ void LLVOAvatar::logPendingPhasesAllAvatars() } inst->logPendingPhases(); } - } +} void LLVOAvatar::logMetricsTimerRecord(const std::string& phase_name, F32 elapsed, bool completed) - { +{ if (!isAgentAvatarValid()) - { + { return; - } + } LLSD record; record["timer_name"] = phase_name; @@ -6172,15 +6321,15 @@ void LLVOAvatar::logMetricsTimerRecord(const std::string& phase_name, F32 elapse record["completed"] = completed; U32 grid_x(0), grid_y(0); if (getRegion()) - { + { record["central_bake_version"] = LLSD::Integer(getRegion()->getCentralBakeVersion()); grid_from_region_handle(getRegion()->getHandle(), &grid_x, &grid_y); - } + } record["grid_x"] = LLSD::Integer(grid_x); record["grid_y"] = LLSD::Integer(grid_y); record["is_using_server_bakes"] = ((bool) isUsingServerBakes()); record["is_self"] = isSelf(); - + if (isAgentAvatarValid()) { gAgentAvatarp->addMetricsTimerRecord(record); @@ -6388,28 +6537,28 @@ void LLVOAvatar::updateMeshTextures() use_lkg_baked_layer[i], last_id_string.c_str()); } - + for (U32 i=0; i < mBakedTextureDatas.size(); i++) { debugColorizeSubMeshes(i, LLColor4::white); LLViewerTexLayerSet* layerset = getTexLayerSet(i); if (use_lkg_baked_layer[i] && !isUsingLocalAppearance() ) - { + { LLViewerFetchedTexture* baked_img = LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[i].mLastTextureID); mBakedTextureDatas[i].mIsUsed = TRUE; debugColorizeSubMeshes(i,LLColor4::red); - + avatar_joint_mesh_list_t::iterator iter = mBakedTextureDatas[i].mJointMeshes.begin(); avatar_joint_mesh_list_t::iterator end = mBakedTextureDatas[i].mJointMeshes.end(); for (; iter != end; ++iter) - { + { LLAvatarJointMesh* mesh = (*iter); if (mesh) - { + { mesh->setTexture( baked_img ); - } + } } } else if (!isUsingLocalAppearance() && is_layer_baked[i]) @@ -6453,7 +6602,7 @@ void LLVOAvatar::updateMeshTextures() if (mesh) { mesh->setLayerSet( layerset ); - } + } } } else @@ -6475,7 +6624,7 @@ void LLVOAvatar::updateMeshTextures() { LLAvatarJointMesh* mesh = (*iter); if (mesh) - { + { mesh->setColor( color ); mesh->setTexture( hair_img ); } @@ -6503,7 +6652,15 @@ void LLVOAvatar::updateMeshTextures() } } } - removeMissingBakedTextures(); + + // removeMissingBakedTextures() will call back into this rountine if something is removed, and can blow up the stack + static bool call_remove_missing = true; + if (call_remove_missing) + { + call_remove_missing = false; + removeMissingBakedTextures(); // May call back into this function if anything is removed + call_remove_missing = true; + } } // virtual @@ -6563,13 +6720,13 @@ void LLVOAvatar::applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_com for (morph_list_t::const_iterator iter = mBakedTextureDatas[index].mMaskedMorphs.begin(); iter != mBakedTextureDatas[index].mMaskedMorphs.end(); ++iter) -{ + { const LLMaskedMorph* maskedMorph = (*iter); LLPolyMorphTarget* morph_target = dynamic_cast<LLPolyMorphTarget*>(maskedMorph->mMorphTarget); if (morph_target) - { + { morph_target->applyMask(tex_data, width, height, num_components, maskedMorph->mInvert); -} + } } } @@ -6852,8 +7009,8 @@ void dump_visual_param(apr_file_t* file, LLVisualParam* viewer_param, F32 value) LLWearableType::getTypeName(LLWearableType::EType(wtype)).c_str() // param_location_name(vparam->getParamLocation()).c_str() ); - } - +} + void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix, const LLAppearanceMessageContents& contents) @@ -6867,9 +7024,9 @@ void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix, outfile.open(fullpath, LL_APR_WB ); apr_file_t* file = outfile.getFileHandle(); if (!file) - { - return; - } + { + return; + } else { LL_DEBUGS("Avatar") << "dumping appearance message to " << fullpath << llendl; @@ -6903,7 +7060,7 @@ void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix, apr_file_printf( file, "\t\t<texture te=\"%i\" uuid=\"%s\"/>\n", i, uuid_str.c_str()); } apr_file_printf(file, "</textures>\n"); - } +} void LLVOAvatar::parseAppearanceMessage(LLMessageSystem* mesgsys, LLAppearanceMessageContents& contents) { @@ -6920,7 +7077,7 @@ void LLVOAvatar::parseAppearanceMessage(LLMessageSystem* mesgsys, LLAppearanceMe // For future use: //mesgsys->getU32Fast(_PREHASH_AppearanceData, _PREHASH_Flags, appearance_flags, 0); } - + // Parse visual params, if any. S32 num_blocks = mesgsys->getNumberOfBlocksFast(_PREHASH_VisualParam); bool drop_visual_params_debug = gSavedSettings.getBOOL("BlockSomeAvatarAppearanceVisualParams") && (ll_rand(2) == 0); // pretend that ~12% of AvatarAppearance messages arrived without a VisualParam block, for testing @@ -7148,19 +7305,19 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys ) LLVisualParam* param = contents.mParams[i]; F32 newWeight = contents.mParamWeights[i]; - if (is_first_appearance_message || (param->getWeight() != newWeight)) + if (is_first_appearance_message || (param->getWeight() != newWeight)) + { + params_changed = TRUE; + if(is_first_appearance_message) { - params_changed = TRUE; - if(is_first_appearance_message) - { - param->setWeight(newWeight, FALSE); - } - else - { - interp_params = TRUE; - param->setAnimationTarget(newWeight, FALSE); - } + param->setWeight(newWeight, FALSE); + } + else + { + interp_params = TRUE; + param->setAnimationTarget(newWeight, FALSE); } + } } const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE); // don't worry about VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT if (num_params != expected_tweakable_count) @@ -7416,12 +7573,12 @@ void LLVOAvatar::useBakedTexture( const LLUUID& id ) avatar_joint_mesh_list_t::iterator iter = mBakedTextureDatas[i].mJointMeshes.begin(); avatar_joint_mesh_list_t::iterator end = mBakedTextureDatas[i].mJointMeshes.end(); for (; iter != end; ++iter) - { + { LLAvatarJointMesh* mesh = (*iter); if (mesh) - { + { mesh->setTexture( image_baked ); - } + } } } @@ -7445,7 +7602,7 @@ void LLVOAvatar::useBakedTexture( const LLUUID& id ) { LLAvatarJointMesh* mesh = (*iter); if (mesh) - { + { mesh->setColor( LLColor4::white ); } } @@ -7464,7 +7621,7 @@ std::string get_sequential_numbered_file_name(const std::string& prefix, file_num_type::iterator it = file_nums.find(prefix); S32 num = 0; if (it != file_nums.end()) -{ + { num = it->second; } file_nums[prefix] = num+1; @@ -7481,7 +7638,7 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara outprefix = getFullname() + (isSelf()?"_s":"_o"); } if (outprefix.empty()) -{ + { outprefix = getFullname() + (isSelf()?"_s":"_o"); } if (outprefix.empty()) @@ -7510,36 +7667,36 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara if (group_by_wearables) { for (S32 type = LLWearableType::WT_SHAPE; type < LLWearableType::WT_COUNT; type++) - { - const std::string& wearable_name = LLWearableType::getTypeName((LLWearableType::EType)type); - apr_file_printf( file, "\n\t\t<!-- wearable: %s -->\n", wearable_name.c_str() ); + { + const std::string& wearable_name = LLWearableType::getTypeName((LLWearableType::EType)type); + apr_file_printf( file, "\n\t\t<!-- wearable: %s -->\n", wearable_name.c_str() ); for (LLVisualParam* param = getFirstVisualParam(); param; param = getNextVisualParam()) - { - LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param; - if( (viewer_param->getWearableType() == type) && - (viewer_param->isTweakable() ) ) { + LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param; + if( (viewer_param->getWearableType() == type) && + (viewer_param->isTweakable() ) ) + { dump_visual_param(file, viewer_param, viewer_param->getWeight()); + } } - } - for (U8 te = 0; te < TEX_NUM_INDICES; te++) - { - if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)te) == type) + for (U8 te = 0; te < TEX_NUM_INDICES; te++) { - // MULTIPLE_WEARABLES: extend to multiple wearables? - LLViewerTexture* te_image = getImage((ETextureIndex)te, 0); - if( te_image ) + if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)te) == type) { - std::string uuid_str; - te_image->getID().toString( uuid_str ); - apr_file_printf( file, "\t\t<texture te=\"%i\" uuid=\"%s\"/>\n", te, uuid_str.c_str()); + // MULTIPLE_WEARABLES: extend to multiple wearables? + LLViewerTexture* te_image = getImage((ETextureIndex)te, 0); + if( te_image ) + { + std::string uuid_str; + te_image->getID().toString( uuid_str ); + apr_file_printf( file, "\t\t<texture te=\"%i\" uuid=\"%s\"/>\n", te, uuid_str.c_str()); + } } } } } - } else { // Just dump all params sequentially. @@ -7685,12 +7842,12 @@ void LLVOAvatar::startAppearanceAnimation() // virtual void LLVOAvatar::bodySizeChanged() -{ +{ if (isSelf() && !LLAppearanceMgr::instance().isInUpdateAppearanceFromCOF()) { // notify simulator of change in size // but not if we are in the middle of updating appearance gAgent.sendAgentSetAppearance(); -} + } } BOOL LLVOAvatar::isUsingServerBakes() const @@ -7702,25 +7859,25 @@ BOOL LLVOAvatar::isUsingServerBakes() const F32 wt = appearance_version_param->getWeight(); F32 expect_wt = mUseServerBakes ? 1.0 : 0.0; if (!is_approx_equal(wt,expect_wt)) -{ + { llwarns << "wt " << wt << " differs from expected " << expect_wt << llendl; } #endif return mUseServerBakes; - } - +} + void LLVOAvatar::setIsUsingServerBakes(BOOL newval) - { +{ mUseServerBakes = newval; LLVisualParam* appearance_version_param = getVisualParam(11000); llassert(appearance_version_param); appearance_version_param->setWeight(newval ? 1.0 : 0.0, false); - } +} // virtual void LLVOAvatar::removeMissingBakedTextures() - { +{ } //virtual @@ -7877,7 +8034,7 @@ void LLVOAvatar::getImpostorValues(LLVector4a* extents, LLVector3& angle, F32& d void LLVOAvatar::idleUpdateRenderCost() { - static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAutoMuteRenderWeightLimit"); + static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAutoMuteRenderWeightLimit", 0); static const U32 ARC_LIMIT = 20000; if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_ATTACHMENT_BYTES)) diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index 931e65b3ea..cd8a5ecdf2 100755 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -129,28 +129,28 @@ public: /*virtual*/ void updateGL(); /*virtual*/ LLVOAvatar* asAvatar(); virtual U32 processUpdateMessage(LLMessageSystem *mesgsys, - void **user_data, - U32 block_num, - const EObjectUpdateType update_type, - LLDataPacker *dp); - virtual void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time); + void **user_data, + U32 block_num, + const EObjectUpdateType update_type, + LLDataPacker *dp); + virtual void idleUpdate(LLAgent &agent, const F64 &time); /*virtual*/ BOOL updateLOD(); BOOL updateJointLODs(); void updateLODRiggedAttachments( void ); /*virtual*/ BOOL isActive() const; // Whether this object needs to do an idleUpdate. S32 totalTextureMemForUUIDS(std::set<LLUUID>& ids); - bool allTexturesCompletelyDownloaded(std::set<LLUUID>& ids) const; - bool allLocalTexturesCompletelyDownloaded() const; - bool allBakedTexturesCompletelyDownloaded() const; - void bakedTextureOriginCounts(S32 &sb_count, S32 &host_count, - S32 &both_count, S32 &neither_count); - std::string bakedTextureOriginInfo(); - void collectLocalTextureUUIDs(std::set<LLUUID>& ids) const; - void collectBakedTextureUUIDs(std::set<LLUUID>& ids) const; - void collectTextureUUIDs(std::set<LLUUID>& ids); - void releaseOldTextures(); + bool allTexturesCompletelyDownloaded(std::set<LLUUID>& ids) const; + bool allLocalTexturesCompletelyDownloaded() const; + bool allBakedTexturesCompletelyDownloaded() const; + void bakedTextureOriginCounts(S32 &sb_count, S32 &host_count, + S32 &both_count, S32 &neither_count); + std::string bakedTextureOriginInfo(); + void collectLocalTextureUUIDs(std::set<LLUUID>& ids) const; + void collectBakedTextureUUIDs(std::set<LLUUID>& ids) const; + void collectTextureUUIDs(std::set<LLUUID>& ids); + void releaseOldTextures(); /*virtual*/ void updateTextures(); - LLViewerFetchedTexture* getBakedTextureImage(const U8 te, const LLUUID& uuid); + LLViewerFetchedTexture* getBakedTextureImage(const U8 te, const LLUUID& uuid); /*virtual*/ S32 setTETexture(const U8 te, const LLUUID& uuid); // If setting a baked texture, need to request it from a non-local sim. /*virtual*/ void onShift(const LLVector4a& shift_vector); /*virtual*/ U32 getPartitionType() const; @@ -406,6 +406,7 @@ public: F32 getLastSkinTime() { return mLastSkinTime; } U32 renderTransparent(BOOL first_pass); void renderCollisionVolumes(); + void renderJoints(); static void deleteCachedImages(bool clearAll=true); static void destroyGL(); static void restoreGL(); @@ -731,6 +732,8 @@ public: void cleanupAttachedMesh( LLViewerObject* pVO ); static LLVOAvatar* findAvatarFromAttachment(LLViewerObject* obj); /*virtual*/ BOOL isWearingWearableType(LLWearableType::EType type ) const; + LLViewerObject * findAttachmentByID( const LLUUID & target_id ) const; + protected: LLViewerJointAttachment* getTargetAttachmentPoint(LLViewerObject* viewer_object); void lazyAttach(); diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index 9ce99444d9..082a85e217 100755 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -625,11 +625,11 @@ BOOL LLVOAvatarSelf::isValid() const } // virtual -void LLVOAvatarSelf::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) +void LLVOAvatarSelf::idleUpdate(LLAgent &agent, const F64 &time) { if (isValid()) { - LLVOAvatar::idleUpdate(agent, world, time); + LLVOAvatar::idleUpdate(agent, time); idleUpdateTractorBeam(); } } @@ -847,7 +847,7 @@ void LLVOAvatarSelf::removeMissingBakedTextures() if (!tex || tex->isMissingAsset()) { LLViewerTexture *imagep = LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT_AVATAR); - if (imagep) + if (imagep && imagep != tex) { setTEImage(te, imagep); removed = TRUE; @@ -863,13 +863,13 @@ void LLVOAvatarSelf::removeMissingBakedTextures() layerset->setUpdatesEnabled(TRUE); invalidateComposite(layerset, FALSE); } - updateMeshTextures(); + updateMeshTextures(); // may call back into this function if (getRegion() && !getRegion()->getCentralBakeVersion()) { - requestLayerSetUploads(); + requestLayerSetUploads(); + } } } -} //virtual void LLVOAvatarSelf::updateRegion(LLViewerRegion *regionp) @@ -1310,7 +1310,7 @@ void LLVOAvatarSelf::localTextureLoaded(BOOL success, LLViewerFetchedTexture *sr discard_level < local_tex_obj->getDiscard()) { local_tex_obj->setDiscard(discard_level); - requestLayerSetUpdate(index); + requestLayerSetUpdate(index); if (isEditingAppearance()) { LLVisualParamHint::requestHintUpdates(); @@ -1799,11 +1799,11 @@ void LLVOAvatarSelf::setLocalTexture(ETextureIndex type, LLViewerTexture* src_te { requestLayerSetUpdate(type); if (isEditingAppearance()) - { - LLVisualParamHint::requestHintUpdates(); + { + LLVisualParamHint::requestHintUpdates(); + } } } - } else { tex->setLoadedCallback(onLocalTextureLoaded, desired_discard, TRUE, FALSE, new LLAvatarTexData(getID(), type), NULL); @@ -2580,25 +2580,25 @@ void LLVOAvatarSelf::addLocalTextureStats( ETextureIndex type, LLViewerFetchedTe //if (!covered_by_baked) { if (imagep->getID() != IMG_DEFAULT_AVATAR) - { + { imagep->setNoDelete(); if (imagep->getDiscardLevel() != 0) - { - F32 desired_pixels; - desired_pixels = llmin(mPixelArea, (F32)getTexImageArea()); - - imagep->setBoostLevel(getAvatarBoostLevel()); - imagep->setAdditionalDecodePriority(SELF_ADDITIONAL_PRI) ; - imagep->resetTextureStats(); - imagep->setMaxVirtualSizeResetInterval(MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL); - imagep->addTextureStats( desired_pixels / texel_area_ratio ); - imagep->forceUpdateBindStats() ; - if (imagep->getDiscardLevel() < 0) { - mHasGrey = TRUE; // for statistics gathering + F32 desired_pixels; + desired_pixels = llmin(mPixelArea, (F32)getTexImageArea()); + + imagep->setBoostLevel(getAvatarBoostLevel()); + imagep->setAdditionalDecodePriority(SELF_ADDITIONAL_PRI) ; + imagep->resetTextureStats(); + imagep->setMaxVirtualSizeResetInterval(MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL); + imagep->addTextureStats( desired_pixels / texel_area_ratio ); + imagep->forceUpdateBindStats() ; + if (imagep->getDiscardLevel() < 0) + { + mHasGrey = TRUE; // for statistics gathering + } } } - } else { // texture asset is missing @@ -2921,17 +2921,17 @@ void LLVOAvatarSelf::requestLayerSetUpdate(ETextureIndex index ) LLViewerTexLayerSet* LLVOAvatarSelf::getLayerSet(ETextureIndex index) const { - /* switch(index) - case TEX_HEAD_BAKED: - case TEX_HEAD_BODYPAINT: - return mHeadLayerSet; */ + /* switch(index) + case TEX_HEAD_BAKED: + case TEX_HEAD_BODYPAINT: + return mHeadLayerSet; */ const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture(index); - if (texture_dict->mIsUsedByBakedTexture) - { - const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex; + if (texture_dict->mIsUsedByBakedTexture) + { + const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex; return getLayerSet(baked_index); - } - return NULL; + } + return NULL; } LLViewerTexLayerSet* LLVOAvatarSelf::getLayerSet(EBakedTextureIndex baked_index) const @@ -2959,7 +2959,7 @@ void LLVOAvatarSelf::onCustomizeStart(bool disable_camera_switch) gAgentAvatarp->mUseLocalAppearance = true; if (gSavedSettings.getBOOL("AppearanceCameraMovement") && !disable_camera_switch) -{ + { gAgentCamera.changeCameraToCustomizeAvatar(); } diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h index 3b7b6bac64..521c86e1c3 100755 --- a/indra/newview/llvoavatarself.h +++ b/indra/newview/llvoavatarself.h @@ -84,7 +84,7 @@ protected: //-------------------------------------------------------------------- public: /*virtual*/ void updateRegion(LLViewerRegion *regionp); - /*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time); + /*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time); //-------------------------------------------------------------------- // LLCharacter interface and related diff --git a/indra/newview/llvograss.cpp b/indra/newview/llvograss.cpp index 591d5cae0b..485b0dc8ad 100755 --- a/indra/newview/llvograss.cpp +++ b/indra/newview/llvograss.cpp @@ -277,7 +277,7 @@ BOOL LLVOGrass::isActive() const return TRUE; } -void LLVOGrass::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) +void LLVOGrass::idleUpdate(LLAgent &agent, const F64 &time) { if (mDead || !(gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_GRASS))) { diff --git a/indra/newview/llvograss.h b/indra/newview/llvograss.h index e54de85412..ff4fa6b00d 100755 --- a/indra/newview/llvograss.h +++ b/indra/newview/llvograss.h @@ -74,7 +74,7 @@ public: void plantBlades(); /*virtual*/ BOOL isActive() const; // Whether this object needs to do an idleUpdate. - /*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time); + /*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time); /*virtual*/ BOOL lineSegmentIntersect(const LLVector4a& start, const LLVector4a& end, S32 face = -1, // which face to check, -1 = ALL_SIDES diff --git a/indra/newview/llvoground.cpp b/indra/newview/llvoground.cpp index 97b7418b40..c1273e684c 100755 --- a/indra/newview/llvoground.cpp +++ b/indra/newview/llvoground.cpp @@ -49,7 +49,7 @@ LLVOGround::~LLVOGround() { } -void LLVOGround::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) +void LLVOGround::idleUpdate(LLAgent &agent, const F64 &time) { } diff --git a/indra/newview/llvoground.h b/indra/newview/llvoground.h index 290579b4da..a53f309e46 100755 --- a/indra/newview/llvoground.h +++ b/indra/newview/llvoground.h @@ -41,7 +41,7 @@ protected: public: LLVOGround(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); - /*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time); + /*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time); // Graphical stuff for objects - maybe broken out into render class // later? diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index af55c8f741..815965fb0a 100755 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -113,8 +113,8 @@ LLVoiceClient::LLVoiceClient() : mVoiceModule(NULL), m_servicePump(NULL), - mVoiceEffectEnabled(LLCachedControl<bool>(gSavedSettings, "VoiceMorphingEnabled")), - mVoiceEffectDefault(LLCachedControl<std::string>(gSavedPerAccountSettings, "VoiceEffectDefault")), + mVoiceEffectEnabled(LLCachedControl<bool>(gSavedSettings, "VoiceMorphingEnabled", true)), + mVoiceEffectDefault(LLCachedControl<std::string>(gSavedPerAccountSettings, "VoiceEffectDefault", "00000000-0000-0000-0000-000000000000")), mPTTDirty(true), mPTT(true), mUsePTT(true), diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index ff73aa5354..050d9dd785 100755 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -261,6 +261,7 @@ LLVivoxVoiceClient::LLVivoxVoiceClient() : mSessionTerminateRequested(false), mRelogRequested(false), mConnected(false), + mTerminateDaemon(false), mPump(NULL), mSpatialJoiningNum(0), @@ -695,7 +696,7 @@ void LLVivoxVoiceClient::stateMachine() setVoiceEnabled(false); } - if(mVoiceEnabled || !mIsInitialized) + if(mVoiceEnabled || (!mIsInitialized &&!mTerminateDaemon) ) { updatePosition(); } @@ -708,11 +709,12 @@ void LLVivoxVoiceClient::stateMachine() if((getState() != stateDisabled) && (getState() != stateDisableCleanup)) { // User turned off voice support. Send the cleanup messages, close the socket, and reset. - if(!mConnected) + if(!mConnected || mTerminateDaemon) { // if voice was turned off after the daemon was launched but before we could connect to it, we may need to issue a kill. LL_INFOS("Voice") << "Disabling voice before connection to daemon, terminating." << LL_ENDL; killGateway(); + mTerminateDaemon = false; } logout(); @@ -753,7 +755,7 @@ void LLVivoxVoiceClient::stateMachine() // Voice is locked out, we must not launch the vivox daemon. setState(stateJail); } - else if(!isGatewayRunning()) + else if(!isGatewayRunning() && gSavedSettings.getBOOL("EnableVoiceChat")) { if (true) // production build, not test { @@ -786,7 +788,6 @@ void LLVivoxVoiceClient::stateMachine() { loglevel = "0"; // turn logging off completely } - loglevel = "0"; // turn logging off completely params.args.add("-ll"); params.args.add(loglevel); params.cwd = gDirUtilp->getAppRODataDir(); @@ -1137,6 +1138,7 @@ void LLVivoxVoiceClient::stateMachine() std::stringstream errs; errs << mVoiceAccountServerURI << "\n:UDP: 3478, 3479, 5060, 5062, 12000-17000"; args["HOSTID"] = errs.str(); + mTerminateDaemon = true; if (LLGridManager::getInstance()->isSystemGrid()) { LLNotificationsUtil::add("NoVoiceConnect", args); @@ -2619,6 +2621,7 @@ void LLVivoxVoiceClient::connectorCreateResponse(int statusCode, std::string &st std::stringstream errs; errs << mVoiceAccountServerURI << "\n:UDP: 3478, 3479, 5060, 5062, 12000-17000"; args["HOSTID"] = errs.str(); + mTerminateDaemon = true; if (LLGridManager::getInstance()->isSystemGrid()) { LLNotificationsUtil::add("NoVoiceConnect", args); @@ -2634,6 +2637,7 @@ void LLVivoxVoiceClient::connectorCreateResponse(int statusCode, std::string &st LL_INFOS("Voice") << "Connector.Create succeeded, Vivox SDK version is " << versionID << LL_ENDL; mVoiceVersion.serverVersion = versionID; mConnectorHandle = connectorHandle; + mTerminateDaemon = false; if(getState() == stateConnectorStarting) { setState(stateConnectorStarted); diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index e2d1585c15..c325d72ba6 100755 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -659,6 +659,8 @@ private: LLSocket::ptr_t mSocket; bool mConnected; + // We should kill the voice daemon in case of connection alert + bool mTerminateDaemon; LLPumpIO *mPump; friend class LLVivoxProtocolParser; diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp index 9f4f11b317..54e27ff4c6 100755 --- a/indra/newview/llvopartgroup.cpp +++ b/indra/newview/llvopartgroup.cpp @@ -200,7 +200,7 @@ void LLVOPartGroup::updateSpatialExtents(LLVector4a& newMin, LLVector4a& newMax) mDrawable->setPositionGroup(p); } -void LLVOPartGroup::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) +void LLVOPartGroup::idleUpdate(LLAgent &agent, const F64 &time) { } diff --git a/indra/newview/llvopartgroup.h b/indra/newview/llvopartgroup.h index 724e915d02..a94a2291ed 100755 --- a/indra/newview/llvopartgroup.h +++ b/indra/newview/llvopartgroup.h @@ -63,7 +63,7 @@ public: LLVOPartGroup(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); /*virtual*/ BOOL isActive() const; // Whether this object needs to do an idleUpdate. - void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time); + void idleUpdate(LLAgent &agent, const F64 &time); virtual F32 getBinRadius(); virtual void updateSpatialExtents(LLVector4a& newMin, LLVector4a& newMax); diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp index 36793017ed..93f0e50336 100755 --- a/indra/newview/llvosky.cpp +++ b/indra/newview/llvosky.cpp @@ -1052,7 +1052,7 @@ void LLVOSky::calcAtmospherics(void) mFadeColor.setAlpha(0); } -void LLVOSky::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) +void LLVOSky::idleUpdate(LLAgent &agent, const F64 &time) { } diff --git a/indra/newview/llvosky.h b/indra/newview/llvosky.h index 2a150eccb9..ee8e91fb71 100755 --- a/indra/newview/llvosky.h +++ b/indra/newview/llvosky.h @@ -461,7 +461,7 @@ public: void cleanupGL(); void restoreGL(); - /*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time); + /*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time); BOOL updateSky(); // Graphical stuff for objects - maybe broken out into render class diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp index cd12cd9552..6a89100bf5 100755 --- a/indra/newview/llvotree.cpp +++ b/indra/newview/llvotree.cpp @@ -339,7 +339,7 @@ U32 LLVOTree::processUpdateMessage(LLMessageSystem *mesgsys, return retval; } -void LLVOTree::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) +void LLVOTree::idleUpdate(LLAgent &agent, const F64 &time) { if (mDead || !(gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_TREE))) { diff --git a/indra/newview/llvotree.h b/indra/newview/llvotree.h index 2ecb0303a1..6137ae412d 100755 --- a/indra/newview/llvotree.h +++ b/indra/newview/llvotree.h @@ -59,7 +59,7 @@ public: void **user_data, U32 block_num, const EObjectUpdateType update_type, LLDataPacker *dp); - /*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time); + /*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time); // Graphical stuff for objects - maybe broken out into render class later? /*virtual*/ void render(LLAgent &agent); diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index d9efd23b43..c233221e5f 100755 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -343,6 +343,7 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys, } } mTexAnimMode = 0; + mTextureAnimp->unpackTAMessage(mesgsys, block_num); } else @@ -693,7 +694,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced) } } - static LLCachedControl<bool> dont_load_textures(gSavedSettings,"TextureDisable"); + static LLCachedControl<bool> dont_load_textures(gSavedSettings,"TextureDisable", false); if (dont_load_textures || LLAppViewer::getTextureFetch()->mDebugPause) // || !mDrawable->isVisible()) { @@ -1036,8 +1037,7 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams ¶ms_in, const S32 detail, bo } } - - static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback"); + static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false); bool cache_in_vram = use_transform_feedback && gTransformPositionProgram.mProgramObject && (!mVolumeImpl || !mVolumeImpl->isVolumeUnique()); @@ -4460,6 +4460,8 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group) bool emissive = false; + + { LLFastTimer t(FTM_REBUILD_VOLUME_FACE_LIST); @@ -5198,7 +5200,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFac U32 buffer_usage = group->mBufferUsage; - static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback"); + static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false); if (use_transform_feedback && gTransformPositionProgram.mProgramObject && //transform shaders are loaded diff --git a/indra/newview/llvowater.cpp b/indra/newview/llvowater.cpp index e8a1c3d1d6..21595ee0bc 100755 --- a/indra/newview/llvowater.cpp +++ b/indra/newview/llvowater.cpp @@ -100,7 +100,7 @@ void LLVOWater::updateTextures() } // Never gets called -void LLVOWater::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) +void LLVOWater::idleUpdate(LLAgent &agent, const F64 &time) { } diff --git a/indra/newview/llvowater.h b/indra/newview/llvowater.h index cf9323ef2e..7a8d819215 100755 --- a/indra/newview/llvowater.h +++ b/indra/newview/llvowater.h @@ -58,7 +58,7 @@ public: static void initClass(); static void cleanupClass(); - /*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time); + /*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time); /*virtual*/ LLDrawable* createDrawable(LLPipeline *pipeline); /*virtual*/ BOOL updateGeometry(LLDrawable *drawable); /*virtual*/ void updateSpatialExtents(LLVector4a& newMin, LLVector4a& newMax); diff --git a/indra/newview/llvowlsky.cpp b/indra/newview/llvowlsky.cpp index 4e26587184..e7435b6860 100755 --- a/indra/newview/llvowlsky.cpp +++ b/indra/newview/llvowlsky.cpp @@ -92,7 +92,7 @@ void LLVOWLSky::initSunDirection(LLVector3 const & sun_direction, { } -void LLVOWLSky::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) +void LLVOWLSky::idleUpdate(LLAgent &agent, const F64 &time) { } diff --git a/indra/newview/llvowlsky.h b/indra/newview/llvowlsky.h index 729dced15e..1d419b5fea 100755 --- a/indra/newview/llvowlsky.h +++ b/indra/newview/llvowlsky.h @@ -53,7 +53,7 @@ public: void initSunDirection(LLVector3 const & sun_direction, LLVector3 const & sun_angular_velocity); - /*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time); + /*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time); /*virtual*/ BOOL isActive(void) const; /*virtual*/ LLDrawable * createDrawable(LLPipeline *pipeline); /*virtual*/ BOOL updateGeometry(LLDrawable *drawable); diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index 7996f8a640..103668d051 100755 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -140,6 +140,7 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host) { llinfos << "Add region with handle: " << region_handle << " on host " << host << llendl; LLViewerRegion *regionp = getRegionFromHandle(region_handle); + std::string seedUrl; if (regionp) { llinfos << "Region exists, removing it " << llendl; @@ -161,6 +162,9 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host) llwarns << "LLWorld::addRegion exists, but isn't alive" << llendl; } + // Save capabilities seed URL + seedUrl = regionp->getCapability("Seed"); + // Kill the old host, and then we can continue on and add the new host. We have to kill even if the host // matches, because all the agent state for the new camera is completely different. removeRegion(old_host); @@ -188,6 +192,11 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host) llerrs << "Unable to create new region!" << llendl; } + if ( !seedUrl.empty() ) + { + regionp->setCapability("Seed", seedUrl); + } + mRegionList.push_back(regionp); mActiveRegionList.push_back(regionp); mCulledRegionList.push_back(regionp); diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp index ae334d4bd2..786e4f2de6 100755 --- a/indra/newview/llworldmapview.cpp +++ b/indra/newview/llworldmapview.cpp @@ -1595,14 +1595,6 @@ void LLWorldMapView::handleClick(S32 x, S32 y, MASK mask, } -BOOL outside_slop(S32 x, S32 y, S32 start_x, S32 start_y) -{ - S32 dx = x - start_x; - S32 dy = y - start_y; - - return (dx <= -2 || 2 <= dx || dy <= -2 || 2 <= dy); -} - BOOL LLWorldMapView::handleMouseDown( S32 x, S32 y, MASK mask ) { gFocusMgr.setMouseCapture( this ); @@ -1685,7 +1677,7 @@ BOOL LLWorldMapView::handleHover( S32 x, S32 y, MASK mask ) { if (hasMouseCapture()) { - if (mPanning || outside_slop(x, y, mMouseDownX, mMouseDownY)) + if (mPanning || llabs(x - mMouseDownX) > 1 || llabs(y - mMouseDownY) > 1) { // just started panning, so hide cursor if (!mPanning) @@ -1702,8 +1694,6 @@ BOOL LLWorldMapView::handleHover( S32 x, S32 y, MASK mask ) sPanY += delta_y; sTargetPanX = sPanX; sTargetPanY = sPanY; - - gViewerWindow->moveCursorToCenter(); } // doesn't matter, cursor should be hidden diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index 9aeb2d4978..1c7154d413 100755 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -535,15 +535,16 @@ public: RENDER_DEBUG_SHADOW_FRUSTA = 0x00040000, RENDER_DEBUG_SCULPTED = 0x00080000, RENDER_DEBUG_AVATAR_VOLUME = 0x00100000, - RENDER_DEBUG_BUILD_QUEUE = 0x00200000, - RENDER_DEBUG_AGENT_TARGET = 0x00400000, - RENDER_DEBUG_UPDATE_TYPE = 0x00800000, - RENDER_DEBUG_PHYSICS_SHAPES = 0x01000000, - RENDER_DEBUG_NORMALS = 0x02000000, - RENDER_DEBUG_LOD_INFO = 0x04000000, - RENDER_DEBUG_RENDER_COMPLEXITY = 0x08000000, - RENDER_DEBUG_ATTACHMENT_BYTES = 0x10000000, - RENDER_DEBUG_TEXEL_DENSITY = 0x20000000 + RENDER_DEBUG_AVATAR_JOINTS = 0x00200000, + RENDER_DEBUG_BUILD_QUEUE = 0x00400000, + RENDER_DEBUG_AGENT_TARGET = 0x00800000, + RENDER_DEBUG_UPDATE_TYPE = 0x01000000, + RENDER_DEBUG_PHYSICS_SHAPES = 0x02000000, + RENDER_DEBUG_NORMALS = 0x04000000, + RENDER_DEBUG_LOD_INFO = 0x08000000, + RENDER_DEBUG_RENDER_COMPLEXITY = 0x10000000, + RENDER_DEBUG_ATTACHMENT_BYTES = 0x20000000, + RENDER_DEBUG_TEXEL_DENSITY = 0x40000000 }; public: diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index f53995732f..3ebb64e3fa 100755 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -122,6 +122,9 @@ <color name="Blue_80" value="0 0 1 0.8" /> + <color + name="Orange" + value="1 .82 .46 1" /> <!-- This color name makes potentially unused colors show up bright purple. Leave this here until all Unused? are removed below, otherwise @@ -511,6 +514,9 @@ name="MapTrackColor" reference="Red" /> <color + name="MapTrackColorUnder" + reference="Blue" /> + <color name="MapTrackDisabledColor" value="0.5 0 0 1" /> <color diff --git a/indra/newview/skins/default/textures/toolbar_icons/highlighting.png b/indra/newview/skins/default/textures/toolbar_icons/highlighting.png Binary files differnew file mode 100644 index 0000000000..093bace257 --- /dev/null +++ b/indra/newview/skins/default/textures/toolbar_icons/highlighting.png diff --git a/indra/newview/skins/default/textures/toolbar_icons/highlighting_selected.png b/indra/newview/skins/default/textures/toolbar_icons/highlighting_selected.png Binary files differnew file mode 100644 index 0000000000..aa1bb26a56 --- /dev/null +++ b/indra/newview/skins/default/textures/toolbar_icons/highlighting_selected.png diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Hover.png b/indra/newview/skins/default/textures/widgets/ComboButton_Hover.png Binary files differnew file mode 100644 index 0000000000..d492b30b40 --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/ComboButton_Hover.png diff --git a/indra/newview/skins/default/xui/da/floater_tools.xml b/indra/newview/skins/default/xui/da/floater_tools.xml index 815bde456e..9be129bbf6 100755 --- a/indra/newview/skins/default/xui/da/floater_tools.xml +++ b/indra/newview/skins/default/xui/da/floater_tools.xml @@ -462,10 +462,6 @@ <combo_box.item label="Rør" name="suction"/> <combo_box.item label="Væv" name="weave"/> </combo_box> - <check_box initial_value="falsk" label="Flugt planare overflader" name="checkbox planar align" tool_tip="Flugt teksuter pÃ¥ alle valgte overflader med den sidst valgte overflade. Kræver at planar tekstur-mapning er valgt."/> - <text name="rpt"> - Gentagelser / overflade - </text> <spinner label="Vandret (U)" name="TexScaleU"/> <check_box label="Vend" name="checkbox flip s"/> <spinner label="Lodret (V)" name="TexScaleV"/> diff --git a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml index 72200a07ad..e494b2b755 100755 --- a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml @@ -26,14 +26,14 @@ <text name="ShadersText"> Overflader: </text> - <check_box initial_value="sand" label="Gennemsigtig vand" name="TransparentWater"/> + <check_box initial_value="true" label="Gennemsigtig vand" name="TransparentWater"/> <check_box initial_value="true" label="Glatte flader og skin" name="BumpShiny"/> - <check_box initial_value="sand" label="Lokale lys" name="LocalLights"/> + <check_box initial_value="true" label="Lokale lys" name="LocalLights"/> <check_box initial_value="true" label="Basale flader" name="BasicShaders" tool_tip="Ved at slÃ¥ dette valg fra, kan det forhindres at visse grafikkort drivere crasher."/> <check_box initial_value="true" label="Atmosfæriske flader" name="WindLightUseAtmosShaders"/> - <check_box initial_value="sand" label="Lys og skygger" name="UseLightShaders"/> - <check_box initial_value="sand" label=""Ambient Occlusion"" name="UseSSAO"/> - <check_box initial_value="sand" label="Skarphedsdybde" name="UseDoF"/> + <check_box initial_value="true" label="Lys og skygger" name="UseLightShaders"/> + <check_box initial_value="true" label=""Ambient Occlusion"" name="UseSSAO"/> + <check_box initial_value="true" label="Skarphedsdybde" name="UseDoF"/> <text name="shadows_label"> Skygger: </text> diff --git a/indra/newview/skins/default/xui/da/panel_preferences_setup.xml b/indra/newview/skins/default/xui/da/panel_preferences_setup.xml index 479e98817e..7be9a9d555 100755 --- a/indra/newview/skins/default/xui/da/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/da/panel_preferences_setup.xml @@ -26,14 +26,13 @@ Web: </text> <radio_group name="use_external_browser"> - <radio_item label="Benyt min browser(IE, Firefox, Safari)" name="external" tool_tip="Brug systemets standard web browser til hjælp, web links, m.v. Ikke anbefalet hvis du kører i fuld-skærm." value="1"/> + <radio_item label="Benyt min browser(IE, Firefox, Safari)" name="external" tool_tip="Brug systemets standard web browser til hjælp, web links, m.v. Ikke anbefalet hvis du kører i fuld-skærm." value="true"/> <radio_item label="Benyt den indbyggede browser" name="internal" tool_tip="Brug den indbyggede web browser til hjælp, web links m.v. Denne browser Ã¥bner et nyt vindue i [APP_NAME]." value=""/> </radio_group> <check_box initial_value="true" label="Aktivér plugins" name="browser_plugins_enabled"/> <check_box initial_value="true" label="Acceptér cookies" name="cookies_enabled"/> <check_box initial_value="true" label="Aktivér Javascript" name="browser_javascript_enabled"/> - <check_box initial_value="fra" label="Tilad media browser pop-ups" name="media_popup_enabled"/> - <check_box initial_value="false" label="Aktivér web proxy" name="web_proxy_enabled"/> + <check_box initial_value="false" label="Tilad media browser pop-ups" name="media_popup_enabled"/> <text name="Proxy location"> Proxy placering: </text> diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml index 5f5c34a5cf..6634a4bd90 100755 --- a/indra/newview/skins/default/xui/de/floater_tools.xml +++ b/indra/newview/skins/default/xui/de/floater_tools.xml @@ -466,16 +466,11 @@ <combo_box.item label="Saugen" name="suction"/> <combo_box.item label="gewoben" name="weave"/> </combo_box> - <check_box initial_value="falsch" label="Flache Oberflächen ausrichten" name="checkbox planar align" tool_tip="Texturen auf allen ausgewählten Oberflächen an der zuletzt ausgewählten Oberfläche ausrichten. Planar Texture Mapping erforderlich."/> - <text name="rpt"> - Wiederholungen / Oberfläche - </text> <spinner label="Horizontal (U)" name="TexScaleU"/> <check_box label="Umkehren" name="checkbox flip s"/> <spinner label="Vertikal (V)" name="TexScaleV"/> <check_box label="Umkehren" name="checkbox flip t"/> <spinner label="RotationËš" name="TexRot"/> - <spinner label="Wiederholungen / Meter" name="rptctrl"/> <button label="Ãœbernehmen" label_selected="Ãœbernehmen" name="button apply"/> <text name="tex offset"> Texture-Versatz diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml index 703015af20..9668cfa526 100755 --- a/indra/newview/skins/default/xui/en/floater_about.xml +++ b/indra/newview/skins/default/xui/en/floater_about.xml @@ -9,63 +9,7 @@ save_rect="true" title="ABOUT [CAPITALIZED_APP_NAME]" width="470"> - <floater.string - name="AboutHeader"> -[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL]) -[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]] - -</floater.string> - <floater.string - name="AboutCompiler"> -Built with [COMPILER] version [COMPILER_VERSION] - -</floater.string> - <floater.string - name="AboutPosition"> -You are at [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] in [REGION] located at <nolink>[HOSTNAME]</nolink> ([HOSTIP]) -SLURL: <nolink>[SLURL]</nolink> -(global coordinates [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) -[SERVER_VERSION] -[SERVER_RELEASE_NOTES_URL] - -</floater.string> - <!-- *NOTE: Do not translate text like GPU, Graphics Card, etc - - Most PC users who know what these mean will be used to the English versions, - and this info sometimes gets sent to support. --> - <floater.string - name="AboutSystem"> -CPU: [CPU] -Memory: [MEMORY_MB] MB -OS Version: [OS_VERSION] -Graphics Card Vendor: [GRAPHICS_CARD_VENDOR] -Graphics Card: [GRAPHICS_CARD] -</floater.string> - <floater.string - name="AboutDriver"> -Windows Graphics Driver Version: [GRAPHICS_DRIVER_VERSION] -</floater.string> - <floater.string - name="AboutLibs"> -OpenGL Version: [OPENGL_VERSION] - -libcurl Version: [LIBCURL_VERSION] -J2C Decoder Version: [J2C_VERSION] -Audio Driver Version: [AUDIO_DRIVER_VERSION] -Qt Webkit Version: [QT_WEBKIT_VERSION] -Voice Server Version: [VOICE_VERSION] -</floater.string> - <floater.string - name="none"> - (none) - </floater.string> - <floater.string - name="AboutTraffic"> -Packets Lost: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) -</floater.string> -<floater.string - name="ErrorFetchingServerReleaseNotesURL"> -Error fetching server release notes URL. -</floater.string> + <tab_container follows="all" top="25" diff --git a/indra/newview/skins/default/xui/en/floater_im_container.xml b/indra/newview/skins/default/xui/en/floater_im_container.xml index 1215efb7f9..28c89868bd 100755 --- a/indra/newview/skins/default/xui/en/floater_im_container.xml +++ b/indra/newview/skins/default/xui/en/floater_im_container.xml @@ -41,8 +41,8 @@ auto_resize="false" user_resize="true" name="conversations_layout_panel" - min_dim="38" - expanded_min_dim="136"> + min_dim="43" + expanded_min_dim="140"> <layout_stack animate="false" follows="left|top|right" @@ -100,7 +100,7 @@ <layout_panel auto_resize="false" name="conversations_pane_buttons_collapsed" - width="31"> + width="35"> <button follows="right|top" height="25" @@ -110,10 +110,10 @@ image_unselected="Toolbar_Middle_Off" layout="topleft" top="1" - left="0" + left="4" name="expand_collapse_btn" tool_tip="Collapse/Expand this list" - width="31" /> + width="35" /> </layout_panel> </layout_stack> <panel diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml index 43d0f2fb18..7076de55e3 100755 --- a/indra/newview/skins/default/xui/en/floater_im_session.xml +++ b/indra/newview/skins/default/xui/en/floater_im_session.xml @@ -210,7 +210,7 @@ default_tab_group="3" tab_group="2" name="right_part_holder" - min_width="172"> + min_width="230"> <layout_stack animate="true" default_tab_group="2" diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml index 5e92a12251..9fa416012c 100755 --- a/indra/newview/skins/default/xui/en/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml @@ -212,11 +212,11 @@ follows="top|left" height="20" layout="topleft" - left="215" + left="222" name="lod_mode_high" top_delta="0" visible="false" - width="135"> + width="130"> <item name="Triangle Limit" value="Triangle Limit" /> @@ -230,7 +230,7 @@ height="20" increment="10" layout="topleft" - left_pad="5" + left_pad="3" name="lod_triangle_limit_high" visible="false" width="55" /> @@ -342,10 +342,10 @@ follows="top|left" height="20" layout="topleft" - left="215" + left="222" name="lod_mode_medium" top_delta="0" - width="135"> + width="130"> <item name="Triangle Limit" value="Triangle Limit" /> @@ -359,7 +359,7 @@ height="20" increment="10" layout="topleft" - left_pad="5" + left_pad="3" name="lod_triangle_limit_medium" width="55" /> <spinner @@ -470,10 +470,10 @@ follows="top|left" height="20" layout="topleft" - left="215" + left="222" name="lod_mode_low" top_delta="0" - width="135"> + width="130"> <item name="Triangle Limit" value="Triangle Limit" /> @@ -487,7 +487,7 @@ height="20" increment="10" layout="topleft" - left_pad="5" + left_pad="3" name="lod_triangle_limit_low" width="55" /> <spinner @@ -598,10 +598,10 @@ follows="top|left" height="20" layout="topleft" - left="215" + left="222" name="lod_mode_lowest" top_delta="0" - width="135"> + width="130"> <item name="Triangle Limit" value="Triangle Limit" /> @@ -615,7 +615,7 @@ height="20" increment="10" layout="topleft" - left_pad="5" + left_pad="3" name="lod_triangle_limit_lowest" width="55" /> <spinner diff --git a/indra/newview/skins/default/xui/en/floater_region_debug_console.xml b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml index 7c7ee2df4c..99b812a880 100755 --- a/indra/newview/skins/default/xui/en/floater_region_debug_console.xml +++ b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml @@ -10,33 +10,34 @@ width="600" default_tab_group="1"> <text_editor - left="10" - type="string" - length="1" - follows="left|right|bottom" - font="Monospace" - height="366" - width="576" - ignore_tab="false" - layout="topleft" - max_length="65536" - name="region_debug_console_output" - show_line_numbers="false" - word_wrap="true" - track_end="true" - read_only="true"> + left="10" + type="string" + length="1" + follows="all" + font="Monospace" + height="366" + width="576" + ignore_tab="false" + layout="topleft" + max_length="65536" + name="region_debug_console_output" + show_line_numbers="false" + word_wrap="true" + track_end="true" + read_only="true"> </text_editor> <line_editor - border_style="line" - border_thickness="1" - tab_group="1" - follows="left|top|right" - font="SansSerif" - height="19" - layout="topleft" - bottom_delta="20" - max_length="127" - name="region_debug_console_input" - top_delta="0" - width="576" /> + border_style="line" + border_thickness="1" + tab_group="1" + follows="left|right|bottom" + font="SansSerif" + height="19" + layout="topleft" + bottom_delta="20" + max_length="127" + name="region_debug_console_input" + top_delta="0" + width="576"> + </line_editor> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_region_restarting.xml b/indra/newview/skins/default/xui/en/floater_region_restarting.xml new file mode 100644 index 0000000000..2fe4d0190a --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_region_restarting.xml @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater + height="150" + width="290" + layout="topleft" + name="region_restarting" + help_topic="floater_region_restarting" + single_instance="true" + reuse_instance="false" + title="REGION RESTARTING"> + <string name="RegionName"> + The region you are in now ([NAME]) is about to restart. + +If you stay in this region you will be logged out. + </string> + <string name="RestartSeconds"> + Seconds until restart +[SECONDS] + </string> + <panel + name="layout_panel_1" + height="150" + width="290" + follows="right|top" + top="0" + left="0" + background_visible="true" + bg_opaque_color="Orange" + bg_alpha_color="Orange"> + + <icon color="1.0 1.0 1.0 1.0" + tab_stop="false" + mouse_opaque="false" + name="icon" + width="32" + height="32" + image_name="notify_caution_icon.tga" + follows="left|top"> + </icon> + + <text + type="string" + length="1" + follows="top|left" + layout="topleft" + name="region_name" + text_color="Black" + font="SansSerifBold" + word_wrap="true" + height="100" + top="5" + left="40" + width="230"> + The region you are in now (-The longest region name-) is about to restart. + +If you stay in this region you will be logged out. + </text> + <text + type="string" + length="1" + follows="top|left" + layout="topleft" + name="restart_seconds" + text_color="Black" + font="SansSerifLargeBold" + height="40" + top="110" + left="0" + halign="center" + width="290"> + Seconds until restart + 32767 + </text> + </panel> + </floater> diff --git a/indra/newview/skins/default/xui/en/menu_avatar_icon.xml b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml index 50910dff32..410caa7290 100755 --- a/indra/newview/skins/default/xui/en/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml @@ -17,7 +17,7 @@ parameter="profile" /> </menu_item_call> <menu_item_call - label="Send IM..." + label="IM" layout="topleft" name="Send IM"> <menu_item_call.on_click @@ -25,7 +25,32 @@ parameter="im" /> </menu_item_call> <menu_item_call - label="Add Friend..." + label="Offer teleport" + layout="topleft" + name="Offer Teleport"> + <on_click function="AvatarIcon.Action" parameter="teleport"/> + </menu_item_call> + <menu_item_call + label="Request Teleport" + layout="topleft" + name="Request Teleport"> + <on_click function="AvatarIcon.Action" parameter="request_teleport"/> + </menu_item_call> + <menu_item_call + label="Voice call" + layout="topleft" + name="Voice Call"> + <on_click function="AvatarIcon.Action" parameter="voice_call"/> + </menu_item_call> + <menu_item_call + label="Chat history..." + layout="topleft" + name="Chat History"> + <on_click function="AvatarIcon.Action" parameter="chat_history"/> + </menu_item_call> + <menu_item_separator layout="topleft" name="separator_chat_history"/> + <menu_item_call + label="Add friend" layout="topleft" name="Add Friend"> <menu_item_call.on_click @@ -33,11 +58,56 @@ parameter="add" /> </menu_item_call> <menu_item_call - label="Remove Friend..." + label="Remove friend" layout="topleft" name="Remove Friend"> <menu_item_call.on_click function="AvatarIcon.Action" parameter="remove" /> </menu_item_call> + <menu_item_call + label="Invite to group..." + layout="topleft" + name="Invite Group"> + <on_click function="AvatarIcon.Action" parameter="invite_to_group" /> + </menu_item_call> + <menu_item_separator layout="topleft" name="separator_invite_to_group"/> + <menu_item_call + label="Zoom In" + layout="topleft" + name="Zoom In"> + <on_click function="AvatarIcon.Action" parameter="zoom_in" /> + </menu_item_call> + <menu_item_call + label="Map" + layout="topleft" + name="Map"> + <on_click function="AvatarIcon.Action" parameter="map" /> + </menu_item_call> + <menu_item_call + label="Share" + layout="topleft" + name="Share"> + <on_click function="AvatarIcon.Action" parameter="share" /> + </menu_item_call> + <menu_item_call + label="Pay" + layout="topleft" + name="Pay"> + <on_click function="AvatarIcon.Action" parameter="pay" /> + </menu_item_call> + <menu_item_check + label="Block Voice" + layout="topleft" + name="Block Unblock"> + <on_click function="AvatarIcon.Action" parameter="block_unblock" /> + <on_check function="AvatarIcon.Check" parameter="is_blocked" /> + </menu_item_check> + <menu_item_check + label="Block Text" + layout="topleft" + name="Mute Text"> + <on_click function="AvatarIcon.Action" parameter="mute_unmute" /> + <on_check function="AvatarIcon.Check" parameter="is_muted" /> + </menu_item_check> </menu> diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml index 512205ba43..6fa45d7d66 100755 --- a/indra/newview/skins/default/xui/en/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory.xml @@ -552,6 +552,14 @@ function="Inventory.DoToSelected" parameter="about" /> </menu_item_call> + <menu_item_call + label="Show on Map" + layout="topleft" + name="show_on_map"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="show_on_map" /> + </menu_item_call> <menu_item_separator layout="topleft" name="Animation Separator" /> diff --git a/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml index 0160d52b17..f939c3996d 100755 --- a/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml @@ -17,7 +17,7 @@ function="TeleportHistory.MoreInformation" /> </menu_item_call> <menu_item_call - label="Copy to Clipboard" + label="Copy SLurl" layout="topleft" name="CopyToClipboard"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index d635b8ee93..7e8d2aaf9a 100755 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1305,18 +1305,18 @@ tear_off="true"> <menu_item_call label="How to..." - name="How To"> + name="How To" + shortcut="F1"> <menu_item_call.on_click function="Help.ToggleHowTo" parameter="" /> </menu_item_call> <menu_item_call - label="[SECOND_LIFE] Help" - name="Second Life Help" - shortcut="F1"> + label="Quickstart" + name="Quickstart"> <menu_item_call.on_click - function="ShowHelp" - parameter="f1_help" /> + function="Advanced.ShowURL" + parameter="http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Quickstart/ta-p/1087919"/> </menu_item_call> <!-- <menu_item_call label="Tutorial" @@ -1326,20 +1326,12 @@ parameter="hud" /> </menu_item_call>--> <menu_item_separator/> - - <menu_item_call - label="User’s guide" - name="User’s guide"> - <menu_item_call.on_click - function="Advanced.ShowURL" - parameter="http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-User-s-Guide/ta-p/1244857"/> - </menu_item_call> <menu_item_call label="Knowledge Base" name="Knowledge Base"> <menu_item_call.on_click function="Advanced.ShowURL" - parameter="http://community.secondlife.com/t5/tkb/communitypage"/> + parameter="http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-User-s-Guide/ta-p/1244857"/> </menu_item_call> <menu_item_call label="Wiki" @@ -1389,8 +1381,7 @@ label="Report Bug" name="Report Bug"> <menu_item_call.on_click - function="ShowHelp" - parameter="report_bug" /> + function="Advanced.ReportBug"/> </menu_item_call> <menu_item_separator/> @@ -2405,6 +2396,12 @@ <menu_item_call.on_click function="Advanced.ClickRenderProfile" /> </menu_item_call> + <menu_item_call + label="Benchmark" + name="Benchmark"> + <menu_item_call.on_click + function="Advanced.ClickRenderBenchmark" /> + </menu_item_call> </menu> <menu create_jump_keys="true" @@ -2572,6 +2569,16 @@ parameter="collision skeleton" /> </menu_item_check> <menu_item_check + label="Joints" + name="Joints"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="joints" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="joints" /> + </menu_item_check> + <menu_item_check label="Raycast" name="Raycast"> <menu_item_check.on_check diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index e7c89db069..c97af4e9ef 100755 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -3481,7 +3481,7 @@ or you can install it now. name="DownloadBackgroundTip" type="notify"> We have downloaded an update to your [APP_NAME] installation. -Version [VERSION] [[RELEASE_NOTES_FULL_URL] Information about this update] +Version [VERSION] [[INFO_URL] Information about this update] <tag>confirm</tag> <usetemplate name="okcancelbuttons" @@ -3494,7 +3494,7 @@ Version [VERSION] [[RELEASE_NOTES_FULL_URL] Information about this update] name="DownloadBackgroundDialog" type="alertmodal"> We have downloaded an update to your [APP_NAME] installation. -Version [VERSION] [[RELEASE_NOTES_FULL_URL] Information about this update] + Version [VERSION] [[INFO_URL] Information about this update] <tag>confirm</tag> <usetemplate name="okcancelbuttons" @@ -4758,6 +4758,14 @@ Problems adding a new estate manager. One or more estates may have a full manag <notification icon="alertmodal.tga" + name="ProblemAddingEstateBanManager" + type="alertmodal"> +Unable to add estate owner or manager to ban list. + <tag>fail</tag> + </notification> + + <notification + icon="alertmodal.tga" name="ProblemAddingEstateGeneric" type="alertmodal"> Problems adding to this estate list. One or more estates may have a full list. @@ -6337,7 +6345,7 @@ You can only claim public land in the Region you're in. <notification icon="notify.tga" name="RegionTPAccessBlocked" - persist="true" + persist="false" type="notify"> <tag>fail</tag> The region you're trying to visit contains content exceeding your current preferences. You can change your preferences using Me > Preferences > General. @@ -6345,6 +6353,15 @@ You can only claim public land in the Region you're in. <notification icon="notify.tga" + name="RegionAboutToShutdown" + persist="false" + type="notify"> + <tag>fail</tag> + The region you're trying to enter is about to shut down. + </notification> + + <notification + icon="notify.tga" name="URBannedFromRegion" persist="true" type="notify"> @@ -6884,20 +6901,20 @@ This will add a bookmark in your inventory so you can quickly IM this Resident. <notification icon="notify.tga" name="RegionRestartMinutes" + show_toast="false" priority="high" - sound="UISndAlert" type="notify"> -This region will restart in [MINUTES] minutes. +The region "[NAME]" will restart in [MINUTES] minutes. If you stay in this region you will be logged out. </notification> <notification icon="notify.tga" name="RegionRestartSeconds" + show_toast="false" priority="high" - sound="UISndAlert" type="notify"> -This region will restart in [SECONDS] seconds. +The region "[NAME]" will restart in [SECONDS] seconds. If you stay in this region you will be logged out. </notification> @@ -8780,11 +8797,11 @@ You are no longer allowed here and have [EJECT_TIME] seconds to leave. <notification icon="alertmodal.tga" - name="NoEnterServerFull" + name="NoEnterRegionMaybeFull" type="notify"> <tag>fail</tag> -You can't enter this region because -the server is full. +You can't enter region "[NAME]". +It may be full or restarting soon. </notification> <notification @@ -9284,8 +9301,17 @@ Object uses too many physics resources -- its dynamics have been disabled. <notification icon="alertmodal.tga" + name="EstateManagerFailedllTeleportHome" + persist="false" + type="notify"> + <tag>fail</tag> +The object '[OBJECT_NAME]' at [SLURL] cannot teleport estate managers home. + </notification> + + <notification + icon="alertmodal.tga" name="TeleportedHomeByObjectOnParcel" - persist="true" + persist="false" type="notify"> <tag>fail</tag> You have been teleported home by the object '[OBJECT_NAME]' on the parcel '[PARCEL_NAME]' @@ -9294,7 +9320,7 @@ You have been teleported home by the object '[OBJECT_NAME]' on the parcel '[PARC <notification icon="alertmodal.tga" name="TeleportedHomeByObject" - persist="true" + persist="false" type="notify"> <tag>fail</tag> You have been teleported home by the object '[OBJECT_NAME]' @@ -9550,6 +9576,14 @@ Not enough script resources available to attach object! <notification icon="alertmodal.tga" + name="CantAttachObjectBeingRemoved" + type="notify"> + <tag>fail</tag> + Cannot attach object because it is already being removed. + </notification> + + <notification + icon="alertmodal.tga" name="CantDropItemTrialUser" type="notify"> <tag>fail</tag> @@ -9730,15 +9764,7 @@ Only the first 10 selected objects have been disabled. Refresh and make addition type="notify"> <tag>fail</tag> You need to update your viewer to buy this parcel. - </notification> - - <notification - icon="alertmodal.tga" - name="LandBuyAccessBlocked" - type="notify"> - <tag>fail</tag> -You can't buy this land due to your maturity Rating. You may need to validate your age and/or install the latest Viewer. Please go to the Knowledge Base for details on accessing areas with this maturity Rating. - </notification> + </notification> <notification icon="alertmodal.tga" @@ -9801,7 +9827,9 @@ Not enough leased parcels in selection to join. name="CantDivideLandMultipleParcelsSelected" type="notify"> <tag>fail</tag> -Can't divide land.\nThere is more than one parcel selected.\nTry selecting a smaller piece of land. +Can't divide land. +There is more than one parcel selected. +Try selecting a smaller piece of land. </notification> <notification @@ -9809,7 +9837,9 @@ Can't divide land.\nThere is more than one parcel selected.\nTry selecting a sma name="CantDivideLandCantFindParcel" type="notify"> <tag>fail</tag> -Can't divide land.\nCan't find the parcel.\nPlease report with Help -> Reprt Bug... +Can't divide land. +Can't find the parcel. +Please report with Help -> Report Bug... </notification> <notification @@ -9817,7 +9847,8 @@ Can't divide land.\nCan't find the parcel.\nPlease report with Help -> Reprt Bug name="CantDivideLandWholeParcelSelected" type="notify"> <tag>fail</tag> -Can't divide land. Whole parcel is selected.\nTry selecting a smaller piece of land. +Can't divide land. Whole parcel is selected. +Try selecting a smaller piece of land. </notification> <notification diff --git a/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml index a054e71e34..4372cf69bf 100755 --- a/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml +++ b/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml @@ -11,7 +11,7 @@ height="20" default_icon_name="Generic_Person" layout="topleft" - left="5" + left="9" top="2" visible="false" width="20" /> @@ -20,7 +20,7 @@ height="20" default_icon_name="Generic_Group" layout="topleft" - left="5" + left="9" top="2" visible="false" width="20" /> @@ -29,9 +29,9 @@ height="20" image_name="Nearby_chat_icon" layout="topleft" - left="5" + left="10" name="nearby_chat_icon" - top="2" + top="3" visible="false" width="20"/> <layout_stack diff --git a/indra/newview/skins/default/xui/en/panel_group_general.xml b/indra/newview/skins/default/xui/en/panel_group_general.xml index 38b680ba86..26f54bacbc 100755 --- a/indra/newview/skins/default/xui/en/panel_group_general.xml +++ b/indra/newview/skins/default/xui/en/panel_group_general.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel label="General" - height="604" + height="420" width="304" class="panel_group_general" name="general_tab"> @@ -101,31 +101,7 @@ Hover your mouse over the options for more help. text_readonly_color="White" word_wrap="true"> Group Charter - </text_editor> - <name_list - column_padding="0" - draw_heading="true" - follows="left|top|right" - heading_height="23" - height="160" - layout="topleft" - left="0" - name="visible_members" - short_names="false" - top_pad="2"> - <name_list.columns - label="Member" - name="name" - relative_width="0.4" /> - <name_list.columns - label="Title" - name="title" - relative_width="0.4" /> - <name_list.columns - label="Status" - name="status" - relative_width="0.2" /> - </name_list> + </text_editor> <text follows="left|top|right" type="string" diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml index 206496cc0e..b3326d8da6 100755 --- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml @@ -131,7 +131,7 @@ background_visible="true" expanded="false" layout="topleft" name="group_roles_tab" - title="Roles" + title="Roles & Members" fit_panel="false"> <panel border="false" diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml index df91ad8b5e..9ac5b8800e 100755 --- a/indra/newview/skins/default/xui/en/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml @@ -94,11 +94,15 @@ clicking on their names. <name_list.columns label="Donation" name="donated" - relative_width="0.25" /> + relative_width="0.2" /> <name_list.columns label="Status" name="online" - relative_width="0.14" /> + relative_width="0.18" /> + <name_list.columns + label="Title" + name="title" + relative_width="0.18" /> </name_list> <button height="23" diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml index 3edeb9aa36..c7edba21f8 100755 --- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml @@ -87,6 +87,7 @@ direction="down" height="23" image_overlay="Arrow_Left_Off" + image_hover_unselected="PushButton_Over" image_bottom_pad="1" layout="topleft" left="10" @@ -99,6 +100,7 @@ direction="down" height="23" image_overlay="Arrow_Right_Off" + image_hover_unselected="PushButton_Over" image_bottom_pad="1" layout="topleft" left_pad="0" @@ -111,6 +113,7 @@ height="23" image_bottom_pad="1" image_overlay="Home_Off" + image_hover_unselected="PushButton_Over" layout="topleft" left_pad="7" name="home_btn" diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index dc0e4a5947..d2caf63052 100755 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -500,12 +500,13 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M <text type="string" length="1" - follows="all" + follows="left|top|right" height="14" layout="topleft" right="-10" top_pad="4" left="3" + use_ellipses="true" name="groupcount"> You belong to [COUNT] groups, and can join [REMAINING] more. </text> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 8ac95beddb..67f75fe1d2 100755 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -20,6 +20,42 @@ <string name="StartupInitializingVFS">Initializing VFS...</string> <string name="StartupRequireDriverUpdate">Graphics initialization failed. Please update your graphics driver!</string> + <!-- about dialog/support string--> + <string name="AboutHeader"> +[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL]) +[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]] + </string> + <string name="AboutCompiler">Built with [COMPILER] version [COMPILER_VERSION]</string> + <string name="AboutPosition"> +You are at [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] in [REGION] located at <nolink>[HOSTNAME]</nolink> ([HOSTIP]) +SLURL: <nolink>[SLURL]</nolink> +(global coordinates [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) +[SERVER_VERSION] +[SERVER_RELEASE_NOTES_URL] + </string> + <!-- *NOTE: Do not translate text like GPU, Graphics Card, etc - + Most PC users who know what these mean will be used to the English versions, + and this info sometimes gets sent to support. --> + <string name="AboutSystem"> +CPU: [CPU] +Memory: [MEMORY_MB] MB +OS Version: [OS_VERSION] +Graphics Card Vendor: [GRAPHICS_CARD_VENDOR] +Graphics Card: [GRAPHICS_CARD] + </string> + <string name="AboutDriver">Windows Graphics Driver Version: [GRAPHICS_DRIVER_VERSION]</string> + <string name="AboutLibs"> +OpenGL Version: [OPENGL_VERSION] + +libcurl Version: [LIBCURL_VERSION] +J2C Decoder Version: [J2C_VERSION] +Audio Driver Version: [AUDIO_DRIVER_VERSION] +Qt Webkit Version: [QT_WEBKIT_VERSION] +Voice Server Version: [VOICE_VERSION] + </string> + <string name="AboutTraffic">Packets Lost: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)</string> + <string name="ErrorFetchingServerReleaseNotesURL">Error fetching server release notes URL.</string> + <!-- progress --> <string name="ProgressRestoring">Restoring...</string> <string name="ProgressChangingResolution">Changing resolution...</string> @@ -456,6 +492,8 @@ Please try logging in again in a minute.</string> <string name="load_file_verb">Load</string> <string name="targa_image_files">Targa Images</string> <string name="bitmap_image_files">Bitmap Images</string> + <string name="png_image_files">PNG Images</string> + <string name="save_texture_image_files">Targa or PNG Images</string> <string name="avi_movie_file">AVI Movie File</string> <string name="xaf_animation_file">XAF Anim File</string> <string name="xml_file">XML File</string> @@ -2301,8 +2339,7 @@ Drag folders to this area and click "Send to Marketplace" to list them for sale <string name="InvFolder Merchant Outbox">Merchant Outbox</string> <!-- are used for Friends and Friends/All folders in Inventory "Calling cards" folder. See EXT-694--> - <string name="InvFolder Friends">Friends</string> - <string name="InvFolder Received Items">Received Items</string> + <string name="InvFolder Friends">Friends</string> <string name="InvFolder All">All</string> <string name="no_attachments">No attachments worn</string> diff --git a/indra/newview/skins/default/xui/es/floater_hardware_settings.xml b/indra/newview/skins/default/xui/es/floater_hardware_settings.xml index c351db5eae..c2327c96c4 100755 --- a/indra/newview/skins/default/xui/es/floater_hardware_settings.xml +++ b/indra/newview/skins/default/xui/es/floater_hardware_settings.xml @@ -28,7 +28,7 @@ <text name="tc label"> Activar S3TC: </text> - <check_box initial_value="verdadero" label="Activar la compresión de texturas (requiere reiniciar)" name="texture compression" tool_tip="Comprime las texturas de la memoria de vÃdeo, lo cual permite cargar texturas de una resolución más alta, pero con una cierta pérdida de calidad del color."/> + <check_box initial_value="true" label="Activar la compresión de texturas (requiere reiniciar)" name="texture compression" tool_tip="Comprime las texturas de la memoria de vÃdeo, lo cual permite cargar texturas de una resolución más alta, pero con una cierta pérdida de calidad del color."/> <slider label="Memoria para texturas (MB):" name="GraphicsCardTextureMemory" tool_tip="Cantidad de memoria asignada a las texturas. Por defecto es la memoria de la tarjeta de vÃdeo. Reducir esta cantidad puede mejorar el rendimiento, pero también hacer que las texturas se vean borrosas."/> <spinner label="Intensidad de la niebla:" name="fog"/> <button label="OK" label_selected="OK" name="OK"/> diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml index 15462c3726..32baa5bb7d 100755 --- a/indra/newview/skins/default/xui/es/floater_tools.xml +++ b/indra/newview/skins/default/xui/es/floater_tools.xml @@ -443,16 +443,11 @@ <combo_box.item label="succión" name="suction"/> <combo_box.item label="tejido" name="weave"/> </combo_box> - <check_box initial_value="falso" label="Alinear caras del plano" name="checkbox planar align" tool_tip="Alinear texturas en todas las caras seleccionadas con la última cara seleccionada. Requiere la representación de texturas en el plano."/> - <text name="rpt"> - Repeticiones por cara - </text> <spinner label="Horizontal (U)" name="TexScaleU"/> <check_box label="Voltear" name="checkbox flip s"/> <spinner label="Vertical (V)" name="TexScaleV"/> <check_box label="Voltear" name="checkbox flip t"/> <spinner label="Rotación" name="TexRot"/> - <spinner label="Repeticiones / Metro" name="rptctrl"/> <button label="Aplicar" label_selected="Aplicar" name="button apply"/> <text name="tex offset"> Desplazar diff --git a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml index 9362f76708..a9eab74e2b 100755 --- a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml @@ -25,14 +25,14 @@ <text name="ShadersText"> Shaders: </text> - <check_box initial_value="verdadero" label="Agua transparente" name="TransparentWater"/> + <check_box initial_value="true" label="Agua transparente" name="TransparentWater"/> <check_box initial_value="true" label="Efecto de relieve y brillo" name="BumpShiny"/> - <check_box initial_value="verdadero" label="Luces locales" name="LocalLights"/> + <check_box initial_value="true" label="Luces locales" name="LocalLights"/> <check_box initial_value="true" label="Shaders básicos" name="BasicShaders" tool_tip="Desactivando esta opción puede prevenir fallos en algunos controladores de la tarjeta gráfica."/> <check_box initial_value="true" label="Shaders de la atmósfera" name="WindLightUseAtmosShaders"/> - <check_box initial_value="verdadero" label="Modelo de iluminación avanzado" name="UseLightShaders"/> - <check_box initial_value="verdadero" label="Oclusión del ambiente" name="UseSSAO"/> - <check_box initial_value="verdadero" label="Profundidad del campo" name="UseDoF"/> + <check_box initial_value="true" label="Modelo de iluminación avanzado" name="UseLightShaders"/> + <check_box initial_value="true" label="Oclusión del ambiente" name="UseSSAO"/> + <check_box initial_value="true" label="Profundidad del campo" name="UseDoF"/> <text name="shadows_label"> Sombras: </text> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_setup.xml b/indra/newview/skins/default/xui/es/panel_preferences_setup.xml index f7eaa03d63..508bfbcd32 100755 --- a/indra/newview/skins/default/xui/es/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_setup.xml @@ -21,7 +21,7 @@ <check_box initial_value="true" label="Activar plugins" name="browser_plugins_enabled"/> <check_box initial_value="true" label="Aceptar las 'cookies'" name="cookies_enabled"/> <check_box initial_value="true" label="Activar Javascript" name="browser_javascript_enabled"/> - <check_box initial_value="falso" label="Permitir las ventanas emergentes en el navegador" name="media_popup_enabled"/> + <check_box initial_value="false" label="Permitir las ventanas emergentes en el navegador" name="media_popup_enabled"/> <text name="Software updates:"> Actualizaciones de software: </text> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_sound.xml b/indra/newview/skins/default/xui/es/panel_preferences_sound.xml index 5cb1654c70..dcd6984715 100755 --- a/indra/newview/skins/default/xui/es/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_sound.xml @@ -19,7 +19,7 @@ <check_box label="Activado" name="enable_voice_check"/> <check_box label="Permitir la ejecución automática de los media" name="media_auto_play_btn" tool_tip="Marcar esto para permitir la ejecución automática de los media" value="true"/> <check_box label="Ejecutar para otros avatares los media anexados" name="media_show_on_others_btn" tool_tip="Al desmarcar esto se esconderán los media anexados a otros avatares cercanos" value="true"/> - <check_box label="Reproducir sonidos de los gestos" name="gesture_audio_play_btn" tool_tip="Selecciona esta opción para escuchar los sonidos de los gestos" value="verdadero"/> + <check_box label="Reproducir sonidos de los gestos" name="gesture_audio_play_btn" tool_tip="Selecciona esta opción para escuchar los sonidos de los gestos" value="true"/> <text name="voice_chat_settings"> Configuración del chat de voz </text> diff --git a/indra/newview/skins/default/xui/es/panel_tools_texture.xml b/indra/newview/skins/default/xui/es/panel_tools_texture.xml index 7199905a1c..b820880e60 100644 --- a/indra/newview/skins/default/xui/es/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/es/panel_tools_texture.xml @@ -112,5 +112,5 @@ <spinner label="Grados de rotación" name="shinyRot"/> <spinner label="Desplazamiento horizontal" name="shinyOffsetU"/> <spinner label="Desplazamiento vertical" name="shinyOffsetV"/> - <check_box initial_value="falso" label="Alinear caras del plano" name="checkbox planar align" tool_tip="Alinear texturas en todas las caras seleccionadas con la última cara seleccionada. Requiere la representación de texturas en el plano."/> + <check_box initial_value="false" label="Alinear caras del plano" name="checkbox planar align" tool_tip="Alinear texturas en todas las caras seleccionadas con la última cara seleccionada. Requiere la representación de texturas en el plano."/> </panel> diff --git a/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml b/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml index 098f8fc713..bb146556ba 100755 --- a/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml +++ b/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml @@ -28,7 +28,7 @@ <text name="tc label"> Activer S3TC : </text> - <check_box initial_value="vraie" label="Activer la compression des textures (redémarrage requis)" name="texture compression" tool_tip="Comprime les textures en mémoire vidéo afin de permettre de charger des textures de résolution plus élevée au prix d'une certaine qualité de couleur."/> + <check_box initial_value="true" label="Activer la compression des textures (redémarrage requis)" name="texture compression" tool_tip="Comprime les textures en mémoire vidéo afin de permettre de charger des textures de résolution plus élevée au prix d'une certaine qualité de couleur."/> <slider label="Mémoire textures (Mo) :" name="GraphicsCardTextureMemory" tool_tip="Quantité de mémoire à affecter aux textures. Utilise la mémoire de la carte vidéo par défaut. Si vous réduisez ce paramètre, cela peut améliorer les performances, mais les textures risquent d'être floues."/> <spinner label="Indice du brouillard :" name="fog"/> <button label="OK" label_selected="OK" name="OK"/> diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml index bcc3423862..421e14d51b 100755 --- a/indra/newview/skins/default/xui/fr/floater_tools.xml +++ b/indra/newview/skins/default/xui/fr/floater_tools.xml @@ -463,16 +463,11 @@ <combo_box.item label="Ventouses" name="suction"/> <combo_box.item label="Tissage" name="weave"/> </combo_box> - <check_box initial_value="false" label="Aligner les faces Plan" name="checkbox planar align" tool_tip="Aligner les textures sur toutes les faces sélectionnées avec la dernière face sélectionnée. Application de la texture Plan requise."/> - <text name="rpt"> - Répétitions / Face - </text> <spinner label="Horizontal (U)" name="TexScaleU"/> <check_box label="Inverser" name="checkbox flip s"/> <spinner label="Vertical (V)" name="TexScaleV"/> <check_box label="Inverser" name="checkbox flip t"/> <spinner label="RotationËš" name="TexRot"/> - <spinner label="Répétitions / Mètre" name="rptctrl"/> <button label="Appliquer" label_selected="Appliquer" name="button apply"/> <text name="tex offset"> Décalage de la texture diff --git a/indra/newview/skins/default/xui/it/floater_tools.xml b/indra/newview/skins/default/xui/it/floater_tools.xml index dd59035dd4..468f284ccb 100755 --- a/indra/newview/skins/default/xui/it/floater_tools.xml +++ b/indra/newview/skins/default/xui/it/floater_tools.xml @@ -470,16 +470,11 @@ <combo_box.item label="Cerchi rialzati" name="suction"/> <combo_box.item label="Trama" name="weave"/> </combo_box> - <check_box initial_value="falso" label="Allinea facce planari" name="checkbox planar align" tool_tip="Allinea le texture su tutte le facce selezionate con l’ultima faccia selezionata. È richiesta la mappatura planare delle texture."/> - <text name="rpt"> - Ripetizioni / Faccia - </text> <spinner label="Orizzontale (U)" name="TexScaleU"/> <check_box label="Inverti" name="checkbox flip s"/> <spinner label="Verticale (V)" name="TexScaleV"/> <check_box label="Inverti" name="checkbox flip t"/> <spinner label="RotazioneËš" name="TexRot"/> - <spinner label="Ripetizioni / Metro" name="rptctrl"/> <button label="Applica" label_selected="Applica" name="button apply"/> <text name="tex offset"> Bilanciamento della texture diff --git a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml index e7483b1ba5..2978c48db6 100755 --- a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml @@ -25,7 +25,7 @@ <text name="ShadersText"> Effetti grafici: </text> - <check_box initial_value="vero" label="Acqua trasparente" name="TransparentWater"/> + <check_box initial_value="true" label="Acqua trasparente" name="TransparentWater"/> <check_box initial_value="true" label="Piccoli rilievi e scintillii" name="BumpShiny"/> <check_box initial_value="true" label="Luci locali" name="LocalLights"/> <check_box initial_value="true" label="Effetti grafici base" name="BasicShaders" tool_tip="Disabilitare questa opzione può evitare che qualche scheda grafica vada in crash."/> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_setup.xml b/indra/newview/skins/default/xui/it/panel_preferences_setup.xml index 4c190197b4..fcc9661d03 100755 --- a/indra/newview/skins/default/xui/it/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_setup.xml @@ -21,7 +21,7 @@ <check_box initial_value="true" label="Abilita plugin" name="browser_plugins_enabled"/> <check_box initial_value="true" label="Accetta cookie" name="cookies_enabled"/> <check_box initial_value="true" label="Abilita Javascript" name="browser_javascript_enabled"/> - <check_box initial_value="falso" label="Consenti pop-up nel browser media" name="media_popup_enabled"/> + <check_box initial_value="false" label="Consenti pop-up nel browser media" name="media_popup_enabled"/> <text name="Software updates:"> Aggiornamenti software: </text> diff --git a/indra/newview/skins/default/xui/it/panel_tools_texture.xml b/indra/newview/skins/default/xui/it/panel_tools_texture.xml index 4e515563ac..36ad2980cb 100644 --- a/indra/newview/skins/default/xui/it/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/it/panel_tools_texture.xml @@ -112,5 +112,5 @@ <spinner label="Gradi di rotazione" name="shinyRot"/> <spinner label="Spostamento orizzontale" name="shinyOffsetU"/> <spinner label="Spostamento verticale" name="shinyOffsetV"/> - <check_box initial_value="falso" label="Allinea facce planari" name="checkbox planar align" tool_tip="Allinea le texture su tutte le facce selezionate con l’ultima faccia selezionata. È richiesta la mappatura planare delle texture."/> + <check_box initial_value="false" label="Allinea facce planari" name="checkbox planar align" tool_tip="Allinea le texture su tutte le facce selezionate con l’ultima faccia selezionata. È richiesta la mappatura planare delle texture."/> </panel> diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml index 4bd6439ad2..5511433ae3 100755 --- a/indra/newview/skins/default/xui/ja/floater_tools.xml +++ b/indra/newview/skins/default/xui/ja/floater_tools.xml @@ -469,16 +469,11 @@ <combo_box.item label="å¸ã„è¾¼ã¿" name="suction"/> <combo_box.item label="織目" name="weave"/> </combo_box> - <check_box initial_value="false" label="å¹³é¢ã‚’æƒãˆã‚‹" name="checkbox planar align" tool_tip="é¸æŠžé¢å…¨ã¦ã®ãƒ†ã‚¯ã‚¹ãƒãƒ£ã‚’ã€æœ€å¾Œã«é¸æŠžã•ã‚ŒãŸé¢ã«æƒãˆã¾ã™ã€‚ å¹³é¢ãƒ†ã‚¯ã‚¹ãƒãƒ£ã®ãƒžãƒƒãƒ”ングãŒå¿…è¦ã§ã™ã€‚"/> - <text name="rpt"> - å復 / é¢ - </text> <spinner label="水平(U)" name="TexScaleU"/> <check_box label="å転" name="checkbox flip s"/> <spinner label="垂直(V)" name="TexScaleV"/> <check_box label="å転" name="checkbox flip t"/> <spinner label="回転˚" name="TexRot"/> - <spinner label="å復 / メーター" name="rptctrl"/> <button label="é©ç”¨" label_selected="é©ç”¨" name="button apply"/> <text name="tex offset"> テクスãƒãƒ£ã®ã‚ºãƒ¬ diff --git a/indra/newview/skins/default/xui/pl/floater_tools.xml b/indra/newview/skins/default/xui/pl/floater_tools.xml index 9e6fed8387..69d5c23f9c 100755 --- a/indra/newview/skins/default/xui/pl/floater_tools.xml +++ b/indra/newview/skins/default/xui/pl/floater_tools.xml @@ -442,16 +442,11 @@ <combo_box.item label="Suction" name="suction"/> <combo_box.item label="Fali" name="weave"/> </combo_box> - <check_box initial_value="nieprawda" label="PoÅ‚Ä…cz powierzchnie planarne" name="checkbox planar align" tool_tip="PoÅ‚Ä…cz tekstury na wszystkich wybranych powierzchniach z powierzchniÄ… wybranÄ… jako ostatnia. Wymaga planarnego mapowania tekstury."/> - <text name="rpt"> - Powtórzenia / Powierzchnia - </text> <spinner label="Poziomo (U)" name="TexScaleU"/> <check_box label="Odwróć" name="checkbox flip s"/> <spinner label="Pionowo (V)" name="TexScaleV"/> <check_box label="Odwróć" name="checkbox flip t"/> <spinner label="PowtórzeniaËš" name="TexRot"/> - <spinner label="Powtórzenia / metr" name="rptctrl"/> <button label="Zastosuj" label_selected="Zastosuj" name="button apply"/> <text name="tex offset"> Wyrównanie tekstury diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml index f2beef091a..4cd271a141 100755 --- a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml @@ -26,7 +26,7 @@ <text name="ShadersText"> Cieniowanie pixeli (shadery): </text> - <check_box initial_value="prawda" label="Przeźroczystość wody" name="TransparentWater"/> + <check_box initial_value="true" label="Przeźroczystość wody" name="TransparentWater"/> <check_box initial_value="true" label="Mapowanie wypukÅ‚oÅ›ci i poÅ‚ysk" name="BumpShiny"/> <check_box initial_value="true" label="Podstawowe shadery" name="BasicShaders" tool_tip="WyÅ‚Ä…czenie tej opcji może naprawić bÅ‚Ä™dy niektórych sterowników graficznych."/> <check_box initial_value="true" label="Shadery atmosfery" name="WindLightUseAtmosShaders"/> diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml b/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml index fa0a5981a8..b663e18227 100755 --- a/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml @@ -26,14 +26,13 @@ Internet: </text> <radio_group name="use_external_browser"> - <radio_item label="Użyj zewnÄ™trznej przeglÄ…darki (IE, Firefox, Safari)" name="external" tool_tip="Używaj zewnÄ™trznej przeglÄ…darki. Nie jest to rekomendowane w trybie peÅ‚noekranowym." value="1"/> + <radio_item label="Użyj zewnÄ™trznej przeglÄ…darki (IE, Firefox, Safari)" name="external" tool_tip="Używaj zewnÄ™trznej przeglÄ…darki. Nie jest to rekomendowane w trybie peÅ‚noekranowym." value="true"/> <radio_item label="Używaj wbudowanej przeglÄ…darki." name="internal" tool_tip="Używaj wbudowanej przeglÄ…darki. Ta przeglÄ…darka otworzy nowe okno w [APP_NAME]." value=""/> </radio_group> <check_box initial_value="true" label="Zezwalaj na wtyczki" name="browser_plugins_enabled"/> <check_box initial_value="true" label="Akceptuj ciasteczka z Internetu" name="cookies_enabled"/> <check_box initial_value="true" label="Zezwalaj na Javascript" name="browser_javascript_enabled"/> - <check_box initial_value="nieprawda" label="Zezwól na wyskakujÄ…ce okienka przeglÄ…darki mediów" name="media_popup_enabled"/> - <check_box initial_value="false" label="Używaj serwera proxy" name="web_proxy_enabled"/> + <check_box initial_value="false" label="Zezwól na wyskakujÄ…ce okienka przeglÄ…darki mediów" name="media_popup_enabled"/> <text name="Proxy location"> Lokalizacja proxy: </text> diff --git a/indra/newview/skins/default/xui/pt/floater_tools.xml b/indra/newview/skins/default/xui/pt/floater_tools.xml index 8c245c582e..66c14cdecf 100755 --- a/indra/newview/skins/default/xui/pt/floater_tools.xml +++ b/indra/newview/skins/default/xui/pt/floater_tools.xml @@ -463,16 +463,11 @@ <combo_box.item label="Sulcos" name="suction"/> <combo_box.item label="Weave" name="weave"/> </combo_box> - <check_box initial_value="falso" label="Alinhar planares" name="checkbox planar align" tool_tip="Alinhar texturas dos planos selecionados com o plano selecionado por último. Requer mapeamento planar da textura."/> - <text name="rpt"> - Repetições / Plano - </text> <spinner label="Horizontal (U)" name="TexScaleU"/> <check_box label="Inverter" name="checkbox flip s"/> <spinner label="Vertical (V)" name="TexScaleV"/> <check_box label="Inverter" name="checkbox flip t"/> <spinner label="RotaçãoËš" name="TexRot"/> - <spinner label="Repetições/Metro" name="rptctrl"/> <button label="Aplicar" label_selected="Aplicar" name="button apply"/> <text name="tex offset"> Offset de textura diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml index 37e8838bf4..756e345cb8 100755 --- a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml @@ -26,14 +26,14 @@ rápido <text name="ShadersText"> Sombreadores: </text> - <check_box initial_value="verdadeiro" label="Ãgua transparente" name="TransparentWater"/> + <check_box initial_value="true" label="Ãgua transparente" name="TransparentWater"/> <check_box initial_value="true" label="Bump de Mapeamento e Brilho" name="BumpShiny"/> - <check_box initial_value="verdadeiro" label="Luzes locais" name="LocalLights"/> + <check_box initial_value="true" label="Luzes locais" name="LocalLights"/> <check_box initial_value="true" label="Sombreadores básicos" name="BasicShaders" tool_tip="Desabilitar esta opção poderá impedir que alguns drivers de placa de vÃdeo a travem."/> <check_box initial_value="true" label="Sombreadores Atmosféricos" name="WindLightUseAtmosShaders"/> - <check_box initial_value="verdadeiro" label="Modelo avançado de luzes" name="UseLightShaders"/> - <check_box initial_value="verdadeiro" label="Oclusão ambiental" name="UseSSAO"/> - <check_box initial_value="verdadeiro" label="Profundidade" name="UseDoF"/> + <check_box initial_value="true" label="Modelo avançado de luzes" name="UseLightShaders"/> + <check_box initial_value="true" label="Oclusão ambiental" name="UseSSAO"/> + <check_box initial_value="true" label="Profundidade" name="UseDoF"/> <text name="shadows_label"> Sombras: </text> diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml b/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml index 887d0cfe98..1279e74e21 100755 --- a/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml @@ -21,7 +21,7 @@ <check_box initial_value="true" label="Habilitar plugins" name="browser_plugins_enabled"/> <check_box initial_value="true" label="Aceitar cookies" name="cookies_enabled"/> <check_box initial_value="true" label="Habilitar Javascript" name="browser_javascript_enabled"/> - <check_box initial_value="falso" label="Ativar pop-ups no navegador de mÃdia" name="media_popup_enabled"/> + <check_box initial_value="false" label="Ativar pop-ups no navegador de mÃdia" name="media_popup_enabled"/> <text name="Software updates:"> Atualizações de software: </text> diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml b/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml index d910a7b812..fff5fd7005 100755 --- a/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml @@ -19,7 +19,7 @@ <check_box label="Ativado" name="enable_voice_check"/> <check_box label="Autorizar auto-play de mÃdias" name="media_auto_play_btn" tool_tip="Marque esta opção para auto-executar mÃdias, se elas quiserem" value="true"/> <check_box label="Tocar mÃdia anexada em outros avatares" name="media_show_on_others_btn" tool_tip="Desmarque esta opção para ocultar mÃdias anexadas em avatares por perto" value="true"/> - <check_box label="Tocar áudio de gestos" name="gesture_audio_play_btn" tool_tip="Selecione para ouvir o áudio de gestos" value="verdadeiro"/> + <check_box label="Tocar áudio de gestos" name="gesture_audio_play_btn" tool_tip="Selecione para ouvir o áudio de gestos" value="true"/> <text name="voice_chat_settings"> Configuração de bate-papo de voz </text> diff --git a/indra/newview/skins/default/xui/ru/floater_auction.xml b/indra/newview/skins/default/xui/ru/floater_auction.xml index d84dc2e941..105c75c919 100755 --- a/indra/newview/skins/default/xui/ru/floater_auction.xml +++ b/indra/newview/skins/default/xui/ru/floater_auction.xml @@ -3,7 +3,7 @@ <floater.string name="already for sale"> ÐÐµÐ»ÑŒÐ·Ñ Ð²Ñ‹Ñтавить на аукцион учаÑтки, которые уже продаютÑÑ. </floater.string> - <check_box initial_value="иÑтина" label="Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¶ÐµÐ»Ñ‚ÑƒÑŽ ограду вокруг выбранного учаÑтка" name="fence_check"/> + <check_box initial_value="true" label="Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¶ÐµÐ»Ñ‚ÑƒÑŽ ограду вокруг выбранного учаÑтка" name="fence_check"/> <button label="Снимок" label_selected="Снимок" name="snapshot_btn"/> <button label="Купить может каждый" label_selected="Купить может каждый" name="sell_to_anyone_btn"/> <button label="ОчиÑтить наÑтройки" label_selected="ОчиÑтить наÑтройки" name="reset_parcel_btn"/> diff --git a/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml b/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml index 31fc1c5ed3..304bf97dc1 100755 --- a/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml +++ b/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml @@ -39,7 +39,7 @@ </text> <check_box label="ИзменÑÑ‚ÑŒ" name="next_owner_modify"/> <check_box label="Копировать" name="next_owner_copy"/> - <check_box initial_value="иÑтина" label="Передать" name="next_owner_transfer" tool_tip="Следующий владелец может отдать или перепродать объект"/> + <check_box initial_value="true" label="Передать" name="next_owner_transfer" tool_tip="Следующий владелец может отдать или перепродать объект"/> <button label="OK" name="ok"/> <button label="Применить" name="apply"/> <button label="Отмена" name="close"/> diff --git a/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml b/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml index 43f8c36473..d7da112a27 100755 --- a/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml +++ b/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml @@ -24,7 +24,7 @@ <text name="Enable VBO:"> Включить VBO: </text> - <check_box initial_value="иÑтина" label="Включить объекты вершинных буферов OpenGL" name="vbo" tool_tip="Включение Ñтого параметра на Ñовременном оборудовании даÑÑ‚ увеличение производительноÑти. Однако на Ñтаром оборудовании Ñто может привеÑти к Ñбою приложениÑ."/> + <check_box initial_value="true" label="Включить объекты вершинных буферов OpenGL" name="vbo" tool_tip="Включение Ñтого параметра на Ñовременном оборудовании даÑÑ‚ увеличение производительноÑти. Однако на Ñтаром оборудовании Ñто может привеÑти к Ñбою приложениÑ."/> <text name="tc label"> Включить S3TC: </text> diff --git a/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml index d8047fc045..fb6e747592 100755 --- a/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml +++ b/indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml @@ -10,6 +10,6 @@ СКРИПТ: [NAME] </floater.string> <button label="СброÑ" label_selected="СброÑ" name="Reset"/> - <check_box initial_value="иÑтина" label="ВыполнÑетÑÑ" name="running"/> - <check_box initial_value="иÑтина" label="Моно" name="mono"/> + <check_box initial_value="true" label="ВыполнÑетÑÑ" name="running"/> + <check_box initial_value="true" label="Моно" name="mono"/> </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml b/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml index a704b87bd1..626f3c9321 100755 --- a/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml +++ b/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml @@ -8,7 +8,7 @@ </text> <check_box label="изменÑÑ‚ÑŒ" name="next_owner_modify"/> <check_box label="копировать" name="next_owner_copy"/> - <check_box initial_value="иÑтина" label="перепродавать/отдавать" name="next_owner_transfer"/> + <check_box initial_value="true" label="перепродавать/отдавать" name="next_owner_transfer"/> </panel> <button label="ОК" label_selected="ОК" name="ok"/> <button label="Отмена" label_selected="Отмена" name="cancel"/> diff --git a/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml index 4eecfedf17..13cff2bcbe 100755 --- a/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml +++ b/indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Proxy Settings Floater" title="ÐаÑтройки прокÑи-Ñервера"> - <check_box initial_value="ложь" label="ИÑпользовать HTTP-прокÑи Ð´Ð»Ñ Ð²ÐµÐ±-Ñтраниц" name="web_proxy_enabled"/> + <check_box initial_value="false" label="ИÑпользовать HTTP-прокÑи Ð´Ð»Ñ Ð²ÐµÐ±-Ñтраниц" name="web_proxy_enabled"/> <text name="http_proxy_label"> HTTP-прокÑи: </text> diff --git a/indra/newview/skins/default/xui/ru/floater_settings_debug.xml b/indra/newview/skins/default/xui/ru/floater_settings_debug.xml index 7db014ef53..db78d11e90 100755 --- a/indra/newview/skins/default/xui/ru/floater_settings_debug.xml +++ b/indra/newview/skins/default/xui/ru/floater_settings_debug.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="settings_debug" title="ÐÐСТРОЙКИ ОТЛÐДКИ"> <radio_group name="boolean_combo"> - <radio_item label="ИСТИÐÐ" name="TRUE" value="иÑтина"/> + <radio_item label="ИСТИÐÐ" name="TRUE" value="true"/> <radio_item label="ЛОЖЬ" name="FALSE" value=""/> </radio_group> <color_swatch label="Цвет" name="val_color_swatch"/> diff --git a/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml index a9a21e7d4a..c9e117362f 100755 --- a/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml @@ -19,10 +19,10 @@ <button label="По умолчанию" label_selected="По умолчанию" name="Default"/> <button label="ОчиÑтить" label_selected="ОчиÑтить" name="Blank"/> <button label="Ðет" label_selected="Ðет" name="None"/> - <check_box initial_value="иÑтина" label="Применить ÑейчаÑ" name="apply_immediate_check"/> + <check_box initial_value="true" label="Применить ÑейчаÑ" name="apply_immediate_check"/> <text name="preview_disabled" value="ПроÑмотр отключен"/> <filter_editor label="Фильтровать текÑтуры" name="inventory search editor"/> - <check_box initial_value="ложь" label="Показывать папки" name="show_folders_check"/> + <check_box initial_value="false" label="Показывать папки" name="show_folders_check"/> <button label="Добавить" label_selected="Добавить" name="l_add_btn"/> <button label="Удалить" label_selected="Удалить" name="l_rem_btn"/> <button label="Передать" label_selected="Передать" name="l_upl_btn"/> diff --git a/indra/newview/skins/default/xui/ru/floater_tools.xml b/indra/newview/skins/default/xui/ru/floater_tools.xml index c312f73428..35921d147f 100755 --- a/indra/newview/skins/default/xui/ru/floater_tools.xml +++ b/indra/newview/skins/default/xui/ru/floater_tools.xml @@ -76,8 +76,8 @@ <text label="РаÑÑ‚Ñжка обеих Ñторон" name="checkbox uniform label"> РаÑÑ‚Ñжка обеих Ñторон </text> - <check_box initial_value="иÑтина" label="РаÑÑ‚Ñгивать текÑтуры" name="checkbox stretch textures"/> - <check_box initial_value="иÑтина" label="ПривÑзка" name="checkbox snap to grid"/> + <check_box initial_value="true" label="РаÑÑ‚Ñгивать текÑтуры" name="checkbox stretch textures"/> + <check_box initial_value="true" label="ПривÑзка" name="checkbox snap to grid"/> <combo_box name="combobox grid mode" tool_tip="Выберите тип линейки Ñетки Ð´Ð»Ñ Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°"> <combo_box.item label="МироваÑ" name="World"/> <combo_box.item label="ЛокальнаÑ" name="Local"/> @@ -101,7 +101,7 @@ <button name="ToolGrass" tool_tip="Трава"/> <check_box label="Держать инÑтрумент" name="checkbox sticky"/> <check_box label="Копировать выдел." name="checkbox copy selection"/> - <check_box initial_value="иÑтина" label="Центрир. копию" name="checkbox copy centers"/> + <check_box initial_value="true" label="Центрир. копию" name="checkbox copy centers"/> <check_box label="Повернуть копию" name="checkbox copy rotates"/> <radio_group name="land_radio_group"> <radio_item label="Выбрать землю" name="radio select land"/> @@ -465,16 +465,11 @@ <combo_box.item label="приÑоÑка" name="suction"/> <combo_box.item label="переплетение" name="weave"/> </combo_box> - <check_box initial_value="ложь" label="СоглаÑование" name="checkbox planar align" tool_tip="СоглаÑование текÑтур на вÑех выбранных граних по поÑледней выбранной грани. Должно быть выбрано наложение по плоÑкоÑÑ‚Ñм."/> - <text name="rpt"> - Повторов на грань - </text> <spinner label="По горизонтали (U)" name="TexScaleU"/> <check_box label="Разворот" name="checkbox flip s"/> <spinner label="По вертикали (V)" name="TexScaleV"/> <check_box label="Разворот" name="checkbox flip t"/> <spinner label="Вращение˚" name="TexRot"/> - <spinner label="Повторов на метр" name="rptctrl"/> <button label="Применить" label_selected="Применить" name="button apply"/> <text name="tex offset"> Сдвиг текÑтуры diff --git a/indra/newview/skins/default/xui/ru/floater_world_map.xml b/indra/newview/skins/default/xui/ru/floater_world_map.xml index ef8dfe22ae..7d2acfd9a0 100755 --- a/indra/newview/skins/default/xui/ru/floater_world_map.xml +++ b/indra/newview/skins/default/xui/ru/floater_world_map.xml @@ -35,7 +35,7 @@ <text name="pg_label"> Общие </text> - <check_box initial_value="иÑтина" name="events_mature_chk"/> + <check_box initial_value="true" name="events_mature_chk"/> <text name="events_mature_label"> Умеренные </text> diff --git a/indra/newview/skins/default/xui/ru/panel_group_general.xml b/indra/newview/skins/default/xui/ru/panel_group_general.xml index 4d7e1c9fff..ba38dbf89e 100755 --- a/indra/newview/skins/default/xui/ru/panel_group_general.xml +++ b/indra/newview/skins/default/xui/ru/panel_group_general.xml @@ -51,6 +51,6 @@ <combo_box.item label="Умеренный контент" name="mature"/> <combo_box.item label="Общий контент" name="pg"/> </combo_box> - <check_box initial_value="иÑтина" label="Показать в поиÑке" name="show_in_group_list" tool_tip="Позволить людÑм видеть Ñту группу в результатах поиÑка"/> + <check_box initial_value="true" label="Показать в поиÑке" name="show_in_group_list" tool_tip="Позволить людÑм видеть Ñту группу в результатах поиÑка"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml b/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml index 6dc435db20..d52397832c 100755 --- a/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml +++ b/indra/newview/skins/default/xui/ru/panel_media_settings_general.xml @@ -15,14 +15,14 @@ </text> <text name="current_url" tool_tip="Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ñтраница Ð´Ð»Ñ Ñтого медиа-иÑточника" value=""/> <button label="СброÑ" name="current_url_reset_btn"/> - <check_box initial_value="ложь" label="ÐвтоматичеÑкое зацикливание" name="auto_loop"/> - <check_box initial_value="ложь" label="Ð ÐµÐ°ÐºÑ†Ð¸Ñ Ð½Ð° первый щелчок" name="first_click_interact"/> - <check_box initial_value="ложь" label="Ðвтоувеличение" name="auto_zoom"/> - <check_box initial_value="ложь" label="ÐвтоматичеÑкое проигрывание" name="auto_play"/> + <check_box initial_value="false" label="ÐвтоматичеÑкое зацикливание" name="auto_loop"/> + <check_box initial_value="false" label="Ð ÐµÐ°ÐºÑ†Ð¸Ñ Ð½Ð° первый щелчок" name="first_click_interact"/> + <check_box initial_value="false" label="Ðвтоувеличение" name="auto_zoom"/> + <check_box initial_value="false" label="ÐвтоматичеÑкое проигрывание" name="auto_play"/> <text name="media_setting_note"> Примечание. Жители могут переопределÑÑ‚ÑŒ Ñту наÑтройку. </text> - <check_box initial_value="ложь" label="ÐвтомаÑштабирование на объекте" name="auto_scale"/> + <check_box initial_value="false" label="ÐвтомаÑштабирование на объекте" name="auto_scale"/> <text name="size_label"> Размер: </text> diff --git a/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml index 680cba9c14..cfb006f346 100755 --- a/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml +++ b/indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml @@ -14,16 +14,16 @@ <text name="owner_label"> Владелец </text> - <check_box initial_value="ложь" label="Разрешить навигацию и взаимодейÑтвие" name="perms_owner_interact"/> - <check_box initial_value="ложь" label="Панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð½Ð°" name="perms_owner_control"/> + <check_box initial_value="false" label="Разрешить навигацию и взаимодейÑтвие" name="perms_owner_interact"/> + <check_box initial_value="false" label="Панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð½Ð°" name="perms_owner_control"/> <text name="group_label"> Группа: </text> - <check_box initial_value="ложь" label="Разрешить навигацию и взаимодейÑтвие" name="perms_group_interact"/> - <check_box initial_value="ложь" label="Панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð½Ð°" name="perms_group_control"/> + <check_box initial_value="false" label="Разрешить навигацию и взаимодейÑтвие" name="perms_group_interact"/> + <check_box initial_value="false" label="Панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð½Ð°" name="perms_group_control"/> <text name="anyone_label"> вÑем </text> - <check_box initial_value="ложь" label="Разрешить навигацию и взаимодейÑтвие" name="perms_anyone_interact"/> - <check_box initial_value="ложь" label="Панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð½Ð°" name="perms_anyone_control"/> + <check_box initial_value="false" label="Разрешить навигацию и взаимодейÑтвие" name="perms_anyone_interact"/> + <check_box initial_value="false" label="Панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð½Ð°" name="perms_anyone_control"/> </panel> diff --git a/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml b/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml index 6b30dc799c..bae491472a 100755 --- a/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml +++ b/indra/newview/skins/default/xui/ru/panel_media_settings_security.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="БезопаÑноÑÑ‚ÑŒ" name="Media Settings Security"> - <check_box initial_value="ложь" label="Разрешить доÑтуп к ÑÑылкам только по шаблону" name="whitelist_enable"/> + <check_box initial_value="false" label="Разрешить доÑтуп к ÑÑылкам только по шаблону" name="whitelist_enable"/> <text name="home_url_fails_some_items_in_whitelist"> Пункты, не подходÑщие Ð´Ð»Ñ Ð´Ð¾Ð¼Ð°ÑˆÐ½ÐµÐ¹ Ñтраницы, отмечены знаком: </text> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml index c7a850f78a..62617caed3 100755 --- a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml @@ -36,7 +36,7 @@ <combo_box.item label="Мое поÑледнее меÑто" name="MyLastLocation"/> <combo_box.item label="Мой дом" name="MyHome"/> </combo_box> - <check_box initial_value="иÑтина" label="Показывать на Ñкране входа" name="show_location_checkbox"/> + <check_box initial_value="true" label="Показывать на Ñкране входа" name="show_location_checkbox"/> <text name="name_tags_textbox"> Теги имен: </text> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml index 029e72e137..c93955fcdc 100755 --- a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml @@ -25,14 +25,14 @@ <text name="ShadersText"> Шейдеры: </text> - <check_box initial_value="иÑтина" label="ПрозрачноÑÑ‚ÑŒ воды" name="TransparentWater"/> - <check_box initial_value="иÑтина" label="РельефноÑÑ‚ÑŒ и ÑиÑние" name="BumpShiny"/> - <check_box initial_value="иÑтина" label="Локальный Ñвет" name="LocalLights"/> - <check_box initial_value="иÑтина" label="Базовые шейдеры" name="BasicShaders" tool_tip="Отключение Ñтого параметра может предотвратить завиÑание некоторых видеокарт"/> - <check_box initial_value="иÑтина" label="ÐтмоÑферные шейдеры" name="WindLightUseAtmosShaders"/> - <check_box initial_value="иÑтина" label="РаÑÑˆÐ¸Ñ€ÐµÐ½Ð½Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ оÑвещениÑ" name="UseLightShaders"/> - <check_box initial_value="иÑтина" label="Объемный Ñвет" name="UseSSAO"/> - <check_box initial_value="иÑтина" label="Глубина полÑ" name="UseDoF"/> + <check_box initial_value="true" label="ПрозрачноÑÑ‚ÑŒ воды" name="TransparentWater"/> + <check_box initial_value="true" label="РельефноÑÑ‚ÑŒ и ÑиÑние" name="BumpShiny"/> + <check_box initial_value="true" label="Локальный Ñвет" name="LocalLights"/> + <check_box initial_value="true" label="Базовые шейдеры" name="BasicShaders" tool_tip="Отключение Ñтого параметра может предотвратить завиÑание некоторых видеокарт"/> + <check_box initial_value="true" label="ÐтмоÑферные шейдеры" name="WindLightUseAtmosShaders"/> + <check_box initial_value="true" label="РаÑÑˆÐ¸Ñ€ÐµÐ½Ð½Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ оÑвещениÑ" name="UseLightShaders"/> + <check_box initial_value="true" label="Объемный Ñвет" name="UseSSAO"/> + <check_box initial_value="true" label="Глубина полÑ" name="UseDoF"/> <text name="shadows_label"> Тени: </text> @@ -95,9 +95,9 @@ <text name="AvatarRenderingText"> ОтриÑовка аватара: </text> - <check_box initial_value="иÑтина" label="ПлоÑкие аватары" name="AvatarImpostors"/> - <check_box initial_value="иÑтина" label="ÐÐ¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ñовка" name="AvatarVertexProgram"/> - <check_box initial_value="иÑтина" label="Одежда аватара" name="AvatarCloth"/> + <check_box initial_value="true" label="ПлоÑкие аватары" name="AvatarImpostors"/> + <check_box initial_value="true" label="ÐÐ¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ñовка" name="AvatarVertexProgram"/> + <check_box initial_value="true" label="Одежда аватара" name="AvatarCloth"/> <text name="TerrainDetailText"> Ландшафт: </text> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml index e9c0c7de10..1741397a84 100755 --- a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml @@ -18,10 +18,10 @@ <radio_item label="ИÑпользовать мой браузер (IE, Firefox, Safari)" name="external" tool_tip="Будет иÑпользоватьÑÑ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€, заданный в ÑиÑтеме по умолчанию. Ðе рекомендуетÑÑ, еÑли [APP_NAME] работает в полноÑкранном режиме." value="true"/> <radio_item label="ИÑпользовать вÑтроенный браузер" name="internal" tool_tip="Ð”Ð»Ñ Ð¿Ñ€Ð¾Ñмотра Ñправки, ÑÑылок на веб-Ñтраницы и Ñ‚. д. будет иÑпользоватьÑÑ Ð²Ñтроенный браузер. Ðтот браузер открываетÑÑ ÐºÐ°Ðº новое окно в [APP_NAME]." value=""/> </radio_group> - <check_box initial_value="иÑтина" label="Разрешить плагины" name="browser_plugins_enabled"/> - <check_box initial_value="иÑтина" label="Принимать файлы cookie" name="cookies_enabled"/> - <check_box initial_value="иÑтина" label="Разрешить Javascript" name="browser_javascript_enabled"/> - <check_box initial_value="ложь" label="Разрешить вÑплывающие окна" name="media_popup_enabled"/> + <check_box initial_value="true" label="Разрешить плагины" name="browser_plugins_enabled"/> + <check_box initial_value="true" label="Принимать файлы cookie" name="cookies_enabled"/> + <check_box initial_value="true" label="Разрешить Javascript" name="browser_javascript_enabled"/> + <check_box initial_value="false" label="Разрешить вÑплывающие окна" name="media_popup_enabled"/> <text name="Software updates:"> ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐŸÐž: </text> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml index bf673750d2..44f270527c 100755 --- a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml @@ -4,7 +4,7 @@ Ñреднюю кнопку мыши </panel.string> <slider label="ÐžÐ±Ñ‰Ð°Ñ Ð³Ñ€Ð¾Ð¼ÐºÐ¾ÑÑ‚ÑŒ" name="System Volume"/> - <check_box initial_value="иÑтина" name="mute_when_minimized"/> + <check_box initial_value="true" name="mute_when_minimized"/> <text name="mute_chb_label"> Заглушать, когда Ñвернуто </text> @@ -17,9 +17,9 @@ <check_box label="Включено" name="enable_media"/> <slider label="ГолоÑовой чат" name="Voice Volume"/> <check_box label="Включено" name="enable_voice_check"/> - <check_box label="Разрешить автовоÑпроизведение медиа" name="media_auto_play_btn" tool_tip="УÑтановка флажка позволит вам автоматичеÑки воÑпроизводить медиа" value="иÑтина"/> - <check_box label="ВоÑпроизводить медиа, приÑоединенные к другому аватару" name="media_show_on_others_btn" tool_tip="СнÑтие флажка Ñкроет медиа, приÑоединенные к другому аватару" value="иÑтина"/> - <check_box label="Сопровождать жеÑÑ‚Ñ‹ звуками" name="gesture_audio_play_btn" tool_tip="УÑтановите флажок, чтобы Ñлышать звуки при жеÑтах" value="иÑтина"/> + <check_box label="Разрешить автовоÑпроизведение медиа" name="media_auto_play_btn" tool_tip="УÑтановка флажка позволит вам автоматичеÑки воÑпроизводить медиа" value="true"/> + <check_box label="ВоÑпроизводить медиа, приÑоединенные к другому аватару" name="media_show_on_others_btn" tool_tip="СнÑтие флажка Ñкроет медиа, приÑоединенные к другому аватару" value="true"/> + <check_box label="Сопровождать жеÑÑ‚Ñ‹ звуками" name="gesture_audio_play_btn" tool_tip="УÑтановите флажок, чтобы Ñлышать звуки при жеÑтах" value="true"/> <text name="voice_chat_settings"> ÐаÑтройки голоÑового чата </text> diff --git a/indra/newview/skins/default/xui/ru/panel_tools_texture.xml b/indra/newview/skins/default/xui/ru/panel_tools_texture.xml index 60717a3d1d..1abf729487 100644 --- a/indra/newview/skins/default/xui/ru/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/ru/panel_tools_texture.xml @@ -112,5 +112,5 @@ <spinner label="Поворот, градуÑÑ‹" name="shinyRot"/> <spinner label="Смещение по горизонтали" name="shinyOffsetU"/> <spinner label="Смещение по вертикали" name="shinyOffsetV"/> - <check_box initial_value="ложь" label="СоглаÑование" name="checkbox planar align" tool_tip="СоглаÑование текÑтур на вÑех выбранных гранÑÑ… по поÑледней выбранной грани. Должно быть выбрано наложение по плоÑкоÑÑ‚Ñм."/> + <check_box initial_value="false" label="СоглаÑование" name="checkbox planar align" tool_tip="СоглаÑование текÑтур на вÑех выбранных гранÑÑ… по поÑледней выбранной грани. Должно быть выбрано наложение по плоÑкоÑÑ‚Ñм."/> </panel> diff --git a/indra/newview/skins/default/xui/tr/floater_tools.xml b/indra/newview/skins/default/xui/tr/floater_tools.xml index 4bf0372a8a..39a3569efa 100755 --- a/indra/newview/skins/default/xui/tr/floater_tools.xml +++ b/indra/newview/skins/default/xui/tr/floater_tools.xml @@ -465,16 +465,11 @@ <combo_box.item label="vakum" name="suction"/> <combo_box.item label="örgü" name="weave"/> </combo_box> - <check_box initial_value="false" label="Planar yüzleri hizala" name="checkbox planar align" tool_tip="Tüm seçili yüzeylerdeki dokuları son seçili yüzdekiyle hizalar. Planar doku eÅŸleÅŸtirmesi gerektirir."/> - <text name="rpt"> - Tekrarlar / Yüz - </text> <spinner label="Yatay (U)" name="TexScaleU"/> <check_box label="Çevir" name="checkbox flip s"/> <spinner label="Dikey (V)" name="TexScaleV"/> <check_box label="Çevir" name="checkbox flip t"/> <spinner label="Döndürme*" name="TexRot"/> - <spinner label="Tekrarlar / Metre" name="rptctrl"/> <button label="Uygula" label_selected="Uygula" name="button apply"/> <text name="tex offset"> Doku Dengeleyicisi diff --git a/indra/newview/skins/default/xui/zh/floater_tools.xml b/indra/newview/skins/default/xui/zh/floater_tools.xml index 33c9ebeaf0..7e6c972f40 100755 --- a/indra/newview/skins/default/xui/zh/floater_tools.xml +++ b/indra/newview/skins/default/xui/zh/floater_tools.xml @@ -465,16 +465,11 @@ <combo_box.item label="å¸é™„" name="suction"/> <combo_box.item label="編織" name="weave"/> </combo_box> - <check_box initial_value="false" label="å°é½Šå¹³é¢" name="checkbox planar align" tool_tip="以最後所é¸æ“‡çš„é¢ç‚ºåŸºæº–,å°é½Šå…¨éƒ¨æ‰€é¸æ“‡çš„é¢ä¸Šçš„æ質。 é€™å¿…é ˆä½¿ç”¨å¹³é¢æè³ªæ˜ å°„æ–¹å¼ã€‚"/> - <text name="rpt"> - é‡è¦†æ¬¡æ•¸ / é¢ - </text> <spinner label="水平(U)" name="TexScaleU"/> <check_box label="翻轉" name="checkbox flip s"/> <spinner label="垂直(V)" name="TexScaleV"/> <check_box label="翻轉" name="checkbox flip t"/> <spinner label="旋轉˚" name="TexRot"/> - <spinner label="é‡è¦†æ¬¡æ•¸ / 公尺" name="rptctrl"/> <button label="套用" label_selected="套用" name="button apply"/> <text name="tex offset"> æ質ä½ç§» diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml b/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml index 0fcc49b203..ab4d9a881d 100755 --- a/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml @@ -15,7 +15,7 @@ 網é : </text> <radio_group name="use_external_browser"> - <radio_item label="使用我的網é ç€è¦½å™¨ï¼ˆä¾‹å¦‚ IE, Firefox, Safari)" name="external" tool_tip="使用系統é è¨çš„ç€è¦½å™¨ç€è¦½å¹«åŠ©ï¼Œé–‹å•Ÿç¶²é 。全螢幕模å¼ä¸‹ä¸å»ºè°é€™éº¼åšã€‚" value="1"/> + <radio_item label="使用我的網é ç€è¦½å™¨ï¼ˆä¾‹å¦‚ IE, Firefox, Safari)" name="external" tool_tip="使用系統é è¨çš„ç€è¦½å™¨ç€è¦½å¹«åŠ©ï¼Œé–‹å•Ÿç¶²é 。全螢幕模å¼ä¸‹ä¸å»ºè°é€™éº¼åšã€‚" value="true"/> <radio_item label="使用內建網é ç€è¦½å™¨" name="internal" tool_tip="使用內建的ç€è¦½å™¨ç€è¦½å¹«åŠ©ï¼Œé–‹å•Ÿç¶²é 。該ç€è¦½å™¨å°‡é€éŽ [APP_NAME] 開啟新視窗。" value=""/> </radio_group> <check_box initial_value="true" label="啟用外掛" name="browser_plugins_enabled"/> diff --git a/indra/newview/tests/gpus_results.txt b/indra/newview/tests/gpus_results.txt index 68e2e688cb..106593afd5 100755 --- a/indra/newview/tests/gpus_results.txt +++ b/indra/newview/tests/gpus_results.txt @@ -1,1726 +1,3111 @@ -GPU String Supported? Class Recognizer ------------------------------------------------------------------------------------------------------- ----------- ----- ------------------------------------ -ATI NO MATCH -ATI 3D-Analyze unsupported 0 ATI 3D-Analyze -ATI ASUS A9xxx supported 1 ATI ASUS A9xxx -ATI ASUS AH24xx supported 1 ATI ASUS AH24xx -ATI ASUS AH26xx supported 3 ATI ASUS AH26xx -ATI ASUS AH34xx supported 1 ATI ASUS AH34xx -ATI ASUS AH36xx supported 3 ATI ASUS AH36xx -ATI ASUS AH46xx supported 3 ATI ASUS AH46xx -ATI ASUS AX3xx supported 1 ATI ASUS AX3xx -ATI ASUS AX5xx supported 1 ATI ASUS AX5xx -ATI ASUS AX8xx supported 2 ATI ASUS AX8xx -ATI ASUS EAH38xx supported 3 ATI ASUS EAH38xx -ATI ASUS EAH43xx supported 1 ATI ASUS EAH43xx -ATI ASUS EAH45xx supported 1 ATI ASUS EAH45xx -ATI ASUS EAH48xx supported 3 ATI ASUS EAH48xx -ATI ASUS EAH57xx supported 3 ATI ASUS EAH57xx -ATI ASUS EAH58xx supported 3 ATI ASUS EAH58xx -ATI ASUS X1xxx supported 3 ATI ASUS Radeon X1xxx -ATI All-in-Wonder 9xxx supported 1 ATI All-in-Wonder 9xxx -ATI All-in-Wonder HD supported 1 ATI All-in-Wonder HD -ATI All-in-Wonder PCI-E supported 1 ATI All-in-Wonder PCI-E -ATI All-in-Wonder X1800 supported 3 ATI All-in-Wonder X1800 -ATI All-in-Wonder X1900 supported 3 ATI All-in-Wonder X1900 -ATI All-in-Wonder X600 supported 1 ATI All-in-Wonder X600 -ATI All-in-Wonder X800 supported 2 ATI All-in-Wonder X800 -ATI Diamond X1xxx supported 1 ATI Radeon X1xxx -ATI Display Adapter supported 0 ATI Display Adapter -ATI FireGL supported 0 ATI FireGL -ATI FireGL 5200 supported 0 ATI FireGL -ATI FireGL 5xxx supported 0 ATI FireGL -ATI FireMV supported 0 ATI FireMV -ATI Generic unsupported 0 ATI Generic -ATI Hercules 9800 supported 1 ATI Hercules 9800 -ATI IGP 340M unsupported 0 ATI IGP 340M -ATI M52 supported 1 ATI M52 -ATI M54 supported 1 ATI M54 -ATI M56 supported 1 ATI M56 -ATI M71 supported 1 ATI M71 -ATI M72 supported 1 ATI M72 -ATI M76 supported 3 ATI M76 -ATI Mobility Radeon supported 0 ATI Radeon -ATI Mobility Radeon 7xxx supported 0 ATI Mobility Radeon 7xxx -ATI Mobility Radeon 9600 supported 0 ATI Mobility Radeon 9600 -ATI Mobility Radeon 9700 supported 1 ATI Mobility Radeon 9700 -ATI Mobility Radeon 9800 supported 1 ATI Mobility Radeon 9800 -ATI Mobility Radeon HD 2300 supported 1 ATI Mobility Radeon HD 2300 -ATI Mobility Radeon HD 2400 supported 1 ATI Mobility Radeon HD 2400 -ATI Mobility Radeon HD 2600 supported 3 ATI Mobility Radeon HD 2600 -ATI Mobility Radeon HD 2700 supported 3 ATI Mobility Radeon HD 2700 -ATI Mobility Radeon HD 3400 supported 2 ATI Mobility Radeon HD 3400 -ATI Mobility Radeon HD 3600 supported 3 ATI Mobility Radeon HD 3600 -ATI Mobility Radeon HD 3800 supported 3 ATI Mobility Radeon HD 3800 -ATI Mobility Radeon HD 4200 supported 2 ATI Mobility Radeon HD 4200 -ATI Mobility Radeon HD 4300 supported 2 ATI Mobility Radeon HD 4300 -ATI Mobility Radeon HD 4500 supported 3 ATI Mobility Radeon HD 4500 -ATI Mobility Radeon HD 4600 supported 3 ATI Mobility Radeon HD 4600 -ATI Mobility Radeon HD 4800 supported 3 ATI Mobility Radeon HD 4800 -ATI Mobility Radeon HD 5400 supported 3 ATI Mobility Radeon HD 5400 -ATI Mobility Radeon HD 5600 supported 3 ATI Mobility Radeon HD 5600 -ATI Mobility Radeon X1xxx supported 1 ATI Radeon X1xxx -ATI Mobility Radeon X2xxx supported 1 ATI Radeon X2xxx -ATI Mobility Radeon X3xx supported 0 ATI Radeon X300 -ATI Mobility Radeon X6xx supported 1 ATI Radeon X600 -ATI Mobility Radeon X7xx supported 1 ATI Radeon X700 -ATI Mobility Radeon Xxxx supported 0 ATI Radeon -ATI RV380 supported 0 ATI RV380 -ATI RV530 supported 1 ATI RV530 -ATI Radeon 2100 supported 0 ATI Radeon 2100 -ATI Radeon 3000 supported 0 ATI Radeon 3000 -ATI Radeon 3100 supported 1 ATI Radeon 3100 -ATI Radeon 7000 supported 0 ATI Radeon 7xxx -ATI Radeon 7xxx supported 0 ATI Radeon 7xxx -ATI Radeon 8xxx supported 0 ATI Radeon 8xxx -ATI Radeon 9000 supported 0 ATI Radeon 9000 -ATI Radeon 9100 supported 0 ATI Radeon 9100 -ATI Radeon 9200 supported 0 ATI Radeon 9200 -ATI Radeon 9500 supported 0 ATI Radeon 9500 -ATI Radeon 9600 supported 0 ATI Radeon 9600 -ATI Radeon 9700 supported 1 ATI Radeon 9700 -ATI Radeon 9800 supported 1 ATI Radeon 9800 -ATI Radeon HD 2300 supported 0 ATI Radeon HD 2300 -ATI Radeon HD 2400 supported 1 ATI Radeon HD 2400 -ATI Radeon HD 2600 supported 2 ATI Radeon HD 2600 -ATI Radeon HD 2900 supported 3 ATI Radeon HD 2900 -ATI Radeon HD 3000 supported 0 ATI Radeon HD 3000 -ATI Radeon HD 3100 supported 1 ATI Radeon HD 3100 -ATI Radeon HD 3200 supported 1 ATI Radeon HD 3200 -ATI Radeon HD 3300 supported 1 ATI Radeon HD 3300 -ATI Radeon HD 3400 supported 1 ATI Radeon HD 3400 -ATI Radeon HD 3600 supported 3 ATI Radeon HD 3600 -ATI Radeon HD 3800 supported 3 ATI Radeon HD 3800 -ATI Radeon HD 4200 supported 1 ATI Radeon HD 4200 -ATI Radeon HD 4300 supported 1 ATI Radeon HD 4300 -ATI Radeon HD 4500 supported 3 ATI Radeon HD 4500 -ATI Radeon HD 4600 supported 3 ATI Radeon HD 4600 -ATI Radeon HD 4700 supported 3 ATI Radeon HD 4700 -ATI Radeon HD 4800 supported 3 ATI Radeon HD 4800 -ATI Radeon HD 5400 supported 3 ATI Radeon HD 5400 -ATI Radeon HD 5500 supported 3 ATI Radeon HD 5500 -ATI Radeon HD 5600 supported 3 ATI Radeon HD 5600 -ATI Radeon HD 5700 supported 3 ATI Radeon HD 5700 -ATI Radeon HD 5800 supported 3 ATI Radeon HD 5800 -ATI Radeon HD 5900 supported 3 ATI Radeon HD 5900 -ATI Radeon HD 6200 supported 3 ATI Radeon HD 6200 -ATI Radeon HD 6300 supported 3 ATI Radeon HD 6300 -ATI Radeon HD 6500 supported 3 ATI Radeon HD 6500 -ATI Radeon HD 6800 supported 3 ATI Radeon HD 6800 -ATI Radeon HD 6900 supported 3 ATI Radeon HD 6900 -ATI Radeon OpenGL unsupported 0 ATI Radeon OpenGL -ATI Radeon RV250 supported 0 ATI Radeon RV250 -ATI Radeon RV600 supported 1 ATI Radeon RV600 -ATI Radeon RX9550 supported 1 ATI Radeon RX9550 -ATI Radeon VE unsupported 0 ATI Radeon VE -ATI Radeon X1000 supported 1 ATI Radeon X1xxx -ATI Radeon X1200 supported 1 ATI Radeon X1xxx -ATI Radeon X1300 supported 1 ATI Radeon X13xx -ATI Radeon X13xx supported 1 ATI Radeon X13xx -ATI Radeon X1400 supported 1 ATI Radeon X1xxx -ATI Radeon X1500 supported 2 ATI Radeon X15xx -ATI Radeon X1600 supported 2 ATI Radeon X16xx -ATI Radeon X16xx supported 2 ATI Radeon X16xx -ATI Radeon X1700 supported 2 ATI Radeon X17xx -ATI Radeon X1800 supported 3 ATI Radeon X18xx -ATI Radeon X1900 supported 3 ATI Radeon X19xx -ATI Radeon X19xx supported 3 ATI Radeon X19xx -ATI Radeon X1xxx supported 1 ATI Radeon X1xxx -ATI Radeon X300 supported 0 ATI Radeon X300 -ATI Radeon X500 supported 0 ATI Radeon X500 -ATI Radeon X600 supported 1 ATI Radeon X600 -ATI Radeon X700 supported 1 ATI Radeon X700 -ATI Radeon X7xx supported 1 ATI Radeon X700 -ATI Radeon X800 supported 2 ATI Radeon X800 -ATI Radeon Xpress supported 0 ATI Radeon Xpress -ATI Rage 128 supported 0 ATI Rage 128 -ATI Technologies Inc. supported 0 ATI Technologies -ATI Technologies Inc. x86 supported 0 ATI Technologies -ATI Technologies Inc. x86/SSE2 supported 0 ATI Technologies -ATI Technologies Inc. (Vista) ATI Mobility Radeon HD 5730 supported 3 ATI Mobility Radeon HD 5700 -ATI Technologies Inc. 128MB ATI Radeon X1300 x86/SSE2 supported 1 ATI Radeon X13xx -ATI Technologies Inc. 256MB ATI Radeon X1300PRO x86/SSE2 supported 1 ATI Radeon X13xx -ATI Technologies Inc. AMD 760G supported 1 ATI 760G/Radeon 3000 -ATI Technologies Inc. AMD 760G (Microsoft WDDM 1.1) supported 1 ATI 760G/Radeon 3000 -ATI Technologies Inc. AMD 780L supported 1 ATI 780L/Radeon 3000 -ATI Technologies Inc. AMD FirePro 2270 supported 1 ATI FirePro 2000 -ATI Technologies Inc. AMD M860G with ATI Mobility Radeon 4100 supported 1 ATI Mobility Radeon 4100 -ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4200 supported 2 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. AMD M880G with ATI Mobility Radeon HD 4250 supported 2 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. AMD RADEON HD 6350 supported 3 ATI Radeon HD 6300 -ATI Technologies Inc. AMD RADEON HD 6450 supported 3 ATI Radeon HD 6400 -ATI Technologies Inc. AMD RADEON HD 6670 supported 3 ATI Radeon HD 6600 -ATI Technologies Inc. AMD Radeon 6600M and 6700M Series supported 0 ATI Technologies -ATI Technologies Inc. AMD Radeon HD 6200 series Graphics supported 3 ATI Radeon HD 6200 -ATI Technologies Inc. AMD Radeon HD 6250 Graphics supported 3 ATI Radeon HD 6200 -ATI Technologies Inc. AMD Radeon HD 6290 Graphics supported 3 ATI Radeon HD 6200 -ATI Technologies Inc. AMD Radeon HD 6300 series Graphics supported 3 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6300M Series supported 3 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6310 Graphics supported 3 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6310M supported 3 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6330M supported 3 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6350 supported 3 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6370M supported 3 ATI Radeon HD 6300 -ATI Technologies Inc. AMD Radeon HD 6400M Series supported 3 ATI Radeon HD 64xx -ATI Technologies Inc. AMD Radeon HD 6450 supported 3 ATI Radeon HD 6400 -ATI Technologies Inc. AMD Radeon HD 6470M supported 3 ATI Radeon HD 64xx -ATI Technologies Inc. AMD Radeon HD 6490M supported 3 ATI Radeon HD 64xx -ATI Technologies Inc. AMD Radeon HD 6500 Series supported 3 ATI Radeon HD 6500 -ATI Technologies Inc. AMD Radeon HD 6500M Series supported 3 ATI Radeon HD 65xx -ATI Technologies Inc. AMD Radeon HD 6500M/5600/5700 Series supported 3 ATI Radeon HD 65xx -ATI Technologies Inc. AMD Radeon HD 6530M supported 3 ATI Radeon HD 65xx -ATI Technologies Inc. AMD Radeon HD 6550M supported 3 ATI Radeon HD 65xx -ATI Technologies Inc. AMD Radeon HD 6570 supported 3 ATI Radeon HD 6500 -ATI Technologies Inc. AMD Radeon HD 6570M supported 3 ATI Radeon HD 65xx -ATI Technologies Inc. AMD Radeon HD 6570M/5700 Series supported 3 ATI Radeon HD 65xx -ATI Technologies Inc. AMD Radeon HD 6600 Series supported 3 ATI Radeon HD 6600 -ATI Technologies Inc. AMD Radeon HD 6600M Series supported 3 ATI Radeon HD 66xx -ATI Technologies Inc. AMD Radeon HD 6630M supported 3 ATI Radeon HD 66xx -ATI Technologies Inc. AMD Radeon HD 6650M supported 3 ATI Radeon HD 66xx -ATI Technologies Inc. AMD Radeon HD 6670 supported 3 ATI Radeon HD 6600 -ATI Technologies Inc. AMD Radeon HD 6700 Series supported 3 ATI Radeon HD 6700 -ATI Technologies Inc. AMD Radeon HD 6750 supported 3 ATI Radeon HD 6700 -ATI Technologies Inc. AMD Radeon HD 6750M supported 3 ATI Radeon HD 6700 -ATI Technologies Inc. AMD Radeon HD 6770 supported 3 ATI Radeon HD 6700 -ATI Technologies Inc. AMD Radeon HD 6770M supported 3 ATI Radeon HD 6700 -ATI Technologies Inc. AMD Radeon HD 6800 Series supported 3 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6800M Series supported 3 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6850 supported 3 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6850M supported 3 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6870 supported 3 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6870M supported 3 ATI Radeon HD 6800 -ATI Technologies Inc. AMD Radeon HD 6900 Series supported 3 ATI Radeon HD 6900 -ATI Technologies Inc. AMD Radeon HD 6900M Series supported 3 ATI Radeon HD 6900 -ATI Technologies Inc. AMD Radeon HD 6970M supported 3 ATI Radeon HD 6900 -ATI Technologies Inc. AMD Radeon HD 6990 supported 3 ATI Radeon HD 6900 -ATI Technologies Inc. AMD Radeon(TM) HD 6470M supported 3 ATI Radeon HD 64xx -ATI Technologies Inc. AMD Radeon(TM) HD 6480G supported 3 ATI Radeon HD 64xx -ATI Technologies Inc. AMD Radeon(TM) HD 6520G supported 3 ATI Radeon HD 65xx -ATI Technologies Inc. AMD Radeon(TM) HD 6620G supported 3 ATI Radeon HD 66xx -ATI Technologies Inc. AMD Radeon(TM) HD 6630M supported 3 ATI Radeon HD 66xx -ATI Technologies Inc. ASUS 5870 Eyefinity 6 supported 0 ATI Technologies -ATI Technologies Inc. ASUS A9550 Series supported 1 ATI ASUS A9xxx -ATI Technologies Inc. ASUS AH2600 Series supported 3 ATI ASUS AH26xx -ATI Technologies Inc. ASUS AH3450 Series supported 1 ATI ASUS AH34xx -ATI Technologies Inc. ASUS AH3650 Series supported 3 ATI ASUS AH36xx -ATI Technologies Inc. ASUS AH4650 Series supported 3 ATI ASUS AH46xx -ATI Technologies Inc. ASUS ARES supported 3 ATI ASUS ARES -ATI Technologies Inc. ASUS EAH2900 Series supported 3 ATI ASUS EAH29xx -ATI Technologies Inc. ASUS EAH3450 Series supported 1 ATI ASUS AH34xx -ATI Technologies Inc. ASUS EAH3650 Series supported 3 ATI ASUS AH36xx -ATI Technologies Inc. ASUS EAH4350 series supported 1 ATI ASUS EAH43xx -ATI Technologies Inc. ASUS EAH4550 series supported 1 ATI ASUS EAH45xx -ATI Technologies Inc. ASUS EAH4650 series supported 3 ATI ASUS AH46xx -ATI Technologies Inc. ASUS EAH4670 series supported 3 ATI ASUS AH46xx -ATI Technologies Inc. ASUS EAH4750 Series supported 0 ATI Technologies -ATI Technologies Inc. ASUS EAH4770 Series supported 0 ATI Technologies -ATI Technologies Inc. ASUS EAH4770 series supported 0 ATI Technologies -ATI Technologies Inc. ASUS EAH4850 series supported 3 ATI ASUS EAH48xx -ATI Technologies Inc. ASUS EAH5450 Series supported 0 ATI Technologies -ATI Technologies Inc. ASUS EAH5550 Series supported 0 ATI Technologies -ATI Technologies Inc. ASUS EAH5570 series supported 0 ATI Technologies -ATI Technologies Inc. ASUS EAH5670 Series supported 0 ATI Technologies -ATI Technologies Inc. ASUS EAH5750 Series supported 3 ATI ASUS EAH57xx -ATI Technologies Inc. ASUS EAH5770 Series supported 3 ATI ASUS EAH57xx -ATI Technologies Inc. ASUS EAH5830 Series supported 3 ATI ASUS EAH58xx -ATI Technologies Inc. ASUS EAH5850 Series supported 3 ATI ASUS EAH58xx -ATI Technologies Inc. ASUS EAH5870 Series supported 3 ATI ASUS EAH58xx -ATI Technologies Inc. ASUS EAH5970 Series supported 0 ATI Technologies -ATI Technologies Inc. ASUS EAH6450 Series supported 3 ATI ASUS EAH6xxx -ATI Technologies Inc. ASUS EAH6570 Series supported 3 ATI ASUS EAH6xxx -ATI Technologies Inc. ASUS EAH6670 Series supported 3 ATI ASUS EAH6xxx -ATI Technologies Inc. ASUS EAH6850 Series supported 3 ATI ASUS EAH6xxx -ATI Technologies Inc. ASUS EAH6870 Series supported 3 ATI ASUS EAH6xxx -ATI Technologies Inc. ASUS EAH6950 Series supported 3 ATI ASUS EAH6xxx -ATI Technologies Inc. ASUS EAH6970 Series supported 3 ATI ASUS EAH6xxx -ATI Technologies Inc. ASUS EAHG4670 series supported 0 ATI Technologies -ATI Technologies Inc. ASUS Extreme AX600 Series supported 0 ATI Technologies -ATI Technologies Inc. ASUS Extreme AX600XT-TD supported 0 ATI Technologies -ATI Technologies Inc. ASUS X1300 Series x86/SSE2 supported 3 ATI ASUS Radeon X1xxx -ATI Technologies Inc. ASUS X1550 Series supported 3 ATI ASUS Radeon X1xxx -ATI Technologies Inc. ASUS X1950 Series x86/SSE2 supported 3 ATI ASUS Radeon X1xxx -ATI Technologies Inc. ASUS X800 Series supported 0 ATI Technologies -ATI Technologies Inc. ASUS X850 Series supported 0 ATI Technologies -ATI Technologies Inc. ATI All-in-Wonder HD supported 1 ATI All-in-Wonder HD -ATI Technologies Inc. ATI FirePro 2260 supported 1 ATI FirePro 2000 -ATI Technologies Inc. ATI FirePro 2450 supported 1 ATI FirePro 2000 -ATI Technologies Inc. ATI FirePro M5800 supported 3 ATI FirePro M5800 -ATI Technologies Inc. ATI FirePro M7740 supported 3 ATI FirePro M7740 -ATI Technologies Inc. ATI FirePro M7820 supported 3 ATI FirePro M7820 -ATI Technologies Inc. ATI FirePro V3700 (FireGL) supported 0 ATI FireGL -ATI Technologies Inc. ATI FirePro V3800 supported 1 ATI FirePro 3000 -ATI Technologies Inc. ATI FirePro V4800 supported 2 ATI FirePro 4000 -ATI Technologies Inc. ATI FirePro V4800 (FireGL) supported 0 ATI FireGL -ATI Technologies Inc. ATI FirePro V5800 supported 3 ATI FirePro 5000 -ATI Technologies Inc. ATI FirePro V7800 supported 3 ATI FirePro 7000 -ATI Technologies Inc. ATI MOBILITY RADEON 9600/9700 Series supported 1 ATI Mobility Radeon 9700 -ATI Technologies Inc. ATI MOBILITY RADEON 9XXX x86/SSE2 supported 0 ATI Technologies -ATI Technologies Inc. ATI MOBILITY RADEON HD 2300 supported 1 ATI Mobility Radeon HD 2300 -ATI Technologies Inc. ATI MOBILITY RADEON HD 3450 supported 2 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI MOBILITY RADEON HD 3650 supported 3 ATI Mobility Radeon HD 3600 -ATI Technologies Inc. ATI MOBILITY RADEON X1600 supported 2 ATI Radeon X16xx -ATI Technologies Inc. ATI MOBILITY RADEON X2300 supported 1 ATI Radeon X2xxx -ATI Technologies Inc. ATI MOBILITY RADEON X2300 HD x86/SSE2 supported 1 ATI Radeon X2xxx -ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2 supported 1 ATI Radeon X2xxx -ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/SSE2 supported 1 ATI Radeon X2xxx -ATI Technologies Inc. ATI MOBILITY RADEON X300 supported 0 ATI Radeon X300 -ATI Technologies Inc. ATI MOBILITY RADEON X600 supported 1 ATI Radeon X600 -ATI Technologies Inc. ATI MOBILITY RADEON X700 supported 1 ATI Radeon X700 -ATI Technologies Inc. ATI MOBILITY RADEON XPRESS 200 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Mobility FireGL V5700 supported 1 ATI FireGL 5xxx -ATI Technologies Inc. ATI Mobility Radeon 4100 supported 1 ATI Mobility Radeon 4100 -ATI Technologies Inc. ATI Mobility Radeon Graphics supported 0 ATI Technologies -ATI Technologies Inc. ATI Mobility Radeon HD 2300 supported 1 ATI Mobility Radeon HD 2300 -ATI Technologies Inc. ATI Mobility Radeon HD 2400 supported 1 ATI Mobility Radeon HD 2400 -ATI Technologies Inc. ATI Mobility Radeon HD 2400 XT supported 1 ATI Mobility Radeon HD 2400 -ATI Technologies Inc. ATI Mobility Radeon HD 2600 supported 3 ATI Mobility Radeon HD 2600 -ATI Technologies Inc. ATI Mobility Radeon HD 2600 XT supported 3 ATI Mobility Radeon HD 2600 -ATI Technologies Inc. ATI Mobility Radeon HD 2700 supported 3 ATI Mobility Radeon HD 2700 -ATI Technologies Inc. ATI Mobility Radeon HD 3400 Series supported 2 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3410 supported 2 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3430 supported 2 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3450 supported 2 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3470 supported 2 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3470 Hybrid X2 supported 2 ATI Mobility Radeon HD 3400 -ATI Technologies Inc. ATI Mobility Radeon HD 3650 supported 3 ATI Mobility Radeon HD 3600 -ATI Technologies Inc. ATI Mobility Radeon HD 3670 supported 3 ATI Mobility Radeon HD 3600 -ATI Technologies Inc. ATI Mobility Radeon HD 4200 supported 2 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4200 Series supported 2 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4225 supported 2 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4225 Series supported 2 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4250 supported 2 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4250 Graphics supported 2 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4250 Series supported 2 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4270 supported 2 ATI Mobility Radeon HD 4200 -ATI Technologies Inc. ATI Mobility Radeon HD 4300 Series supported 2 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4300/4500 Series supported 2 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4330 supported 2 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4330 Series supported 2 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4350 supported 2 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4350 Series supported 2 ATI Mobility Radeon HD 4300 -ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series supported 3 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4500/5100 Series supported 3 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4530 supported 3 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4530 Series supported 3 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4550 supported 3 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4570 supported 3 ATI Mobility Radeon HD 4500 -ATI Technologies Inc. ATI Mobility Radeon HD 4600 Series supported 3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility Radeon HD 4650 supported 3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility Radeon HD 4650 Series supported 3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility Radeon HD 4670 supported 3 ATI Mobility Radeon HD 4600 -ATI Technologies Inc. ATI Mobility Radeon HD 4830 Series supported 3 ATI Mobility Radeon HD 4800 -ATI Technologies Inc. ATI Mobility Radeon HD 4850 supported 3 ATI Mobility Radeon HD 4800 -ATI Technologies Inc. ATI Mobility Radeon HD 4870 supported 3 ATI Mobility Radeon HD 4800 -ATI Technologies Inc. ATI Mobility Radeon HD 5000 supported 0 ATI Technologies -ATI Technologies Inc. ATI Mobility Radeon HD 5000 Series supported 0 ATI Technologies -ATI Technologies Inc. ATI Mobility Radeon HD 5145 supported 3 ATI Mobility Radeon HD 5100 -ATI Technologies Inc. ATI Mobility Radeon HD 5165 supported 3 ATI Mobility Radeon HD 5100 -ATI Technologies Inc. ATI Mobility Radeon HD 530v supported 1 ATI Mobility Radeon HD 530v -ATI Technologies Inc. ATI Mobility Radeon HD 5400 Series supported 3 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI Mobility Radeon HD 540v supported 2 ATI Mobility Radeon HD 540v -ATI Technologies Inc. ATI Mobility Radeon HD 5430 supported 3 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI Mobility Radeon HD 5450 supported 3 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI Mobility Radeon HD 5450 Series supported 3 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI Mobility Radeon HD 545v supported 2 ATI Mobility Radeon HD 545v -ATI Technologies Inc. ATI Mobility Radeon HD 5470 supported 3 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI Mobility Radeon HD 550v supported 2 ATI Mobility Radeon HD 550v -ATI Technologies Inc. ATI Mobility Radeon HD 5600/5700 Series supported 3 ATI Mobility Radeon HD 5600 -ATI Technologies Inc. ATI Mobility Radeon HD 560v supported 2 ATI Mobility Radeon HD 560v -ATI Technologies Inc. ATI Mobility Radeon HD 5650 supported 3 ATI Mobility Radeon HD 5600 -ATI Technologies Inc. ATI Mobility Radeon HD 5700 Series supported 3 ATI Mobility Radeon HD 5700 -ATI Technologies Inc. ATI Mobility Radeon HD 5730 supported 3 ATI Mobility Radeon HD 5700 -ATI Technologies Inc. ATI Mobility Radeon HD 5800 Series supported 3 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Mobility Radeon HD 5830 Series supported 3 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Mobility Radeon HD 5850 supported 3 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Mobility Radeon HD 5870 supported 3 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Mobility Radeon HD 6300 series supported 3 ATI Mobility Radeon HD 6300 -ATI Technologies Inc. ATI Mobility Radeon HD 6370 supported 3 ATI Mobility Radeon HD 6300 -ATI Technologies Inc. ATI Mobility Radeon HD 6470M supported 3 ATI Mobility Radeon HD 6400M -ATI Technologies Inc. ATI Mobility Radeon HD 6550 supported 3 ATI Mobility Radeon HD 6500M -ATI Technologies Inc. ATI Mobility Radeon HD 6570 supported 3 ATI Mobility Radeon HD 6500M -ATI Technologies Inc. ATI Mobility Radeon X1300 supported 1 ATI Radeon X13xx -ATI Technologies Inc. ATI Mobility Radeon X1300 x86/MMX/3DNow!/SSE2 supported 1 ATI Radeon X13xx -ATI Technologies Inc. ATI Mobility Radeon X1300 x86/SSE2 supported 1 ATI Radeon X13xx -ATI Technologies Inc. ATI Mobility Radeon X1350 supported 1 ATI Radeon X13xx -ATI Technologies Inc. ATI Mobility Radeon X1350 x86/SSE2 supported 1 ATI Radeon X13xx -ATI Technologies Inc. ATI Mobility Radeon X1400 supported 1 ATI Radeon X1xxx -ATI Technologies Inc. ATI Mobility Radeon X1400 x86/SSE2 supported 1 ATI Radeon X1xxx -ATI Technologies Inc. ATI Mobility Radeon X1600 supported 2 ATI Radeon X16xx -ATI Technologies Inc. ATI Mobility Radeon X1600 x86/SSE2 supported 2 ATI Radeon X16xx -ATI Technologies Inc. ATI Mobility Radeon X1700 x86/SSE2 supported 2 ATI Radeon X17xx -ATI Technologies Inc. ATI Mobility Radeon X2300 supported 1 ATI Radeon X2xxx -ATI Technologies Inc. ATI Mobility Radeon X2300 (Omega 3.8.442) supported 1 ATI Radeon X2xxx -ATI Technologies Inc. ATI Mobility Radeon X2300 x86 supported 1 ATI Radeon X2xxx -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2 supported 1 ATI Radeon X2xxx -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2 supported 1 ATI Radeon X2xxx -ATI Technologies Inc. ATI Mobility Radeon X2500 supported 1 ATI Radeon X2xxx -ATI Technologies Inc. ATI Mobility Radeon X2500 x86/SSE2 supported 1 ATI Radeon X2xxx -ATI Technologies Inc. ATI Mobility Radeon. HD 530v supported 1 ATI Mobility Radeon HD 530v -ATI Technologies Inc. ATI Mobility Radeon. HD 5470 supported 3 ATI Mobility Radeon HD 5400 -ATI Technologies Inc. ATI RADEON HD 3200 T25XX by CAMILO supported 1 ATI Radeon HD 3200 -ATI Technologies Inc. ATI RADEON XPRESS 1100 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 1100 x86/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200 Series supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200 Series x86/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI RADEON XPRESS 200M SERIES supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon supported 0 ATI Technologies -ATI Technologies Inc. ATI Radeon 2100 supported 0 ATI Radeon 2100 -ATI Technologies Inc. ATI Radeon 2100 (Microsoft - WDDM) supported 0 ATI Radeon 2100 -ATI Technologies Inc. ATI Radeon 2100 Graphics supported 0 ATI Radeon 2100 -ATI Technologies Inc. ATI Radeon 3000 supported 0 ATI Radeon 3000 -ATI Technologies Inc. ATI Radeon 3000 Graphics supported 0 ATI Radeon 3000 -ATI Technologies Inc. ATI Radeon 3100 Graphics supported 1 ATI Radeon 3100 -ATI Technologies Inc. ATI Radeon 5xxx series supported 3 ATI Radeon 5xxx -ATI Technologies Inc. ATI Radeon 9550 / X1050 Series supported 0 ATI Radeon 9500 -ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/MMX/3DNow!/SSE supported 0 ATI Radeon 9500 -ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/SSE2 supported 0 ATI Radeon 9500 -ATI Technologies Inc. ATI Radeon 9550 / X1050 Series(Microsoft - WDDM) supported 0 ATI Radeon 9500 -ATI Technologies Inc. ATI Radeon 9600 / X1050 Series supported 0 ATI Radeon 9600 -ATI Technologies Inc. ATI Radeon 9600/9550/X1050 Series supported 0 ATI Radeon 9600 -ATI Technologies Inc. ATI Radeon BA Prototype OpenGL Engine supported 0 ATI Technologies -ATI Technologies Inc. ATI Radeon BB Prototype OpenGL Engine supported 0 ATI Technologies -ATI Technologies Inc. ATI Radeon Broadway XT Prototype OpenGL Engine supported 0 ATI Technologies -ATI Technologies Inc. ATI Radeon Cedar PRO Prototype OpenGL Engine supported 2 AMD CEDAR (HD 5450) -ATI Technologies Inc. ATI Radeon Cypress PRO Prototype OpenGL Engine supported 3 AMD CYPRESS (HD 5800) -ATI Technologies Inc. ATI Radeon Graphics Processor supported 0 ATI Technologies -ATI Technologies Inc. ATI Radeon HD 2200 Graphics supported 0 ATI Technologies -ATI Technologies Inc. ATI Radeon HD 2350 supported 0 ATI Radeon HD 2300 -ATI Technologies Inc. ATI Radeon HD 2400 supported 1 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 OpenGL Engine supported 1 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 PRO supported 1 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 PRO AGP supported 1 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 Pro supported 1 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 Series supported 1 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 XT supported 1 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 XT OpenGL Engine supported 1 ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2600 OpenGL Engine supported 2 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 PRO supported 2 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 PRO OpenGL Engine supported 2 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 Pro supported 2 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 Series supported 2 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2600 XT supported 2 ATI Radeon HD 2600 -ATI Technologies Inc. ATI Radeon HD 2900 GT supported 3 ATI Radeon HD 2900 -ATI Technologies Inc. ATI Radeon HD 2900 XT supported 3 ATI Radeon HD 2900 -ATI Technologies Inc. ATI Radeon HD 3200 Graphics supported 1 ATI Radeon HD 3200 -ATI Technologies Inc. ATI Radeon HD 3300 Graphics supported 1 ATI Radeon HD 3300 -ATI Technologies Inc. ATI Radeon HD 3400 Series supported 1 ATI Radeon HD 3400 -ATI Technologies Inc. ATI Radeon HD 3450 supported 1 ATI Radeon HD 3400 -ATI Technologies Inc. ATI Radeon HD 3450 - Dell Optiplex supported 1 ATI Radeon HD 3400 -ATI Technologies Inc. ATI Radeon HD 3470 supported 1 ATI Radeon HD 3400 -ATI Technologies Inc. ATI Radeon HD 3470 - Dell Optiplex supported 1 ATI Radeon HD 3400 -ATI Technologies Inc. ATI Radeon HD 3550 supported 1 ATI Radeon HD 3500 -ATI Technologies Inc. ATI Radeon HD 3600 Series supported 3 ATI Radeon HD 3600 -ATI Technologies Inc. ATI Radeon HD 3650 supported 3 ATI Radeon HD 3600 -ATI Technologies Inc. ATI Radeon HD 3650 AGP supported 3 ATI Radeon HD 3600 -ATI Technologies Inc. ATI Radeon HD 3730 supported 3 ATI Radeon HD 3700 -ATI Technologies Inc. ATI Radeon HD 3800 Series supported 3 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3850 supported 3 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3850 AGP supported 3 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3870 supported 3 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 3870 X2 supported 3 ATI Radeon HD 3800 -ATI Technologies Inc. ATI Radeon HD 4200 supported 1 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4250 supported 1 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4250 Graphics supported 1 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4270 supported 1 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4290 supported 1 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4290 (Engineering Sample) supported 1 ATI Radeon HD 4200 -ATI Technologies Inc. ATI Radeon HD 4300 Series supported 1 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD 4300/4500 Series supported 1 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD 4350 supported 1 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD 4350 (Microsoft WDDM 1.1) supported 1 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD 4450 supported 1 ATI Radeon HD 4400 -ATI Technologies Inc. ATI Radeon HD 4500 Series supported 3 ATI Radeon HD 4500 -ATI Technologies Inc. ATI Radeon HD 4550 supported 3 ATI Radeon HD 4500 -ATI Technologies Inc. ATI Radeon HD 4600 Series supported 3 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4650 supported 3 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4670 supported 3 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4670 OpenGL Engine supported 3 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon HD 4700 Series supported 3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4720 supported 3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4730 supported 3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4730 Series supported 3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4750 supported 3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4770 supported 3 ATI Radeon HD 4700 -ATI Technologies Inc. ATI Radeon HD 4800 Series supported 3 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4850 supported 3 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4850 OpenGL Engine supported 3 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4850 Series supported 3 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4870 supported 3 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4870 OpenGL Engine supported 3 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 4870 X2 supported 3 ATI Radeon HD 4800 -ATI Technologies Inc. ATI Radeon HD 5400 Series supported 3 ATI Radeon HD 5400 -ATI Technologies Inc. ATI Radeon HD 5450 supported 3 ATI Radeon HD 5400 -ATI Technologies Inc. ATI Radeon HD 5470 supported 3 ATI Radeon HD 5400 -ATI Technologies Inc. ATI Radeon HD 5500 Series supported 3 ATI Radeon HD 5500 -ATI Technologies Inc. ATI Radeon HD 5570 supported 3 ATI Radeon HD 5500 -ATI Technologies Inc. ATI Radeon HD 5600 Series supported 3 ATI Radeon HD 5600 -ATI Technologies Inc. ATI Radeon HD 5600/5700 supported 3 ATI Radeon HD 5600 -ATI Technologies Inc. ATI Radeon HD 5630 supported 3 ATI Radeon HD 5600 -ATI Technologies Inc. ATI Radeon HD 5670 supported 3 ATI Radeon HD 5600 -ATI Technologies Inc. ATI Radeon HD 5670 OpenGL Engine supported 3 ATI Radeon HD 5600 -ATI Technologies Inc. ATI Radeon HD 5700 Series supported 3 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5750 supported 3 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5750 OpenGL Engine supported 3 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5770 supported 3 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5770 OpenGL Engine supported 3 ATI Radeon HD 5700 -ATI Technologies Inc. ATI Radeon HD 5800 Series supported 3 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Radeon HD 5850 supported 3 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Radeon HD 5870 supported 3 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Radeon HD 5870 OpenGL Engine supported 3 ATI Radeon HD 5800 -ATI Technologies Inc. ATI Radeon HD 5900 Series supported 3 ATI Radeon HD 5900 -ATI Technologies Inc. ATI Radeon HD 5970 supported 3 ATI Radeon HD 5900 -ATI Technologies Inc. ATI Radeon HD 6230 supported 3 ATI Radeon HD 6200 -ATI Technologies Inc. ATI Radeon HD 6250 supported 3 ATI Radeon HD 6200 -ATI Technologies Inc. ATI Radeon HD 6350 supported 3 ATI Radeon HD 6300 -ATI Technologies Inc. ATI Radeon HD 6390 supported 3 ATI Radeon HD 6300 -ATI Technologies Inc. ATI Radeon HD 6490M OpenGL Engine supported 3 ATI Radeon HD 6400 -ATI Technologies Inc. ATI Radeon HD 6510 supported 3 ATI Radeon HD 6500 -ATI Technologies Inc. ATI Radeon HD 6570M supported 3 ATI Radeon HD 6500 -ATI Technologies Inc. ATI Radeon HD 6630M OpenGL Engine supported 3 ATI Radeon HD 6600 -ATI Technologies Inc. ATI Radeon HD 6750 supported 3 ATI Radeon HD 6700 -ATI Technologies Inc. ATI Radeon HD 6750M OpenGL Engine supported 3 ATI Radeon HD 6700 -ATI Technologies Inc. ATI Radeon HD 6770 supported 3 ATI Radeon HD 6700 -ATI Technologies Inc. ATI Radeon HD 6770M OpenGL Engine supported 3 ATI Radeon HD 6700 -ATI Technologies Inc. ATI Radeon HD 6800 Series supported 3 ATI Radeon HD 6800 -ATI Technologies Inc. ATI Radeon HD 6970M OpenGL Engine supported 3 ATI Radeon HD 6900 -ATI Technologies Inc. ATI Radeon HD3750 supported 3 ATI Radeon HD 3700 -ATI Technologies Inc. ATI Radeon HD4300/HD4500 series supported 1 ATI Radeon HD 4300 -ATI Technologies Inc. ATI Radeon HD4670 supported 3 ATI Radeon HD 4600 -ATI Technologies Inc. ATI Radeon Juniper LE Prototype OpenGL Engine supported 3 AMD JUNIPER (HD 5700) -ATI Technologies Inc. ATI Radeon RV710 Prototype OpenGL Engine supported 1 AMD RV710 (HD 4300) -ATI Technologies Inc. ATI Radeon RV730 Prototype OpenGL Engine supported 3 AMD RV730 (HD 4600) -ATI Technologies Inc. ATI Radeon RV770 Prototype OpenGL Engine supported 3 AMD RV770 (HD 4800) -ATI Technologies Inc. ATI Radeon RV790 Prototype OpenGL Engine supported 3 AMD RV790 (HD 4800) -ATI Technologies Inc. ATI Radeon Redwood PRO Prototype OpenGL Engine supported 3 AMD REDWOOD (HD 5500/5600) -ATI Technologies Inc. ATI Radeon Redwood XT Prototype OpenGL Engine supported 3 AMD REDWOOD (HD 5500/5600) -ATI Technologies Inc. ATI Radeon Whistler PRO/LP Prototype OpenGL Engine supported 0 ATI Technologies -ATI Technologies Inc. ATI Radeon X1050 supported 1 ATI Radeon X1xxx -ATI Technologies Inc. ATI Radeon X1050 Series supported 1 ATI Radeon X1xxx -ATI Technologies Inc. ATI Radeon X1200 supported 1 ATI Radeon X1xxx -ATI Technologies Inc. ATI Radeon X1200 Series supported 1 ATI Radeon X1xxx -ATI Technologies Inc. ATI Radeon X1200 Series x86/MMX/3DNow!/SSE2 supported 1 ATI Radeon X1xxx -ATI Technologies Inc. ATI Radeon X1250 supported 1 ATI Radeon X1xxx -ATI Technologies Inc. ATI Radeon X1250 x86/MMX/3DNow!/SSE2 supported 1 ATI Radeon X1xxx -ATI Technologies Inc. ATI Radeon X1270 supported 1 ATI Radeon X1xxx -ATI Technologies Inc. ATI Radeon X1270 x86/MMX/3DNow!/SSE2 supported 1 ATI Radeon X1xxx -ATI Technologies Inc. ATI Radeon X1300/X1550 Series supported 1 ATI Radeon X13xx -ATI Technologies Inc. ATI Radeon X1550 Series supported 2 ATI Radeon X15xx -ATI Technologies Inc. ATI Radeon X1600 OpenGL Engine supported 2 ATI Radeon X16xx -ATI Technologies Inc. ATI Radeon X1900 OpenGL Engine supported 3 ATI Radeon X19xx -ATI Technologies Inc. ATI Radeon X1950 GT supported 3 ATI Radeon X19xx -ATI Technologies Inc. ATI Radeon X300/X550/X1050 Series supported 0 ATI Radeon X300 -ATI Technologies Inc. ATI Radeon Xpress 1100 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1150 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1150 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1200 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1200 Series supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1200 Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1200 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1250 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1250 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress 1250 x86/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress Series supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Radeon Xpress Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. ATI Yamaha HD 9000 supported 0 ATI Technologies -ATI Technologies Inc. ATi RS880M supported 1 ATI RS880M -ATI Technologies Inc. Carte graphique VGA standard supported 0 ATI Technologies -ATI Technologies Inc. Diamond Radeon X1550 Series supported 2 ATI Radeon X15xx -ATI Technologies Inc. EG JUNIPER supported 3 AMD JUNIPER (HD 5700) -ATI Technologies Inc. EG PARK supported 3 AMD PARK -ATI Technologies Inc. FireGL V3100 Pentium 4 (SSE2) supported 0 ATI FireGL -ATI Technologies Inc. FireMV 2400 PCI DDR x86 supported 0 ATI FireMV -ATI Technologies Inc. FireMV 2400 PCI DDR x86/SSE2 supported 0 ATI FireMV -ATI Technologies Inc. GeCube Radeon X1550 supported 2 ATI Radeon X15xx -ATI Technologies Inc. GeForce 9600 GT x86/SSE2 supported 2 ATI Geforce 9600 GT -ATI Technologies Inc. Geforce 9500 GT supported 2 ATI Geforce 9500 GT -ATI Technologies Inc. Geforce 9500GT supported 2 ATI Geforce 9500 GT -ATI Technologies Inc. Geforce 9800 GT supported 2 ATI Geforce 9800 GT -ATI Technologies Inc. HD3730 supported 0 ATI Technologies -ATI Technologies Inc. HIGHTECH EXCALIBUR RADEON 9550SE Series supported 0 ATI Radeon 9500 -ATI Technologies Inc. HIGHTECH EXCALIBUR X700 PRO supported 0 ATI Technologies -ATI Technologies Inc. M21 x86/MMX/3DNow!/SSE2 supported 0 ATI Technologies -ATI Technologies Inc. M76M supported 3 ATI M76 -ATI Technologies Inc. MOBILITY RADEON 7500 DDR x86/SSE2 supported 0 ATI Mobility Radeon 7xxx -ATI Technologies Inc. MOBILITY RADEON 9000 DDR x86/SSE2 supported 0 ATI Radeon 9000 -ATI Technologies Inc. MOBILITY RADEON 9000 IGPRADEON 9100 IGP DDR x86/SSE2 supported 0 ATI Radeon 9000 -ATI Technologies Inc. MOBILITY RADEON 9100 IGP DDR x86/SSE2 supported 0 ATI Radeon 9100 -ATI Technologies Inc. MOBILITY RADEON 9600 x86/SSE2 supported 0 ATI Mobility Radeon 9600 -ATI Technologies Inc. MOBILITY RADEON 9700 x86/SSE2 supported 1 ATI Mobility Radeon 9700 -ATI Technologies Inc. MOBILITY RADEON X300 x86/SSE2 supported 0 ATI Radeon X300 -ATI Technologies Inc. MOBILITY RADEON X600 x86/SSE2 supported 1 ATI Radeon X600 -ATI Technologies Inc. MOBILITY RADEON X700 SE x86 supported 1 ATI Radeon X700 -ATI Technologies Inc. MOBILITY RADEON X700 x86/SSE2 supported 1 ATI Radeon X700 -ATI Technologies Inc. MOBILITY RADEON Xpress 200 Series SW TCL x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. MSI RX9550SE supported 1 ATI Radeon RX9550 -ATI Technologies Inc. MSI Radeon X1550 Series supported 2 ATI Radeon X15xx -ATI Technologies Inc. Mobility Radeon HD 6000 series supported 0 ATI Technologies -ATI Technologies Inc. Mobility Radeon X2300 HD supported 1 ATI Radeon X2xxx -ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2 supported 1 ATI Radeon X2xxx -ATI Technologies Inc. RADEON 7000 DDR x86/MMX/3DNow!/SSE supported 0 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 7000 DDR x86/SSE2 supported 0 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 7500 DDR x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 7500 DDR x86/SSE2 supported 0 ATI Radeon 7xxx -ATI Technologies Inc. RADEON 9100 IGP DDR x86/SSE2 supported 0 ATI Radeon 9100 -ATI Technologies Inc. RADEON 9200 DDR x86/MMX/3DNow!/SSE supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 DDR x86/SSE2 supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 PRO DDR x86/MMX/3DNow!/SSE supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE2 supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200SE DDR x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9200SE DDR x86/SSE2 supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/SSE2 supported 0 ATI Radeon 9200 -ATI Technologies Inc. RADEON 9500 supported 0 ATI Radeon 9500 -ATI Technologies Inc. RADEON 9550 x86/SSE2 supported 0 ATI Radeon 9500 -ATI Technologies Inc. RADEON 9600 SERIES supported 0 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600 SERIES x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600 SERIES x86/SSE2 supported 0 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600 TX x86/SSE2 supported 0 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9600 x86/SSE2 supported 0 ATI Radeon 9600 -ATI Technologies Inc. RADEON 9700 PRO x86/MMX/3DNow!/SSE supported 1 ATI Radeon 9700 -ATI Technologies Inc. RADEON 9800 PRO supported 1 ATI Radeon 9800 -ATI Technologies Inc. RADEON 9800 x86/SSE2 supported 1 ATI Radeon 9800 -ATI Technologies Inc. RADEON IGP 340M DDR x86/SSE2 unsupported 0 ATI IGP 340M -ATI Technologies Inc. RADEON X300 Series x86/SSE2 supported 0 ATI Radeon X300 -ATI Technologies Inc. RADEON X300 x86/SSE2 supported 0 ATI Radeon X300 -ATI Technologies Inc. RADEON X300/X550 Series x86/SSE2 supported 0 ATI Radeon X300 -ATI Technologies Inc. RADEON X550 x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X500 -ATI Technologies Inc. RADEON X550 x86/SSE2 supported 0 ATI Radeon X500 -ATI Technologies Inc. RADEON X600 Series supported 1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600 x86/SSE2 supported 1 ATI Radeon X600 -ATI Technologies Inc. RADEON X600/X550 Series supported 1 ATI Radeon X600 -ATI Technologies Inc. RADEON X700 PRO x86/SSE2 supported 1 ATI Radeon X700 -ATI Technologies Inc. RADEON X800 SE x86/MMX/3DNow!/SSE2 supported 2 ATI Radeon X800 -ATI Technologies Inc. RADEON X800 XT supported 2 ATI Radeon X800 -ATI Technologies Inc. RADEON X800GT supported 2 ATI Radeon X800 -ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200 Series SW TCL x86/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200 Series x86/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series SW TCL x86/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS 200M Series x86/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS Series x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. RADEON XPRESS Series x86/SSE2 supported 0 ATI Radeon Xpress -ATI Technologies Inc. RS740 supported 0 ATI Technologies -ATI Technologies Inc. RS780C supported 0 AMD RS780 (HD 3200) -ATI Technologies Inc. RS780M supported 0 AMD RS780 (HD 3200) -ATI Technologies Inc. RS880 supported 1 AMD RS880 (HD 4200) -ATI Technologies Inc. RV410 Pro x86/SSE2 supported 1 ATI RV410 (X700) -ATI Technologies Inc. RV790 supported 3 AMD RV790 (HD 4800) -ATI Technologies Inc. Radeon (TM) HD 6470M supported 0 ATI Technologies -ATI Technologies Inc. Radeon (TM) HD 6490M supported 0 ATI Technologies -ATI Technologies Inc. Radeon (TM) HD 6750M supported 0 ATI Technologies -ATI Technologies Inc. Radeon (TM) HD 6770M supported 0 ATI Technologies -ATI Technologies Inc. Radeon (TM) HD 6850M supported 0 ATI Technologies -ATI Technologies Inc. Radeon 7000 DDR x86/SSE supported 0 ATI Radeon 7xxx -ATI Technologies Inc. Radeon 7000 DDR x86/SSE2 supported 0 ATI Radeon 7xxx -ATI Technologies Inc. Radeon 7000 SDR x86/SSE2 supported 0 ATI Radeon 7xxx -ATI Technologies Inc. Radeon 7500 DDR x86/SSE2 supported 0 ATI Radeon 7xxx -ATI Technologies Inc. Radeon 9000 DDR x86/SSE2 supported 0 ATI Radeon 9000 -ATI Technologies Inc. Radeon DDR x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon DDR -ATI Technologies Inc. Radeon DDR x86/SSE supported 0 ATI Radeon DDR -ATI Technologies Inc. Radeon DDR x86/SSE2 supported 0 ATI Radeon DDR -ATI Technologies Inc. Radeon HD 6310 supported 3 ATI Radeon HD 6300 -ATI Technologies Inc. Radeon HD 6470M supported 3 ATI Radeon HD 6400 -ATI Technologies Inc. Radeon HD 6490M supported 3 ATI Radeon HD 6400 -ATI Technologies Inc. Radeon HD 6800 Series supported 3 ATI Radeon HD 6800 -ATI Technologies Inc. Radeon SDR x86/SSE2 supported 0 ATI Technologies -ATI Technologies Inc. Radeon X1300 Series supported 1 ATI Radeon X13xx -ATI Technologies Inc. Radeon X1300 Series x86/MMX/3DNow!/SSE2 supported 1 ATI Radeon X13xx -ATI Technologies Inc. Radeon X1300 Series x86/SSE2 supported 1 ATI Radeon X13xx -ATI Technologies Inc. Radeon X1300/X1550 Series supported 1 ATI Radeon X13xx -ATI Technologies Inc. Radeon X1300/X1550 Series x86/SSE2 supported 1 ATI Radeon X13xx -ATI Technologies Inc. Radeon X1550 64-bit (Microsoft - WDDM) supported 2 ATI Radeon X15xx -ATI Technologies Inc. Radeon X1550 Series supported 2 ATI Radeon X15xx -ATI Technologies Inc. Radeon X1550 Series x86/SSE2 supported 2 ATI Radeon X15xx -ATI Technologies Inc. Radeon X1600 supported 2 ATI Radeon X16xx -ATI Technologies Inc. Radeon X1600 Pro / X1300XT x86/MMX/3DNow!/SSE2 supported 2 ATI Radeon X16xx -ATI Technologies Inc. Radeon X1600 Series supported 2 ATI Radeon X16xx -ATI Technologies Inc. Radeon X1600 Series x86/SSE2 supported 2 ATI Radeon X16xx -ATI Technologies Inc. Radeon X1600/1650 Series supported 2 ATI Radeon X16xx -ATI Technologies Inc. Radeon X1600/X1650 Series supported 2 ATI Radeon X16xx -ATI Technologies Inc. Radeon X1650 Series supported 2 ATI Radeon X16xx -ATI Technologies Inc. Radeon X1650 Series x86/MMX/3DNow!/SSE2 supported 2 ATI Radeon X16xx -ATI Technologies Inc. Radeon X1650 Series x86/SSE2 supported 2 ATI Radeon X16xx -ATI Technologies Inc. Radeon X1900 Series x86/MMX/3DNow!/SSE2 supported 3 ATI Radeon X19xx -ATI Technologies Inc. Radeon X1950 Pro supported 3 ATI Radeon X19xx -ATI Technologies Inc. Radeon X1950 Pro x86/MMX/3DNow!/SSE2 supported 3 ATI Radeon X19xx -ATI Technologies Inc. Radeon X1950 Series supported 3 ATI Radeon X19xx -ATI Technologies Inc. Radeon X1950 Series (Microsoft - WDDM) supported 3 ATI Radeon X19xx -ATI Technologies Inc. Radeon X300/X550/X1050 Series supported 0 ATI Radeon X300 -ATI Technologies Inc. Radeon X550/X700 Series supported 0 ATI Radeon X500 -ATI Technologies Inc. Radeon X550XTX x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X500 -ATI Technologies Inc. SAPPHIRE RADEON X300SE supported 0 ATI Radeon X300 -ATI Technologies Inc. SAPPHIRE RADEON X300SE x86/MMX/3DNow!/SSE2 supported 0 ATI Radeon X300 -ATI Technologies Inc. SAPPHIRE RADEON X300SE x86/SSE2 supported 0 ATI Radeon X300 -ATI Technologies Inc. SAPPHIRE Radeon X1550 Series supported 2 ATI Radeon X15xx -ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/MMX/3DNow!/SSE2 supported 2 ATI Radeon X15xx -ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/SSE2 supported 2 ATI Radeon X15xx -ATI Technologies Inc. SAPPHIRE Radeon X1550 x86/SSE2 supported 2 ATI Radeon X15xx -ATI Technologies Inc. Sapphire Radeon HD 3730 supported 3 ATI Radeon HD 3700 -ATI Technologies Inc. Sapphire Radeon HD 3750 supported 3 ATI Radeon HD 3700 -ATI Technologies Inc. Standard VGA Graphics Adapter supported 0 ATI Technologies -ATI Technologies Inc. Tul, RADEON X600 PRO supported 0 ATI Technologies -ATI Technologies Inc. Tul, RADEON X600 PRO x86/SSE2 supported 0 ATI Technologies -ATI Technologies Inc. Tul, RADEON X700 PRO supported 0 ATI Technologies -ATI Technologies Inc. Tul, RADEON X700 PRO x86/MMX/3DNow!/SSE2 supported 0 ATI Technologies -ATI Technologies Inc. VisionTek Radeon 4350 supported 0 ATI Technologies -ATI Technologies Inc. VisionTek Radeon X1550 Series supported 2 ATI Radeon X15xx -ATI Technologies Inc. WRESTLER 9802 supported 0 ATI Technologies -ATI Technologies Inc. WRESTLER 9803 supported 0 ATI Technologies -ATI Technologies Inc. XFX Radeon HD 4570 supported 3 ATI Radeon HD 4500 -ATI Technologies Inc. Yamaha ATI HD 9000da/s supported 0 ATI Technologies -ATI Technologies Inc. Yamaha ATI HD 9000da/s 2048 supported 0 ATI Technologies -Advanced Micro Devices, Inc. Mesa DRI R600 (RS780 9612) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 0 AMD RS780 (HD 3200) -Advanced Micro Devices, Inc. Mesa DRI R600 (RS880 9710) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 1 AMD RS880 (HD 4200) -Advanced Micro Devices, Inc. Mesa DRI R600 (RS880 9712) 20090101 TCL supported 1 AMD RS880 (HD 4200) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV610 94C1) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 1 AMD RV610 (HD 2400) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV610 94C9) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 AMD RV610 (HD 2400) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C4) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 AMD RV620 (HD 3400) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 1 AMD RV620 (HD 3400) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 AMD RV620 (HD 3400) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV635 9596) 20090101 x86/MMX+/3DNow!+/SSE TCL DRI2 supported 3 AMD RV635 (HD 3600) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV670 9505) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 3 AMD RV670 (HD 3800) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV670 9505) 20090101 x86/MMX/SSE2 TCL DRI2 supported 3 AMD RV670 (HD 3800) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV710 9552) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 AMD RV710 (HD 4300) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 3 AMD RV730 (HD 4600) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX/SSE2 TCL DRI2 supported 3 AMD RV730 (HD 4600) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9498) 20090101 TCL DRI2 supported 3 AMD RV730 (HD 4600) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV770 9440) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 3 AMD RV770 (HD 4800) -Advanced Micro Devices, Inc. Mesa DRI R600 (RV770 9442) 20090101 x86/MMX/SSE2 TCL DRI2 supported 3 AMD RV770 (HD 4800) -Alex Mohr GL Hijacker! NO MATCH -Apple Software Renderer unsupported 0 Apple Software Renderer -DRI R300 Project Mesa DRI R300 (RS400 5954) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 supported 1 ATI R300 (9700) -DRI R300 Project Mesa DRI R300 (RS400 5975) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 supported 1 ATI R300 (9700) -DRI R300 Project Mesa DRI R300 (RS400 5A62) 20090101 x86/MMX/SSE2 NO-TCL DRI2 supported 1 ATI R300 (9700) -DRI R300 Project Mesa DRI R300 (RS600 7941) 20090101 x86/MMX/SSE2 NO-TCL unsupported 0 ATI RS600 (Xpress 3200) -DRI R300 Project Mesa DRI R300 (RS690 791F) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 supported 1 ATI R300 (9700) -DRI R300 Project Mesa DRI R300 (RV350 4151) 20090101 AGP 4x x86/MMX+/3DNow!+/SSE TCL supported 0 ATI RV350 (9600) -DRI R300 Project Mesa DRI R300 (RV350 4153) 20090101 AGP 8x x86/MMX+/3DNow!+/SSE TCL supported 0 ATI RV350 (9600) -DRI R300 Project Mesa DRI R300 (RV380 3150) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 0 ATI RV380 -DRI R300 Project Mesa DRI R300 (RV380 3150) 20090101 x86/MMX/SSE2 TCL DRI2 supported 0 ATI RV380 -DRI R300 Project Mesa DRI R300 (RV380 5B60) 20090101 x86/MMX/SSE2 TCL DRI2 supported 0 ATI RV380 -DRI R300 Project Mesa DRI R300 (RV380 5B62) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 0 ATI RV380 -DRI R300 Project Mesa DRI R300 (RV515 7145) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 ATI RV515 -DRI R300 Project Mesa DRI R300 (RV515 7146) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 supported 1 ATI RV515 -DRI R300 Project Mesa DRI R300 (RV515 7146) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 ATI RV515 -DRI R300 Project Mesa DRI R300 (RV515 7149) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 ATI RV515 -DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL supported 1 ATI RV515 -DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 ATI RV515 -DRI R300 Project Mesa DRI R300 (RV530 71C4) 20090101 x86/MMX/SSE2 TCL DRI2 supported 1 ATI RV530 -GPU_CLASS_UNKNOWN NO MATCH -Humper 3D-Analyze v2.3 - http://www.tommti-systems.com supported 0 Humper -Humper Chromium supported 0 Humper -Imagination Technologies PowerVR SGX545 NO MATCH -Intel NO MATCH -Intel HD Graphics Family supported 2 Intel HD Graphics -Intel 3D-Analyze v2.2 - http://www.tommti-systems.com NO MATCH -Intel 3D-Analyze v2.3 - http://www.tommti-systems.com NO MATCH -Intel 4 Series Internal Chipset NO MATCH -Intel 830M unsupported 0 Intel 830M -Intel 845G unsupported 0 Intel 845G -Intel 855GM unsupported 0 Intel 855GM -Intel 865G unsupported 0 Intel 865G -Intel 915G unsupported 0 Intel 915G -Intel 915GM unsupported 0 Intel 915GM -Intel 945G supported 0 Intel 945G -Intel 945GM supported 0 Intel 945GM -Intel 950 supported 0 Intel 950 -Intel 965 supported 0 Intel 965 -Intel B43 Express Chipset NO MATCH -Intel Bear Lake unsupported 0 Intel Bear Lake -Intel Broadwater unsupported 0 Intel Broadwater -Intel Brookdale unsupported 0 Intel Brookdale -Intel Cantiga unsupported 0 Intel Cantiga -Intel EMGD on PowerVR SGX535 NO MATCH -Intel Eaglelake supported 0 Intel Eaglelake -Intel Familia Mobile 45 Express Chipset (Microsoft Corporation - WDDM 1.1) NO MATCH -Intel G33 unsupported 0 Intel G33 -Intel G41 supported 0 Intel G41 -Intel G41 Express Chipset supported 0 Intel G41 -Intel G45 supported 0 Intel G45 -Intel G45/G43 Express Chipset supported 0 Intel G45 -Intel Graphics Media Accelerator HD supported 0 Intel Graphics Media HD -Intel HD Graphics supported 2 Intel HD Graphics -Intel HD Graphics 100 supported 2 Intel HD Graphics -Intel HD Graphics 200 supported 2 Intel HD Graphics -Intel HD Graphics 200 BR-1101-00SH supported 2 Intel HD Graphics -Intel HD Graphics 200 BR-1101-00SJ supported 2 Intel HD Graphics -Intel HD Graphics 200 BR-1101-00SK supported 2 Intel HD Graphics -Intel HD Graphics 200 BR-1101-01M5 supported 2 Intel HD Graphics -Intel HD Graphics 200 BR-1101-01M6 supported 2 Intel HD Graphics -Intel HD Graphics BR-1004-01Y1 supported 2 Intel HD Graphics -Intel HD Graphics BR-1006-0364 supported 2 Intel HD Graphics -Intel HD Graphics BR-1006-0365 supported 2 Intel HD Graphics -Intel HD Graphics BR-1006-0366 supported 2 Intel HD Graphics -Intel HD Graphics BR-1007-02G4 supported 2 Intel HD Graphics -Intel HD Graphics BR-1101-04SY supported 2 Intel HD Graphics -Intel HD Graphics BR-1101-04SZ supported 2 Intel HD Graphics -Intel HD Graphics BR-1101-04T0 supported 2 Intel HD Graphics -Intel HD Graphics BR-1101-04T9 supported 2 Intel HD Graphics -Intel HD Graphics Family supported 2 Intel HD Graphics -Intel HD Graphics Family BR-1012-00Y8 supported 2 Intel HD Graphics -Intel HD Graphics Family BR-1012-00YF supported 2 Intel HD Graphics -Intel HD Graphics Family BR-1012-00ZD supported 2 Intel HD Graphics -Intel HD Graphics Family BR-1102-00ML supported 2 Intel HD Graphics -Intel Inc. Intel GMA 900 OpenGL Engine NO MATCH -Intel Inc. Intel GMA 950 OpenGL Engine supported 0 Intel 950 -Intel Inc. Intel GMA X3100 OpenGL Engine supported 0 Intel X3100 -Intel Inc. Intel HD Graphics 3000 OpenGL Engine supported 2 Intel HD Graphics -Intel Inc. Intel HD Graphics OpenGL Engine supported 2 Intel HD Graphics -Intel Inc. Intel HD xxxx OpenGL Engine NO MATCH -Intel Intel 845G unsupported 0 Intel 845G -Intel Intel 855GM unsupported 0 Intel 855GM -Intel Intel 865G unsupported 0 Intel 865G -Intel Intel 915G unsupported 0 Intel 915G -Intel Intel 915GM unsupported 0 Intel 915GM -Intel Intel 945G supported 0 Intel 945G -Intel Intel 945GM supported 0 Intel 945GM -Intel Intel 965/963 Graphics Media Accelerator supported 0 Intel 965 -Intel Intel Bear Lake B unsupported 0 Intel Bear Lake -Intel Intel Broadwater G unsupported 0 Intel Broadwater -Intel Intel Brookdale-G unsupported 0 Intel Brookdale -Intel Intel Calistoga NO MATCH -Intel Intel Cantiga unsupported 0 Intel Cantiga -Intel Intel Eaglelake supported 0 Intel Eaglelake -Intel Intel Generic Renderer NO MATCH -Intel Intel Grantsdale-G NO MATCH -Intel Intel HD Graphics 3000 supported 2 Intel HD Graphics -Intel Intel Lakeport NO MATCH -Intel Intel Montara-GM unsupported 0 Intel Montara -Intel Intel Pineview Platform supported 0 Intel Pineview -Intel Intel Springdale-G unsupported 0 Intel Springdale -Intel Mobile - famiglia Express Chipset 45 (Microsoft Corporation - WDDM 1.1) NO MATCH -Intel Mobile 4 Series supported 0 Intel Mobile 4 Series -Intel Mobile 4 Series Express Chipset Family supported 0 Intel Mobile 4 Series -Intel Mobile 45 Express Chipset Family NO MATCH -Intel Mobile 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1) NO MATCH -Intel Mobile HD Graphics supported 2 Intel HD Graphics -Intel Mobile Intel(R) 4 Series Express Chipset Family supported 0 Intel Mobile 4 Series -Intel Mobile SandyBridge HD Graphics supported 2 Intel HD Graphics -Intel Montara unsupported 0 Intel Montara -Intel Pineview supported 0 Intel Pineview -Intel Q45/Q43 Express Chipset NO MATCH -Intel Royal BNA Driver NO MATCH -Intel SandyBridge HD Graphics supported 2 Intel HD Graphics -Intel SandyBridge HD Graphics BR-1006-00V8 supported 2 Intel HD Graphics -Intel Springdale unsupported 0 Intel Springdale -Intel X3100 supported 0 Intel X3100 -Intergraph wcgdrv 06.05.06.18 NO MATCH -Intergraph wcgdrv 06.06.00.35 NO MATCH -LegendgrafiX Mobile 945 Express C/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://Legendgra... NO MATCH -LegendgrafiX NVIDIA GeForce GT 430/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://Legendgr... supported 3 NVIDIA GT 430M -Linden Lab Headless NO MATCH -Matrox unsupported 0 Matrox -Mesa unsupported 0 Mesa -Mesa Project Software Rasterizer unsupported 0 Mesa -NVIDIA /PCI/SSE2 NO MATCH -NVIDIA /PCI/SSE2/3DNOW! NO MATCH -NVIDIA 205 supported 0 NVIDIA G 205M -NVIDIA 210 supported 1 NVIDIA G 210 -NVIDIA 310 supported 2 NVIDIA G 310M -NVIDIA 310M supported 2 NVIDIA G 310M -NVIDIA 315 supported 2 NVIDIA G 315 -NVIDIA 315M supported 2 NVIDIA G 315 -NVIDIA 320M supported 2 NVIDIA G 320M -NVIDIA C51 supported 0 NVIDIA C51 -NVIDIA Corporation GeForce GT 230/PCI/SSE2 supported 2 NVIDIA GT 230M -NVIDIA Corporation GeForce GTX 285/PCI/SSE2 supported 3 NVIDIA GTX 285 -NVIDIA D10M2-20/PCI/SSE2 NO MATCH -NVIDIA D10P1-25/PCI/SSE2 NO MATCH -NVIDIA D10P1-25/PCI/SSE2/3DNOW! NO MATCH -NVIDIA D10P1-30/PCI/SSE2 NO MATCH -NVIDIA D10P2-50/PCI/SSE2 NO MATCH -NVIDIA D11M2-30/PCI/SSE2 NO MATCH -NVIDIA D12-P1-35/PCI/SSE2 NO MATCH -NVIDIA D12U-15/PCI/SSE2 NO MATCH -NVIDIA D13M1-40/PCI/SSE2 NO MATCH -NVIDIA D13P1-40/PCI/SSE2 NO MATCH -NVIDIA D13P1-40/PCI/SSE2/3DNOW! NO MATCH -NVIDIA D13U-10/PCI/SSE2 NO MATCH -NVIDIA D13U/PCI/SSE2 NO MATCH -NVIDIA D9M supported 1 NVIDIA D9M -NVIDIA D9M-20/PCI/SSE2 supported 1 NVIDIA D9M -NVIDIA Entry Graphics/PCI/SSE2 NO MATCH -NVIDIA Entry Graphics/PCI/SSE2/3DNOW! NO MATCH -NVIDIA G 102M supported 0 NVIDIA G102M -NVIDIA G 103M supported 0 NVIDIA G103M -NVIDIA G 105M supported 0 NVIDIA G105M -NVIDIA G 110M supported 0 NVIDIA G 110M -NVIDIA G100 supported 0 NVIDIA G100 -NVIDIA G102M supported 0 NVIDIA G102M -NVIDIA G103M supported 0 NVIDIA G103M -NVIDIA G105M supported 0 NVIDIA G105M -NVIDIA G210 supported 1 NVIDIA G 210 -NVIDIA G210M supported 1 NVIDIA G 210 -NVIDIA G70/PCI/SSE2 NO MATCH -NVIDIA G72 supported 1 NVIDIA G72 -NVIDIA G73 supported 1 NVIDIA G73 -NVIDIA G84 supported 2 NVIDIA G84 -NVIDIA G86 supported 3 NVIDIA G86 -NVIDIA G92 supported 3 NVIDIA G92 -NVIDIA G92-200/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA G94 supported 3 NVIDIA G94 -NVIDIA G96/PCI/SSE2 NO MATCH -NVIDIA G98/PCI/SSE2 NO MATCH -NVIDIA G98/PCI/SSE2/3DNOW! NO MATCH -NVIDIA GT 120 supported 2 NVIDIA GT 120M -NVIDIA GT 130 supported 2 NVIDIA GT 130M -NVIDIA GT 130M supported 2 NVIDIA GT 130M -NVIDIA GT 140 supported 2 NVIDIA GT 140M -NVIDIA GT 150 supported 2 NVIDIA GT 150M -NVIDIA GT 160M supported 2 NVIDIA GT 160M -NVIDIA GT 220 supported 2 NVIDIA GT 220M -NVIDIA GT 220/PCI/SSE2 supported 2 NVIDIA GT 220M -NVIDIA GT 220/PCI/SSE2/3DNOW! supported 2 NVIDIA GT 220M -NVIDIA GT 230 supported 2 NVIDIA GT 230M -NVIDIA GT 230M supported 2 NVIDIA GT 230M -NVIDIA GT 240 supported 2 NVIDIA GT 240M -NVIDIA GT 240M supported 2 NVIDIA GT 240M -NVIDIA GT 250M supported 2 NVIDIA GT 250M -NVIDIA GT 260M supported 2 NVIDIA GT 260M -NVIDIA GT 320 supported 2 NVIDIA G 320M -NVIDIA GT 320M supported 2 NVIDIA G 320M -NVIDIA GT 330 supported 3 NVIDIA GT 330M -NVIDIA GT 330M supported 3 NVIDIA GT 330M -NVIDIA GT 340 supported 2 NVIDIA GT 340M -NVIDIA GT 420 supported 2 NVIDIA GT 420M -NVIDIA GT 430 supported 3 NVIDIA GT 430M -NVIDIA GT 440 supported 3 NVIDIA GT 440M -NVIDIA GT 450 supported 3 NVIDIA GT 450M -NVIDIA GT 520 supported 3 NVIDIA GT 520M -NVIDIA GT 540 supported 3 NVIDIA GT 540M -NVIDIA GT 540M supported 3 NVIDIA GT 540M -NVIDIA GT-120 supported 2 NVIDIA GT 120 -NVIDIA GT200/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GTS 150 supported 2 NVIDIA GT 150M -NVIDIA GTS 240 supported 3 NVIDIA GTS 240 -NVIDIA GTS 250 supported 3 NVIDIA GTS 250 -NVIDIA GTS 350M supported 3 NVIDIA GTS 350M -NVIDIA GTS 360 supported 3 NVIDIA GTS 360 -NVIDIA GTS 360M supported 3 NVIDIA GTS 360M -NVIDIA GTS 450 supported 3 NVIDIA GTS 450 -NVIDIA GTX 260 supported 3 NVIDIA GTX 260 -NVIDIA GTX 260M supported 3 NVIDIA GTX 260 -NVIDIA GTX 270 supported 3 NVIDIA GTX 270 -NVIDIA GTX 280 supported 3 NVIDIA GTX 280 -NVIDIA GTX 285 supported 3 NVIDIA GTX 285 -NVIDIA GTX 290 supported 3 NVIDIA GTX 290 -NVIDIA GTX 460 supported 3 NVIDIA GTX 460 -NVIDIA GTX 460M supported 3 NVIDIA GTX 460M -NVIDIA GTX 465 supported 3 NVIDIA GTX 465 -NVIDIA GTX 470 supported 3 NVIDIA GTX 470 -NVIDIA GTX 470M supported 3 NVIDIA GTX 470M -NVIDIA GTX 480 supported 3 NVIDIA GTX 480 -NVIDIA GTX 480M supported 3 NVIDIA GTX 480M -NVIDIA GTX 550 Ti supported 3 NVIDIA GTX 550 -NVIDIA GTX 560 supported 3 NVIDIA GTX 560 -NVIDIA GTX 560 Ti supported 3 NVIDIA GTX 560 -NVIDIA GTX 570 supported 3 NVIDIA GTX 570 -NVIDIA GTX 580 supported 3 NVIDIA GTX 580 -NVIDIA GTX 590 supported 3 NVIDIA GTX 590 -NVIDIA GeForce NO MATCH -NVIDIA GeForce 2 supported 0 NVIDIA GeForce 2 -NVIDIA GeForce 205/PCI/SSE2 supported 2 NVIDIA 205 -NVIDIA GeForce 210 supported 2 NVIDIA 210 -NVIDIA GeForce 210/PCI/SSE2 supported 2 NVIDIA 210 -NVIDIA GeForce 210/PCI/SSE2/3DNOW! supported 2 NVIDIA 210 -NVIDIA GeForce 3 supported 0 NVIDIA GeForce 3 -NVIDIA GeForce 305M/PCI/SSE2 supported 1 NVIDIA 305M -NVIDIA GeForce 310/PCI/SSE2 supported 3 NVIDIA 310 -NVIDIA GeForce 310/PCI/SSE2/3DNOW! supported 3 NVIDIA 310 -NVIDIA GeForce 310M/PCI/SSE2 supported 1 NVIDIA 310M -NVIDIA GeForce 315/PCI/SSE2 supported 3 NVIDIA 315 -NVIDIA GeForce 315/PCI/SSE2/3DNOW! supported 3 NVIDIA 315 -NVIDIA GeForce 315M/PCI/SSE2 supported 2 NVIDIA 315M -NVIDIA GeForce 320M/PCI/SSE2 supported 2 NVIDIA 320M -NVIDIA GeForce 4 Go supported 0 NVIDIA GeForce 4 -NVIDIA GeForce 4 MX supported 0 NVIDIA GeForce 4 -NVIDIA GeForce 4 Ti supported 0 NVIDIA GeForce 4 -NVIDIA GeForce 405/PCI/SSE2 supported 1 NVIDIA G 405 -NVIDIA GeForce 410M/PCI/SSE2 supported 1 NVIDIA G 410M -NVIDIA GeForce 6100 supported 0 NVIDIA G100 -NVIDIA GeForce 6100 nForce 400/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 -NVIDIA GeForce 6100 nForce 405/PCI/SSE2 supported 0 NVIDIA G100 -NVIDIA GeForce 6100 nForce 405/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 -NVIDIA GeForce 6100 nForce 420/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 -NVIDIA GeForce 6100 nForce 430/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 -NVIDIA GeForce 6100/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 -NVIDIA GeForce 6150 LE/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 -NVIDIA GeForce 6150/PCI/SSE2 supported 0 NVIDIA GeForce 6100 -NVIDIA GeForce 6150/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 -NVIDIA GeForce 6150SE nForce 430/PCI/SSE2 supported 0 NVIDIA GeForce 6100 -NVIDIA GeForce 6150SE nForce 430/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 -NVIDIA GeForce 6150SE/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 6100 -NVIDIA GeForce 6200 supported 0 NVIDIA G 200 -NVIDIA GeForce 6200 A-LE/AGP/SSE/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 6200 A-LE/AGP/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce 6200 A-LE/AGP/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 6200 LE/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce 6200 LE/PCI/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 6200/AGP/SSE/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 6200/AGP/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce 6200/AGP/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 6200/PCI/SSE/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 6200/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce 6200/PCI/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 6200SE TurboCache(TM)/PCI/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 6500 supported 0 NVIDIA GeForce 6500 -NVIDIA GeForce 6500/PCI/SSE2 supported 0 NVIDIA GeForce 6500 -NVIDIA GeForce 6600 supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6600 GT/AGP/SSE/3DNOW! supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6600 GT/AGP/SSE2 supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6600 GT/PCI/SSE/3DNOW! supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6600 GT/PCI/SSE2 supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6600 GT/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6600 LE/PCI/SSE2 supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6600/AGP/SSE/3DNOW! supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6600/AGP/SSE2 supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6600/AGP/SSE2/3DNOW! supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6600/PCI/SSE2 supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6600/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 6600 -NVIDIA GeForce 6700 supported 2 NVIDIA GeForce 6700 -NVIDIA GeForce 6800 supported 2 NVIDIA GeForce 6800 -NVIDIA GeForce 6800 GS/PCI/SSE2 supported 2 NVIDIA GeForce 6800 -NVIDIA GeForce 6800 GS/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 6800 -NVIDIA GeForce 6800 GT/AGP/SSE2 supported 2 NVIDIA GeForce 6800 -NVIDIA GeForce 6800 GT/PCI/SSE2 supported 2 NVIDIA GeForce 6800 -NVIDIA GeForce 6800 XT/AGP/SSE2 supported 2 NVIDIA GeForce 6800 -NVIDIA GeForce 6800 XT/PCI/SSE2 supported 2 NVIDIA GeForce 6800 -NVIDIA GeForce 6800 XT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 6800 -NVIDIA GeForce 6800/PCI/SSE2 supported 2 NVIDIA GeForce 6800 -NVIDIA GeForce 6800/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 6800 -NVIDIA GeForce 7000 supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7000M supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2 supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2 supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7050 / NVIDIA nForce 610i/PCI/SSE2 supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7050 / NVIDIA nForce 620i/PCI/SSE2 supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7050 / nForce 610i/PCI/SSE2 supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7050 / nForce 620i/PCI/SSE2 supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7050 PV / NVIDIA nForce 630a/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2 supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7050 SE / NVIDIA nForce 630a/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7000 -NVIDIA GeForce 7100 supported 0 NVIDIA G100 -NVIDIA GeForce 7100 / NVIDIA nForce 620i/PCI/SSE2 supported 0 NVIDIA G100 -NVIDIA GeForce 7100 / NVIDIA nForce 630i/PCI/SSE2 supported 0 NVIDIA G100 -NVIDIA GeForce 7100 / nForce 630i/PCI/SSE2 supported 0 NVIDIA G100 -NVIDIA GeForce 7100 GS/PCI/SSE2 supported 0 NVIDIA G100 -NVIDIA GeForce 7100 GS/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 -NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2 supported 0 NVIDIA GeForce 7100 -NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 7100 -NVIDIA GeForce 7300 supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7300 GS/PCI/SSE2 supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7300 GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7300 GT/AGP/SSE2 supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7300 GT/AGP/SSE2/3DNOW! supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7300 GT/PCI/SSE2 supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7300 GT/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7300 LE/PCI/SSE2 supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7300 LE/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 7300 SE/PCI/SSE2 supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7300 SE/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7350 LE/PCI/SSE2 supported 1 NVIDIA GeForce 7300 -NVIDIA GeForce 7500 supported 1 NVIDIA GeForce 7500 -NVIDIA GeForce 7500 LE/PCI/SSE2 supported 1 NVIDIA GeForce 7500 -NVIDIA GeForce 7500 LE/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 7500 -NVIDIA GeForce 7600 supported 2 NVIDIA GeForce 7600 -NVIDIA GeForce 7600 GS/AGP/SSE2 supported 2 NVIDIA GeForce 7600 -NVIDIA GeForce 7600 GS/AGP/SSE2/3DNOW! supported 2 NVIDIA GeForce 7600 -NVIDIA GeForce 7600 GS/PCI/SSE2 supported 2 NVIDIA GeForce 7600 -NVIDIA GeForce 7600 GS/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7600 -NVIDIA GeForce 7600 GT/AGP/SSE/3DNOW! supported 2 NVIDIA GeForce 7600 -NVIDIA GeForce 7600 GT/AGP/SSE2 supported 2 NVIDIA GeForce 7600 -NVIDIA GeForce 7600 GT/PCI/SSE2 supported 2 NVIDIA GeForce 7600 -NVIDIA GeForce 7600 GT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7600 -NVIDIA GeForce 7650 GS/PCI/SSE2 supported 2 NVIDIA GeForce 7600 -NVIDIA GeForce 7800 supported 2 NVIDIA GeForce 7800 -NVIDIA GeForce 7800 GS/AGP/SSE2 supported 2 NVIDIA GeForce 7800 -NVIDIA GeForce 7800 GS/AGP/SSE2/3DNOW! supported 2 NVIDIA GeForce 7800 -NVIDIA GeForce 7800 GT/PCI/SSE2 supported 2 NVIDIA GeForce 7800 -NVIDIA GeForce 7800 GT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7800 -NVIDIA GeForce 7800 GTX/PCI/SSE2 supported 2 NVIDIA GeForce 7800 -NVIDIA GeForce 7800 GTX/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7800 -NVIDIA GeForce 7900 supported 2 NVIDIA GeForce 7900 -NVIDIA GeForce 7900 GS/PCI/SSE2 supported 2 NVIDIA GeForce 7900 -NVIDIA GeForce 7900 GS/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7900 -NVIDIA GeForce 7900 GT/GTO/PCI/SSE2 supported 2 NVIDIA GeForce 7900 -NVIDIA GeForce 7900 GT/GTO/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7900 -NVIDIA GeForce 7900 GT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7900 -NVIDIA GeForce 7900 GTX/PCI/SSE2 supported 2 NVIDIA GeForce 7900 -NVIDIA GeForce 7950 GT/PCI/SSE2 supported 2 NVIDIA GeForce 7900 -NVIDIA GeForce 7950 GT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 7900 -NVIDIA GeForce 8100 supported 0 NVIDIA G100 -NVIDIA GeForce 8100 / nForce 720a/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 -NVIDIA GeForce 8200 supported 0 NVIDIA G 200 -NVIDIA GeForce 8200/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce 8200/PCI/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 8200M supported 0 NVIDIA G 200 -NVIDIA GeForce 8200M G/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce 8200M G/PCI/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 8300 supported 1 NVIDIA GeForce 8300 -NVIDIA GeForce 8300 GS/PCI/SSE2 supported 1 NVIDIA GeForce 8300 -NVIDIA GeForce 8400 supported 1 NVIDIA GeForce 8400 -NVIDIA GeForce 8400 GS/PCI/SSE/3DNOW! supported 1 NVIDIA GeForce 8400 -NVIDIA GeForce 8400 GS/PCI/SSE2 supported 1 NVIDIA GeForce 8400 -NVIDIA GeForce 8400 GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8400 -NVIDIA GeForce 8400/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8400 -NVIDIA GeForce 8400GS/PCI/SSE2 supported 1 NVIDIA GeForce 8400 -NVIDIA GeForce 8400GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8400 -NVIDIA GeForce 8400M supported 1 NVIDIA GeForce 8400M -NVIDIA GeForce 8400M G/PCI/SSE2 supported 1 NVIDIA GeForce 8400M -NVIDIA GeForce 8400M G/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8400M -NVIDIA GeForce 8400M GS/PCI/SSE2 supported 1 NVIDIA GeForce 8400M -NVIDIA GeForce 8400M GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8400M -NVIDIA GeForce 8400M GT/PCI/SSE2 supported 1 NVIDIA GeForce 8400M -NVIDIA GeForce 8500 supported 3 NVIDIA GeForce 8500 -NVIDIA GeForce 8500 GT/PCI/SSE2 supported 3 NVIDIA GeForce 8500 -NVIDIA GeForce 8500 GT/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8500 -NVIDIA GeForce 8600 supported 3 NVIDIA GeForce 8600 -NVIDIA GeForce 8600 GS/PCI/SSE2 supported 3 NVIDIA GeForce 8600 -NVIDIA GeForce 8600 GS/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8600 -NVIDIA GeForce 8600 GT/PCI/SSE2 supported 3 NVIDIA GeForce 8600 -NVIDIA GeForce 8600 GT/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8600 -NVIDIA GeForce 8600 GTS/PCI/SSE2 supported 3 NVIDIA GeForce 8600 -NVIDIA GeForce 8600 GTS/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8600 -NVIDIA GeForce 8600GS/PCI/SSE2 supported 3 NVIDIA GeForce 8600 -NVIDIA GeForce 8600M supported 1 NVIDIA GeForce 8600M -NVIDIA GeForce 8600M GS/PCI/SSE2 supported 1 NVIDIA GeForce 8600M -NVIDIA GeForce 8600M GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 8600M -NVIDIA GeForce 8600M GT/PCI/SSE2 supported 1 NVIDIA GeForce 8600M -NVIDIA GeForce 8700 supported 3 NVIDIA GeForce 8700 -NVIDIA GeForce 8700M supported 3 NVIDIA GeForce 8700M -NVIDIA GeForce 8700M GT/PCI/SSE2 supported 3 NVIDIA GeForce 8700M -NVIDIA GeForce 8800 supported 3 NVIDIA GeForce 8800 -NVIDIA GeForce 8800 GS/PCI/SSE2 supported 3 NVIDIA GeForce 8800 -NVIDIA GeForce 8800 GT/PCI/SSE2 supported 3 NVIDIA GeForce 8800 -NVIDIA GeForce 8800 GT/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8800 -NVIDIA GeForce 8800 GTS 512/PCI/SSE2 supported 3 NVIDIA GeForce 8800 -NVIDIA GeForce 8800 GTS 512/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8800 -NVIDIA GeForce 8800 GTS/PCI/SSE2 supported 3 NVIDIA GeForce 8800 -NVIDIA GeForce 8800 GTS/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 8800 -NVIDIA GeForce 8800 GTX/PCI/SSE2 supported 3 NVIDIA GeForce 8800 -NVIDIA GeForce 8800 Ultra/PCI/SSE2 supported 3 NVIDIA GeForce 8800 -NVIDIA GeForce 8800M GTS/PCI/SSE2 supported 3 NVIDIA GeForce 8800M -NVIDIA GeForce 8800M GTX/PCI/SSE2 supported 3 NVIDIA GeForce 8800M -NVIDIA GeForce 9100 supported 0 NVIDIA G100 -NVIDIA GeForce 9100/PCI/SSE2 supported 0 NVIDIA G100 -NVIDIA GeForce 9100/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 -NVIDIA GeForce 9100M supported 0 NVIDIA G100M -NVIDIA GeForce 9100M G/PCI/SSE2 supported 0 NVIDIA G100M -NVIDIA GeForce 9100M G/PCI/SSE2/3DNOW! supported 0 NVIDIA G100M -NVIDIA GeForce 9200 supported 0 NVIDIA G 200 -NVIDIA GeForce 9200/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce 9200/PCI/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce 9200M GE/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce 9200M GS/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce 9300 supported 1 NVIDIA GeForce 9300 -NVIDIA GeForce 9300 / nForce 730i/PCI/SSE2 supported 1 NVIDIA GeForce 9300 -NVIDIA GeForce 9300 GE/PCI/SSE2 supported 1 NVIDIA GeForce 9300 -NVIDIA GeForce 9300 GE/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 9300 -NVIDIA GeForce 9300 GS/PCI/SSE2 supported 1 NVIDIA GeForce 9300 -NVIDIA GeForce 9300 GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 9300 -NVIDIA GeForce 9300 SE/PCI/SSE2 supported 1 NVIDIA GeForce 9300 -NVIDIA GeForce 9300M supported 1 NVIDIA GeForce 9300M -NVIDIA GeForce 9300M G/PCI/SSE2 supported 1 NVIDIA GeForce 9300M -NVIDIA GeForce 9300M G/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 9300M -NVIDIA GeForce 9300M GS/PCI/SSE2 supported 1 NVIDIA GeForce 9300M -NVIDIA GeForce 9300M GS/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 9300M -NVIDIA GeForce 9400 supported 1 NVIDIA GeForce 9400 -NVIDIA GeForce 9400 GT/PCI/SSE2 supported 1 NVIDIA GeForce 9400 -NVIDIA GeForce 9400 GT/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce 9400 -NVIDIA GeForce 9400/PCI/SSE2 supported 1 NVIDIA GeForce 9400 -NVIDIA GeForce 9400M supported 1 NVIDIA GeForce 9400M -NVIDIA GeForce 9400M G/PCI/SSE2 supported 1 NVIDIA GeForce 9400M -NVIDIA GeForce 9400M/PCI/SSE2 supported 1 NVIDIA GeForce 9400M -NVIDIA GeForce 9500 supported 2 NVIDIA GeForce 9500 -NVIDIA GeForce 9500 GS/PCI/SSE2 supported 2 NVIDIA GeForce 9500 -NVIDIA GeForce 9500 GS/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 9500 -NVIDIA GeForce 9500 GT/PCI/SSE2 supported 2 NVIDIA GeForce 9500 -NVIDIA GeForce 9500 GT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 9500 -NVIDIA GeForce 9500M supported 2 NVIDIA GeForce 9500M -NVIDIA GeForce 9500M GS/PCI/SSE2 supported 2 NVIDIA GeForce 9500M -NVIDIA GeForce 9600 supported 2 NVIDIA GeForce 9600 -NVIDIA GeForce 9600 GS/PCI/SSE2 supported 2 NVIDIA GeForce 9600 -NVIDIA GeForce 9600 GSO 512/PCI/SSE2 supported 2 NVIDIA GeForce 9600 -NVIDIA GeForce 9600 GSO/PCI/SSE2 supported 2 NVIDIA GeForce 9600 -NVIDIA GeForce 9600 GSO/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 9600 -NVIDIA GeForce 9600 GT/PCI/SSE2 supported 2 NVIDIA GeForce 9600 -NVIDIA GeForce 9600 GT/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce 9600 -NVIDIA GeForce 9600M supported 3 NVIDIA GeForce 9600M -NVIDIA GeForce 9600M GS/PCI/SSE2 supported 3 NVIDIA GeForce 9600M -NVIDIA GeForce 9600M GT/PCI/SSE2 supported 3 NVIDIA GeForce 9600M -NVIDIA GeForce 9650M GT/PCI/SSE2 supported 2 NVIDIA GeForce 9600 -NVIDIA GeForce 9700M supported 2 NVIDIA GeForce 9700M -NVIDIA GeForce 9700M GT/PCI/SSE2 supported 2 NVIDIA GeForce 9700M -NVIDIA GeForce 9700M GTS/PCI/SSE2 supported 2 NVIDIA GeForce 9700M -NVIDIA GeForce 9800 supported 3 NVIDIA GeForce 9800 -NVIDIA GeForce 9800 GT/PCI/SSE2 supported 3 NVIDIA GeForce 9800 -NVIDIA GeForce 9800 GT/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 9800 -NVIDIA GeForce 9800 GTX+/PCI/SSE2 supported 3 NVIDIA GeForce 9800 -NVIDIA GeForce 9800 GTX+/PCI/SSE2/3DNOW! supported 3 NVIDIA GeForce 9800 -NVIDIA GeForce 9800 GTX/9800 GTX+/PCI/SSE2 supported 3 NVIDIA GeForce 9800 -NVIDIA GeForce 9800 GTX/PCI/SSE2 supported 3 NVIDIA GeForce 9800 -NVIDIA GeForce 9800 GX2/PCI/SSE2 supported 3 NVIDIA GeForce 9800 -NVIDIA GeForce 9800M supported 3 NVIDIA GeForce 9800M -NVIDIA GeForce 9800M GS/PCI/SSE2 supported 3 NVIDIA GeForce 9800M -NVIDIA GeForce 9800M GT/PCI/SSE2 supported 3 NVIDIA GeForce 9800M -NVIDIA GeForce 9800M GTS/PCI/SSE2 supported 3 NVIDIA GeForce 9800M -NVIDIA GeForce FX 5100 supported 0 NVIDIA G100 -NVIDIA GeForce FX 5100/AGP/SSE/3DNOW! supported 0 NVIDIA G100 -NVIDIA GeForce FX 5200 supported 0 NVIDIA G 200 -NVIDIA GeForce FX 5200/AGP/SSE supported 0 NVIDIA G 200 -NVIDIA GeForce FX 5200/AGP/SSE/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce FX 5200/AGP/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce FX 5200/AGP/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce FX 5200/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce FX 5200/PCI/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce FX 5200LE/AGP/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce FX 5500 supported 0 NVIDIA GeForce FX 5500 -NVIDIA GeForce FX 5500/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce FX 5500 -NVIDIA GeForce FX 5500/AGP/SSE2 supported 0 NVIDIA GeForce FX 5500 -NVIDIA GeForce FX 5500/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce FX 5500 -NVIDIA GeForce FX 5500/PCI/SSE2 supported 0 NVIDIA GeForce FX 5500 -NVIDIA GeForce FX 5500/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce FX 5500 -NVIDIA GeForce FX 5600 supported 0 NVIDIA GeForce FX 5600 -NVIDIA GeForce FX 5600/AGP/SSE2 supported 0 NVIDIA GeForce FX 5600 -NVIDIA GeForce FX 5600/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce FX 5600 -NVIDIA GeForce FX 5600XT/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce FX 5600 -NVIDIA GeForce FX 5700 supported 1 NVIDIA GeForce FX 5700 -NVIDIA GeForce FX 5700/AGP/SSE/3DNOW! supported 1 NVIDIA GeForce FX 5700 -NVIDIA GeForce FX 5700LE/AGP/SSE supported 1 NVIDIA GeForce FX 5700 -NVIDIA GeForce FX 5700LE/AGP/SSE/3DNOW! supported 1 NVIDIA GeForce FX 5700 -NVIDIA GeForce FX 5800 supported 1 NVIDIA GeForce FX 5800 -NVIDIA GeForce FX 5900 supported 1 NVIDIA GeForce FX 5900 -NVIDIA GeForce FX 5900/AGP/SSE2 supported 1 NVIDIA GeForce FX 5900 -NVIDIA GeForce FX 5900XT/AGP/SSE2 supported 1 NVIDIA GeForce FX 5900 -NVIDIA GeForce FX Go5100 supported 0 NVIDIA G100 -NVIDIA GeForce FX Go5100/AGP/SSE2 supported 0 NVIDIA G100 -NVIDIA GeForce FX Go5200 supported 0 NVIDIA G 200 -NVIDIA GeForce FX Go5200/AGP/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce FX Go5300 supported 0 NVIDIA GeForce FX Go5300 -NVIDIA GeForce FX Go5600 supported 0 NVIDIA GeForce FX Go5600 -NVIDIA GeForce FX Go5600/AGP/SSE2 supported 0 NVIDIA GeForce FX Go5600 -NVIDIA GeForce FX Go5650/AGP/SSE2 supported 0 NVIDIA GeForce FX Go5600 -NVIDIA GeForce FX Go5700 supported 1 NVIDIA GeForce FX Go5700 -NVIDIA GeForce FX Go5700/AGP/SSE2 supported 1 NVIDIA GeForce FX Go5700 -NVIDIA GeForce FX Go5xxx/AGP/SSE2 supported 0 NVIDIA GeForce FX Go5xxx -NVIDIA GeForce G 103M/PCI/SSE2 supported 0 NVIDIA G103M -NVIDIA GeForce G 103M/PCI/SSE2/3DNOW! supported 0 NVIDIA G103M -NVIDIA GeForce G 105M/PCI/SSE2 supported 0 NVIDIA G105M -NVIDIA GeForce G 110M/PCI/SSE2 supported 0 NVIDIA G 110M -NVIDIA GeForce G100/PCI/SSE2 supported 0 NVIDIA G100 -NVIDIA GeForce G100/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 -NVIDIA GeForce G102M/PCI/SSE2 supported 0 NVIDIA G102M -NVIDIA GeForce G105M/PCI/SSE2 supported 0 NVIDIA G105M -NVIDIA GeForce G200/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce G205M/PCI/SSE2 supported 0 NVIDIA G 205M -NVIDIA GeForce G210/PCI/SSE2 supported 1 NVIDIA G 210 -NVIDIA GeForce G210/PCI/SSE2/3DNOW! supported 1 NVIDIA G 210 -NVIDIA GeForce G210M/PCI/SSE2 supported 1 NVIDIA G 210 -NVIDIA GeForce G310M/PCI/SSE2 supported 2 NVIDIA G 310M -NVIDIA GeForce GT 120/PCI/SSE2 supported 2 NVIDIA GT 120M -NVIDIA GeForce GT 120/PCI/SSE2/3DNOW! supported 2 NVIDIA GT 120M -NVIDIA GeForce GT 120M/PCI/SSE2 supported 1 NVIDIA G 120M -NVIDIA GeForce GT 130M/PCI/SSE2 supported 2 NVIDIA GT 130M -NVIDIA GeForce GT 140/PCI/SSE2 supported 2 NVIDIA GT 140M -NVIDIA GeForce GT 220/PCI/SSE2 supported 2 NVIDIA GT 220M -NVIDIA GeForce GT 220/PCI/SSE2/3DNOW! supported 2 NVIDIA GT 220M -NVIDIA GeForce GT 220M/PCI/SSE2 supported 2 NVIDIA GT 220M -NVIDIA GeForce GT 230/PCI/SSE2 supported 2 NVIDIA GT 230M -NVIDIA GeForce GT 230M/PCI/SSE2 supported 2 NVIDIA GT 230M -NVIDIA GeForce GT 240 supported 2 NVIDIA GT 240M -NVIDIA GeForce GT 240/PCI/SSE2 supported 2 NVIDIA GT 240M -NVIDIA GeForce GT 240/PCI/SSE2/3DNOW! supported 2 NVIDIA GT 240M -NVIDIA GeForce GT 240M/PCI/SSE2 supported 2 NVIDIA GT 240M -NVIDIA GeForce GT 320/PCI/SSE2 supported 2 NVIDIA G 320M -NVIDIA GeForce GT 320M/PCI/SSE2 supported 2 NVIDIA G 320M -NVIDIA GeForce GT 325M/PCI/SSE2 supported 0 NVIDIA GT 325M -NVIDIA GeForce GT 330/PCI/SSE2 supported 3 NVIDIA GT 330M -NVIDIA GeForce GT 330/PCI/SSE2/3DNOW! supported 3 NVIDIA GT 330M -NVIDIA GeForce GT 330M/PCI/SSE2 supported 3 NVIDIA GT 330M -NVIDIA GeForce GT 335M/PCI/SSE2 supported 1 NVIDIA GT 335M -NVIDIA GeForce GT 340/PCI/SSE2 supported 2 NVIDIA GT 340M -NVIDIA GeForce GT 340/PCI/SSE2/3DNOW! supported 2 NVIDIA GT 340M -NVIDIA GeForce GT 415M/PCI/SSE2 supported 2 NVIDIA GT 415M -NVIDIA GeForce GT 420/PCI/SSE2 supported 2 NVIDIA GT 420M -NVIDIA GeForce GT 420M/PCI/SSE2 supported 2 NVIDIA GT 420M -NVIDIA GeForce GT 425M/PCI/SSE2 supported 3 NVIDIA GT 425M -NVIDIA GeForce GT 430/PCI/SSE2 supported 3 NVIDIA GT 430M -NVIDIA GeForce GT 430/PCI/SSE2/3DNOW! supported 3 NVIDIA GT 430M -NVIDIA GeForce GT 435M/PCI/SSE2 supported 3 NVIDIA GT 435M -NVIDIA GeForce GT 440/PCI/SSE2 supported 3 NVIDIA GT 440M -NVIDIA GeForce GT 440/PCI/SSE2/3DNOW! supported 3 NVIDIA GT 440M -NVIDIA GeForce GT 445M/PCI/SSE2 supported 3 NVIDIA GT 445M -NVIDIA GeForce GT 520/PCI/SSE2 supported 3 NVIDIA GT 520M -NVIDIA GeForce GT 520/PCI/SSE2/3DNOW! supported 3 NVIDIA GT 520M -NVIDIA GeForce GT 520M/PCI/SSE2 supported 3 NVIDIA GT 520M -NVIDIA GeForce GT 525M/PCI/SSE2 supported 3 NVIDIA GT 520M -NVIDIA GeForce GT 530/PCI/SSE2 supported 3 NVIDIA GT 530M -NVIDIA GeForce GT 530/PCI/SSE2/3DNOW! supported 3 NVIDIA GT 530M -NVIDIA GeForce GT 540M/PCI/SSE2 supported 3 NVIDIA GT 540M -NVIDIA GeForce GT 545/PCI/SSE2 supported 3 NVIDIA GT 540M -NVIDIA GeForce GT 550M/PCI/SSE2 supported 3 NVIDIA GT 550M -NVIDIA GeForce GT 555M/PCI/SSE2 supported 3 NVIDIA GT 555M -NVIDIA GeForce GTS 150/PCI/SSE2 supported 2 NVIDIA GT 150M -NVIDIA GeForce GTS 160M/PCI/SSE2 supported 2 NVIDIA GTS 160M -NVIDIA GeForce GTS 240/PCI/SSE2 supported 3 NVIDIA GTS 240 -NVIDIA GeForce GTS 250/PCI/SSE2 supported 3 NVIDIA GTS 250 -NVIDIA GeForce GTS 250/PCI/SSE2/3DNOW! supported 3 NVIDIA GTS 250 -NVIDIA GeForce GTS 250M/PCI/SSE2 supported 3 NVIDIA GTS 250 -NVIDIA GeForce GTS 350M/PCI/SSE2 supported 3 NVIDIA GTS 350M -NVIDIA GeForce GTS 360M/PCI/SSE2 supported 3 NVIDIA GTS 360M -NVIDIA GeForce GTS 450/PCI/SSE2 supported 3 NVIDIA GTS 450 -NVIDIA GeForce GTS 450/PCI/SSE2/3DNOW! supported 3 NVIDIA GTS 450 -NVIDIA GeForce GTS 455/PCI/SSE2 supported 3 NVIDIA GTS 450 -NVIDIA GeForce GTX 260/PCI/SSE2 supported 3 NVIDIA GTX 260 -NVIDIA GeForce GTX 260/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 260 -NVIDIA GeForce GTX 260M/PCI/SSE2 supported 3 NVIDIA GTX 260 -NVIDIA GeForce GTX 275/PCI/SSE2 supported 3 NVIDIA GTX 275 -NVIDIA GeForce GTX 275/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 275 -NVIDIA GeForce GTX 280 supported 3 NVIDIA GTX 280 -NVIDIA GeForce GTX 280/PCI/SSE2 supported 3 NVIDIA GTX 280 -NVIDIA GeForce GTX 280M/PCI/SSE2 supported 3 NVIDIA GTX 280 -NVIDIA GeForce GTX 285 supported 3 NVIDIA GTX 285 -NVIDIA GeForce GTX 285/PCI/SSE2 supported 3 NVIDIA GTX 285 -NVIDIA GeForce GTX 295/PCI/SSE2 supported 3 NVIDIA GTX 295 -NVIDIA GeForce GTX 460 SE/PCI/SSE2 supported 3 NVIDIA GTX 460 -NVIDIA GeForce GTX 460 SE/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 460 -NVIDIA GeForce GTX 460/PCI/SSE2 supported 3 NVIDIA GTX 460 -NVIDIA GeForce GTX 460/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 460 -NVIDIA GeForce GTX 460M/PCI/SSE2 supported 3 NVIDIA GTX 460M -NVIDIA GeForce GTX 465/PCI/SSE2 supported 3 NVIDIA GTX 465 -NVIDIA GeForce GTX 465/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 465 -NVIDIA GeForce GTX 470/PCI/SSE2 supported 3 NVIDIA GTX 470 -NVIDIA GeForce GTX 470/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 470 -NVIDIA GeForce GTX 480/PCI/SSE2 supported 3 NVIDIA GTX 480 -NVIDIA GeForce GTX 550 Ti/PCI/SSE2 supported 3 NVIDIA GTX 550 -NVIDIA GeForce GTX 550 Ti/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 550 -NVIDIA GeForce GTX 560 Ti/PCI/SSE2 supported 3 NVIDIA GTX 560 -NVIDIA GeForce GTX 560 Ti/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 560 -NVIDIA GeForce GTX 560/PCI/SSE2 supported 3 NVIDIA GTX 560 -NVIDIA GeForce GTX 560/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 560 -NVIDIA GeForce GTX 560M/PCI/SSE2 supported 3 NVIDIA GTX 560 -NVIDIA GeForce GTX 570/PCI/SSE2 supported 3 NVIDIA GTX 570 -NVIDIA GeForce GTX 570/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 570 -NVIDIA GeForce GTX 580/PCI/SSE2 supported 3 NVIDIA GTX 580 -NVIDIA GeForce GTX 580/PCI/SSE2/3DNOW! supported 3 NVIDIA GTX 580 -NVIDIA GeForce GTX 580M/PCI/SSE2 supported 3 NVIDIA GTX 580M -NVIDIA GeForce GTX 590/PCI/SSE2 supported 3 NVIDIA GTX 590 -NVIDIA GeForce Go 6 supported 1 NVIDIA GeForce Go 6 -NVIDIA GeForce Go 6100 supported 0 NVIDIA G100 -NVIDIA GeForce Go 6100/PCI/SSE2 supported 0 NVIDIA G100 -NVIDIA GeForce Go 6100/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 -NVIDIA GeForce Go 6150/PCI/SSE2 supported 0 NVIDIA GeForce Go 6100 -NVIDIA GeForce Go 6150/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce Go 6100 -NVIDIA GeForce Go 6200 supported 0 NVIDIA G 200 -NVIDIA GeForce Go 6200/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce Go 6400 supported 1 NVIDIA GeForce Go 6400 -NVIDIA GeForce Go 6400/PCI/SSE2 supported 1 NVIDIA GeForce Go 6400 -NVIDIA GeForce Go 6600 supported 1 NVIDIA GeForce Go 6600 -NVIDIA GeForce Go 6600/PCI/SSE2 supported 1 NVIDIA GeForce Go 6600 -NVIDIA GeForce Go 6800 supported 1 NVIDIA GeForce Go 6800 -NVIDIA GeForce Go 6800 Ultra/PCI/SSE2 supported 1 NVIDIA GeForce Go 6800 -NVIDIA GeForce Go 6800/PCI/SSE2 supported 1 NVIDIA GeForce Go 6800 -NVIDIA GeForce Go 7200 supported 0 NVIDIA G 200 -NVIDIA GeForce Go 7200/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA GeForce Go 7200/PCI/SSE2/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce Go 7300 supported 1 NVIDIA GeForce Go 7300 -NVIDIA GeForce Go 7300/PCI/SSE2 supported 1 NVIDIA GeForce Go 7300 -NVIDIA GeForce Go 7300/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce Go 7300 -NVIDIA GeForce Go 7400 supported 1 NVIDIA GeForce Go 7400 -NVIDIA GeForce Go 7400/PCI/SSE2 supported 1 NVIDIA GeForce Go 7400 -NVIDIA GeForce Go 7400/PCI/SSE2/3DNOW! supported 1 NVIDIA GeForce Go 7400 -NVIDIA GeForce Go 7600 supported 2 NVIDIA GeForce Go 7600 -NVIDIA GeForce Go 7600/PCI/SSE2 supported 2 NVIDIA GeForce Go 7600 -NVIDIA GeForce Go 7600/PCI/SSE2/3DNOW! supported 2 NVIDIA GeForce Go 7600 -NVIDIA GeForce Go 7700 supported 2 NVIDIA GeForce Go 7700 -NVIDIA GeForce Go 7700/PCI/SSE2 supported 2 NVIDIA GeForce Go 7700 -NVIDIA GeForce Go 7800 supported 2 NVIDIA GeForce Go 7800 -NVIDIA GeForce Go 7800 GTX/PCI/SSE2 supported 2 NVIDIA GeForce Go 7800 -NVIDIA GeForce Go 7900 supported 2 NVIDIA GeForce Go 7900 -NVIDIA GeForce Go 7900 GS/PCI/SSE2 supported 2 NVIDIA GeForce Go 7900 -NVIDIA GeForce Go 7900 GTX/PCI/SSE2 supported 2 NVIDIA GeForce Go 7900 -NVIDIA GeForce Go 7950 GTX/PCI/SSE2 supported 2 NVIDIA GeForce Go 7900 -NVIDIA GeForce PCX supported 0 NVIDIA GeForce PCX -NVIDIA GeForce2 GTS/AGP/SSE supported 0 NVIDIA GeForce 2 -NVIDIA GeForce2 MX/AGP/3DNOW! supported 0 NVIDIA GeForce 2 -NVIDIA GeForce2 MX/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 2 -NVIDIA GeForce2 MX/AGP/SSE2 supported 0 NVIDIA GeForce 2 -NVIDIA GeForce2 MX/PCI/SSE2 supported 0 NVIDIA GeForce 2 -NVIDIA GeForce3/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 3 -NVIDIA GeForce3/AGP/SSE2 supported 0 NVIDIA GeForce 3 -NVIDIA GeForce4 420 Go 32M/AGP/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 420 Go 32M/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 420 Go 32M/PCI/SSE2/3DNOW! supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 420 Go/AGP/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 440 Go 64M/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 440 Go/AGP/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 460 Go/AGP/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX 4000/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX 4000/AGP/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX 4000/PCI/3DNOW! supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX 4000/PCI/SSE/3DNOW! supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX 4000/PCI/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX 420/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX 420/AGP/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX 440 with AGP8X/AGP/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX 440/AGP/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX 440/AGP/SSE2/3DNOW! supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX 440SE with AGP8X/AGP/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 MX Integrated GPU/AGP/SSE/3DNOW! supported 0 NVIDIA GeForce 4 -NVIDIA GeForce4 Ti 4200 with AGP8X/AGP/SSE supported 0 NVIDIA G 200 -NVIDIA GeForce4 Ti 4200/AGP/SSE/3DNOW! supported 0 NVIDIA G 200 -NVIDIA GeForce4 Ti 4400/AGP/SSE2 supported 0 NVIDIA GeForce 4 -NVIDIA Generic NO MATCH -NVIDIA ION LE/PCI/SSE2 supported 2 NVIDIA ION -NVIDIA ION/PCI/SSE2 supported 2 NVIDIA ION -NVIDIA ION/PCI/SSE2/3DNOW! supported 2 NVIDIA ION -NVIDIA MCP61/PCI/SSE2 supported 1 NVIDIA MCP61 -NVIDIA MCP61/PCI/SSE2/3DNOW! supported 1 NVIDIA MCP61 -NVIDIA MCP73/PCI/SSE2 supported 1 NVIDIA MCP73 -NVIDIA MCP79MH/PCI/SSE2 supported 1 NVIDIA MCP79 -NVIDIA MCP79MX/PCI/SSE2 supported 1 NVIDIA MCP79 -NVIDIA MCP7A-O/PCI/SSE2 supported 1 NVIDIA MCP7A -NVIDIA MCP7A-S/PCI/SSE2 supported 1 NVIDIA MCP7A -NVIDIA MCP89-EPT/PCI/SSE2 NO MATCH -NVIDIA N10M-GE1/PCI/SSE2 supported 1 NVIDIA N10 -NVIDIA N10P-GE1/PCI/SSE2 supported 1 NVIDIA N10 -NVIDIA N10P-GV2/PCI/SSE2 supported 1 NVIDIA N10 -NVIDIA N11M-GE1/PCI/SSE2 NO MATCH -NVIDIA N11M-GE2/PCI/SSE2 NO MATCH -NVIDIA N12E-GS-A1/PCI/SSE2 NO MATCH -NVIDIA N12P-GVR-B-A1/PCI/SSE2 NO MATCH -NVIDIA N13M-GE1-B-A1/PCI/SSE2 NO MATCH -NVIDIA N13P-GL-A1/PCI/SSE2 NO MATCH -NVIDIA NB9M-GE/PCI/SSE2 supported 1 NVIDIA NB9M -NVIDIA NB9M-GE1/PCI/SSE2 supported 1 NVIDIA NB9M -NVIDIA NB9M-GS/PCI/SSE2 supported 1 NVIDIA NB9M -NVIDIA NB9M-NS/PCI/SSE2 supported 1 NVIDIA NB9M -NVIDIA NB9P-GE1/PCI/SSE2 supported 2 NVIDIA NB9P -NVIDIA NB9P-GS/PCI/SSE2 supported 2 NVIDIA NB9P -NVIDIA NV17/AGP/3DNOW! supported 0 NVIDIA NV17 -NVIDIA NV17/AGP/SSE2 supported 0 NVIDIA NV17 -NVIDIA NV34 supported 0 NVIDIA NV34 -NVIDIA NV35 supported 0 NVIDIA NV35 -NVIDIA NV36/AGP/SSE/3DNOW! supported 1 NVIDIA NV36 -NVIDIA NV36/AGP/SSE2 supported 1 NVIDIA NV36 -NVIDIA NV41/PCI/SSE2 supported 1 NVIDIA NV41 -NVIDIA NV43 supported 1 NVIDIA NV43 -NVIDIA NV43/PCI/SSE2 supported 1 NVIDIA NV43 -NVIDIA NV44 supported 1 NVIDIA NV44 -NVIDIA NV44/AGP/SSE2 supported 1 NVIDIA NV44 -NVIDIA NVIDIA GeForce 210 OpenGL Engine supported 2 NVIDIA 210 -NVIDIA NVIDIA GeForce 320M OpenGL Engine supported 2 NVIDIA 320M -NVIDIA NVIDIA GeForce 7300 GT OpenGL Engine supported 1 NVIDIA GeForce 7300 -NVIDIA NVIDIA GeForce 7600 GT OpenGL Engine supported 2 NVIDIA GeForce 7600 -NVIDIA NVIDIA GeForce 8600M GT OpenGL Engine supported 1 NVIDIA GeForce 8600M -NVIDIA NVIDIA GeForce 8800 GS OpenGL Engine supported 3 NVIDIA GeForce 8800 -NVIDIA NVIDIA GeForce 8800 GT OpenGL Engine supported 3 NVIDIA GeForce 8800 -NVIDIA NVIDIA GeForce 9400 OpenGL Engine supported 1 NVIDIA GeForce 9400 -NVIDIA NVIDIA GeForce 9400M OpenGL Engine supported 1 NVIDIA GeForce 9400M -NVIDIA NVIDIA GeForce 9500 GT OpenGL Engine supported 2 NVIDIA GeForce 9500 -NVIDIA NVIDIA GeForce 9600M GT OpenGL Engine supported 3 NVIDIA GeForce 9600M -NVIDIA NVIDIA GeForce GT 120 OpenGL Engine supported 2 NVIDIA GT 120M -NVIDIA NVIDIA GeForce GT 130 OpenGL Engine supported 2 NVIDIA GT 130M -NVIDIA NVIDIA GeForce GT 220 OpenGL Engine supported 2 NVIDIA GT 220M -NVIDIA NVIDIA GeForce GT 230M OpenGL Engine supported 2 NVIDIA GT 230M -NVIDIA NVIDIA GeForce GT 240M OpenGL Engine supported 2 NVIDIA GT 240M -NVIDIA NVIDIA GeForce GT 330M OpenGL Engine supported 3 NVIDIA GT 330M -NVIDIA NVIDIA GeForce GT 420M OpenGL Engine supported 2 NVIDIA GT 420M -NVIDIA NVIDIA GeForce GT 425M OpenGL Engine supported 3 NVIDIA GT 425M -NVIDIA NVIDIA GeForce GT 430 OpenGL Engine supported 3 NVIDIA GT 430M -NVIDIA NVIDIA GeForce GT 440 OpenGL Engine supported 3 NVIDIA GT 440M -NVIDIA NVIDIA GeForce GT 540M OpenGL Engine supported 3 NVIDIA GT 540M -NVIDIA NVIDIA GeForce GTS 240 OpenGL Engine supported 3 NVIDIA GTS 240 -NVIDIA NVIDIA GeForce GTS 250 OpenGL Engine supported 3 NVIDIA GTS 250 -NVIDIA NVIDIA GeForce GTS 450 OpenGL Engine supported 3 NVIDIA GTS 450 -NVIDIA NVIDIA GeForce GTX 285 OpenGL Engine supported 3 NVIDIA GTX 285 -NVIDIA NVIDIA GeForce GTX 460 OpenGL Engine supported 3 NVIDIA GTX 460 -NVIDIA NVIDIA GeForce GTX 460M OpenGL Engine supported 3 NVIDIA GTX 460M -NVIDIA NVIDIA GeForce GTX 465 OpenGL Engine supported 3 NVIDIA GTX 465 -NVIDIA NVIDIA GeForce GTX 470 OpenGL Engine supported 3 NVIDIA GTX 470 -NVIDIA NVIDIA GeForce GTX 480 OpenGL Engine supported 3 NVIDIA GTX 480 -NVIDIA NVIDIA GeForce Pre-Release GF108 ES OpenGL Engine NO MATCH -NVIDIA NVIDIA GeForce Pre-Release ION OpenGL Engine supported 2 NVIDIA ION -NVIDIA NVIDIA GeForce Pre-Release MCP7A-J-DC OpenGL Engine supported 1 NVIDIA MCP7A -NVIDIA NVIDIA GeForce4 OpenGL Engine supported 0 NVIDIA GeForce 4 -NVIDIA NVIDIA NV34MAP OpenGL Engine supported 0 NVIDIA NV34 -NVIDIA NVIDIA Quadro 4000 OpenGL Engine supported 3 NVIDIA Quadro 4000 -NVIDIA NVIDIA Quadro FX 4800 OpenGL Engine supported 3 NVIDIA Quadro FX 4800 -NVIDIA NVS 2100M/PCI/SSE2 supported 0 NVIDIA G100M -NVIDIA NVS 300/PCI/SSE2 supported 0 NVIDIA Quadro NVS -NVIDIA NVS 3100M/PCI/SSE2 supported 0 NVIDIA G100M -NVIDIA NVS 4100/PCI/SSE2/3DNOW! supported 0 NVIDIA G100 -NVIDIA NVS 4200M/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA NVS 5100M/PCI/SSE2 supported 0 NVIDIA G100M -NVIDIA PCI NO MATCH -NVIDIA Quadro 1000M/PCI/SSE2 supported 0 NVIDIA G100 -NVIDIA Quadro 2000/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA Quadro 2000M/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA Quadro 3000M/PCI/SSE2 supported 3 NVIDIA Quadro 3000M -NVIDIA Quadro 4000 supported 3 NVIDIA Quadro 4000 -NVIDIA Quadro 4000 OpenGL Engine supported 3 NVIDIA Quadro 4000 -NVIDIA Quadro 4000/PCI/SSE2 supported 3 NVIDIA Quadro 4000 -NVIDIA Quadro 4000M/PCI/SSE2 supported 3 NVIDIA Quadro 4000M -NVIDIA Quadro 5000/PCI/SSE2 supported 3 NVIDIA Quadro 50x0 M -NVIDIA Quadro 5000M/PCI/SSE2 supported 3 NVIDIA Quadro 50x0 M -NVIDIA Quadro 600 supported 2 NVIDIA Quadro 600 -NVIDIA Quadro 600/PCI/SSE2 supported 2 NVIDIA Quadro 600 -NVIDIA Quadro 600/PCI/SSE2/3DNOW! supported 2 NVIDIA Quadro 600 -NVIDIA Quadro 6000 supported 3 NVIDIA Quadro 6000 -NVIDIA Quadro 6000/PCI/SSE2 supported 3 NVIDIA Quadro 6000 -NVIDIA Quadro CX/PCI/SSE2 supported 3 NVIDIA Quadro CX -NVIDIA Quadro DCC supported 0 NVIDIA Quadro DCC -NVIDIA Quadro FX supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 1100/AGP/SSE2 supported 0 NVIDIA G100 -NVIDIA Quadro FX 1400/PCI/SSE2 supported 2 NVIDIA Quadro 400 -NVIDIA Quadro FX 1500 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 1500/PCI/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 1500M/PCI/SSE2 supported 1 NVIDIA Quadro FX 1500M -NVIDIA Quadro FX 1600M/PCI/SSE2 supported 2 NVIDIA Quadro 600 -NVIDIA Quadro FX 1700 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 1700M/PCI/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 1800 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 1800/PCI/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 1800M/PCI/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 2500M/PCI/SSE2 supported 2 NVIDIA Quadro FX 2500M -NVIDIA Quadro FX 2700M/PCI/SSE2 supported 3 NVIDIA Quadro FX 2700M -NVIDIA Quadro FX 2800M/PCI/SSE2 supported 3 NVIDIA Quadro FX 2800M -NVIDIA Quadro FX 3400 supported 2 NVIDIA Quadro 400 -NVIDIA Quadro FX 3450 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 3450/4000 SDI/PCI/SSE2 supported 2 NVIDIA Quadro 400 -NVIDIA Quadro FX 3500 supported 2 NVIDIA Quadro FX 3500 -NVIDIA Quadro FX 3500M/PCI/SSE2 supported 2 NVIDIA Quadro FX 3500 -NVIDIA Quadro FX 360M/PCI/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 370 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 370/PCI/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 3700 supported 3 NVIDIA Quadro FX 3700 -NVIDIA Quadro FX 3700M/PCI/SSE2 supported 3 NVIDIA Quadro FX 3700 -NVIDIA Quadro FX 370M/PCI/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 3800 supported 3 NVIDIA Quadro FX 3800 -NVIDIA Quadro FX 3800M/PCI/SSE2 supported 3 NVIDIA Quadro FX 3800 -NVIDIA Quadro FX 4500 supported 3 NVIDIA Quadro FX 4500 -NVIDIA Quadro FX 4600 supported 2 NVIDIA Quadro 600 -NVIDIA Quadro FX 4800 supported 3 NVIDIA Quadro FX 4800 -NVIDIA Quadro FX 4800/PCI/SSE2 supported 3 NVIDIA Quadro FX 4800 -NVIDIA Quadro FX 540/PCI/SSE2/3DNOW! supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 560 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 560/PCI/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 5600 supported 2 NVIDIA Quadro 600 -NVIDIA Quadro FX 570 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 570/PCI/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 570M/PCI/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 580/PCI/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro FX 770M/PCI/SSE2 supported 2 NVIDIA Quadro FX 770M -NVIDIA Quadro FX 880M supported 3 NVIDIA Quadro FX 880M -NVIDIA Quadro FX 880M/PCI/SSE2 supported 3 NVIDIA Quadro FX 880M -NVIDIA Quadro FX Go700/AGP/SSE2 supported 1 NVIDIA Quadro FX -NVIDIA Quadro NVS supported 0 NVIDIA Quadro NVS -NVIDIA Quadro NVS 110M/PCI/SSE2 supported 0 NVIDIA G 110M -NVIDIA Quadro NVS 130M/PCI/SSE2 supported 0 NVIDIA Quadro NVS 1xxM -NVIDIA Quadro NVS 135M/PCI/SSE2 supported 0 NVIDIA Quadro NVS 1xxM -NVIDIA Quadro NVS 140M/PCI/SSE2 supported 0 NVIDIA Quadro NVS 1xxM -NVIDIA Quadro NVS 150M/PCI/SSE2 supported 0 NVIDIA Quadro NVS 1xxM -NVIDIA Quadro NVS 160M/PCI/SSE2 supported 0 NVIDIA Quadro NVS 1xxM -NVIDIA Quadro NVS 210S/PCI/SSE2/3DNOW! supported 1 NVIDIA G 210 -NVIDIA Quadro NVS 285/PCI/SSE2 supported 0 NVIDIA Quadro NVS -NVIDIA Quadro NVS 290/PCI/SSE2 supported 0 NVIDIA Quadro NVS -NVIDIA Quadro NVS 295/PCI/SSE2 supported 0 NVIDIA Quadro NVS -NVIDIA Quadro NVS 320M/PCI/SSE2 supported 2 NVIDIA G 320M -NVIDIA Quadro NVS 55/280 PCI/PCI/SSE2 supported 0 NVIDIA Quadro NVS -NVIDIA Quadro NVS/PCI/SSE2 supported 0 NVIDIA Quadro NVS -NVIDIA Quadro PCI-E Series/PCI/SSE2/3DNOW! NO MATCH -NVIDIA Quadro VX 200/PCI/SSE2 supported 0 NVIDIA G 200 -NVIDIA Quadro/AGP/SSE2 NO MATCH -NVIDIA Quadro2 supported 0 NVIDIA Quadro2 -NVIDIA Quadro4 supported 0 NVIDIA Quadro4 -NVIDIA Quadro4 750 XGL/AGP/SSE2 supported 0 NVIDIA Quadro4 -NVIDIA RIVA TNT unsupported 0 NVIDIA RIVA TNT -NVIDIA RIVA TNT2/AGP/SSE2 unsupported 0 NVIDIA RIVA TNT -NVIDIA RIVA TNT2/PCI/3DNOW! unsupported 0 NVIDIA RIVA TNT -NVIDIA Tesla C2050/PCI/SSE2 supported 0 NVIDIA G 205M -NVIDIA nForce unsupported 0 NVIDIA nForce -NVIDIA nForce 730a/PCI/SSE2 unsupported 0 NVIDIA nForce -NVIDIA nForce 730a/PCI/SSE2/3DNOW! unsupported 0 NVIDIA nForce -NVIDIA nForce 750a SLI/PCI/SSE2 unsupported 0 NVIDIA nForce -NVIDIA nForce 750a SLI/PCI/SSE2/3DNOW! unsupported 0 NVIDIA nForce -NVIDIA nForce 760i SLI/PCI/SSE2 unsupported 0 NVIDIA nForce -NVIDIA nForce 780a SLI/PCI/SSE2/3DNOW! unsupported 0 NVIDIA nForce -NVIDIA nForce 980a/780a SLI/PCI/SSE2 unsupported 0 NVIDIA nForce -NVIDIA nForce 980a/780a SLI/PCI/SSE2/3DNOW! unsupported 0 NVIDIA nForce -NVIDIA unknown board/AGP/SSE2 unsupported 0 NVIDIA Generic -NVIDIA unknown board/PCI/SSE2 unsupported 0 NVIDIA Generic -NVIDIA unknown board/PCI/SSE2/3DNOW! unsupported 0 NVIDIA Generic -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5670 OpenGL Engine supported 3 ATI Radeon HD 5600 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5750 OpenGL Engine supported 3 ATI Radeon HD 5700 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5770 OpenGL Engine supported 3 ATI Radeon HD 5700 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6490M OpenGL Engine supported 3 ATI Radeon HD 6400 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6750M OpenGL Engine supported 3 ATI Radeon HD 6700 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6770M OpenGL Engine supported 3 ATI Radeon HD 6700 -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6970M OpenGL Engine supported 3 ATI Radeon HD 6900 -Parallels and Intel Inc. 3D-Analyze v2.3 - http://www.tommti-systems.com NO MATCH -Parallels and Intel Inc. Parallels using Intel HD Graphics 3000 OpenGL Engine supported 2 Intel HD Graphics -Parallels and NVIDIA Parallels using NVIDIA GeForce 320M OpenGL Engine supported 2 NVIDIA 320M -Parallels and NVIDIA Parallels using NVIDIA GeForce 9400 OpenGL Engine supported 1 NVIDIA GeForce 9400 -Parallels and NVIDIA Parallels using NVIDIA GeForce GT 120 OpenGL Engine supported 2 NVIDIA GT 120M -Parallels and NVIDIA Parallels using NVIDIA GeForce GT 330M OpenGL Engine supported 3 NVIDIA GT 330M -Radeon RV350 on Gallium supported 0 ATI RV350 (9600) -S3 NO MATCH -S3 Fire GL2 NO MATCH -S3 Graphics VIA/S3G UniChrome IGP/MMX/K3D unsupported 0 S3 -S3 Graphics VIA/S3G UniChrome IGP/MMX/SSE unsupported 0 S3 -S3 Graphics VIA/S3G UniChrome Pro IGP/MMX/SSE unsupported 0 S3 -S3 Graphics, Incorporated ProSavage/Twister unsupported 0 S3 -S3 Graphics, Incorporated S3 Graphics Chrome9 HC unsupported 0 S3 -S3 Graphics, Incorporated S3 Graphics DeltaChrome unsupported 0 S3 -S3 Graphics, Incorporated VIA Chrome9 HC IGP unsupported 0 S3 -SiS unsupported 0 SiS -SiS 650/M650 VGA unsupported 0 SiS -SiS 661 VGA unsupported 0 SiS -SiS 662 VGA unsupported 0 SiS -SiS 741 VGA unsupported 0 SiS -SiS 760 VGA unsupported 0 SiS -SiS 761GX VGA unsupported 0 SiS -SiS Mirage Graphics3 unsupported 0 SiS -SiS Xabre VGA unsupported 0 SiS -Trident unsupported 0 Trident -Tungsten Graphics unsupported 0 Tungsten Graphics -Tungsten Graphics, Inc Mesa DRI 865G GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 865G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 915G GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 915G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 915GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 915GM GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 915GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945G unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945G GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945G GEM 20100330 DEVELOPMENT unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945GM GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100328 2010Q1 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945GME x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945GME 20061017 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945GME GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945GME GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 945GME GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 965GM GEM 20090326 2009Q1 RC2 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 965GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 965GM GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI 965GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI G33 20061017 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI G33 GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI G33 GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI G41 GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI G41 GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI GMA500 20081116 - 5.0.1.0046 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI IGD GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI IGD GEM 20100330 DEVELOPMENT unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI IGD GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI IGDNG_D GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI Ironlake Desktop GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI Ironlake Mobile GEM 20100330 DEVELOPMENT x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset 20080716 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20090712 2009Q2 RC3 x86/MMX... unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20091221 2009Q4 x86/MMX/SSE2 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100328 2010Q1 unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT unsupported 0 Mesa -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MM... unsupported 0 Mesa -Tungsten Graphics, Inc. Mesa DRI R200 (RV250 4C66) 20090101 x86/MMX/SSE2 TCL DRI2 unsupported 0 Mesa -Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5964) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 unsupported 0 Mesa -VIA unsupported 0 VIA -VMware, Inc. Gallium 0.3 on SVGA3D; build: RELEASE; NO MATCH -VMware, Inc. Gallium 0.4 on SVGA3D; build: DEBUG; mutex: MSVC Intrinsics NO MATCH -VMware, Inc. Gallium 0.4 on SVGA3D; build: RELEASE; NO MATCH -VMware, Inc. Gallium 0.4 on i915 (chipset: 945GM) NO MATCH -VMware, Inc. Gallium 0.4 on llvmpipe NO MATCH -VMware, Inc. Gallium 0.4 on softpipe NO MATCH -X.Org Gallium 0.4 on AMD BARTS supported 3 AMD BARTS (HD 6800) -X.Org Gallium 0.4 on AMD CEDAR supported 2 AMD CEDAR (HD 5450) -X.Org Gallium 0.4 on AMD HEMLOCK supported 3 AMD HEMLOCK (HD 5970) -X.Org Gallium 0.4 on AMD JUNIPER supported 3 AMD JUNIPER (HD 5700) -X.Org Gallium 0.4 on AMD PALM NO MATCH -X.Org Gallium 0.4 on AMD REDWOOD supported 3 AMD REDWOOD (HD 5500/5600) -X.Org Gallium 0.4 on AMD RS780 supported 0 AMD RS780 (HD 3200) -X.Org Gallium 0.4 on AMD RS880 supported 1 AMD RS880 (HD 4200) -X.Org Gallium 0.4 on AMD RV610 supported 1 AMD RV610 (HD 2400) -X.Org Gallium 0.4 on AMD RV620 supported 1 AMD RV620 (HD 3400) -X.Org Gallium 0.4 on AMD RV630 supported 2 AMD RV630 (HD 2600) -X.Org Gallium 0.4 on AMD RV635 supported 3 AMD RV635 (HD 3600) -X.Org Gallium 0.4 on AMD RV710 supported 1 AMD RV710 (HD 4300) -X.Org Gallium 0.4 on AMD RV730 supported 3 AMD RV730 (HD 4600) -X.Org Gallium 0.4 on AMD RV740 supported 3 AMD RV740 (HD 4700) -X.Org Gallium 0.4 on AMD RV770 supported 3 AMD RV770 (HD 4800) -X.Org R300 Project Gallium 0.4 on ATI R300 supported 1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI R350 supported 1 ATI R350 (9800) -X.Org R300 Project Gallium 0.4 on ATI R420 supported 1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI R580 supported 3 ATI R580 (X1900) -X.Org R300 Project Gallium 0.4 on ATI RC410 unsupported 0 ATI RC410 (Xpress 200) -X.Org R300 Project Gallium 0.4 on ATI RS480 unsupported 0 ATI RS48x (Xpress 200x) -X.Org R300 Project Gallium 0.4 on ATI RS482 unsupported 0 ATI RS48x (Xpress 200x) -X.Org R300 Project Gallium 0.4 on ATI RS600 unsupported 0 ATI RS600 (Xpress 3200) -X.Org R300 Project Gallium 0.4 on ATI RS690 supported 1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RS740 supported 1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RV350 supported 0 ATI RV350 (9600) -X.Org R300 Project Gallium 0.4 on ATI RV370 supported 0 ATI RV370 (X300) -X.Org R300 Project Gallium 0.4 on ATI RV410 supported 1 ATI RV410 (X700) -X.Org R300 Project Gallium 0.4 on ATI RV515 supported 1 ATI RV515 -X.Org R300 Project Gallium 0.4 on ATI RV530 supported 1 ATI RV530 -X.Org R300 Project Gallium 0.4 on ATI RV560 supported 1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on ATI RV570 supported 3 ATI RV570 (X1900 GT/PRO) -X.Org R300 Project Gallium 0.4 on R420 supported 1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on R580 supported 3 ATI R580 (X1900) -X.Org R300 Project Gallium 0.4 on RC410 unsupported 0 ATI RC410 (Xpress 200) -X.Org R300 Project Gallium 0.4 on RS480 unsupported 0 ATI RS48x (Xpress 200x) -X.Org R300 Project Gallium 0.4 on RS482 unsupported 0 ATI RS48x (Xpress 200x) -X.Org R300 Project Gallium 0.4 on RS600 unsupported 0 ATI RS600 (Xpress 3200) -X.Org R300 Project Gallium 0.4 on RS690 supported 1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on RS740 supported 1 ATI R300 (9700) -X.Org R300 Project Gallium 0.4 on RV350 supported 0 ATI RV350 (9600) -X.Org R300 Project Gallium 0.4 on RV370 supported 0 ATI RV370 (X300) -X.Org R300 Project Gallium 0.4 on RV410 supported 1 ATI RV410 (X700) -X.Org R300 Project Gallium 0.4 on RV515 supported 1 ATI RV515 -X.Org R300 Project Gallium 0.4 on RV530 supported 1 ATI RV530 -XGI unsupported 0 XGI -nouveau Gallium 0.4 on NV31 NO MATCH -nouveau Gallium 0.4 on NV34 NO MATCH -nouveau Gallium 0.4 on NV36 NO MATCH -nouveau Gallium 0.4 on NV43 NO MATCH -nouveau Gallium 0.4 on NV44 NO MATCH -nouveau Gallium 0.4 on NV46 NO MATCH -nouveau Gallium 0.4 on NV49 NO MATCH -nouveau Gallium 0.4 on NV4A NO MATCH -nouveau Gallium 0.4 on NV4B NO MATCH -nouveau Gallium 0.4 on NV4C NO MATCH -nouveau Gallium 0.4 on NV4E NO MATCH -nouveau Gallium 0.4 on NV50 NO MATCH -nouveau Gallium 0.4 on NV63 NO MATCH -nouveau Gallium 0.4 on NV67 NO MATCH -nouveau Gallium 0.4 on NV84 NO MATCH -nouveau Gallium 0.4 on NV86 NO MATCH -nouveau Gallium 0.4 on NV92 NO MATCH -nouveau Gallium 0.4 on NV94 NO MATCH -nouveau Gallium 0.4 on NV96 NO MATCH -nouveau Gallium 0.4 on NV98 NO MATCH -nouveau Gallium 0.4 on NVA0 NO MATCH -nouveau Gallium 0.4 on NVA3 NO MATCH -nouveau Gallium 0.4 on NVA5 NO MATCH -nouveau Gallium 0.4 on NVA8 NO MATCH -nouveau Gallium 0.4 on NVAA NO MATCH -nouveau Gallium 0.4 on NVAC NO MATCH +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å¨ GM45 Express Chipset unsupported 1 1 3 Mesa +Intel Open Source Technology Center Mesa DRI Mobile Intelå¨ 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å¨ GM45 Express Chipset unsupported 1 1 3 Mesa +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20091221 2009Q4 supported 1 1 2.1 Intel Q45/Q43 +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20091221 2009Q4 x86/MMX/SSE2 supported 1 1 2.1 Intel Q45/Q43 +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MMX unsupported 1 1 3 Mesa +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ 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 index 570f92a9b0..a417cb3761 100755 --- a/indra/newview/tests/gpus_seen.txt +++ b/indra/newview/tests/gpus_seen.txt @@ -1,73 +1,129 @@ +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 3D-Analyze -ATI ASUS A9xxx +ATI 760G/Radeon 3000 ATI ASUS AH24xx -ATI ASUS AH26xx ATI ASUS AH34xx ATI ASUS AH36xx ATI ASUS AH46xx ATI ASUS AX3xx ATI ASUS AX5xx -ATI ASUS AX8xx ATI ASUS EAH38xx ATI ASUS EAH43xx ATI ASUS EAH45xx ATI ASUS EAH48xx +ATI ASUS EAH54xx ATI ASUS EAH57xx ATI ASUS EAH58xx -ATI ASUS X1xxx -ATI All-in-Wonder 9xxx +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 All-in-Wonder X1800 -ATI All-in-Wonder X1900 -ATI All-in-Wonder X600 -ATI All-in-Wonder X800 -ATI Diamond X1xxx ATI Display Adapter ATI FireGL ATI FireGL 5200 ATI FireGL 5xxx ATI FireMV -ATI Generic -ATI Hercules 9800 +ATI 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 M52 -ATI M54 -ATI M56 -ATI M71 -ATI M72 -ATI M76 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 RV380 +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 @@ -79,189 +135,630 @@ 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 OpenGL -ATI Radeon RV250 -ATI Radeon RV600 -ATI Radeon RX9550 -ATI Radeon VE +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 X1700 +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 X7xx ATI Radeon X800 ATI Radeon Xpress +ATI Radeon Xpress ATI Rage 128 +ATI Technologies ATI Technologies Inc. -ATI Technologies Inc. x86 -ATI Technologies Inc. x86/SSE2 -ATI Technologies Inc. x86/SSE2 +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 WDDM 1.1) -ATI Technologies Inc. AMD 780L +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 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 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 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 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 6570M +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 6750 +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 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 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 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. ASUS 5870 Eyefinity 6 -ATI Technologies Inc. ASUS A9550 Series -ATI Technologies Inc. ASUS AH2600 Series +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 AH3650 Series ATI Technologies Inc. ASUS AH4650 Series ATI Technologies Inc. ASUS ARES -ATI Technologies Inc. ASUS ARES -ATI Technologies Inc. ASUS EAH2900 Series -ATI Technologies Inc. ASUS EAH3450 Series +ATI Technologies Inc. ASUS 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 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 EAH4550 series ATI Technologies Inc. ASUS EAH4650 series ATI Technologies Inc. ASUS EAH4670 series -ATI Technologies Inc. ASUS EAH4670 series -ATI Technologies Inc. ASUS EAH4750 Series -ATI Technologies Inc. ASUS EAH4770 Series ATI Technologies Inc. ASUS EAH4770 Series ATI Technologies Inc. ASUS EAH4770 series -ATI Technologies Inc. ASUS EAH4770 series ATI Technologies Inc. ASUS EAH4850 series +ATI Technologies Inc. ASUS 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 @@ -269,21 +766,26 @@ ATI Technologies Inc. ASUS EAH5550 Series ATI Technologies Inc. ASUS EAH5570 series ATI Technologies Inc. ASUS EAH5570 series ATI Technologies Inc. ASUS EAH5670 Series -ATI Technologies Inc. ASUS EAH5670 Series ATI Technologies Inc. ASUS EAH5750 Series ATI Technologies Inc. ASUS EAH5750 Series ATI Technologies Inc. ASUS EAH5770 Series ATI Technologies Inc. ASUS EAH5770 Series ATI Technologies Inc. ASUS EAH5830 Series +ATI Technologies Inc. ASUS EAH5830 Series ATI Technologies Inc. ASUS EAH5850 Series ATI Technologies Inc. ASUS EAH5850 Series ATI Technologies Inc. ASUS EAH5870 Series ATI Technologies Inc. ASUS EAH5870 Series -ATI Technologies Inc. ASUS EAH5970 Series -ATI Technologies Inc. ASUS EAH5970 Series ATI Technologies Inc. ASUS EAH6450 Series +ATI Technologies Inc. ASUS 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 @@ -292,359 +794,476 @@ ATI Technologies Inc. ASUS EAH6950 Series ATI Technologies Inc. ASUS EAH6950 Series ATI Technologies Inc. ASUS EAH6970 Series ATI Technologies Inc. ASUS EAH6970 Series -ATI Technologies Inc. ASUS EAHG4670 series -ATI Technologies Inc. ASUS Extreme AX600 Series +ATI Technologies Inc. ASUS Extreme 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 Extreme AX600XT-TD -ATI Technologies Inc. ASUS Extreme AX600XT-TD +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 X1950 Series x86/SSE2 -ATI Technologies Inc. ASUS X800 Series -ATI Technologies Inc. ASUS X800 Series -ATI Technologies Inc. ASUS X850 Series +ATI Technologies Inc. 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 M5800 -ATI Technologies Inc. ATI FirePro M7740 ATI Technologies Inc. ATI FirePro M7740 ATI Technologies Inc. ATI FirePro M7820 ATI Technologies Inc. ATI FirePro M7820 +ATI Technologies Inc. ATI FirePro 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 V5800 -ATI Technologies Inc. ATI FirePro V7800 +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 9XXX x86/SSE2 -ATI Technologies Inc. ATI MOBILITY RADEON 9XXX x86/SSE2 +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 X1600 -ATI Technologies Inc. ATI MOBILITY RADEON X2300 +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 HD x86/SSE2 ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI MOBILITY RADEON X2300 x86/SSE2 -ATI Technologies Inc. ATI MOBILITY RADEON X300 ATI Technologies Inc. ATI MOBILITY RADEON X300 +ATI Technologies Inc. ATI MOBILITY RADEON 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 +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 V5700 -ATI Technologies Inc. ATI Mobility Radeon 4100 +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 Graphics -ATI Technologies Inc. ATI Mobility Radeon HD 2300 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 XT +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 2700 +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 3450 +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 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 4300/4500 Series ATI Technologies Inc. ATI Mobility Radeon HD 4330 ATI Technologies Inc. ATI Mobility Radeon HD 4330 ATI Technologies Inc. ATI Mobility Radeon HD 4330 Series ATI Technologies Inc. ATI Mobility Radeon HD 4350 ATI Technologies Inc. ATI Mobility Radeon HD 4350 Series -ATI Technologies Inc. ATI Mobility Radeon HD 4350 Series ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series ATI Technologies Inc. ATI Mobility Radeon HD 4500 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4500 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 ATI Technologies Inc. ATI Mobility Radeon HD 4530 Series ATI Technologies Inc. ATI Mobility Radeon HD 4530 Series ATI Technologies Inc. ATI Mobility Radeon HD 4550 -ATI Technologies Inc. ATI Mobility Radeon HD 4550 ATI Technologies Inc. ATI Mobility Radeon HD 4570 ATI Technologies Inc. ATI Mobility Radeon HD 4570 ATI Technologies Inc. ATI Mobility Radeon HD 4600 Series -ATI Technologies Inc. ATI Mobility Radeon HD 4600 Series ATI Technologies Inc. ATI Mobility Radeon HD 4650 ATI Technologies Inc. ATI Mobility Radeon HD 4650 -ATI Technologies Inc. ATI Mobility Radeon HD 4650 Series +ATI Technologies Inc. ATI Mobility Radeon HD 4650 (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 +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 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 5430 ATI Technologies Inc. ATI Mobility Radeon HD 5450 -ATI Technologies Inc. ATI Mobility Radeon HD 5450 -ATI Technologies Inc. ATI Mobility Radeon HD 5450 Series ATI Technologies Inc. ATI Mobility Radeon HD 5450 Series ATI Technologies Inc. ATI Mobility Radeon HD 545v ATI Technologies Inc. ATI Mobility Radeon HD 545v ATI Technologies Inc. ATI Mobility Radeon HD 5470 ATI Technologies Inc. ATI Mobility Radeon HD 5470 ATI Technologies Inc. ATI Mobility Radeon HD 550v -ATI Technologies Inc. ATI Mobility Radeon HD 550v -ATI Technologies Inc. ATI Mobility Radeon HD 5600/5700 Series +ATI Technologies Inc. ATI Mobility Radeon HD 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 5700 Series +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 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 5870 -ATI Technologies Inc. ATI Mobility Radeon HD 6300 series -ATI Technologies Inc. ATI Mobility Radeon HD 6300 series ATI Technologies Inc. ATI Mobility Radeon HD 6370 ATI Technologies Inc. ATI Mobility Radeon HD 6370 -ATI Technologies Inc. ATI Mobility Radeon HD 6470M +ATI Technologies Inc. ATI Mobility Radeon HD 6550 ATI Technologies Inc. ATI Mobility Radeon HD 6550 ATI Technologies Inc. ATI Mobility Radeon HD 6550 ATI Technologies Inc. ATI Mobility Radeon HD 6570 ATI Technologies Inc. ATI Mobility Radeon HD 6570 ATI Technologies Inc. ATI Mobility Radeon X1300 -ATI Technologies Inc. ATI Mobility Radeon X1300 +ATI Technologies Inc. ATI Mobility Radeon X1300 (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 X1300 x86/SSE2 ATI Technologies Inc. ATI Mobility Radeon X1350 ATI Technologies Inc. ATI Mobility Radeon X1350 x86/SSE2 ATI Technologies Inc. ATI Mobility Radeon X1400 -ATI Technologies Inc. ATI Mobility Radeon X1400 +ATI Technologies Inc. ATI Mobility Radeon X1400 (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 X1400 x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X1600 +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 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 (Omega 3.8.442) -ATI Technologies Inc. ATI Mobility Radeon X2300 x86 -ATI Technologies Inc. ATI Mobility Radeon X2300 x86 +ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow! ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2 ATI Technologies Inc. ATI Mobility Radeon X2300 x86/SSE2 ATI Technologies Inc. ATI Mobility Radeon X2500 -ATI Technologies Inc. ATI Mobility Radeon X2500 -ATI Technologies Inc. ATI Mobility Radeon X2500 x86/SSE2 -ATI Technologies Inc. ATI Mobility Radeon. HD 530v ATI Technologies Inc. ATI Mobility Radeon. HD 530v ATI Technologies Inc. ATI Mobility Radeon. HD 5470 -ATI Technologies Inc. ATI Mobility Radeon. HD 5470 -ATI Technologies Inc. ATI RADEON HD 3200 T25XX by CAMILO +ATI Technologies Inc. ATI RADEON 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 +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 -ATI Technologies Inc. ATI Radeon 2100 (Microsoft - WDDM) +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 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 5xxx series +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/MMX/3DNow!/SSE ATI Technologies Inc. ATI Radeon 9550 / X1050 Series x86/SSE2 -ATI Technologies Inc. ATI Radeon 9550 / X1050 Series(Microsoft - WDDM) +ATI Technologies Inc. ATI Radeon 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 BB Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Broadway XT 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 Cypress PRO Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Graphics Processor ATI Technologies Inc. ATI Radeon Graphics Processor -ATI Technologies Inc. ATI Radeon HD 2200 Graphics ATI Technologies Inc. ATI Radeon HD 2350 ATI Technologies Inc. ATI Radeon HD 2400 -ATI Technologies Inc. ATI Radeon HD 2400 ATI Technologies Inc. ATI Radeon HD 2400 OpenGL Engine ATI Technologies Inc. ATI Radeon HD 2400 OpenGL Engine +ATI Technologies Inc. ATI Radeon HD 2400 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 Pro ATI Technologies Inc. ATI Radeon HD 2400 Series -ATI Technologies Inc. ATI Radeon HD 2400 Series -ATI Technologies Inc. ATI Radeon HD 2400 XT +ATI Technologies Inc. ATI Radeon HD 2400 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 +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 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 - 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 3550 -ATI Technologies Inc. ATI Radeon HD 3550 ATI Technologies Inc. ATI Radeon HD 3600 Series ATI Technologies Inc. ATI Radeon HD 3600 Series -ATI Technologies Inc. ATI Radeon HD 3650 +ATI Technologies Inc. ATI Radeon HD 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 3730 -ATI Technologies Inc. ATI Radeon HD 3800 Series ATI Technologies Inc. ATI Radeon HD 3800 Series ATI Technologies Inc. ATI Radeon HD 3850 -ATI Technologies Inc. ATI Radeon HD 3850 +ATI Technologies Inc. ATI Radeon HD 3850 (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 +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 4290 -ATI Technologies Inc. ATI Radeon HD 4290 (Engineering Sample) ATI Technologies Inc. ATI Radeon HD 4300 Series ATI Technologies Inc. ATI Radeon HD 4300 Series ATI Technologies Inc. ATI Radeon HD 4300/4500 Series ATI Technologies Inc. ATI Radeon HD 4300/4500 Series +ATI Technologies Inc. ATI Radeon HD 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 WDDM 1.1) -ATI Technologies Inc. ATI Radeon HD 4450 +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 4720 -ATI Technologies Inc. ATI Radeon HD 4730 ATI Technologies Inc. ATI Radeon HD 4730 ATI Technologies Inc. ATI Radeon HD 4730 Series -ATI Technologies Inc. ATI Radeon HD 4730 Series -ATI Technologies Inc. ATI Radeon HD 4750 ATI Technologies Inc. ATI Radeon HD 4770 ATI Technologies Inc. ATI Radeon HD 4770 +ATI Technologies Inc. ATI Radeon HD 4800 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 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 4870 +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 X2 +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 @@ -655,16 +1274,24 @@ 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 5750 +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 @@ -672,343 +1299,492 @@ 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 6250 -ATI Technologies Inc. ATI Radeon HD 6250 +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 6570M ATI Technologies Inc. ATI Radeon HD 6630M OpenGL Engine -ATI Technologies Inc. ATI Radeon HD 6750 +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 6800 Series +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 Juniper LE Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon RV710 Prototype OpenGL Engine ATI Technologies Inc. ATI Radeon RV730 Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon RV770 Prototype OpenGL Engine ATI Technologies Inc. ATI Radeon RV790 Prototype OpenGL Engine ATI Technologies Inc. ATI Radeon RV790 Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Redwood PRO Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon RV790 Prototype OpenGL Engine ATI Technologies Inc. ATI Radeon Redwood XT Prototype OpenGL Engine -ATI Technologies Inc. ATI Radeon Whistler PRO/LP Prototype OpenGL Engine +ATI Technologies Inc. ATI Radeon 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 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 -ATI Technologies Inc. ATI Radeon X1270 x86/MMX/3DNow!/SSE2 ATI Technologies Inc. ATI Radeon X1270 x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. ATI Radeon X1300 / X1550 Series ATI Technologies Inc. ATI Radeon X1300/X1550 Series +ATI Technologies Inc. ATI Radeon X1550 ATI Technologies Inc. ATI Radeon X1550 Series -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 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 +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 -ATI Technologies Inc. ATI Radeon Xpress 1200 -ATI Technologies Inc. ATI Radeon Xpress 1200 Series ATI Technologies Inc. ATI Radeon Xpress 1200 Series -ATI Technologies Inc. ATI Radeon Xpress 1200 Series x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. ATI Radeon Xpress 1200 Series (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 1250 +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 Series +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. ATI Yamaha HD 9000 -ATI Technologies Inc. ATi RS880M -ATI Technologies Inc. ATi RS880M -ATI Technologies Inc. Carte graphique VGA standard +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. EG JUNIPER -ATI Technologies Inc. EG PARK +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. 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. GeForce 9600 GT x86/SSE2 -ATI Technologies Inc. Geforce 9500 GT -ATI Technologies Inc. Geforce 9500GT -ATI Technologies Inc. Geforce 9800 GT +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 X700 PRO -ATI Technologies Inc. M21 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. M76M +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 7500 DDR x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9000 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 9100 IGP DDR x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON 9600 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 X600 x86/SSE2 -ATI Technologies Inc. MOBILITY RADEON X700 SE x86 -ATI Technologies Inc. MOBILITY RADEON X700 x86/SSE2 +ATI Technologies Inc. MOBILITY RADEON X700 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. MSI RX9550SE -ATI Technologies Inc. MSI Radeon X1550 Series -ATI Technologies Inc. Mobility Radeon HD 6000 series +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 -ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2 ATI Technologies Inc. Mobility Radeon X2300 HD x86/SSE2 -ATI Technologies Inc. RADEON 7000 DDR x86/MMX/3DNow!/SSE +ATI Technologies Inc. RADEON 7000 DDR x86/MMX/3DNow!/SSE2 ATI Technologies Inc. RADEON 7000 DDR x86/SSE2 -ATI Technologies Inc. RADEON 7500 DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 7500 DDR x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. RADEON 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!/SSE +ATI Technologies Inc. RADEON 9200 DDR x86/MMX/3DNow!/SSE2 ATI Technologies Inc. RADEON 9200 DDR x86/SSE2 -ATI Technologies Inc. RADEON 9200 PRO DDR x86/MMX/3DNow!/SSE -ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE -ATI Technologies Inc. RADEON 9200 Series DDR x86/MMX/3DNow!/SSE +ATI Technologies Inc. RADEON 9200 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/SSE -ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE2 ATI Technologies Inc. RADEON 9200 Series DDR x86/SSE2 ATI Technologies Inc. RADEON 9200SE DDR x86/MMX/3DNow!/SSE2 ATI Technologies Inc. RADEON 9200SE DDR x86/SSE2 -ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE -ATI Technologies Inc. RADEON 9250/9200 Series DDR x86/MMX/3DNow!/SSE +ATI Technologies Inc. RADEON 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 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 SERIES x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON 9600 SERIES x86/SSE2 -ATI Technologies Inc. RADEON 9600 TX x86/SSE2 +ATI Technologies Inc. RADEON 9600 TX 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 9600 x86/SSE2 -ATI Technologies Inc. RADEON 9700 PRO x86/MMX/3DNow!/SSE +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 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 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/SSE2 +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 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!/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/MMX/3DNow!/SSE2 -ATI Technologies Inc. RADEON XPRESS Series x86/SSE2 ATI Technologies Inc. RADEON XPRESS Series x86/SSE2 -ATI Technologies Inc. RS740 -ATI Technologies Inc. RS780C -ATI Technologies Inc. RS780M +ATI Technologies Inc. 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. RV410 Pro x86/SSE2 -ATI Technologies Inc. RV790 -ATI Technologies Inc. RV790 +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 7000 DDR x86/SSE +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 7000 SDR x86/SSE2 -ATI Technologies Inc. Radeon 7500 DDR x86/SSE2 +ATI Technologies Inc. Radeon 7500 DDR x86 ATI Technologies Inc. Radeon 7500 DDR x86/SSE2 -ATI Technologies Inc. Radeon 9000 DDR x86/SSE2 -ATI Technologies Inc. Radeon DDR x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. Radeon DDR x86/SSE -ATI Technologies Inc. Radeon DDR x86/SSE2 -ATI Technologies Inc. Radeon HD 6310 -ATI Technologies Inc. Radeon HD 6310 +ATI Technologies Inc. Radeon 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 SDR x86/SSE2 -ATI Technologies Inc. Radeon SDR x86/SSE2 +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 +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 - WDDM) +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 x86/MMX/3DNow!/SSE2 +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 - WDDM) +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 x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. SAPPHIRE RADEON X300SE +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 X300SE x86/MMX/3DNow!/SSE2 -ATI Technologies Inc. SAPPHIRE RADEON X300SE x86/SSE2 +ATI Technologies Inc. SAPPHIRE Radeon X1550 ATI Technologies Inc. SAPPHIRE Radeon X1550 Series -ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/MMX/3DNow!/SSE2 ATI Technologies Inc. SAPPHIRE Radeon X1550 Series x86/SSE2 -ATI Technologies Inc. SAPPHIRE Radeon X1550 x86/SSE2 -ATI Technologies Inc. Sapphire Radeon HD 3730 -ATI Technologies Inc. Sapphire Radeon HD 3730 -ATI Technologies Inc. Sapphire Radeon HD 3750 -ATI Technologies Inc. Standard VGA Graphics Adapter -ATI Technologies Inc. Standard VGA Graphics Adapter -ATI Technologies Inc. Tul, RADEON X600 PRO -ATI Technologies Inc. Tul, RADEON X600 PRO x86/SSE2 -ATI Technologies Inc. Tul, RADEON X700 PRO -ATI Technologies Inc. Tul, RADEON X700 PRO x86/MMX/3DNow!/SSE2 +ATI Technologies Inc. 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. WRESTLER 9803 ATI Technologies Inc. XFX Radeon HD 4570 -ATI Technologies Inc. Yamaha ATI HD 9000da/s -ATI Technologies Inc. Yamaha ATI HD 9000da/s 2048 -Advanced Micro Devices, Inc. Mesa DRI R600 (RS780 9612) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RS880 9710) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RS880 9712) 20090101 TCL -Advanced Micro Devices, Inc. Mesa DRI R600 (RV610 94C1) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV610 94C9) 20090101 x86/MMX/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C4) 20090101 x86/MMX/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV620 95C5) 20090101 x86/MMX/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV635 9596) 20090101 x86/MMX+/3DNow!+/SSE TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV670 9505) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV670 9505) 20090101 x86/MMX/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV710 9552) 20090101 x86/MMX/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9490) 20090101 x86/MMX/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV730 9498) 20090101 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV770 9440) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -Advanced Micro Devices, Inc. Mesa DRI R600 (RV770 9442) 20090101 x86/MMX/SSE2 TCL DRI2 +Advanced Micro Devices, Inc. Mesa DRI R600 (RS880 9712) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 Alex Mohr GL Hijacker! -Apple Software Renderer -DRI R300 Project Mesa DRI R300 (RS400 5954) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 -DRI R300 Project Mesa DRI R300 (RS400 5975) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 -DRI R300 Project Mesa DRI R300 (RS400 5A62) 20090101 x86/MMX/SSE2 NO-TCL DRI2 -DRI R300 Project Mesa DRI R300 (RS600 7941) 20090101 x86/MMX/SSE2 NO-TCL -DRI R300 Project Mesa DRI R300 (RS690 791F) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2 -DRI R300 Project Mesa DRI R300 (RV350 4151) 20090101 AGP 4x x86/MMX+/3DNow!+/SSE TCL -DRI R300 Project Mesa DRI R300 (RV350 4153) 20090101 AGP 8x x86/MMX+/3DNow!+/SSE TCL -DRI R300 Project Mesa DRI R300 (RV380 3150) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -DRI R300 Project Mesa DRI R300 (RV380 3150) 20090101 x86/MMX/SSE2 TCL DRI2 -DRI R300 Project Mesa DRI R300 (RV380 5B60) 20090101 x86/MMX/SSE2 TCL DRI2 -DRI R300 Project Mesa DRI R300 (RV380 5B60) 20090101 x86/MMX/SSE2 TCL DRI2 -DRI R300 Project Mesa DRI R300 (RV380 5B62) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -DRI R300 Project Mesa DRI R300 (RV515 7145) 20090101 x86/MMX/SSE2 TCL DRI2 -DRI R300 Project Mesa DRI R300 (RV515 7146) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -DRI R300 Project Mesa DRI R300 (RV515 7146) 20090101 x86/MMX/SSE2 TCL DRI2 -DRI R300 Project Mesa DRI R300 (RV515 7149) 20090101 x86/MMX/SSE2 TCL DRI2 -DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL -DRI R300 Project Mesa DRI R300 (RV515 714A) 20090101 x86/MMX/SSE2 TCL DRI2 -DRI R300 Project Mesa DRI R300 (RV530 71C4) 20090101 x86/MMX/SSE2 TCL DRI2 -GPU_CLASS_UNKNOWN -Humper 3D-Analyze v2.3 - http://www.tommti-systems.com +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 HD Graphics Family -Intel HD Graphics Family -Intel 3D-Analyze v2.2 - http://www.tommti-systems.com -Intel 3D-Analyze v2.3 - http://www.tommti-systems.com Intel 3D-Analyze v2.3 - http://www.tommti-systems.com -Intel 4 Series Internal Chipset -Intel 4 Series Internal Chipset -Intel 830M +Intel 4 Series Internal Intel 845G Intel 855GM Intel 865G @@ -1018,61 +1794,46 @@ Intel 945G Intel 945GM Intel 950 Intel 965 -Intel B43 Express Chipset -Intel B43 Express Chipset +Intel 965 +Intel 965 Intel Bear Lake Intel Broadwater Intel Brookdale Intel Cantiga -Intel EMGD on PowerVR SGX535 +Intel Corporation Intel(R) Graphics Media Accelerator 3600 Series +Intel Corporation Intel(R) Graphics Media Accelerator 3600 Series Intel Eaglelake -Intel Familia Mobile 45 Express Chipset (Microsoft Corporation - WDDM 1.1) -Intel Familia Mobile 45 Express Chipset (Microsoft Corporation - WDDM 1.1) Intel G33 Intel G41 -Intel G41 Express Chipset -Intel G41 Express Chipset Intel G45 -Intel G45/G43 Express Chipset -Intel G45/G43 Express Chipset -Intel Graphics Media Accelerator HD -Intel Graphics Media Accelerator HD +Intel Graphics Media HD +Intel Graphics Media HD +Intel HD Graphics Intel HD Graphics Intel HD Graphics -Intel HD Graphics 100 -Intel HD Graphics 200 -Intel HD Graphics 200 BR-1101-00SH -Intel HD Graphics 200 BR-1101-00SJ -Intel HD Graphics 200 BR-1101-00SK -Intel HD Graphics 200 BR-1101-01M5 -Intel HD Graphics 200 BR-1101-01M6 -Intel HD Graphics BR-1004-01Y1 -Intel HD Graphics BR-1004-01Y1 -Intel HD Graphics BR-1006-0364 -Intel HD Graphics BR-1006-0365 -Intel HD Graphics BR-1006-0366 -Intel HD Graphics BR-1007-02G4 -Intel HD Graphics BR-1101-04SY -Intel HD Graphics BR-1101-04SZ -Intel HD Graphics BR-1101-04T0 -Intel HD Graphics BR-1101-04T9 -Intel HD Graphics Family -Intel HD Graphics Family -Intel HD Graphics Family BR-1012-00Y8 -Intel HD Graphics Family BR-1012-00YF -Intel HD Graphics Family BR-1012-00ZD -Intel HD Graphics Family BR-1102-00ML -Intel Inc. Intel GMA 900 OpenGL Engine -Intel Inc. Intel GMA 900 OpenGL Engine +Intel 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 Inc. Intel HD Graphics OpenGL Engine -Intel Inc. Intel HD xxxx OpenGL Engine Intel Intel 845G Intel Intel 845G Intel Intel 855GM @@ -1093,144 +1854,1931 @@ Intel Intel Bear Lake B Intel Intel Bear Lake B Intel Intel Broadwater G Intel Intel Brookdale-G -Intel Intel Brookdale-G -Intel Intel Calistoga Intel Intel Cantiga Intel Intel Cantiga Intel Intel Eaglelake Intel Intel Eaglelake -Intel Intel Generic Renderer Intel Intel Grantsdale-G Intel Intel Grantsdale-G -Intel Intel HD Graphics 3000 -Intel Intel Lakeport +Intel Intel Iris Pro Graphics 5200 Intel Intel Montara-GM Intel Intel Pineview Platform Intel Intel Pineview Platform Intel Intel Springdale-G -Intel Mobile - famiglia Express Chipset 45 (Microsoft Corporation - WDDM 1.1) +Intel 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 4 Series Express Chipset Family -Intel Mobile 4 Series Express Chipset Family -Intel Mobile 45 Express Chipset Family -Intel Mobile 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1) -Intel Mobile 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1) -Intel Mobile HD Graphics -Intel Mobile HD Graphics Intel Mobile Intel(R) 4 Series Express Chipset Family -Intel Mobile SandyBridge HD Graphics +Intel 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å¨ GM45 Express Chipset +Intel Open Source Technology Center Mesa DRI Mobile Intelå¨ GM45 Express Chipset x86/MMX/SSE2 Intel Pineview -Intel Q45/Q43 Express Chipset -Intel Q45/Q43 Express Chipset -Intel Royal BNA Driver +Intel Q45/Q43 Intel Royal BNA Driver -Intel SandyBridge HD Graphics -Intel SandyBridge HD Graphics BR-1006-00V8 Intel Springdale Intel X3100 -Intergraph wcgdrv 06.05.06.18 -Intergraph wcgdrv 06.06.00.35 -Intergraph wcgdrv 06.06.00.35 -LegendgrafiX Mobile 945 Express C/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://LegendgrafiX.tk -LegendgrafiX NVIDIA GeForce GT 430/TitaniumGL/GAC/D3D ACCELERATION/6x86/1 THREADs | http://LegendgrafiX.tk -Linden Lab Headless -Matrox +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 Software Rasterizer -NVIDIA /PCI/SSE2 -NVIDIA /PCI/SSE2 -NVIDIA /PCI/SSE2/3DNOW! -NVIDIA /PCI/SSE2/3DNOW! +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 C51 +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 D10M2-20/PCI/SSE2 -NVIDIA D10M2-20/PCI/SSE2 -NVIDIA D10P1-25/PCI/SSE2 -NVIDIA D10P1-25/PCI/SSE2 -NVIDIA D10P1-25/PCI/SSE2/3DNOW! -NVIDIA D10P1-30/PCI/SSE2 -NVIDIA D10P2-50/PCI/SSE2 -NVIDIA D11M2-30/PCI/SSE2 -NVIDIA D12-P1-35/PCI/SSE2 -NVIDIA D12U-15/PCI/SSE2 -NVIDIA D13M1-40/PCI/SSE2 -NVIDIA D13P1-40/PCI/SSE2 -NVIDIA D13P1-40/PCI/SSE2 -NVIDIA D13P1-40/PCI/SSE2/3DNOW! -NVIDIA D13U-10/PCI/SSE2 -NVIDIA D13U/PCI/SSE2 -NVIDIA D13U/PCI/SSE2 +NVIDIA 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 D9M-20/PCI/SSE2 -NVIDIA Entry Graphics/PCI/SSE2 -NVIDIA Entry Graphics/PCI/SSE2 -NVIDIA Entry Graphics/PCI/SSE2/3DNOW! -NVIDIA Entry Graphics/PCI/SSE2/3DNOW! -NVIDIA G 102M NVIDIA G 103M 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 G70/PCI/SSE2 -NVIDIA G72 NVIDIA G73 NVIDIA G84 -NVIDIA G86 +NVIDIA G84 NVIDIA G92 -NVIDIA G92-200/PCI/SSE2 NVIDIA G94 -NVIDIA G96/PCI/SSE2 -NVIDIA G96/PCI/SSE2 -NVIDIA G98/PCI/SSE2 -NVIDIA G98/PCI/SSE2 -NVIDIA G98/PCI/SSE2/3DNOW! NVIDIA GT 120 +NVIDIA GT 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 160M NVIDIA GT 220 -NVIDIA GT 220/PCI/SSE2 -NVIDIA GT 220/PCI/SSE2 -NVIDIA GT 220/PCI/SSE2/3DNOW! -NVIDIA GT 220/PCI/SSE2/3DNOW! +NVIDIA GT 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 250M 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-120 -NVIDIA GT200/PCI/SSE2 -NVIDIA GTS 150 +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 @@ -1238,11 +3786,12 @@ NVIDIA GTS 360 NVIDIA GTS 360M NVIDIA GTS 450 NVIDIA GTX 260 -NVIDIA GTX 260M 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 @@ -1250,1142 +3799,376 @@ NVIDIA GTX 470 NVIDIA GTX 470M NVIDIA GTX 480 NVIDIA GTX 480M -NVIDIA GTX 550 Ti +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 GeForce +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 205/PCI/SSE2 -NVIDIA GeForce 205/PCI/SSE2 -NVIDIA GeForce 210 -NVIDIA GeForce 210/PCI/SSE2 -NVIDIA GeForce 210/PCI/SSE2 -NVIDIA GeForce 210/PCI/SSE2/3DNOW! -NVIDIA GeForce 210/PCI/SSE2/3DNOW! NVIDIA GeForce 3 -NVIDIA GeForce 305M/PCI/SSE2 -NVIDIA GeForce 305M/PCI/SSE2 -NVIDIA GeForce 310/PCI/SSE2 -NVIDIA GeForce 310/PCI/SSE2 -NVIDIA GeForce 310/PCI/SSE2/3DNOW! -NVIDIA GeForce 310/PCI/SSE2/3DNOW! -NVIDIA GeForce 310M/PCI/SSE2 -NVIDIA GeForce 310M/PCI/SSE2 -NVIDIA GeForce 315/PCI/SSE2 -NVIDIA GeForce 315/PCI/SSE2 -NVIDIA GeForce 315/PCI/SSE2/3DNOW! -NVIDIA GeForce 315/PCI/SSE2/3DNOW! -NVIDIA GeForce 315M/PCI/SSE2 -NVIDIA GeForce 315M/PCI/SSE2 -NVIDIA GeForce 320M/PCI/SSE2 +NVIDIA GeForce 4 NVIDIA GeForce 4 Go NVIDIA GeForce 4 MX NVIDIA GeForce 4 Ti -NVIDIA GeForce 405/PCI/SSE2 -NVIDIA GeForce 405/PCI/SSE2 -NVIDIA GeForce 410M/PCI/SSE2 NVIDIA GeForce 6100 -NVIDIA GeForce 6100 nForce 400/PCI/SSE2/3DNOW! -NVIDIA GeForce 6100 nForce 400/PCI/SSE2/3DNOW! -NVIDIA GeForce 6100 nForce 405/PCI/SSE2 -NVIDIA GeForce 6100 nForce 405/PCI/SSE2/3DNOW! -NVIDIA GeForce 6100 nForce 405/PCI/SSE2/3DNOW! -NVIDIA GeForce 6100 nForce 420/PCI/SSE2/3DNOW! -NVIDIA GeForce 6100 nForce 420/PCI/SSE2/3DNOW! -NVIDIA GeForce 6100 nForce 430/PCI/SSE2/3DNOW! -NVIDIA GeForce 6100 nForce 430/PCI/SSE2/3DNOW! -NVIDIA GeForce 6100/PCI/SSE2/3DNOW! -NVIDIA GeForce 6100/PCI/SSE2/3DNOW! -NVIDIA GeForce 6150 LE/PCI/SSE2/3DNOW! -NVIDIA GeForce 6150 LE/PCI/SSE2/3DNOW! -NVIDIA GeForce 6150/PCI/SSE2 -NVIDIA GeForce 6150/PCI/SSE2/3DNOW! -NVIDIA GeForce 6150/PCI/SSE2/3DNOW! -NVIDIA GeForce 6150SE nForce 430/PCI/SSE2 -NVIDIA GeForce 6150SE nForce 430/PCI/SSE2 -NVIDIA GeForce 6150SE nForce 430/PCI/SSE2/3DNOW! -NVIDIA GeForce 6150SE nForce 430/PCI/SSE2/3DNOW! -NVIDIA GeForce 6150SE/PCI/SSE2/3DNOW! -NVIDIA GeForce 6150SE/PCI/SSE2/3DNOW! +NVIDIA GeForce 6100 +NVIDIA GeForce 6200 NVIDIA GeForce 6200 -NVIDIA GeForce 6200 A-LE/AGP/SSE/3DNOW! -NVIDIA GeForce 6200 A-LE/AGP/SSE2 -NVIDIA GeForce 6200 A-LE/AGP/SSE2/3DNOW! -NVIDIA GeForce 6200 LE/PCI/SSE2 -NVIDIA GeForce 6200 LE/PCI/SSE2 -NVIDIA GeForce 6200 LE/PCI/SSE2/3DNOW! -NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2 -NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2 -NVIDIA GeForce 6200 TurboCache(TM)/PCI/SSE2/3DNOW! -NVIDIA GeForce 6200/AGP/SSE/3DNOW! -NVIDIA GeForce 6200/AGP/SSE/3DNOW! -NVIDIA GeForce 6200/AGP/SSE2 -NVIDIA GeForce 6200/AGP/SSE2 -NVIDIA GeForce 6200/AGP/SSE2/3DNOW! -NVIDIA GeForce 6200/PCI/SSE/3DNOW! -NVIDIA GeForce 6200/PCI/SSE2 -NVIDIA GeForce 6200/PCI/SSE2 -NVIDIA GeForce 6200/PCI/SSE2/3DNOW! -NVIDIA GeForce 6200/PCI/SSE2/3DNOW! -NVIDIA GeForce 6200SE TurboCache(TM)/PCI/SSE2/3DNOW! NVIDIA GeForce 6500 -NVIDIA GeForce 6500/PCI/SSE2 -NVIDIA GeForce 6500/PCI/SSE2 NVIDIA GeForce 6600 -NVIDIA GeForce 6600 GT/AGP/SSE/3DNOW! -NVIDIA GeForce 6600 GT/AGP/SSE2 -NVIDIA GeForce 6600 GT/AGP/SSE2 -NVIDIA GeForce 6600 GT/PCI/SSE/3DNOW! -NVIDIA GeForce 6600 GT/PCI/SSE2 -NVIDIA GeForce 6600 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 6600 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 6600 LE/PCI/SSE2 -NVIDIA GeForce 6600/AGP/SSE/3DNOW! -NVIDIA GeForce 6600/AGP/SSE2 -NVIDIA GeForce 6600/AGP/SSE2/3DNOW! -NVIDIA GeForce 6600/PCI/SSE2 -NVIDIA GeForce 6600/PCI/SSE2/3DNOW! NVIDIA GeForce 6700 NVIDIA GeForce 6800 -NVIDIA GeForce 6800 GS/PCI/SSE2 -NVIDIA GeForce 6800 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 6800 GT/AGP/SSE2 -NVIDIA GeForce 6800 GT/PCI/SSE2 -NVIDIA GeForce 6800 XT/AGP/SSE2 -NVIDIA GeForce 6800 XT/PCI/SSE2 -NVIDIA GeForce 6800 XT/PCI/SSE2/3DNOW! -NVIDIA GeForce 6800/PCI/SSE2 -NVIDIA GeForce 6800/PCI/SSE2/3DNOW! NVIDIA GeForce 7000 NVIDIA GeForce 7000M -NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2 -NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2/3DNOW! -NVIDIA GeForce 7000M / nForce 610M/PCI/SSE2/3DNOW! -NVIDIA GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2/3DNOW! -NVIDIA GeForce 7025 / NVIDIA nForce 630a/PCI/SSE2/3DNOW! -NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2 -NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2 -NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2/3DNOW! -NVIDIA GeForce 7025 / nForce 630a/PCI/SSE2/3DNOW! -NVIDIA GeForce 7050 / NVIDIA nForce 610i/PCI/SSE2 -NVIDIA GeForce 7050 / NVIDIA nForce 610i/PCI/SSE2 -NVIDIA GeForce 7050 / NVIDIA nForce 620i/PCI/SSE2 -NVIDIA GeForce 7050 / nForce 610i/PCI/SSE2 -NVIDIA GeForce 7050 / nForce 610i/PCI/SSE2 -NVIDIA GeForce 7050 / nForce 620i/PCI/SSE2 -NVIDIA GeForce 7050 / nForce 620i/PCI/SSE2 -NVIDIA GeForce 7050 PV / NVIDIA nForce 630a/PCI/SSE2/3DNOW! -NVIDIA GeForce 7050 PV / NVIDIA nForce 630a/PCI/SSE2/3DNOW! -NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2 -NVIDIA GeForce 7050 PV / nForce 630a/PCI/SSE2/3DNOW! -NVIDIA GeForce 7050 SE / NVIDIA nForce 630a/PCI/SSE2/3DNOW! NVIDIA GeForce 7100 -NVIDIA GeForce 7100 / NVIDIA nForce 620i/PCI/SSE2 -NVIDIA GeForce 7100 / NVIDIA nForce 620i/PCI/SSE2 -NVIDIA GeForce 7100 / NVIDIA nForce 630i/PCI/SSE2 -NVIDIA GeForce 7100 / NVIDIA nForce 630i/PCI/SSE2 -NVIDIA GeForce 7100 / nForce 630i/PCI/SSE2 -NVIDIA GeForce 7100 / nForce 630i/PCI/SSE2 -NVIDIA GeForce 7100 GS/PCI/SSE2 -NVIDIA GeForce 7100 GS/PCI/SSE2 -NVIDIA GeForce 7100 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 7100 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2 -NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2 -NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW! -NVIDIA GeForce 7150M / nForce 630M/PCI/SSE2/3DNOW! NVIDIA GeForce 7300 -NVIDIA GeForce 7300 GS/PCI/SSE2 -NVIDIA GeForce 7300 GS/PCI/SSE2 -NVIDIA GeForce 7300 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 7300 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 7300 GT/AGP/SSE2 -NVIDIA GeForce 7300 GT/AGP/SSE2/3DNOW! -NVIDIA GeForce 7300 GT/PCI/SSE2 -NVIDIA GeForce 7300 GT/PCI/SSE2 -NVIDIA GeForce 7300 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 7300 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 7300 LE/PCI/SSE2 -NVIDIA GeForce 7300 LE/PCI/SSE2 -NVIDIA GeForce 7300 LE/PCI/SSE2/3DNOW! -NVIDIA GeForce 7300 LE/PCI/SSE2/3DNOW! -NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2 -NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2 -NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 7300 SE/7200 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 7300 SE/PCI/SSE2 -NVIDIA GeForce 7300 SE/PCI/SSE2 -NVIDIA GeForce 7300 SE/PCI/SSE2/3DNOW! -NVIDIA GeForce 7300 SE/PCI/SSE2/3DNOW! -NVIDIA GeForce 7350 LE/PCI/SSE2 -NVIDIA GeForce 7350 LE/PCI/SSE2 +NVIDIA GeForce 7300 NVIDIA GeForce 7500 -NVIDIA GeForce 7500 LE/PCI/SSE2 -NVIDIA GeForce 7500 LE/PCI/SSE2/3DNOW! NVIDIA GeForce 7600 -NVIDIA GeForce 7600 GS/AGP/SSE2 -NVIDIA GeForce 7600 GS/AGP/SSE2/3DNOW! -NVIDIA GeForce 7600 GS/PCI/SSE2 -NVIDIA GeForce 7600 GS/PCI/SSE2 -NVIDIA GeForce 7600 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 7600 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 7600 GT/AGP/SSE/3DNOW! -NVIDIA GeForce 7600 GT/AGP/SSE2 -NVIDIA GeForce 7600 GT/PCI/SSE2 -NVIDIA GeForce 7600 GT/PCI/SSE2 -NVIDIA GeForce 7600 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 7650 GS/PCI/SSE2 +NVIDIA GeForce 7600 +NVIDIA GeForce 7800 NVIDIA GeForce 7800 -NVIDIA GeForce 7800 GS/AGP/SSE2 -NVIDIA GeForce 7800 GS/AGP/SSE2/3DNOW! -NVIDIA GeForce 7800 GT/PCI/SSE2 -NVIDIA GeForce 7800 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 7800 GTX/PCI/SSE2 -NVIDIA GeForce 7800 GTX/PCI/SSE2/3DNOW! -NVIDIA GeForce 7800 GTX/PCI/SSE2/3DNOW! NVIDIA GeForce 7900 -NVIDIA GeForce 7900 GS/PCI/SSE2 -NVIDIA GeForce 7900 GS/PCI/SSE2 -NVIDIA GeForce 7900 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 7900 GT/GTO/PCI/SSE2 -NVIDIA GeForce 7900 GT/GTO/PCI/SSE2/3DNOW! -NVIDIA GeForce 7900 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 7900 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 7900 GTX/PCI/SSE2 -NVIDIA GeForce 7950 GT/PCI/SSE2 -NVIDIA GeForce 7950 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 7900 NVIDIA GeForce 8100 -NVIDIA GeForce 8100 / nForce 720a/PCI/SSE2/3DNOW! NVIDIA GeForce 8200 -NVIDIA GeForce 8200/PCI/SSE2 -NVIDIA GeForce 8200/PCI/SSE2 -NVIDIA GeForce 8200/PCI/SSE2/3DNOW! -NVIDIA GeForce 8200/PCI/SSE2/3DNOW! NVIDIA GeForce 8200M -NVIDIA GeForce 8200M G/PCI/SSE2 -NVIDIA GeForce 8200M G/PCI/SSE2 -NVIDIA GeForce 8200M G/PCI/SSE2/3DNOW! -NVIDIA GeForce 8200M G/PCI/SSE2/3DNOW! NVIDIA GeForce 8300 -NVIDIA GeForce 8300 GS/PCI/SSE2 -NVIDIA GeForce 8300 GS/PCI/SSE2 +NVIDIA GeForce 8300 +NVIDIA GeForce 8400 NVIDIA GeForce 8400 -NVIDIA GeForce 8400 GS/PCI/SSE/3DNOW! -NVIDIA GeForce 8400 GS/PCI/SSE2 -NVIDIA GeForce 8400 GS/PCI/SSE2 -NVIDIA GeForce 8400 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 8400 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 8400/PCI/SSE2/3DNOW! -NVIDIA GeForce 8400GS/PCI/SSE2 -NVIDIA GeForce 8400GS/PCI/SSE2 -NVIDIA GeForce 8400GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 8400GS/PCI/SSE2/3DNOW! NVIDIA GeForce 8400M -NVIDIA GeForce 8400M G/PCI/SSE2 -NVIDIA GeForce 8400M G/PCI/SSE2 -NVIDIA GeForce 8400M G/PCI/SSE2/3DNOW! -NVIDIA GeForce 8400M G/PCI/SSE2/3DNOW! -NVIDIA GeForce 8400M GS/PCI/SSE2 -NVIDIA GeForce 8400M GS/PCI/SSE2 -NVIDIA GeForce 8400M GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 8400M GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 8400M GT/PCI/SSE2 -NVIDIA GeForce 8400M GT/PCI/SSE2 +NVIDIA GeForce 8400M +NVIDIA GeForce 8500 NVIDIA GeForce 8500 -NVIDIA GeForce 8500 GT/PCI/SSE2 -NVIDIA GeForce 8500 GT/PCI/SSE2 -NVIDIA GeForce 8500 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 8500 GT/PCI/SSE2/3DNOW! NVIDIA GeForce 8600 -NVIDIA GeForce 8600 GS/PCI/SSE2 -NVIDIA GeForce 8600 GS/PCI/SSE2 -NVIDIA GeForce 8600 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 8600 GT/PCI/SSE2 -NVIDIA GeForce 8600 GT/PCI/SSE2 -NVIDIA GeForce 8600 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 8600 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 8600 GTS/PCI/SSE2 -NVIDIA GeForce 8600 GTS/PCI/SSE2/3DNOW! -NVIDIA GeForce 8600GS/PCI/SSE2 -NVIDIA GeForce 8600GS/PCI/SSE2 NVIDIA GeForce 8600M -NVIDIA GeForce 8600M GS/PCI/SSE2 -NVIDIA GeForce 8600M GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 8600M GT/PCI/SSE2 -NVIDIA GeForce 8600M GT/PCI/SSE2 +NVIDIA GeForce 8600M NVIDIA GeForce 8700 NVIDIA GeForce 8700M -NVIDIA GeForce 8700M GT/PCI/SSE2 -NVIDIA GeForce 8700M GT/PCI/SSE2 NVIDIA GeForce 8800 -NVIDIA GeForce 8800 GS/PCI/SSE2 -NVIDIA GeForce 8800 GT/PCI/SSE2 -NVIDIA GeForce 8800 GT/PCI/SSE2 -NVIDIA GeForce 8800 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 8800 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 8800 GTS 512/PCI/SSE2 -NVIDIA GeForce 8800 GTS 512/PCI/SSE2/3DNOW! -NVIDIA GeForce 8800 GTS/PCI/SSE2 -NVIDIA GeForce 8800 GTS/PCI/SSE2 -NVIDIA GeForce 8800 GTS/PCI/SSE2/3DNOW! -NVIDIA GeForce 8800 GTX/PCI/SSE2 -NVIDIA GeForce 8800 Ultra/PCI/SSE2 -NVIDIA GeForce 8800M GTS/PCI/SSE2 -NVIDIA GeForce 8800M GTS/PCI/SSE2 -NVIDIA GeForce 8800M GTX/PCI/SSE2 -NVIDIA GeForce 8800M GTX/PCI/SSE2 +NVIDIA GeForce 8800M NVIDIA GeForce 9100 -NVIDIA GeForce 9100/PCI/SSE2 -NVIDIA GeForce 9100/PCI/SSE2 -NVIDIA GeForce 9100/PCI/SSE2/3DNOW! NVIDIA GeForce 9100M -NVIDIA GeForce 9100M G/PCI/SSE2 -NVIDIA GeForce 9100M G/PCI/SSE2 -NVIDIA GeForce 9100M G/PCI/SSE2/3DNOW! NVIDIA GeForce 9200 -NVIDIA GeForce 9200/PCI/SSE2 -NVIDIA GeForce 9200/PCI/SSE2 -NVIDIA GeForce 9200/PCI/SSE2/3DNOW! -NVIDIA GeForce 9200/PCI/SSE2/3DNOW! -NVIDIA GeForce 9200M GE/PCI/SSE2 -NVIDIA GeForce 9200M GE/PCI/SSE2 -NVIDIA GeForce 9200M GS/PCI/SSE2 -NVIDIA GeForce 9200M GS/PCI/SSE2 +NVIDIA GeForce 9200 +NVIDIA GeForce 9200M +NVIDIA GeForce 9300 NVIDIA GeForce 9300 -NVIDIA GeForce 9300 / nForce 730i/PCI/SSE2 -NVIDIA GeForce 9300 GE/PCI/SSE2 -NVIDIA GeForce 9300 GE/PCI/SSE2 -NVIDIA GeForce 9300 GE/PCI/SSE2/3DNOW! -NVIDIA GeForce 9300 GE/PCI/SSE2/3DNOW! -NVIDIA GeForce 9300 GS/PCI/SSE2 -NVIDIA GeForce 9300 GS/PCI/SSE2 -NVIDIA GeForce 9300 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 9300 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 9300 SE/PCI/SSE2 NVIDIA GeForce 9300M -NVIDIA GeForce 9300M G/PCI/SSE2 -NVIDIA GeForce 9300M G/PCI/SSE2 -NVIDIA GeForce 9300M G/PCI/SSE2/3DNOW! -NVIDIA GeForce 9300M GS/PCI/SSE2 -NVIDIA GeForce 9300M GS/PCI/SSE2 -NVIDIA GeForce 9300M GS/PCI/SSE2/3DNOW! +NVIDIA GeForce 9300M +NVIDIA GeForce 9400 NVIDIA GeForce 9400 -NVIDIA GeForce 9400 GT/PCI/SSE2 -NVIDIA GeForce 9400 GT/PCI/SSE2 -NVIDIA GeForce 9400 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 9400 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 9400/PCI/SSE2 NVIDIA GeForce 9400M -NVIDIA GeForce 9400M G/PCI/SSE2 -NVIDIA GeForce 9400M G/PCI/SSE2 -NVIDIA GeForce 9400M/PCI/SSE2 -NVIDIA GeForce 9400M/PCI/SSE2 +NVIDIA GeForce 9400M NVIDIA GeForce 9500 -NVIDIA GeForce 9500 GS/PCI/SSE2 -NVIDIA GeForce 9500 GS/PCI/SSE2 -NVIDIA GeForce 9500 GS/PCI/SSE2/3DNOW! -NVIDIA GeForce 9500 GT/PCI/SSE2 -NVIDIA GeForce 9500 GT/PCI/SSE2 -NVIDIA GeForce 9500 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 9500 GT/PCI/SSE2/3DNOW! NVIDIA GeForce 9500M -NVIDIA GeForce 9500M GS/PCI/SSE2 -NVIDIA GeForce 9500M GS/PCI/SSE2 NVIDIA GeForce 9600 -NVIDIA GeForce 9600 GS/PCI/SSE2 -NVIDIA GeForce 9600 GSO 512/PCI/SSE2 -NVIDIA GeForce 9600 GSO/PCI/SSE2 -NVIDIA GeForce 9600 GSO/PCI/SSE2/3DNOW! -NVIDIA GeForce 9600 GSO/PCI/SSE2/3DNOW! -NVIDIA GeForce 9600 GT/PCI/SSE2 -NVIDIA GeForce 9600 GT/PCI/SSE2 -NVIDIA GeForce 9600 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 9600 GT/PCI/SSE2/3DNOW! +NVIDIA GeForce 9600 +NVIDIA GeForce 9600M NVIDIA GeForce 9600M -NVIDIA GeForce 9600M GS/PCI/SSE2 -NVIDIA GeForce 9600M GS/PCI/SSE2 -NVIDIA GeForce 9600M GT/PCI/SSE2 -NVIDIA GeForce 9600M GT/PCI/SSE2 -NVIDIA GeForce 9650M GT/PCI/SSE2 -NVIDIA GeForce 9650M GT/PCI/SSE2 NVIDIA GeForce 9700M -NVIDIA GeForce 9700M GT/PCI/SSE2 -NVIDIA GeForce 9700M GTS/PCI/SSE2 -NVIDIA GeForce 9700M GTS/PCI/SSE2 NVIDIA GeForce 9800 -NVIDIA GeForce 9800 GT/PCI/SSE2 -NVIDIA GeForce 9800 GT/PCI/SSE2 -NVIDIA GeForce 9800 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 9800 GT/PCI/SSE2/3DNOW! -NVIDIA GeForce 9800 GTX+/PCI/SSE2 -NVIDIA GeForce 9800 GTX+/PCI/SSE2 -NVIDIA GeForce 9800 GTX+/PCI/SSE2/3DNOW! -NVIDIA GeForce 9800 GTX/9800 GTX+/PCI/SSE2 -NVIDIA GeForce 9800 GTX/9800 GTX+/PCI/SSE2 -NVIDIA GeForce 9800 GTX/PCI/SSE2 -NVIDIA GeForce 9800 GX2/PCI/SSE2 NVIDIA GeForce 9800M -NVIDIA GeForce 9800M GS/PCI/SSE2 -NVIDIA GeForce 9800M GS/PCI/SSE2 -NVIDIA GeForce 9800M GT/PCI/SSE2 -NVIDIA GeForce 9800M GT/PCI/SSE2 -NVIDIA GeForce 9800M GTS/PCI/SSE2 -NVIDIA GeForce 9800M GTS/PCI/SSE2 -NVIDIA GeForce FX 5100 -NVIDIA GeForce FX 5100/AGP/SSE/3DNOW! NVIDIA GeForce FX 5200 -NVIDIA GeForce FX 5200/AGP/SSE -NVIDIA GeForce FX 5200/AGP/SSE/3DNOW! -NVIDIA GeForce FX 5200/AGP/SSE/3DNOW! -NVIDIA GeForce FX 5200/AGP/SSE2 -NVIDIA GeForce FX 5200/AGP/SSE2 -NVIDIA GeForce FX 5200/AGP/SSE2/3DNOW! -NVIDIA GeForce FX 5200/PCI/SSE2 -NVIDIA GeForce FX 5200/PCI/SSE2/3DNOW! -NVIDIA GeForce FX 5200LE/AGP/SSE2 +NVIDIA GeForce FX 5200 +NVIDIA GeForce FX 5500 NVIDIA GeForce FX 5500 -NVIDIA GeForce FX 5500/AGP/SSE/3DNOW! -NVIDIA GeForce FX 5500/AGP/SSE2 -NVIDIA GeForce FX 5500/AGP/SSE2 -NVIDIA GeForce FX 5500/AGP/SSE2/3DNOW! -NVIDIA GeForce FX 5500/AGP/SSE2/3DNOW! -NVIDIA GeForce FX 5500/PCI/SSE2 -NVIDIA GeForce FX 5500/PCI/SSE2 -NVIDIA GeForce FX 5500/PCI/SSE2/3DNOW! -NVIDIA GeForce FX 5500/PCI/SSE2/3DNOW! NVIDIA GeForce FX 5600 -NVIDIA GeForce FX 5600/AGP/SSE2 -NVIDIA GeForce FX 5600/AGP/SSE2 -NVIDIA GeForce FX 5600/AGP/SSE2/3DNOW! -NVIDIA GeForce FX 5600XT/AGP/SSE2/3DNOW! NVIDIA GeForce FX 5700 -NVIDIA GeForce FX 5700/AGP/SSE/3DNOW! -NVIDIA GeForce FX 5700LE/AGP/SSE -NVIDIA GeForce FX 5700LE/AGP/SSE/3DNOW! -NVIDIA GeForce FX 5800 NVIDIA GeForce FX 5900 -NVIDIA GeForce FX 5900/AGP/SSE2 -NVIDIA GeForce FX 5900XT/AGP/SSE2 NVIDIA GeForce FX Go5100 -NVIDIA GeForce FX Go5100/AGP/SSE2 NVIDIA GeForce FX Go5200 -NVIDIA GeForce FX Go5200/AGP/SSE2 -NVIDIA GeForce FX Go5200/AGP/SSE2 -NVIDIA GeForce FX Go5300 NVIDIA GeForce FX Go5600 -NVIDIA GeForce FX Go5600/AGP/SSE2 -NVIDIA GeForce FX Go5600/AGP/SSE2 -NVIDIA GeForce FX Go5650/AGP/SSE2 NVIDIA GeForce FX Go5700 -NVIDIA GeForce FX Go5700/AGP/SSE2 -NVIDIA GeForce FX Go5xxx/AGP/SSE2 -NVIDIA GeForce FX Go5xxx/AGP/SSE2 -NVIDIA GeForce G 103M/PCI/SSE2 -NVIDIA GeForce G 103M/PCI/SSE2 -NVIDIA GeForce G 103M/PCI/SSE2/3DNOW! -NVIDIA GeForce G 105M/PCI/SSE2 -NVIDIA GeForce G 105M/PCI/SSE2 -NVIDIA GeForce G 110M/PCI/SSE2 -NVIDIA GeForce G 110M/PCI/SSE2 -NVIDIA GeForce G100/PCI/SSE2 -NVIDIA GeForce G100/PCI/SSE2 -NVIDIA GeForce G100/PCI/SSE2/3DNOW! -NVIDIA GeForce G100/PCI/SSE2/3DNOW! -NVIDIA GeForce G102M/PCI/SSE2 -NVIDIA GeForce G102M/PCI/SSE2 -NVIDIA GeForce G105M/PCI/SSE2 -NVIDIA GeForce G105M/PCI/SSE2 -NVIDIA GeForce G200/PCI/SSE2 -NVIDIA GeForce G200/PCI/SSE2 -NVIDIA GeForce G205M/PCI/SSE2 -NVIDIA GeForce G205M/PCI/SSE2 -NVIDIA GeForce G210/PCI/SSE2 -NVIDIA GeForce G210/PCI/SSE2 -NVIDIA GeForce G210/PCI/SSE2/3DNOW! -NVIDIA GeForce G210/PCI/SSE2/3DNOW! -NVIDIA GeForce G210M/PCI/SSE2 -NVIDIA GeForce G210M/PCI/SSE2 -NVIDIA GeForce G310M/PCI/SSE2 -NVIDIA GeForce GT 120/PCI/SSE2 -NVIDIA GeForce GT 120/PCI/SSE2 -NVIDIA GeForce GT 120/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 120M/PCI/SSE2 -NVIDIA GeForce GT 130M/PCI/SSE2 -NVIDIA GeForce GT 130M/PCI/SSE2 -NVIDIA GeForce GT 140/PCI/SSE2 -NVIDIA GeForce GT 140/PCI/SSE2 -NVIDIA GeForce GT 220/PCI/SSE2 -NVIDIA GeForce GT 220/PCI/SSE2 -NVIDIA GeForce GT 220/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 220/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 220M/PCI/SSE2 -NVIDIA GeForce GT 220M/PCI/SSE2 -NVIDIA GeForce GT 230/PCI/SSE2 -NVIDIA GeForce GT 230/PCI/SSE2 -NVIDIA GeForce GT 230M/PCI/SSE2 -NVIDIA GeForce GT 230M/PCI/SSE2 -NVIDIA GeForce GT 240 -NVIDIA GeForce GT 240/PCI/SSE2 -NVIDIA GeForce GT 240/PCI/SSE2 -NVIDIA GeForce GT 240/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 240/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 240M/PCI/SSE2 -NVIDIA GeForce GT 240M/PCI/SSE2 -NVIDIA GeForce GT 320/PCI/SSE2 -NVIDIA GeForce GT 320M/PCI/SSE2 -NVIDIA GeForce GT 320M/PCI/SSE2 -NVIDIA GeForce GT 325M/PCI/SSE2 -NVIDIA GeForce GT 330/PCI/SSE2 -NVIDIA GeForce GT 330/PCI/SSE2 -NVIDIA GeForce GT 330/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 330M/PCI/SSE2 -NVIDIA GeForce GT 330M/PCI/SSE2 -NVIDIA GeForce GT 335M/PCI/SSE2 -NVIDIA GeForce GT 335M/PCI/SSE2 -NVIDIA GeForce GT 340/PCI/SSE2 -NVIDIA GeForce GT 340/PCI/SSE2 -NVIDIA GeForce GT 340/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 340/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 415M/PCI/SSE2 -NVIDIA GeForce GT 415M/PCI/SSE2 -NVIDIA GeForce GT 420/PCI/SSE2 -NVIDIA GeForce GT 420/PCI/SSE2 -NVIDIA GeForce GT 420M/PCI/SSE2 -NVIDIA GeForce GT 420M/PCI/SSE2 -NVIDIA GeForce GT 425M/PCI/SSE2 -NVIDIA GeForce GT 425M/PCI/SSE2 -NVIDIA GeForce GT 430/PCI/SSE2 -NVIDIA GeForce GT 430/PCI/SSE2 -NVIDIA GeForce GT 430/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 430/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 435M/PCI/SSE2 -NVIDIA GeForce GT 435M/PCI/SSE2 -NVIDIA GeForce GT 440/PCI/SSE2 -NVIDIA GeForce GT 440/PCI/SSE2 -NVIDIA GeForce GT 440/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 440/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 445M/PCI/SSE2 -NVIDIA GeForce GT 445M/PCI/SSE2 -NVIDIA GeForce GT 520/PCI/SSE2 -NVIDIA GeForce GT 520/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 520M/PCI/SSE2 -NVIDIA GeForce GT 520M/PCI/SSE2 -NVIDIA GeForce GT 525M/PCI/SSE2 -NVIDIA GeForce GT 525M/PCI/SSE2 -NVIDIA GeForce GT 530/PCI/SSE2 -NVIDIA GeForce GT 530/PCI/SSE2/3DNOW! -NVIDIA GeForce GT 540M/PCI/SSE2 -NVIDIA GeForce GT 540M/PCI/SSE2 -NVIDIA GeForce GT 545/PCI/SSE2 -NVIDIA GeForce GT 550M/PCI/SSE2 -NVIDIA GeForce GT 550M/PCI/SSE2 -NVIDIA GeForce GT 555M/PCI/SSE2 -NVIDIA GeForce GT 555M/PCI/SSE2 -NVIDIA GeForce GTS 150/PCI/SSE2 -NVIDIA GeForce GTS 150/PCI/SSE2 -NVIDIA GeForce GTS 160M/PCI/SSE2 -NVIDIA GeForce GTS 160M/PCI/SSE2 -NVIDIA GeForce GTS 240/PCI/SSE2 -NVIDIA GeForce GTS 240/PCI/SSE2 -NVIDIA GeForce GTS 250/PCI/SSE2 -NVIDIA GeForce GTS 250/PCI/SSE2 -NVIDIA GeForce GTS 250/PCI/SSE2/3DNOW! -NVIDIA GeForce GTS 250/PCI/SSE2/3DNOW! -NVIDIA GeForce GTS 250M/PCI/SSE2 -NVIDIA GeForce GTS 350M/PCI/SSE2 -NVIDIA GeForce GTS 350M/PCI/SSE2 -NVIDIA GeForce GTS 360M/PCI/SSE2 -NVIDIA GeForce GTS 360M/PCI/SSE2 -NVIDIA GeForce GTS 450/PCI/SSE2 -NVIDIA GeForce GTS 450/PCI/SSE2 -NVIDIA GeForce GTS 450/PCI/SSE2/3DNOW! -NVIDIA GeForce GTS 450/PCI/SSE2/3DNOW! -NVIDIA GeForce GTS 455/PCI/SSE2 -NVIDIA GeForce GTX 260/PCI/SSE2 -NVIDIA GeForce GTX 260/PCI/SSE2 -NVIDIA GeForce GTX 260/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 260/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 260M/PCI/SSE2 -NVIDIA GeForce GTX 260M/PCI/SSE2 -NVIDIA GeForce GTX 275/PCI/SSE2 -NVIDIA GeForce GTX 275/PCI/SSE2 -NVIDIA GeForce GTX 275/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 280 -NVIDIA GeForce GTX 280/PCI/SSE2 -NVIDIA GeForce GTX 280M/PCI/SSE2 -NVIDIA GeForce GTX 285 -NVIDIA GeForce GTX 285/PCI/SSE2 -NVIDIA GeForce GTX 285/PCI/SSE2 -NVIDIA GeForce GTX 285/PCI/SSE2 -NVIDIA GeForce GTX 295/PCI/SSE2 -NVIDIA GeForce GTX 295/PCI/SSE2 -NVIDIA GeForce GTX 460 SE/PCI/SSE2 -NVIDIA GeForce GTX 460 SE/PCI/SSE2 -NVIDIA GeForce GTX 460 SE/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 460 SE/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 460/PCI/SSE2 -NVIDIA GeForce GTX 460/PCI/SSE2 -NVIDIA GeForce GTX 460/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 460/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 460M/PCI/SSE2 -NVIDIA GeForce GTX 460M/PCI/SSE2 -NVIDIA GeForce GTX 465/PCI/SSE2 -NVIDIA GeForce GTX 465/PCI/SSE2 -NVIDIA GeForce GTX 465/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 465/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 470/PCI/SSE2 -NVIDIA GeForce GTX 470/PCI/SSE2 -NVIDIA GeForce GTX 470/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 480/PCI/SSE2 -NVIDIA GeForce GTX 550 Ti/PCI/SSE2 -NVIDIA GeForce GTX 550 Ti/PCI/SSE2 -NVIDIA GeForce GTX 550 Ti/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 550 Ti/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 560 Ti/PCI/SSE2 -NVIDIA GeForce GTX 560 Ti/PCI/SSE2 -NVIDIA GeForce GTX 560 Ti/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 560 Ti/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 560/PCI/SSE2 -NVIDIA GeForce GTX 560/PCI/SSE2 -NVIDIA GeForce GTX 560/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 560M/PCI/SSE2 -NVIDIA GeForce GTX 570/PCI/SSE2 -NVIDIA GeForce GTX 570/PCI/SSE2 -NVIDIA GeForce GTX 570/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 570/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 580/PCI/SSE2 -NVIDIA GeForce GTX 580/PCI/SSE2 -NVIDIA GeForce GTX 580/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 580/PCI/SSE2/3DNOW! -NVIDIA GeForce GTX 580M/PCI/SSE2 -NVIDIA GeForce GTX 590/PCI/SSE2 -NVIDIA GeForce GTX 590/PCI/SSE2 NVIDIA GeForce Go 6 NVIDIA GeForce Go 6100 -NVIDIA GeForce Go 6100/PCI/SSE2 -NVIDIA GeForce Go 6100/PCI/SSE2/3DNOW! -NVIDIA GeForce Go 6100/PCI/SSE2/3DNOW! -NVIDIA GeForce Go 6150/PCI/SSE2 -NVIDIA GeForce Go 6150/PCI/SSE2/3DNOW! -NVIDIA GeForce Go 6150/PCI/SSE2/3DNOW! NVIDIA GeForce Go 6200 -NVIDIA GeForce Go 6200/PCI/SSE2 NVIDIA GeForce Go 6400 -NVIDIA GeForce Go 6400/PCI/SSE2 -NVIDIA GeForce Go 6400/PCI/SSE2 NVIDIA GeForce Go 6600 -NVIDIA GeForce Go 6600/PCI/SSE2 -NVIDIA GeForce Go 6600/PCI/SSE2 NVIDIA GeForce Go 6800 -NVIDIA GeForce Go 6800 Ultra/PCI/SSE2 -NVIDIA GeForce Go 6800 Ultra/PCI/SSE2 -NVIDIA GeForce Go 6800/PCI/SSE2 NVIDIA GeForce Go 7200 -NVIDIA GeForce Go 7200/PCI/SSE2 -NVIDIA GeForce Go 7200/PCI/SSE2/3DNOW! NVIDIA GeForce Go 7300 -NVIDIA GeForce Go 7300/PCI/SSE2 -NVIDIA GeForce Go 7300/PCI/SSE2 -NVIDIA GeForce Go 7300/PCI/SSE2/3DNOW! NVIDIA GeForce Go 7400 -NVIDIA GeForce Go 7400/PCI/SSE2 -NVIDIA GeForce Go 7400/PCI/SSE2 -NVIDIA GeForce Go 7400/PCI/SSE2/3DNOW! NVIDIA GeForce Go 7600 -NVIDIA GeForce Go 7600/PCI/SSE2 -NVIDIA GeForce Go 7600/PCI/SSE2 -NVIDIA GeForce Go 7600/PCI/SSE2/3DNOW! -NVIDIA GeForce Go 7600/PCI/SSE2/3DNOW! NVIDIA GeForce Go 7700 -NVIDIA GeForce Go 7700/PCI/SSE2 NVIDIA GeForce Go 7800 -NVIDIA GeForce Go 7800 GTX/PCI/SSE2 NVIDIA GeForce Go 7900 -NVIDIA GeForce Go 7900 GS/PCI/SSE2 -NVIDIA GeForce Go 7900 GS/PCI/SSE2 -NVIDIA GeForce Go 7900 GTX/PCI/SSE2 -NVIDIA GeForce Go 7950 GTX/PCI/SSE2 NVIDIA GeForce PCX -NVIDIA GeForce2 GTS/AGP/SSE -NVIDIA GeForce2 MX/AGP/3DNOW! -NVIDIA GeForce2 MX/AGP/SSE/3DNOW! -NVIDIA GeForce2 MX/AGP/SSE2 -NVIDIA GeForce2 MX/AGP/SSE2 -NVIDIA GeForce2 MX/PCI/SSE2 -NVIDIA GeForce3/AGP/SSE/3DNOW! -NVIDIA GeForce3/AGP/SSE2 -NVIDIA GeForce4 420 Go 32M/AGP/SSE2 -NVIDIA GeForce4 420 Go 32M/AGP/SSE2/3DNOW! -NVIDIA GeForce4 420 Go 32M/PCI/SSE2/3DNOW! -NVIDIA GeForce4 420 Go/AGP/SSE2 -NVIDIA GeForce4 440 Go 64M/AGP/SSE2/3DNOW! -NVIDIA GeForce4 440 Go/AGP/SSE2 -NVIDIA GeForce4 460 Go/AGP/SSE2 -NVIDIA GeForce4 MX 4000/AGP/SSE/3DNOW! -NVIDIA GeForce4 MX 4000/AGP/SSE/3DNOW! -NVIDIA GeForce4 MX 4000/AGP/SSE2 -NVIDIA GeForce4 MX 4000/AGP/SSE2 -NVIDIA GeForce4 MX 4000/PCI/3DNOW! -NVIDIA GeForce4 MX 4000/PCI/SSE/3DNOW! -NVIDIA GeForce4 MX 4000/PCI/SSE2 -NVIDIA GeForce4 MX 420/AGP/SSE/3DNOW! -NVIDIA GeForce4 MX 420/AGP/SSE2 -NVIDIA GeForce4 MX 440 with AGP8X/AGP/SSE2 -NVIDIA GeForce4 MX 440 with AGP8X/AGP/SSE2 -NVIDIA GeForce4 MX 440/AGP/SSE2 -NVIDIA GeForce4 MX 440/AGP/SSE2 -NVIDIA GeForce4 MX 440/AGP/SSE2/3DNOW! -NVIDIA GeForce4 MX 440SE with AGP8X/AGP/SSE2 -NVIDIA GeForce4 MX 440SE with AGP8X/AGP/SSE2 -NVIDIA GeForce4 MX Integrated GPU/AGP/SSE/3DNOW! -NVIDIA GeForce4 MX Integrated GPU/AGP/SSE/3DNOW! -NVIDIA GeForce4 Ti 4200 with AGP8X/AGP/SSE -NVIDIA GeForce4 Ti 4200/AGP/SSE/3DNOW! -NVIDIA GeForce4 Ti 4400/AGP/SSE2 NVIDIA Generic -NVIDIA ION LE/PCI/SSE2 -NVIDIA ION LE/PCI/SSE2 -NVIDIA ION/PCI/SSE2 -NVIDIA ION/PCI/SSE2 -NVIDIA ION/PCI/SSE2/3DNOW! -NVIDIA ION/PCI/SSE2/3DNOW! -NVIDIA MCP61/PCI/SSE2 -NVIDIA MCP61/PCI/SSE2 -NVIDIA MCP61/PCI/SSE2/3DNOW! -NVIDIA MCP61/PCI/SSE2/3DNOW! -NVIDIA MCP73/PCI/SSE2 -NVIDIA MCP73/PCI/SSE2 -NVIDIA MCP79MH/PCI/SSE2 -NVIDIA MCP79MH/PCI/SSE2 -NVIDIA MCP79MX/PCI/SSE2 -NVIDIA MCP79MX/PCI/SSE2 -NVIDIA MCP7A-O/PCI/SSE2 -NVIDIA MCP7A-O/PCI/SSE2 -NVIDIA MCP7A-S/PCI/SSE2 -NVIDIA MCP89-EPT/PCI/SSE2 -NVIDIA MCP89-EPT/PCI/SSE2 -NVIDIA N10M-GE1/PCI/SSE2 -NVIDIA N10M-GE1/PCI/SSE2 -NVIDIA N10P-GE1/PCI/SSE2 -NVIDIA N10P-GE1/PCI/SSE2 -NVIDIA N10P-GV2/PCI/SSE2 -NVIDIA N10P-GV2/PCI/SSE2 -NVIDIA N11M-GE1/PCI/SSE2 -NVIDIA N11M-GE1/PCI/SSE2 -NVIDIA N11M-GE2/PCI/SSE2 -NVIDIA N11M-GE2/PCI/SSE2 -NVIDIA N12E-GS-A1/PCI/SSE2 -NVIDIA N12P-GVR-B-A1/PCI/SSE2 -NVIDIA N13M-GE1-B-A1/PCI/SSE2 -NVIDIA N13P-GL-A1/PCI/SSE2 -NVIDIA NB9M-GE/PCI/SSE2 -NVIDIA NB9M-GE/PCI/SSE2 -NVIDIA NB9M-GE1/PCI/SSE2 -NVIDIA NB9M-GE1/PCI/SSE2 -NVIDIA NB9M-GS/PCI/SSE2 -NVIDIA NB9M-GS/PCI/SSE2 -NVIDIA NB9M-NS/PCI/SSE2 -NVIDIA NB9M-NS/PCI/SSE2 -NVIDIA NB9P-GE1/PCI/SSE2 -NVIDIA NB9P-GE1/PCI/SSE2 -NVIDIA NB9P-GS/PCI/SSE2 -NVIDIA NV17/AGP/3DNOW! -NVIDIA NV17/AGP/SSE2 -NVIDIA NV17/AGP/SSE2 +NVIDIA ION +NVIDIA MCP61 NVIDIA NV34 -NVIDIA NV35 -NVIDIA NV36/AGP/SSE/3DNOW! -NVIDIA NV36/AGP/SSE2 -NVIDIA NV41/PCI/SSE2 -NVIDIA NV43 -NVIDIA NV43/PCI/SSE2 -NVIDIA NV44 -NVIDIA NV44/AGP/SSE2 -NVIDIA NVIDIA GeForce 210 OpenGL Engine -NVIDIA NVIDIA GeForce 210 OpenGL Engine -NVIDIA NVIDIA GeForce 320M OpenGL Engine -NVIDIA NVIDIA GeForce 320M OpenGL Engine -NVIDIA NVIDIA GeForce 7300 GT OpenGL Engine -NVIDIA NVIDIA GeForce 7300 GT OpenGL Engine -NVIDIA NVIDIA GeForce 7600 GT OpenGL Engine -NVIDIA NVIDIA GeForce 8600M GT OpenGL Engine -NVIDIA NVIDIA GeForce 8600M GT OpenGL Engine -NVIDIA NVIDIA GeForce 8800 GS OpenGL Engine -NVIDIA NVIDIA GeForce 8800 GS OpenGL Engine -NVIDIA NVIDIA GeForce 8800 GT OpenGL Engine -NVIDIA NVIDIA GeForce 8800 GT OpenGL Engine -NVIDIA NVIDIA GeForce 9400 OpenGL Engine -NVIDIA NVIDIA GeForce 9400 OpenGL Engine -NVIDIA NVIDIA GeForce 9400M OpenGL Engine -NVIDIA NVIDIA GeForce 9400M OpenGL Engine -NVIDIA NVIDIA GeForce 9500 GT OpenGL Engine -NVIDIA NVIDIA GeForce 9600M GT OpenGL Engine -NVIDIA NVIDIA GeForce 9600M GT OpenGL Engine -NVIDIA NVIDIA GeForce GT 120 OpenGL Engine -NVIDIA NVIDIA GeForce GT 120 OpenGL Engine -NVIDIA NVIDIA GeForce GT 130 OpenGL Engine -NVIDIA NVIDIA GeForce GT 130 OpenGL Engine -NVIDIA NVIDIA GeForce GT 220 OpenGL Engine -NVIDIA NVIDIA GeForce GT 230M OpenGL Engine -NVIDIA NVIDIA GeForce GT 240M OpenGL Engine -NVIDIA NVIDIA GeForce GT 330M OpenGL Engine -NVIDIA NVIDIA GeForce GT 330M OpenGL Engine -NVIDIA NVIDIA GeForce GT 420M OpenGL Engine -NVIDIA NVIDIA GeForce GT 425M OpenGL Engine -NVIDIA NVIDIA GeForce GT 430 OpenGL Engine -NVIDIA NVIDIA GeForce GT 430 OpenGL Engine -NVIDIA NVIDIA GeForce GT 440 OpenGL Engine -NVIDIA NVIDIA GeForce GT 540M OpenGL Engine -NVIDIA NVIDIA GeForce GTS 240 OpenGL Engine -NVIDIA NVIDIA GeForce GTS 250 OpenGL Engine -NVIDIA NVIDIA GeForce GTS 250 OpenGL Engine -NVIDIA NVIDIA GeForce GTS 450 OpenGL Engine -NVIDIA NVIDIA GeForce GTS 450 OpenGL Engine -NVIDIA NVIDIA GeForce GTX 285 OpenGL Engine -NVIDIA NVIDIA GeForce GTX 460 OpenGL Engine -NVIDIA NVIDIA GeForce GTX 460 OpenGL Engine -NVIDIA NVIDIA GeForce GTX 460M OpenGL Engine -NVIDIA NVIDIA GeForce GTX 465 OpenGL Engine -NVIDIA NVIDIA GeForce GTX 470 OpenGL Engine -NVIDIA NVIDIA GeForce GTX 480 OpenGL Engine -NVIDIA NVIDIA GeForce GTX 480 OpenGL Engine -NVIDIA NVIDIA GeForce Pre-Release GF108 ES OpenGL Engine -NVIDIA NVIDIA GeForce Pre-Release ION OpenGL Engine -NVIDIA NVIDIA GeForce Pre-Release ION OpenGL Engine -NVIDIA NVIDIA GeForce Pre-Release MCP7A-J-DC OpenGL Engine -NVIDIA NVIDIA GeForce4 OpenGL Engine -NVIDIA NVIDIA NV34MAP OpenGL Engine -NVIDIA NVIDIA Quadro 4000 OpenGL Engine -NVIDIA NVIDIA Quadro 4000 OpenGL Engine -NVIDIA NVIDIA Quadro FX 4800 OpenGL Engine -NVIDIA NVS 2100M/PCI/SSE2 -NVIDIA NVS 2100M/PCI/SSE2 -NVIDIA NVS 300/PCI/SSE2 -NVIDIA NVS 300/PCI/SSE2 -NVIDIA NVS 3100M/PCI/SSE2 -NVIDIA NVS 3100M/PCI/SSE2 -NVIDIA NVS 4100/PCI/SSE2/3DNOW! -NVIDIA NVS 4200M/PCI/SSE2 -NVIDIA NVS 4200M/PCI/SSE2 -NVIDIA NVS 5100M/PCI/SSE2 -NVIDIA NVS 5100M/PCI/SSE2 NVIDIA PCI -NVIDIA Quadro 1000M/PCI/SSE2 -NVIDIA Quadro 2000/PCI/SSE2 -NVIDIA Quadro 2000/PCI/SSE2 -NVIDIA Quadro 2000M/PCI/SSE2 -NVIDIA Quadro 3000M/PCI/SSE2 +NVIDIA Quadro 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 4000 OpenGL Engine -NVIDIA Quadro 4000/PCI/SSE2 -NVIDIA Quadro 4000/PCI/SSE2 -NVIDIA Quadro 4000M/PCI/SSE2 -NVIDIA Quadro 5000/PCI/SSE2 -NVIDIA Quadro 5000/PCI/SSE2 -NVIDIA Quadro 5000M/PCI/SSE2 +NVIDIA Quadro 4000M +NVIDIA Quadro 50x0 M NVIDIA Quadro 600 -NVIDIA Quadro 600/PCI/SSE2 -NVIDIA Quadro 600/PCI/SSE2 -NVIDIA Quadro 600/PCI/SSE2/3DNOW! NVIDIA Quadro 6000 -NVIDIA Quadro 6000/PCI/SSE2 -NVIDIA Quadro CX/PCI/SSE2 -NVIDIA Quadro DCC NVIDIA Quadro FX -NVIDIA Quadro FX 1100/AGP/SSE2 -NVIDIA Quadro FX 1400/PCI/SSE2 -NVIDIA Quadro FX 1400/PCI/SSE2 -NVIDIA Quadro FX 1500 -NVIDIA Quadro FX 1500/PCI/SSE2 -NVIDIA Quadro FX 1500M/PCI/SSE2 -NVIDIA Quadro FX 1600M/PCI/SSE2 -NVIDIA Quadro FX 1600M/PCI/SSE2 -NVIDIA Quadro FX 1700 -NVIDIA Quadro FX 1700M/PCI/SSE2 +NVIDIA Quadro FX 1500M NVIDIA Quadro FX 1800 -NVIDIA Quadro FX 1800/PCI/SSE2 -NVIDIA Quadro FX 1800M/PCI/SSE2 -NVIDIA Quadro FX 2500M/PCI/SSE2 -NVIDIA Quadro FX 2500M/PCI/SSE2 -NVIDIA Quadro FX 2700M/PCI/SSE2 -NVIDIA Quadro FX 2700M/PCI/SSE2 -NVIDIA Quadro FX 2800M/PCI/SSE2 -NVIDIA Quadro FX 2800M/PCI/SSE2 -NVIDIA Quadro FX 3400 -NVIDIA Quadro FX 3450 -NVIDIA Quadro FX 3450/4000 SDI/PCI/SSE2 +NVIDIA Quadro FX 2500M +NVIDIA Quadro FX 2700M +NVIDIA Quadro FX 2800M NVIDIA Quadro FX 3500 -NVIDIA Quadro FX 3500M/PCI/SSE2 -NVIDIA Quadro FX 360M/PCI/SSE2 -NVIDIA Quadro FX 370 -NVIDIA Quadro FX 370/PCI/SSE2 NVIDIA Quadro FX 3700 -NVIDIA Quadro FX 3700M/PCI/SSE2 -NVIDIA Quadro FX 3700M/PCI/SSE2 -NVIDIA Quadro FX 370M/PCI/SSE2 NVIDIA Quadro FX 3800 -NVIDIA Quadro FX 3800M/PCI/SSE2 -NVIDIA Quadro FX 3800M/PCI/SSE2 NVIDIA Quadro FX 4500 -NVIDIA Quadro FX 4600 NVIDIA Quadro FX 4800 -NVIDIA Quadro FX 4800/PCI/SSE2 -NVIDIA Quadro FX 540/PCI/SSE2/3DNOW! -NVIDIA Quadro FX 560 -NVIDIA Quadro FX 560/PCI/SSE2 -NVIDIA Quadro FX 5600 -NVIDIA Quadro FX 570 -NVIDIA Quadro FX 570/PCI/SSE2 -NVIDIA Quadro FX 570M/PCI/SSE2 -NVIDIA Quadro FX 580/PCI/SSE2 -NVIDIA Quadro FX 580/PCI/SSE2 -NVIDIA Quadro FX 770M/PCI/SSE2 -NVIDIA Quadro FX 770M/PCI/SSE2 +NVIDIA Quadro FX 550 +NVIDIA Quadro FX 770M NVIDIA Quadro FX 880M -NVIDIA Quadro FX 880M/PCI/SSE2 -NVIDIA Quadro FX 880M/PCI/SSE2 -NVIDIA Quadro FX Go700/AGP/SSE2 NVIDIA Quadro NVS -NVIDIA Quadro NVS 110M/PCI/SSE2 -NVIDIA Quadro NVS 110M/PCI/SSE2 -NVIDIA Quadro NVS 130M/PCI/SSE2 -NVIDIA Quadro NVS 135M/PCI/SSE2 -NVIDIA Quadro NVS 135M/PCI/SSE2 -NVIDIA Quadro NVS 140M/PCI/SSE2 -NVIDIA Quadro NVS 140M/PCI/SSE2 -NVIDIA Quadro NVS 150M/PCI/SSE2 -NVIDIA Quadro NVS 150M/PCI/SSE2 -NVIDIA Quadro NVS 160M/PCI/SSE2 -NVIDIA Quadro NVS 160M/PCI/SSE2 -NVIDIA Quadro NVS 210S/PCI/SSE2/3DNOW! -NVIDIA Quadro NVS 285/PCI/SSE2 -NVIDIA Quadro NVS 285/PCI/SSE2 -NVIDIA Quadro NVS 290/PCI/SSE2 -NVIDIA Quadro NVS 290/PCI/SSE2 -NVIDIA Quadro NVS 295/PCI/SSE2 -NVIDIA Quadro NVS 320M/PCI/SSE2 -NVIDIA Quadro NVS 320M/PCI/SSE2 -NVIDIA Quadro NVS 55/280 PCI/PCI/SSE2 -NVIDIA Quadro NVS/PCI/SSE2 -NVIDIA Quadro PCI-E Series/PCI/SSE2/3DNOW! -NVIDIA Quadro VX 200/PCI/SSE2 -NVIDIA Quadro VX 200/PCI/SSE2 -NVIDIA Quadro/AGP/SSE2 -NVIDIA Quadro/AGP/SSE2 +NVIDIA Quadro NVS 1xxM +NVIDIA Quadro NVS 4200M NVIDIA Quadro2 -NVIDIA Quadro4 -NVIDIA Quadro4 750 XGL/AGP/SSE2 -NVIDIA RIVA TNT -NVIDIA RIVA TNT2/AGP/SSE2 -NVIDIA RIVA TNT2/PCI/3DNOW! -NVIDIA Tesla C2050/PCI/SSE2 NVIDIA nForce -NVIDIA nForce 730a/PCI/SSE2 -NVIDIA nForce 730a/PCI/SSE2/3DNOW! -NVIDIA nForce 750a SLI/PCI/SSE2 -NVIDIA nForce 750a SLI/PCI/SSE2/3DNOW! -NVIDIA nForce 760i SLI/PCI/SSE2 -NVIDIA nForce 780a SLI/PCI/SSE2/3DNOW! -NVIDIA nForce 980a/780a SLI/PCI/SSE2 -NVIDIA nForce 980a/780a SLI/PCI/SSE2/3DNOW! -NVIDIA unknown board/AGP/SSE2 -NVIDIA unknown board/PCI/SSE2 -NVIDIA unknown board/PCI/SSE2/3DNOW! -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5670 OpenGL Engine +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 5750 OpenGL Engine -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5770 OpenGL Engine Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 5770 OpenGL Engine -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6490M OpenGL Engine -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6490M OpenGL Engine -Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 6750M OpenGL Engine +Parallels and ATI Technologies Inc. Parallels using ATI Radeon HD 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 Intel Inc. 3D-Analyze v2.3 - http://www.tommti-systems.com -Parallels and Intel Inc. Parallels using Intel HD Graphics 3000 OpenGL Engine +Parallels and 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 NVIDIA Parallels using NVIDIA GeForce 320M OpenGL Engine -Parallels and NVIDIA Parallels using NVIDIA GeForce 320M OpenGL Engine -Parallels and NVIDIA Parallels using NVIDIA GeForce 9400 OpenGL Engine -Parallels and NVIDIA Parallels using NVIDIA GeForce GT 120 OpenGL Engine -Parallels and NVIDIA Parallels using NVIDIA GeForce GT 120 OpenGL Engine -Parallels and NVIDIA Parallels using NVIDIA GeForce GT 330M OpenGL Engine -Parallels and NVIDIA Parallels using NVIDIA GeForce GT 330M OpenGL Engine -Radeon RV350 on Gallium +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 Fire GL2 -S3 Graphics VIA/S3G UniChrome IGP/MMX/K3D +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 Chrome9 HC -S3 Graphics, Incorporated S3 Graphics DeltaChrome S3 Graphics, Incorporated S3 Graphics DeltaChrome S3 Graphics, Incorporated VIA Chrome9 HC IGP S3 Graphics, Incorporated VIA Chrome9 HC IGP +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 661 VGA +SiS 650/M650 VGA / MMX/SSE2 /AGP SiS 661 VGA SiS 662 VGA -SiS 741 VGA -SiS 760 VGA SiS 760 VGA SiS 761GX VGA -SiS 761GX VGA SiS Mirage Graphics3 SiS Mirage Graphics3 SiS Xabre VGA -Trident -Tungsten Graphics -Tungsten Graphics, Inc Mesa DRI 865G GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 865G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 915G GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 915G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 915GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 915GM GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 915GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 915GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945G -Tungsten Graphics, Inc Mesa DRI 945G GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945G GEM 20100330 DEVELOPMENT -Tungsten Graphics, Inc Mesa DRI 945G GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945GM GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100328 2010Q1 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945GME x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945GME 20061017 -Tungsten Graphics, Inc Mesa DRI 945GME GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945GME GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945GME GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 945GME GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 965GM GEM 20090326 2009Q1 RC2 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 965GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 965GM GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 965GM GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 965GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI 965GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI G33 20061017 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI G33 GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI G33 GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI G33 GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI G41 GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI G41 GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI GMA500 20081116 - 5.0.1.0046 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI IGD GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI IGD GEM 20100330 DEVELOPMENT -Tungsten Graphics, Inc Mesa DRI IGD GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI IGDNG_D GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Ironlake Desktop GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Ironlake Mobile GEM 20100330 DEVELOPMENT x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI 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å¨ GM45 Express Chipset -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset 20080716 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20090712 2009Q2 RC3 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20091221 2009Q4 x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20091221 2009Q4 Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20091221 2009Q4 x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100328 2010Q1 -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MMX/SSE2 -Tungsten Graphics, Inc. Mesa DRI R200 (RV250 4C66) 20090101 x86/MMX/SSE2 TCL DRI2 -Tungsten Graphics, Inc. Mesa DRI R200 (RV280 5964) 20090101 x86/MMX+/3DNow!+/SSE2 TCL DRI2 -VIA +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ GM45 Express Chipset x86/MMX/SSE2 +Tungsten Graphics, Inc Mesa DRI Mobile Intelå¨ 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: DEBUG; mutex: MSVC Intrinsics VMware, Inc. Gallium 0.4 on SVGA3D; build: RELEASE; -VMware, Inc. Gallium 0.4 on i915 (chipset: 945GM) -VMware, Inc. Gallium 0.4 on i915 (chipset: 945GM) -VMware, Inc. Gallium 0.4 on llvmpipe +VMware, Inc. Gallium 0.4 on 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 -VMware, Inc. Gallium 0.4 on softpipe -VMware, Inc. Gallium 0.4 on softpipe +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 CEDAR -X.Org Gallium 0.4 on AMD HEMLOCK -X.Org Gallium 0.4 on AMD JUNIPER +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 RS880 X.Org Gallium 0.4 on AMD RV610 X.Org Gallium 0.4 on AMD RV610 X.Org Gallium 0.4 on AMD RV620 -X.Org Gallium 0.4 on AMD RV620 X.Org Gallium 0.4 on AMD RV630 -X.Org Gallium 0.4 on AMD RV630 -X.Org Gallium 0.4 on AMD RV635 X.Org Gallium 0.4 on AMD RV635 +X.Org Gallium 0.4 on AMD 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 RV740 X.Org Gallium 0.4 on AMD RV770 -X.Org R300 Project Gallium 0.4 on ATI R300 +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 R420 -X.Org R300 Project Gallium 0.4 on ATI R580 X.Org R300 Project Gallium 0.4 on ATI R580 X.Org R300 Project Gallium 0.4 on ATI RC410 -X.Org R300 Project Gallium 0.4 on ATI RC410 X.Org R300 Project Gallium 0.4 on ATI RS480 -X.Org R300 Project Gallium 0.4 on ATI RS482 +X.Org R300 Project Gallium 0.4 on ATI 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 RS690 -X.Org R300 Project Gallium 0.4 on ATI RS740 X.Org R300 Project Gallium 0.4 on ATI RV350 X.Org R300 Project Gallium 0.4 on ATI RV350 X.Org R300 Project Gallium 0.4 on ATI RV370 -X.Org R300 Project Gallium 0.4 on ATI RV370 -X.Org R300 Project Gallium 0.4 on ATI RV410 +X.Org R300 Project Gallium 0.4 on ATI 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 RV515 X.Org R300 Project Gallium 0.4 on ATI RV530 X.Org R300 Project Gallium 0.4 on ATI RV530 -X.Org R300 Project Gallium 0.4 on ATI RV560 -X.Org R300 Project Gallium 0.4 on ATI RV570 X.Org R300 Project Gallium 0.4 on ATI RV570 -X.Org R300 Project Gallium 0.4 on R420 -X.Org R300 Project Gallium 0.4 on R580 -X.Org R300 Project Gallium 0.4 on RC410 -X.Org R300 Project Gallium 0.4 on RS480 -X.Org R300 Project Gallium 0.4 on RS482 -X.Org R300 Project Gallium 0.4 on RS600 -X.Org R300 Project Gallium 0.4 on RS690 -X.Org R300 Project Gallium 0.4 on RS740 -X.Org R300 Project Gallium 0.4 on RV350 -X.Org R300 Project Gallium 0.4 on RV370 -X.Org R300 Project Gallium 0.4 on RV410 -X.Org R300 Project Gallium 0.4 on RV515 -X.Org R300 Project Gallium 0.4 on RV530 -XGI -nouveau Gallium 0.4 on NV31 +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 NV36 -nouveau Gallium 0.4 on NV43 +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 NV46 nouveau Gallium 0.4 on NV49 nouveau Gallium 0.4 on NV4A @@ -2393,6 +4176,7 @@ 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 @@ -2412,6 +4196,7 @@ 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 @@ -2420,3 +4205,21 @@ 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 new file mode 100644 index 0000000000..083f29aaa0 --- /dev/null +++ b/indra/newview/tests/gpus_unmatched.txt @@ -0,0 +1,9 @@ +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/viewer_manifest.py b/indra/newview/viewer_manifest.py index 894e368427..96b4c7268c 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -38,7 +38,7 @@ viewer_dir = os.path.dirname(__file__) # Put it FIRST because some of our build hosts have an ancient install of # indra.util.llmanifest under their system Python! sys.path.insert(0, os.path.join(viewer_dir, os.pardir, "lib", "python")) -from indra.util.llmanifest import LLManifest, main, proper_windows_path, path_ancestors +from indra.util.llmanifest import LLManifest, main, proper_windows_path, path_ancestors, CHANNEL_VENDOR_BASE, RELEASE_CHANNEL, ManifestError try: from llbase import llsd except ImportError: @@ -112,29 +112,35 @@ class ViewerManifest(LLManifest): Persist=1, Type='String', Value=''), + CmdLineGridChoice=dict(Comment='Default grid', + Persist=0, + Type='String', + Value=''), CmdLineChannel=dict(Comment='Command line specified channel name', Persist=0, Type='String', Value='')) settings_install = {} - for key, setting in (("sourceid", "sourceid"), - ("channel", "CmdLineChannel")): - if key in self.args: - # only set if value is non-empty - if self.args[key]: - # copy corresponding setting from settings_template - settings_install[setting] = settings_template[setting].copy() - # then fill in Value - settings_install[setting]["Value"] = self.args[key] - print "Put %s '%s' in settings_install.xml" % (setting, self.args[key]) - - # did we actually copy anything into settings_install dict? - if settings_install: - # put_in_file(src=) need not be an actual pathname; it - # only needs to be non-empty - self.put_in_file(llsd.format_pretty_xml(settings_install), - "settings_install.xml", - src="environment") + if 'sourceid' in self.args and self.args['sourceid']: + settings_install['sourceid'] = settings_template['sourceid'].copy() + settings_install['sourceid']['Value'] = self.args['sourceid'] + print "Set sourceid in settings_install.xml to '%s'" % self.args['sourceid'] + + if 'channel_suffix' in self.args and self.args['channel_suffix']: + settings_install['CmdLineChannel'] = settings_template['CmdLineChannel'].copy() + settings_install['CmdLineChannel']['Value'] = self.channel_with_pkg_suffix() + print "Set CmdLineChannel in settings_install.xml to '%s'" % self.channel_with_pkg_suffix() + + if 'grid' in self.args and self.args['grid']: + settings_install['CmdLineGridChoice'] = settings_template['CmdLineGridChoice'].copy() + settings_install['CmdLineGridChoice']['Value'] = self.grid() + print "Set CmdLineGridChoice in settings_install.xml to '%s'" % self.grid() + + # put_in_file(src=) need not be an actual pathname; it + # only needs to be non-empty + self.put_in_file(llsd.format_pretty_xml(settings_install), + "settings_install.xml", + src="environment") self.end_prefix("app_settings") @@ -197,62 +203,72 @@ class ViewerManifest(LLManifest): def grid(self): return self.args['grid'] + def channel(self): return self.args['channel'] - def channel_unique(self): - return self.channel().replace("Second Life", "").strip() - def channel_oneword(self): - return "".join(self.channel_unique().split()) - def channel_lowerword(self): - return self.channel_oneword().lower() + + def channel_with_pkg_suffix(self): + fullchannel=self.channel() + if 'channel_suffix' in self.args and self.args['channel_suffix']: + fullchannel+=' '+self.args['channel_suffix'] + return fullchannel + + def channel_variant(self): + global CHANNEL_VENDOR_BASE + return self.channel().replace(CHANNEL_VENDOR_BASE, "").strip() + + def channel_type(self): # returns 'release', 'beta', 'project', or 'test' + global CHANNEL_VENDOR_BASE + channel_qualifier=self.channel().replace(CHANNEL_VENDOR_BASE, "").lower().strip() + if channel_qualifier.startswith('release'): + channel_type='release' + elif channel_qualifier.startswith('beta'): + channel_type='beta' + elif channel_qualifier.startswith('project'): + channel_type='project' + else: + channel_type='test' + return channel_type + + def channel_variant_app_suffix(self): + # get any part of the compiled channel name after the CHANNEL_VENDOR_BASE + suffix=self.channel_variant() + # by ancient convention, we don't use Release in the app name + if self.channel_type() == 'release': + suffix=suffix.replace('Release', '').strip() + # for the base release viewer, suffix will now be null - for any other, append what remains + if len(suffix) > 0: + suffix = "_"+ ("_".join(suffix.split())) + # the additional_packages mechanism adds more to the installer name (but not to the app name itself) + if 'channel_suffix' in self.args and self.args['channel_suffix']: + suffix+='_'+("_".join(self.args['channel_suffix'].split())) + return suffix + + def installer_base_name(self): + global CHANNEL_VENDOR_BASE + # a standard map of strings for replacing in the templates + substitution_strings = { + 'channel_vendor_base' : '_'.join(CHANNEL_VENDOR_BASE.split()), + 'channel_variant_underscores':self.channel_variant_app_suffix(), + 'version_underscores' : '_'.join(self.args['version']), + 'arch':self.args['arch'] + } + return "%(channel_vendor_base)s%(channel_variant_underscores)s_%(version_underscores)s_%(arch)s" % substitution_strings def app_name(self): - app_suffix='Test' - channel_type=self.channel_lowerword() - if channel_type.startswith('release') : + global CHANNEL_VENDOR_BASE + channel_type=self.channel_type() + if channel_type == 'release': app_suffix='Viewer' - elif re.match('^(beta|project).*',channel_type) : - app_suffix=self.channel_unique() - return "Second Life "+app_suffix - + else: + app_suffix=self.channel_variant() + return CHANNEL_VENDOR_BASE + ' ' + app_suffix + + def app_name_oneword(self): + return ''.join(self.app_name().split()) + def icon_path(self): - icon_path="icons/" - channel_type=self.channel_lowerword() - print "Icon channel type '%s'" % channel_type - if channel_type.startswith('release') : - icon_path += 'release' - elif re.match('^beta.*',channel_type) : - icon_path += 'beta' - elif re.match('^project.*',channel_type) : - icon_path += 'project' - else : - icon_path += 'test' - return icon_path - - def flags_list(self): - """ Convenience function that returns the command-line flags - for the grid""" - - # The original role of this method seems to have been to build a - # grid-specific viewer: one that would, on launch, preselect a - # particular grid. (Apparently that dates back to when the protocol - # between viewer and simulator required them to be updated in - # lockstep, so that "the beta grid" required "a beta viewer.") But - # those viewer command-line switches no longer work without tweaking - # user_settings/grids.xml. In fact, going forward, it's unclear what - # use case that would address. - - # This method also set a channel-specific (or grid-and-channel- - # specific) user_settings/settings_something.xml file. It has become - # clear that saving user settings in a channel-specific file causes - # more problems (confusion) than it solves, so we've discontinued that. - - # In fact we now avoid forcing viewer command-line switches at all, - # instead introducing a settings_install.xml file. Command-line - # switches don't aggregate well; for instance the generated --channel - # switch actually prevented the user specifying --channel on the - # command line. Settings files have well-defined override semantics. - return None + return "icons/" + self.channel_type() def extract_names(self,src): try: @@ -277,15 +293,9 @@ class ViewerManifest(LLManifest): random.shuffle(names) return ', '.join(names) -class WindowsManifest(ViewerManifest): +class Windows_i686_Manifest(ViewerManifest): def final_exe(self): - app_suffix="Test" - channel_type=self.channel_lowerword() - if channel_type.startswith('release') : - app_suffix='' - elif re.match('^(beta|project).*',channel_type) : - app_suffix=''.join(self.channel_unique().split()) - return "SecondLife"+app_suffix+".exe" + return self.app_name_oneword()+".exe" def test_msvcrt_and_copy_action(self, src, dst): # This is used to test a dll manifest. @@ -334,7 +344,7 @@ class WindowsManifest(ViewerManifest): print "Doesn't exist:", src def construct(self): - super(WindowsManifest, self).construct() + super(Windows_i686_Manifest, self).construct() if self.is_packaging_viewer(): # Find secondlife-bin.exe in the 'configuration' dir, then rename it to the result of final_exe. @@ -567,65 +577,33 @@ class WindowsManifest(ViewerManifest): 'version_short' : '.'.join(self.args['version'][:-1]), 'version_dashes' : '-'.join(self.args['version']), 'final_exe' : self.final_exe(), - 'grid':self.args['grid'], - 'grid_caps':self.args['grid'].upper(), 'flags':'', - 'channel':self.channel(), - 'channel_oneword':self.channel_oneword(), - 'channel_unique':self.channel_unique(), - 'subchannel_underscores':'_'.join(self.channel_unique().split()) + 'app_name':self.app_name(), + 'app_name_oneword':self.app_name_oneword() } + installer_file = self.installer_base_name() + '_Setup.exe' + substitution_strings['installer_file'] = installer_file + version_vars = """ !define INSTEXE "%(final_exe)s" !define VERSION "%(version_short)s" !define VERSION_LONG "%(version)s" !define VERSION_DASHES "%(version_dashes)s" """ % substitution_strings - if self.default_channel(): - if self.default_grid(): - # release viewer - installer_file = "Second_Life_%(version_dashes)s_Setup.exe" - grid_vars_template = """ - OutFile "%(installer_file)s" - !define INSTFLAGS "%(flags)s" - !define INSTNAME "SecondLifeViewer" - !define SHORTCUT "Second Life Viewer" - !define URLNAME "secondlife" - Caption "Second Life" - """ - else: - # alternate grid viewer - installer_file = "Second_Life_%(version_dashes)s_(%(grid_caps)s)_Setup.exe" - grid_vars_template = """ - OutFile "%(installer_file)s" - !define INSTFLAGS "%(flags)s" - !define INSTNAME "SecondLife%(grid_caps)s" - !define SHORTCUT "Second Life (%(grid_caps)s)" - !define URLNAME "secondlife%(grid)s" - !define UNINSTALL_SETTINGS 1 - Caption "Second Life %(grid)s ${VERSION}" - """ + + if self.channel_type() == 'release': + substitution_strings['caption'] = CHANNEL_VENDOR_BASE else: - # some other channel (grid name not used) - installer_file = "Second_Life_%(version_dashes)s_%(subchannel_underscores)s_Setup.exe" - grid_vars_template = """ + substitution_strings['caption'] = self.app_name() + ' ${VERSION}' + + inst_vars_template = """ OutFile "%(installer_file)s" - !define INSTFLAGS "%(flags)s" - !define INSTNAME "SecondLife%(channel_oneword)s" - !define SHORTCUT "%(channel)s" + !define INSTNAME "%(app_name_oneword)s" + !define SHORTCUT "%(app_name)s" !define URLNAME "secondlife" - !define UNINSTALL_SETTINGS 1 - Caption "%(channel)s ${VERSION}" + Caption "%(caption)s" """ - if 'installer_name' in self.args: - installer_file = self.args['installer_name'] - else: - installer_file = installer_file % substitution_strings - if len(self.args['package_id']) > 0: - installer_file = installer_file.replace(self.args['package_id'], "") - installer_file = installer_file.replace(".exe", self.args['package_id'] + ".exe") - substitution_strings['installer_file'] = installer_file tempfile = "secondlife_setup_tmp.nsi" # the following replaces strings in the nsi template @@ -633,7 +611,7 @@ class WindowsManifest(ViewerManifest): self.replace_in("installers/windows/installer_template.nsi", tempfile, { "%%VERSION%%":version_vars, "%%SOURCE%%":self.get_src_prefix(), - "%%GRID_VARS%%":grid_vars_template % substitution_strings, + "%%INST_VARS%%":inst_vars_template % substitution_strings, "%%INSTALL_FILES%%":self.nsi_file_commands(True), "%%DELETE_FILES%%":self.nsi_file_commands(False)}) @@ -663,7 +641,7 @@ class WindowsManifest(ViewerManifest): self.package_file = installer_file -class DarwinManifest(ViewerManifest): +class Darwin_i386_Manifest(ViewerManifest): def is_packaging_viewer(self): # darwin requires full app bundle packaging even for debugging. return True @@ -685,7 +663,7 @@ class DarwinManifest(ViewerManifest): # most everything goes in the Resources directory if self.prefix(src="", dst="Resources"): - super(DarwinManifest, self).construct() + super(Darwin_i386_Manifest, self).construct() if self.prefix("cursors_mac"): self.path("*.tif") @@ -821,6 +799,7 @@ class DarwinManifest(ViewerManifest): self.run_command("chmod +x %r" % os.path.join(self.get_dst_prefix(), script)) def package_finish(self): + global CHANNEL_VENDOR_BASE # Sign the app if requested. if 'signature' in self.args: identity = self.args['signature'] @@ -839,28 +818,36 @@ class DarwinManifest(ViewerManifest): keychain_pwd = open(keychain_pwd_path).read().rstrip() self.run_command('security unlock-keychain -p "%s" "%s/Library/Keychains/viewer.keychain"' % ( keychain_pwd, home_path ) ) - self.run_command('codesign --verbose --force --keychain "%(home_path)s/Library/Keychains/viewer.keychain" --sign %(identity)r %(bundle)r' % { - 'home_path' : home_path, - 'identity': identity, - 'bundle': self.get_dst_prefix() - }) + signed=False + sign_attempts=3 + sign_retry_wait=15 + while (not signed) and (sign_attempts > 0): + try: + sign_attempts-=1; + self.run_command( + 'codesign --verbose --force --keychain "%(home_path)s/Library/Keychains/viewer.keychain" --sign %(identity)r %(bundle)r' % { + 'home_path' : home_path, + 'identity': identity, + 'bundle': self.get_dst_prefix() + }) + signed=True # if no exception was raised, the codesign worked + except ManifestError, err: + if sign_attempts: + print >> sys.stderr, "codesign failed, waiting %d seconds before retrying" % sign_retry_wait + time.sleep(sign_retry_wait) + sign_retry_wait*=2 + else: + print >> sys.stderr, "Maximum codesign attempts exceeded; giving up" + raise imagename="SecondLife_" + '_'.join(self.args['version']) # MBW -- If the mounted volume name changes, it breaks the .DS_Store's background image and icon positioning. # If we really need differently named volumes, we'll need to create multiple DS_Store file images, or use some other trick. - volname="Second Life Installer" # DO NOT CHANGE without understanding comment above + volname=CHANNEL_VENDOR_BASE+" Installer" # DO NOT CHANGE without understanding comment above - if len(self.args['package_id']) > 0: - imagename = imagename + self.args['package_id'] - elif self.default_channel(): - if not self.default_grid(): - # beta case - imagename = imagename + '_' + self.args['grid'].upper() - else: - # first look, etc - imagename = imagename + '_' + self.channel_oneword().upper() + imagename = self.installer_base_name() sparsename = imagename + ".sparseimage" finalname = imagename + ".dmg" @@ -894,7 +881,7 @@ class DarwinManifest(ViewerManifest): # will use the release .DS_Store, and will look broken. # - Ambroff 2008-08-20 dmg_template = os.path.join( - 'installers', 'darwin', '%s-dmg' % self.channel_lowerword()) + 'installers', 'darwin', '%s-dmg' % self.channel_type()) if not os.path.exists (self.src_path_of(dmg_template)): dmg_template = os.path.join ('installers', 'darwin', 'release-dmg') @@ -977,8 +964,9 @@ class LinuxManifest(ViewerManifest): # recurse self.end_prefix("res-sdl") - # Get the icons based on the channel + # Get the icons based on the channel type icon_path = self.icon_path() + print "DEBUG: icon_path '%s'" % icon_path if self.prefix(src=icon_path, dst="") : self.path("secondlife_256.png","secondlife_icon.png") if self.prefix(src="",dst="res-sdl") : @@ -1004,18 +992,7 @@ class LinuxManifest(ViewerManifest): self.run_command("chmod +x %r" % os.path.join(self.get_dst_prefix(), script)) def package_finish(self): - if 'installer_name' in self.args: - installer_name = self.args['installer_name'] - else: - installer_name_components = ['SecondLife_', self.args.get('arch')] - installer_name_components.extend(self.args['version']) - installer_name = "_".join(installer_name_components) - if self.default_channel(): - if not self.default_grid(): - installer_name += '_' + self.args['grid'].upper() - else: - installer_name += '_' + self.channel_oneword().upper() - installer_name = installer_name + self.args['package_id'] + installer_name = self.installer_base_name() self.strip_binaries() @@ -1057,9 +1034,9 @@ class LinuxManifest(ViewerManifest): print "* Going strip-crazy on the packaged binaries, since this is a RELEASE build" self.run_command(r"find %(d)r/bin %(d)r/lib -type f \! -name update_install | xargs --no-run-if-empty strip -S" % {'d': self.get_dst_prefix()} ) # makes some small assumptions about our packaged dir structure -class Linux_i686Manifest(LinuxManifest): +class Linux_i686_Manifest(LinuxManifest): def construct(self): - super(Linux_i686Manifest, self).construct() + super(Linux_i686_Manifest, self).construct() if self.prefix("../packages/lib/release", dst="lib"): self.path("libapr-1.so") @@ -1145,9 +1122,9 @@ class Linux_i686Manifest(LinuxManifest): self.strip_binaries() -class Linux_x86_64Manifest(LinuxManifest): +class Linux_x86_64_Manifest(LinuxManifest): def construct(self): - super(Linux_x86_64Manifest, self).construct() + super(Linux_x86_64_Manifest, self).construct() # support file for valgrind debug tool self.path("secondlife-i686.supp") diff --git a/indra/viewer_components/updater/llupdatedownloader.cpp b/indra/viewer_components/updater/llupdatedownloader.cpp index c28ad76c77..c42112af80 100755 --- a/indra/viewer_components/updater/llupdatedownloader.cpp +++ b/indra/viewer_components/updater/llupdatedownloader.cpp @@ -77,7 +77,8 @@ private: void run(void); void startDownloading(LLURI const & uri, std::string const & hash); void throwOnCurlError(CURLcode code); - bool validateDownload(void); + bool validateDownload(const std::string& filePath); + bool validateOrRemove(const std::string& filePath); LOG_CLASS(LLUpdateDownloader::Implementation); }; @@ -295,9 +296,8 @@ void LLUpdateDownloader::Implementation::resume(void) { resumeDownloading(fileStatus.st_size); } - else if(!validateDownload()) + else if(!validateOrRemove(filePath)) { - LLFile::remove(filePath); download(LLURI(mDownloadData["url"].asString()), mDownloadData["hash"].asString(), mDownloadData["update_channel"].asString(), @@ -421,19 +421,13 @@ void LLUpdateDownloader::Implementation::run(void) if(code == CURLE_OK) { LLFile::remove(mDownloadRecordPath); - if(validateDownload()) + if(validateOrRemove(mDownloadData["path"])) { LL_INFOS("UpdaterService") << "download successful" << LL_ENDL; mClient.downloadComplete(mDownloadData); } else { - LL_INFOS("UpdaterService") << "download failed hash check" << LL_ENDL; - std::string filePath = mDownloadData["path"].asString(); - if(filePath.size() != 0) - { - LLFile::remove(filePath); - } mClient.downloadError("failed hash check"); } } @@ -449,7 +443,9 @@ void LLUpdateDownloader::Implementation::run(void) LLFile::remove(mDownloadRecordPath); if(mDownloadData.has("path")) { - LLFile::remove(mDownloadData["path"].asString()); + std::string filePath = mDownloadData["path"].asString(); + LL_INFOS("UpdaterService") << "removing " << filePath << LL_ENDL; + LLFile::remove(filePath); } mClient.downloadError("curl error"); } @@ -561,31 +557,49 @@ void LLUpdateDownloader::Implementation::throwOnCurlError(CURLcode code) } } +bool LLUpdateDownloader::Implementation::validateOrRemove(const std::string& filePath) +{ + bool valid = validateDownload(filePath); + if (! valid) + { + LL_INFOS("UpdaterService") << "removing " << filePath << LL_ENDL; + LLFile::remove(filePath); + } + return valid; +} -bool LLUpdateDownloader::Implementation::validateDownload(void) +bool LLUpdateDownloader::Implementation::validateDownload(const std::string& filePath) { - std::string filePath = mDownloadData["path"].asString(); llifstream fileStream(filePath, std::ios_base::in | std::ios_base::binary); if(!fileStream) { + LL_INFOS("UpdaterService") << "can't open " << filePath << ", invalid" << LL_ENDL; return false; } std::string hash = mDownloadData["hash"].asString(); - if(hash.size() != 0) + if (! hash.empty()) { - LL_INFOS("UpdaterService") << "checking hash..." << LL_ENDL; char digest[33]; LLMD5(fileStream).hex_digest(digest); - if(hash != digest) + if (hash == digest) + { + LL_INFOS("UpdaterService") << "verified hash " << hash + << " for downloaded " << filePath << LL_ENDL; + return true; + } + else { - LL_WARNS("UpdaterService") << "download hash mismatch; expected " << hash << - " but download is " << digest << LL_ENDL; + LL_WARNS("UpdaterService") << "download hash mismatch for " + << filePath << ": expected " << hash + << " but computed " << digest << LL_ENDL; + return false; } - return hash == digest; } else { + LL_INFOS("UpdaterService") << "no hash specified for " << filePath + << ", unverified" << LL_ENDL; return true; // No hash check provided. } } diff --git a/indra/viewer_components/updater/llupdaterservice.cpp b/indra/viewer_components/updater/llupdaterservice.cpp index 16950e1d62..cb3be5bbdc 100755 --- a/indra/viewer_components/updater/llupdaterservice.cpp +++ b/indra/viewer_components/updater/llupdaterservice.cpp @@ -296,37 +296,49 @@ bool LLUpdaterServiceImpl::checkForInstall(bool launchInstaller) update_marker.close(); // Get the path to the installer file. - LLSD path = update_info.get("path"); - if(update_info["current_version"].asString() != ll_get_version()) + std::string path(update_info.get("path")); + std::string downloader_version(update_info["current_version"]); + if (downloader_version != ll_get_version()) { // This viewer is not the same version as the one that downloaded - // the update. Do not install this update. - if(!path.asString().empty()) + // the update. Do not install this update. + LL_INFOS("UpdaterService") << "ignoring update downloaded by " + << "different viewer version " + << downloader_version << LL_ENDL; + if (! path.empty()) { - LL_INFOS("UpdaterService") << "ignoring update dowloaded by different client version" << LL_ENDL;; - LLFile::remove(path.asString()); + LL_INFOS("UpdaterService") << "removing " << path << LL_ENDL; + LLFile::remove(path); LLFile::remove(update_marker_path()); } - else - { - ; // Nothing to clean up. - } - + foundInstall = false; } - else if(path.isDefined() && !path.asString().empty()) + else if (path.empty()) + { + LL_WARNS("UpdaterService") << "Marker file " << update_marker_path() + << " 'path' entry empty, ignoring" << LL_ENDL; + foundInstall = false; + } + else if (! LLFile::isfile(path)) + { + LL_WARNS("UpdaterService") << "Nonexistent installer " << path + << ", ignoring" << LL_ENDL; + foundInstall = false; + } + else { if(launchInstaller) { setState(LLUpdaterService::INSTALLING); - + LLFile::remove(update_marker_path()); int result = ll_install_update(install_script_path(), - update_info["path"].asString(), + path, update_info["required"].asBoolean(), install_script_mode()); - + if((result == 0) && mAppExitCallback) { mAppExitCallback(); @@ -360,7 +372,8 @@ bool LLUpdaterServiceImpl::checkForResume() LLSD download_info; LLSDSerialize::fromXMLDocument(download_info, download_marker_stream); download_marker_stream.close(); - if(download_info["current_version"].asString() == ll_get_version()) + std::string downloader_version(download_info["current_version"]); + if (downloader_version == ll_get_version()) { mIsDownloading = true; mNewVersion = download_info["update_version"].asString(); @@ -371,10 +384,13 @@ bool LLUpdaterServiceImpl::checkForResume() else { // The viewer that started this download is not the same as this viewer; ignore. - LL_INFOS("UpdaterService") << "ignoring partial download from different viewer version" << LL_ENDL;; + LL_INFOS("UpdaterService") << "ignoring partial download " + << "from different viewer version " + << downloader_version << LL_ENDL; std::string path = download_info["path"].asString(); if(!path.empty()) { + LL_INFOS("UpdaterService") << "removing " << path << LL_ENDL; LLFile::remove(path); } LLFile::remove(download_marker_path); @@ -539,7 +555,7 @@ bool LLUpdaterServiceImpl::onMainLoop(LLSD const & event) // Check for failed install. if(LLFile::isfile(ll_install_failed_marker_path())) { - LL_DEBUGS("UpdaterService") << "found marker " << ll_install_failed_marker_path() << LL_ENDL;; + LL_DEBUGS("UpdaterService") << "found marker " << ll_install_failed_marker_path() << LL_ENDL; int requiredValue = 0; { llifstream stream(ll_install_failed_marker_path()); @@ -552,12 +568,12 @@ bool LLUpdaterServiceImpl::onMainLoop(LLSD const & event) // TODO: notify the user. LL_WARNS("UpdaterService") << "last install attempt failed" << LL_ENDL;; LLFile::remove(ll_install_failed_marker_path()); - + LLSD event; event["type"] = LLSD(LLUpdaterService::INSTALL_ERROR); event["required"] = LLSD(requiredValue); LLEventPumps::instance().obtain(LLUpdaterService::pumpName()).post(event); - + setState(LLUpdaterService::TERMINAL); } else diff --git a/indra/viewer_components/updater/scripts/darwin/update_install.py b/indra/viewer_components/updater/scripts/darwin/update_install.py index 2fc6fcdb29..08f4f0ebb9 100755 --- a/indra/viewer_components/updater/scripts/darwin/update_install.py +++ b/indra/viewer_components/updater/scripts/darwin/update_install.py @@ -17,6 +17,7 @@ $/LicenseInfo$ import os import sys import cgitb +from contextlib import contextmanager import errno import glob import plistlib @@ -32,6 +33,11 @@ import Tkinter, tkMessageBox TITLE = "Second Life Viewer Updater" # Magic bundle identifier used by all Second Life viewer bundles BUNDLE_IDENTIFIER = "com.secondlife.indra.viewer" +# Magic OS directory name that causes Cocoa viewer to crash on OS X 10.7.5 +# (see MAINT-3331) +STATE_DIR = os.path.join( + os.environ["HOME"], "Library", "Saved Application State", + BUNDLE_IDENTIFIER + ".savedState") # Global handle to the MessageFrame so we can update message FRAME = None @@ -137,6 +143,23 @@ def write_marker(markerfile, markertext): log("%s exception: %s" % (err.__class__.__name__, err)) # **************************************************************************** +# Utility +# **************************************************************************** +@contextmanager +def allow_errno(errn): + """ + Execute body of 'with' statement, accepting OSError with specific errno + 'errn'. Propagate any other exception, or an OSError with any other errno. + """ + try: + # run the body of the 'with' statement + yield + except OSError, err: + # unless errno == passed errn, re-raise the exception + if err.errno != errn: + raise + +# **************************************************************************** # Main script logic # **************************************************************************** def main(dmgfile, markerfile, markertext): @@ -158,12 +181,9 @@ def main(dmgfile, markerfile, markertext): # Move the old updater.log file out of the way logname = os.path.join(logsdir, "updater.log") - try: + # Nonexistence is okay. Anything else, not so much. + with allow_errno(errno.ENOENT): os.rename(logname, logname + ".old") - except OSError, err: - # Nonexistence is okay. Anything else, not so much. - if err.errno != errno.ENOENT: - raise # Open new updater.log. global LOGF @@ -179,6 +199,11 @@ def main(dmgfile, markerfile, markertext): # prepare for other cleanup with Janitor(LOGF) as janitor: + # Under some circumstances, this script seems to be invoked with a + # nonexistent pathname. Check for that. + if not os.path.isfile(dmgfile): + fail(dmgfile + " has been deleted") + # Try to derive the name of the running viewer app bundle from our # own pathname. (Hopefully the old viewer won't copy this script # to a temp dir before running!) @@ -345,10 +370,24 @@ def main(dmgfile, markerfile, markertext): log("touch " + appdir) os.utime(appdir, None) # set to current time + # MAINT-3331: remove STATE_DIR. Empirically, this resolves a + # persistent, mysterious crash after updating our viewer on an OS + # X 10.7.5 system. + log("rm -rf '%s'" % STATE_DIR) + with allow_errno(errno.ENOENT): + shutil.rmtree(STATE_DIR) + command = ["open", appdir] log(' '.join(command)) subprocess.check_call(command, stdout=LOGF, stderr=subprocess.STDOUT) + # If all the above succeeded, delete the .dmg file. We don't do this + # as a janitor.later() operation because we only want to do it if we + # get this far successfully. Note that this is out of the scope of the + # Janitor: we must detach the .dmg before removing it! + log("rm " + dmgfile) + os.remove(dmgfile) + except Exception, err: # Because we carefully set sys.excepthook -- and even modify it to log # the problem once we have our log file open -- you might think we diff --git a/scripts/gpu_table_tester b/scripts/gpu_table_tester index 0fe3e9e8f7..af0678000d 100755 --- a/scripts/gpu_table_tester +++ b/scripts/gpu_table_tester @@ -85,11 +85,15 @@ my %Recognizer; # name -> recognizer my %Class; # recognizer -> class my %Supported; # recognizer -> supported my @InOrder; # lowercased recognizers in file order - these are the ones really used to match +my %StatsBased; +my %ExpectedOpenGL; $Name{$NoMatch} = $NoMatch; $NameLine{$NoMatch} = '(hard-coded)'; # use this for error messages in table parsing $Class{$NoMatch} = ''; $Supported{$NoMatch} = ''; +$StatsBased{$NoMatch} = ''; +$ExpectedOpenGL{$NoMatch} = ''; while (<GPUS>) { @@ -97,7 +101,7 @@ while (<GPUS>) next if m|^\s*$|; # skip blank lines chomp; - my ($name, $regex, $class, $supported, $extra) = split('\t+'); + my ($name, $regex, $class, $supported, $stats_based, $expected_opengl, $extra) = split('\t+'); my $errsOnLine = $ErrorsSeen; if (!$name) { @@ -123,7 +127,7 @@ while (<GPUS>) print STDERR " $INPUT_LINE_NUMBER: name '$name' " . ($supported ? "supported" : "unsupported") . " class $class - ignored\n"; $ErrorsSeen++; } - if ($class !~ m/[0123]/) + if ($class !~ m/[012345]/) { print STDERR "Invalid class value '$class' on $GpuTable line $INPUT_LINE_NUMBER\n"; $ErrorsSeen++; @@ -133,6 +137,16 @@ while (<GPUS>) print STDERR "Invalid supported value '$supported' on $GpuTable line $INPUT_LINE_NUMBER\n"; $ErrorsSeen++; } + if ($stats_based !~ m/[01]/) + { + print STDERR "Invalid stats_based value '$stats_based' on $GpuTable line $INPUT_LINE_NUMBER\n"; + $ErrorsSeen++; + } + if ($expected_opengl !~ m/\d+(\.\d+)?/) + { + print STDERR "Invalid expected_opengl value '$expected_opengl' on $GpuTable line $INPUT_LINE_NUMBER\n"; + $ErrorsSeen++; + } if ($extra) { print STDERR "Extra data '$extra' on $GpuTable line $INPUT_LINE_NUMBER\n"; @@ -148,6 +162,8 @@ while (<GPUS>) $Recognizer{$name} = $regex; $Class{$regex} = $class; $Supported{$regex} = $supported ? "supported" : "unsupported"; + $StatsBased{$regex} = $stats_based; + $ExpectedOpenGL{$regex} = $expected_opengl; } } @@ -163,6 +179,7 @@ my %RecognizedBy; while (<>) { chomp; + $_ = substr($_,0,100); my $lcInput = lc $_; # the real gpu table parser lowercases the input string my $recognizer; $RecognizedBy{$_} = $NoMatch; @@ -178,34 +195,31 @@ while (<>) } format STDOUT_TOP = -GPU String Supported? Class Recognizer ------------------------------------------------------------------------------------------------------- ----------- ----- ------------------------------------ +GPU String Supported? Class Stats OpenGL Recognizer +------------------------------------------------------------------------------------------------------ ----------- ----- ----- ------ ------------------------------------ . format STDOUT = -@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<... @<<<<<<<<<< @> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<... -$_, $Supported{$RecognizedBy{$_}},$Class{$RecognizedBy{$_}},$Name{$RecognizedBy{$_}} +@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<< @> @> @<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<... +$_, $Supported{$RecognizedBy{$_}},$Class{$RecognizedBy{$_}},$StatsBased{$RecognizedBy{$_}},$ExpectedOpenGL{$RecognizedBy{$_}},$Name{$RecognizedBy{$_}} . -my $ReportLineTemplate = "A102xxxA12xxxAA*"; # MUST match the format STDOUT above - -format DIFF_TOP = - ------ OLD ------ ------ NEW ------ -GPU String Supported? Class Supported? Class ------------------------------------------------------------------------------------------------------- ----------- ----- ----------- ----- -. +my $ReportLineTemplate = "A102xxxA12xxxA2xxxxA2xxxxA5A*"; # Used to read a previous report - MUST match the format STDOUT above my ( $oldSupported, $oldClass, $newSupported, $newClass ); +format DIFF_TOP = + ------------- OLD ------------- ----------- NEW -------------------- +GPU String Supported? Class Stats OpenGL Supported? Class Stats OpenGL Line +------------------------------------------------------------------------------------------------------ ----------- ----- ----- ------ ----------- ----- ----- ------ ----- +. format DIFF = -@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<... @<<<<<<<<<< @> @<<<<<<<<<< @> -$_, $oldSupported, $oldClass, $newSupported, $newClass +@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<< @> @> @<<<< @<<<<<<<<<< @> @> @<<<< @>>>> +$_, $oldSupported, $oldClass, $oldStatsBased, $oldExpectedOpenGL, $newSupported, $newClass, $newStatsBased, $newExpectedOpenGL, $newRecognizedLine . if ( ! $Diff ) { - ## Print results. - ## For each input, show supported or unsupported, the class, and the recognizer name - + ## Print results of testing each input line and how it was recognized. foreach ( sort keys %RecognizedBy ) { write if ! $UnMatchedOnly || $Name{$RecognizedBy{$_}} eq $NoMatch; @@ -214,17 +228,20 @@ if ( ! $Diff ) } else { + ## Print a comparison of how the recognition this time compared to the results from the $Diff file open OLD, "<$Diff" || die "Failed to open --diff file '$Diff'\n\t$!\n"; my $discard = 2; while ( <OLD> ) { - if ( $discard > 0 ) + if ( $discard <= 0 ) { - my ( $gpu, $supported, $class ) = unpack $ReportLineTemplate; + my ( $gpu, $supported, $class, $stats, $opengl ) = unpack $ReportLineTemplate; $gpu =~ s/\s*$//; ( $OldSupported{$gpu} = $supported ) =~ s/\s*$//; ( $OldClass{$gpu} = $class ) =~ s/\s*$//; + ( $OldStatsBased{$gpu} = $stats ) =~ s/\s*$//; + ( $OldExpectedOpenGL{$gpu} = $opengl ) =~ s/\s*$//; } else { @@ -233,33 +250,43 @@ else } close OLD; - $FORMAT_TOP_NAME = DIFF_TOP; - $FORMAT_NAME = DIFF; + $FORMAT_TOP_NAME = 'DIFF_TOP'; + $FORMAT_NAME = 'DIFF'; foreach ( sort keys %RecognizedBy ) { $newSupported = $Supported{$RecognizedBy{$_}} || $NoMatch; $newClass = $Class{$RecognizedBy{$_}}; + $newStatsBased = $StatsBased{$RecognizedBy{$_}}; + $newExpectedOpenGL = $ExpectedOpenGL{$RecognizedBy{$_}}; + $newRecognizedLine = $RecognizerLine{$RecognizedBy{$_}}; if ( ! defined $OldSupported{$_} ) { $oldSupported = 'NEW'; $oldClass = '-'; + $oldStatsBased = '-'; + $oldExpectedOpenGL = '-'; + write; + $-++; # suppresses pagination } else { $oldSupported = $OldSupported{$_} || $NoMatch; $oldClass = $OldClass{$_}; + $oldStatsBased = $OldStatsBased{$_}; + $oldExpectedOpenGL = $OldExpectedOpenGL{$_}; - if ( ( $oldSupported eq $newSupported ) - && ( $oldClass eq $newClass ) + if ( ( $oldSupported ne $newSupported ) + || ( $oldClass ne $newClass ) + || ( $oldStatsBased ne $newStatsBased ) + || ( $oldExpectedOpenGL ne $newExpectedOpenGL ) ) { - $newSupported = ''; - $newClass = ''; + write; + $-++; # suppresses pagination } } - write; - $-++; # suppresses pagination + } } |