The following results are from a simple benchmark alternatively rendering to/from an INT8 RGBA pBuffer/texture with a short GLSL fragment program.
The cards used are a 6800 Ultra and a x800pro on otherwise nearly identical systems. The general validity of these results has been confirmed by tests on various other platforms.
Some points are noteworthy:
Here are two more graphs showing the vast difference in behaviour:
The cards used are a 6800 Ultra and a x800pro on otherwise nearly identical systems. The general validity of these results has been confirmed by tests on various other platforms.
Some points are noteworthy:
- The NV drivers are CPU limited at a much higher it/s rate, suggesting far lower CPU/memory/non-graphics related overhead. Good job!
- Using 8 bit int buffers, the GF68 is about 1.8 times as fast on non-cpu limited runs.
- When switching to fp16, the x800 performance remains nearly unchanged, while the 68 drops dramatically and consistently to less then half the it/s.
- At fp32, the x800 sees a small dip to ~85%. The 6800 again drops to less than 50%.
- ATI drivers suck at int8, and do not perform nearly as well as possible. (Highly unlikely, as INT8 is the "game" case)
- The GF68 is totally memory bandwidth limited while the x800 is mostly gpu limited. (Very unlikely as the workload and specs are similar, and still would not explain the >2x drop)
- NV architecture/drivers suck at sampling from FP textures. (Perhaps, but why the extreme performance drop?)
- NV architecture/drivers slow down immensively when rendering to an FP buffer. (Perhaps, and a bit disappointing considering all the cinematographic rendering talk)
- My benchmark (without any knowledge on my part, I assure you) hits a singularly contained performance "low spot" in NV drivers. (Possible, but then why are the INT8 tests so fast?)
- A combination of all the above (to varying degrees).
Here are two more graphs showing the vast difference in behaviour: