Phoenix
Member
tahrikmili said:I don't want to turn this into an nVidia bashing thread but the point is not that partial precision was faster - of course the lower the precision the faster the application, so what? Let's go ahead and play all our games in FX12 or something? The point is that full precision spec for DX9 was 24-bit and nVidia went out of their way to incorporate 32-bit - so in full precision their cards ran like ASS and developers had to go out of their ways to code pp.
So is that a problem with the GPU (your original assertion) no. That is not a GPU bug and if you'd just have written the code in GL the nVidia driver team would have rejoiced with you while mocking the hoops you had to go through for DirectX (which they did on many occasions).
Your example with SM2 and SM3 is totally unrelated. SM3 and SM2 are 'standards'.
No they aren't. Can you take SM2 code for an nVidia part and run it exactly on an ATI SM2 part? No. SM2 and SM3 are specifications - they are very far from being standards.
When developers can not code for a standard but have to go out of their way to make their game run on a particular hardware that can not run the standards well because it was poorly designed, it becomes a pain in the ass.
OMG I can't believe you said that. You just brought up the biggest problem with shaders altogether. There are many reasons why there are multiple rendering paths for even the high end cards out there and it ain't precision issues. If you're going to claim that something isn't a standard because you have to take some time to make your application run on a particular piece of hardware then DirectX isn't a standard, OpenGL isn't a standard, hell not even HTML is a standard. Unless you're dealing with the same hardware in case A and case B, you will have to deal with the variations between case A and case B. Hell driver CAPBITs for YEEEEARS have been the source of many issues that make developers go out of their way to make a game run on a particular piece of hardware. You must be talking about some other API other than DirectX... that must be it.