Use LLStaticHashedString for faster uniform lookup.
This commit is contained in:
@@ -204,6 +204,12 @@ LLFastTimer::DeclareTimer FTM_RENDER_DEFERRED("Deferred Shading");
|
||||
static LLFastTimer::DeclareTimer FTM_STATESORT_DRAWABLE("Sort Drawables");
|
||||
static LLFastTimer::DeclareTimer FTM_STATESORT_POSTSORT("Post Sort");
|
||||
|
||||
static LLStaticHashedString sNormMat("norm_mat");
|
||||
static LLStaticHashedString sOffset("offset");
|
||||
static LLStaticHashedString sDelta("delta");
|
||||
static LLStaticHashedString sDistFactor("dist_factor");
|
||||
static LLStaticHashedString sKern("kern");
|
||||
static LLStaticHashedString sKernScale("kern_scale");
|
||||
//----------------------------------------
|
||||
std::string gPoolNames[] =
|
||||
{
|
||||
@@ -7478,10 +7484,10 @@ void LLPipeline::bindDeferredShader(LLGLSLShader& shader, U32 light_index, U32 n
|
||||
shader.uniform1f(LLShaderMgr::DEFERRED_NORM_CUTOFF, RenderEdgeNormCutoff);
|
||||
|
||||
|
||||
if (shader.getUniformLocation("norm_mat") >= 0)
|
||||
if (shader.getUniformLocation(LLShaderMgr::DEFERRED_NORM_MATRIX) >= 0)
|
||||
{
|
||||
glh::matrix4f norm_mat = glh_get_current_modelview().inverse().transpose();
|
||||
shader.uniformMatrix4fv("norm_mat", 1, FALSE, norm_mat.m);
|
||||
shader.uniformMatrix4fv(LLShaderMgr::DEFERRED_NORM_MATRIX, 1, FALSE, norm_mat.m);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7617,8 +7623,8 @@ void LLPipeline::renderDeferredLighting()
|
||||
}
|
||||
}
|
||||
|
||||
gDeferredSunProgram.uniform3fv("offset", slice, offset);
|
||||
gDeferredSunProgram.uniform2f("screenRes", mDeferredLight.getWidth(), mDeferredLight.getHeight());
|
||||
gDeferredSunProgram.uniform3fv(sOffset, slice, offset);
|
||||
gDeferredSunProgram.uniform2f(LLShaderMgr::DEFERRED_SCREEN_RES, mDeferredLight.getWidth(), mDeferredLight.getHeight());
|
||||
|
||||
{
|
||||
LLGLDisable blend(GL_BLEND);
|
||||
@@ -7662,10 +7668,10 @@ void LLPipeline::renderDeferredLighting()
|
||||
x += 1.f;
|
||||
}
|
||||
|
||||
gDeferredBlurLightProgram.uniform2f("delta", 1.f, 0.f);
|
||||
gDeferredBlurLightProgram.uniform1f("dist_factor", dist_factor);
|
||||
gDeferredBlurLightProgram.uniform3fv("kern", kern_length, gauss[0].mV);
|
||||
gDeferredBlurLightProgram.uniform1f("kern_scale", blur_size * (kern_length/2.f - 0.5f));
|
||||
gDeferredBlurLightProgram.uniform2f(sDelta, 1.f, 0.f);
|
||||
gDeferredBlurLightProgram.uniform1f(sDistFactor, dist_factor);
|
||||
gDeferredBlurLightProgram.uniform3fv(sKern, kern_length, gauss[0].mV);
|
||||
gDeferredBlurLightProgram.uniform1f(sKernScale, blur_size * (kern_length/2.f - 0.5f));
|
||||
|
||||
{
|
||||
LLGLDisable blend(GL_BLEND);
|
||||
@@ -7682,7 +7688,7 @@ void LLPipeline::renderDeferredLighting()
|
||||
mDeferredVB->setBuffer(LLVertexBuffer::MAP_VERTEX);
|
||||
mDeferredLight.bindTarget();
|
||||
|
||||
gDeferredBlurLightProgram.uniform2f("delta", 0.f, 1.f);
|
||||
gDeferredBlurLightProgram.uniform2f(sDelta, 0.f, 1.f);
|
||||
|
||||
{
|
||||
LLGLDisable blend(GL_BLEND);
|
||||
|
||||
Reference in New Issue
Block a user