One of the new game updates brings the Battlefield 4 Mantle Renderer that DICE have developed in conjunction with AMD. With this first release of Mantle, you can expect performance increases in the game if you have the hardware to support it.
Mantle is a new low-level graphics API that we’ve been working very closely with AMD on over the last 2 years and it is a major change & improvement to how we are able to program & use modern GPUs in order to get the most out of them.
Battlefield 4 on PC is already quite heavily optimized using DirectX 11 and DirectX 11.1, but with Mantle we are able to go even further: we’ve significantly reduced CPU cost in our rendering, efficiently parallelized it over multiple CPU cores and reduced overhead in many areas.
The biggest performance gains can be seen when the game is bottle necked by the CPU which can be quite common even on high-end machines and this was main goal to improve on with Mantle. We’ve also been able to streamline and optimize some of the GPU workload. The end result is that game performance is improved in virtually all scenarios in Battlefield 4 on both Windows 7 and Windows 8 when running with Mantle!
This update is the first release of our new Mantle renderer, and we will continue to provide more tuning for different types of configurations in future updates. Still, we are really happy with the performance improvements that we are seeing with this update and we believe you will be as well.
Read on for the full details on how to enable Mantle, and some information on the kind of performance gains you can expect.
How to enable Mantle
In order to use Mantle you will need the following:
-AMD Catalyst 14.1 Beta drivers. AMD will post them here.
-AMD Radeon GPU with Graphics Core Next
-64-bit Windows (7, 8 or 8.1)
If you have the above you will see a new “Graphics API” option in the in-game Graphics Options settings after starting the game, here you can switch between using DirectX 11 and Mantle (remember to restart the game after changing).
If the “Graphics API” option is missing, that means you do not have a compatible GPU and driver and the game will use the standard DirectX 11 graphics API instead.
To compare performance with Mantle vs DX11 we in Frostbite have done a couple of benchmarks with Battlefield 4 on 3 different configurations & test scenes:
Test case 1: Low-end single-player
CPU/GPU: AMD A10-7850K (‘Kaveri’ APU), 4 cores @ 3.7 GHz
Settings: 720p MEDIUM settings.
OS: Windows 7 64-bit
Level: Singapore “Beach”
This area is heavy on the CPU as it is quite a lot of action going on, but the game is primarily GPU-bound both on DX and with Mantle but thanks to GPU optimizations with Mantle we get a good performance improvement.
Result: 26.6 ms/f -> 23.3 ms/f = 14% faster
Test case 2: Standard 64-player multiplayer
CPU: AMD FX-8350, 8 cores @ 4 GHz
GPU: AMD Radeon 7970 3 GB
Settings: 1080p ULTRA 1x MSAA
OS: Windows 8 64-bit
Level: Siege of Shanghai
Level was tested with 64 “pseudo players” that we have for our own internal testing that simulates heavy game workload that we have in multiplayer in order to get more deterministic results compared to full real multiplayer. 64 players on the large Battlefield levels is really demanding of the CPU so this test case is primarily CPU-bound.
Result: 18.87 ms/f -> 15.08 ms/f = 25.1% faster.
Test case 3: High-end single-player with multiple GPUs
CPU: Intel Core i7-3970x Extreme, 12 logical cores @ 3.5 GHz
GPU: 2x AMD Radeon R9 290x 4 GB
Settings: 1080p ULTRA 4x MSAA
OS: Windows 8 64-bit
Level: South China Sea “Broken Flight Deck”
This single-player scene is heavy on both the CPU and GPU with lots of action going on. Test was done on the highest end Intel CPU on Windows 8, which is the fastest option before Mantle thanks to DirectX 11.1. Still this CPU is not fast enough to keep the 2 290x GPUs fed at 1080p on Ultra settings so we get a significant CPU performance bottleneck which results in major performance improvement when enabling Mantle.
Result: 13.24 ms/f -> = 8.38 ms/f = 58% faster.
To simplify measuring performance in the game we’ve added a new tool to the in-game console to record frame times for later analysis. Simply run “PerfOverlay.FrameFileLogEnable 1″ to start saving frame times and “PerfOverlay.FrameFileLogEnable 0″ to stop. The resulting .csv file will be located in Documents/Battlefield 4 which can be opened & graphed by Excel or other applications for viewing.
Another in-game tool that is useful to use is “Render.DrawScreenInfo 1″ that will now show additional on-screen information about your CPU & GPU config, resolution and as well as if Mantle or DirectX 11 is used for rendering.