fixed for EXT-8963: investigate if Advanced > Run Multiple Threads should be on.

Removed "Run Multiple Threads" from the menu because we are not using it.
meow-7.2.2
Xiaohong Bao 2010-08-18 15:32:40 -06:00
parent 104aec161e
commit 116382fdf7
3 changed files with 15 additions and 49 deletions

View File

@ -8295,17 +8295,6 @@
<key>Value</key>
<real>1.0</real>
</map>
<key>RunMultipleThreads</key>
<map>
<key>Comment</key>
<string>If TRUE keep background threads active during render</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>SafeMode</key>
<map>
<key>Comment</key>

View File

@ -1108,8 +1108,7 @@ bool LLAppViewer::mainLoop()
{
LLMemType mt_sleep(LLMemType::MTYPE_SLEEP);
LLFastTimer t2(FTM_SLEEP);
bool run_multiple_threads = gSavedSettings.getBOOL("RunMultipleThreads");
// yield some time to the os based on command line option
if(mYieldTime >= 0)
{
@ -1147,9 +1146,7 @@ bool LLAppViewer::mainLoop()
}
static const F64 FRAME_SLOW_THRESHOLD = 0.5; //2 frames per seconds
const F64 min_frame_time = 0.0; //(.0333 - .0010); // max video frame rate = 30 fps
const F64 min_idle_time = 0.0; //(.0010); // min idle time = 1 ms
const F64 max_idle_time = run_multiple_threads ? min_idle_time : llmin(.005*10.0*gFrameTimeSeconds, 0.005); // 5 ms a second
const F64 max_idle_time = llmin(.005*10.0*gFrameTimeSeconds, 0.005); // 5 ms a second
idleTimer.reset();
bool is_slow = (frameTimer.getElapsedTimeF64() > FRAME_SLOW_THRESHOLD) ;
S32 total_work_pending = 0;
@ -1187,34 +1184,24 @@ bool LLAppViewer::mainLoop()
total_work_pending += work_pending ;
total_io_pending += io_pending ;
F64 frame_time = frameTimer.getElapsedTimeF64();
F64 idle_time = idleTimer.getElapsedTimeF64();
if (frame_time >= min_frame_time &&
idle_time >= min_idle_time &&
(!work_pending || idle_time >= max_idle_time))
if (!work_pending || idleTimer.getElapsedTimeF64() >= max_idle_time)
{
break;
}
}
// Prevent the worker threads from running while rendering.
// if (LLThread::processorCount()==1) //pause() should only be required when on a single processor client...
if (run_multiple_threads == FALSE)
if(!total_work_pending) //pause texture fetching threads if nothing to process.
{
//LLFastTimer ftm(FTM_PAUSE_THREADS); //not necessary.
if(!total_work_pending) //pause texture fetching threads if nothing to process.
{
LLAppViewer::getTextureCache()->pause();
LLAppViewer::getImageDecodeThread()->pause();
LLAppViewer::getTextureFetch()->pause();
}
if(!total_io_pending) //pause file threads if nothing to process.
{
LLVFSThread::sLocal->pause();
LLLFSThread::sLocal->pause();
}
}
LLAppViewer::getTextureCache()->pause();
LLAppViewer::getImageDecodeThread()->pause();
LLAppViewer::getTextureFetch()->pause();
}
if(!total_io_pending) //pause file threads if nothing to process.
{
LLVFSThread::sLocal->pause();
LLLFSThread::sLocal->pause();
}
if ((LLStartUp::getStartupState() >= STATE_CLEANUP) &&
(frameTimer.getElapsedTimeF64() > FRAME_STALL_THRESHOLD))

View File

@ -1393,17 +1393,7 @@
function="Advanced.ToggleFeature"
parameter="flexible" />
</menu_item_check>
</menu>
<menu_item_check
label="Run Multiple Threads"
name="Run Multiple Threads">
<menu_item_check.on_check
function="CheckControl"
parameter="RunMultipleThreads" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RunMultipleThreads" />
</menu_item_check>
</menu>
<menu_item_check
label="Use Plugin Read Thread"
name="Use Plugin Read Thread">