When we visited Imagination Technologies at CES, they were showing off some intriguing hardware that augments their GPUs in order to accelerate ray-traced rendering. Ray tracing is a well-known and high-quality form of rendering that relies on the physical simulation of light rays bouncing around in a scene. Although it's been used in movies and in static scene creation, ray tracing has generally been too computationally intensive to be practical for real-time graphics and gaming. However, Imagination Tech is looking to bring ray-tracing to real-time graphics—in the mobile GPU space, no less—with its new family of Wizard GPUs.
Today at GDC, the firm announced that its PowerVR Wizard GR6500 graphics processor IP is available for licensing, and it also revealed a major software alliance to enable game developers to take advantage of Wizard's custom ray-tracing hardware.
The Wizard GPU is based on the PowerVR Rogue graphics processor that we're pretty darned certain resides in Apple's latest phones and tablets. More specifically, the PowerVR GR6500 is a ray-tracing enabled version of the PowerVR Series6XT Rogue core. This announcement means SoC makers are free to begin developing chips that incorporate the Wizard GPU, so end products that include this GPU are likely a year or more from reaching the market. Size-wise, Imagination Tech says the GR6500 ought to fit "comfortably" onto a 28-nm SoC for use in a tablet—or perhaps even a very high-end smartphone. Eventually, we expect to see an entire family of Wizard GPUs, scaled up and down for different applications.
Wizard builds on Rogue by adding dedicated hardware intended to accelerate ray tracing. Imagination Technologies won't divulge how much larger Wizard is than Rogue due to its augmentation, but the company told us at CES that it expects the silicon cost to be "surmountable." Surely that means it's a relatively modest increase.
The new units are shaded in dark blue in the diagram above. We don't yet have a full map to how each of these new hardware blocks fits into the ray-tracing pipeline, but most of them appear to be fixed-function units aimed at tackling specific portions of the process that are too thorny for the CPU or shader programs to handle. The scene hierarchy generator, for instance, is a dedicated hardware block that steps in after vertex processing is complete. It does the tricky work of assembling the data structures necessary for ray tracing using its own novel algorithms, relieving the CPU of a burden it couldn't shoulder at real-time rates.
On a similar note, one key to the speed and efficiency of Wizard's ray tracing scheme is the GPU's ability to create work for itself. Light rays are treated as database queries, and depending on the result of a query, the GPU may inject additional rays to be traced. (Think of light bouncing off of a surface and scattering in multiple directions.)
Imagination Technologies claims this combination of dedicated hardware, general-purpose GPU shaders, and its own custom pipeline is roughly 100 times more efficient than doing ray tracing with GPGPU programming techniques alone.
What does that sort of advance mean for performance? Well, the PowerVR GR6500 GPU has four "USCs," or unified shader clusters, and a total of 128 "ALU cores." The shader array is capable of over 150 GFLOPS of throughput at 600MHz (or twice that rate with FP16 datatypes.) For ray tracing, Imagination Technologies says the same GPU can process 300 million rays and 100 million dynamic triangles per second at the same clock speed.
If we were to assume an average of a single light ray per pixel, the hardware would be capable of driving a five-megapixel display at 60Hz. Realistically, though, you'll need more rays than that. Imagination Technologies' James McCombe estimates that movies average 16-32 rays per pixel in order to get a "clean" result. He notes that this first Wizard GPU is capable of tracing an average of 7-10 rays per pixel at 720p and 30Hz or 3-5 rays/pixel at 1080p and 30Hz.
As a result, Imagination Tech isn't advocating for a complete transition to the exclusive use of ray tracing any time soon. Instead, it's pushing a hybrid approach that combines traditional rendering with ray tracing. For example, many games today use a rendering technique called deferred shading to make multi-source lighting of complex geometry more efficient. Wizard's ray-tracing capability can be deployed to take care of the final, deferred shading step. Firing rays from the light sources in a scene also offers a means of generating dynamic shadows. McCombe says incorporating ray tracing in this way can reduce complexity while producing higher-quality images.
The sample image below shows a hybrid-rendered scene that incorporates reflections and transparency, which would be challenging for traditional deferred shading.
Of course, realizing this vision for hybrid rendering in games will require widespread support for Wizard's hardware in the software tools used by game developers. Imagination Technologies has taken a big first step on that path by partnering with Unity Technologies, the firm behind the popular Unity game engine, to incorporate ray tracing into Unity in two ways. First, the Unity 5 editor will use a software-only version of Imagination Tech's ray tracing routines to preview how light maps will look in-game.
Second and more importantly, Unity and Imagination will be working together on building support for Wizard ray tracing and hybrid rendering directly in the Unity engine, and they will be showing a demo of hybrid deferred rendering in action at GDC.
I'm curious to see this demo in action and to compare its image quality to that of current mobile and PC games. Cyril will be on the GDC show floor soon, and we'll try to send him by to capture some video.