The new game update for Battlefield 4 brings the Mantle renderer that DICE has 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. In this blog post, the Technical Director for Frostbite details this exciting new step for the Battlefield series.
My name is Johan Andersson and I’m one of the Technical Directors in the Frostbite team and I have something very exciting to share with all Battlefield players: the latest Battlefield 4 update on PC includes the long-awaited new renderer in Frostbite that is using AMD’s Mantle.
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 bottlenecked 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
Here is a summary of the test cases:
|Test case||1: Low-end single-player||2: 64-player multi-player||3: Multi-GPU single-player|
|CPU||AMD A10-7850K (‘Kaveri’ APU), 4 cores @ 3.7 GHz||AMD FX-8350, 8 cores @ 4 GHz||Intel Core i7-3970x Extreme, 12 logical cores @ 3.5 GHz|
|GPU||N/A||AMD Radeon 7970 3 GB||2x AMD Radeon R9 290x 4 GB|
|Settings||720p Medium||Ultra 1080p||Ultra 1080p 4x MSAA|
|OS||Windows 7 64-bit||Windows 8 64-bit||Windows 8 64-bit|
|Level||Singapore||Siege of Shanghai||South China Sea|
|DX11 avg||26.6 ms/f (37.6 fps)||18.87 ms/f (52.9 fps)||13.24 ms/f (78.4 fps)|
|Mantle avg||23.3 ms/f (43 fps)||15.08 ms/f (66.3 fps)||8.38 ms/f (121.5 fps)|
|Improvement||14% faster||25.1% faster||58% faster|
These results are concrete examples of what we have seen in heavy scenarios. But it is important to point out that on PC there are of course many different types of CPU, GPU and OS configurations as well as the workload in the game is highly varying throughout both single-player and in multi-player, so one can’t say say a single fixed number of how much faster it is.
Fortunately there are a quite a few PC hardware review sites that are planning to do their own benchmarks of Battlefield 4 running with Mantle to compare a much wider set of PC configurations and gameplay situations, and I’m sure a lot of Battlefield players will do the same and share.
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.
If you try out Mantle in BF4 we would really like to hear your feedback about it! If you have any feedback about performance or your experience in general with Mantle in Battlefield 4, please post on the Battlelog forums or in the comments section below.
If you are having any technical problems when running with Mantle, please let us know by posting on answers.ea.com and we’ll look into it. It is still possible to switch back to the existing DirectX 11 rendering.
This patch is the first release of our Mantle renderer. We will continue to add improvements, based on your feedback, in upcoming Battlefield 4 updates as well. In particular we plan to focus next on adding multi-GPU frame pacing and a few additional GPU performance and memory optimizations.
I hope you are as excited as we are about the release of the new Mantle renderer. If you have any questions, ask them below and we’ll do our best to answer them.