What Does A World With Many Low-Level APIs Look Like?
Chris: Let’s do a quick hypothetical. Nvidia sees that developers are starting to pick up on Mantle, and they announced their own close-to-metal API. And you know, Intel sees that it's got a lot of market share on the integrated side especially and it follows suit. What happens and who wins out of that?
Johan: Yeah, that's an interesting question. Of course, I think one of the most important things is that, and we have talked a bit on it at the conference last week, and that is that Mantle, even though it's work being done by AMD to expose the stuff on their specific architecture, and it's worked together with us also on the stuff we've learned from the next-gen consoles and just in general with our engine architecture. But it's not an API that is designed only for their specific GPUs. This actually is a thin and low-level abstraction over the hardware there and it has to play nicely with everything that you have in Windows also. I would like to see other vendors supporting that. It’s a bit of a tall order and of course everything still comes from AMD here now initially.
But I think it's important to say that there's really no technical reason that you need multiple sort of low-level graphics APIs, one for each vendor. If that would happen, that would be for political reasons that you would have multiple ones, that they can't all play nicely together or they're not able to find a way of collaborating on this. That would be unfortunate I think. Although, that said, at least in the desktop space, there are only three players out there, and we already support...I don't even know how many rendering back-ends we do have. It's five, six, seven back-ends or something like that now?
Chris: Mm-hmm.
Johan: For us supporting additional low-level graphic APIs, well, once you drop to that lower level it's not as difficult to support additional ones especially if you already have some. That's not the way I would like to see it going forward. I would like to see that, first of all, that we prove out that Mantle actually works and that we deliver great improvements with it and we have a good trajectory with that. That’s the plan that I would be for and upcoming titles and do that together with AMD and get it out there. Then, go wider with that, and have these potentially very tough discussions with the various IHVs and see if we can find a way of essentially standardizing, whether that is just Mantle or whether that is Mantle as part of some, I don’t know, foundation or standards body or if there are actually other APIs in the future that sort of bring on the same benefits and improvements. That I don’t know yet. Although Mantle is a really good design I think. It is very well executed for all of these things. But there will be some tough discussions that we’ll have going forward, all of us together.
Chris: Yeah and I think we’re so cynical because of how long we've been doing this, but it's so rare to see these companies collaborate on a cooperative basis. Can Mantle’s same goals be achieved through an industry-standard API, and could DX be made to achieve similar things?
Johan: I think they can go more and more in that direction. I'm not fully sure; there's also the question of time, when you're able to actually, even if you want to go in that direction, when can you deliver that and get everyone on-board and things like that. That’s a pretty important component. Let’s say if it was only DX that went sort of closer to Mantle, that would definitely be a good thing. But the rest of ecosystem is based on OpenGL, so ideally you want OpenGL to move in that direction as well, or OpenGL to become something more like Mantle on the lower level.
I think that's really important because the future is not just DX. Sure, it's pretty dominating on the desktop, and we use a DX variant on the Xbox One, but we don’t use it on PS4, we don’t use it on PS3, we don’t use it on iOS, we don’t use it on Android, we don’t use it on Mac, we don’t use it on Linux. Many of these other platforms are really important also, and that's where, I think, ideally I really want to have a cross-platform API, so it's not tied to DX, even though DX is today the most important API out there and the one that most of our users are using by far.
Chris: Right.
Johan: Ideally I would like to see a solution that can work on Mac and Linux, and in the future also on the mobile platforms that are moving forward a lot, and are even more constraining about CPU performance and efficient rendering and power efficiency and all that.
Chris: For all those other platforms you're looking to OpenGL and OpenGL ES then?
Johan: Yes, exactly. Microsoft also, of course, they have DirectX working on Windows 8 tablets and Windows Phone, but they have a tiny, tiny market share there. Microsoft definitely does not have a history of sharing APIs with the wider industry and things like that, even less than the IHVs have.
Chris: Right.
Johan: IHVs have a better chance of working together with us developers and seeing if we can have an overall cross-platform solution. A little bit difficult challenge overall, but we have to push for what we would like to see out there.