Fix: Overlay-Next: Broken edit mode on some Nvidia GPU / drivers

One of the framebuffer output was not written to.
This commit is contained in:
Clément Foucault
2024-11-20 16:03:15 +01:00
parent 406e93525f
commit 1e7e776b34
4 changed files with 12 additions and 0 deletions

View File

@@ -21,7 +21,9 @@ GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_mesh_common)
DEFINE_VALUE("blender_srgb_to_framebuffer_space(a)", "a")
SAMPLER(0, DEPTH_2D, depthTex)
DEFINE("LINE_OUTPUT")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
PUSH_CONSTANT(BOOL, wireShading)
PUSH_CONSTANT(BOOL, selectFace)
PUSH_CONSTANT(BOOL, selectEdge)
@@ -35,8 +37,10 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_mesh_common_no_geom)
METAL_BACKEND_ONLY()
DEFINE_VALUE("blender_srgb_to_framebuffer_space(a)", "a")
DEFINE("LINE_OUTPUT")
SAMPLER(0, DEPTH_2D, depthTex)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
PUSH_CONSTANT(BOOL, wireShading)
PUSH_CONSTANT(BOOL, selectFace)
PUSH_CONSTANT(BOOL, selectEdge)

View File

@@ -45,4 +45,5 @@ void main()
fragColor.a *= 1.0 - (geometry_flat_out.finalColorOuter.a > 0.0 ? mix_w_outer : mix_w);
fragColor.a *= test_occlusion() ? alpha : 1.0;
lineOutput = vec4(0.0);
}

View File

@@ -25,5 +25,9 @@ void main()
#else
fragColor = finalColor;
#endif
#ifdef LINE_OUTPUT
lineOutput = vec4(0.0);
#endif
select_id_output(select_id);
}

View File

@@ -7,5 +7,8 @@
void main()
{
fragColor = finalColor;
#ifdef LINE_OUTPUT
lineOutput = vec4(0.0);
#endif
select_id_output(select_id);
}