[Bf-blender-cvs] [0f95cc8293b] blender-v2.83-release: Fix T77455: Blender Freezes when using the 3d Scale Gizmo

Jeroen Bakker noreply at git.blender.org
Mon Jul 13 17:13:33 CEST 2020


Commit: 0f95cc8293b0bb1d1b84cd88f96b643e8bcf7365
Author: Jeroen Bakker
Date:   Mon Jul 6 14:33:59 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rB0f95cc8293b0bb1d1b84cd88f96b643e8bcf7365

Fix T77455: Blender Freezes when using the 3d Scale Gizmo

Issue is reported on Linux ith Intel HD6xx iGPU. Inside
`gpu_select_sample_query.c` the call to `glGetQueryObjectuiv` froze. After
bisecting this lead to the polyline shader. When using a 3d color shader
in stead of the polyline shader during selection seems to fix the issue.

Other parts of blender might also be effective, but I wasn't able to
freeze blender in these areas. When it does, we might want to add
a similar work-around to button2d, cage2d, cage3d & move3d, navigate.

Backport this patch to 2.83.

Reviewed By: Clément Foucault

Differential Revision: https://developer.blender.org/D8217

===================================================================

M	source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c

===================================================================

diff --git a/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c
index e6333d7d3e0..f31e004264c 100644
--- a/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c
+++ b/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c
@@ -88,7 +88,8 @@ static void arrow_draw_geom(const ArrowGizmo3D *arrow, const bool select, const
   const int draw_style = RNA_enum_get(arrow->gizmo.ptr, "draw_style");
   const int draw_options = RNA_enum_get(arrow->gizmo.ptr, "draw_options");
 
-  immBindBuiltinProgram(GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR);
+  immBindBuiltinProgram(select ? GPU_SHADER_3D_UNIFORM_COLOR :
+                                 GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR);
 
   float viewport[4];
   GPU_viewport_size_get_f(viewport);



More information about the Bf-blender-cvs mailing list