From 3116416fcb8dfd54ef2807e9e75959429c946d79 Mon Sep 17 00:00:00 2001 From: "Graham Linden graham@lindenlab.com" Date: Tue, 1 May 2018 00:10:11 +0100 Subject: Le Merge --- indra/newview/llvieweroctree.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llvieweroctree.cpp') diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp index 023f1b92ba..56e6103f67 100644 --- a/indra/newview/llvieweroctree.cpp +++ b/indra/newview/llvieweroctree.cpp @@ -1272,7 +1272,7 @@ void LLOcclusionCullingGroup::doOcclusion(LLCamera* camera, const LLVector4a* sh { LL_RECORD_BLOCK_TIME(FTM_OCCLUSION_DRAW_WATER); - LLGLSquashToFarClip squash(glh_get_current_projection(), 1); + LLGLSquashToFarClip squash(get_current_projection(), 1); if (camera->getOrigin().isExactlyZero()) { //origin is invalid, draw entire box gPipeline.mCubeVB->drawRange(LLRender::TRIANGLE_FAN, 0, 7, 8, 0); -- cgit v1.2.3 From 536799d07e4298ff8157ef51ed00040e10a5ba65 Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Mon, 29 Oct 2018 23:02:20 +0100 Subject: SL-9977 SL-9973 --- indra/newview/llvieweroctree.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llvieweroctree.cpp') diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp index 7d4d737db4..9371711ca1 100644 --- a/indra/newview/llvieweroctree.cpp +++ b/indra/newview/llvieweroctree.cpp @@ -1272,7 +1272,7 @@ void LLOcclusionCullingGroup::doOcclusion(LLCamera* camera, const LLVector4a* sh { LL_RECORD_BLOCK_TIME(FTM_OCCLUSION_DRAW_WATER); - LLGLSquashToFarClip squash(get_current_projection(), 1); + LLGLSquashToFarClip squash; if (camera->getOrigin().isExactlyZero()) { //origin is invalid, draw entire box gPipeline.mCubeVB->drawRange(LLRender::TRIANGLE_FAN, 0, 7, 8, 0); -- cgit v1.2.3 From 3f48633b7df7bff19bae217527b92ec2be5e36e6 Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Wed, 6 Mar 2019 10:09:59 -0800 Subject: Make octree walk stop thrashing the caches with tex work. Add many more fast timer blocks to differentiate where time goes in UI and Shadow rendering. --- indra/newview/llvieweroctree.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'indra/newview/llvieweroctree.cpp') diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp index 6c3b98bef9..459ee1f35c 100644 --- a/indra/newview/llvieweroctree.cpp +++ b/indra/newview/llvieweroctree.cpp @@ -1110,16 +1110,13 @@ void LLOcclusionCullingGroup::checkOcclusion() static LLCachedControl wait_for_query(gSavedSettings, "RenderSynchronousOcclusion", true); - if (wait_for_query && mOcclusionIssued[LLViewerCamera::sCurCameraID] < gFrameCount) + U32 target_read_frame = (gFrameCount > 2) ? (gFrameCount - 2) : 0; + if (wait_for_query && (mOcclusionIssued[LLViewerCamera::sCurCameraID] < target_read_frame)) { //query was issued last frame, wait until it's available - S32 max_loop = 1024; + S32 max_loop = 64; LL_RECORD_BLOCK_TIME(FTM_OCCLUSION_WAIT); while (!available && max_loop-- > 0) { - //do some usefu work while we wait - F32 max_time = llmin(gFrameIntervalSeconds.value()*10.f, 1.f); - LLAppViewer::instance()->updateTextureThreads(max_time); - glGetQueryObjectuivARB(mOcclusionQuery[LLViewerCamera::sCurCameraID], GL_QUERY_RESULT_AVAILABLE_ARB, &available); } } -- cgit v1.2.3 From fa7547c6ebbad5e227613e76927db6e20f34624c Mon Sep 17 00:00:00 2001 From: Graham Linden Date: Fri, 17 May 2019 19:49:30 -0700 Subject: SL-10625 Revert perf optimization to not wait for occlusion queries until there's a good chance they're complete because Intel HD driver versions between 6471 and 6577 are broken and hang forever (6709 and 6861 are fixed). --- indra/newview/llvieweroctree.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'indra/newview/llvieweroctree.cpp') diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp index 459ee1f35c..6365df09e1 100644 --- a/indra/newview/llvieweroctree.cpp +++ b/indra/newview/llvieweroctree.cpp @@ -1110,10 +1110,9 @@ void LLOcclusionCullingGroup::checkOcclusion() static LLCachedControl wait_for_query(gSavedSettings, "RenderSynchronousOcclusion", true); - U32 target_read_frame = (gFrameCount > 2) ? (gFrameCount - 2) : 0; - if (wait_for_query && (mOcclusionIssued[LLViewerCamera::sCurCameraID] < target_read_frame)) + if (wait_for_query && mOcclusionIssued[LLViewerCamera::sCurCameraID] < gFrameCount) { //query was issued last frame, wait until it's available - S32 max_loop = 64; + S32 max_loop = 1024; LL_RECORD_BLOCK_TIME(FTM_OCCLUSION_WAIT); while (!available && max_loop-- > 0) { -- cgit v1.2.3