Microsoft, on October 14, released a blog post to further push Direct3D, while officially turns down Mantle. This blog post comes as a follow-up to AMD’s announcement of Mantle, a “console-like” low-level API for PC game development, during AMD’s GPU14 product showcase event on September 25. Basically what Microsoft was promoting in the blog post can be distilled into three major arguments: features, performance and compatibility.
Direct3D 11.x: Better than Direct3D 11.2 but don’t call me 11.3
On features, Microsoft claims this Xbox One exclusive graphics API is called “Direct3D 11.x” and the hardware supports a superset of the features in the Direct3D 11.2 API on Windows 8.1 operating system, implying more graphics features are exposed, and thus should be superior. But for some reason Microsoft cannot name it “Direct3D 11.3″ [Author’s note: some suggests the “x” is for “Xbox”, in that case, the marketing name has failed to convey the message of its superiority.], or list out the additionally exposed features in detail, as compared to the Direct3D 11.2 API. Although we can come up with a lot of excuses and explanations for the marketing name and the non-disclosure, but we will leave you, our readers, to decide.
Then Microsoft goes on to say they have made “significant” enhancements to the Direct3D implementation, especially in the area of reducing presentation overheads, resulting in a “close to metal” level of runtime performance. And this would be the answer Microsoft has chosen to fend off criticism about the high-level API bringing a higher overhead. Again, Microsoft chose to be low-profile on the juicy details which people cared the most, and decided not to disclose how much of a performance gain was achieved.
And the last bullet point being the cross-platform compatibility of games and applications written with Direct3D API on the Xbox One, the PCs and the Windows-family of devices (Read tablets and smartphones), because all of these will utilize the same Direct3D API. Microsoft touts Direct3D as “a starting point for games”, and “the investment can be carried forward across Microsoft devices”. Although that might be true from a graphics API perspective, however Microsoft omitted things in between. So Microsoft didn’t mention how one would run an application, say coded for x86 CPUs to run on ARM platform or vice versa, without recompiling or code modifications. Another factor being the architectural differences between different SoCs on the Xbox One, the PC and the mobile Microsoft devices, for instance the eSRAM implementation on Xbox One which is absent on the other two platforms. Also the difference in raw horsepower of the three platforms, while one simply wouldn’t expect the smartphone and tablet platform can run the same complex scene as an Xbox One or PCs with different configurations from mainstream APUs to enthusiast multi-GPUs.
Microsoft: Saying no to Mantle
In a bid to promote Direct3D as the only choice of graphics API for gaming, both for developers and the gamers, Microsoft is announcing that the Xbox One will only feature Direct3D support, and to quote them in full, “other graphics APIs such as OpenGL and AMD’s Mantle are not available on Xbox One.” This should come as no surprise, as it should be something we all expected, even some game devs uses Direct3D exclusively for developing games, but at the same time this is quite unexpected because Microsoft have the guts to publicly say no to AMD’s Mantle. From this, we know Microsoft doesn’t see Mantle as a competitor just because Mantle might be present in the (potentially) competing game consoles, like PS4 and the rumored Steam Box (or any devices running SteamOS with GCN-based GPU). We also can surmise that Microsoft isn’t threatened by the potential performance gains brought by Mantle to those platforms, instead Microsoft is positioning Mantle itself as a competitor to their own Direct3D API already, just like OpenGL.
But one thing is clear, Microsoft didn’t address all other benefits of the low-level APIs (PS4 GNM/AMD Mantle) in the blog post, these low-level APIs do open up a lot of potential with the non-exposed GPU features with the Direct3D API given the nature of direct access (or “close to the metal”) to the GPU hardware. This really begins to apply when the game consoles move into their third or fourth year of their life-cycle, sure that means the console hardware cannot be beefed up, and will stay mostly the same as it is from introduction. This limits them to cost reduction techniques such as shrinking the SoCs. But on game consoles, when it comes to performance gains across the board, the possibility to render games at >1080p (e.g. 2560×1440p) resolution then upscale to 4K in the mid-term future, or even test drive new techniques without radical GPU architecture changes before it becomes a feature of the next Direct3D major release or an OpenGL extension, that would mean something.
On the other hand, PCs will have the hardware changes every 12 to 18 months or so, so the impact of the low-level APIs like Mantle might not be the same as on game consoles, but the benefits for going the low-level optimizations are still there, say an average performance gain of 30% across the board and in all scenarios (and a lot more draw calls) compared to the competition, which can be applied to each generation of GPUs based on the same shader architecture in four to five years time? That would help a lot in terms of competitiveness for GPU products, and allows just slightly wider margins of error in product planning in the near-term future. But clearly performance gains is the kind of topic Microsoft would avoid at this point, unless some game devs would want to break some NDAs to make their own comparisons based on the code on Xbox One, port the same code back to PC and switch to Mantle.
With game developers focusing the only available graphics API on Xbox One, that means there’s no low-level access to the Xbox One GPU for them, and they can no longer code their games to make use of the unexposed GPU features or have low-level optimizations on the Xbox One platform besides limited low-level constructs as some suggest. The end result is Microsoft now has the ability to slightly adjust the clocks (for GPU or other blocks), in very small intervals for slightly more performance, without the need to do design/thermal verification once again for the whole platform, including the games, the software stack and the hardware. This is previously unheard of for any consoles which are reaching the general availability stage, with beta dev kits sent to the game devs long ago.
What opportunities Microsoft might be missing
So a low-level API on game consoles makes games look great, and so should the “console-like” Mantle API. With most of the Xbox One games running 1600×900p at 30fps on beta dev kits, and Xbox One is not being the development target in most of the game studios, the bold declaration from Microsoft on not including Mantle support (or even the presence of a low-level API or adequate low-level constructs for game developers) makes them missing out the opportunity of getting an upper hand in performance of Xbox One games compared to PS4 or PCs with Mantle.
As both next-generation game consoles use AMD Jaguar x86 CPU cores, the biggest challenge for cross-platform porting would lie in porting between different graphics APIs or different architecture-specific optimizations (the most notable example would be, yes, the eSRAM, as none of the other platforms have eSRAM serving the GPU only). With PS4 (PSSL) and PC (HLSL) being very close in terms of shaders, while both also support OpenGL, it makes prototyping on a PC then porting to PS4 or cross porting between the two platforms (or more?) a lot more easier. Should Sony also support Mantle, Microsoft will struggle for the lack of cross-platform compatibility. Of course, from a company and strategy perspective, rejecting Mantle and pushing a high-level graphics API would be the right choice to not overly rely on a single IHV, but the said improvements are not addressing everything that the low-level APIs (PS4 GNM/AMD Mantle) provide.
With this head-scratching decision to not support Mantle at all and adhere strictly to Direct3D, Microsoft left a lot of people dumbfounded, while everyone was expecting Microsoft will also praise Mantle just because the hardware supports it and will benefit cross-platform porting, but in fact, Microsoft just sees it as a competitor and they are trying with their best efforts to shut it off, and this doesn’t benefit the gamers at all.
Of course, Microsoft can always do another 180-degree reversal sometime during the eight-to-ten-year lifecycle of Xbox One should “Direct3D 11.x” API not manage to do the job anymore, then it would probably be the time to praise a low-level API again in Redmond, but that will be another story altogether. Before then, we should keep an eye on more comments from Redmond towards Mantle. S|A
Have you signed up for our newsletter yet?
Did you know that you can access all our past subscription-only articles with a simple Student Membership for 100 USD per year? If you want in-depth analysis and exclusive exclusives, we don’t make the news, we just report it so there is no guarantee when exclusives are added to the Professional level but that’s where you’ll find the deep dive analysis.
Latest posts by Leo Yim (see all)
- AMD announces FirePro W9100 and new branding program - Mar 27, 2014
- AMD Hawaii-based FirePro to launch - Mar 17, 2014
- Microsoft officially turns down Mantle - Oct 16, 2013
- AMD to livestream GPU ’14 Product Showcase - Sep 20, 2013
- The Microsoft Xbox One backpedaling chronicled - Aug 16, 2013