mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-22 05:40:01 -06:00
Use Vertex Depth Range when zRange Exceeds farZ
When the inverted depth range is unsupported and zRange is greater than farZ then min_depth becomes a negative value and far_depth will then exceed a depth of 1.0 (which is outside the scope of most backends and greater than GX_MAX_DEPTH of the console). This happens when the backend supports depth clamping the min_depth is not clamped to zero.
This commit is contained in:
@ -168,8 +168,14 @@ bool VertexShaderManager::UseVertexDepthRange()
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
// If an inverted depth range is unsupported, we also need to check if the range is inverted.
|
// If an inverted depth range is unsupported, we also need to check if the range is inverted.
|
||||||
if (!g_ActiveConfig.backend_info.bSupportsReversedDepthRange && xfmem.viewport.zRange < 0.0f)
|
if (!g_ActiveConfig.backend_info.bSupportsReversedDepthRange)
|
||||||
return true;
|
{
|
||||||
|
if (xfmem.viewport.zRange < 0.0f)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (xfmem.viewport.zRange > xfmem.viewport.farZ)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// If an oversized depth range or a ztexture is used, we need to calculate the depth range
|
// If an oversized depth range or a ztexture is used, we need to calculate the depth range
|
||||||
// in the vertex shader.
|
// in the vertex shader.
|
||||||
|
Reference in New Issue
Block a user