[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