Currently, ProxyMain does the early out after LayerTreeHost::UpdateLayers. Historically, that's been because PictureLayer used to do visual rect and painting itself, and so there was no way to know if a PictureLayer needed updates or not without asking it.
However, now that the visual rect computation moved to Blink with synchronous paint changes, Blink itself knows whether anything was painted and we should be able to avoid asking every layer to do a needless update in some cases.
There are some layer types (TextureLayer) that do always need an update, but we could maintain these in a separate list potentially.
This showed up as taking 1ms of time with 200 layers, so would be good savings for the worst case if we could just skip this work.
Comment 1 by enne@chromium.org
, Oct 5 2017