At the end of the nv_perf3x.dll file which is part of the
NVShaderPerf
there is a bunch of text which looks like a command line help for
a shader compiler that is used internally at nvidia.
The full text can be found at offset 121E90 using a hex editor
and is almost 900 lines long. It includes a lot of details about
hardware capabilities and even mentions NV4x.
Most of it is very technical, but there are many interesting
things, especially related to hand tuned shaders. Below are some
interesting quotes, including "hand tuned shaders", "3DMark" and "UT"!
Maybe NV3x is "Rankine" and Nv4x is "Curie"?
NVShaderPerf
there is a bunch of text which looks like a command line help for
a shader compiler that is used internally at nvidia.
The full text can be found at offset 121E90 using a hex editor
and is almost 900 lines long. It includes a lot of details about
hardware capabilities and even mentions NV4x.
Most of it is very technical, but there are many interesting
things, especially related to hand tuned shaders. Below are some
interesting quotes, including "hand tuned shaders", "3DMark" and "UT"!
First, all the data on any line whose initial keyword ends in INFO is
data that will be used in shader matching. That is to say this hand
tuned shader will be used if the data on the INFO lines matches the same
data associated with an incoming hand tuned shader.
SUBAPPINFO: 0xXXXXXXXX
This line identifies the sub-application. Not every application has
a sub-application. Things like the levels in UT are each a different
sub-app, or each of the tests in 3dmark03 or 3dmark01 are different
subapps.
CHIPINFO: identifier [+|- identifier] [+|- identifier] ...
This line is REQUIRED and identifies chips on which the pixel shader
can be used. The chips available are: ALLCHIPS, NV30, NV31, NV33,
NV34, NV35, NV36, NV3X, NV40, NV41, NV42, NV4X. Examples:
TEXTURESTAGEANISOCAP: (stage,cap) [, (stage,cap)] [, (stage,cap)] .
This line can cap the aniso for a given texture stage. The stage values
are hex numbers from 0x00 to 0x0f inclusive. The aniso cap values are a
decimal number from 1 to 16 inclusive. You cannot have the same stage
show up in more than one (stage,cap) pair in a given shader. Since
different hardware supports different sets of aniso levels on textures,
the value given here will be rounded down to the closest supported
hardware value when it is used. e.g. on Rankine only 1X, 2X, 4X, 8X are
supported. Curie supports all those plus 6X, 10X, 12X, 16X.
Maybe NV3x is "Rankine" and Nv4x is "Curie"?