Ray tracing...it takes imagination to do it in a mobile.
Three years and a few months ago, Imagination Technologies surprised the Technorati by buying struggling but clever Caustic Graphics. The value of ray tracing has been well established, as has the painfully slow process of rendering such physically perfect images. The idea of using ray tracing on a mobile device, the arena Imagination plays in, seemed farfetched. Equally questionable was the idea that IP provider Imagination would enter into the chip or AIB PC business -- it had been in that business, and that was why it went into IP.
There were hints that one day ray tracing would show up in a mobile device. After all, the performance of SoCs was accelerating at a rate faster than Moore's law, and screen resolution in tablets was exceeding that of PCs. But for ray tracing to be useful in a time-scale commensurate with a mobile device would require something new and novel. Traditional ray casting, millions of rays, 30 times a second, is a workload that challenges 300 watt GPUs backed by a 200W X86 CPU, not lightweight work.
Do you hear the trumpets? Caustic had that novelty. Everyone who looked at Caustic's technology (under deep, deep NDAs) judged the methodology valid, and impressive.
But ray tracing is a resource hog and time consumer. So Imagination used the novel Caustic RT engine, the powerful PowerVR shaders, and developed an invokable hybrid solution that lets the developers mix and match traditional, rasterized, polygon-based rendered objects (e.g., objects created using OpenGL ES) and physically accurate ray-traced elements in the same scene. This is a well known concept, but difficult to implement.
This hybrid rendering technique can provide high-quality dynamic lighting and shadow effects and can improve other elements of the game engine as well. One example is improving game AI. Characters in a first-person shooter that can start to see and understand the 3D environment around them, using the ray tracing to process spatial understanding, opens up a new world for realistic behavior when in-game agents can make decisions based on direct line-of-sight calculations that model what they are able to see. (There's another side benefit to this, which helps overcome some of the latencies in the round-trip, action-reaction time in high-performance games).
The ability of GPUs to claim millions of rays per second is not a new concept. For example, a current-generation, desktop-class ray tracer using GPU compute and rendering a very simple scene, resident in a tiny cache, might be able to deliver millions of rays per second in a very simple shading scenario.
However, in 99% of real-world cases, those aren't useful rays; and they would need a power budget upwards of 300W. Imagination believes it can accomplish similar results with its PowerVR ray-tracing-based hardware.
This is because, in a GPU, multiple threads execute the same instruction (e.g., SIMD). This works great for vertex and pixel processing workloads. High coherency between threads is essential for efficiency and non-coherent execution paths (the appearance of divergent branches results in masked-out operations and lost GFlops of performance).
However, realistic ray tracing typically results in non-coherent processing because of the way light behaves in the real world (think scattered). Therefore, it is very difficult to maintain coherency among threads performing ray tracing. This is why ray tracing is not a good match for traditional GPU architectures.
Next Page: The Holy Grail