Mantle is the direct result of a number of AAA game developers asking us for something like this because of several constraints they're experiencing with existing PC graphics APIs. Those developers want to get closer to the metal and able to achieve more with the GPU(s) on their PC without the API getting in the way of this effort. "More with more" is the term used by Raja and it couldn't be more spot on.
AMD listened to developer feedback and entered this venture with Johan Andersson leading the charge. Johan has a passion for writing efficient code that can allow him to accomplish his technical vision and Mantle exists to serve this purpose.
Mantle is not for every developer. It is a low-level graphics API designed to drive the GPU in the most efficient manner. This level of access requires a bit more development effort than existing APIs to reap the rewards it provides.
AMD remains committed to support DirectX and OpenGL and to keep optimizing our drivers for those APIs. Mantle is an option that some developers may choose, but it does not affect those that wish to keep using existing APIs.
Some technical concerns are mentioned on this thread. The Mantle API has been in design and development for more than 2 years and rest assured we've had some time to think about the best way to address those (and loads of others).
More technical details about Mantle will be revealed in due course. Johan is a keynote speaker at the AMD Developer Summit (11-14 November, San Jose).
- OpenGL/DirectX Drivers actually re-write the code stream and fix existing bugs from developers for specific game/versions. This is useful for the ecosystem because AMD/NVIDIA know more about 3D than most devs and how to be performant.
- It also really means NVIDIA will do the same if this catches on and now there will need to be at least two different supported implementations for anyone going down this route (prob amd + nvidia + {opengl, dx}). Changing out the 3d driver to be pluggable in a backend-agnostic way will be extremely hard/annoying to code around.
They can, but it may require a change to their hardware (we don't know yet). And if they do follow AMD's lead here to catch up on performance gains, AMD is in control of the API so they know exactly what's going to change when.
Major coup for AMD. This is a CUDA that will affect all gamers.
I seem to recall that Intel paid for that right with the SSE2 instruction set. Do you suggest something similar would have to happen? Please refrain from sarcasm as it adds little to a discussion and had the effect of insulting the previous poster.
This could be an opportunity for AMD considering they ship the GPU for both the new XBox and PS4 and Wii U. But Carmack suspects that MS and Sony won't like it because it could boost Steambox.
This is the huge benefit with the console wins to AMD that Carmack spoke about at Quakecon this year. Sounds like thanks to the new consoles, this will put AMD in the driver's seat. Everyone else will be stuck on DX or OGL. If NV/Intel implements Mantle it may well require a hardware change, since AMD defines this API going forward.
Or maybe it won't - it could just be implemented by firmware. If the computing power is there on the silicone some talented engineers could always find ways to use it. And this is not without benefits for nVidia - they could obsolete old 5xx cards that still got year or two life in them left.
And if the benefits of the api are so great as claimed than performance could go so high that for 1080p it will just don't matter if nVidia is slightly slower.
It is funny that Valve and AMD do for PC gaming what I claimed in 2001-2 MS should do - I called it game mode then. Unload everything but the TCP/IP stack and give all the resources to a game.
My first thought when I saw the slides, especially the "cross-platform part", was "yay, no more DirectX!!!". This might mean that we're finally going to have AAA games on Linux too (DirectX was a big obstacle to that).
Mantle still doesn't solve input, audio, and a number of other services that DirectX provides in a unified way. Also, potentially AMD only, which has a smaller share than both Intel and nVidia.
I'm not sure that matters too much, to be honest. Mantle probably isn't coming to the consoles because they have their own direct architecture.
If you develop for PC you want to maximize market share so you need to ask if it's really worth supporting another graphics API for a performance boost on the #3 vendor.
Both old and new AAA games are on Linux today. Tribes 2, Descent: Freespace, Brutal Legend, Psychonauts, Natural Selection 2, HL2, TF2, Unreal Tournament 2004, the X3 series... etc., etc., etc.
Unless Mantle is a shedload easier to work with than OpenGL 3.x, I don't see it speeding the development of the Linux Unreal Engine 4 port. ;)
Bioshock Infinite? Starcraft 2? GTA V? Diablo 3? Skyrim? (I'm talking about native ports, not Wine)
Some of those you mentioned are Valve games, and they've been porting the games to Linux because of SteamOS.
I'm still not convinced that Mantle will be a significant motivator for AAA game producers to port to Linux. After all, if an "easier" way to get your game out the door was all that it took, wouldn't we have seen a bunch of Unreal Engine games on Linux back in 2004?
Can you convince me that Mantle is a substantially better or easier way of doing graphics programming than modern OpenGL?
Not sure. I'm surprised myself that there aren't more OpenGL games. One possibility is that OpenGL is too bloated/complicated (which Mantle would fix), but I don't know enough about OpenGL to state that with certainty.
This is not for performance. OpenGL has very low overhead, and already allows you to "directly tap into the hardware" and "fully exploit the capabilities of modern GPUs".
AMD wants people to write code that will not run on Nvidia and Intel hardware. Nvidia has been doing the same thing for years with CUDA.
Follow some of the top-end OpenGL developers on Twitter sometime; you'll change your tune quickly.
There's a significant amount of overhead in the existing OpenGL API, which currently can only be mitigated somewhat through vendor-specific extensions. But extensions alone aren't sufficient to address some of the serious issues that the OpenGL API has today.
OpenGL forces you to maintain a tremendous amount of state information that significantly increases overhead.
John Carmack and many others have explicitly mentioned this in past discussions.
While I'm horrified at the idea of revisiting the days of 3DFX glide and installing my own client ICD into a game driectory, if Mantle drives the OpenGL ARB to start seriously addressing those issues and increases competition, then I'm all for it.
It was my understanding that those involved with or in the know about both Wayland and Mir felt that Mir is a project in a very early state of development [0][1] that was started for the wrong reasons [2]. Could you point me to a knowledgeable person who doesn't work for Canonical who mentions that some significant good idea(s) from Mir worked their way into Wayland? :)
What, and people haven't been ragging on and even trying to replace OpenGL for years? Everyone used the GPU-specific API rather than OpenGL on PS3 to make it harder to port their code, not to get the maximum possible performance? The "leading game developers" that allegedly inspired Mantle aren't going to show?
Standards are great, and I'd love OpenGL drivers to be as fast as possible, but OpenGL being what it is, this API seems pretty interesting to me.
libgcm is pretty much just OpenGL with a few Sony specific extensions - plus you have to use their headers which use macros to build the command lists, probably pulled right out of NVidia's driver code.
It's quite fascinating how many of the PS3's APIs are wrappers around established standards/libraries, almost as if they were deliberately crafted to require more porting effort from developers.
OpenGL can introduce a lot of overhead, especially when moving data back and forth between CPU and GPU. As just one example, OpenGL gives you no control over texture swizzling, which can be a serious performance issue during texture upload.
That's sort of the fault of the hardware vendors though for not proposing any viable extensions that expose texture swizzling. Why would it get any better with a new API?
well CUDA is really for general purpose development on GPUs and to be fair if i recall correctly CUDA appeared before there were standard ways to to GPGPU (like openCL and directcompute).
the idea i got from the video is that mantle is a replacement for opengl and directx for "performance reasons".
i still agree with you though, this is just pure marketing to make people develop/buy AMD GPUs instead of something else.
There is a opportunity for performance improvements by making the API calls more practical for the hardware and unifying the design. Comparing an API at this level to OpenGL API exposes your ignorance.