View Single Post
Old 09-03-04, 01:48 AM   #22
Demirug
Registered User
 
Join Date: Nov 2002
Posts: 131
Default Re: GeForce FX 5950 and Source DX 9 performance...

shaderprofile (pixelshader)

R3XX: 2.0
NV3X: 2.0 + 2.A
R420: 2.0 + 2.B
NV4X: 2.0 + 2.A + 2.B + 3.0

2.A supports more options than 2.B. The only reason why NV3X do not support it is the higer number of available tempregister. But in normal cases on a NV3X you need less tempregister for the same job as on a R420.

shaderprofile (vertexshader)

R3XX: 2.0
NV3X: 2.0 + 2.A
R420: 2.0
NV4X: 2.0 + 2.A + 3.0

profiles are only suporteted from the shadercompiler that is part of the SDK (not the runtime).

There are 3 versions of this shadercompiler

DX9 SDK: 2.0
DX9 SDK 2003: 2.0 + 2.A
DX9 SDK 2004: 2.0 + 2.A + 2.B + 3.0

The shadercompiler get an HLSL shader as input and give you an asm shader as output. Different profiles results in different shaderversions for the runtime.

profile 2.0 -> version 2.0
profile 2.A -> version 2.X
profile 2.B -> version 2.X
profile 3.0 -> version 3.0

For everything that can do more than 2.0 but less than 3.0 the runtime have only one version 2.X. If the chip support this version it have to tell the runtime all the 2.X options that are useable.

Back to topic.

The shaders for the DX9 path of the source engine are written in HLSL and compiled from valve before the give it to us. Valve use the DX9 SDK 2003 compiler and only the 2.0 profil. nVidia suggests that you should use the 2.A profil for NV3X chips.
Demirug is offline   Reply With Quote