From 88482a24311943141366b5b7fcc06da9df793cf3 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Wed, 26 Sep 2012 20:45:47 -0500 Subject: [PATCH] An extra rendertarget is needed when fxaa dof are used in conjunction. mDeferredScreens color attachment was being used for both input and output when doing DoF combine, which is undefined behavior. Using mDeferredScreen for this works as it's no longer needed after lighting has been applied. --- indra/newview/pipeline.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index a7657a4ab..d2004a187 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -6709,7 +6709,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b { //combine result based on alpha if (multisample) { - mDeferredLight.bindTarget(); + mDeferredScreen.bindTarget(); glViewport(0, 0, mDeferredScreen.getWidth(), mDeferredScreen.getHeight()); } else @@ -6752,7 +6752,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b if (multisample) { - mDeferredLight.flush(); + mDeferredScreen.flush(); } } } @@ -6760,7 +6760,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b { if (multisample) { - mDeferredLight.bindTarget(); + mDeferredScreen.bindTarget(); } LLGLSLShader* shader = &gDeferredPostNoDoFProgram; @@ -6788,7 +6788,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b if (multisample) { - mDeferredLight.flush(); + mDeferredScreen.flush(); } } @@ -6809,7 +6809,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b S32 channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mDeferredLight.getUsage()); if (channel > -1) { - mDeferredLight.bindTexture(0, channel); + mDeferredScreen.bindTexture(0, channel); } gGL.begin(LLRender::TRIANGLE_STRIP);