From my perspective as an application's developer, however, the R300 has some fine print that makes it difficult to deal with:
- It features only 24-bit floating point precision (as opposed to 32-bit precision in all other shader-enabled hardware from ATI or NV). This is why the reflective water looks square and pixelated up close on these cards.
- It has a 96 instruction limit per shader (as opposed to the 1024 instruction or larger limit in all other shader-enabled hardware from ATI or NV.) X-Plane 9's current water shader is right on the bleeding edge of exceeding this limit. In fact, the water pattern is simplified for this set of GPUs to stay within the 96 instruction limit.
- Since the cards were really quite decent for their time, they are still in field and in use.
This shows up in X-Plane as a pile of special cases...X-Plane 9 productizes 2.5 renderers:
- A no shader renderer for old GPUs and buggy drivers.
- A shader-based renderer for modern hardware.
- A special-case on the shader based GPU to meet the limits of the R300.
7 comments:
The worst special cases ever are for configurations you can't test yourself.
#ifdef RARE_HARDWARE
// do funky stuff that I can't refactor
// without huge risk because I sure
// can't test it.
#endif
Since the R420 is can be seen as two 300's back-to-back, do these limitations apply to the 420 as well?
I am pretty sure that the R420 doesn't have the instruction limit, and I think it's also full 32-bit float inside, but I can't confirm that - I don't have one myself.
I only ask because my water looks "looks square and pixelated up close" and I have an X800 XT.
I looked around a bit on the web and found a little evidence for R420 using 24-bit still, none for 32-bit.
But I have to say, even 32-bit isn't that much at the scale of X-Plane's coordinate system. When you don't happen to be near the origin there's only about a centimeter of precision (not counting cumulative rounding). That jitter is getting on my nerves. I don't mean the reflections in particular (couldn't care less about that), but the plane in external views and anything nearby from any view, really, like runways.
Yep - 32 bits isn't much. Jittering effects are not from the card usually though - usually it's from the sim not being very, very careful with how we manage those 32 bits.
I know X-Plane is to blame. ;-)
Post a Comment