From c267256f01affc83fcff6ed638c30dd9fa18d029 Mon Sep 17 00:00:00 2001 From: Jason Fielder Date: Fri, 19 May 2023 09:23:17 +0200 Subject: [PATCH] Fix #105830: Add depth bias for overlay faces in Metal Resolves z-fighting blocking artifacts on faces due to limited depth precision at certain camera positions. Depth bias offsets the calculation enough without affecting display. Authored by Apple: Michael Parkin-White Pull Request: https://projects.blender.org/blender/blender/pulls/108048 --- .../draw/engines/overlay/shaders/overlay_edit_mesh_vert.glsl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_vert.glsl index 36bb708d084..b10e48441c4 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_vert.glsl @@ -74,6 +74,11 @@ void main() finalColor = EDIT_MESH_face_color(m_data.x); bool occluded = true; +# ifdef GPU_METAL + /* Apply depth bias to overlay in order to prevent z-fighting on Apple Silicon GPUs. */ + gl_Position.z -= 5e-5; +# endif + #elif defined(FACEDOT) finalColor = EDIT_MESH_facedot_color(norAndFlag.w);