[webkit-changes] [WebKit/WebKit] b2410e: [CoordinatedGraphics] Do not unite dirty rects in ...

Jani Hautakangas noreply at github.com
Mon Nov 27 07:02:12 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b2410e35eca0141d7ab7eefda84365616f4d6f80
      https://github.com/WebKit/WebKit/commit/b2410e35eca0141d7ab7eefda84365616f4d6f80
  Author: Jani Hautakangas <jani at igalia.com>
  Date:   2023-11-27 (Mon, 27 Nov 2023)

  Changed paths:
    M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp

  Log Message:
  -----------
  [CoordinatedGraphics] Do not unite dirty rects in Canvas2D
https://bugs.webkit.org/show_bug.cgi?id=265365

Reviewed by Carlos Garcia Campos.

CanvasRenderingContext2DBase tracks one dirty rect and does union of all
incoming dirty rects within repaint cycle. This cause unnecessary
invalidations of tiles in coordinated graphics. For example in case where
canvas spans over multiple tiles and only small areas at top-left and
bottom-right corners of canvas are changed. This scenario causes whole canvas
and all tiles to be marked dirty because of unification of dirty areas although
only top-left and bottom-right tiles are actually dirty.
 Solution is not to do unification of dirty rects in
CanvasRenderingContext2DBase. In coordinated graphics tiles do dirty rect
unification internally within tile.

* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::didDraw):

Canonical link: https://commits.webkit.org/271139@main




More information about the webkit-changes mailing list