8
$\begingroup$

Is it realistic to render a super-high resolution image over an array of 3 by 3 or 5 by 5 (for example) stacked screens? Could I do this by combining several different GPUs, or would the only way be to use a GPU per screen and simply divide the image to be rendered?

Ideally I'd like to be able to use fewer GPUs than screens. Even though one GPU is insufficient I'm hoping I won't need n GPUs for n screens.

If this is possible I'd also need to know whether this requires using the same make and model of GPU or whether unrelated ones could still share processing.

$\endgroup$
2
  • 1
    $\begingroup$ A good answer is predicated on knowing how the displays will be connected to the available GPUs (getting 9+ display outputs on a single computer isn't trivial) and the software responsible for your render. Of course it's possible to combine the processing power of multiple GPUs to solve your problem, but the devil is in the details of how the outputs are connected and how many computers are involved. $\endgroup$
    – rys
    Commented Aug 6, 2015 at 22:58
  • 1
    $\begingroup$ I found a blog post where someone was able to do it: rchoetzlein.com/website/multi-monitor-rendering-in-opengl @rys is right though. In order to get a solid answer we would need to know more details of your setup. $\endgroup$
    – RichieSams
    Commented Aug 8, 2015 at 0:39

1 Answer 1

3
$\begingroup$

Yes, it's certainly possible to do this kind of thing. First of all, you can typically connect 3 or 4 displays to each GPU, and (with an appropriate motherboard) you can have up to 4 GPUs per machine. That would give you 16 screens. With multiple machines, you could have even more.

Rendering to multiple displays from a single GPU is no big deal. You can create a single window that stretches across all the displays, render to it, and it should "just work".

Rendering the same scene on multiple GPUs is a bit trickier. One way is to create a separate rendering context on each GPU, and essentially repeat all the rendering—re-upload all buffers and textures to each GPU, and re-submit the draw calls to each one every frame. Another possibility is to use the built-in multi-GPU support in DX12, which allows you to manage several GPUs in one rendering context.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.