Reverend said:
nelg said:
Reverend, are you suggesting that, with all else being equal and if ATI supported FP32, games may appear different than they do today (referring to DX9 games)?
That's a loaded question and one I do not want to dare risk answering (because I'm not in the business of selling games). Who knows what the ATI folks posting here would've responded if the R300 had reasonable FP32 performance...
That's actually pretty trivial to do -- Moving an R300 to FP32 would of simply required upping the 24b DP units to 32b (it's really just a substitution -- we have FP32 units all over as well) and increasing GPR space to 32b. It's really simple 30%+ increase in area (GPRs have 30% more space reqs, adders are pretty much 30% larger, while multipliers are larger than 30% more).
The problem is not getting good FP32 performance in R300 (reasonably easy), it's making it cost effective. That's hard. 30% more for pixel shaders is quite a bit of extra area, which, for all pratical and useful purposes, is a simple waste. You can reduce something else, or increase the cost. I think it's fair to say that if we reduced "something" else, then performance would of been affected and that's not acceptable. Increasing the cost, well, that's something that one has to decide upon. We were given a target cost, and we sort of went past it; another 30% growth would of meant less parts out (9700 at 499 back then, would not of been cool) or smaller margins -- These are not acceptable.
I think we have to look at a wider picture (that some probably hadn't thought of) -- that of the business of making games. Games such as space-constrained first-person-shooters (perfect latest example is Doom3) atm gain very little from FP32. This is not due to lack of 3D knowledge from such game programmers but from probably a collective lack of creativity from a single development house. The trend appears to be that gamers want bigger "worlds" to play/explore, and this applies to first-person-shooters as well. Bigger worlds has much bigger demands. Higher precision counts, as an example of such demands. Creating a game engine that works well in small and large worlds, with the thought of licensing business, should be the smart move -- the costs and complexity would be too high for a programmer to make a game engine that only applies to small worlds. If it isn't obvious, what I'm saying is that one of the things where higher precision is a big deal is a game set in a large world, which IMO is the way gamers like their games to be.
Bigger worlds really has no effect on PS precision requirements. You can construct a world so that it is divided into regions of interests, so that within those regions, limits of PS (I can't even think of many cases where PS precision matters; possibly for some large repeating textures) and Z aren't important. In all those cases, geometry is computed in 32b SPFP, and doesn't involve 24b.
What does the majority of the folks here know about the importance of "floating point" itself?
PS. I've just had some beer, so excuse me if I appear to be going OT.
I hope it's good beer. All in all, I still believe that for current applications FP24 is more than ample, and very few things would of required, if any. In fact, feedback from ISVs has been great on R300 and now R420 -- Easy to program, very predictable performance, clean orthogonal feature set (wrt to performance), etc... -- Compared to the competition (at least last gen), it's been night and day. I don't remember one complaint about FP24. BTW, FP24 was not an ATI only decision. MS specified that FP24 was the high precision format for DX9 (SM2) -- It's really not an ATI only decision. You at least need to blame everyone involved (including potentially all IHVs that agreed to it), if you're so against it.