Console memory is a key cause for concern with developers, and after the previous generations RAM limitations with both the Xbox 360 and Playstation 3, it’s fair to say anticipation was high how much RAM Microsoft and Sony would pack into their systems. The previous generation managed a rather meager 512MB (though some of this was reserved for OS functionality), and considering the units were pushing towards 720P textures, the RAM limitations of both machines was felt quickly by developers.
Bryan Tarlowski, Marketing Director at Gamebase and Yoonjae Hwang, a lead engineers on Gamebryo, provided a short commentary on the RAM limitations of both machines and what the future could hold for developers and gamer’s alike.
“In next release, Gamebryo will support 64-bit platforms, and 4GB RAM (or 3GB effectively) limit will be removed,” they began. This is a pretty important issue, as the current built of GameByro is 32 Bit .exe, drastically reducing the amount of RAM the software can access. “Actually this is a requirement from the latest consoles and DCC tools (which stands for Digital Content Creation). On top of it, recent graphics APIs and platforms support GPU virtual memory. Combining both of them will largely reduce the limited memory issue,”
“One of the key trends in the latest rendering APIs is commandbuffer basedrendering, which enables multi-core CPU utilization for sending graphics commands to GPU, Gamebryo is making progress in increasing this functionality.” For those of you who’re unfamiliar with what a Command Buffer is, I’ll provide a brief description. Typically applications using a graphics API (Application Programming Interface) loads driver and API functionality into its own private memory reserve (in other words, this RAM is ONLY for the application). Within this you’ll find the Command Buffer itself, which all of your API calls are held. You can think of these as commands being issued to the GPU (so in other words, the system tells the CPU what to do).
As for the multi-core rendering, this is a given for next generation consoles. Comparing a single CPU core of a desktop PC to a console shows a major difference in not only the clock speed but also the IPC (Instructions per Clock). More info here and also from from our exclusive interview with Allegorithmic. Both systems utilize AMD Jaguar CPU cores (two modules, with four cores each module) for eight cores total, but two of those are reserved for OS functionality. Due to the low power nature of these CPU cores, it’s imperative for all cores to be available to the renderer, or you could have a situation where the rendering stalls while you’re waiting for a maxed out core to catch up.
“Also, rather than forcing developers to use a specific lighting/shading scheme like physically based rendering, we are working to offer more flexible material system that allows artists to express their imagination intuitively,” they continue. “To that end, our artists tools, including DCC tool plugins will be deeply integrated to Max/Maya in order to aid artists in producing more detailed in-game graphics.”
Some of you will likely be nodding your head, with Microsoft’s Tiled Resources coming to mind, (or Volume Tiled Resources which will be introduced with DirectX 11.3 onwards, see our analysis here). But don’t forget Sony’s own ‘version’ of Tiled Resources (pdf from Sony).
There are a few things to remember – both the Xbox One and PS4 do have physical RAM limitations. Both machines have 5GB of RAM available to developers (if you take into account OS reserves). Microsoft’s Xbox One handles its OS reserve and game reserves in a particularly interesting way, which we’ve detailed in our Microsoft and AMD Developer Day Analysis. The HyperVisor OS controls two other Operating Systems inside the Xbox One. The first is known as ERA (Exclusive Resource Allocation) which is for games, and the second is SRA (Shared Resource Allocation), which is for your Xbox One’s dash and UI.
Sony are possibly set to increase the amount of RAM available to developers with the PS4, but most of this is hear say and they won’t commit to anything as yet. We do however have a demonstration of the RAM layout of the Playstation 4 from Sucker Punch Productions Infamous Second Son Post Mortem breakdown analysis we conducted.
While PRT or TR (to give them friendlier terms) will help, and API’s of the future certainly do support them, in the end RAM is still a precious entity that isn’t limitless. There are also other considerations we’ve got to take into account, such as the level of GPU / CPU performance of the machines too.