From 1747d529d8af8b16690ea91e2d99c834a56226e8 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Thu, 2 Feb 2012 18:05:07 -0600 Subject: [PATCH] Stall object updates (including flexi) while tiling. Also fix matrix stack breakage --- indra/newview/llviewerdisplay.cpp | 19 +++++++++++-------- indra/newview/pipeline.cpp | 8 ++++++-- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 1631bdeeb..a78f98f2d 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -639,14 +639,17 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot, boo LLHUDObject::updateAll(); stop_glerror(); - gFrameStats.start(LLFrameStats::UPDATE_GEOM); - const F32 max_geom_update_time = 0.005f*10.f*gFrameIntervalSeconds; // 50 ms/second update time - gPipeline.createObjects(max_geom_update_time); - gPipeline.processPartitionQ(); - gPipeline.updateGeom(max_geom_update_time); - stop_glerror(); - gPipeline.updateGL(); - stop_glerror(); + if(!tiling) + { + gFrameStats.start(LLFrameStats::UPDATE_GEOM); + const F32 max_geom_update_time = 0.005f*10.f*gFrameIntervalSeconds; // 50 ms/second update time + gPipeline.createObjects(max_geom_update_time); + gPipeline.processPartitionQ(); + gPipeline.updateGeom(max_geom_update_time); + stop_glerror(); + gPipeline.updateGL(); + stop_glerror(); + } gFrameStats.start(LLFrameStats::UPDATE_CULL); S32 water_clip = 0; diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 3daee4398..f9cf2030e 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -6153,6 +6153,8 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b if (tiling && !LLPipeline::sRenderDeferred) //Need to coax this into working with deferred now that tiling is back. { + gGlowCombineProgram.bind(); + gGL.getTexUnit(0)->bind(&mGlow[1]); { //LLGLEnable stencil(GL_STENCIL_TEST); @@ -6194,12 +6196,14 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b gGL.setSceneBlendType(LLRender::BT_ALPHA); } - gGL.flush(); gGL.matrixMode(LLRender::MM_PROJECTION); gGL.popMatrix(); - gGL.matrixMode(GL_MODELVIEW); + gGL.matrixMode(LLRender::MM_MODELVIEW); gGL.popMatrix(); + gGlowCombineProgram.unbind(); + + gGL.flush(); return; }