How reliable are ShaderAnalyzer timings ?
I have identical shader in GLSL and HSLS and i'v done performance analysis on it, here are results:
radeon 4870 HD
DX9 -> 3.50 cycles | 4.57 pixels/cycle | 68 ALU
DX10-> 3.60 cycles | 4.44 pixels/cycle | 79 ALU
GLSL-> 4.00 cycles | 4.00 pixels/cycle | 82 ALU
radeon 4670 HD
DX9 -> 4.37 cycles | 1.83 pixels/cycle | 68 ALU
DX10-> 4.62 cycles | 1.73 pixels/cycle | 81 ALU
GLSL-> 4.59 cycles | 1.74 pixels/cycle | 82 ALU
Seems that DX9 is fastest, then DX10 and at the end GLSL on that same shader (? it is possible at all - the shader will run much slower on GLSL in real life situation ?)
Shader uses 5 texfetches and some alu calculations, input is 5 UV coords (float2), output is single float4, no branches, no integer (or integer like) operations, only mul/add/sqrt/pow/saturate/clamp used,
so why the analysis so differs between apis ?
(for dx9/10 optimalization is level3 - for glsl - no such a choice)
PS. On nvidia tools for shader analysys GLSL/DX9/DX10 performance is almost equal (the glsl is slightly better than DX9/DX10 profiles).