PlayStation 4 features PSSL [PlayStation Shader Language], a custom shader language which is a mix of DX11 and OpenGL 4.4. Many of you must not be aware that the PlayStation 4 is capable of supporting Partially Resident Textures, which is roughly equivalent to tiled streaming using DirectX on the Xbox One.
So what are Partially Resident Textures? As the name suggests, Partially Resident Textures are the only texture portions that needs to be placed in the GPU at one time. John Carmack’s famous ‘Megatexture’ technology in RAGE is an excellent example of Partially Resident Textures. In short this method improves the cache and memory bandwidth. So if the developer does not want to render an entire texture, he/she can load only the relevant bits resulting into better texture streaming and cutting down the amount of redundant texture processing.
This is where Graphine Software comes in. Graphine focuses on delivering texture streaming and texture compression middleware for the games and visualization industries. Using Graphine Software’s Granite SDK, even more better looking games with reduced load times can be made possible on the PlayStation 4.
Aljosha Demeulemeester, Graphine CEO confirmed to GamingBolt that Partial Resident Textures for the PlayStation 4 is aimed at doing the same thing as the Tiled Resources feature of DX 11.1+ using Granite SDK.
“Sony has announced that Partially Resident Textures (PRT) is available for PS4. This is aimed at doing the same thing as the Tiled Resources feature of DX 11.1+. We sometime refer to both using the term ‘hardware virtual texturing’,” he said to GamingBolt.
So how does Granite SDK actually works with ‘hardware virtual texturing’ and how it can improve graphical fidelity and cut down load times? Aljosha gave a very in-depth explanation for the same.
“We call Granite SDK a fine-grained streaming system because we load very small tiles of texture data. This is happening in the background while playing the game. The size of the tiles is configurable but a commonly used setting is 128×128 pixels. When using virtual texturing, you will only load the texture tiles into memory that are actually viewed by the virtual camera. The main benefit is that you can save on the amount of video memory that you need for you texture data, but there are a bunch of side benefits. Loading times are reduced and disk access is more constant and predictable. The bottom-line is that you can really increase the graphical fidelity of games, while staying within the limited of the current hardware,” Aljosha stated to GamingBolt.
But due to slightly different architectures of the PlayStation 4 and Xbox One [the former has unified and the latter has embedded memory architecture], is the process of texture streaming different across the two consoles? This question could easily come up for a developer who is working on a multiplatform game using the Granite SDK.
That is actually not a problem, according to Aljosha. “Granite SDK indeed takes care of all the platform specific stuff and makes sure that you’re up and running quickly on both platforms. Granite exposes a set of configuration parameters like the size of the texture cache in main memory, the amount of threads used for decoding, the maximum allowed throughput of texture data per frame, etc.”
However a game developer will still need to tweak the parameters according to the game’s needs.
“A game developer will want to tweak these parameters depending on the behaviour of his/her own game, and based on the capabilities of the hardware of a specific platform. We provide fast implementations of the Granite runtime for both platforms so that only the values of these configuration parameters might change on the different platforms(from the game developer’s perspective that is),” Aljosha added.
Granite SDK currently supports PC, Mac, Linux, PS4 and Xbox One.