diff options
-rwxr-xr-x | indra/llrender/llvertexbuffer.cpp | 45 | ||||
-rwxr-xr-x | indra/newview/pipeline.cpp | 14 |
2 files changed, 23 insertions, 36 deletions
diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp index f1249a842a..fd7b846928 100755 --- a/indra/llrender/llvertexbuffer.cpp +++ b/indra/llrender/llvertexbuffer.cpp @@ -2230,9 +2230,16 @@ void LLVertexBuffer::setBuffer(U32 data_mask) if((getTypeMask() & data_mask) != data_mask) { - llinfos << "Missing VB stream components." << llendl; - DumpComponents(data_mask & ~getTypeMask()); - data_mask &= getTypeMask(); + if (gDebugGL) + { + // Dump info about what was missing + // + DumpComponents(data_mask & ~getTypeMask()); + llwarns << "Missing VB stream components. ^^" << llendl; + } + // Make sure we don't write checks we can't cash below... + // + data_mask = (data_mask & getTypeMask()); } //set up pointers if the data mask is different ... @@ -2257,27 +2264,7 @@ void LLVertexBuffer::setBuffer(U32 data_mask) required_mask |= required; } } - - static bool done_done_it = false; - - if (!done_done_it) - { - done_done_it = true; - - llinfos << - "MAP_VERTEX: " << MAP_VERTEX << - "MAP_VERTEX: " << MAP_NORMAL << - "MAP_VERTEX: " << MAP_TEXCOORD0 << - "MAP_VERTEX: " << MAP_TEXCOORD1 << - "MAP_VERTEX: " << MAP_TEXCOORD2 << - "MAP_VERTEX: " << MAP_TEXCOORD3 << - "MAP_VERTEX: " << MAP_COLOR << - "MAP_VERTEX: " << MAP_EMISSIVE << - "MAP_VERTEX: " << MAP_TANGENT << llendl; - - - } - + if ((data_mask & required_mask) != required_mask) { @@ -2302,14 +2289,14 @@ void LLVertexBuffer::setBuffer(U32 data_mask) case MAP_WEIGHT4: llinfos << "Missing weightx4" << llendl; break; case MAP_CLOTHWEIGHT: llinfos << "Missing clothweight" << llendl; break; case MAP_TEXTURE_INDEX: llinfos << "Missing tex index" << llendl; break; - default: llinfos << "Missing who effin knows" << llendl; + default: llinfos << "Missing who effin knows: " << unsatisfied_flag << llendl; } } - if (unsatisfied_mask & (1 << TYPE_INDEX)) - { - llinfos << "Missing indices" << llendl; - } + if (unsatisfied_mask & (1 << TYPE_INDEX)) + { + llinfos << "Missing indices" << llendl; + } llerrs << "Shader consumption mismatches data provision." << llendl; } diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 05390f64f0..9aa375767b 100755 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -8695,6 +8695,12 @@ void LLPipeline::renderDeferredLighting() unbindDeferredShader(gDeferredSpotLightProgram); } + //reset mDeferredVB to fullscreen triangle + mDeferredVB->getVertexStrider(vert); + vert[0].set(-1,1,0); + vert[1].set(-1,-3,0); + vert[2].set(3,1,0); + { LLGLDepthTest depth(GL_FALSE); @@ -8713,10 +8719,6 @@ void LLPipeline::renderDeferredLighting() F32 far_z = 0.f; - bindDeferredShader(gDeferredMultiLightProgram[0]); - - mDeferredVB->setBuffer(LLVertexBuffer::MAP_VERTEX); - while (!fullscreen_lights.empty()) { LLFastTimer ftm(FTM_FULLSCREEN_LIGHTS); @@ -8742,13 +8744,11 @@ void LLPipeline::renderDeferredLighting() gDeferredMultiLightProgram[idx].uniform1f(LLShaderMgr::MULTI_LIGHT_FAR_Z, far_z); far_z = 0.f; count = 0; - mDeferredVB->setBuffer(LLVertexBuffer::MAP_VERTEX); + mDeferredVB->setBuffer(LLVertexBuffer::MAP_VERTEX); mDeferredVB->drawArrays(LLRender::TRIANGLES, 0, 3); unbindDeferredShader(gDeferredMultiLightProgram[idx]); } } - - unbindDeferredShader(gDeferredMultiLightProgram[0]); bindDeferredShader(gDeferredMultiSpotLightProgram); |