From 1264f7af80f2711735b15a8493bb4d271dbe8c0a Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Wed, 21 Dec 2022 00:25:38 -0500
Subject: [PATCH] Fix disabling sharpen/AA breaking screenshots

---
 indra/newview/pipeline.cpp | 32 +++++++++++++++++++++++++-------
 1 file changed, 25 insertions(+), 7 deletions(-)

diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index d9233b3af03..a67873aeb7e 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -8033,15 +8033,33 @@ void LLPipeline::renderFinalize()
 // [RLVa:KB] - @setsphere
             if (pRenderBuffer)
             {
-				pRenderBuffer->copyContents(mScreen, 0, 0, mScreen.getWidth(), mScreen.getHeight(), 0, 0,
-					mScreen.getWidth(), mScreen.getHeight(), GL_COLOR_BUFFER_BIT, GL_NEAREST);
+				pRenderBuffer->bindTarget();
+            }
+// [/RLVa:KB]
+            LLGLSLShader *shader = &gDeferredPostNoDoFProgram;
+
+            bindDeferredShader(*shader);
+
+            S32 channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mScreen.getUsage());
+            if (channel > -1)
+            {
+                mScreen.bindTexture(0, channel);
+            }
+
+			mDeferredVB->setBuffer(LLVertexBuffer::MAP_VERTEX);
+			mDeferredVB->drawArrays(LLRender::TRIANGLES, 0, 3);
+            unbindDeferredShader(*shader);
+
+// [RLVa:KB] - @setsphere
+            if (pRenderBuffer)
+            {
+				pRenderBuffer->flush();
             }
-			else
-			{
-				LLRenderTarget::copyContentsToFramebuffer(mScreen, 0, 0, mScreen.getWidth(), mScreen.getHeight(), 0, 0,
-					mScreen.getWidth(), mScreen.getHeight(), GL_COLOR_BUFFER_BIT, GL_NEAREST);
-			}
 // [/RLVa:KB]
+//            if (multisample)
+//            {
+//                mDeferredLight.flush();
+//            }
         }
 
 // [RLVa:KB] - @setsphere
-- 
GitLab