Draw recorded content directly into the containing PaintCanvas, when possible.
For SPv2, this avoids the cost of replaying into a PaintRecord, then drawing
that into the parent canvas. Instead, we can draw the cc::DisplayItemList
directly into it with no additional cost.
This fixes one SPv2 test with SVG, because somehow content got culled out during
the journey through a PaintRecord.
BUG=665259, 703231
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Review-Url: https://codereview.chromium.org/2791043002
Cr-Commit-Position: refs/heads/master@{#461338}
Committed: https://chromium.googlesource.com/chromium/src/+/dad2300ece2848716c16c70bf46d8ffd64e3abee
Description was changed from ========== none none none none none none none BUG= ========== to ...
3 years, 8 months ago
(2017-03-31 23:00:22 UTC)
#1
Description was changed from
==========
none
none
none
none
none
none
none
BUG=
==========
to
==========
none
none
none
none
none
none
none
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
==========
chrishtr
Description was changed from ========== none none none none none none none BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== ...
3 years, 8 months ago
(2017-03-31 23:01:20 UTC)
#2
Description was changed from
==========
none
none
none
none
none
none
none
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
==========
to
==========
Draw recorded content directly into the containing PaintCanvas, when possible.
BUG=665259
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
==========
chrishtr
Description was changed from ========== Draw recorded content directly into the containing PaintCanvas, when possible. ...
3 years, 8 months ago
(2017-03-31 23:02:31 UTC)
#3
Description was changed from
==========
Draw recorded content directly into the containing PaintCanvas, when possible.
BUG=665259
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
==========
to
==========
Draw recorded content directly into the containing PaintCanvas, when possible.
For SPv2, this avoids the cost of replaying into a PaintRecord, then drawing
that into the parent canvas. Instead, we can draw the cc::DisplayItemList
directly into it with no additional cost.
This fixes one SPv2 test with SVG, because somehow content got culled out during
the journey through a PaintRecord.
BUG=665259
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
==========
chrishtr
Description was changed from ========== Draw recorded content directly into the containing PaintCanvas, when possible. ...
3 years, 8 months ago
(2017-03-31 23:04:09 UTC)
#4
Description was changed from
==========
Draw recorded content directly into the containing PaintCanvas, when possible.
For SPv2, this avoids the cost of replaying into a PaintRecord, then drawing
that into the parent canvas. Instead, we can draw the cc::DisplayItemList
directly into it with no additional cost.
This fixes one SPv2 test with SVG, because somehow content got culled out during
the journey through a PaintRecord.
BUG=665259
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
==========
to
==========
Draw recorded content directly into the containing PaintCanvas, when possible.
For SPv2, this avoids the cost of replaying into a PaintRecord, then drawing
that into the parent canvas. Instead, we can draw the cc::DisplayItemList
directly into it with no additional cost.
This fixes one SPv2 test with SVG, because somehow content got culled out during
the journey through a PaintRecord.
BUG=665259,703231
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
==========
3 years, 8 months ago
(2017-03-31 23:04:15 UTC)
#6
wkorman
https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp File third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp (right): https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp#newcode441 third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp:441: void SVGImage::paintCurrentFrame(const FloatRect& bounds, This looks identical to SVGImage::paintRecordForCurrentFrame ...
3 years, 8 months ago
(2017-04-01 00:32:40 UTC)
#7
https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Sour...
File third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp (right):
https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Sour...
third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp:441: void
SVGImage::paintCurrentFrame(const FloatRect& bounds,
This looks identical to SVGImage::paintRecordForCurrentFrame (which I assume is
still needed/used for its callsite in applyShaderInternal) except for taking
canvas param, can we share the code in one method and use a default param w/
nullptr check or similar to just specialize endRecording?
https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Sour...
File third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp
(right):
https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Sour...
third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp:101:
std::unique_ptr<GeometryMapper> geometryMapper = GeometryMapper::create();
Separate from this change but commenting while reading -- why do we disallow
stack allocation of GeometryMapper which seems like it would be beneficial for
cases like this?
I think (conv w/ Vlad a while back) that at least parts of cc were moving away
from Create methods like we have currently for GeometryMapper where ctor is
simple like this and takes no params. Can discuss further in person sometime.
chrishtr
https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp File third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp (right): https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp#newcode101 third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp:101: std::unique_ptr<GeometryMapper> geometryMapper = GeometryMapper::create(); On 2017/04/01 at 00:32:40, wkorman ...
3 years, 8 months ago
(2017-04-01 04:05:25 UTC)
#8
https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Sour...
File third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp
(right):
https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Sour...
third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp:101:
std::unique_ptr<GeometryMapper> geometryMapper = GeometryMapper::create();
On 2017/04/01 at 00:32:40, wkorman wrote:
> Separate from this change but commenting while reading -- why do we disallow
stack allocation of GeometryMapper which seems like it would be beneficial for
cases like this?
>
> I think (conv w/ Vlad a while back) that at least parts of cc were moving away
from Create methods like we have currently for GeometryMapper where ctor is
simple like this and takes no params. Can discuss further in person sometime.
A good question. I don't think there is a good reason.
chrishtr
https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp File third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp (right): https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp#newcode441 third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp:441: void SVGImage::paintCurrentFrame(const FloatRect& bounds, On 2017/04/01 at 00:32:40, wkorman ...
3 years, 8 months ago
(2017-04-01 04:05:47 UTC)
#9
https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Sour...
File third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp (right):
https://codereview.chromium.org/2791043002/diff/20001/third_party/WebKit/Sour...
third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp:441: void
SVGImage::paintCurrentFrame(const FloatRect& bounds,
On 2017/04/01 at 00:32:40, wkorman wrote:
> This looks identical to SVGImage::paintRecordForCurrentFrame (which I assume
is still needed/used for its callsite in applyShaderInternal) except for taking
canvas param, can we share the code in one method and use a default param w/
nullptr check or similar to just specialize endRecording?
Good idea, done.
chrishtr
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
3 years, 8 months ago
(2017-04-01 04:20:03 UTC)
#10
Dry run: 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/3610)
3 years, 8 months ago
(2017-04-01 05:33:49 UTC)
#14
Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds/182247) ios-device-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, ...
3 years, 8 months ago
(2017-04-01 16:21:55 UTC)
#20
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/3612)
3 years, 8 months ago
(2017-04-01 17:45:45 UTC)
#25
Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/420114)
3 years, 8 months ago
(2017-04-01 19:13:34 UTC)
#30
CQ is committing da patch. Bot data: {"patchset_id": 170001, "attempt_start_ts": 1491104733513700, "parent_rev": "6d41b82585204a17ce52137c71722122221be72b", "commit_rev": "dad2300ece2848716c16c70bf46d8ffd64e3abee"}
3 years, 8 months ago
(2017-04-02 05:17:33 UTC)
#34
CQ is committing da patch.
Bot data: {"patchset_id": 170001, "attempt_start_ts": 1491104733513700,
"parent_rev": "6d41b82585204a17ce52137c71722122221be72b", "commit_rev":
"dad2300ece2848716c16c70bf46d8ffd64e3abee"}
commit-bot: I haz the power
Description was changed from ========== Draw recorded content directly into the containing PaintCanvas, when possible. ...
3 years, 8 months ago
(2017-04-02 05:19:04 UTC)
#35
Message was sent while issue was closed.
Description was changed from
==========
Draw recorded content directly into the containing PaintCanvas, when possible.
For SPv2, this avoids the cost of replaying into a PaintRecord, then drawing
that into the parent canvas. Instead, we can draw the cc::DisplayItemList
directly into it with no additional cost.
This fixes one SPv2 test with SVG, because somehow content got culled out during
the journey through a PaintRecord.
BUG=665259,703231
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
==========
to
==========
Draw recorded content directly into the containing PaintCanvas, when possible.
For SPv2, this avoids the cost of replaying into a PaintRecord, then drawing
that into the parent canvas. Instead, we can draw the cc::DisplayItemList
directly into it with no additional cost.
This fixes one SPv2 test with SVG, because somehow content got culled out during
the journey through a PaintRecord.
BUG=665259,703231
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Review-Url: https://codereview.chromium.org/2791043002
Cr-Commit-Position: refs/heads/master@{#461338}
Committed:
https://chromium.googlesource.com/chromium/src/+/dad2300ece2848716c16c70bf46d...
==========
commit-bot: I haz the power
Committed patchset #10 (id:170001) as https://chromium.googlesource.com/chromium/src/+/dad2300ece2848716c16c70bf46d8ffd64e3abee
3 years, 8 months ago
(2017-04-02 05:19:06 UTC)
#36
Issue 2791043002: Draw recorded content directly into the containing PaintCanvas, when possible.
(Closed)
Created 3 years, 8 months ago by chrishtr
Modified 3 years, 8 months ago
Reviewers: wkorman
Base URL:
Comments: 5