I have a voodoo2 card. How do i tell openGL to use my card to display?

Just create an OpenGL context and that will kick it out of ‘pass through’ mode. You also need to have the video from the voodoo2 go to a monitor ofcourse. There is no 3D in a window on that card.

You need to link to the 3Dfx OpenGL library of course, not the system opengl32 because the driver isn’t an ICD, only programmers can do this. As a user you can copy the 3Dfx opengl dll to the same directory as the application you want to run, and rename it.

There is a slight risk of clobbering the real system opengl dll if you have software which might move those around, otherwise just be careful and you should be OK doing this.

There are details I’ve intentionally left out, like what you need to rename the dll to. If you don’t know, you shouldn’t be doing this.

I am a programmer.

How do I create an OpenGL context that will kick it out of ‘pass through’ mode?
And how do I check if it is using my voodoo card?

It’s been a while (my voodoo2 is gathering dust in a drawer) you just do this the usual way with a pixelformatdescriptor. I’m not sure what the actual trigger is, I think it’s the make current on the context. Just do everything like you have a proper setup with an ICD and it will happen.

The only thing you need to do is link to the 3Dfx library, either by renaming it to opengl32.dll and stuffing it in the application directory (bad), or explicitly linking to it (better). The portable ‘right’ thing to do is dynamically load it based on selected options (best). QuakeII source was just released and carmack does a library load and binds all the glfunctions with a getprocaddress (macro GPA in the code) get that on id software’s site.

The libraries & headers used to be part of a dev kit and the dll shipped with the card and most games, glsetup etc. For the 3Dfx files look here, I can’t vouch for these:

If you send your desktop card’s video through the voodoo2 then the voodoo2 will just take over with full screen video. The other option is a two monitor setup with video from the voodoo2, unless you intentionally disable it you’ll get the 3Dfx splashscreen at the start, it’ll be pretty obvious when the card starts spitting out video.


This is bad old deprecated stuff.

Unless you need to serve that market or are just doing this for kicks you should throw out the voodoo2 and get a cheap NVIDIA or ATI & never look back.

That way you can develop with 3D in a window as an option against a real ICD and nobrainer portable code.

I think you are in my situation: not enough money and no AGP to get a new card… isn’t it?
Well, just for fun the voodoo2 it’s right.
I simply renamed the file 3dfxv2gl.dll (in system dir) to opengl32.dll.
No matter of what is best, etc… Your app will work with every card except with v2 that have not that file renamed. I think it’s good: dinamically linking the 3dfxv2gl.dll library is not so easy, and not so funny.
Renaming is easy!
PS: all other games will keep running fine, except if they request acceleration in window. For example, Q3ARENA looks for glide, if there is one a 3dfx card is present. Then if it is a voodoo2, it loads dinamically 3dfxv2gl.dll so keeping a copy in the system dir will be a good thing.


I suggest that you keep the original opengl32 dll in the system directory, but for specific programs, move renamed opengl32.dll file to the same directory as the programyou want to use the 3Dfx hardware.

I did a mistake: the dll is 3dfxvgl.dll … without that ‘2’.
Just reinstalled v2 drivers… new HDD !!!

… no new video card!

Thanks it works now. Only I found out that my onboard video card is faster than my voodoo2 card so I will not use my voodoo2 card anymore.