Fog_carryover
CarryoverArrayDisabledFogCoord
Fixed function EXP fog with NV097_SET_FOG_GEN_MODE_V_FOG_X (the fog coordinate is consumed directly), drawn with NV097_DRAW_ARRAYS. A control row of small immediate mode quads is drawn first: one with fog disabled to show the unfogged geometry color, one with the initializer fog coordinate and one with the shared fog coordinate. The initializer quad is drawn last so that the context fog coordinate is left at the initializer value, which is not used by any other draw. Two rows are then drawn, one per variant fog coordinate, each with three quads:
CarryoverLineLoop
Renders a series of primitives using various draw modes on the left, setting fog coordinates. Then renders a quad using the same draw mode on the right without specifying a fog coordinate at all. The fog mode is set to EXP.
CarryoverLines
Renders a series of primitives using various draw modes on the left, setting fog coordinates. Then renders a quad using the same draw mode on the right without specifying a fog coordinate at all. The fog mode is set to EXP.
CarryoverLineStrip
Renders a series of primitives using various draw modes on the left, setting fog coordinates. Then renders a quad using the same draw mode on the right without specifying a fog coordinate at all. The fog mode is set to EXP.
CarryoverNopDraw
For each draw mode, renders a row of three quads. The left quad is a reference drawn with the nop draw's fog coordinate (red). The middle quad is drawn normally with a fog coordinate that produces no fog (blue). The middle quad is then drawn again with the nop draw's fog coordinate while color writes, depth writes, depth test, and stencil test are all disabled, so the draw produces no visible output. Finally a quad on the right is drawn without specifying a fog coordinate. If the right quad matches the middle quad, the nop draw did not update the carried fog; if it matches the left quad, the nop draw updated it. The color/zeta limit error check is disabled around the nop draw, with waits for the pushbuffer to become idle on either side.
CarryoverPoints
Renders a series of primitives using various draw modes on the left, setting fog coordinates. Then renders a quad using the same draw mode on the right without specifying a fog coordinate at all. The fog mode is set to EXP.
CarryoverPoly
Renders a series of primitives using various draw modes on the left, setting fog coordinates. Then renders a quad using the same draw mode on the right without specifying a fog coordinate at all. The fog mode is set to EXP.
CarryoverQuads
Renders a series of primitives using various draw modes on the left, setting fog coordinates. Then renders a quad using the same draw mode on the right without specifying a fog coordinate at all. The fog mode is set to EXP.
CarryoverQuadStrip
Renders a series of primitives using various draw modes on the left, setting fog coordinates. Then renders a quad using the same draw mode on the right without specifying a fog coordinate at all. The fog mode is set to EXP.
CarryoverTriFan
Renders a series of primitives using various draw modes on the left, setting fog coordinates. Then renders a quad using the same draw mode on the right without specifying a fog coordinate at all. The fog mode is set to EXP.
CarryoverTris
Renders a series of primitives using various draw modes on the left, setting fog coordinates. Then renders a quad using the same draw mode on the right without specifying a fog coordinate at all. The fog mode is set to EXP.
CarryoverTriStrip
Renders a series of primitives using various draw modes on the left, setting fog coordinates. Then renders a quad using the same draw mode on the right without specifying a fog coordinate at all. The fog mode is set to EXP.
CarryoverVertexSlots
Probes how carried fog values are associated with vertices. Each row draws a single priming batch of points, all stacked at the leftmost position: 8 + k blue (unfogged) points followed by one red (fogged) marker point, where k is the row label. Sixteen points are then drawn in a separate batch to the right without specifying a fog coordinate, so each shows the fog value it inherited. Points are used so that every inherited value is visible without interpolation.
FogCarryover
The left column triangles are rendered with the fog coordinate explicitly passed through from the vertex by the shader. The right column triangles do not specify the fog coordinate at all.