[Bf-blender-cvs] [a20c590966b] blender2.8: DRW: Fix crash on startup for old Nvidia drivers
Clément Foucault
noreply at git.blender.org
Mon Oct 22 15:56:13 CEST 2018
Commit: a20c590966b53511a29b9eb42a87d8e568ea092a
Author: Clément Foucault
Date: Mon Oct 22 15:53:35 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBa20c590966b53511a29b9eb42a87d8e568ea092a
DRW: Fix crash on startup for old Nvidia drivers
This should fix T57296 once and for all.
===================================================================
M source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl
M source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl
===================================================================
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]);
More information about the Bf-blender-cvs
mailing list