GPU/Internal Registers: Difference between revisions

Steveice10 (talk | contribs)
Steveice10 (talk | contribs)
Line 3,980: Line 3,980:
| unsigned, Culling mode
| unsigned, Culling mode
|}
|}
This register is used to configure the face culling mode.


Culling mode values:
Culling mode values:
Line 4,006: Line 4,008:
| float1.7.16, width / 2
| float1.7.16, width / 2
|}
|}
This register is used to configure the viewport width, along with GPUREG_VIEWPORT_INVW.


=== GPUREG_VIEWPORT_INVW ===
=== GPUREG_VIEWPORT_INVW ===
Line 4,016: Line 4,020:
| float1.7.23, 2 / width
| float1.7.23, 2 / width
|}
|}
This register is used to configure the viewport width, along with GPUREG_VIEWPORT_WIDTH.


=== GPUREG_VIEWPORT_HEIGHT ===
=== GPUREG_VIEWPORT_HEIGHT ===
Line 4,026: Line 4,032:
| float1.7.16, height / 2
| float1.7.16, height / 2
|}
|}
This register is used to configure the viewport height, along with GPUREG_VIEWPORT_INVH.


=== GPUREG_VIEWPORT_INVH ===
=== GPUREG_VIEWPORT_INVH ===
Line 4,036: Line 4,044:
| float1.7.23, 2 / height
| float1.7.23, 2 / height
|}
|}
This register is used to configure the viewport height, along with GPUREG_VIEWPORT_HEIGHT.


=== GPUREG_FRAGOP_CLIP ===
=== GPUREG_FRAGOP_CLIP ===
Line 4,046: Line 4,056:
| unsigned, Enabled (0 = disabled, 1 = enabled)
| unsigned, Enabled (0 = disabled, 1 = enabled)
|}
|}
This register is used to enable clipping planes.


=== GPUREG_FRAGOP_CLIP_DATA''i'' ===
=== GPUREG_FRAGOP_CLIP_DATA''i'' ===
Line 4,054: Line 4,066:
|-
|-
| 0-23
| 0-23
| float1.7.16, Clipping plane coefficient
| float1.7.16, Clipping plane coefficient ''i''
|}
|}
This register is used to configure clipping plane coefficients.


=== GPUREG_DEPTHMAP_SCALE ===
=== GPUREG_DEPTHMAP_SCALE ===
Line 4,066: Line 4,080:
| float1.7.16, Near - Far
| float1.7.16, Near - Far
|}
|}
This register is used to configure the depth range scale.


=== GPUREG_DEPTHMAP_OFFSET ===
=== GPUREG_DEPTHMAP_OFFSET ===
Line 4,074: Line 4,090:
|-
|-
| 0-23
| 0-23
| float1.7.16, Near
| float1.7.16, Near + Polygon Offset
|}
|}
This register is used to configure the depth range bias.


=== GPUREG_SH_OUTMAP_TOTAL ===
=== GPUREG_SH_OUTMAP_TOTAL ===
Line 4,086: Line 4,104:
| unsigned, Number of following attributes
| unsigned, Number of following attributes
|}
|}
This register is used to configure the total shader output map attributes.


=== GPUREG_SH_OUTMAP_O''i'' ===
=== GPUREG_SH_OUTMAP_O''i'' ===
These registers map components of the corresponding vertex shader output register to specific fixed-function semantics.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 4,108: Line 4,126:
|}
|}


The semantic ids are:
These registers map components of the corresponding vertex shader output register to specific fixed-function semantics.
 
Semantic values:


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 4,206: Line 4,226:
| unsigned, Early depth function
| unsigned, Early depth function
|}
|}
This register configures the early depth test function.


Early depth function values:
Early depth function values:
Line 4,235: Line 4,257:
| unsigned, Enabled (0 = disabled, 1 = enabled)
| unsigned, Enabled (0 = disabled, 1 = enabled)
|}
|}
This register sets whether the early depth test is enabled.


=== GPUREG_EARLYDEPTH_CLEAR ===
=== GPUREG_EARLYDEPTH_CLEAR ===
Line 4,245: Line 4,269:
| unsigned, Trigger (0 = idle, 1 = clear)
| unsigned, Trigger (0 = idle, 1 = clear)
|}
|}
This register triggers clearing the early depth data.


=== GPUREG_SH_OUTATTR_MODE ===
=== GPUREG_SH_OUTATTR_MODE ===
Line 4,255: Line 4,281:
| unsigned, Use texture coordinates (0 = don't use, 1 = use)
| unsigned, Use texture coordinates (0 = don't use, 1 = use)
|}
|}
This register is used to configure the shader output attribute mode.


=== GPUREG_SCISSORTEST_MODE ===
=== GPUREG_SCISSORTEST_MODE ===
Line 4,265: Line 4,293:
| unsigned, Enabled (0 = disabled, 3 = enabled)
| unsigned, Enabled (0 = disabled, 3 = enabled)
|}
|}
This register is used to enable scissor testing.


=== GPUREG_SCISSORTEST_POS ===
=== GPUREG_SCISSORTEST_POS ===
Line 4,278: Line 4,308:
| unsigned, Y1
| unsigned, Y1
|}
|}
This register is used to configure the scissor test start position.


=== GPUREG_SCISSORTEST_DIM ===
=== GPUREG_SCISSORTEST_DIM ===
Line 4,291: Line 4,323:
| unsigned, Y2
| unsigned, Y2
|}
|}
This register is used to configure the scissor test end position.


=== GPUREG_VIEWPORT_XY ===
=== GPUREG_VIEWPORT_XY ===
Line 4,304: Line 4,338:
| unsigned, Y
| unsigned, Y
|}
|}
This register is used to configure the viewport position.


=== GPUREG_EARLYDEPTH_DATA ===
=== GPUREG_EARLYDEPTH_DATA ===
Line 4,314: Line 4,350:
| unsigned, Clear value
| unsigned, Clear value
|}
|}
This register is used to configure the early depth clear value.


=== GPUREG_DEPTHMAP_ENABLE ===
=== GPUREG_DEPTHMAP_ENABLE ===
Line 4,324: Line 4,362:
| unsigned, Enabled (0 = disabled, 1 = enabled)
| unsigned, Enabled (0 = disabled, 1 = enabled)
|}
|}
This register is used to enable depth range.


=== GPUREG_RENDERBUF_DIM ===
=== GPUREG_RENDERBUF_DIM ===
Line 4,340: Line 4,380:
| 0x1
| 0x1
|}
|}
This register is used to configure the output framebuffer dimensions.


=== GPUREG_SH_OUTATTR_CLOCK ===
=== GPUREG_SH_OUTATTR_CLOCK ===
Line 4,368: Line 4,410:
| unsigned, 'normquat' or 'view' component present (0 = absent, 1 = present)
| unsigned, 'normquat' or 'view' component present (0 = absent, 1 = present)
|}
|}
This register controls the clock supply to parts relating to certain attributes.


== Texturing registers ==
== Texturing registers ==