These threads amuse me
Unlike previous versions of D3D the v10 specification gives the IGV's very little room to manouver - not just on the features that marketting teams love to shout about, but on the really low-level details such as FP precision, accuracy and so on. More specifically, you can't be an "almost D3D10" part - it's one or the other, hardware is or is not capable of running D3D10 applications and there is no middle ground.
A similar example was some of ATI's later SM2 parts (the X800's for example) that had most of the functionality that Nvidia's SM3 capable parts did. Taken at a high level they were comparable. Problem was, as I remember it, the ATI hardware used 24bit internal precision - which fell foul of Microsoft's specification for SM3 that mandated 32bit precision throughout the pipeline. Consequently it wasn't until the R500 generation that ATI could officially brand their hardware as SM3 capable.
I'm in the lucky position to have the specifications in front of me, where these things become a lot more obvious. There's only so much that software could change - and if the basic silicon behind earlier hardware doesn't cut it then, well, game over :smile:
I suppose the key point is that you might be able to hack on the high-level features of D3D10 using D3D9 hardware and Windows XP but it'd only be skin deep. I think it was at GDC '06 where the MS developer days were running the D3D10 refrast on D3D9 hardware with partial hardware acceleration (iirc paths with the GS were using software VS and GS). From what I heard this meant that the SDK samples were interactive/real-time, but whether such an approach scales up I don't know...
Thing is, without the low-level parts of the hardware spec you'd end up with two similar but slightly different flavours of D3D10 and, as I'm sure any developers here will appreciate, that makes it an absolute nightmare for compatability testing. One of the aims for D3D10's fixed-caps and strict requirements was to make software development simpler - less of a burden on us developers to write a million similar but different rendering paths, reducing the amount of testing etc...etc...
Anyway, I'll go back to lurking again...
Cheers,
Jack