VOGONS


First post, by ratfink

User metadata
Rank Oldbie
Rank
Oldbie

I've never really understood directx compatibility so I'm wondering if someone can help.

Part of the reason I ask is that I want to understand which old rigs I actually need to ensure an optimal experience of older directx games.

Is this right:

- a directx version is a set of routines for graphics that is the middleman between the graphics card driver and the users software [in thi case, games].

- a game will be written to run in a particular version or versions of directx. That means it uses functions calls [or whatever] that a contained in that version or versions of directx.

- a graphics card driver will be written to work with particular versions of directx. That means it can "answer calls" to functions that should be available in the version or versions of directx that it's compatible with.

- successive directx versions usually include a lot of the same routines as earlier versions.

- some games at least check for the directx version installed.

This means that whatever a game is written for, you only "see" the parts that are implemented in the version of directx you have installed, and the version of directx that the graphics card driver is compatible with, eg:

- if you install [1] a dx8-compatible card, [2] directx9 and [3] a directx6 game, you'll only see the results of function calls that are in all three directx versions.

- in practice, some graphics card drivers insist on particular directx versions, same as some games.

If that's all correct, then the next thing I'd like to understand is the common ground between successive directx versions - I guess from 6 onwards:

- What gets dropped between successive versions that makes a difference to the ability of games written for earlier versions to display correctly on graphics cards written for later versions of directx?

- What gets added between successive versions that makes a difference to the ability of games written for later versions to display correctly on graphics cards written for earlier versions of directx?

Specific questions [but not the only ones] on my mind:

- will a gf4 ti display everything from dx6 to dx8.1 correctly?

- will an hd4850 display everything from dx9 correctly? and dx8.1?

- will a gtx560ti display everything from dx9 and dx10 correctly? and dx8.1?

Reply 1 of 10, by Putas

User metadata
Rank Oldbie
Rank
Oldbie

Nothing is dropped, but bugs can happen and new hardware may drop support for outdated routines. I played on HD4850 Windows games of all ages and do not recall any problem. DX 8.1 includes one pixel shader profile exceeding GF4 capability, so it will just not be available.

Reply 2 of 10, by leileilol

User metadata
Rank l33t++
Rank
l33t++

I'd not count on the DX10+ hardware for old stuff due to the lack of dithering in 16bpp, and other regressions for 16bpp modes. There's even a strange lack of Z precision in the latest RadeonHDs causing flickering in some games!

apsosig.png
long live PCem

Reply 3 of 10, by NamelessPlayer

User metadata
Rank Member
Rank
Member

A good test for DirectX 6 support would be Heavy Gear II. In typical Win9x-era Activision fashion, it's notoriously difficult to run on modern machines, possibly moreso than anything based on the MechWarrior 2 engine.

It looks fine on a Radeon 9600 XT and a GeForce 6800 Ultra, so anything up to DX9.0c seems to be fine. The GeForce 8800 GT has serious culling problems with polygons appearing where they shouldn't. The HD Radeon 4850 (back when I was testing it for a friend in the Catalyst 8.10 days) will outright crash before it loads the 3D engine.

As for dropped features, it's well-known that DX9.0c cards onward drop paletted texture support...not that I know any games that use it, and it doesn't really hinder dgVoodoo one bit (even though it's supposed to work a bit more efficiently with cards that do support it).

Reply 5 of 10, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie

All dx10 cards are emulating fixed pipechain through shaders. So - of course the errors are spreading.
Add this to Catalyst "developers" and...

I use Panzer Commander as the DX5 compatibility test.

Asus P4P800 SE/Pentium4 3.2E/2 Gb DDR400B,
Radeon HD3850 Agp (Sapphire), Catalyst 14.4 (XpProSp3).
Voodoo2 12 MB SLI, Win2k drivers 1.02.00 (XpProSp3).

Reply 6 of 10, by mr_bigmouth_502

User metadata
Rank Oldbie
Rank
Oldbie

I wonder if anyone's come up with some sort of a DirectX-to-OpenGL wrapper for Windows to fix these sorts of issues. I know it can be done on Linux, so why not Windows?

Reply 8 of 10, by leileilol

User metadata
Rank l33t++
Rank
l33t++

DXGL doesn't implement any of the Direct3D api yet

apsosig.png
long live PCem

Reply 9 of 10, by archsan

User metadata
Rank Oldbie
Rank
Oldbie

choices:
1) recommend building (& maintaining) a legacy box, including buying e.g. GF4Ti
2) recommend donating/contributing to that "some sort of a DirectX-to-OpenGL wrapper" project

Next topic! Aureal A3D 1-3 to OpenAL Soft! No more Win9x boxes! Hey, don't wake me up!

"Any sufficiently advanced technology is indistinguishable from magic."—Arthur C. Clarke
"No way. Installing the drivers on these things always gives me a headache."—Guybrush Threepwood (on cutting-edge voodoo technology)