diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp index 6556f36d5df5b9dd964461c690c100a34438ab82..90668db239da96d2a383291b7fb7294b7bccc4f5 100644 --- a/indra/newview/llvieweroctree.cpp +++ b/indra/newview/llvieweroctree.cpp @@ -1107,9 +1107,10 @@ void LLOcclusionCullingGroup::checkOcclusion() static LLCachedControl<bool> wait_for_query(gSavedSettings, "RenderSynchronousOcclusion", true); - if (wait_for_query && mOcclusionIssued[LLViewerCamera::sCurCameraID] < gFrameCount) + U32 target_read_frame = !gGLManager.mIsIntel ? ((gFrameCount > 2) ? (gFrameCount - 2) : 0) : gFrameCount; + 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 = !gGLManager.mIsIntel ? 64 : 1024; LL_RECORD_BLOCK_TIME(FTM_OCCLUSION_WAIT); while (!available && max_loop-- > 0) {