summaryrefslogtreecommitdiff
path: root/indra/newview/pipeline.cpp
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2010-03-04 15:30:15 -0600
committerDave Parks <davep@lindenlab.com>2010-03-04 15:30:15 -0600
commitea6397fe4990b73e190391d61781c609fbd1f8c1 (patch)
tree68bac3d7259f116343903ae964e2c11a7cb09122 /indra/newview/pipeline.cpp
parentac2dc19029d0b17292beadc834fdf41330eb88d8 (diff)
Optimiziation pass.
Added RenderUseStreamVBO to enable/disable usage of VBO's for streaming buffers. Faster traversal of LLCullResult members. Removal of llpushcallstacks from inner loops. Sprinkling in fast timers.
Diffstat (limited to 'indra/newview/pipeline.cpp')
-rw-r--r--indra/newview/pipeline.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 43b2104135..eb3ad95586 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -362,6 +362,7 @@ void LLPipeline::init()
sDynamicLOD = gSavedSettings.getBOOL("RenderDynamicLOD");
sRenderBump = gSavedSettings.getBOOL("RenderObjectBump");
sUseTriStrips = gSavedSettings.getBOOL("RenderUseTriStrips");
+ LLVertexBuffer::sUseStreamDraw = gSavedSettings.getBOOL("RenderUseStreamVBO");
sRenderAttachedLights = gSavedSettings.getBOOL("RenderAttachedLights");
sRenderAttachedParticles = gSavedSettings.getBOOL("RenderAttachedParticles");
@@ -1739,8 +1740,12 @@ void LLPipeline::markOccluder(LLSpatialGroup* group)
}
}
+static LLFastTimer::DeclareTimer FTM_DO_OCCLUSION("Do Occlusion");
+
void LLPipeline::doOcclusion(LLCamera& camera)
{
+ LLFastTimer t(FTM_DO_OCCLUSION);
+
LLVertexBuffer::unbind();
if (hasRenderDebugMask(LLPipeline::RENDER_DEBUG_OCCLUSION))
@@ -1816,7 +1821,6 @@ void LLPipeline::rebuildPriorityGroups()
void LLPipeline::rebuildGroups()
{
- llpushcallstacks ;
// Iterate through some drawables on the non-priority build queue
S32 size = (S32) mGroupQ2.size();
S32 min_count = llclamp((S32) ((F32) (size * size)/4096*0.25f), 1, size);
@@ -1961,9 +1965,13 @@ void LLPipeline::updateGeom(F32 max_dtime)
updateMovedList(mMovedBridge);
}
+static LLFastTimer::DeclareTimer FTM_MARK_VISIBLE("Mark Visible");
+
void LLPipeline::markVisible(LLDrawable *drawablep, LLCamera& camera)
{
LLMemType mt(LLMemType::MTYPE_PIPELINE_MARK_VISIBLE);
+ LLFastTimer t(FTM_MARK_VISIBLE);
+
if(!drawablep || drawablep->isDead())
{
return;
@@ -4704,8 +4712,12 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)
mLightMask = 0;
}
+static LLFastTimer::DeclareTimer FTM_ENABLE_LIGHTS("Enable Lights");
+
void LLPipeline::enableLights(U32 mask)
{
+ LLFastTimer ftm(FTM_ENABLE_LIGHTS);
+
assertInitialized();
if (mLightingDetail == 0)
@@ -4813,16 +4825,16 @@ void LLPipeline::enableLightsFullbright(const LLColor4& color)
enableLights(mask);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,color.mV);
- if (mLightingDetail >= 2)
+ /*if (mLightingDetail >= 2)
{
glColor4f(0.f, 0.f, 0.f, 1.f); // no local lighting by default
- }
+ }*/
}
void LLPipeline::disableLights()
{
enableLights(0); // no lighting (full bright)
- glColor4f(1.f, 1.f, 1.f, 1.f); // lighting color = white by default
+ //glColor4f(1.f, 1.f, 1.f, 1.f); // lighting color = white by default
}
//============================================================================
@@ -5425,6 +5437,7 @@ void LLPipeline::resetVertexBuffers()
{
sRenderBump = gSavedSettings.getBOOL("RenderObjectBump");
sUseTriStrips = gSavedSettings.getBOOL("RenderUseTriStrips");
+ LLVertexBuffer::sUseStreamDraw = gSavedSettings.getBOOL("RenderUseStreamVBO");
for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin();
iter != LLWorld::getInstance()->getRegionList().end(); ++iter)