DirectX Legacy Support

Started by
3 comments, last by Akaramu 15 years, 5 months ago
Hiya Just a general enquiry as I've not really used DX much at all in my time as a programmer. I'm curious how legacy support for DX hardware features works with newer cards. If a game written with DX7 wants to check the device for Hardware T&L, will the card respond correctly? Is it because the driver maintains support for responding to the DX7 API? I was just pondering the result of games getting older and potentially code that was written to lock features/access based on failed device checks. If anyone can shed some light on this it would be very helpful, thanks! [Edited by - Akaramu on November 11, 2008 6:06:12 AM]
Advertisement
Quote:Original post by Akaramu
Hiya

Just a general enquiry as I've not really used DX much at all in my time as a programmer. I'm curious how legacy support for DX hardware features works with newer cards. If a game written with DX7 wants to check the device for Hardware T&L, will the card respond correctly? Is it because the driver maintains support for responding to the DX7 API?

I was just pondering the result games getting older and potentially code that was written to lock features/access based on failed device checks. If anyone can shed some light on this it would be very helpful, thanks!
Yes, the card will respond correctly. The game will still use the D3D7 interfaces. I'm not sure what happens at the driver level, either a DX7 version of the driver exists, or more likely D3D does some stuff to act like a DX9 app to the driver.
Generally speaking compatability works very well for Windows - both the MS and IHV provided code does a good job.

From memory, each version of Windows has its original or "native" API version - D3D8.1 (?) for WinXP's initial release, 9.0c for WinXP SP2, 10.0 and 9.0 for Vista, 10.1 for Vista SP1, 11 for W7 etc..etc..

Under the covers older versions are mapped via these newer API's - so on WinXP all D3D7 and earlier code should be re-mapped via the D3D8 runtime. Thus the IHV's only really need to provide a driver for D3D8 and MS fills in the gaps.

Demirug is far more knowledgeable about this than me (it's been a while since I looked into the details) so maybe he can confirm [smile]


hth
Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ | MVP Profile | Developer Journal ]</small>

The remapping stuff works a little bit different.

The Windows XP driver model (which is the same that was used in Windows 2000) is based on a Direct3D 7 DDI (Device driver interface) and was extended for 8 and 9. Therefore every Direct3D 9 driver still contains all entry points for older DDIs. There were no needs to change the older runtimes.

For Vista the story changed a little bit. Drivers need only to support the new WDDM Direct3D 9 interface and in the case of Shader Model 3 hardware only a reduced set of entry points. All runtimes including Direct3D 9 share some common code to talk to this new driver interface. Direct3D 10 and up will use another driver interface.

But as long as the old software doesn’t depend on unspecified features in the Direct3D runtimes anything will be handled fine behind the scene.

Thanks very much for the info, much appreciated! :)

This topic is closed to new replies.

Advertisement