From 5efde2a4456d78e82abf7bd7fbd3961989154d25 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Fri, 9 Jan 2015 00:47:52 +0100 Subject: [PATCH] FIRE-11745: Add particles performance fix for testing (re-add changes that got lost in one of LL's merges) --- indra/newview/lldrawpoolalpha.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index 1c1fad7e62..dc7b1b220a 100755 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -370,6 +370,8 @@ void LLDrawPoolAlpha::renderAlphaHighlight(U32 mask) static LLTrace::BlockTimerStatHandle FTM_RENDER_ALPHA_GROUP_LOOP("Alpha Group"); static LLTrace::BlockTimerStatHandle FTM_RENDER_ALPHA_PUSH("Alpha Push Verts"); +// LL materials support merge error +static LLTrace::BlockTimerStatHandle FTM_RENDER_ALPHA_GLOW("Alpha Glow"); void LLDrawPoolAlpha::renderAlpha(U32 mask, S32 pass) { @@ -613,13 +615,19 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, S32 pass) (!params.mParticle || params.mHasGlow)) // { + // LL materials support merge error + LL_RECORD_BLOCK_TIME(FTM_RENDER_ALPHA_GLOW); + // install glow-accumulating blend mode gGL.blendFunc(LLRender::BF_ZERO, LLRender::BF_ONE, // don't touch color LLRender::BF_ONE, LLRender::BF_ONE); // add to alpha (glow) - emissive_shader->bind(); - - params.mVertexBuffer->setBuffer((mask & ~LLVertexBuffer::MAP_COLOR) | LLVertexBuffer::MAP_EMISSIVE); + // LL materials support merge error + //emissive_shader->bind(); + // + //params.mVertexBuffer->setBuffer((mask & ~LLVertexBuffer::MAP_COLOR) | LLVertexBuffer::MAP_EMISSIVE); + params.mVertexBuffer->setBuffer(mask | LLVertexBuffer::MAP_EMISSIVE); + // // do the actual drawing, again params.mVertexBuffer->drawRange(params.mDrawMode, params.mStart, params.mEnd, params.mCount, params.mOffset); @@ -628,7 +636,8 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, S32 pass) // restore our alpha blend mode gGL.blendFunc(mColorSFactor, mColorDFactor, mAlphaSFactor, mAlphaDFactor); - current_shader->bind(); + // LL materials support merge error + //current_shader->bind(); } if (tex_setup)