How inFamous: Second Son Consumed PS4’s 8GB (4.5GB) RAM, GPU and CPU for Visual Optimization – Panel Details Revealed
InFamous: Second Son is one of the highly anticipated and visually most impressive video games released last month. The fans’ excitement for this game as a PlayStation 4 exclusive title just about matched Titanfall’s hype. Developed by Sucker Punch Productions, inFamous: Second Son strongly defended the developer’s claims and proved to be one of the most immersive PlayStation 4 games.
InFamous: Second Son Uses Utmost PlayStation 4 Potential Including 4.5 GB of the Available RAM and 6 CPU Cores
Looking at inFamous: Second Son’s beautiful graphics, smooth action and vibrant city, each inFamous seems to improve on the last. Sucker Punch Productions’ hard work is clearly visible in every scene of the game. To explain how inFamous: Second Son utilizes the power of PlayStation 4, Lead Engine Programmer Adrian Bentley demonstrated how PlayStation 4’s potential was used by the game development engine, at Game Developers Conference.
According to the infographics/slides shared by Sucker Punch Productions, the first and most important thing that comes to light is that inFamous: Second Son consumes 4.5GB out of the total 8GB PlayStation 4 RAM and the game renders on 6 cores of the 8 contained within PlayStation 4’s CPU. This means that the game uses all the memory and cores that are available because the remaining 2 CPU cores and 3.5GB of RAM is largely consumed by the OS. Data shared about InFamous: Second Son’s memory consumption matches with that of The Order: 1886.
Thanks to DualShockers for putting it together, below is what we pick up from the panel shared by Sucker Punch Productions.
- The RAM of the PS4 allowed Sucker Punch to increase memory budgets by four to eight times.
- I/O (input/output) speed was a big problem, even from the hard drive. Input/Output speed is the communication speed between the drive and the CPU.
- Measures were taken to reduce I/O pressure, caching seven more streaming chunks with a memory budget of about 240 MiB (Mebibyte, basically a more professional equivalent of megabyte) and using more and bigger media streaming pages with a budget of 40 MiB.
- Texture atlases were used for many purposes, with a budget of over 200 MiB. A texture atlas is a large texture that includes many sub-textures that can be used for many objects, instead of having separate texture files for each object.
- Ambient index was cached per static vertex with a budget of about 30 MiB.
- The tiled light list was stored for forward pass (4 MiB).
- Code was kept simple, using big linear buffers.
- Most of the 4.5 Gb of RAM actually available were used. You can see the full allocation below.
The slide shared below also shows how PlayStation 4’s CPU manages hundreds of jobs while inFamous: Second Son is running. Each “job” that CPU performs is a single computing task that helps in optimization of in-game environments.
SPUs (Synergistic Processing Unit) of the PS3′s Cell processor perform most of the tasks to render inFamous 2. Below you can see how the tasks performed by the six available cores of PlayStation 4 while rendering inFamous: Second Son differ from that performed by PlayStation 3’s SPUs while rendering inFamous 2.
Screenshots shared in the gallery below show how PlayStation 4’s CPU handles the tasks while they are split between threads. Each “job” is rowed while rendering a scene of inFamous: Second Son.
The potent CPU present in PlayStation 4 is able to handle 30,000 draws instanced in 10,000 actual draw calls, 100-400 asynchronous raycasts per frame and 50-100 animated characters with 300+ bones. Using system’s GPU at its maximum capacity is not a problem most of the times though most developers face adversities in maxing out CPU. It was hard for Sucker Punch Productions to utilize full competency of the CPU, where 50-70% was used for main jobs and 5-16% for other threads.
Breakdown of Geometry buffers passed down between the various effects used in inFamous: Second Son.
Lightening details in inFamous: Second Son were presented on hard objects as well as in the surrounding environment. Deferred shading was also implemented in most parts of in-game scenes. Various post productions effects implemented in the game are broken down to clarify how these effects are put together in different scenes.
The following effects were also used to enhance in-game environments:
- Indirect Diffuse Lighting with a budget of 25 MiB for the whole world and a resource cost of 1-3 ms. Data was cached to avoid redundant computation.
- Indirect Specular Lighting with Local Specular Cubemaps and Screen Space Specular Reflection.
Some of the inFamous: Second Son’s rendering was done by using GPU compute. This allowed the developers to cache data like particle and mesh processing, post production effects and facial animations. One of the problems caused by GPU compute is that despite being fast, synchronization with the CPU can be troublesome. This problem was solved by using compute rows running alongside the graphics pipeline. Latency was hidden by reducing register count. In conclusion, GPU compute is defined “Super awesome”
The slides below show how GPU compute was used for different effects:
Ending the detailed demonstration about how inFamous: Second Son managed to drop gamers’ jaws, Bentley mentioned few elements that Sucker Punch Productions is planning to come forward with in the future:
- Much more threading and compute.
- lighter weight instantiation.
- Improvement in perforce sync time.
- less manual ambient and faster baking.
- Better distant environment LOD (level of detail).
- Overhauled pathing system.
- Easier scripting reference for parts of objects.
- Fewer heavy weight objects.
All the slides used in the presentation can be downloaded from here. Below are more work-in-progress screenshots of inFamous: Second Son.