Glo.
Diamond Member
- Apr 25, 2015
- 5,802
- 4,774
- 136
This kind of thing is much easier to do in DX12 vs. DX11. You can simply send the GPU commands that work well on one set of hardware but not on another, and due to the lack of driver overhead, the driver cannot correct for this.
As a handwaving explanation consider programming in Java (DX11) and C++ (DX12). A well written C++ program should always be faster than the java equivalent. However java can be run with some very aggressive performance enhancements and libraries (driver intervention) so that a poorly written C++ program will run worse than that same program in java as the JRE can add performance enhancements. As well in a program written in C++ your performance optimizations can favour one architecture over another (ie loop unrolling).
Its the same thing with DX12 and Oxide (hate them or love them) have stated as much.
So in your mind whole DirectX 12 API is locked for Nvidia hardware?
Game engine executes itself on the API, and API on the hardware. There is nothing except this.
Yes, of course you can lock one vendor from performance. By using asynchronous shading. But that is the problem of the nature of the hardware you have. Now you see the problem? Parallelism is the way to go from now on.
Everything worked for both GPU vendors. Nvidia, which designed GPUs with planned obsolescence, AMD GPUs that made GPUs for yesterday, today and tomorrow, but already outdated and being bottlenecked by their nature in games.
14/16 nm battle will be extremely interesting, however Im starting to feel the winner already here.
Intel.
Last edited: