Multiple cards in one box.

I’m sure this has been asked before, but here it goes.

I know that in some systems (Win32 for one) there is the ability to install multiple cards in one machine. So that the desktop is spread across the different machines.

Is it possible to reference each of these cards individualy via OpenGL? So that one view could be displayed on one card, and another on another. Or maybe even have the two cards displaying totaly different scenes?

Thanks,

tbc++

For windows, there is no hardware acceleration when multiple cards are installed. Maybe acceleration only with the first one. I am sure about that for win98 and 2000, might be improved in XP ?

It looks like M$ wanted to limit GL vs. DX on this case.

There are some rare exceptions, dig around at this site, quite interesting one :
http://www.realtimesoft.com/multimon/guide/multimon_opengl.asp
http://www.realtimesoft.com/multimon/ogl/
Either way, you will have only one big GL window. It is up to you to draw separate rendering for each monitor.

Linux with X11 lets you do more fancy stuff, but I am not an expert at this.

I am not sure but isn’t it impossible to put more than one graphics card into a standard computer due to the fact that there is only one agp slot?

The systems I know about where one desktop is split across several monitors have only one card which has outputs for two monitors… then of course both will have OpenGL acceleration. Afaik there are nvidia cards around for that purpose.

You could use such a system and simply have one desktop split across two monitors, and have two OpenGL windows, configured so that one of them is visible on the left screen and one on the right. As each OpenGL windows has its own rendering context, you can use them totally independent… but performance will drop significantly compared to having only one OpenGL window.

Jan

There are PCI graphics cards, so you can have multiple monitors that way.

If all the cards are from the same vendor, it’s possible for the vendor to make it such that multiple OpenGL contexts can be opened on different screens.

Also, some vendors support “monitor merge” (which is the only way to do it on Win2K, I think) where two physical monitors make one virtual display.

If the only thing you need is two monitors, getting a single, dual-head AGP card seems like the easiest solution, though.

Originally posted by ZbuffeR:
http://www.realtimesoft.com/multimon/guide/multimon_opengl.asp
http://www.realtimesoft.com/multimon/ogl/

It says that you can move the window across monitors and stretch on multiple monitors???

I thought this was impossible, even with d3d.

Probably they are giving bogus info. I don’t trust that page.

How about in Linux anyone? I know that multiple cards can be used in one machine, because, for one, I have done it! But on top of that, seems like I heard of someone running Quake3 on five monitor setup.

Originally posted by V-man:
[b] [quote]Originally posted by ZbuffeR:
http://www.realtimesoft.com/multimon/guide/multimon_opengl.asp
http://www.realtimesoft.com/multimon/ogl/

It says that you can move the window across monitors and stretch on multiple monitors???

I thought this was impossible, even with d3d.

Probably they are giving bogus info. I don’t trust that page.[/b][/QUOTE]The architecture for OpenGL in Windows prevents several ICDs from running at the same time so, as jwatte said, one of the conditions for multicard scenarios to work is that all your AGP + PCI cards are from the same vendor (or if you have several ICDs from different vendors in the same binary, but I don’t see that happening any time soon).

Appian specialises in multicard scenarios. As you can see in this matrix , you have multiboard support, although only the Phoenix setup seems to support OpenGL. In the legacy page there are other multi-pci and agp+pci setups.

As a side note, I believe that in d3d you can move the window across monitors owned by different cards, but you have to recreate the device for the new monitor unless you want to suffer the penalty of a GDI blit (obviously that has other problems like each card having different capbits…). I forget if it works if the window spans two monitors.

It’s also interesting to note that once PCI Express comes out, you’ll not only be able to support multiple monitors with multiple graphics cards, but you can have two graphics cards each render half of one monitor. Or so says Intel.

Okay, here’s the basic idea. Lets say that you have program running in OpenGL that requires 20 rendering passes. It would make sense that there should be a way to let one card render 10 of those, and the other, the other 10. Then all the passes would be thrown into the accumulation buffer, and blended together.

Yes, I know that the bandwith from the PCI/AGP to the CPU is slow compared to the speed going the other way, but for rendering non real-time scenes. This might help.

Does anyone know if this sort of thing is possible in any OS? It seems that if you can send different data to different sound cards in one system, it should be able to be done with video cards as well.

Originally posted by DarkenedFetus:
It’s also interesting to note that once PCI Express comes out, you’ll not only be able to support multiple monitors with multiple graphics cards, but you can have two graphics cards each render half of one monitor. Or so says Intel.
I’d love to see that, but I’m not holding my breath. AGP 3.0 (8x) already talks about specification for multiple AGP ports in one board, but I’ve yet to see one. There’s not enough business for multiple high-speed gfx cards per motherboard to warrant spending the effort to build one.

PCI Express (AFAIK) has different versions of the ports too (x1 to x16 or so), and I’m not expecting many motherboards with multiple x16 ports for the same reasons as above. Chances are a little better here, as the ports are not exclusively useful for graphics, so server motherboards might have them for things like Infiniband or 10GigE adapters. I’m just not sure whether the graphics drivers will be able to handle these rare situations, but I hope they will.

On the other hand Alienware has announced a multi-card PCI Express-based system (http://www.alienware.com/press_release_pages/press_release_template.aspx?FileName=press_videoarray_0512.asp), even though they’re sketchy on the details of what they really do. Anybody got any details?

In any case, for interesting-sized systems (e.g. www.heyewall.de)) you will still need to use clusters and cluster-aware software, and if you do that anyway, one card per machine is enough.

Yours

Dirk

P.S.: This is dangerously drifting away from OpenGL, so if there is interest in this topic, we should move it to a more appropriate place, like www.vrsource.org.

Originally posted by jwatte:

Also, some vendors support “monitor merge” (which is the only way to do it on Win2K, I think) where two physical monitors make one virtual display.

This comes a little late but, what’s monitor merge?
Same thing as extended desktop?

Or is exented desktop what you get with a dual head card and the monitor merge what you get with multiple cards?

Originally posted by tbc++:
[b]I’m sure this has been asked before, but here it goes.

I know that in some systems (Win32 for one) there is the ability to install multiple cards in one machine. So that the desktop is spread across the different machines.

Is it possible to reference each of these cards individualy via OpenGL? So that one view could be displayed on one card, and another on another. Or maybe even have the two cards displaying totaly different scenes?

Thanks,

tbc++[/b]
http://openvidia.sourceforge.net/screenshots.shtml