For all the talk from AMD about Mantle being revolutionary for game developers and consumers, for a while it seemed to be forgotten that AMD doesn’t have a monopoly on the competitive advantage Mantle promises. DirectX, with its near universal adoption amongst developers, is fully capable of offering the low overhead and close to the metal programming environment that Mantle promises.
Earlier this month at SIGGRAPH in Vancouver Microsoft proved just that, running DirectX 12 on an Intel-powered Surface Pro 3. During the benchmarks displayed at Intel’s booth on the show floor, DirectX 12 provided a fairly serious performance gains over the previous version.
Last week Bright Side of News caught up with Intel’s Andrew Lauritzen, a graphics software engineer in the Advanced Technology Group at Intel, to discuss what sort of gains DirectX 12 is going to have over its predecessor.
Bright Side of News: What kind of advantages does DirectX 12 have over Mantle?
Mantle is something that only runs on AMD’s GPUs right now, so it’s something that can’t be compared directly compared to DirectX 12. In terms of what our hardware does with DirectX 12, we compare against Direct X 11 so we can show the benefits. The goals of Mantle are similar, but those things [the DirectX 12 vs. Mantle debate] could only be compared on AMD’s hardware once they have drivers for both.
BSN*: What about comparing DirectX 12 to OpenGL and OpenCL?
OpenGL is structured similarly to Direct3D 10 and 11. It has a lot of the same overheads as those APIs had. Direct3D 12 is a new generation of APIs that gives a lot more explicit access to the hardware. Folks writing game engines are really the main people that have asked for it, and with it they can write more efficient rendering algorithms then they have been able to in the past.
OpenCL is more of a compute API. It’s not really for graphics. It’s more akin to the DirectCompute part of the APIs.
BSN*: How long has Intel been working on the DirectX 12 effort with Microsoft?
That’s kind of a grey area, it’s like asking ‘since when has it been called DirectX 12?’. The ideas that have crystallized into DirectX 12 we’ve been discussing for many years. In fact, as many game developers will say, this has been an issue that’s been on their mind for many years as well and they’ve been giving feedback to both us and Microsoft with the goal of making things better.
As far as when those efforts crystallized into DirectX 12, well it was announced at GDC — that’s the most we can say. As long as we’ve been working on DirectX, we’ve been collaborating with Microsoft. That includes DirectX 11, and even before that. Discussions of this sort date back many years. It’s just a question of when they turned from discussions to an explicit plan.
BSN*: When did developers begin to request features that made it into DirectX 12, such as low overhead?
The requests go back as long as I’ve worked in the industry. For DirectX 10, one of the main goals was to lower the overhead compared to DirectX 9. It did succeed, in relative terms, but at the time the combination of hardware and software as well as other factors meant that they couldn’t make it go as far as they have with DirectX 12 in terms of making it go low overhead.
In DirectX 11, they tried to do the multithreading thing again. That was one of the big features of DirectX 11. But, it turned out again, that because of the number of API and driver issues they really never saw the benefit of that they were hoping for. It turned out not to be a huge win and not be very scalable. Really, with 12, what they were able to do is go back to the drawing board in a new era of both GPUs and a lot shared engine technology across different game developers. It made a lot more sense to basically go a significant step lower level than they had in the past.
BSN*:Why is the performance jump so big between DirectX 11 to 12, then between 10 and 11?
There are things around how hazards were tracking the API [for more on that see this and this]. There were things how Graphics State was handled in the API, which basically made it a difficult problem for drivers to try to automatically make the API safe because it was a safer API before. Whereas DirectX 12 moved some of this into the users hands. So it’s a less safe API in terms of getting consistent correct rendering, but it allows game developers to do those things efficiently since they don’t always have to handle the most general cases like a driver does.
BSN*: From what you at Intel have seen, what’s the response been like so far to DirectX 12 from developers?
I think it’s fair to say that it’s been really positive so far. This is something that they’ve been wanting for a long time. A combination of experience, and the fact that instead of everyone designing their own engines we’re getting specialist [companies] that are really focused on writing their own graphics engines. Having that core set of specialists have really let us open up stuff that game developers really want.
The API, in the past, has really been designed to handle mid-level; if every game is writing rendering of the minutiae of how to drive a GPU efficiently. But now more and more people are using [a handful of] engines so it makes sense to concentrate and optimize the technology in those engines as they are used across so many different games.
BSN*: It seems like Intel is trying to make its own integrated GPUs competitive with low-to-mid range discrete GPUs. Is this the case?
We’re always trying to make our GPUs the best they can be in a given form factor and power budget. Increasingly our chips are going into lower and lower power budget things. Increasingly as we target these power constrained devices it becomes more and more important that we optimize all of the parts of the system as much as possible. You can’t just get away with ‘Oh, we have lots of extra CPU power so we’ll just eat the overhead from that,’ we have to make sure to optimize all parts of the stack.
BSN*: Will we see DirectX 12 on Intel’s lowest power devices like mobile Broadwell?
Yes. All of our chips based on Haswell will be DirectX 12 compatible. That includes Broadwell and any future chips.
BSN*: Thanks for your time.
This interview has been edited for clarity and length.