Multiply display adapters on Win32

  • Follow


Yes, I know, common question.  But I thought I'd check if anyone has come up 
with a solution with the passing of years.  ;)

Usually, this doesn't matter.  You create your window, and if it's wholy 
within the area of a display, then the correct driver gets used, 
particularly if its a dualhead card.

However, I've got a configuration where that doesn't work.  An onboard 
Radeon 9000/9100 as primary and a PCI Radeon 7000 as secondary to be 
precise.  Create a window on the 7000, and OpenGL uses the 9000/9100 driver, 
with the result being a framerate of about 4.

By programatically changing which is the primary display, I can get the 7000 
to use the 7000 driver.  However, I still can't get one app to use the 
correct driver for both displays simultaneously.

It _is_ possible to do this using DirectX, but I don't want to be 
maintaining two seperate renderers for our Windows and Linux products.  So, 
has anyone got any other ideas?

(I've, possibly foolishly, tried using the HDC of the display directly, 
rather than that of a window, and that gets all the way to wglMakeCurrent 
before failing.  Drat.  ;)

Cheers,

- Sam B


0
Reply Sam 6/29/2009 10:20:08 PM

On Jun 30, 12:20=A0am, "Sam Brown"
<subiNOS...@dslIMEANIT.pipexREALLY.com> wrote:
>
> (I've, possibly foolishly, tried using the HDC of the display directly,
> rather than that of a window, and that gets all the way to wglMakeCurrent
> before failing. =A0Drat. =A0;)
>

That's likely to be your problem. You *must* create a window
to use OpenGL.

--
<\___/>
/ O O \
\_____/  FTB.

http://www.topaz3d.com/  - New 3D editor for real time simulation
0
Reply fungus 6/30/2009 7:58:30 AM


"fungus" <openglMYSOCKS@artlum.com> wrote in message 
news:23241628-9486-4d80-8d44-aa2ffa12f8cc@i6g2000yqj.googlegroups.com...

> That's likely to be your problem. You *must* create a window
> to use OpenGL.

Yep, I know.  I created a window as well, set the same pixel format
on both it and the display (they both matched when I used ChoosePixelFormat)
and tried every combination of creating and setting the rendering context.
Nada, except for the usual using of the window for both.

I was trying to force GL to recognise that it needed to use the secondary's
driver.  Ah well, looks like it just isn't possible (and I know, more modern
cards do it implicitly anyway).  But looks like it's back to DirectX for 
this
one.  Drat.

- Sam B



0
Reply Sam 6/30/2009 6:43:38 PM

"Sam Brown" <subiNOSPAM@dslIMEANIT.pipexREALLY.com> wrote in message 
news:4f6dnVqpn_h9wdfXnZ2dnUVZ8g-dnZ2d@pipex.net...
>
> "fungus" <openglMYSOCKS@artlum.com> wrote in message 
> news:23241628-9486-4d80-8d44-aa2ffa12f8cc@i6g2000yqj.googlegroups.com...
>
>> That's likely to be your problem. You *must* create a window
>> to use OpenGL.
>
> Yep, I know.  I created a window as well, set the same pixel format
> on both it and the display (they both matched when I used 
> ChoosePixelFormat)
> and tried every combination of creating and setting the rendering context.
> Nada, except for the usual using of the window for both.
>
> I was trying to force GL to recognise that it needed to use the 
> secondary's
> driver.  Ah well, looks like it just isn't possible (and I know, more 
> modern
> cards do it implicitly anyway).  But looks like it's back to DirectX for 
> this
> one.  Drat.
>
> - Sam B
>
>
>

Just out of curiosity, what's the desire for 2 different adapters ? Most 
have had dual-monitor support for a long time now.

jbw 


0
Reply jbwest 6/30/2009 8:31:23 PM

"jbwest" <jbwest@acm.org> wrote in message 
news:4a4a761f$0$29140$6e1ede2f@read.cnntp.org...
> Just out of curiosity, what's the desire for 2 different adapters ? Most 
> have had dual-monitor support for a long time now.

It's for work, a rig provided by a customer.  It's got vanilla XPe on it, 
and
I'm not allowed to update any drivers or replace it with Linux (or I'd have
Gentoo on there like a shot ;)

They had a bunch of custom boards with the Radeon 9000/9100 chipset onboard,
and they added another display by sticking a PCI Radeon 7000 in it.  You can
tell that decision was taken by an accountant, can't you?  ;)

So, basically, my hands are tied.  If only they'd use a dualhead PCI and
ignored the onboard.  Ah well.

Cheers,

- Sam B


0
Reply Sam 6/30/2009 8:56:31 PM

On Jun 30, 10:56=A0pm, "Sam Brown"
<subiNOS...@dslIMEANIT.pipexREALLY.com> wrote:
> So, basically, my hands are tied. =A0If only they'd use a dualhead PCI an=
d
> ignored the onboard. =A0Ah well.

Have you checked the gpu association extension from AMD? At least with
the NVidia counterpart (gpu  affinity), you can query the cards and
restrict the GL context to them.


HTH,

Stefan.

--
http://www.eyescale.ch
http://www.equalizergraphics.com
http://www.linkedin.com/in/eilemann
0
Reply eilemann 7/1/2009 7:08:52 AM

Another problem could be the 7000 driver is just so old
that it can't dandle dual card configurations. This card
is from the Quake 1 / MiniGL era and the driver probably
hasn't been updated for ten years (apart from bug fixes).



--
<\___/>
/ O O \
\_____/  FTB.

http://www.topaz3d.com/  - New 3D editor for real time simulation

0
Reply fungus 7/1/2009 12:45:33 PM

<eilemann@gmail.com> wrote in message 
news:a7cc3512-5436-4577-88d8-bf959015b382@h8g2000yqm.googlegroups.com...
> Have you checked the gpu association extension from AMD? At least with
> the NVidia counterpart (gpu  affinity), you can query the cards and
> restrict the GL context to them.

Thanks, I didn't know that one!  Sadly, it looks like no.  No sign of
the extension string, and the driver only supports GL 1.3 anyway (the
extension needs 1.5 according to the spec).

Cheers,

- Sam B


0
Reply Sam 7/1/2009 7:51:54 PM

"fungus" <openglMYSOCKS@artlum.com> wrote in message 
news:d7ba31b0-3734-4523-8804-8622265a7684@c9g2000yqm.googlegroups.com...
> Another problem could be the 7000 driver is just so old
> that it can't dandle dual card configurations. This card
> is from the Quake 1 / MiniGL era and the driver probably
> hasn't been updated for ten years (apart from bug fixes).

Ohhh yeah, tell me about it.  Doesn't even have T&L, although
at least it's not using the mini client.

It _can_ do it, I did it today with DirectX 8.  It takes some
fiddling, and some juggling of HWNDs (which is basically the
access I've not got through WGL that I was trying to replicate
with my mucking about with HDCs earlier), but both cards were
using their own drivers and running at a good 200 fps (rather
than 4) just clearing the screen.

(Weirdly, DX8 is the only release I can do this trick with.  7
and earlier didn't have proper MM support, and 9 and upwards
seem to break it!)

I'd still prefer doing this under GL, but at least I've got some
way of doing it.  Cheers guys.

- Sam B


0
Reply Sam 7/1/2009 8:00:29 PM

8 Replies
137 Views

(page loaded in 0.128 seconds)

Similiar Articles:




7/13/2012 4:26:19 PM


Reply: