Hi,

I'm trying to use shaders on an Intel HD 3000 graphics chip (Windows7 x64, 
latest graphics driver).

As soon as I pass a uniform variable to the shader (regardless of the type), 
the memory of my process increases by about 400MB. Other than that, the shader 
works fine.
The size of the object the shader is attached to or the complexity of the 
shader do not make a difference. Every additional shader (containing at least 
one uniform variable) I use, increases the memory usage by another 400MB.

The problem does not occur on another machine with some NVidia graphics card.

Has anyone encountered a similar problem or does someone have an idea what 
could cause a problem like this?


Code:

osg::Program *program = new osg::Program;
osg::Shader *frag = new osg::Shader( osg::Shader::FRAGMENT, fragSource.str() );
osg::Shader *vert = new osg::Shader( osg::Shader::VERTEX, vertSource.str() );
program->addShader( frag );
program->addShader( vert );
// add shader to stateSet
sset->setAttributeAndModes( program, osg::StateAttribute::ON );
// add uniform variable
osg::Uniform *var = new osg::Uniform("MATERIAL_COLOR", 
osg::Vec4(1.0f,1.0f,0.0f,1.0f));
sset->addUniform(var);





Code:

// Vertex Shader

void main()
{
gl_Position = ftransform();
gl_ClipVertex = gl_ModelViewMatrix * gl_Vertex;
}


// Fragment Shader

uniform vec4 MATERIAL_COLOR;

void main()
{
gl_FragColor = MATERIAL_COLOR;
}




By the way, I know I'm not using reference pointers :? but this shouldn't be a 
problem in this little example.

... 

Thank you!

Cheers,
Clemens[/code]

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=50349#50349





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to