GPU/Internal Registers: Difference between revisions
No edit summary |
|||
(19 intermediate revisions by 6 users not shown) | |||
Line 26: | Line 26: | ||
| Parameter mask | | Parameter mask | ||
|- | |- | ||
| 20- | | 20-27 | ||
| Number of extra parameters (may be zero) | | Number of extra parameters (may be zero) | ||
|- | |||
| 28-30 | |||
| Unused | |||
|- | |- | ||
| 31 | | 31 | ||
Line 4,158: | Line 4,161: | ||
These registers map components of the corresponding vertex shader output register to specific fixed-function semantics. | These registers map components of the corresponding vertex shader output register to specific fixed-function semantics. | ||
Semantics that have not been mapped to a component of an output register have a value of 1 | |||
Semantic values: | Semantic values: | ||
Line 4,993: | Line 4,998: | ||
| unsigned, Minification filter | | unsigned, Minification filter | ||
|- | |- | ||
| 3-10 | | 3-6 | ||
| | | Min LOD (usually 0) | ||
|- | |||
| 7-10 | |||
| Max LOD (usually 6) | |||
|- | |- | ||
| 11-18 | | 11-18 | ||
Line 5,037: | Line 5,045: | ||
|- | |- | ||
| 0-7 | | 0-7 | ||
| unsigned, Texture offset | | unsigned, Texture offset (Mipmap level 0 / base level) | ||
|- | |||
| 8-15 | |||
| unsigned, mipmap level 1 offset (usually 0x80) | |||
|- | |||
| 16-23 | |||
| unsigned, mipmap level 2 offset (usually 0xC0) | |||
|- | |- | ||
| | | 24-31 | ||
| | | unsigned, mipmap level 3 offset (usually 0xE0) | ||
|} | |} | ||
This register is used to set the procedural texture unit's offset. | This register is used to set the procedural texture unit's offset. Mipmap level 4-7 seems to be hardcoded at offset 0xF0, 0xF8, 0xFC and 0xFE . | ||
=== GPUREG_PROCTEX_LUT === | === GPUREG_PROCTEX_LUT === | ||
Line 5,105: | Line 5,119: | ||
|- | |- | ||
| 12-23 | | 12-23 | ||
| | | fixed0.0.12 with two's complement ( [0.5,1.0) mapped to [-1.0,0) ), Difference from next element | ||
|} | |} | ||
Line 5,119: | Line 5,133: | ||
|- | |- | ||
| 12-23 | | 12-23 | ||
| | | fixed0.0.12 with two's complement, Difference from next element | ||
|} | |} | ||
Line 5,133: | Line 5,147: | ||
|- | |- | ||
| 12-23 | | 12-23 | ||
| | | fixed0.0.12 with two's complement, Difference from next element | ||
|} | |} | ||
Line 5,164: | Line 5,178: | ||
|- | |- | ||
| 0-7 | | 0-7 | ||
| | | signed, Half of red difference between current and next color table elements | ||
|- | |- | ||
| 8-15 | | 8-15 | ||
| | | signed, Half of green difference between current and next color table elements | ||
|- | |- | ||
| 16-23 | | 16-23 | ||
| | | signed, Half of blue difference between current and next color table elements | ||
|- | |- | ||
| 24-31 | | 24-31 | ||
| | | signed, Half of alpha difference between current and next color table elements | ||
|} | |} | ||
Line 5,239: | Line 5,253: | ||
| Previous | | Previous | ||
|} | |} | ||
Using Previous (15) as a source in the first TEV stage returns the value of source 3. If source 3 has Previous it returns zero. Previous buffer (13) always returns zero. | |||
=== GPUREG_TEXENV''i''_OPERAND === | === GPUREG_TEXENV''i''_OPERAND === | ||
Line 5,703: | Line 5,719: | ||
This register is used to configure the blending function. | This register is used to configure the blending function. | ||
Equation values: | '''Equation values:''' | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 5,725: | Line 5,741: | ||
|} | |} | ||
Function values: | Blend equations 5, 6, 7 appear to behave the same as blend equation 0 (Add) | ||
'''Function values:''' | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 6,314: | Line 6,332: | ||
|- | |- | ||
| 24 | | 24 | ||
| | | unsigned, Vertical flip? (0 = enable, 1 = disable) | ||
|} | |} | ||
Line 6,449: | Line 6,467: | ||
| 0-23 | | 0-23 | ||
| fixed0.16.8, Depth direction attenuation proportion | | fixed0.16.8, Depth direction attenuation proportion | ||
|- | |||
| 24-25 | |||
| unsigned, Depth function | |||
|} | |} | ||
This register is used to configure the gas depth direction attenuation proportion. | This register is used to configure the gas depth direction attenuation proportion, as well as the gas depth function. | ||
Gas depth function values: | |||
{| class="wikitable" border="1" | |||
! Value | |||
! Description | |||
|- | |||
| 0 | |||
| Never | |||
|- | |||
| 1 | |||
| Always | |||
|- | |||
| 2 | |||
| Greater than/Greater than or equal | |||
|- | |||
| 3 | |||
| Less than/Less than or equal/Equal/Not equal | |||
|} | |||
=== GPUREG_FRAGOP_SHADOW === | === GPUREG_FRAGOP_SHADOW === | ||
Line 6,866: | Line 6,906: | ||
| unsigned, Fresnel FR LUT disabled (0 = enabled, 1 = disabled) | | unsigned, Fresnel FR LUT disabled (0 = enabled, 1 = disabled) | ||
|- | |- | ||
| 20 | | 20 | ||
| unsigned, Term 1 reflection component RB LUT disabled (0 = enabled, | | unsigned, Term 1 reflection component RB LUT disabled (0 = enabled, 1 = disabled) | ||
|- | |- | ||
| 21 | | 21 | ||
| unsigned, Term 1 reflection component RG LUT disabled (0 = enabled, | | unsigned, Term 1 reflection component RG LUT disabled (0 = enabled, 1 = disabled) | ||
|- | |- | ||
| 22 | | 22 | ||
| unsigned, Term 1 reflection component RR LUT disabled (0 = enabled, | | unsigned, Term 1 reflection component RR LUT disabled (0 = enabled, 1 = disabled) | ||
|- | |- | ||
| 24 | | 24 | ||
Line 7,691: | Line 7,731: | ||
This register sets whether to use the geometry shader configuration or reuse the vertex shader configuration for the geometry shader shading unit. | This register sets whether to use the geometry shader configuration or reuse the vertex shader configuration for the geometry shader shading unit. | ||
When disabled and the geometry unit is not in use, as configured by GPUREG_GEOSTAGE_CONFIG, uniforms, outmap mask, program code and swizzle data are propagated to the geometry shader unit. | |||
=== GPUREG_START_DRAW_FUNC0 === | === GPUREG_START_DRAW_FUNC0 === |