<div dir="ltr"><div><div>HI Garth,<br><br></div>I'd use a RealizerOperation.  Have a look at the osgvolume example to an example of using a RealizerOperation to get information from the graphics context.<br><br></div>Robert.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 30 September 2015 at 03:49, Garth D <span dir="ltr"><<a href="mailto:garthy_gso@entropicsoftware.com" target="_blank">garthy_gso@entropicsoftware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
I was wondering if anyone has been successful in using the NVX_gpu_memory_info extension with OpenSceneGraph, and the best place to call glGetIntegerv to get the associated values.<br>
<br>
Details on the extension here: <a href="https://www.opengl.org/registry/specs/NVX/gpu_memory_info.txt" rel="noreferrer" target="_blank">https://www.opengl.org/registry/specs/NVX/gpu_memory_info.txt</a><br>
<br>
I'm using Linux, OSG 3.2.1, and a card that supports the NVX_gpu_memory_info extension.<br>
<br>
I have tried querying the current and total memory using GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX and GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX, and in each case but one, the values reported back are zero.<br>
<br>
The only success I have had thus far has been querying the values via an osg::Operation set with ViewerBase::setRealizeOperation() on my viewer (osg::Viewer). The values returned appear to be correct. This allows me to get the correct values *once* at the start of the program. Unfortunately I need to query them periodically, and I have been unable to do this.<br>
<br>
So far, I have tried hooking the calls into:<br>
- An osg::Camera::DrawHandler, set via osg::Camera::setInitialDrawCallback().<br>
- An osg::Node::NodeHandler, hooked into the root node via osg::Node::setUpdateCallback.<br>
- An osg::Drawable::DrawCallback, hooked into a dummy chain off the root of: osg::Node -> osg::Geode -> osg::Geometry (osg::Drawable), via osg::Drawable::setDrawCallback.<br>
- An osg::Drawable::CullCallback , hooked into a dummy chain off the root of: osg::Node -> osg::Geode -> osg::Geometry (osg::Drawable), via osg::Drawable::setCullCallback.<br>
- An osg::Camera::DrawHandler, set via osg::Camera::setFinalDrawCallback(). Only partly-tested due to a race-condition that occurs in my code, but appears to fail.<br>
<br>
I have experimented with osg::GraphicsContext::makeCurrent() with each.<br>
<br>
Can anyone suggest a better place to hook these calls into? Or alternatively confirm that they have the extension working with one of the above, so I can change or experiment with my existing setup to try to make it work?<br>
<br>
Cheers,<br>
Garth<br>
_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
</blockquote></div><br></div>