[Bf-blender-cvs] [df3891ed817] master: Fix T69377 Texture flickering when selecting in solid viewport (AMD Pro driver)

Clément Foucault noreply at git.blender.org
Fri Sep 27 15:37:10 CEST 2019


Commit: df3891ed817ff7b4bc8ba1c4c313f0fc2df8eb1f
Author: Clément Foucault
Date:   Fri Sep 27 15:31:03 2019 +0200
Branches: master
https://developer.blender.org/rBdf3891ed817ff7b4bc8ba1c4c313f0fc2df8eb1f

Fix T69377 Texture flickering when selecting in solid viewport (AMD Pro driver)

Workaround that does not fix the real issue.

The bug is caused by glBufferData inside
DRW_instance_buffer_finish > GPU_vertbuf_use
but only after the selection code which resets the number of items in
idatalist->pool_buffers.

I don't understand why this is happening as the vbo ids are all valid and
no error is reported. What is even more strange, is that it affects another
vbo which has no connection with the ones in DRW_instance_buffer_finish.

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

M	source/blender/draw/intern/draw_manager.c

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

diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 4e4ff2d6dc6..6387cecc01f 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -2630,7 +2630,13 @@ void DRW_draw_select_id(Depsgraph *depsgraph, ARegion *ar, View3D *v3d, const rc
 
     drw_engines_cache_finish();
 
+#if 0 /* This is a workaround to a nasty bug that seems to be a nasty driver bug. (See T69377) */
     DRW_render_instance_buffer_finish();
+#else
+    DST.buffer_finish_called = true;
+    // DRW_instance_buffer_finish(DST.idatalist);
+    drw_resource_buffer_finish(DST.vmempool);
+#endif
   }
 
   /* Start Drawing */



More information about the Bf-blender-cvs mailing list