fixed + SSE / SSE 2 Detection routine added + openGL Header files updated to current OpenGL release + generated and updated glh_genext.h with extgen from (slightly modified to match libs in sl) - http://mongoose.dyndns.org/code/cs459/w-demo/inc/glh/extgen/?C=S;O=A - http://www.koders.com/info.aspx?c=ProjectInfo&pid=1REQGRL8XKLTF3VCTC8YR8YEMG&s=windows.h + VRAM detection and dependencies of gGLManager.mVRAM fixed - now Texture RAM calculation and everything that depends on gGLManager.mVRAM should work #################################################### ## Changes #################################################### linden\indra\newview\llviewerjointmesh.cpp @840 --- sVectorizePerfTest = ( sVectorizePerfTest ? sVectorizePerfTest : gSavedSettings.getBOOL("VectorizePerfTest") ); sVectorizeProcessor = gSavedSettings.getU32("VectorizeProcessor"); BOOL vectorizeEnable = gSavedSettings.getBOOL("VectorizeEnable"); BOOL vectorizeSkin = gSavedSettings.getBOOL("VectorizeSkin"); +++ sVectorizePerfTest = gSavedSettings.getBOOL("VectorizePerfTest"); BOOL vectorizeEnable = gSavedSettings.getBOOL("VectorizeEnable"); BOOL vectorizeSkin = gSavedSettings.getBOOL("VectorizeSkin"); if (sVectorizePerfTest) { // get CPUInfos to ask hasSSE | hasSSE2 if cpu supports sse|sse2 LLCPUInfo CPUInfo; llinfos << "CPU supports SSE " << ( CPUInfo.hasSSE() ? "TRUE" : "FALSE" ) << llendl; llinfos << "CPU supports SSE2 " << ( CPUInfo.hasSSE2() ? "TRUE" : "FALSE" ) << llendl; if (CPUInfo.hasSSE() && CPUInfo.hasSSE2()) { sVectorizeProcessor = 2; } if (CPUInfo.hasSSE() && !sVectorizeProcessor) { sVectorizeProcessor = 1; } if (sVectorizeProcessor != 0) { vectorizeEnable = 1; vectorizeSkin = 1; } } linden\indra\newview\llapviewerwin32.cpp @465 ' gGLManager.mVRAM = gDXHardware.getVRAM(); - Hardware must be probed every startup to fill this var!! So i changed @403 --- //if (FALSE == gSavedSettings.getBOOL("NoHardwareProbe")) +++ if (FALSE == 0) - Furthermore if gGLMananger.mVRAM is null LLViewerImageList::getMaxVideoRamSetting(bool get_recommended) will not test max Texture Mem!! llviwerimagelist.cpp @941, if (gGLManager.mVRAM != 0) - Furthermore LLFloaterHardwareSettings::refreshEnabledState() in llfloaterhardwaresettings.cpp @92,93 will not work correctly and GrapicsCardTextureMemory will not correctly updated during refresh linden\indra\llrender\llgl.cpp @112 --- // GL_ARB_point_parameters @113 --- PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB = NULL; @114 --- PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB = NULL; @248 / 243 --- #if LL_WINDOWS PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT = NULL; #endif # Those changes where done cause glPointParameterfARB will be initiated during extensions call now (updated glh_genext.h defined there) @591 / 597 # only for non ATI?? thats curios and one of some other things i dont understand --- mHasPointParameters = !mIsATI && ExtensionExists("GL_ARB_point_parameters", gGLHExts.mSysExts); +++ mHasPointParameters = ExtensionExists("GL_ARB_point_parameters", gGLHExts.mSysExts); @707 / 720 // didn't noticed any performance issues so i disabled it (ATI has an mip-map opt feature @driver stage) --- LL_INFOS("RenderInit") << "Disabling mip-map generation for ATI GPUs (performance opt)" << LL_ENDL; mHasMipMapGeneration = FALSE; +++ LL_INFOS("RenderInit") << "__NOT__ Disabling mip-map generation for ATI GPUs (performance opt)" << LL_ENDL; //mHasMipMapGeneration = FALSE; linden\indra\newview\llappviewer.cpp @407 ??? LLCubeMap::sUseCubeMaps = LLFeatureManager::getInstance()->isFeatureAvailable("RenderCubeMap"); # tests a feature that not in feature list by default. Would be if the featurestable.txt file would read before and # this feature is added. Cause LLFeatureManager::loadFeatureTables() is called later it outputs a warning ... # The extension will be loaded regardless of that warning message so i dont care. #################################################### ## Notes #################################################### linden\indra\llrender\llgl.cpp - @591 GL_ARB_point_parameters not for ATI??? featuretable.txt - added "RenderCubeMap 1 1" right after "RenderAvatarVP 1 1" to all modes ## - Added those lines to gpu_tables.txt for recognizing ATI Cards some still exists before ## - Copied from an existing jira note ATI Mobility Radeon HD 2300 .*ATI.*Mobility.*HD.*23.* 1 1 ATI Mobility Radeon HD 2400 .*ATI.*Mobility.*HD.*24.* 1 1 ATI Mobility Radeon HD 2600 .*ATI.*Mobility.*HD.*26.* 3 1 ATI Mobility Radeon HD 3400 .*ATI.*Mobility.*HD.*34.* 1 1 ATI Mobility Radeon HD 3600 .*ATI.*Mobility.*HD.*36.* 3 1 ATI Mobility Radeon HD 3800 .*ATI.*Mobility.*HD.*38.* 3 1 ATI Radeon HD 2300 .*ATI.*Radeon HD 23.* 0 1 ATI Radeon HD 2400 .*ATI.*Radeon HD.*24.* 1 1 ATI Radeon HD 2600 .*ATI.*Radeon HD 26.* 2 1 ATI Radeon HD 2900 .*ATI.*Radeon HD 29.* 3 1 ATI Radeon HD 3200 .*ATI.*Radeon HD.*32.* 1 1 ATI Radeon HD 3300 .*ATI.*Radeon HD.*33.* 1 1 ATI Radeon HD 3400 .*ATI.*Radeon HD.*34.* 1 1 ATI Radeon HD 3600 .*ATI.*Radeon HD.*36.* 3 1 ATI Radeon HD 3800 .*ATI.*Radeon HD.*38.* 3 1 ATI Radeon HD 4300 .*ATI.*Radeon HD 43.* 1 1 ATI Radeon HD 4600 .*ATI.*Radeon HD 46.* 3 1 ATI Radeon HD 4800 .*ATI.*Radeon HD.*48.* 3 1 #################################################### ## Current Stop Points - VS Stuff #################################################### L939 llviewerimagelist.cpp L321 llgl.cpp L316 llgl.cpp L311 llgl.cpp L306 llgl.cpp L075 glh_extensions.h L114 llfeaturemanager.cpp L212 llfeaturemanager.cpp L290 llfeaturemanager.cpp L407 llappviewer.cpp #################################################### ## Performance Tipps // just for testing purpose #################################################### DisableVerticalSync: TRUE RenderAppleUseMultiGL: FALSE RenderAvatarCloth: TRUE RenderAvatarVP: TRUE RenderCubeMap: TRUE RenderUseFBO: TRUE RenderVBOEnable: TRUE RunMultipleThreads: TRUE VectorizeEnable: TRUE VectorizeProcessor: TRUE VectorizeSkin: TRUE