Originally Posted by Mr. Nice
Yeah your right, I said as much months back in the 3mood thread about fp16. On my 6800GT the performance advantage was quite negligible as well for this option.
As a point of order though, it's not fp12, that's fx12.
On another couple of the settings, both doom3 and quake4 actually use precision hint fastest in the standard interaction.vxp already, and quake 4 by default already does what the "swizzle" option does (which is mask the final result by xyz, ie skips writing out the redundant w channel). Indeed, quake 4's interaction.vxp is replete with quite aggressive write masks (as opposed to doom3's, which contains none). Finally, quake 4 already does the specular with maths, not a texture lookup, and indeed it does it with one less instruction then quak4/3mood
. Quak4/3mood subtract's 0.75, squares it, then multiplies by 16, 3 instructions. Quake 4 uses a single MAD instruction to multiple by 4 then subtract 3, and then squares it, which is mathematically equivalent (multiplying by 4 before squaring is the same as multiplying by 16 afterwards, since 4 squared is 16, and similarly 3 is subtracted instead of 0.75 since 4x0.75=3).
Well older drivers has "ARB_precision_hint_fastest" and "FP16 precision in arithmetic operations" conflict, so it is recommended to use the 80 series drivers. Also "FX12 ALU operations" option with "Cube normalization" option may cause a very "blocked" highlights of specular. "FX12 ALU operations" option should be avoid on the NV4x and G7x.
I haven't seen any problems with "FP16" options on the NV4x and G7x but there could be a problems on the NV3x because I didn't test my Q4 tweaks on my 5800u or 5900u.
"SUB/MUL/MUL" should be most of cases 1-2fps faster in Doom 3 and Quake 4 than "MAD/MUL" though "MAD/MUL" was one cycle faster in my fragment program analysis.
EDIT! Quake 4 standard interaction.vfp is optimized for ATI Vec3D + Vec1D hardware....