Xianzhu Wang uploaded patch set #6 to this change.
Paint all collapsed borders of a row (or table) as one display item
In normal cases and SPv2, paint all collapsed borders of a row
as one display item. If any row or section is composited, let the
table paint all collapsed borders.
- This reduces number of display items for collapsed borders, which can
improve performance of painting and rasterization. This is a trade-off
between number of display items and area of re-rasterization.
- Simplify code for collapsed border painting and invalidation.
- In the future we can implement more sophisticated collapsed border
algorithm to improve performance of common cases (e.g. paint the whole
top border of a row as one drawing operation).
Bug: 663208
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I0d71c0f62c89b028739ea374e033a8e844822250
---
D third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/collapsed-border-cell-resize-expected.txt
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-cell-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-cell.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-row-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-row.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-section-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-section.html
M third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-expected.html
D third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize.html
M third_party/WebKit/Source/core/layout/CollapsedBorderValue.h
M third_party/WebKit/Source/core/layout/LayoutTable.cpp
M third_party/WebKit/Source/core/layout/LayoutTable.h
M third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
M third_party/WebKit/Source/core/layout/LayoutTableCell.h
M third_party/WebKit/Source/core/layout/LayoutTableRow.cpp
M third_party/WebKit/Source/core/layout/LayoutTableRow.h
M third_party/WebKit/Source/core/paint/CollapsedBorderPainter.cpp
M third_party/WebKit/Source/core/paint/CollapsedBorderPainter.h
M third_party/WebKit/Source/core/paint/TableCellPaintInvalidator.cpp
M third_party/WebKit/Source/core/paint/TableCellPaintInvalidator.h
M third_party/WebKit/Source/core/paint/TableCellPainter.h
M third_party/WebKit/Source/core/paint/TablePainter.cpp
M third_party/WebKit/Source/core/paint/TablePainter.h
M third_party/WebKit/Source/core/paint/TablePainterTest.cpp
M third_party/WebKit/Source/core/paint/TableRowPainter.cpp
M third_party/WebKit/Source/core/paint/TableRowPainter.h
M third_party/WebKit/Source/core/paint/TableSectionPainter.cpp
28 files changed, 340 insertions(+), 268 deletions(-)
To view, visit change 540178. To unsubscribe, visit settings.
Xianzhu Wang posted comments on this change.
Patch set 7:Commit-Queue +1
Xianzhu Wang posted comments on this change.
Patch set 8:Commit-Queue +1
(2 comments)
File third_party/WebKit/Source/core/layout/LayoutTable.cpp:
This is no longer needed because now we invalidate row (https://chromium-review.googlesource.com/c/540178/7/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp#1255) and table (if needed, new line 1511).
File third_party/WebKit/Source/core/layout/LayoutTableCell.cpp:
This is no longer needed because cell no longer paints collapsed borders.
Table and row's visual overflow include collapsed borders.
To view, visit change 540178. To unsubscribe, visit settings.
Xianzhu Wang would like Chris harrelson to review this change.
Paint all collapsed borders of a row (or table) as one display item
In normal cases and SPv2, paint all collapsed borders of a row
as one display item. If any row or section is composited, let the
table paint all collapsed borders.
- This reduces number of display items for collapsed borders, which can
improve performance of painting and rasterization. This is a trade-off
between number of display items and area of re-rasterization.
- Simplify code for collapsed border painting and invalidation.
- In the future we can implement more sophisticated collapsed border
algorithm to improve performance of common cases (e.g. paint the whole
top border of a row as one drawing operation).
Bug: 663208
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I0d71c0f62c89b028739ea374e033a8e844822250
---
D third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/collapsed-border-cell-resize-expected.txt
D third_party/WebKit/LayoutTests/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table-outer-border-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table-section-repaint-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/border-collapse-change-collapse-to-separate-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/border-collapse-change-separate-to-collapse-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-cell-append-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-cell-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-cell-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-col-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-col-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-colgroup-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-colgroup-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-row-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-row-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-table-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-table-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-tbody-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-tbody-border-width-expected.txt
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-cell-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-cell.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-row-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-row.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-section-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-composited-section.html
M third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-expected.html
D third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize.html
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/composited-table-row-expected.txt
D third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/composited-table-row-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/composited-table-row-expected.txt
A third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/composited-table-row-expected.txt
A third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/composited-table-row-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/composited-table-row-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table-outer-border-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table-section-repaint-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table/border-collapse-change-separate-to-collapse-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-row-border-width-expected.txt
M third_party/WebKit/Source/core/layout/CollapsedBorderValue.h
M third_party/WebKit/Source/core/layout/LayoutTable.cpp
M third_party/WebKit/Source/core/layout/LayoutTable.h
M third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
M third_party/WebKit/Source/core/layout/LayoutTableCell.h
M third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp
M third_party/WebKit/Source/core/layout/LayoutTableRow.cpp
M third_party/WebKit/Source/core/layout/LayoutTableRow.h
M third_party/WebKit/Source/core/paint/CollapsedBorderPainter.cpp
M third_party/WebKit/Source/core/paint/CollapsedBorderPainter.h
M third_party/WebKit/Source/core/paint/TableCellPaintInvalidator.cpp
M third_party/WebKit/Source/core/paint/TableCellPaintInvalidator.h
M third_party/WebKit/Source/core/paint/TableCellPainter.h
M third_party/WebKit/Source/core/paint/TablePainter.cpp
M third_party/WebKit/Source/core/paint/TablePainter.h
M third_party/WebKit/Source/core/paint/TablePainterTest.cpp
M third_party/WebKit/Source/core/paint/TableRowPainter.cpp
M third_party/WebKit/Source/core/paint/TableRowPainter.h
M third_party/WebKit/Source/core/paint/TableSectionPainter.cpp
74 files changed, 1,532 insertions(+), 1,538 deletions(-)
Chris harrelson posted comments on this change.
Patch set 8:
(6 comments)
File third_party/WebKit/Source/core/layout/LayoutTable.h:
Patch Set #8, Line 389: bool ShouldPaintCollapsedBordersInWhole() const {
ShouldPaintAllCollapsedBorders()
File third_party/WebKit/Source/core/layout/LayoutTableCell.cpp:
Patch Set #8, Line 1254: if (changed)
Are the invalidation changes here orthogonal to the main purpose
of this CL?
File third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp:
This stuff is no longer relevant?
File third_party/WebKit/Source/core/layout/LayoutTableRow.cpp:
Patch Set #8, Line 336: bool LayoutTableRow::PaintedOutputOfObjectHasNoEffectRegardlessOfSize() const {
Is this an optimization that is of independent value?
File third_party/WebKit/Source/core/paint/TableCellPaintInvalidator.cpp:
Patch Set #8, Line 22: DCHECK(container.GetPaintInvalidationReason() ==
?
Also DCHECK(!SPv2)?
File third_party/WebKit/Source/core/paint/TableRowPainter.cpp:
Patch Set #8, Line 132: if (!layout_table_row_.Table()->ShouldPaintCollapsedBordersInWhole()) {
Why would this be called if ShouldPaintCollapsedBordersInWhole
is true?
To view, visit change 540178. To unsubscribe, visit settings.
Xianzhu Wang posted comments on this change.
Patch set 8:
(7 comments)
Patch Set #8, Line 389: bool ShouldPaintCollapsedBordersInWhole() const {
ShouldPaintAllCollapsedBorders()
Patch Set #8, Line 1254: if (changed)
Are the invalidation changes here orthogonal to the main purpose
No. This is required because the display item clients of collapsed borders are now rows or table instead of cells. We need to invalidate different things. Simplification of paint invalidation of collapsed borders is also a purpose of this CL.
File third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp:
This stuff is no longer relevant?
Right. Now cell's visual rect doesn't have anything special to test.
File third_party/WebKit/Source/core/layout/LayoutTableRow.cpp:
Patch Set #8, Line 336: bool LayoutTableRow::PaintedOutputOfObjectHasNoEffectRegardlessOfSize() const {
Is this an optimization that is of independent value?
This is required to avoid wrong optimization. For the following table
<table style="border-collapse: collapse">
<tr><td style="border: ..."></td></tr>
</table>,
without this change, the row's PaintedOutputOfObjectHasNoEffectRegardlessOfSize() would return true while it paints collapsed borders, which would trigger DCHECK failure in DrawingRecorder and may cause under-invalidations.
File third_party/WebKit/Source/core/paint/TableCellPaintInvalidator.cpp:
Patch Set #8, Line 22: DCHECK(container.GetPaintInvalidationReason() ==
?
The invalidation is only needed if the container has not been invalidated. The callsites have checked condition.
In the latest patch, this condition is changed to !IsImmediateFullPaintInvaldationReason(container.GetPaintInvalidationReason()) to be safer in case the container did only incremental invalidation.
This is for both SPv1 and v2. It handles cases is like:
<table style="width: 200px; border-collapse: collapse">
<tr><td></td><td></td></tr>
</table>
When one of the td changes width, the geometry of tr and table may not be affected so their paint invalidation won't see the change when PrePaintTreeWalk walked them. When we walk a cells and find that its geometry has changed and the row has not been invalidated, we need to invalidate the row immediately here.
Patch Set #8, Line 39: container.VisualRect(), PaintInvalidationReason::kGeometry);
The above line is new in this CL. Previously for the background case, we invalidate the display item client only, assuming that cell's raster invalidation will cover the changed area of the container, but that fails if the cell and the container are not on the same backing.
The line 35 condition implies !SPv2. Added !SPv2 here to make it explicit.
File third_party/WebKit/Source/core/paint/TableRowPainter.cpp:
Patch Set #8, Line 132: if (!layout_table_row_.Table()->ShouldPaintCollapsedBordersInWhole()) {
Why would this be called if ShouldPaintCollapsedBordersInWhole
ShouldPaintCollapsedBorderInWhole affects which of table and rows should create display items for collapsed borders. No matter who create the display items, collapsed borders are always painted in the call path of
TablePainter::PaintCollapsedBorders
=>TableSectionPainter::PaintCollapsedBorders
=>TableRowPainter::PaintCollapsedBorders
=>CollapsedBorderPainter::PaintCollapsedBorders.
To view, visit change 540178. To unsubscribe, visit settings.
Xianzhu Wang posted comments on this change.
Patch set 9:Commit-Queue +1
Chris harrelson posted comments on this change.
Patch set 9:Code-Review +1
Is the purpose of case when rows paint their own collapsed borders for
performance of ro
(3 comments)
File third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize.html:
Patch Set #9, Line 4: Should repaint collapsed borders when cells resize.
Why did you modify this test rather than adding a new one?
Patch Set #9, Line 19: "rect": [0, 0, 37, 23],
Why did this change?
File third_party/WebKit/Source/core/paint/TableRowPainter.cpp:
Add a comment: otherwise TablePainter would have created the
drawing recorder.
To view, visit change 540178. To unsubscribe, visit settings.
Xianzhu Wang uploaded patch set #11 to this change.
Paint all collapsed borders of a row (or table) as one display item
In normal cases and SPv2, paint all collapsed borders of a row
as one display item. If any row or section is composited, let the
table paint all collapsed borders.
- This reduces number of display items for collapsed borders, which can
improve performance of painting and rasterization. This is a trade-off
between number of display items and area of re-rasterization.
- Simplify code for collapsed border painting and invalidation and fix
collapsed border invalidation issues when the row or the section is
composited.
- In the future we can implement more sophisticated collapsed border
algorithm to improve performance of common cases (e.g. paint the whole
top border of a row as one drawing operation).
Bug: 663208
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I0d71c0f62c89b028739ea374e033a8e844822250
---
M third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table-outer-border-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table-section-repaint-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/border-collapse-change-collapse-to-separate-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/border-collapse-change-separate-to-collapse-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-69296-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-cell-append-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-cell-border-color-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-cell-border-width-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-col-border-color-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-col-border-width-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-colgroup-border-color-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-colgroup-border-width-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-row-border-width-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-table-border-color-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-table-border-width-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-tbody-border-color-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-tbody-border-width-expected.txt
D third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/collapsed-border-cell-resize-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
D third_party/WebKit/LayoutTests/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table-outer-border-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table-section-repaint-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/border-collapse-change-collapse-to-separate-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/border-collapse-change-separate-to-collapse-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-cell-append-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-cell-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-cell-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-col-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-col-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-colgroup-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-colgroup-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-row-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-row-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-table-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-table-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-tbody-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-tbody-border-width-expected.txt
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-cell-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-cell.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-row-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-row.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-section-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-section.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width.html
M third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/composited-table-row-expected.txt
D third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/composited-table-row-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/composited-table-row-expected.txt
A third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/composited-table-row-expected.txt
A third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/composited-table-row-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/composited-table-row-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table-outer-border-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table-section-repaint-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table/border-collapse-change-separate-to-collapse-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-row-border-width-expected.txt
M third_party/WebKit/Source/core/layout/CollapsedBorderValue.h
M third_party/WebKit/Source/core/layout/LayoutTable.cpp
M third_party/WebKit/Source/core/layout/LayoutTable.h
M third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
M third_party/WebKit/Source/core/layout/LayoutTableCell.h
M third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp
M third_party/WebKit/Source/core/layout/LayoutTableRow.cpp
M third_party/WebKit/Source/core/layout/LayoutTableRow.h
M third_party/WebKit/Source/core/paint/CollapsedBorderPainter.cpp
M third_party/WebKit/Source/core/paint/CollapsedBorderPainter.h
M third_party/WebKit/Source/core/paint/TableCellPaintInvalidator.cpp
M third_party/WebKit/Source/core/paint/TableCellPaintInvalidator.h
M third_party/WebKit/Source/core/paint/TableCellPainter.h
M third_party/WebKit/Source/core/paint/TablePainter.cpp
M third_party/WebKit/Source/core/paint/TablePainter.h
M third_party/WebKit/Source/core/paint/TablePainterTest.cpp
M third_party/WebKit/Source/core/paint/TableRowPainter.cpp
M third_party/WebKit/Source/core/paint/TableRowPainter.h
M third_party/WebKit/Source/core/paint/TableSectionPainter.cpp
101 files changed, 2,254 insertions(+), 1,896 deletions(-)
To view, visit change 540178. To unsubscribe, visit settings.
Xianzhu Wang posted comments on this change.
Patch set 11:
(3 comments)
File third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize.html:
Patch Set #9, Line 4: <td id="target" style="width: 100px; height: 100px; border: 1px solid blue"></td>
Why did you modify this test rather than adding a new one?
Perhaps because of naming conflict. Renamed the new tests to collapsed-border-cell-change-width*.html and restored this one.
Patch Set #9, Line 19: "rect": [0, 0, 37, 23],
Why did this change?
This is because the visual rect of a table cell no longer includes collapsed borders.
File third_party/WebKit/Source/core/paint/TableRowPainter.cpp:
Patch Set #9, Line 145: // Otherwise TablePainter should have created the drawing recorder.
Add a comment: otherwise TablePainter would have created the
Done
To view, visit change 540178. To unsubscribe, visit settings.
Xianzhu Wang posted comments on this change.
Patch set 11:Commit-Queue +2
Commit Bot posted comments on this change.
Patch set 11:
CQ is trying da patch.
Note: The patchset sent to CQ was uploaded after this CL was approved.
"Edit commit message" https://chromium-review.googlesource.com/c/540178/11
Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/chromium-review.googlesource.com/540178/11
Bot data: {"action": "start", "triggered_at": "2017-06-25T17:32:25.0Z", "cq_cfg_revision": "e12d437dc7f395d72995b548c9dacf21b0b1526e", "revision": "9370add523fedc9f59d8345e9131a72f4eaa4f4f"}
Try jobs failed on following builders:
linux_layout_tests_slimming_paint_v2 on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_layout_tests_slimming_paint_v2/builds/5342)
Bot data: {"action": "cancel", "triggered_at": "2017-06-25T17:32:25.0Z", "cq_cfg_revision": "e12d437dc7f395d72995b548c9dacf21b0b1526e", "revision": "9370add523fedc9f59d8345e9131a72f4eaa4f4f"}
Xianzhu Wang posted comments on this change.
Patch set 12:Commit-Queue +2
Commit Bot posted comments on this change.
Patch set 12:
CQ is trying da patch.
Note: The patchset sent to CQ was uploaded after this CL was approved.
"Several SPv2 baselines" https://chromium-review.googlesource.com/c/540178/12
Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/chromium-review.googlesource.com/540178/12
Bot data: {"action": "start", "triggered_at": "2017-06-25T19:47:46.0Z", "cq_cfg_revision": "e12d437dc7f395d72995b548c9dacf21b0b1526e", "revision": "cb2c8e61bb85594cdedd16efb6926f8c158c9f63"}
Chris harrelson posted comments on this change.
Patch set 12:
LGTM
Commit Bot merged this change.
Paint all collapsed borders of a row (or table) as one display item
In normal cases and SPv2, paint all collapsed borders of a row
as one display item. If any row or section is composited, let the
table paint all collapsed borders.
- This reduces number of display items for collapsed borders, which can
improve performance of painting and rasterization. This is a trade-off
between number of display items and area of re-rasterization.
- Simplify code for collapsed border painting and invalidation and fix
collapsed border invalidation issues when the row or the section is
composited.
- In the future we can implement more sophisticated collapsed border
algorithm to improve performance of common cases (e.g. paint the whole
top border of a row as one drawing operation).
Bug: 663208
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I0d71c0f62c89b028739ea374e033a8e844822250
Reviewed-on: https://chromium-review.googlesource.com/540178
Commit-Queue: Xianzhu Wang <wangx...@chromium.org>
Reviewed-by: Chris harrelson <chri...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482176}
---
M third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/fast/table/border-collapsing/001-expected.png
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/fast/table/border-collapsing/001-vertical-expected.png
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table-outer-border-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table-section-repaint-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/border-collapse-change-collapse-to-separate-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/border-collapse-change-separate-to-collapse-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-69296-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-cell-append-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-cell-border-color-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-cell-border-width-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-col-border-color-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-col-border-width-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-colgroup-border-color-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-colgroup-border-width-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-row-border-width-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-table-border-color-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-table-border-width-expected.txt
A third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-tbody-border-color-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/cached-change-tbody-border-width-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/collapsed-border-cell-resize-expected.txt
M third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
D third_party/WebKit/LayoutTests/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table-outer-border-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table-section-repaint-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/border-collapse-change-collapse-to-separate-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/border-collapse-change-separate-to-collapse-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-cell-append-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-cell-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-cell-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-col-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-col-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-colgroup-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-colgroup-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-row-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-row-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-table-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-table-border-width-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-tbody-border-color-expected.txt
M third_party/WebKit/LayoutTests/paint/invalidation/table/cached-change-tbody-border-width-expected.txt
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-cell-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-cell.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-row-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-row.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-section-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-composited-section.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width-expected.html
A third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-change-width.html
M third_party/WebKit/LayoutTests/paint/invalidation/table/collapsed-border-cell-resize-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/composited-table-row-expected.txt
D third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/composited-table-row-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/composited-table-row-expected.txt
A third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/composited-table-row-expected.txt
A third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/composited-table-row-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/composited-table-row-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/table-cell-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/table-collapsed-border-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-cell-sl-border-color-expected.txt
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/table/resize-table-repaint-percent-size-cell-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table-outer-border-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table-section-repaint-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table/border-collapse-change-separate-to-collapse-expected.txt
D third_party/WebKit/LayoutTests/virtual/disable-spinvalidation/paint/invalidation/table/cached-change-row-border-width-expected.txt
M third_party/WebKit/Source/core/layout/CollapsedBorderValue.h
M third_party/WebKit/Source/core/layout/LayoutTable.cpp
M third_party/WebKit/Source/core/layout/LayoutTable.h
M third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
M third_party/WebKit/Source/core/layout/LayoutTableCell.h
M third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp
M third_party/WebKit/Source/core/layout/LayoutTableRow.cpp
M third_party/WebKit/Source/core/layout/LayoutTableRow.h
M third_party/WebKit/Source/core/paint/CollapsedBorderPainter.cpp
M third_party/WebKit/Source/core/paint/CollapsedBorderPainter.h
M third_party/WebKit/Source/core/paint/TableCellPaintInvalidator.cpp
M third_party/WebKit/Source/core/paint/TableCellPaintInvalidator.h
M third_party/WebKit/Source/core/paint/TableCellPainter.h
M third_party/WebKit/Source/core/paint/TablePainter.cpp
M third_party/WebKit/Source/core/paint/TablePainter.h
M third_party/WebKit/Source/core/paint/TablePainterTest.cpp
M third_party/WebKit/Source/core/paint/TableRowPainter.cpp
M third_party/WebKit/Source/core/paint/TableRowPainter.h
M third_party/WebKit/Source/core/paint/TableSectionPainter.cpp
103 files changed, 2,258 insertions(+), 1,872 deletions(-)