From a20c590966b53511a29b9eb42a87d8e568ea092a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Mon, 22 Oct 2018 15:53:35 +0200 Subject: DRW: Fix crash on startup for old Nvidia drivers This should fix T57296 once and for all. --- source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl | 3 +-- source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'source/blender/draw') diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl b/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl index d6bcffb12c6..f1ebb419d60 100644 --- a/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl +++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl @@ -63,8 +63,7 @@ void main() int v_0 = (gl_VertexID / 3) * 3; int vidx = gl_VertexID % 3; - barycentric = vec3(0.0); - barycentric[vidx] = 1.0; + barycentric = vec3(equal(ivec3(0, 1, 2), ivec3(vidx))); /* Edge */ ivec4 vData[3], data = ivec4(0); diff --git a/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl b/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl index 460bed14a8b..b472ab43666 100644 --- a/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl +++ b/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl @@ -139,9 +139,9 @@ void main() pos[v_n] = get_vertex_pos(v_id[v_n]); gl_Position = p_pos[v_n] = ModelViewProjectionMatrix * vec4(pos[v_n], 1.0); - barycentric[v_n] = do_edge[v_n] ? 0.0 : 1.0; - barycentric[v_n1] = 1.0; - barycentric[v_n2] = do_edge[v_n2] ? 0.0 : 1.0; + bvec3 bary = equal(ivec3(0, 1, 2), ivec3(v_n1)); + /* This is equivalent to component wise : (do_edge ? bary : 1.0) */ + barycentric = vec3(lessThanEqual(ivec3(do_edge), ivec3(bary))); # ifndef LIGHT_EDGES vec3 nor = get_vertex_nor(v_id[v_n]); -- cgit v1.2.3