Hacker News new | ask | show | jobs
by pkaler 162 days ago
SIMD and data locality. You probably want to check across three vectors simultaneously and load the coordinates next to each other.

I'm guessing here. I haven't written video games in 20 years but struct packing/alignment was super important on the Sony PSP back then.

1 comments

For SIMD at least, the {mins[3], maxs[3]} representation aligns more naturally with actual instructions on x86. To compute a new bounding box:

new_box.mins = _mm_min_ps(a.mins[3], b.mins[3]);

You would want [4] not [3], with the last one being padding. Of course, you can't always afford that.
Indeed. This is classic array-of-structs versus struct-of-arrays.