[Bf-blender-cvs] [e4e5d7781e9] blender-v3.2-release: Fix T97547: Stereo rendering crash.

Jeroen Bakker noreply at git.blender.org
Tue May 3 08:21:42 CEST 2022


Commit: e4e5d7781e9946cd39d44d846b7435406a6e9229
Author: Jeroen Bakker
Date:   Tue May 3 08:16:04 2022 +0200
Branches: blender-v3.2-release
https://developer.blender.org/rBe4e5d7781e9946cd39d44d846b7435406a6e9229

Fix T97547: Stereo rendering crash.

Viewports weren't drawn as they couldn't get a lock. Resulted in compositing
uninitialized viewports. Fixed by checking that both views were drawn.

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

M	source/blender/windowmanager/intern/wm_draw.c

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

diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c
index 242c96903d3..02da798495b 100644
--- a/source/blender/windowmanager/intern/wm_draw.c
+++ b/source/blender/windowmanager/intern/wm_draw.c
@@ -702,6 +702,7 @@ static void wm_draw_window_offscreen(bContext *C, wmWindow *win, bool stereo)
 
       if (stereo && wm_draw_region_stereo_set(bmain, area, region, STEREO_LEFT_ID)) {
         wm_draw_region_buffer_create(region, true, use_viewport);
+        bool views_valid = true;
 
         for (int view = 0; view < 2; view++) {
           eStereoViews sview;
@@ -717,8 +718,11 @@ static void wm_draw_window_offscreen(bContext *C, wmWindow *win, bool stereo)
             ED_region_do_draw(C, region);
             wm_draw_region_unbind(region);
           }
+          else {
+            views_valid = false;
+          }
         }
-        if (use_viewport) {
+        if (use_viewport && views_valid) {
           GPUViewport *viewport = region->draw_buffer->viewport;
           GPU_viewport_stereo_composite(viewport, win->stereo3d_format);
         }



More information about the Bf-blender-cvs mailing list