Failure going full screen with six monitors on dual graphics cards

I have a Win7 Enterprise system with dual GTX780s on an i7-4960x, feeding seven monitors: one 1600x1050 via HDMI for the console on one card, and then three each 1920x1080 displays via DVI/DP. I have a DX9 renderer on each of the 1080 displays, and when I send them fullscreen, only three of the monitors, all on one card, will show an image; the other three are just black. Scrolling on the TTY console are three “Creating Resource” lines followed by three “Destroying Resource” lines (quoting from memory, exact text may differ).

If I go back to 31.2 x86, the problem goes away. It happens with every x86 release since then, and 33.3 x64 (didn’t try other x64s).

With some experimentation, I’ve found I can make the problem come and go with tweaking some settings, such as setting the fullscreen res to 1920x1080 instead of “As Desktop”, or using the Device node (which is very poorly documented) in certain ways. But here’s the kicker, that’s only with some cheap Gateway test monitors - with six new 55" Christies, there’s nothing I’ve found to get them all to work.

There is some other odd behavior: after I load a patch that I saved with all six renderers explicitly set to 1920x1080, some of them in Herr Inspektor show as fullscreen set to 1024x768. Sometimes when I try to get them to go fullscreen, some of the ones that don’t work show actual backbuffer sizes of 1600x1050, the console monitor res. But other times they all show the correct backbuffer sizes of 1920x1080 and still three of six (on the same card) are blank.

And it is not the card; I can repeat this on another system from a different vendor with different make GTX780s. And by moving the desktop arrangement of monitors into different configurations I can move which card comes up with blank displays. So it is a software issue, I expect something to do with monitor handshake handling.

Any and all help greatly appreciated - this is a total show-stopper. I could just use 31.2, but even though it works, the framerate oscillates between 60 and 25 fps for very visibly jerky motion, while 33.3 (when it works) hits a perfect smooth 60.

Oh, and I tried pulling the console monitor so there were just the six 1080s, three each card. Same problem.

And one other data point: when it is going to work, the six displays will sequentially go black, and then the images will all appear; when it is going to fail, the six displays will sequentially go black, and then sequentially briefly flash the image on every monitor, but then only three come up with images.


Have you tried nvidia surround, grouping three outputs per card, so you end up with only 2 renderers instead of 6 (omitting the control monitor)?

Interesting idea, I’d have to remap the images (it’s a 2Wx3H arrangement, and I believe surround only does 3x horizontal on non-Quadra cards) but it’s worth a shot. Thanks bjoern!

i would look on dx11 as an option

Checked the release notes since 31.2, and saw that 32.0 changed the default renderer behavior to shared textures being turned on. By starting vvvv 33.3 with the /dx9 switch, things seem to work correctly again. So the problem seems to be connected to renderers with shared textures going full screen.

And as confirmation, running 31.2 with the /dx9ex switch causes the problem to happen.

I’ll see if I can whip up a simple patch that demonstrates the problem with fewer monitors.

@bjoern - turns out nVidia surround only works up to five monitors at once with two cards, at least with the drivers I have, 344.48.

@antokhio - Yes, that was my next step, but as I don’t have time to convert all my sub-patches to dx11 I was going to try going dx9->dx11 texture for the last render.