There is no such thing as “row-major” or “column-major” matrix multiplication. There is just matrix multiplication; the math does the same thing regardless. It’s the data in your matrix that can be interpreted as “row-major” or “column-major”.
Also:
This matrix is transposed. The translational component is supposed to go in the 4th column, not the 4th row.
Did you confuse the +/- symbol with the multiplication symbol? Also, why are there a bunch of leading zeros?
In any case, if you make your matrix data correct (ie: transpose it from what you’ve written) and do the correct matrix multiplication of the vector (ie: right-multiply the vector into the matrix) you claim to want to use, you’re supposed to get 400 for the X component.
Because it’s a compute shader and I need to pass from world coordinates to viewport coordinate to compute the interction of the triangle vertices with the ray (the ray is in viewport coordinates) and to pass from clip coordinates to viewport coordinates we need to divide by w.
There are no default pipeline with compute shader so I’ve to do every thing manually in the compute shader, even vertices interpolation.