VertexShaderGen: Sonic epsilon hack for OpenGL ES
debaf63fe8
moved the "Sonic epsilon hack"
to vertex shaders. However, it was only done for targets with depth
clamping. If this is not available, for example the target is OpenGL ES,
the Sonic problem appears (https://bugs.dolphin-emu.org/issues/11897).
A version of the "Sonic epsilon hack" is added for targets without
depth clamping.
This commit is contained in:
parent
a2fa9aab5b
commit
f339bc69c8
|
@ -498,6 +498,12 @@ ShaderCode GenerateVertexShaderCode(APIType api_type, const ShaderHostConfig& ho
|
|||
"o.clipDist1 = clipDist1;\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Same depth adjustment for Sonic. Without depth clamping, it unfortunately
|
||||
// affects non-clipping uses of depth too.
|
||||
out.Write("o.pos.z = o.pos.z * (1.0 - 1e-7);\n");
|
||||
}
|
||||
|
||||
// Write the true depth value. If the game uses depth textures, then the pixel shader will
|
||||
// override it with the correct values if not then early z culling will improve speed.
|
||||
|
|
Loading…
Reference in New Issue