How can we have a single VRAM footprint over multiple contexts/windows/views/camera in a multi-thread safe way?

67 views
Skip to first unread message

Alexandre Vaillancourt

unread,
Sep 29, 2020, 11:39:41 PM9/29/20
to OpenSceneGraph Users
Greetings. 
 
Using OSG 3.6.3, we have experimented with the 'osgwindows' example, loading a test model and observing the VRAM usage. 

We saw that having two graphics context, set to each camera of the two windows (as in the example) has twice the VRAM footprint usage compared to using a single graphics context, camera and window.
 
Is there a multi-thread safe way to only have a single VRAM footprint usage, using two graphics contexts/cameras/windows ?
 
We have tried "sharing" the first graphics context to the 'traits->sharedContext' of the second window. 

This seems to have given us the the desired effect of single VRAM footprint usage, but any multi-threading model seems to be unstable, not functional.
 
Thank you!

- Vaillancourt

OpenSceneGraph Users

unread,
Sep 30, 2020, 12:19:14 PM9/30/20
to OpenSceneGraph Users
Hi Vaillancourt,

The OSG does not provide thread safe sharing of contexts, and OpenGL itself doesn't provide it either, so even if we attempted to mutex lock all access to GL objects that multi-threaded nature of graphics would step around locks we attempted to add.  If you want to share contexts then you'll need to use single threading.

With the VSG Vulkan objects are per logical device so you can share objects on the same hardware in a more user controlled way, one still has to take care because the objects aren't generally safe to read/write to one has to use explicit synchronization when managing objects to avoid threading collisions.  The VSG and Vulkan have waaay lower CPU overhead so multi-threading is actually far less critical for performance, paradoxically as Vulkan is so much better at handling threading!

Robert.

--
You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to osg-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/osg-users/fec92607-7b68-4144-b480-5cd2c071283fo%40googlegroups.com.
_______________________________________________
osg-users mailing list
osg-...@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

alexandre.vai...@gmail.com

unread,
Oct 13, 2020, 4:36:08 PM10/13/20
to OpenSceneGraph Users
Hi Robert, thanks for the answer!

--Vaillancourt
Reply all
Reply to author
Forward
0 new messages