[osg-users] Multiple GPU/monitor issue on Windows 7/NVidia

69 views
Skip to first unread message

Frederic Bouvier

unread,
May 19, 2012, 11:03:06 AM5/19/12
to OpenSceneGraph Users
Hi,

I am pretty sure it has been discussed before, but I am unable to
retrieve the right thread, so ...

I have a dual card setup, each driving a single monitor. When I start
osgViewer, the viewer span on both screen, an initial image is displayed
on both too, but only the primary display is updated when I change the
camera view with the mouse. Clicking on the frozen screen and then on
the live screen update the image on the frozen screen but only for one
frame.

I have the last WHDL NVidia driver. Cards are 2 GF GTX470 and I tried
with and without SLI enabled. The same problem occurs in a multiscreen
setup of FlightGear.

Any idea ?

Regards,
-Fred

_______________________________________________
osg-users mailing list
osg-...@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Paul Martz

unread,
May 19, 2012, 1:25:37 PM5/19/12
to OpenSceneGraph Users
I thought this was an old issue already fixed. Are you saying this is still
occurring on the current OSG trunk? What versions of OSG have you tested?
-Paul

Frederic Bouvier

unread,
May 20, 2012, 4:10:42 AM5/20/12
to OpenSceneGraph Users
Hi Paul,

I should have stated that I am using OSG 3.0.1. Is there a fix in a development release ?

Regards,
-Fred

----- Mail original -----
De: "Paul Martz" <pma...@skew-matrix.com>

Frederic Bouvier

unread,
May 20, 2012, 5:26:21 AM5/20/12
to OpenSceneGraph Users
Paul,

I see the same issue with 3.1.2

Regards,
-Fred

----- Mail original -----
De: "Frederic Bouvier" <fredl...@free.fr>
À: "OpenSceneGraph Users" <osg-...@lists.openscenegraph.org>
Envoyé: Dimanche 20 Mai 2012 10:10:42
Objet: Re: [osg-users] Multiple GPU/monitor issue on Windows 7/NVidia

Wojciech Lewandowski

unread,
May 21, 2012, 3:47:53 AM5/21/12
to OpenSceneGraph Users
Hi, Frederic,

I was testing similar situation on GeForces more than 2 years ago (I left the building in the meantime) and honestly don't remember if we have found 'an always working' recipee for this problem. All I remember we were somehow able to use multiple cards with multiple monitors but honestly I am not sure if this was just luck with drivers or we did some extra tricks (we tried several workarounds back then). This problem is probably related to Windows DWM screen update scheme vs NVidia optimizations and Windows 7 design that primary card renders all OpenGL contexts so second card is practically not used. I could be wrong but I believe we had most success with NVidia surround where we set up single Window spanning all monitors and this window was split into 3 or 4 viewports matching particular monitors.

So I really don't have a solution but would recommend to test various options and select the best one. 

- Test single card dual monitor output vs dual card sli dual monitor vs dual card / dual monitor. I remember that after this test we realized it does not make sense to buy 
second card which is practically not used. SLI mode seemed to not bring more performence in our scenarios (this may vary for you of course). So we realized that unless we do not want to use more than 2 monitors we will not buy another card. And even with more monitors it would make sense to buy powerful card as primary and weak one as secondary adapter because it will be practically used as passthrough for graphics rendered on first one. For Surround mode it may be  neccessary to use the same cards though, (don't remember exactly). Above problem only affects GeForces. Quadros provide extension which can be used to assign GPU to window. http://developer.download.nvidia.com/opengl/specs/WGL_nv_gpu_affinity.txt Unfortuantely NVidia chose to not provide it for GeForces. I also believe that Radeons have introduced similar extension a year or two ago.

- Do above tests with NVidia surround. 

- Try playing with NVidia control panel settings (threading optimization / swap method)

And certainly must have options are:
- Aero off / fullscreen mode to avoid DWM quirks

HTH,
Wojtek Lewandowski

2012/5/20 Frederic Bouvier <fredl...@free.fr>

Frederic Bouvier

unread,
May 23, 2012, 4:41:29 AM5/23/12
to OpenSceneGraph Users
Hi Wojciech,

Thank you for taking the time to reply to my question. I made some progress. First I use only one monitor per GPU because I need color calibration for my photography work and the Windows architecture has only one LUT per card. But I temporarily hooked up the second monitor to the first card and activated SLI.

The same issue occurs in osgViewer : only the primary display is refreshed.

But FlightGear has a handy configuration system where we can setup windows/graphic contexts and cameras separately. As you suggested, when I create only one window that span on both monitors (on screen 0) and bind the two cameras to two viewports of this window, both viewports are updated.

I have a vague recollection that my setup with 1 monitor per GPU and 2 graphic contexts used to work with a 2.9 OSG. Unfortunately FlightGear has evolve in a way that it requires 3.0 but I will try to get osgViewer work with an older version.

I also remember seeing submissions on the way swapping is done in OSG. Maybe there is something related

Regards,
-Fred

----- Mail original -----
De: Wojciech Lewandowski


Hi, Frederic,


I was testing similar situation on GeForces more than 2 years ago (I left the building in the meantime) and honestly don't remember if we have found 'an always working' recipee for this problem. All I remember we were somehow able to use multiple cards with multiple monitors but honestly I am not sure if this was just luck with drivers or we did some extra tricks (we tried several workarounds back then). This problem is probably related to Windows DWM screen update scheme vs NVidia optimizations and Windows 7 design that primary card renders all OpenGL contexts so second card is practically not used. I could be wrong but I believe we had most success with NVidia surround where we set up single Window spanning all monitors and this window was split into 3 or 4 viewports matching particular monitors.


So I really don't have a solution but would recommend to test various options and select the best one.


- Test single card dual monitor output vs dual card sli dual monitor vs dual card / dual monitor. I remember that after this test we realized it does not make sense to buy

second card which is practically not used. SLI mode seemed to not bring more performence in our scenarios (this may vary for you of course). So we realized that unless we do not want to use more than 2 monitors we will not buy another card. And even with more monitors it would make sense to buy powerful card as primary and weak one as secondary adapter because it will be practically used as passthrough for graphics rendered on first one. For Surround mode it may be neccessary to use the same cards though, (don't remember exactly). Above problem only affects GeForces. Quadros provide extension which can be used to assign GPU to window. h ttp://developer.download.nvidia.com/opengl/specs/WGL_nv_gpu_affinity.txt Unfortuantely NVidia chose to not provide it for GeForces. I also believe that Radeons have introduced similar extension a year or two ago.

Robert Osfield

unread,
May 23, 2012, 4:49:24 AM5/23/12
to OpenSceneGraph Users
Hi Frederic,

On 23 May 2012 09:41, Frederic Bouvier <fredl...@free.fr> wrote:
> I have a vague recollection that my setup with 1 monitor per GPU and 2 graphic contexts used to work with a 2.9 OSG. Unfortunately FlightGear has evolve in a way that it requires 3.0 but I will try to get osgViewer work with an older version.

I don't recall any changes that should effect the support for multiple
contexts between 2.9.x and the present day, it all should work as
before. I also don't recall any reports of problems with
multi-context support so I would be surprised if they has been an OSG
specific regression. More likely is that drivers/OS have changed in
way that is causing a regression.

There has been a shader related fix since 3.0.x which can be found in
3.1.x and svn/trunk that can effect some programs on NVidia, this
isn't related to context though. This won't be related to
multi-context support but might be worth trying rather than trying to
use older versions of the OSG.

Robert.
Reply all
Reply to author
Forward
0 new messages