• Mason Freed's avatar
    Expand damage rect to include intersecting backdrop-filters · 9ec375f2
    Mason Freed authored
    Prior to this CL, the root damage rect might have partially
    intersected child render passes that had backdrop filters applied.
    In that case, the backdrop filter code would attempt to read back
    the backdrop image, and would find already-filtered content outside
    of the damage rect, but inside the render pass quad bounds. It would
    then filter this image, and if the backdrop filters moved pixels,
    some of that double-filtered content would bleed back into the damage
    rect and be used. This would lead to visual artifacts.
    
    With this CL, any child render passes that contain pixel-moving
    backdrop filters are checked for intersection with the root damage
    rect, and if they intersect, the damage rect is expanded to include
    the entire child render pass output rect.
    
    Bug: 986206
    Change-Id: I81a51e24548cae736172938ce190f6ba4c6d2b94
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1847675
    Commit-Queue: Mason Freed <masonfreed@chromium.org>
    Reviewed-by: default avatarEric Karl <ericrk@chromium.org>
    Reviewed-by: default avatarkylechar <kylechar@chromium.org>
    Auto-Submit: Mason Freed <masonfreed@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#706531}
    9ec375f2
display_unittest.cc 181 KB