AMD’s APU 2013 conference was held in San Jose, California in November 2013 and showcased some interesting advancements that were being made by the company, in particular with their Mantle API.
Many gamers were disappointed, however, with the lack of any concrete data on Mantle’s performance in games. Well, get ready to drop your jaw a little.
A video uploaded recently by AMD to their channel was a recording of the lecture held by Oxide Games, one of AMD’s few partners that have voiced support for Mantle and begun including it in their game engine, called Nitrous.
Oxide promised at the beginning of the lecture that they were dedicated to PC development, with various team members who make up the group having worked on games such as Civilisation V, Command and Conquer: Kane’s Wrath, Lord of the Rings: Rise of the Witch King and many more.
The group started off with a couple of slides about their new Nitrous engine, which was being built from the ground up to be scalable when adding in extra processing cores and more graphics shaders. When approached by AMD with the Mantle API, the team says they saw the potential and the writing on the wall, and adopted it into their engine.
The really interesting part of the lecture was a live demo (starting at 25:40) of the Nitrous engine, showing off a spaceship battle done in real-time, with thousands of individual ships being added into the battlefield every minute.
At the start of the demo the recorded frametime with one thousand units was around 16 milliseconds, equivalent to a 60fps frame rate. As the units piled on the framerate stayed constantly above 30fps and ended up with an average of 50fps with ten thousand units on screen.
When the demo ended, Oxide Games developer Dan Baker took to the stand to reveal some performance improvements they were seeing with Mantle. Baker first noted that the demo was running on a AMD FX-8350 paired to a Radeon R9 290X and said that the demo that was just shown to the audience was entirely GPU-bound.
“Even if the processor was clocked down to 2GHz,” Baker said, “we would see the same performance from the engine demo and no perceivable drop in performance, because the demo would still be GPU-bound.”
That bodes very well for AMD’s future Kaveri APUs and means that pairing faster GCN GPUs with slower CPUs will no longer incur the same bottlenecks as in the past.
Baker also pointed out that in their rendering pipeline when looking at the CPU’s behaviour, less than half of the time spend working on a frame was taken up by Nitrous and Mantle calculations in a system with four cores. In the slides that show execution time, Baker revealed that the same behaviour was noted when scaling up the core count, and even in a sixteen-thread system the time spend on execution remained the same even with the heavier workloads.
Now that may sound as if the game is still CPU-bound, but its really not. This means that as you scale up the amount of stuff being rendered along with the core and graphics count in a given system, the performance stays at the same delta of CPU utilisation. Its too early to call it without more concrete data, but Mantle may be the first API with perfect hardware and work scaling.
This does mean, however, that your system still needs enough hardware that will cope with the worst-case scenario workloads you’re expected to encounter in your gameplay. A Core i7 will still outperform a dual-core Pentium processor because of the hardware’s extra muscle. But this means, at least, that low-end systems with GCN graphics cards will see a slight jump in visual fidelity thanks to a more efficient use of hardware.
Mantle, Baker admits, is the point of no return for Oxide Games – they will no longer be able to deliver games using DirectX as the primary renderer because of how efficient the API is and how it cuts down on their optimisation workload.
Baker’s predictions for the team is that they’ll be able to optimise games on the PC far further than the 100,000 draw calls initially promised by AMD – by 2015 they want to be experimenting with batches of 300,000 draw calls and close to the end of the decade, start working on a million draw calls in a single batch.
Now its worth considering the implications of this – its just one studio, right? But it’s something that DirectX is not capable of. Not even OpenGL will be able to match the same scaling, despite it being much less bogged with legacy code as DirectX is. If developers want bigger, more realistic, completely procedurally-generated and scalable persistent universes, Mantle could help them achieve that in a much quicker timeframe.
Once Battlefield 4’s Mantle update hits the internet we’ll be able to gauge the impact that it could have and have some real performance numbers. For now, though, seeing Oxide’s demo scale from 1000 to 10,000 ships on-screen without dropping below 30 fps is incredible. What else is Mantle capable of enabling?