Skip to content

Hardware Oddity Combiner Packing

Mainkill1 edited this page Sep 27, 2026 · 1 revision

Combiner-dependent bit packing

Evidence: original Xbox shader source. Rich Geldreich published the attribute-packing shader for his 2003 Gladiator demonstration. It writes material/gloss fields into BA and a packed normal into RG, then uses lookup textures to decode those values in later lighting passes. He states that the packing depends on Xbox combiner precision.

This is one render-target word carrying several logical fields, not hardware multiple-render-target support. A host translation can look visually close while changing a bit consumed by a later lookup.

Proposed test: reconstruct the shader without treating the source text as a precision oracle. Sweep inputs around quantization boundaries; compare raw 32-bit render-target words with hardware before comparing decoded images. Record intermediate clamping, rounding, and packing separately.

Source: Geldreich's original shader and notes.

See also NV2A Graphics Architecture and The formerly illegal combiner mode.

Clone this wiki locally