VRAM (later): quantize skinned positions (16-bit per-instance box) as a pressure-only ladder rung #617

Open
opened 2026-10-10 01:20:14 +00:00 by sky_line · 0 comments
Owner

Follow-up to #616 (which takes the skinned output from 48 B to 20 B losslessly). Further: quantize skinned positions from fp32 (12 B) to 16-bit unorm inside each instance's bounding box (6 B + 2 pad): 20 B -> 16 B per vertex (48 -> 16 overall, -67%). Considered as an optional VRAM-ladder rung (only under pressure), not the default.

What it costs

  • Precision: ~0.03 mm on a 2 m avatar, ~0.3 mm on a 20 m giant / vehicle: well under clothing gaps (1-5 mm), so it does not cause poking by itself. (fp16 is not an option: positions are eye-relative and fp16 has 6 cm steps at 64-128 m.)
  • RT: acceleration-structure builds do not take unorm positions; needs snorm16 with a per-geometry transform (awkward for the grouped rigged BLAS) or a float copy for the BLAS (gives memory back).
  • Motion vectors: current and previous positions quantized separately add sub-0.1 mm motion noise (TAA / FSR would ignore it, but it is not zero).
  • Rig weld: welded vertices on different meshes quantize in different boxes, so seams could reopen by ~0.05 mm (sub-pixel); "exact" becomes "near".
  • Previous positions (12 B) and the optional history (24 B) could follow.

Decide later, after #616 and the other VRAM work (#614, #615) are measured.

Follow-up to #616 (which takes the skinned output from 48 B to 20 B losslessly). Further: quantize skinned positions from fp32 (12 B) to 16-bit unorm inside each instance's bounding box (6 B + 2 pad): 20 B -> 16 B per vertex (48 -> 16 overall, -67%). Considered as an optional VRAM-ladder rung (only under pressure), not the default. ## What it costs - Precision: ~0.03 mm on a 2 m avatar, ~0.3 mm on a 20 m giant / vehicle: well under clothing gaps (1-5 mm), so it does not cause poking by itself. (fp16 is not an option: positions are eye-relative and fp16 has 6 cm steps at 64-128 m.) - **RT:** acceleration-structure builds do not take unorm positions; needs snorm16 with a per-geometry transform (awkward for the grouped rigged BLAS) or a float copy for the BLAS (gives memory back). - **Motion vectors:** current and previous positions quantized separately add sub-0.1 mm motion noise (TAA / FSR would ignore it, but it is not zero). - **Rig weld:** welded vertices on different meshes quantize in different boxes, so seams could reopen by ~0.05 mm (sub-pixel); "exact" becomes "near". - Previous positions (12 B) and the optional history (24 B) could follow. Decide later, after #616 and the other VRAM work (#614, #615) are measured.
sky_line added this to the Slipstream project 2026-10-10 01:20:14 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#617
No description provided.