IDirect3DImpl_EnumDevices only enumerating IID_IDirect3DTnLHalDevice

David Hedberg david.hedberg at
Wed Sep 5 10:05:19 CDT 2007

I've implemented a small test here, but to be honest I'm not really
sure what to test for :)

The current test only tests what the game in question seems to rely
on, which is that TnLHalDevice should never be the only device
enumerated by IDirect3D7_EnumDevices.

In addition to this, I think it's "reasonably possible" to make two
additional assumptions, which is that RGBDevice is always and
enumerated, and that if there is a TnlHal device, a Hal device is also
present. Should I add such tests based on my assumptions (and limited
test runs) only?


On 9/2/07, Stefan Dösinger <stefandoesinger at> wrote:
> Am Sonntag, 2. September 2007 14:15 schrieb David Hedberg:
> > While this works as a "fix", it's obviously not a good one. In my
> > (somewhat limited and at the moment not doublechecked) understanding,
> > windows "always" returns (at least) two devices, one reporting T&L
> > capable and one not. So I am wondering how one would implement a
> > proper fix for this in wine.
> It is quite likely that windows enumerates more than one device, but you have
> to keep an eye on the direct3d interface version. IDirect3D1 enumerates other
> devices than IDirect3D7, which is pretty tricky. IDirect3D7 only has HAL and
> TnLHal I think, others have HAL, TnLHal, MMX, RGB, Ramp. IDirect3D (1) does
> NOT enumerate the REF device.
> What you could do is to add a test in dlls/ddraw/tests/d3d.c for this. The
> test could enumerate the devices, and verify that if the TnlHal device is
> enumerated, HAL is enumerated too, or something like that, depending on what
> Windows really does.
> You've run into a pretty nasty and long-lasting problem here, a game that
> breaks with certain advertized or not advertized capabilities.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ddraw-tests-Check-deviceGUID-of-enumerated-devices.patch
Type: application/octet-stream
Size: 2517 bytes
Desc: not available
Url :

More information about the wine-devel mailing list