Fullscreen with several dedicated devices

Hi,
i’ve found out that the only way to get multiple renderers in fullscreen mode (on different devices) is to switch to fullscreen and back as many times as there are devices. I’m using the device(manual) node for this
I have four of them (3 beamers and a control screen).

When i start vvvv (currently still using v40b21), the Device(Manual) reports “reference count 0” for each of the devices.

I send all renderers (EX9) into fullscreen at the same frame. The result is that one device (seems 2b random) reports “reference count 1”, the others are still at “reference count 0”. If I quit fullscreen mode (for all of them) and do it again, I get another one reporting “reference count 1”, and so on.

I’ve written a small “brute force” patch to do it and it works fine (except some flickering).

Before I’ve tried to implement a delay without good results (some of the screens usually remained black).

So I’d like to know if there is a way to do it right :]
I would like to get fullscreen mode on several dedicated devices at once.
May be this is solved in the newer releases (can’t use them now cause of a reported bug with MySQL-Database node, which might be fixed in v45b24.1, but considering abbandoning this node). Is there really the need to place renderer windows at the screen positions and device (-1) in settings? Is this still the best way? (I’d appreciate a detailed tutorial on this topic!)

The other question I have is about getting several tripleHeads2Go into fullscreenmode at max resolution. For now I need to go fullscreen, get out, set resolution (XML) and go fullscreen again. Can this be done faster and less complicated in newer releases, or may be i do it wrong?

Running on Win7, GTX-275 (2x)

helo ruth,

yes, the default way to go fullscreen on multiple monitors is still placing the renderers on the respective monitors and then send them fullscreen. thats the way it works reliably. can you describe why this way is not suitable for you? the manual-device-node way is rather untested…

concerning the triplehead…whats the actual problem there? is the renderer missing the max-resolution on startup? for this you could try playing around with the
/dda X
commandline parameter. X should be set to the directX device ID your tripplehead is connected to so that vvvv initializes with resolutions for renderers with this device on startup.
e.g. you have a dualhead card set to dualview. use the first monitor (device 0) to patch and have the triplehead connected to monitor two (device 1). try starting up
vvvv.exe /dda 1
and see if that makes a difference.

hi joreg,
thank you for the detailed info.
we have a setup, which runs in several modes, depending on what we need, so, sometimes we use tripleHeads and sometimes we don’t, therefore the number of devices changes. i have used the device (manual) node, because i didn’t want to calculate windows positions for that (can’t just save with renderer windows positioned somewhere, need to use XML for that). but this isn’t a problem.
thank you again!

devices (manual) would be nice to have pin input for boygroups… i could only set it via inspektor

@ruth
you know of Window (Windows) and ScreenInfo (Windows) that should help you position your renderers just before putting them fullscreen

@ggml
not sure what you mean?!

i mean render settings for non-identical clients.
here is an example i encounted recently:
a boygroup setup with two clients, client1 has 6 fullscreens, client2 has 2 fullscreens, server is a laptop with no fulscreens.
for setting up fullscreens to specific outputs, safe if one projector doesnt turn on/is not detected by windows:

  • i spread the devices(manual) … index 0 to 5, and assigned them to 6 renderers via device pin
  • boygrouping them, it worked for client1, but it confused client2 when going fullscreen
  • creating 2 devices worked for client2 but was not enough for client1
  • not being able vary the number of devices in different clients, i had to build custom patches for each client and creatnode them locally
    it would have been easyer to control the number of manual devices clientwise (via pins)…
    hope this makes sense

huh, sounds like a challenge. boygrouping was never tested nor designed with such setups in mind.

still i think it should be possible more simple, without any manual devices:

  • on the server create 6 renderers and boygroup them.
  • make a spread of window-positions for renderers to be placed on the clients so they go fullscreen on their desired outputs. that should be basically a spread of 6 2d-vectors (since the first two of which presumably can be the same on both clients)
  • now use the individual boygroup-ids of each client to getslice the respective window-positions of that spread and feed them to a Window (Windows) to have the renderers placed correctly on the clients outputs.
  • last make sure that of the 6 renderers only the first two get their fullscreen pin set to 1 on the second client (again by checking against their boygroup id)

i just patched that in my mind, and it worked…