I'm trying to understand how much GPU performance is actually affected by struct alignment and padding. Are layouts such as std140 and std430 overly conservative on modern hardware, or do their alignment rules still provide meaningful benefits? I'm especially interested in whether saving VRAM and memory bandwidth is worth using tighter layouts, even if that introduces less convenient access patterns or extra offset calculations.
2 Answers
It depends heavily on the buffer size and the bottleneck. For small data structures, alignment padding usually has little noticeable effect. Once you’re transferring or processing millions of vertices or instances, though, the extra bytes can increase bandwidth use and put more pressure on caches, so a tighter layout may help.
Memory layout matters on virtually every GPU architecture. The important tradeoffs are not just VRAM capacity, but also how much data moves through caches and memory buses, how accesses are coalesced, and whether the shader needs extra instructions to decode the layout. A smaller buffer can be faster, but a compact layout is not automatically better if it causes inefficient or irregular loads.
That’s the part I’m unsure about: if a tighter representation saves around 30% of VRAM and reduces transfer and cache traffic, can those savings outweigh the extra address calculations or less-friendly access pattern?

If the GPU doesn’t support scalar layout, would calculating tighter element offsets in the shader be a reasonable way to avoid the padding from the normal array stride?