Originally Posted by fateswarm
I have noticed a lot people are unaware of the nature of APIs like OpenGL. I do know that a hardware-specialized API can go even further on this, but I just want to expose the extend the "CPU is not getting in the way" already:
- OpenGL 1.1's feature: EXT_texture_object: Offload your textures on the graphics card
- OpenGL 1.5's most prominent feature: ARB_vertex_buffer_object, Offload your geometry on the card
- 2.0: Revolutionary feature: ARB_shader_objects: Offload 3d programming logic on the card (shaders aren't just "shading" as the name wrongly implies, they are whole programs that lately have reached extreme complexity)
- 2.1: ARB_pixel_buffer_object: Guess what, let's offload some more, this time even more specialized image data
- 3.0: APPLE_vertex_array_object: Let's not even tell it what to render, offload whole lists of data in arrays (I simplified it crudely, I know).
and it goes on and on and on like this
- 4.0: ARB_tesselation_shader: Let's not even send the vertices in a ready-made form, split them in shapes on the card using programs (the shaders mentioned above?), offload
and it goes on and on like this. I didn't even touch the surface and I wasn't too accurate.
But the truth of the matter is, graphics cards are already offloaded upon tons of what a game does, and that's the reason your game takes a lot of time to load, for most of the time while you are playing, the main system does very little.
Hence, this API, or any specialized hardware API while it could of course have an even lower level approach, it's not something "new" that it doesn't want the CPU to communicate with it.
I suspect the whole situation exists mainly because the PCI-E bus is extremely slow compared to VRAM<->GPU intercommunication, or it could be an elaborate scheme of GPU makers.
OpenGL has always been more efficient than DirectX, and many equivalent features which currently DirectX10/10.1/11 support have already been in OpenGL a few versions ago. I remember when I asked in PCSX2 forum that why can OpenGL not run PS2 emulator more efficiently than DirectX. They replied Microsoft crippled down OpenGL in Windows as OpenGL is somewhat depend on Windows's d3D.
AMD is not forcing anyone to adopt GCN. They just now really have a solution of what we've been suffering for years by huge overhead of DirectX. This was clearly not about showing off to Nvidia that we have better solution, because its open source. They are the hardware/driver developers who are telling people that Mantle enables 9x more draw calls per second than other APIs by reducing CPU overhead. This might be a perfect solution to many of us who suffer bottleneck due to lower CPU core frequency. And as they have developed this API they are providing with their GPU. Also developers will never drop DX, not at least untill Nvidia either adopt Mantle or comes up with the same or more efficient API than DX.
But I think Nvidia has it. Nvidia has always been ahead one generation than AMD in OpenGL. It has been proven many times OpenGL is faster than DX. But then again most of us gamers have to be adopting Linux. I have no problem in going to Linux even though I don't know much about it. And if Mantle support will be on Linux. Both AMD's and Nvidia's users will gain from it.Edited by sumitlian - 9/26/13 at 1:18am