Hi Brecht, I have a problem with the changes in revision 28411. The problem is that soon after Blender has started, any interaction with the GUI results in a freeze of the program. I found that a call of GPU_free_unused_buffers() leads to two successive calls of BLI_lock_thread(LOCK_OPENGL), which seems to cause of the blocking on my test platform (64-bit Windows Vista; the code is compled with Visual Studio 2008 and CMake).
My understanding is that the images listed in the mutexed image_free_queue should be freed by the main thread, so a possible fix of the issue is to add to the beginning of GPU_free_unused_buffers() a check if the caller is the main thread and just return if that is not the case, i.e.: void GPU_free_unused_buffers(void) { Image *ima; // ADDITION BEGIN if (!BLI_thread_is_main()) return; // ADDITION END BLI_lock_thread(LOCK_OPENGL); for(ima=image_free_queue.first; ima; ima=ima->id.next) GPU_free_image(ima); BLI_freelistN(&image_free_queue); BLI_unlock_thread(LOCK_OPENGL); } This fixes the blocking issue. I am sending this to the list because the Blender 2.5 bug tracker seemed not to have the referred entries #22123 and #22124 to which I wanted to file this problem report. Please let me know if I am missing something. With best regards, -- KAJIYAMA, Tamito <rd6t-k...@asahi-net.or.jp> ----- Original Message ----- From: "Brecht Van Lommel" <bre...@blender.org> To: <bf-blender-...@blender.org> Sent: Sunday, April 25, 2010 11:49 AM Subject: [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28411] trunk/blender/source/blender: Fix #22123 and #22124: some problems with mutex locks, also tweak to > Revision: 28411 > > http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28411 > Author: blendix > Date: 2010-04-25 12:49:13 +0200 (Sun, 25 Apr 2010) > > Log Message: > ----------- > Fix #22123 and #22124: some problems with mutex locks, also tweak to > how removing opengl textures from outside main thread is done so it > happens as part of the main loop. > > Modified Paths: > -------------- > trunk/blender/source/blender/blenlib/BLI_threads.h > trunk/blender/source/blender/blenlib/intern/threads.c > trunk/blender/source/blender/gpu/GPU_draw.h > trunk/blender/source/blender/gpu/intern/gpu_draw.c > trunk/blender/source/blender/windowmanager/intern/wm_draw.c > trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c _______________________________________________ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers