the mat3
is actually 3 vec4
s as each vec3 is 3 floats aligned to 16 bytes (or at least it may not straddle a 16 byte boundary)
struct Object
{
float[4] color;
float[4][3] transform;
float depth;
float pObjIndex;
//float align1;
//float align2;
};