Yesterday Japanese firm DMP revealed the graphics processor contained within the Nintendo 3DS ending speculation as to where the GPU would come from, and how powerful it really is.
A few days ago we assessed the capabilities of Nintendo’s new handheld based on seeing a handful of high-performance games and comparing them to titles on other platforms. It was a rough guestimate on how powerful we thought the machine to be, with a potential re-assessment upon having concrete new information. That re-assessment this is not, instead what follows is a look at the actual GPU that is powering the hardware and how the specs released ties into what we’ve seen of the 3DS’s capabilities so far.
First things first. The GPU powering the 3DS is the DMP PICA200 graphics core, a 2006 chip designed solely for portable device applications – everything from mobile phones to games consoles is mentioned in the specs document – and which actually packs quite a reasonable punch for cheap and efficient graphics rendering in a handheld device. With the design of the chip being complete in 2005 and released into market the following year, it isn’t in the same league as the GPU powering the iPhone, although it does fit squarely in between the GameCube and the Xbox in terms of overall ability.
According to DMP the chip is rated at 15.3 million polygons per-second (pps), with a pixel fill-rate of 800 million pixels per-second (more than the GCN but less than XB and Wii), all running at relatively fast 200mhz. Interestingly the numbers here are actually real-world figures in terms of the chip being used as a GPU solution in custom hardware. However, the demos and games shown for the 3DS don’t add up visually with the numbers given above, with the most complex titles pushing no more than 4, maybe 5 million polygons per-second at best.
So how can this be explained? Could it simply be a case of early development hardware, or a lack of optimisation with first-generation games? Well, this is particularly unlikely seeing as some of the software shown at Nintendo’s press event was highly polished and running at a brisk 60fps – not something un-optimised titles tend to do this early on in the hardware life cycle.
You could also argue then that the use of 3D, and having to render each frame twice could be having a considerable impact on the system’s graphics performance, if only were not for the fact that the 3DS renders one 800x240 image and splits the horizontal resolution down to 400 for each eye. At this low resolution, such a heavy performance hit isn’t very plausible seeing as you are basically rendering 800x240 as a total single screen resolution with 60fps equating to 60fps, and not 30fps as it would be for rendering for display using regular stereoscopic 3D images.
This resolution is hardly GPU busting compared to what the iPhone is doing – its basically little more than a expanded version of the Saturn or PSone’s low resolution mode.
Instead all signs point to Nintendo downgrading the chip in some way. The most likely scenario is the same one Sony took when launching the PSP, downcloking the GPU in order to save on battery life at the expense on overall performance. This lowering of the clock speed would indeed have the undesired effect of lower polygon throughput, thus resulting in the lower geometry counts we are seeing in the first batch of 3DS games.
The other area is memory. Even if the chip is capable of delivering somewhere in the region of 15.3 million polys per-second, the 3DS might not have enough graphics RAM in order to hold more than 4-6 million textured, lit and fully shaded polygons on screen, in which case the full power of the GPU is largely irrelevant with the exception of the extra grunt being used to obtain a stable 60fps in ‘most case’ scenarios.
Either way, without actually seeing the entire specification set of the machine we can’t really make any more assessments on how powerful it is, or how much of the above GPU performance is obtainable in real-world scenarios in 3DS games.
More interesting though, is the GPU’s lack of any programmable pixel shaders. We estimated that the 3DS might in fact have pixel and vertex shaders in our initial assessment of its capabilities last week due to seeing what looked blatantly like shader-based effects being visible. As it turns out this is only half the story.
The 3DS is basically an Open OpenGL ES 1.1 compatible chip with some customised fixed-function effects and vertex shading capabilities, but no pixel shader support of any kind. It has the ability to perform advanced effects such as per-pixel lighting, refraction mapping, procedural texturing, soft shadows, and gaseous object rendering. All of which are carried out using fixed hardware routines, and not as hinted at by Nintendo, shaders themselves. However, like we mentioned in our original article many of the effects created through the use of shaders can also be duplicated using fixed-function hardware. And in this case DMP have bumped things up considerably, with more advanced extensions than most previous fixed-function T&L GPU’s tended to have.
The fact that many, myself included, saw evidence of pixel shaders at work proves that using a cheaper, older fixed-function design was the correct way to go. Many of the custom extensions are much more powerful than the ones available on either the Wii or the GCN, and in most cases perfectly replicate the look of programmable pixel effects.
For such a low-resolution screen, and the kind of handheld Nintendo makes, the above solution seems like a good fit. For one we can expect the 3DS to be much cheaper than competing platforms with similar 3D LCD screen technology, and at the same time still have some pretty impressive visuals for the price.
Once again it has to be said that Nintendo definitely have been very thoughtful, and indeed economical in its part selection for the 3DS, using old and outdated hardware to good effect. It’s something that seems to have worked for them in the past with both the NDS and the Wii, and will no doubt work for them again with the 3DS as well.