Page MenuHome

Cycles viewport unneccessary update calls
Confirmed, NormalPublicBUG

Description

System Information
Operating system: Ubuntu 20.04
Graphics card: Nvidia MX150

Blender Version
Broken: 2.83.17, 8a8c61190b06, Beta and 2.90.2, 8f21f867e715, Alpha
Worked: 2.82a official

Short description of error

  • set scene renderer to Cycles
  • configure two viewports and a shader editor in a single screen
  • set one viewport to cycles preview render
  • set second viewport to workbench texture color
  • add two image texture nodes and load them with different textures
  • by clicking on the texture node both viewports are redrawn.

Event Timeline

Alaska (Alaska) changed the task status from Needs Triage to Confirmed.EditedMay 22 2020, 1:58 PM
Alaska (Alaska) added a subscriber: Alaska (Alaska).

Can confirm. It definitely seems like a bug, but I leave the decision of how to tag this task to the developers as I don't know the reason for why this was changed.

Introduced by {27e3361eb5399dc1a700d7f05d5b7b329bc4eafd}

Brecht Van Lommel (brecht) triaged this task as High priority.May 22 2020, 7:00 PM
Brecht Van Lommel (brecht) changed the subtype of this task from "Report" to "Bug".

This is an issue for Eevee as well, selecting nodes will also restart the render there.

I guess we need more fine grained depsgraph updates. Ideally the viewport would only redraw when the active texture changes and workbench with texture color is selected.

I have a potential patch that prevents the depgraph update when clicking/dragging on the background. Basically if the selected node is null, it doesn't fire the update.

Is it worth putting into a diff or would that be considered too simplistic a fix?

I did add a diff for this and also caught the use case for when a node is simply clicked on but not changed.

The Diff is https://developer.blender.org/D7824. Should I set Sergey as the reviewer?

Jeroen Bakker (jbakker) reopened this task as Confirmed.May 26 2020, 8:33 AM
Jeroen Bakker (jbakker) lowered the priority of this task from High to Normal.

The current workaround isn't the system we would like to have. The target situation would add a mechanism in the depsgraph where viewports can check if they need to be redrawn.

Currently when you have 2 viewports one Cycles rendered mode and the other in workbench texture mode the updates would still happen.

@jabakker imo it is better to have workaround, that work in half of cases, than to have nothing.

But yes, it will be great to have «supervisor», who have list of important changes (and rules), and pokes viewport, when it should rerender view.

Thanks guys, I noticed progress in this area today.
Now viewport is not recalculating, when I add routes to disconnected part of tree.
But still called if new disconnected node appears.

(Linking the two reports, so both can be taken care of, when this one is fixed)
T78358: Crash while modifying shader nodes : introduced by rB77fdd189e4b2: Fix T76970: Unneccessary update calls viewport
Edit: it got fixed.