Use 0.5 for depth-equal test so it works on various precisions

This commit is contained in:
baldurk committed 2026-08-24 17:46:21 +01:00
1 parent f8e2d0f36c
commit fc50157566
2 files changed
+19 -19

No files matched your search

+16 -16
View File
@@ -857,37 +857,37 @@ void init()
{Vec3f(0.8f, -0.4f, 0.7f), Vec4f(0.0f, 1.0f, 0.0f, 1.0f), Vec2f(1.0f, 0.0f)},
});
// depth equal that fails
// depth equal setup
DepthEqualSetup = makeDraw({
{Vec3f(-0.1f, -0.8f, 0.1f), Vec4f(0.1f, 0.1f, 0.1f, 1.0f), Vec2f(0.0f, 0.0f)},
{Vec3f(0.0f, -0.6f, 0.1f), Vec4f(0.1f, 0.1f, 0.1f, 1.0f), Vec2f(0.0f, 1.0f)},
{Vec3f(0.1f, -0.8f, 0.1f), Vec4f(0.1f, 0.1f, 0.1f, 1.0f), Vec2f(1.0f, 0.0f)},
{Vec3f(-0.1f, -0.8f, 0.5f), Vec4f(0.1f, 0.1f, 0.1f, 1.0f), Vec2f(0.0f, 0.0f)},
{Vec3f(0.0f, -0.6f, 0.5f), Vec4f(0.1f, 0.1f, 0.1f, 1.0f), Vec2f(0.0f, 1.0f)},
{Vec3f(0.1f, -0.8f, 0.5f), Vec4f(0.1f, 0.1f, 0.1f, 1.0f), Vec2f(1.0f, 0.0f)},
});
// depth equal that fails
DepthEqualFail = makeDraw({
{Vec3f(-0.1f, -0.8f, 0.1f + 5.0e-4f), Vec4f(0.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)},
{Vec3f(0.0f, -0.6f, 0.1f + 5.0e-4f), Vec4f(0.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)},
{Vec3f(0.1f, -0.8f, 0.1f + 5.0e-4f), Vec4f(0.0f, 0.0f, 0.0f, 1.0f), Vec2f(1.0f, 0.0f)},
{Vec3f(-0.1f, -0.8f, 0.5f + 5.0e-4f), Vec4f(0.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 0.0f)},
{Vec3f(0.0f, -0.6f, 0.5f + 5.0e-4f), Vec4f(0.0f, 0.0f, 0.0f, 1.0f), Vec2f(0.0f, 1.0f)},
{Vec3f(0.1f, -0.8f, 0.5f + 5.0e-4f), Vec4f(0.0f, 0.0f, 0.0f, 1.0f), Vec2f(1.0f, 0.0f)},
});
// D16 depth equal (enough) triangle
DepthEqualPass16 = makeDraw({
{Vec3f(-0.1f, -0.8f, 0.1f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)},
{Vec3f(0.0f, -0.6f, 0.1f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 1.0f)},
{Vec3f(0.1f, -0.8f, 0.1f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)},
{Vec3f(-0.1f, -0.8f, 0.5f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)},
{Vec3f(0.0f, -0.6f, 0.5f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 1.0f)},
{Vec3f(0.1f, -0.8f, 0.5f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)},
});
// D24 depth equal (enough) triangle
DepthEqualPass24 = makeDraw({
{Vec3f(-0.1f, -0.8f, 0.1f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)},
{Vec3f(0.0f, -0.6f, 0.1f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 1.0f)},
{Vec3f(0.1f, -0.8f, 0.1f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)},
{Vec3f(-0.1f, -0.8f, 0.5f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)},
{Vec3f(0.0f, -0.6f, 0.5f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 1.0f)},
{Vec3f(0.1f, -0.8f, 0.5f + 1.0e-8f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)},
});
// D32 depth equal triangle
DepthEqualPass32 = makeDraw({
{Vec3f(-0.1f, -0.8f, 0.1f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)},
{Vec3f(0.0f, -0.6f, 0.1f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 1.0f)},
{Vec3f(0.1f, -0.8f, 0.1f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)},
{Vec3f(-0.1f, -0.8f, 0.5f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 0.0f)},
{Vec3f(0.0f, -0.6f, 0.5f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(0.0f, 1.0f)},
{Vec3f(0.1f, -0.8f, 0.5f), Vec4f(1.0f, 1.0f, 1.0f, 1.0f), Vec2f(1.0f, 0.0f)},
});
ColourMask = makeDraw({
+3 -3
View File
@@ -703,7 +703,7 @@ class Pixel_History(rdtest.TestCase):
'event_name': 'Depth Equal Setup',
'passed': True,
'shader_out_col': fmt_adjusted(0.1, 0.1, 0.1, alpha_value),
'shader_out_depth': 0.1,
'shader_out_depth': 0.5,
with_depth('post_mod_col'): fmt_clamped(0.1, 0.1, 0.1, alpha_value),
},
{
@@ -716,14 +716,14 @@ class Pixel_History(rdtest.TestCase):
with_depth('passed'): False,
'depth_test_failed': True,
'shader_out_col': fmt_adjusted(0, 0, 0, alpha_value),
'shader_out_depth': 0.1 + 5.0e-4,
'shader_out_depth': 0.5 + 5.0e-4,
with_depth('post_mod_col'): fmt_clamped(0.1, 0.1, 0.1, alpha_value),
},
{
'event_name': 'Depth Equal Pass',
'passed': True,
'shader_out_col': fmt_adjusted(1, 1, 1, alpha_value),
'shader_out_depth': 0.1 + 1e-8,
'shader_out_depth': 0.5 + 1e-8,
'post_mod_col': fmt_clamped(1, 1, 1, alpha_value),
},
]