From 520f2706ce24626ce61e9128ddb180d70dd658b0 Mon Sep 17 00:00:00 2001 From: Beq Date: Thu, 13 Mar 2025 13:10:46 +0000 Subject: [PATCH] let the deferred resize control when it is actually done. --- indra/newview/llviewerdisplay.cpp | 2 +- indra/newview/pipeline.cpp | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 3d762c5928..1cc89f21ca 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -475,7 +475,7 @@ void display(bool rebuild, F32 zoom_factor, int subfield, bool for_snapshot) if (gResizeShadowTexture) { //skip render on frames where window has been resized gPipeline.resizeShadowTexture(); - gResizeShadowTexture = false; + // gResizeShadowTexture = false; // This prevents the deferred resize from working properly. } gSnapshot = for_snapshot; diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 8f86a1cda3..b29b7ec60c 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -789,6 +789,12 @@ void LLPipeline::requestResizeShadowTexture() void LLPipeline::resizeShadowTexture() { + // guard against zero size render target + if(mRT->width == 0 || mRT->height == 0) + { + return; + } + // releaseSunShadowTargets(); releaseSpotShadowTargets(); allocateShadowBuffer(mRT->width, mRT->height); @@ -8082,7 +8088,7 @@ bool LLPipeline::renderSnapshotFrame(LLRenderTarget* src, LLRenderTarget* dst) { float frame_width = w; float frame_height = frame_width / snapshot_aspect; - // Centre this box in [0..1]×[0..1] + // Centre this box in [0..1]�[0..1] float y_offset = 0.5f * (h - frame_height); left = 0.f; top = y_offset / h; @@ -8093,7 +8099,7 @@ bool LLPipeline::renderSnapshotFrame(LLRenderTarget* src, LLRenderTarget* dst) { float frame_height = h; float frame_width = h * snapshot_aspect; - // Centre this box in [0..1]×[0..1] + // Centre this box in [0..1]�[0..1] float x_offset = 0.5f * (w - frame_width); left = x_offset / w; top = 0.f;