Native DX9 hardware support is officially gone from Intel's Xe integrated graphics solutions on 12th Gen CPUs and A-Series Arc Alchemist discrete GPUs. To replace it, all DirectX 9 support will be transferred to DirectX 12 in the form of emulation.
Emulation will run on an open-source conversion layer known as "D3D9On12" from Microsoft. Conversion works by sending 3D DirectX 9 graphics commands to the D3D9On12 layer instead of the D3D9 graphics driver directly. Once the D3D9On12 layer receives commands from the D3D9 API, it will convert all commands into D3D12 API calls. So basically, D3D9On12 will act as a GPU driver all on its own instead of the actual GPU driver from Intel.
Microsoft says this emulation process has become a relatively performant implementation of DirectX 9. As a result, performance should be nearly as good, if not just as good, as native DirectX 9 hardware support.
This DX9 change from Intel appears to be a very good move as a result. Intel can now divert driver development resources towards DirectX 11 optimizations -- which we know is very bad at this time, and Intel won't suffer performance consequences as a result, with DX9 optimizations "outsourced" to Microsoft entirely.
According to Microsoft, with how performant D3D9On12 is, it will be interesting to see if Nvidia and AMD follow the same path as Intel. But, there could be consequences to the API translation, including higher CPU usage (since the translation is software accelerated) and potential side-effects with older games. Nvidia and AMD also have almost 20 years of driver experience with DirectX 9, which might result in performance losses with the DX12 emulation layer.
Intel, on the contrary, only has experience with DirectX 9 on its integrated graphics, which does not translate into the experience with its much higher-performing discrete graphics. So it makes a lot of sense that Intel is immediately transitioning to emulation as it gets closer to launching Arc worldwide.
I'd actually love if AMD would do this, since their DX9, DX10 and even DX11 often have very underwhelming performance. Maybe they're already doing it, I don't know.
They are replacing Dx9 with emulation of it (dx9) on dx12, not with emulation of dx12 which is what you have written.
MS is outsourcing it to the community though.
No that it matters because this is just a translation of all dx9 commands into things that Dx12 can run. They might find a few tricks to use fewer dx12 commands to emulate some dx9 stuff but the difference should be minimal no matter what they do.
It is very doubtful that this will increase Dx9 performance since the bad performance comes from lack of hardware resources needed to run that old code and those will not magically appear just because dx12 is used.
It's not like they turn old games into dx12 versions of that game.
If it does use the CPU, as mentioned in the article, it might increase performance in some things but there is nothing mentioned on the MS link of that being the case.
The word emulation, implies the DX9 conversion.
I just want to see Arc out there already. Quick fixes are the fixes needed at this point.
AMD's recent driver updates have bumped DX11 performance significantly, i've found. Almost to Nvidia's level.
I do like the idea of the "wrapper" being integrated into the drivers---just about every game i've ever tried works better with the dxvk wrapper than native dx9 or even dx11 in some cases (on AMD). And that was written for linux---that it works on Windows at all is pretty cool.
and vegas was "not terrible".