charlequin said:The performance-per-watt on all mobile devices is dire. Battery technology is simply not good enough currently for the things we're trying to power
95% of practical shader usage in games falls into a straightforward set of frequently used effects that are well-understood, have a practical effect of improving game visuals, and are suitable to either heavily "realistic" or strongly stylized visuals. In practice this might limit developers somewhat in that other 5% of scenarios, but it's hard to see how catering to developer fancies (which by definition are coming from the people who don't have to worry about hardware costs or battery life) is remotely as important as providing the fundamental, workhorse tools they need to do their job -- the latter of which the 3DS' design unquestionably does.
I think you're pulling out numbers here fairly arbitrarily. If you were to survey the engines in use today on programmable hardware (both the licensed and private ones), and look at their approaches to the pipeline, you might see more variety in approach than you expect, even if there is often recurring patterns in intended end result effects. Depending on how 'fixed' a GPU is, it will be more or less limiting in the choices and tradeoffs and 'bespokeness' you can bring to your engine in achieving those net results and/or others that the GPU's designers may have never thought of. And that this may have some side effects. That's really all I was reminding of.
charlequin said:Your position here is basically like arguing that the PS3 and 360 were design failures because their GPUs are left behind with Shader Model 3 techniques while the PC world is racing forward into exciting new areas. You're riding the Epic line: demanding flexibility that 95% of developers will never even dream of using, even where it's essentially inappropriate to include it. Cutting-edge iterative technologies will advance beyond what fixed-function stable platforms do; that is the purpose of cutting-edge iterative technologies. That doesn't mean that well-designed, fixed-function closed systems are obsolete or not well suited in many ways to the purpose they're put to.
Hmmm. First of all, I never said 3DS's GPU was a design failure, nor obsolete. In fact, for the record, I think it's probably a very good design in the context of the parameters and priorities that we speculate Nintendo has. I was simply pointing out the tradeoffs. brain_stew asked what the big deal was and made some statements about programmable hardware, and I was responding that with the advantages of the approach of the 3DS GPU granted, there was some tradeoff. We were also talking more generally about hardware choices in the mobile market, and my reference to new upcoming hardware that might offer performance that makes more sense of 'generality' wasn't a knock at 3DS, but just placing more of a question mark over the benefit of its kind of approach for future devices as performance scales up and offers the kind of punch that makes general programmability more attractive. It does not mean that for 3DS, today, for the parameters we all think Nintendo has, that I think its approach to the GPU is 'bad'.