diff options
| author | Dave Parks <davep@lindenlab.com> | 2022-03-24 14:48:47 -0500 | 
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2022-03-24 14:48:47 -0500 | 
| commit | 96178e689b3df429e2768566afe817b0f7e7cc1d (patch) | |
| tree | 897d06505cd9b1745600f22f558e271b2ad0bce5 | |
| parent | 41cf9fcb050b682ea8f9a855da33a246b5e169c4 (diff) | |
| parent | 8469dbd3f30fda770ab3317fa48952ec8bdeca4d (diff) | |
Merge branch 'DRTVWR-546' of ssh://bitbucket.org/lindenlab/viewer into DRTVWR-546
| -rw-r--r-- | indra/llwindow/llwindowwin32.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llstartup.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llviewertexturelist.cpp | 8 | 
3 files changed, 20 insertions, 1 deletions
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index f26e3a84d2..9feccd7874 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -2426,6 +2426,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_              LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_SYSKEYDOWN");              // allow system keys, such as ALT-F4 to be processed by Windows              eat_keystroke = FALSE; +            break;          }          case WM_KEYDOWN:          { diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 94bafcb612..bb6ad5d8fb 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -310,6 +310,12 @@ void update_texture_fetch()  	LLAppViewer::getImageDecodeThread()->update(1); // unpauses the image thread  	LLAppViewer::getTextureFetch()->update(1); // unpauses the texture fetch thread  	gTextureList.updateImages(0.10f); + +    if (LLImageGLThread::sEnabled) +    { +        std::shared_ptr<LL::WorkQueue> main_queue = LL::WorkQueue::getInstance("mainloop"); +        main_queue->runFor(std::chrono::milliseconds(1)); +    }  }  void set_flags_and_update_appearance() @@ -1518,7 +1524,11 @@ bool idle_startup()  		display_startup();  		LL_DEBUGS("AppInit") << "Decoding images..." << LL_ENDL; -		// For all images pre-loaded into viewer cache, decode them. +		// For all images pre-loaded into viewer cache, init +        // priorities and fetching using decodeAllImages. +        // Most of the fetching and decoding likely to be done +        // by update_texture_fetch() later, while viewer waits. +        //  		// Need to do this AFTER we init the sky  		const S32 DECODE_TIME_SEC = 2;  		for (int i = 0; i < DECODE_TIME_SEC; i++) diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 94a91d4a72..e0b778af59 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -1222,6 +1222,7 @@ void LLViewerTextureList::decodeAllImages(F32 max_time)  		LLViewerFetchedTexture* imagep = *iter++;  		imagep->updateFetch();  	} +    std::shared_ptr<LL::WorkQueue> main_queue = LLImageGLThread::sEnabled ? LL::WorkQueue::getInstance("mainloop") : NULL;  	// Run threads  	S32 fetch_pending = 0;  	while (1) @@ -1229,6 +1230,13 @@ void LLViewerTextureList::decodeAllImages(F32 max_time)  		LLAppViewer::instance()->getTextureCache()->update(1); // unpauses the texture cache thread  		LLAppViewer::instance()->getImageDecodeThread()->update(1); // unpauses the image thread  		fetch_pending = LLAppViewer::instance()->getTextureFetch()->update(1); // unpauses the texture fetch thread + +        if (LLImageGLThread::sEnabled) +        { +            main_queue->runFor(std::chrono::milliseconds(1)); +            fetch_pending += main_queue->size(); +        } +  		if (fetch_pending == 0 || timer.getElapsedTimeF32() > max_time)  		{  			break;  | 
