398cc88ae21cafc2a07896bc9b1a74035c286198
Root cause: System.Numerics.Matrix4x4 uses row-major storage with row-vector convention (v * M). GLSL with layout(row_major) does column-vector (M * v), which effectively transposes the matrix, breaking the projection. Fix: remove row_major from layout qualifiers. GLSL then interprets the row-major data as column-major (effectively transposing it), so M * v in GLSL equals v * M in System.Numerics — correct result. The Y-flip (M22 *= -1) is still needed for Vulkan's Y-down clip space.
Description
AI powered Game Engine
23 MiB
Languages
C#
97.8%
GLSL
1.8%
Shell
0.2%
PowerShell
0.2%