Maximum PC recently conducted an interview with Oxide Games' Dan Baker to talk about the studio's use of Mantle in the upcoming game Star Swarm. One of the first things the interview points out is that Mantle isn't a low-level API that's close to the metal. But when compared to DirectX, Mantle is lower in the overall software stack.
"It's not low-level in the sense that we are exposed to individual architectural decisions," Baker said. "For example, Mantle still abstracts the details of the shader cores themselves, so that we don't even know if we are running on a vector machine or a scalar machine. What isn't abstracted is the basic way a GPU operates. The GPU is another processor, just like any other, that reads and writes memory. One thing that has happened is that GPUs are now pretty general in terms of functionality. They can read memory anywhere. They can write memory anywhere."
"A lot of the things an API has traditionally managed aren't really necessary any more," he added. "Mantle puts the responsibility onto the developer. Some feel that is too much, but this really isn't any different than managing multiple CPUs on a system, which we have gotten pretty good at. We don't program multiple CPUs with an API, we just handle it ourselves. Mantle gives us a similar capability for the GPU."
Later in the interview they talk about the claims of performance increases when using Mantle. When asked about the performance in Star Swarm, Baker indicated that the performance will depend on how exploitative you are, and the specifics of the engine. In the case of Star Swarm, the team was limited in what they could do by driver overhead problems. There have been decisions made where the team traded GPU performance for CPU. Eventually, his answer turned to DirectX where he said something very interesting about the performance of Mantle.
"We'd like to point out that our Direct3D performance is absolutely outstanding, relative to what is expected. We have spent a huge amount of time optimizing around D3D, and we feel we are actually pretty biased in D3D's favor. Mantle, on the other hand, we've spent far less time with and currently have only pretty basic optimizations. But Mantle is such an elegant API that it still dwarfs our D3D performance."
Later, he said that Mantle is somewhat of a disruptive technology in that it is getting everyone into rethinking things. To read the full interview, head here.
They said that a crappy implementation of Mantle code still kicks the crap out of well optimized DX11 code. These people specialize in DX11 and they can slap together random crap in Mantle and make it work better.
They also mentioned that when they try to thread their code too much, the driver devs tell them to back off because they're choking the driver threads. Yet the CPUs are mostly idle.
The whole DX/OpenGL paradigm is so bad for modern computers that driver engineers are telling programmers to use less CPU when a CPU is almost entirely idle. The system is broken, it needs to be replaced.