From: Yon U. <yon...@gm...> - 2009-01-12 08:41:03
|
Hi Fred, saw your message asking for some testing. I decided to post a new thread asking for more user testing: http://flightgear.org/forums/viewtopic.php?f=2&t=2812 grep -r getenv OpenSceneGraph, possibly relevant env vars, some of them are changed in my patches: F:\c\OSG\OpenSceneGraph\src\osg\DisplaySettings.cpp(356): if( (ptr = getenv("OSG_SERIALIZE_DRAW_DISPATCH")) != 0) F:\c\OSG\OpenSceneGraph\src\osg\DisplaySettings.cpp(369): if( (ptr = getenv("OSG_NUM_DATABASE_THREADS")) != 0) 1 by default, 2 may help a little bit on multi-cores. set to #cores F:\c\OSG\OpenSceneGraph\src\osg\DisplaySettings.cpp(374): if( (ptr = getenv("OSG_NUM_HTTP_DATABASE_THREADS")) != 0) 1 by default, fgfs uses none. set to 0 F:\c\OSG\OpenSceneGraph\src\osgDB\DatabasePager.cpp(805): const char* str = getenv("OSG_DATABASE_PAGER_PRIORITY"); neutral by default: set to LOW F:\c\OSG\OpenSceneGraph\src\osgDB\DatabasePager.cpp(842): str = getenv("OSG_DATABASE_PAGER_GEOMETRY"); F:\c\OSG\OpenSceneGraph\src\osgDB\DatabasePager.cpp(843): if (!str) str = getenv("OSG_DATABASE_PAGER_DRAWABLE"); F:\c\OSG\OpenSceneGraph\src\osgDB\DatabasePager.cpp(872): if( (ptr = getenv("OSG_DELETE_IN_DATABASE_THREAD")) != 0) F:\c\OSG\OpenSceneGraph\src\osgDB\DatabasePager.cpp(929): if( (ptr = getenv("OSG_DO_PRE_COMPILE")) != 0) recently changed from default ON to OFF. set to ON F:\c\OSG\OpenSceneGraph\src\osgDB\DatabasePager.cpp(938): if( (ptr = getenv("OSG_MINIMUM_COMPILE_TIME_PER_FRAME")) != 0) F:\c\OSG\OpenSceneGraph\src\osgDB\DatabasePager.cpp(943): if( (ptr = getenv("OSG_MAXIMUM_OBJECTS_TO_COMPILE_PER_FRAME")) != 0) F:\c\OSG\OpenSceneGraph\src\osgUtil\Optimizer.cpp(61): const char* env = getenv("OSG_OPTIMIZER"); is this applied to all objects? maybe i look into this. F:\c\OSG\OpenSceneGraph\src\osgUtil\RenderBin.cpp(108): const char* str = getenv("OSG_DEFAULT_BIN_SORT_MODE"); may be relevant on some weird hw mixes. F:\c\OSG\OpenSceneGraph\src\osgViewer\ViewerBase.cpp(78): const char* str = getenv("OSG_THREADING"); default "SingleThreaded". set to "CullThreadPerCameraDrawThreadPerContext" regards, yon On Sun, Jan 11, 2009 at 11:55 PM, Frederic Bouvier <fre...@fr...>wrote: > > ----- "James Turner" a écrit : > > > On 11 Jan 2009, at 17:18, Frederic Bouvier wrote: > > > > > My findings on that is that the pager thread needs to compile > > display > > > list in the main loop, and this process is framerate dependent. At > > > > > that > > > time of the initialisation, there is only the splashscreen on > > screen, > > > but its refresh rate slow down the loading process. For instance, I > > > mesured it takes more than 1000 frames to display to correctly load > > a > > > terrain tile. Maybe there are parameters to tweak, like the number > > of > > > maximum display lists to compile each frames, and we could use more > > > aggressive values until the scenery is displayed. Just a thought. > > > > Yon Uriarte has proposed a patch that limits the frame-rate to 60hz > > during the splash screen. Would that fix the issue, by freeing up > > cycles? > > > > The patch has been around since November and I ran it locally for many > > > > weeks without seeing any problems. > > As I understand it, if you limit the framerate, you limit the slots the > pager has to compile objects, as compilation is done in the draw thread, > between two frames. I tried to give more time and allow the compilation of > more objects between two frames by calling > setMinimumTimeAvailableForGLCompileAndDeletePerFrame and > setMaximumNumOfObjectsToCompilePerFrame on the pager and on the renderer but > for me it makes no difference (there is no problem for me, even in the Paris > area ). That's why I built a Windows binary to allow people with the problem > to test the possible solution. > > The binary is here : > > ftp://ftp.ihg.uni-duisburg.de/FlightGear/Win32/fgrun+fgfs-osg-win32-20090111.zip > > -Fred > > > |