Selecting between Dual GPUs from different vendors

Hello,

I’m relatively new to using OpenGL. I currently have an NVIDIA GeForce 8400 GS and ATI FireGL V3100 in my machine, with a monitor running off of each one. Whenever I create an OpenGL context, it uses the driver for whichever graphics card the primary monitor is connected to. Is there any simple way to select which driver/GPU gets used without switching which monitor is the primary one?

I’ve read up on GPU affinity masks, but have read that NVidia’s extension only works with Quadro cards. I then attempted to use some of the functions found in here: http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt but when I go to compile the function names come up as “identifers not found.” What do I need to do/include to be able to use these functions?

Thanks in advance!

If you’re under Windows, it’ll be during your context creation - I think you can ask for a specific device. If this is handled by a library like GLUT, SDL or GLFW it gets more difficult.

You need to get function pointers for the functions defined in that extension… or just use GLEW

http://www.opengl.org/wiki/Getting_started#OpenGL_2.0.2B_and_extensions

… but wouldnt it be supported (and thus exposed) only by ATI driver context?
How to ensure creation of context backed by ATI driver?
Chicken and egg problem?

I would imagine you need to have 2 ATI video cards in your system.
So you just create the GL context and the extension should be present in the string returned by wglGetExtensionsStringARB(hdc).
You can even use GLEW to check if the extension is present

if(wglewIsSupported(“WGL_AMD_gpu_association”)==TRUE)
{
it is supported
}

Yeah, but OP has NV and ATI, so it gets kinda tricky.

I had interest in this field some months ago and did some research what can be done
you can see the info i posted on the matter:
http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=288237#Post288237

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.