Improving damage accumulation in SA for pixel-moving foreground filters.
Render pass with pixel-moving filters will now report its |output_rect| as its damage if any of its quads has damage. Surfaces' damage reporting is no longer directly affected by pixel-moving filters. gfx::Rect PrewalkRenderPass(RenderPass* render_pass) { gfx::Rect damage_rect; // Go through quads back to front to accumulate damage and update |damage_rect|. for (DrawQuad* quad : quad_list) { // in reverse order ..... } // Expand the damage to cover entire |output_rect| if the render pass has pixel-moving foreground filters. if (!damage_rect.IsEmpty() && render_pass.filters.HasFilterThatMovesPixels()) damage_rect.Union(render_pass.output_rect); return damage_rect; } For more details and pseudo-code, please see: https://docs.google.com/document/d/1D1MTNTaJnZjbmMZGMz0u150N3u5evEFSmJU-ou2vcFw/edit#heading=h.qxb209uq3j9k Bug: 1110016 Change-Id: I3c495d8ea1ed25585c636a0989a3c7f51fdce7b1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2321114Reviewed-by:kylechar <kylechar@chromium.org> Commit-Queue: Jun Liu <yjliu@chromium.org> Auto-Submit: Jun Liu <yjliu@chromium.org> Cr-Commit-Position: refs/heads/master@{#797978}
Showing
Please register or sign in to comment