Matthew Lambert investigates the performance of AMD’s new graphics API in Battlefield 4 and Star Swarm.
Marred by delays since its announcement in September 2013, AMD’s Mantle API has finally made its debut. It’s available to try now in Battlefield 4 and a demo called Star Swarm, which is freely available on Steam. It was due to be supported in Thief (see p84), but that too has been delayed to a post-launch patch. You’ll need an AMD GCN GPU, the latest Catalyst beta drivers and Windows 64-bit to ensure compatibility. Mantle is in no way a final product – AMD is continuing to develop the technology, but there’s enough now to run some tests and glimpse the direction in which it’s heading.
As a graphics API, Mantle is like Direct3D, the graphics component of DirectX. It’s essentially a series of abstraction layers that grants developers access to the various execution units and functions within a GPU. However, APIs such as Direct3D and OpenGL have many layers of abstraction, allowing programs to function across numerous GPUs architectures from different manufacturers, which operate differently at the hardware level. Mantle, however, is only designed with the GCN architecture in mind, meaning fewer abstraction layers are needed, which theoretically results in fewer overheads.
CPU draw calls essentially tell the GPU what to render. Hundreds or thousands of calls can be needed to render even a single frame, which can be costly with current APIs, especially with lots of on-screen action.
By thinning out the layers through which draw calls pass, and by improving the ability to queue them across multiple cores and threads, Mantle aims to significantly reduce draw calls as a bottleneck.
Therefore, the biggest gains should be seen in CPU-limited scenarios, rather than GPU-limited ones, which are harder to combat at the API level, although optimisations have been made in this respect too.
As FRAPS is incompatible with Mantle, we’re reliant on Battlefield 4’s built-in frame time recorder to test this game. Sadly, we’re only able to accurately calculate and compare average frame rates from this data.
We use our standard single-player benchmark to keep it consistent.
It’s a fast-paced scene with plenty going on, but multiplayer is still likely to be more CPU-bound.
With our overclocked Core-i5 3570K installed, there’s little difference between D3D and Mantle. Even at Medium settings, the scene is still predominantly GPU-limited, although the R9 290X improved by 6 or 7 per cent in both tests when using Mantle.
We then turned to a lower-end CPU, a stock-speed Core i3-3220. With the Ultra detail test, it was the same story – a small bump for the R9 290X and effectively equal results for the other cards.
However, with Battlefield 4 at Medium settings, we finally see Mantle come into play. The similar results under D3D for the R9 290X and R9 280X here tell us that performance is CPU-limited, and this disappears with Mantle. The R9 290X’s performance improves by a whopping 46 per cent, while the R9 280X and R7 260X see 16 and 6 per cent gains. This also puts the AMD cards ahead of the competing Nvidia hardware at each performance point. However, the big drawback is that the gains are all but meaningless – with such high frame rates anyway, the unlocked performance doesn’t result in any visible real- world differences.
We also tested the flagship Kaveri part in this game. At 1080p with Medium settings, the scene is hugely GPU-limited for integrated graphics, and the results are basically the same. At 720p with Low detail, however, we see a 10 per cent increase and a slightly smoother experience, as 60fps is hit more frequently. Star Swarm
Star Swarm is an Alpha demo of Oxide Games’ Nitrous engine, which was built to exploit Mantle, and renders space battles with thousands of ships in real time. We run the four preset scenes (which survey battles from different viewpoints) three times each for two minutes, reporting the average results, which include minimum frame rates.
With D3D, frame rates are universally poor and unplayable, even with the top-end parts. Although frame rates can jump to beyond 100fps in less intensive sections, the more complex parts are very hard work. The RTS scene is the clearest example, as it maintains a wide view of the battle scene and constantly has thousands of ships in view.
With Mantle, the difference is massive. Although two of the scenes still dip below 30fps with the R9 290X, the experience is far smoother – in the RTS scene, its minimum frame rate effectively quadruples., while the average frame rate here goes up by 180 per cent.
In Battlefield 4, Mantle’s real-world benefits are limited, and it works best with higher-end GPUs – we’re unsure how many people will be pairing such cards with low-end CPUs. Still, free performance is free performance, and we encourage you to try it out. Star Swarm, on the other hand, is far more revealing.
Developers are currently used to designing games around API-based draw call limitations, but Mantle widens the potential to show more on screen at a time. Much remains to be seen, but this nonetheless has interesting ramifications for game development, most obviously for RTS games and shoot ‘em ups, but also as a whole.