using 2 graphics card in windows

i’d like to make an opengl program using 2 graphics card in 1 pc in windows.

actually, i’d like to run two opengl threads having each own rendering context to take advantage of two graphics card simultaneously.
i mean that i render one image in 1st monitor and render another image in 2nd monitor simultaneously.

but, i don’t know how to use secondary card.

Could you give us some advices about this?

If it is possible, i’d like code level explanation.

my configuration is like follows.

first. GeForce4 Ti 4600
secondary. GeForce2 Mx / Mx 400 (PCI)

Thank you in advance.

It’s impossible - believe me I’ve tried.
You have 2 options:-

  1. Get a dual head graphics card.
  2. Have opengl running in one window on the primary card (which is always the agp), and have direct3d running on the secondary card (the pci card).

That’s my conclusion, after many months of research.
It’s terrible, but true.

Oops… how about implementing opengl program in linux?

Dunno about linux. I expect it deals with the whole 2 card thing far better than windows…like everything else, according to lots of people…I can’t stand it myself, it’s a pain to install/use - I like a single standard, and ms windows is the obvious choice, simply because of the size of the user base.
But hell, that’s just one guys opinion.

Originally posted by knackered:
I can’t stand it myself, it’s a pain to install/use

[no flame intended]
That’s complete nonsense, try Mandrake and you’ll see that it’s easier to install than XP and it isn’t hard to use either.

(and my current Linux from Scratch system is also not hard to use, it’s actually very easy)
[/no flame intended]


[This message has been edited by richardve (edited 03-08-2002).]

Bought the last version of Mandrake…yes, I actually paid money for the piece of sh*t.
Never managed to get the nvidia drivers installed - there were suggestions that I “build the kernel” again…unbelievable.
I own a Turtle Beach SonicFury sound card, too - one of the best sound cards from about a year ago - none of the linux drivers worked with it. Now, even default windows 98 manages to get the sound card to work normally, so what’s linux’s excuse?
To say that it’s easier to install than xp is quite ridiculous. XP is totally professional, totally streamlined, has a **** load of drivers already in its library, and works every time on all the pc’s I’ve built and installed it on.
As you have probably gathered, the £70 I paid for that home project of an operating system has somewhat ‘coloured’ my opinion of linux.
This is from a man that programmed on unix for 3 years - so if I can’t get it set up properly, then what chance does an average user stand?
Oh, and those gui’s that come with it, gnome and kde, are horribly ugly, cumbersome, etc. They look about the quality of the DOS gui that comes with Symantecs Ghost utility.
This is really off topic…so I’ll stop now…I’m a bitter man, very bitter.

[This message has been edited by knackered (edited 03-08-2002).]

Sorry to the original author … but knackered:
So the XP distribution includes a truckload of drivers, huh? Well, great achievement, I must confess.
Linux got some nice dynamic device driver loading stuff now, the command is called insmod and it solves all the problems in the world, including famine. If your hardware vendor supports Linux, of course.

Okay. i got correct device info using EnumDisplayDevices ().

let’s go to the next stage.

How can we make opengl rendering context with secondary card?

i guess CreateDC may help.

but it seems not to work.

Could you give me some advices about that?

Thank you so much.


Very quick offtopic and last reply about this:

  • You don’t have to recompile your kernel, just install the kernel source (2nd CD) and you’ll be able to compile those NVIDIA drivers without any probs
  • If you want a distribution with good hardware support, use Suse (7.3)
  • If you want a more professional looking distribution, use Suse (7.3)
  • The Mandrake installer is more easy than the one from XP
  • Gnome 1 and 2 are indeed horrible and ugly
  • KDE 1.x and 2.x are indeed horrible and ugly
  • I don’t like them either…
  • …until I saw how KDE 3.1 is going to look like: nice vector icons, new default icons, animated folder icons, xrender support (hw alphablending), no stippled icons anymore, more responsive, etc.
  • Let’s hope there will be a nice style and theme too for KDE 3.x.
  • X sucks and is slow, have to live with that for now (hurray for DirectFB or Berlin)
  • Please remember that development of KDE started only 5 (?) years ago, the Windows UI started much longer ago.
  • Next year, KDE will look even better, and hopefully it’ll also be possible to use DirectFB or Berlin instead of XFree86.

Flames, replies and other nice messages can be send to since this is indeed waaaaaaay offtopic…
(and that’s also a good reason for checking my spam adress… which I haven’t done since ages)

// -----------------

About the muliple monitors:

Further I don’t know anything about using 2 cards and OpenGL under Windows.
Sorry, and also sorry for going offtopic.
(shame on me!)

Re: linux - horses for courses.
Re: 2 card opengl - as I said at the beginning, don’t bother trying, as it’s impossible.

I always read these threads about multi monitors but never answered since I havent experimented with them, so let me make a suggestion:

Install a couple of identical cards, enable expanded desktop, create your first window somewhere in the area of monitor 1, and second window somewhere in the area of monitor 2.

I say this because I have an ancient document for NVidia driver version 6.50 and it talks about Win2000 and multimonitor support. It doesnt say if hw accel will be on however.


As I say, I’ve tried everything - including that one, vman.
I’ve always tried it with nvidia cards, including the following:-
pci tnt2 + agp geforce2 mx
pci tnt2 + agp tnt2
pci geforce2 mx + agp geforce2 gts
pci geforce2 mx + agp geforce3 ti500

None of them accelerate (or even software emulate) opengl on the secondary card.
It just doesn’t work, I’ve tried everything - scoured the internet for answers, found the same thing over and over again…it’s impossible.
There’s even a statement about Java3d (which uses opengl by default) that it doesn’t work on a secondary card. This indicates that the people who created java3d (on windows, anyway) have tried to get it to work, but failed.
I’m just trying to save this guy some of his precious time - god knows I’ve waisted enough of my own on it…all because NVidia neglect to give a definitive answer to the question: Does opengl work on a secondary card…I expect they make a few quid out of the people that buy agp and pci versions of their card, believing they may get them both to work with opengl simultaneously.

i’d just like to know how i can make openGL rendering context for testing multi -support at least with software level not hardware.

Also, i got a mail from nvidia.

Oops, sorry. I just talked to someone and the shipping driver won’t support
acceleration across heterogenous cards. That is, you can accelerate the
primary, but not the secondary. All should work as I mentioned if both
cards are of the same type.

Our next driver will support what you want, but that won’t ship for many
months (summer some time).

Thank you for you all help.


That is SUCH good news!
Can’t wait for the summer, then…

I’m am currently doing this sort of thing with Radeon 8500 AGP and Radeon PCI installed. So evidentenly ati’s drivers do this currently.

Am I right if I assume that the only tricky part - apart from driver issues - is convincing the OS to open the two windows on different displays? I’d imagine it would be pretty straight forward after that … create rendering contexts and start switching around ?

The way to get windows to actually ‘use’ 2 cards is the following (nvidia):-

  1. Uninstall your current drivers.
  2. Put the pci card in (leave agp slot empty), and set the pci card to be the primary card in the BIOS.
  3. Start up windows, and install the drivers.
  4. Shut machine down, and insert agp card too.
  5. Start up windows, and install the drivers AGAIN.
  6. Restart machine.
  7. In display properties, tell windows to “expand my desktop over this monitor”.

That will get you the 2 cards working - but opengl…{takes deep breath}…will not…work…on…secondary card {drops to his knees}

Originally posted by knackered:
That will get you the 2 cards working - but opengl…{takes deep breath}…will not…work…on…secondary card {drops to his knees}

Meaning that:

  1. you cant create an RC on monitor #2
  2. you can but OpenGL will be running on card #1 in software/hardware and monitor doesnt matter?

I assumed that opening a window, any window on the second monitor (connected to card #2) means that its GDI stuff, Direct3D stuff and GL stuff is taken care of by card #2.
Seems simple enough to me until user moves window to screen #1. Is there anything about this in GL 2.0? Some new gl calls for selecting card would be nice to have. Yes I know, I dont have a clue about the complexity of this problem, but would like to know nonethless.

You need to turn on advanced multimonitor support in the control panel.

  • Matt

Err…say what?