Revision: 58751
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58751
Author: jwilkins
Date: 2013-07-31 02:32:00 +0000 (Wed, 31 Jul 2013)
Log Message:
-----------
fixed crash at shutdown caused by de-initializing GPU stuff after windows had
been destroyed
This makes me concerned about contexts and de-initialization. I think it will
work OK as long as contexts share 'display lists', but there might still be
some race conditions caused by resources being managed separately from the
windows they are associated with...
Modified Paths:
--------------
branches/soc-2013-viewport_fx/intern/ghost/intern/GHOST_Context.h
branches/soc-2013-viewport_fx/source/blender/windowmanager/intern/wm_init_exit.c
Modified: branches/soc-2013-viewport_fx/intern/ghost/intern/GHOST_Context.h
===================================================================
--- branches/soc-2013-viewport_fx/intern/ghost/intern/GHOST_Context.h
2013-07-31 01:10:34 UTC (rev 58750)
+++ branches/soc-2013-viewport_fx/intern/ghost/intern/GHOST_Context.h
2013-07-31 02:32:00 UTC (rev 58751)
@@ -143,7 +143,4 @@
-
-
-
#endif // __GHOST_CONTEXT_H__
Modified:
branches/soc-2013-viewport_fx/source/blender/windowmanager/intern/wm_init_exit.c
===================================================================
---
branches/soc-2013-viewport_fx/source/blender/windowmanager/intern/wm_init_exit.c
2013-07-31 01:10:34 UTC (rev 58750)
+++
branches/soc-2013-viewport_fx/source/blender/windowmanager/intern/wm_init_exit.c
2013-07-31 02:32:00 UTC (rev 58751)
@@ -136,7 +136,6 @@
/* only called once, for startup */
void WM_init(bContext *C, int argc, const char **argv)
{
-
if (!G.background) {
wm_ghost_init(C); /* note: it assigns C to ghost! */
wm_init_cursor_data();
@@ -420,6 +419,20 @@
wmWindow *win;
if (!G.background) {
+ GPU_global_buffer_pool_free();
+ GPU_free_unused_buffers();
+ GPU_extensions_exit();
+
+ gpuShutdownLighting();
+
+ gpuDeleteIndex(gindex);
+ gpuImmediateIndex(NULL);
+
+ gpuImmediateMakeCurrent(NULL);
+ gpuDeleteImmediate(immediate);
+
+ GPU_ms_exit();
+
if ((U.uiflag2 & USER_KEEP_SESSION) ||
BKE_undo_valid(NULL)) {
/* save the undo state as quit.blend */
char filename[FILE_MAX];
@@ -514,21 +527,6 @@
(void)do_python;
#endif
- GPU_global_buffer_pool_free();
- GPU_free_unused_buffers();
- GPU_extensions_exit();
-
-
- gpuShutdownLighting();
-
- gpuDeleteIndex(gindex);
- gpuImmediateIndex(NULL);
-
- gpuImmediateMakeCurrent(NULL);
- gpuDeleteImmediate(immediate);
-
- GPU_ms_exit();
-
BKE_reset_undo();
ED_file_exit(); /* for fsmenu */
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs