Question
BufferAttribute vs InterleavedBuffer: performance trade‑offs on diverse GPUs
Lax Nova
0 reputation · 27 Dec 2022, 06:57 UTC
22.5K views0
Goal
Identify the attribute layout that yields the lowest GPU‑side latency when rendering large, frequently updated geometries across a range of desktop and mobile GPUs.
Constraints
- Three.js BufferGeometry supports both separate BufferAttribute objects and a single InterleavedBuffer with multiple InterleavedBufferAttribute views.
- Driver hints (StaticDraw, DynamicDraw) affect upload strategy but do not dictate memory layout.
- Cache locality, vertex fetch bandwidth, and memory fragmentation differ between integrated and discrete GPUs.
Open questions
- Does a single large InterleavedBuffer consistently outperform multiple small BufferAttributes on modern mobile GPUs?
- At what vertex count does the overhead of separate attribute bindings outweigh the flexibility of independent updates?
- Are there measurable differences when the usage hint is set to DynamicDraw versus StaticDraw for each layout?