Hi,
I spent the whole day chasing a weird memory leak on my GPU.
The following code is part of a (not working well) FBO render solution.
Code:
#include <osg/CameraNode>
#include <osgViewer/ViewerEventHandlers>
void foo()
{
osg::ref_ptr<osg::Camera> c = new osg::Camera();
c->setCullingMode(osgUtil::CullVisitor::VIEW_FRUSTUM_CULLING); // Disable
SMALL_FEATURE_CULLING
c->setComputeNearFarMode(osgUtil::CullVisitor::DO_NOT_COMPUTE_NEAR_FAR);
c->setClearColor( osg::Vec4(1.0, 1.0, 1.0, 0.0) ); // default white
c->setClearMask(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
c->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
c->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT);
c->setRenderOrder(osg::Camera::PRE_RENDER);
osg::ref_ptr<osg::Group> topg = new osg::Group;
topg->addChild( c);
osgViewer::Viewer viewer;
viewer.setSceneData(topg);
viewer.realize();
viewer.frame();
}
int main(int argc, char* argv[])
{
{
{
foo();
}
}
return 0;
}
When I run this with dDebugger I get memory leaks.
Call stack:
>
> osgViewer::GraphicsWindow::makeContextCurrentImplementation -
> osg55-osgViewerd.dll
> osgViewer::GraphicsWindow::makeContextCurrentImplementation -
> osg55-osgViewerd.dll
> osgViewer::GraphicsWindow::makeContextCurrentImplementation -
> osg55-osgViewerd.dll
> osgViewer::GraphicsWindow::makeContextCurrentImplementation -
> osg55-osgViewerd.dll
> osg::LineSegment::start - osg55-osgd.dll
> osgViewer::GraphicsWindow::makeContextCurrentImplementation -
> osg55-osgViewerd.dll
> osgViewer::GraphicsWindow::makeContextCurrentImplementation -
> osg55-osgViewerd.dll
> foo - osg_viewer_leak_test.cpp, line 22
> main - osg_viewer_leak_test.cpp, line 31
> __tmainCRTStartup - crtexe.c, line 597
> mainCRTStartup - crtexe.c, line 413
> RegisterWaitForInputIdle - kernel32.dll
>
These are two render buffers and one FBO
when I change the
Code:
c->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT);
from FRAME_BUFFER_OBJECT to FRAME_BUFFER ->
Code:
->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER);
No leak occurs.
Win XP Pro, SP 2, GeForce GTX 285, Driver 191.07
gDebugger 5.2.1
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=28363#28363
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org