Commit: 2be3a75efd9b60cac64980bb83003a7370c3bd08
Author: Clément Foucault
Date:   Thu Jun 6 17:21:12 2019 +0200
Branches: master
https://developer.blender.org/rB2be3a75efd9b60cac64980bb83003a7370c3bd08

Fix T65383 UI graphics glitches on macOS with Intel HD 4000

glDrawArrays is not supposed to be affected by primitive restart
but osx drivers never cease to surprise me.

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

M       source/blender/gpu/intern/gpu_batch.c
M       source/blender/gpu/intern/gpu_immediate.c

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

diff --git a/source/blender/gpu/intern/gpu_batch.c 
b/source/blender/gpu/intern/gpu_batch.c
index 1fb11da4fea..ba3c7f68518 100644
--- a/source/blender/gpu/intern/gpu_batch.c
+++ b/source/blender/gpu/intern/gpu_batch.c
@@ -634,12 +634,18 @@ void GPU_batch_draw_advanced(GPUBatch *batch, int 
v_first, int v_count, int i_fi
     }
   }
   else {
+#ifdef __APPLE__
+    glDisable(GL_PRIMITIVE_RESTART);
+#endif
     if (GLEW_ARB_base_instance) {
       glDrawArraysInstancedBaseInstance(batch->gl_prim_type, v_first, v_count, 
i_count, i_first);
     }
     else {
       glDrawArraysInstanced(batch->gl_prim_type, v_first, v_count, i_count);
     }
+#ifdef __APPLE__
+    glEnable(GL_PRIMITIVE_RESTART);
+#endif
   }
 }
 
diff --git a/source/blender/gpu/intern/gpu_immediate.c 
b/source/blender/gpu/intern/gpu_immediate.c
index 2fa7ee5fb32..6b5c4836e83 100644
--- a/source/blender/gpu/intern/gpu_immediate.c
+++ b/source/blender/gpu/intern/gpu_immediate.c
@@ -383,9 +383,16 @@ void immEnd(void)
   }
   else {
     glUnmapBuffer(GL_ARRAY_BUFFER);
+
     if (imm.vertex_len > 0) {
       immDrawSetup();
+#ifdef __APPLE__
+      glDisable(GL_PRIMITIVE_RESTART);
+#endif
       glDrawArrays(convert_prim_type_to_gl(imm.prim_type), 0, imm.vertex_len);
+#ifdef __APPLE__
+      glEnable(GL_PRIMITIVE_RESTART);
+#endif
     }
     /* These lines are causing crash on startup on some old GPU + drivers.
      * They are not required so just comment them. (T55722) */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to