Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <j.bakker@atmind.nl>2020-07-06 15:33:59 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2020-07-07 17:22:05 +0300
commit202e7ccaaee8909f72465f67ab59626fa6dd3a48 (patch)
tree8fb25b95a71487561620ea5f123586272d5fc822 /source/blender/editors/gizmo_library
parentd1dcd2b4648fbe99e10252ed84cc7d4c7c4e9741 (diff)
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
Diffstat (limited to 'source/blender/editors/gizmo_library')
-rw-r--r--source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c3
1 files changed, 2 insertions, 1 deletions
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);