From 0bdf8646f09c2f7cf2324ddf6cacf6cc1b31da07 Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Sun, 4 Sep 2011 05:08:09 +0200 Subject: [PATCH] Proof of concept zcomploc implementation Fixes a few depth related graphics bugs. Example in Baten Kaitos (GKBEAF): Before: http://i.imgur.com/EDdVA.png After: http://i.imgur.com/h6GuY.png Still a few bugs in this implementation: zcomploc switching is not yet implemented, and the color is wrong with this test: http://codepad.org/7GpxklOi (red on Dolphin, gray on Wii). --- Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index 9146f4cb09..50de52df51 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -1146,9 +1146,12 @@ static bool WriteAlphaTest(char *&p, API_TYPE ApiType,DSTALPHA_MODE dstAlphaMode WRITE(p, "ocol1 = 0;\n"); if (DepthTextureEnable) WRITE(p, "depth = 1.f;\n"); - WRITE(p, "discard;\n"); - if (ApiType != API_D3D11) - WRITE(p, "return;\n"); + if (!bpmem.zcontrol.zcomploc) + { + WRITE(p, "discard;\n"); + if (ApiType != API_D3D11) + WRITE(p, "return;\n"); + } WRITE(p, "}\n"); return true;