Expanding pixel quads from 2x2 to 4x4 could open up the possibility of AVX2 or even AVX512 optimizations. The edge and gradient equations make this tricky, as well as cubemap sampling (they all set individual SIMD lanes, and fixing that exceeds my current understanding of the math behind software rasterization). One thing that would make this easier is to make QInt/QFloat classes so they could be replaced by Int16X/Float16X or something like that.
Another (unlikely and ugly) possibility is 8x2 quads, so that 2x2 sub-quads could be operated on where necessary and math could be widened everywhere else.
Expanding pixel quads from 2x2 to 4x4 could open up the possibility of AVX2 or even AVX512 optimizations. The edge and gradient equations make this tricky, as well as cubemap sampling (they all set individual SIMD lanes, and fixing that exceeds my current understanding of the math behind software rasterization). One thing that would make this easier is to make QInt/QFloat classes so they could be replaced by Int16X/Float16X or something like that.
I would also like to poke again at issue #7 :)