Hi,
i had many performance issues while using the current RC of SL Viewer like fps drops to 2fps while moving or changing my position. Everythime a new Object was build (thats normal when you move arround xD) my fps drops to 2fps like a dia show. Not useable.
First i started with debugging my log files. Intresting Lines where found as listed:
—
2009-03-16T23:59:40Z INFO: LLViewerJointMesh::updateVectorize: Vectorization : DISABLED
2009-03-16T23:59:40Z INFO: LLViewerJointMesh::updateVectorize: Vector Processor : COMPILER DEFAULT
2009-03-16T23:59:40Z INFO: LLViewerJointMesh::updateVectorize: Vectorized Skinning : DISABLED
2009-03-16T23:59:40Z WARNING: LLFeatureList::isFeatureAvailable: Feature RenderCubeMap not on feature list!
2009-03-16T23:59:40Z INFO: LLAppViewerWin32::initHardwareTest: Detected VRAM: 0
2009-03-16T23:59:40Z WARNING: LLGLManager::initWGL: No ARB WGL render texture extensions
2009-03-16T23:59:40Z INFO: LLGLManager::initExtensions: Couldn't initialize GL_ARB_point_parameters
2009-03-16T23:59:40Z INFO: LLGLManager::initExtensions: Disabling mip-map generation for ATI GPUs (performance opt)
2009-03-16T23:59:40Z INFO: LLViewerImageList::updateMaxResidentTexMem: Total Video Memory set to: 65 MB
2009-03-16T23:59:40Z INFO: LLViewerImageList::updateMaxResidentTexMem: Available Texture Memory set to: 49 MB
—
I couldn't imagine why my VRAM / Total Video Memory was not detected correctly or why my card dont have GL_ARB_point_parameters. I have a brand new card that has OGL 2.0 inside. All those features used by SL Viewer should match OGL 1.2/1.4 Specs.
Well i testet those Extensions with a program called "GPU Caps Viewer". Everything was fine. So i reckon that the detection routine is faulty.
—
After building up an Compiler Environment (http://wiki.secondlife.com/wiki/Microsoft_Windows_Builds
) and following instructions how to build the RC with Visual C++ 2008 Express which is needed cause 2005 is not compatible with Vista, and fixing those boost problems (http://wiki.secondlife.com/wiki/User:Jodiah_Jensen#STEP_1_-_Downloading_the_boost_source_code
) i started compiling the source and later .... debugging.
After i've updated glext.h, glxext.h, wglext.h downloaded from (http://www.opengl.org/registry/
) and replacing glh_genext.h with an generated one produced by "extgen" parser (listed inside attached text file) to ensure detection of gl extensions and updated ogl code and changing some lines inside the code described in atteched file "fixables-sl_1.22.11-r113976.txt" and applied my patches my fps raised up to ~14 ~18 fps measured at Help Island.
Now i can move a bit better than before but viewport changing that trigger loading of new objects and textures is still a bit laggy so i started debugging again focusing if i can enable RenderDeferred in 1.22 RC.
Sadly i ended up with "cant fix it" cause this is beyond my area of expertise. But i've found out that the territory textures will be shown if "Basic Shaders" is disabled regardless wich detail level is chosen. It is not possible to change the detail level in-game cause if i switch from low to medium basic shaders will be activated and textures will hide as seen in attached file named "screenshot" while RenderDeferred set to TRUE.
As i figured out it still exists a jira entry about the RenderDeferred issue in 1.22 so i guess deferred rendering is not fully implemented in 1.22 RC. But i think it will be in 1.23 as an jira entry allocates (VWR-12314)
Note: Textures were only rendered after restart with RenderDeffered enabled so i tried to find out whats the difference between startup rendering and changing options inside the the viewer after startup but i ended an "main loop" process that tests if the main window has a focus or is minimized ..... so i stopped right now with debugging. Maybe this feature is fully functional in 1.23?
Would be nice to see that the 1.23 branch has then updated oGL libs and another glh_genext.h file to support WGL_ARB and other extensions
With the generated one and updated ogl libs i dont had those warnings during startup =.=
Please take a look at the glgui project inside the attached text file. Maybe this will be usefull for you in further releases?
Last-mentioned i've changed the detection routine of SSE / SSE2 .. i dunno if SSE / SSE 2 is then activated ingame. Furthermore some dev note inside the code noticed "i have to use the sse and sse2 optimized libs". Another Part that is beyond my area of expertise. I didn't crawl through the entire code (for me it feels like i did xD) just focused it to some GL detection stuff.
Summary:
Regards,
Luricos