• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Why don't they force DX9 apps to run in DX10.1?

Anarchist420

Diamond Member
Why doesn't nvidia and/or ati change DX9 calls into 10.1 calls so they can use AA with deferred shading?

It seems like there is so much they can do through drivers that they don't do. Some other examples include forcing a higher precision frame buffer (FP16 instead of 10:10:10:2 and a 32 bit float Z buffer instead of 24 bit integer zbuffer)

Not that I don't appreciate their driver work (I do), but there is still a lot they could do.
 
My guess is that these kinds of things would potentially introduce hundreds or thousands of bugs in the various DX9 games and that its just not worth wasting their time programming workarounds for every single problem created in games that are no longer supported but work fine right now,
 
What benefits would it offer? Some minor quality and performance improvements? Definitely not worth the effort.
 
Why should ATI/Nvidia open themselves up to accusations that they broke a game? They already have enough problems to deal with.
 
I thought that the reason they can do deferred rendering with AA under Dx 10+ is because they were able to re-implement AA as a shader program using the greater flexibility of SM4.0? If that's the case, you can't just magically translate API calls to obtain such a goal.
 
Maybe I'm misinterpreting this, but UE3 games are DX9 and use deferred rending yet both ATI and Nvidia have implemented a work around for AA... So what's the problem?
 
Maybe I'm misinterpreting this, but UE3 games are DX9 and use deferred rending yet both ATI and Nvidia have implemented a work around for AA... So what's the problem?
Their workarounds are very case-specific, and often need to be modified for each new UE3 game that comes out. NVIDIA submitted a proper fix for the issue to Epic last year (based on what they did for Batman), but it takes a while for that to trickle down in to new games.
 
I thought that the reason they can do deferred rendering with AA under Dx 10+ is because they were able to re-implement AA as a shader program using the greater flexibility of SM4.0? If that's the case, you can't just magically translate API calls to obtain such a goal.

Maybe I'm misinterpreting this, but UE3 games are DX9 and use deferred rending yet both ATI and Nvidia have implemented a work around for AA... So what's the problem?

Yes, put these two posts together, and you have your answer.
DX9's AA is 'fixed', the AA is resolved automatically after a frame is rendered. With deferred rendering, this means the AA information is lost before all renderpasses of the frame are complete.
DX10.1 (and an nVidia extension for DX10) allows you to read back the AA and do the AA resolve manually. This enables you to implement AA for deferred rendering.

ATi and nVidia have 'hacked' AA into DX9 games using deferred rendering (mostly UE3-based games), using the extra functionality of their DX10+ hardware (but doesn't actually need to use the DX10+ API, as they handle it with driver extensions that they make available under DX9).
But this requires significant changes to the whole rendering code, and has to be done on a game-to-game basis. It's not something that you just 'turn on'. The framebuffers in the game have to be of the correct type so that the AA information is not lost, and then a custom AA resolve shader pass has to be implemented in the right position in the code.

Aside from that, DX9 and DX10+ APIs are so completely different that translating one into the other is a very difficult job, even at source level. It's not exactly a case of a few search&replace actions, and then recompile. I wish it was, because we'd have a lot more DX10+ games now... good DX10+ games. But both the DX10+ engines and the DX10+ drivers are only slowly maturing, with often lower performance than DX9, despite the DX10+ API design being leaner and meaner.
We'll probably see a lot more DX11 games soon, because going from DX10 to DX11 is mostly search&replace. I expect that DX10 itself dies out soon, games might be dual-API in the sense of DX9 and DX11 for a while. DX9 to provide support for Windows XP. And DX11 works for all DX9.0c hardware and later, so it can completely replace DX9 and DX10 on all Vista/Windows 7 systems.
 
Back
Top