diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 9d0f9f29f9472b73461e7bea3144ca90df7c2905..3e8a7f8bb53883a31a4c165b0d7a4622f2f33bfc 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -224,8 +224,18 @@ void BlenderSync::sync_recalc(BL::Depsgraph &b_depsgraph, BL::SpaceView3D &b_v3d
 
   if (b_v3d) {
     BlenderViewportParameters new_viewport_parameters(b_v3d);
+
     if (viewport_parameters.modified(new_viewport_parameters)) {
       world_recalc = true;
+      has_updates_ = true;
+    }
+
+    if (!has_updates_) {
+      Film *film = scene->film;
+
+      const PassType new_display_pass = new_viewport_parameters.get_viewport_display_render_pass(
+          b_v3d);
+      has_updates_ |= film->get_display_pass() != new_display_pass;
     }
   }
 }