GPU/Internal Registers: Difference between revisions
Steveice10 (talk | contribs) |
Steveice10 (talk | contribs) |
||
Line 5,534: | Line 5,534: | ||
| 0x0E4 | | 0x0E4 | ||
|} | |} | ||
This register is used to configure the fragment operation mode and whether to use logic ops or blending. | |||
Fragment operation mode values: | Fragment operation mode values: | ||
Line 5,588: | Line 5,590: | ||
| unsigned, Alpha destination function | | unsigned, Alpha destination function | ||
|} | |} | ||
This register is used to configure the blending function. | |||
Equation values: | Equation values: | ||
Line 5,672: | Line 5,676: | ||
| unsigned, Logic op | | unsigned, Logic op | ||
|} | |} | ||
This register is used to configure the logic op. | |||
Logic op values: | Logic op values: | ||
Line 5,746: | Line 5,752: | ||
| unsigned, Alpha | | unsigned, Alpha | ||
|} | |} | ||
This register is used to configure the blending color. | |||
=== GPUREG_FRAGOP_ALPHA_TEST === | === GPUREG_FRAGOP_ALPHA_TEST === | ||
Line 5,762: | Line 5,770: | ||
| unsigned, Reference value | | unsigned, Reference value | ||
|} | |} | ||
This register is used to configure alpha testing. | |||
Function values: | Function values: | ||
Line 5,815: | Line 5,825: | ||
| unsigned, Mask | | unsigned, Mask | ||
|} | |} | ||
This register is used to configure stencil testing. | |||
Function values: | Function values: | ||
Line 5,862: | Line 5,874: | ||
| unsigned, Z-pass operation | | unsigned, Z-pass operation | ||
|} | |} | ||
This register is used to configure stencil result operations. | |||
Operation values: | Operation values: | ||
Line 5,921: | Line 5,935: | ||
| unsigned, Depth write enabled (0 = disabled, 1 = enabled) | | unsigned, Depth write enabled (0 = disabled, 1 = enabled) | ||
|} | |} | ||
This register is used to depth testing and framebuffer write masking. | |||
Depth function values: | Depth function values: | ||
Line 5,992: | Line 6,008: | ||
| unsigned, Allow read (0 = disable, 0xF = enable) | | unsigned, Allow read (0 = disable, 0xF = enable) | ||
|} | |} | ||
This register configures read access from the color buffer. | |||
=== GPUREG_COLORBUFFER_WRITE === | === GPUREG_COLORBUFFER_WRITE === | ||
Line 6,002: | Line 6,020: | ||
| unsigned, Allow write (0 = disable, 0xF = enable) | | unsigned, Allow write (0 = disable, 0xF = enable) | ||
|} | |} | ||
This register configures write access to the color buffer. | |||
=== GPUREG_DEPTHBUFFER_READ === | === GPUREG_DEPTHBUFFER_READ === | ||
Line 6,015: | Line 6,035: | ||
| unsigned, Allow depth read (0 = disable, 1 = enable) | | unsigned, Allow depth read (0 = disable, 1 = enable) | ||
|} | |} | ||
This register configures read access from the depth and stencil buffers. | |||
=== GPUREG_DEPTHBUFFER_WRITE === | === GPUREG_DEPTHBUFFER_WRITE === | ||
Line 6,028: | Line 6,050: | ||
| unsigned, Allow depth write (0 = disable, 1 = enable) | | unsigned, Allow depth write (0 = disable, 1 = enable) | ||
|} | |} | ||
This register configures write access to the depth and stencil buffers. | |||
=== GPUREG_DEPTHBUFFER_FORMAT === | === GPUREG_DEPTHBUFFER_FORMAT === | ||
Line 6,038: | Line 6,062: | ||
| unsigned, Format | | unsigned, Format | ||
|} | |} | ||
This register configures the depth buffer data format. | |||
Format values: | Format values: | ||
Line 6,067: | Line 6,093: | ||
| unsigned, Format | | unsigned, Format | ||
|} | |} | ||
This register configures the color buffer data format. Color components are laid out in reverse byte order in memory, with the most significant bits used first. | |||
Pixel size values: | Pixel size values: | ||
Line 6,099: | Line 6,127: | ||
| RGBA4 | | RGBA4 | ||
|} | |} | ||
=== GPUREG_EARLYDEPTH_TEST2 === | === GPUREG_EARLYDEPTH_TEST2 === | ||
Line 6,110: | Line 6,137: | ||
| unsigned, Enabled (0 = disabled, 1 = enabled) | | unsigned, Enabled (0 = disabled, 1 = enabled) | ||
|} | |} | ||
This register enables the early depth test. | |||
=== GPUREG_FRAMEBUFFER_BLOCK32 === | === GPUREG_FRAMEBUFFER_BLOCK32 === | ||
Line 6,121: | Line 6,150: | ||
|} | |} | ||
To untile the color buffer when using the 32x32 block format, use bit 16 of the [[GPU/External_Registers#Transfer_Engine|display transfer flags]]. It is unknown if there are any advantages to using the 32x32 format. | This register configures the framebuffer block mode. To untile the color buffer when using the 32x32 block format, use bit 16 of the [[GPU/External_Registers#Transfer_Engine|display transfer flags]]. It is unknown if there are any advantages to using the 32x32 format. | ||
Render block mode values: | Render block mode values: | ||
Line 6,145: | Line 6,174: | ||
| unsigned, Depth buffer physical address >> 3 | | unsigned, Depth buffer physical address >> 3 | ||
|} | |} | ||
This register configures the depth buffer physical address. | |||
=== GPUREG_COLORBUFFER_LOC === | === GPUREG_COLORBUFFER_LOC === | ||
Line 6,155: | Line 6,186: | ||
| unsigned, Color buffer physical address >> 3 | | unsigned, Color buffer physical address >> 3 | ||
|} | |} | ||
This register configures the color buffer physical address. | |||
=== GPUREG_FRAMEBUFFER_DIM === | === GPUREG_FRAMEBUFFER_DIM === | ||
Line 6,171: | Line 6,204: | ||
| 0x1 | | 0x1 | ||
|} | |} | ||
This register configures the framebuffer dimensions. | |||
=== GPUREG_GAS_LIGHT_XY === | === GPUREG_GAS_LIGHT_XY === | ||
Line 6,187: | Line 6,222: | ||
| unsigned, Planar shading density attenuation | | unsigned, Planar shading density attenuation | ||
|} | |} | ||
This register configures gas light planar shading. | |||
=== GPUREG_GAS_LIGHT_Z === | === GPUREG_GAS_LIGHT_Z === | ||
Line 6,203: | Line 6,240: | ||
| unsigned, View shading density attenuation | | unsigned, View shading density attenuation | ||
|} | |} | ||
This register configures gas light view shading. | |||
=== GPUREG_GAS_LIGHT_Z_COLOR === | === GPUREG_GAS_LIGHT_Z_COLOR === | ||
Line 6,213: | Line 6,252: | ||
| unsigned, View shading effect in line-of-sight direction | | unsigned, View shading effect in line-of-sight direction | ||
|} | |} | ||
This register configures gas light shading in the line-of-sight direction. | |||
=== GPUREG_GAS_LUT_INDEX === | === GPUREG_GAS_LUT_INDEX === | ||
Line 6,223: | Line 6,264: | ||
| unsigned, Index | | unsigned, Index | ||
|} | |} | ||
This register is used to set what index to write to with GPUREG_GAS_LUT_DATA''i''. | |||
=== GPUREG_GAS_LUT_DATA === | === GPUREG_GAS_LUT_DATA === | ||
Line 6,234: | Line 6,277: | ||
|} | |} | ||
These registers behave as a FIFO queue. Each write to these registers writes the provided value to the gas look-up table, starting at the index selected with | These registers behave as a FIFO queue. Each write to these registers writes the provided value to the gas look-up table, starting at the index selected with GPUREG_GAS_LUT_INDEX. | ||
==== Gas Look-Up Table ==== | ==== Gas Look-Up Table ==== | ||
Line 6,279: | Line 6,322: | ||
| fixed0.16.8, Depth direction attenuation proportion | | fixed0.16.8, Depth direction attenuation proportion | ||
|} | |} | ||
This register is used to configure the gas depth direction attenuation proportion. | |||
=== GPUREG_FRAGOP_SHADOW === | === GPUREG_FRAGOP_SHADOW === | ||
Line 6,292: | Line 6,337: | ||
| float1.5.10, Penumbra scale with reversed sign | | float1.5.10, Penumbra scale with reversed sign | ||
|} | |} | ||
This register is used to configure shadow properties. | |||
== Fragment lighting registers == | == Fragment lighting registers == |