Insomniac Games explores 'SPU Shaders'

Friday 28th September 2007, 02:08:00 AM, written by Carl Bender

Since establishing the technology section of their website in August, the Insomniac Games engine team has regularly used the page as a means of communicating aspects of their PS3 research to the broader development community. Seeking to proliferate industry best-practices, the page shares a philosophical similarity to engine director Mike Acton's independent effort via CellPerformance.com; specifically, the idea that shared progress has the potential to pay dividends down the line for the industry as a whole in the form of a more capable pool of talent. Eric Christensen, a principal engine programmer, states "Insomniac has overcome many hurdles involved in understanding the PS3 hardware... we've decided to share what we know... Our hope is for other studios to take what we've learned and use the information as a head start for creating great technology."

Most recently, Insomniac has published the ideas behind internal work being done to field 'SPU shader' support across a number of their larger systems.

Designed to alleviate the contextual burden that might affect certain programmers in their approach to Cell, the idea behind SPU shading is to create pipelines within larger SPE-based systems that resemble in spirit the models more generally associated with GPUs. Within this framework, a programmer is able to insert one or more 'shaders' - essentially a fragment of SPU code - that will accomplish custom work inside of the larger system, with code and required data explicitly associated with one another. Shaders are system-specific in nature, and must conform to parameter, code size, and scratch memory norms. From a performance perspective, one of the primary advantages of this model is that independent programming objectives within a system can be addressed while at the same time reducing the need for callbacks and synchronization requirements between the SPE and PPE.

In their provided overview, Insomniac reveals that the igPhysics system developed by Christensen has been the first to be re-worked to support SPU shading. igPhysics was modified to support the dynamic loading of code and transformed into a multistage pipeline, with each stage loading the next. Although the system pipeline itself remains fixed at runtime, the code being run can be dynamic due to the shader model; the resultant system is both faster and simpler than before. The move to the shader model has led Insomniac to the creation of a real system of deferred physics, with performance of roughly twice its immediate predecessor.

Mike Acton indicates that Insomniac will be expanding the number of SPE systems utilizing the shading model going forward, extending next to "...game (AI) logic. Custom shaders for specific types of characters, updating asynchronously on the SPUs."

The shading .pdf itself is viewable on Insomniacs website. Other technical documents of potential interest include, but are not limited to, Curved Surfaces on the RSX, Dynamic SPU Code, and the SPU Cheat Sheet.


Discuss on the forums

Tagging

±

Related News

Diving into Anti-Aliasing
RWT explores Haswell's eDRAM for graphics
ATI shoots a Bolt through its GPU compute stack
AMD releases CodeXL 1.0
Travelling in Style: Beyond3D's C++ AMP contest
Analysis of Ivy Bridge Graphics Architecture at RWT
RWT analyzes Kepler's architecture
Nvidia 680 GTX (Kepler) Released
Microsoft Releases C++ AMP Open Specification
Nvidia's 2x Guaranteed Program