-
Daniel Libby authored
For elements with will-change:transform or directly composited images the raster scale is not updated in response to transform scale changes. Once the scale gets especially large, the interest rect computed by blink starts to become less than the layer bounds. This ends up setting a recorded_viewport_ on RasterSource that is also less than the layer bounds. If the interest rect gets small enough, it's possible that tiles that are in view are not completely covered by the RasterSource. This means that we won't create tiles (much less assign them GPU memory and schedule them) in PictureLayerTiling::CreateTile. We did not see this with the previous implementation of directly composited images, since the content layer never had an interest rect computed. This change fixes this specifically for directly composited images by always considering its raster source as covering the entire layer. This is the definition of directly composited images (has a DrawImageRectOp that draws into the entire layer). This allows the in view tiles to be created, then rasterized and activated and the image no longer disappears. I looked into fixing the general case (see comments in the bug) but given the regression for the images scenario and the fact that we'd like to get a fix merged for 85, I took an approach to just fix directly composited images. Bug: 1110141 Change-Id: Ice3cf25508585f116edd7317718292ec9ad8a7ef Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2358888Reviewed-by:
Philip Rogers <pdr@chromium.org> Reviewed-by:
vmpstr <vmpstr@chromium.org> Commit-Queue: Daniel Libby <dlibby@microsoft.com> Cr-Commit-Position: refs/heads/master@{#798836}
bf22e4c9