From 91126657667adbe5aad9d7989a9ce02607ee984b Mon Sep 17 00:00:00 2001 From: Isaac Marovitz Date: Fri, 21 Mar 2025 13:31:37 -0400 Subject: [PATCH] Fix MSL matrix mul Signed-off-by: Isaac Marovitz --- XenosRecomp/shader_recompiler.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/XenosRecomp/shader_recompiler.cpp b/XenosRecomp/shader_recompiler.cpp index 5f7564a..d9fed7d 100644 --- a/XenosRecomp/shader_recompiler.cpp +++ b/XenosRecomp/shader_recompiler.cpp @@ -1501,7 +1501,11 @@ void ShaderRecompiler::recompile(const uint8_t* shaderData, const std::string_vi out += "\toPos = 0.0;\n"; out += "\tfloat4x4 mtxProjection = float4x4(g_MtxProjection(0), g_MtxProjection(1), g_MtxProjection(2), g_MtxProjection(3));\n"; + out += "#ifdef __air__\n"; + out += "\tfloat4x4 mtxProjectionReverseZ = mtxProjection * float4x4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1);\n"; + out += "#else\n"; out += "\tfloat4x4 mtxProjectionReverseZ = mul(mtxProjection, float4x4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1));\n"; + out += "#endif\n"; out += "\t[unroll] for (int iterationIndex = 0; iterationIndex < 2; iterationIndex++)\n"; out += "\t{\n";