From Farshid Lashkari, "I just started looking into the shader composition feature. I enabled shader composition on the osg::State object and noticed a 6x increase in draw time. I figured that the default composer might have performance issues, so I created a custom ShaderComposer that overrides "getOrCreateProgram" and does nothing. This still resulted in a performance drop.

I looked into the "State::applyShaderComposition" method and noticed that it will print debug information to the osg::INFO stream. I commented that line out and the performance drop was gone.

I'm not sure if the printing was accidentally left in or is meant to be enabled. I've modified the function to only call the print function if INFO logging is enabled. I've attached the change."
This commit is contained in:
Robert Osfield
2013-05-28 14:35:44 +00:00
parent 47f574429a
commit 382c3322c9

View File

@@ -603,7 +603,8 @@ void State::applyShaderComposition()
{
if (_shaderCompositionDirty)
{
print(notify(osg::INFO));
if (isNotifyEnabled(osg::INFO))
print(notify(osg::INFO));
// build lits of current ShaderComponents
ShaderComponents shaderComponents;