|
|
Created:
4 years, 9 months ago by trchen Modified:
4 years, 9 months ago CC:
jbroman, blink-reviews, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj+watch_chromium.org, dshwang, drott+blinkwatch_chromium.org, krit, f(malita), Justin Novosad, kinuko+watch, pdr+graphicswatchlist_chromium.org, rwlbuis, Stephen Chennney Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
Description[SPv2] Reverse PaintArtifactCompositor clip layer origin undo order
As cc::Layer doesn't support shifted layer bounds, we bake the layer origin
into transform and paint with an offset. When adding a child layer to a parent
with such baked-in origin, we need to offset it first.
Before this change the combined matrix looked like:
[ transform ] * [ -parent layer origin ] * [ layer origin ]
When it should be:
[ -parent layer origin ] * [ transform ] * [ layer origin ]
TEST=virtual/spv2/fast/overflow/overflow-update-transform.html
Committed: https://crrev.com/5897d3e9488dc8596a646fd931ac7e32ec3cb6e3
Cr-Commit-Position: refs/heads/master@{#380558}
Patch Set 1 #Patch Set 2 : do the right thing #Messages
Total messages: 24 (10 generated)
The CQ bit was checked by trchen@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1782713003/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1782713003/1
trchen@chromium.org changed reviewers: + jbroman@chromium.org
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_asan_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
On 2016/03/10 at 06:39:23, commit-bot wrote: > Dry run: Try jobs failed on following builders: > linux_chromium_asan_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) These failures look real :/ I suspect this fix is correct though.
pdr@chromium.org changed reviewers: + pdr@chromium.org
On 2016/03/10 21:10:12, pdr wrote: > On 2016/03/10 at 06:39:23, commit-bot wrote: > > Dry run: Try jobs failed on following builders: > > linux_chromium_asan_rel_ng on tryserver.chromium.linux (JOB_FAILED, > http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) > > These failures look real :/ I suspect this fix is correct though. I didn't check the numbers but I checked the rendered pixels. :) I suspect we simply copy & pasted in the unit test expectations. Let me double check the numbers.
On 2016/03/10 22:59:15, trchen wrote: > On 2016/03/10 21:10:12, pdr wrote: > > On 2016/03/10 at 06:39:23, commit-bot wrote: > > > Dry run: Try jobs failed on following builders: > > > linux_chromium_asan_rel_ng on tryserver.chromium.linux (JOB_FAILED, > > > http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) > > > > These failures look real :/ I suspect this fix is correct though. > > I didn't check the numbers but I checked the rendered pixels. :) > I suspect we simply copy & pasted in the unit test expectations. Let me double > check the numbers. I'm convinced that the unit test looks correct. Something sketchy is going on...
Description was changed from ========== [SPv2] Reverse PaintArtifactCompositor matrix accumulation order The old order was reversed. We found it as we pull in more non-trivial tests. TEST=virtual/spv2/fast/overflow/overflow-update-transform.html ========== to ========== [SPv2] Reverse PaintArtifactCompositor clip layer origin undo order As cc::Layer doesn't support shifted layer bounds, we bake the layer origin into transform and paint with an offset. When adding a child layer to a parent with such baked-in origin, we need to offset it first. Before this change the combined matrix looked like: [ transform ] * [ -parent layer origin ] * [ layer origin ] When it should be: [ -parent layer origin ] * [ transform ] * [ layer origin ] TEST=virtual/spv2/fast/overflow/overflow-update-transform.html ==========
This time I'm pretty sure we caught the culprit. :)
The CQ bit was checked by trchen@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1782713003/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1782713003/20001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_x64_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
LGTM I'm surprised there's no preTranslate on gfx::Transform. I grepped around and only found one other place it might be used (windowanimations.cc) so maybe it's just not common.
The CQ bit was checked by trchen@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1782713003/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1782713003/20001
Message was sent while issue was closed.
Description was changed from ========== [SPv2] Reverse PaintArtifactCompositor clip layer origin undo order As cc::Layer doesn't support shifted layer bounds, we bake the layer origin into transform and paint with an offset. When adding a child layer to a parent with such baked-in origin, we need to offset it first. Before this change the combined matrix looked like: [ transform ] * [ -parent layer origin ] * [ layer origin ] When it should be: [ -parent layer origin ] * [ transform ] * [ layer origin ] TEST=virtual/spv2/fast/overflow/overflow-update-transform.html ========== to ========== [SPv2] Reverse PaintArtifactCompositor clip layer origin undo order As cc::Layer doesn't support shifted layer bounds, we bake the layer origin into transform and paint with an offset. When adding a child layer to a parent with such baked-in origin, we need to offset it first. Before this change the combined matrix looked like: [ transform ] * [ -parent layer origin ] * [ layer origin ] When it should be: [ -parent layer origin ] * [ transform ] * [ layer origin ] TEST=virtual/spv2/fast/overflow/overflow-update-transform.html ==========
Message was sent while issue was closed.
Committed patchset #2 (id:20001)
Message was sent while issue was closed.
Description was changed from ========== [SPv2] Reverse PaintArtifactCompositor clip layer origin undo order As cc::Layer doesn't support shifted layer bounds, we bake the layer origin into transform and paint with an offset. When adding a child layer to a parent with such baked-in origin, we need to offset it first. Before this change the combined matrix looked like: [ transform ] * [ -parent layer origin ] * [ layer origin ] When it should be: [ -parent layer origin ] * [ transform ] * [ layer origin ] TEST=virtual/spv2/fast/overflow/overflow-update-transform.html ========== to ========== [SPv2] Reverse PaintArtifactCompositor clip layer origin undo order As cc::Layer doesn't support shifted layer bounds, we bake the layer origin into transform and paint with an offset. When adding a child layer to a parent with such baked-in origin, we need to offset it first. Before this change the combined matrix looked like: [ transform ] * [ -parent layer origin ] * [ layer origin ] When it should be: [ -parent layer origin ] * [ transform ] * [ layer origin ] TEST=virtual/spv2/fast/overflow/overflow-update-transform.html Committed: https://crrev.com/5897d3e9488dc8596a646fd931ac7e32ec3cb6e3 Cr-Commit-Position: refs/heads/master@{#380558} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/5897d3e9488dc8596a646fd931ac7e32ec3cb6e3 Cr-Commit-Position: refs/heads/master@{#380558}
Message was sent while issue was closed.
Ah, that makes much more sense than the original CL, as I vividly remember thinking about and unit testing the order of those transforms. This I believe is an issue, but I would have liked to see a unit test in this CL as well. |