diff --git a/source/blender/draw/engines/overlay/overlay_extra.c b/source/blender/draw/engines/overlay/overlay_extra.c index af54e524445..0143c07e697 100644 --- a/source/blender/draw/engines/overlay/overlay_extra.c +++ b/source/blender/draw/engines/overlay/overlay_extra.c @@ -1140,6 +1140,12 @@ void OVERLAY_camera_cache_populate(OVERLAY_Data *vedata, Object *ob) const bool look_through = (is_active && (rv3d->persp == RV3D_CAMOB)); const bool is_multiview = (scene->r.scemode & R_MULTIVIEW) != 0; + + /* this works, but of course this doesnt really detect the CHANGE / UPDATE! */ + if (is_multiview) { + rv3d->rflag |= RV3D_GPULIGHT_UPDATE; + } + const bool is_stereo3d_view = (scene->r.views_format == SCE_VIEWS_FORMAT_STEREO_3D); const bool is_stereo3d_display_extra = is_active && is_multiview && (!look_through) && ((v3d->stereo3d_flag) != 0); diff --git a/source/blender/draw/engines/workbench/workbench_data.c b/source/blender/draw/engines/workbench/workbench_data.c index 7b08e97ac31..891c6383ca6 100644 --- a/source/blender/draw/engines/workbench/workbench_data.c +++ b/source/blender/draw/engines/workbench/workbench_data.c @@ -188,6 +188,14 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd) draw_ctx->object_edit, draw_ctx->obact, draw_ctx->object_mode); wpd->preferences = &U; + + /* Tried this, but apparently wpd->scene is not ensure to be valid here? */ + const bool wpd_multiview = wpd->scene ? (wpd->scene->r.scemode & R_MULTIVIEW) != 0 : false; + const bool scene_multiview = (scene->r.scemode & R_MULTIVIEW) != 0; + if (wpd_multiview != scene_multiview) { + wpd->view_updated = true; + } + wpd->scene = scene; wpd->sh_cfg = draw_ctx->sh_cfg;