3 ms·
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 have
by pkaler 9mo 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.
- shihab 9mo agoFor 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]);
- delta_p_delta_x 9mo agoIndeed. This is classic array-of-structs versus struct-of-arrays.
- astrange 9mo agoYou would want [4] not [3], with the last one being padding. Of course, you can't always afford that.