cdrkf :
gamerk316 :
To be fair, the OGL extensions have been in the API for a while now. No one uses them because of driver specific problems, however. And DX has been trying to improve performance for two major releases now, starting with DX10 and going on through DX11.2. Nothing new has been added since Mantle has come out; these improvements have been there for a while.
As for "software tweaks", there's always a tradeoff between ease of development and performance. Use Java instead of C++? Lose 5% performance. Use C++ instead of C? Subtract another 5%. C instead of optimized assembly? Take off another 10% on top of everything. There's a fine line between the ease I can write code and the algorithmic performance benefits that result, and the absolute code performance of coding to a lower level.
Oh yeah I fully agree- I do a bit of embeded software development and much prefer to write in C than assembly (code in C is actually readable!)...
I'm not saying Mantle has changed what was going on in the background, however it has perhaps highlighted the issues more (so people are actually looking at the new extension in OGL for example), and also the draw call improvement in Mantle is quite significant. Other improvements in mantle are smaller and probably possible with other APIs with
Up until last year, I had to work on one of these:
http://en.wikipedia.org/wiki/IBM_AP-101
Specifically, the IBM AP-101F. Got really good at optimized assembly during that time. We really cared about code size, to the point where if we had a branch that jumped 260 words, we would recode the software to get the jump within 256 words, so we could use a 16 bit pointer rather then a 32 bit one. We really cared about wasting 16 bits like that.
Compare that to PC's, where if you have a 10 iteration FOR loop, people use a 32-bit Integer value without batting an eyelash. Heck, even an 8-bit short would be twice as large as you need. But on PC's, you don't care. If you REALLY wanted to, you could run Crysis on a few Megs of RAM. But no one is willing to optimize to that level anymore.
Point being, you can do a lot with 256k, if you know how to use it. We did land on the moon with just 36k for crying out loud!