Vector*Matrix#

The vector * matrix multiplication operation has quite a reasonable cost, despite the number of calculations that need to happen.

However, optimisations such as taking advantage of knowing that w is 1, do not reduce the cost.

fragColor = t * m1; // 4x4 matrix, eight cycles
{mov}
{wdf}
{sop, sop, sopmov}
{sop, sop, sopmov}
{sop, sop}
{sop, sop, sopmov}
{sop, sop, sopmov}
{sop, sop}
fragColor.xyz = t.xyz * m2; // 3x3 matrix, four cycles
{sop, sop, sopmov}
{sop, sop}
{sop, sop, sopmov}
{sop, sop}