i am under the understanding that consoles have no need for an api and i am wondering how much performance does a console gain from this lack of overhead?
thank you for your replies and please correct me if i have gotten something wrong
i am under the understanding that consoles have no need for an api and i am wondering how much performance does a console gain from this lack of overhead?
thank you for your replies and please correct me if i have gotten something wrong
The ps4 will have low level hardware access, I believe all other consoles currently use a high level API system similar to directx.
I think it was wendel and logan talking about it something about AA using about 20% on low level input versus high level like directx.
A lot; look at how long the current consoles have lasted? Sure, the graphics are pretty bad by modern-standards, but try to run Bioshock Infinite, on low graphics, on a 6 year old HTPC. Pretty impressive what low-level access gets you.
API doesn't have much to do with the performance. Good APIs combine low level access with easy to use high-level code (making it easier to write and saving developers time.)
The difference between the Consoles and the PCs is most likely due to the fact if you program to a console you would now specificly how the hardware is implemented and used. So the API for a console will be better because it is only one machine you are targetting.
On PCs you will have different hardware depending on your setup. So writing to a graphics card is not always as easy to implement as it sounds like. You don't compile the code every time you install games on a computer, it usually comes in a packaged installer.
The first years of a console you will see a low usage of the potential of the console. This is usually because the API needs refining, which is an ongoing process. So the longer a machine is on market the better the API and thereby the execution of the programs on the machine will be.
(An equivalent in the PC market is the Apple operating systems (MACOS X) with little to no driver support on mainboards and hardware support outside the apple "trusted devices" thereby it is easier to predict how the machine will handle a certain instruction.)
Yes, the API's make a lot of difference, not only the way the API itself is made, but also which hardware features it supports on a low level. As brennan said, look at how much graphics intensive stuff can be run on basically very old and slow devices, like consoles or ARM-based devices.
MS-Windows API's have very limited functionality (only about a third of the UNIX Open-API's), and they are made in C++, which limits the low level access, so that the access to direct hardware functionality is inhibited, which makes Windows very inefficient, whereas OpenGL for instance is compiled in C, which has very good low level functionality (direct access to hardware).
The only problem is, that the manufacturers of GPU's have to issue drivers that support the several API's. Even though it's very easy to issue OpenGL4 drivers for instance for just about any modern graphics card (the community even succeeds in reverse engineering these drivers without any help whatsoever from the manufacturers, because it's a lot easier than supplying even functioning Direct3D DX11 drivers), a lot of manufacturers are under contract with Microsoft, either directly or indirectly, to hold back other drivers. This has lead to a number of strange situations, for instance Apple, the preferred platform of the creative industry, has not had general support for OpenGL or OpenCL acceleration for video rendering..., or GNU/Linux, which is clearly the future gaming platform with Android and Steambox, has had no drivers from AMD or nVidia that support all features of OpenGL4, even though nVidia itself uses them for the project Shield (for running Windows DX11 games remotely).
So Microsoft is willing to bring the entire evolution to a halt, because they can't keep up anymore. Not only in terms of technology, but also in terms of marketshare. Microsoft has priced itself out of the market, because MS-Windows is a very expensive piece of software (especially compared to the other main operating systems like MacOS, which is 25 USD, or GNU/Linux, which is free), and a lot of people do not want to pay for an upgrade, especially one that they know from experience will most probably completely screw up their lives. So they keep the version of Windows they have. So more than 25% of the gaming computers used now in the Western world, still run a version of Windows that is capable of maximum DirectX9, which is previous generation console grade graphics, while less than half of the Western world Windows PC's are capable of DirectX11. These customers will not upgrade anytime soon, because the Windows API's are so shitty and inefficient, that they would need to buy new hardware to be able to use the features enabled by the new API's in the the versions of the Windows... So there is noone to develop these games for, Windows has made the critical error of closing everything down like Apple, only to see that doing so only causes their products to compete with other version of their products... so noone invests in the development of better games, because the users wouldn't pay premium for new features they would not be able to see on their machine anyway.
Woah! that answered my question and a huge amount more!
Thank you everyone for putting the time and effort into those detailed answers...
you have enlightened me :)