From 6ee0248eab7622d2db19f28f120b447b5db11379 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Tue, 21 Jun 2022 02:07:35 -0500 Subject: VideoBackends:Metal: MSAA support --- Source/Core/VideoCommon/FramebufferShaderGen.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'Source/Core/VideoCommon/FramebufferShaderGen.cpp') diff --git a/Source/Core/VideoCommon/FramebufferShaderGen.cpp b/Source/Core/VideoCommon/FramebufferShaderGen.cpp index 6426b259b4..49684bb518 100644 --- a/Source/Core/VideoCommon/FramebufferShaderGen.cpp +++ b/Source/Core/VideoCommon/FramebufferShaderGen.cpp @@ -338,6 +338,22 @@ std::string GenerateColorPixelShader() return code.GetBuffer(); } +std::string GenerateResolveColorPixelShader(u32 samples) +{ + ShaderCode code; + EmitSamplerDeclarations(code, 0, 1, true); + EmitPixelMainDeclaration(code, 1, 0); + code.Write("{{\n" + " int layer = int(v_tex0.z);\n" + " int3 coords = int3(int2(gl_FragCoord.xy), layer);\n" + " ocol0 = float4(0.0f);\n"); + code.Write(" for (int i = 0; i < {}; i++)\n", samples); + code.Write(" ocol0 += texelFetch(samp0, coords, i);\n"); + code.Write(" ocol0 /= {}.0f;\n", samples); + code.Write("}}\n"); + return code.GetBuffer(); +} + std::string GenerateResolveDepthPixelShader(u32 samples) { ShaderCode code; -- cgit v1.2.3