PlayStation 4 features PSSL [PlayStation Shader Language], a custom shader language which is a mix of DX11 and OpenGL 4.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 the site.
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 behavior 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.