Developer Rebellion announced last year that its next game, Sniper Elite 3, would support AMD's Mantle graphics API. This week, that plan has come to fruition. The latest version of Sniper Elite 3 up on Steam now supports Mantle, provided you've got the latest Catalyst drivers installed.
To mark the occasion, Rebellion Head of Programming Kevin Floyer-Lea has written up a lengthy blog post that explains the studio's rationale for supporting Mantle, outlines the nitty-gritty of the implementation, and showcases Mantle's performance benefits in the current version of Sniper Elite 3.
Floyer-Lea explains that Rebellion adopted Mantle because of a long-standing desire for a console-like level of programming abstraction on the PC—and because Mantle has brought about the arrival of other low-level PC graphics APIs, including DirectX 12 and OpenGL Next. "Our main goal for supporting Mantle," Floyer-Lea writes, "was to take maximum advantage of the potential for multithreading the API calls, and refactor our existing engine rendering pipeline to better fit what we predict are the requirements of this new breed of lightweight APIs." In the end, Floyer-Lea adds, "[W]e spent more time restructuring our engine's rendering architecture than we did writing Mantle-specific code!"
That fits with what AMD has been telling us lately. According to AMD Gaming Scientist Richard Huddy, enthusiasm for Mantle among game developers is "unbridled," partly because some see the API as a stepping stone to DirectX 12.
Floyer-Lea describes the current Mantle implementation in Sniper Elite 3 as "fairly preliminary," with room for more performance optimizations. Nevertheless, sizeable performance gains are already there, according to these graphs from the blog post:
As you can see, Mantle looks to pay dividends on both quad-core, eight-thread systems powered by AMD's Radeon R9 290X and older quad-core machines running circa-2012 GPUs. (Use the buttons to switch between the two graphs.) The gains at 1920x1200 in Ultra mode aren't anything to scoff at. Adding supersampled antialiasing to the mix pulls the average frame rate below 60 FPS, at which point Mantle only buys you 1-3 extra FPS or so.
Floyer-Lea attributes these gains partly to Mantle's monolithic pipelines, which allow for "some holistic optimisations that otherwise wouldn't be possible," and partly to more efficient use of GPU memory, which Mantle facilitates by letting developers manage memory directly. Beside higher performance, another benefit of the more efficient memory use "we often have far more high resolution textures being used in the Mantle version," according to Floyer-Lea.
The Mantle version of Sniper Elite 3 also features lower CPU overhead and better threading than the DirectX version. The gains aren't huge, as this graph shows, but they pave the way for more judicious use of the CPU in future games. Floyer-Lea mentions, for example, that an increased CPU budget could be spent on "other systems like AI."
You can try out Sniper Elite 3's Mantle implementation yourself by enabling it in the game's launcher. Rebellion has added a new benchmarking mode, as well, which you'll find on the "Extras" page of the in-game menus. The benchmarking mode measures frame rates in "varying scenes similar to what happens in game."