|
|
Chromium Code Reviews|
Created:
4 years, 1 month ago by trchen Modified:
4 years ago CC:
ajuma+watch_chromium.org, blink-reviews, blink-reviews-paint_chromium.org, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj+watch_chromium.org, dshwang, drott+blinkwatch_chromium.org, krit, f(malita), jbroman, Justin Novosad, pdr+graphicswatchlist_chromium.org, rwlbuis, Stephen Chennney Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
Description[SPv2] Add filter support in PaintArtifactCompositor
This CL enables CSS filter support by doing the following:
1. Now each effect node creates a render surface by default. This wasn't needed
before because cc can apply accumulated transparency on layers directly, as
long as the layers don't overlap. Filters always need render surface to apply.
This also fixes multiple overlapping paint chunks under same opacity group.
2. Ensure proper clip nesting in compositing tree. The concept of input clip
is introduced in effect node. The input clip node itself is not stored on the
effect node but only computed during property tree building. The input clip
represents the cull region for the compositing children of the effect. The
input clip must be a common ancestor of all child paint chunk's clip node and
child effect's output clip.
3. Because of 2., we no longer creates dummy clip node for effects.
4. Copy blink effect filter to cc effect, which is one line.
BUG=609937
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Committed: https://crrev.com/b91d2f0d740683d361ba648148f5dd492552fdfb
Cr-Commit-Position: refs/heads/master@{#434888}
Patch Set 1 #
Total comments: 4
Patch Set 2 : rebase & add expectation & add comment #
Total comments: 1
Patch Set 3 : revise comments #Patch Set 4 : rebase #
Messages
Total messages: 40 (23 generated)
Description was changed from ========== [SPv2] Add filter support in PaintArtifactCompositor This CL enables CSS filter support by doing the following: 1. Now each effect node creates a render surface by default. This wasn't needed before because cc can apply accumulated transparency on layers directly, as long as the layers don't overlap. Filters always need render surface to apply. This also fixes multiple overlapping paint chunks under same opacity group. 2. Ensure proper clip nesting in compositing tree. The concept of input clip is introduced in effect node. The input clip node itself is not stored on the effect node but only computed during property tree building. The input clip represents the cull region for the compositing children of the effect. The input clip must be a common ancestor of all child paint chunk's clip node and child effect's output clip. 3. Because of 2., we no longer creates dummy clip node for effets. 4. Copy blink effect filter to cc effect, which is one line. BUG=609937 ========== to ========== [SPv2] Add filter support in PaintArtifactCompositor This CL enables CSS filter support by doing the following: 1. Now each effect node creates a render surface by default. This wasn't needed before because cc can apply accumulated transparency on layers directly, as long as the layers don't overlap. Filters always need render surface to apply. This also fixes multiple overlapping paint chunks under same opacity group. 2. Ensure proper clip nesting in compositing tree. The concept of input clip is introduced in effect node. The input clip node itself is not stored on the effect node but only computed during property tree building. The input clip represents the cull region for the compositing children of the effect. The input clip must be a common ancestor of all child paint chunk's clip node and child effect's output clip. 3. Because of 2., we no longer creates dummy clip node for effets. 4. Copy blink effect filter to cc effect, which is one line. BUG=609937 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
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/v2/patch-status/codereview.chromium.or...
trchen@chromium.org changed reviewers: + chrishtr@chromium.org, pdr@chromium.org
Note: this CL depends on https://codereview.chromium.org/2490273004/
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...)
Looks great overall! https://codereview.chromium.org/2495973002/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h (right): https://codereview.chromium.org/2495973002/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h:73: const ClipPaintPropertyNode* inputClipOfCurrentEffect = nullptr; Nit: clipForCurrentEffect? Can you add a 2 sentence comment here describing when it should be updated?
Description was changed from ========== [SPv2] Add filter support in PaintArtifactCompositor This CL enables CSS filter support by doing the following: 1. Now each effect node creates a render surface by default. This wasn't needed before because cc can apply accumulated transparency on layers directly, as long as the layers don't overlap. Filters always need render surface to apply. This also fixes multiple overlapping paint chunks under same opacity group. 2. Ensure proper clip nesting in compositing tree. The concept of input clip is introduced in effect node. The input clip node itself is not stored on the effect node but only computed during property tree building. The input clip represents the cull region for the compositing children of the effect. The input clip must be a common ancestor of all child paint chunk's clip node and child effect's output clip. 3. Because of 2., we no longer creates dummy clip node for effets. 4. Copy blink effect filter to cc effect, which is one line. BUG=609937 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== [SPv2] Add filter support in PaintArtifactCompositor This CL enables CSS filter support by doing the following: 1. Now each effect node creates a render surface by default. This wasn't needed before because cc can apply accumulated transparency on layers directly, as long as the layers don't overlap. Filters always need render surface to apply. This also fixes multiple overlapping paint chunks under same opacity group. 2. Ensure proper clip nesting in compositing tree. The concept of input clip is introduced in effect node. The input clip node itself is not stored on the effect node but only computed during property tree building. The input clip represents the cull region for the compositing children of the effect. The input clip must be a common ancestor of all child paint chunk's clip node and child effect's output clip. 3. Because of 2., we no longer creates dummy clip node for effects. 4. Copy blink effect filter to cc effect, which is one line. BUG=609937 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
https://codereview.chromium.org/2495973002/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/2495973002/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:387: expansionHint = outputClip; Why is it called expansionHint? It's not a hint is it?
Also, please add some newly passing SPv2 tests that involve effects.
ping - what's the status of this CL?
Waiting for a dependency to land. Then I'll update FlagExpectation.
Patchset #2 (id:20001) has been deleted
https://codereview.chromium.org/2495973002/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/2495973002/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:387: expansionHint = outputClip; On 2016/11/14 19:45:10, chrishtr wrote: > Why is it called expansionHint? It's not a hint is it? We haven't implemented one yet. The output clip is used as an approximation. https://codereview.chromium.org/2495973002/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h (right): https://codereview.chromium.org/2495973002/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h:73: const ClipPaintPropertyNode* inputClipOfCurrentEffect = nullptr; On 2016/11/14 19:25:07, pdr. wrote: > Nit: clipForCurrentEffect? > Can you add a 2 sentence comment here describing when it should be updated? Done.
The CQ bit was checked by pdr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
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_te...)
https://codereview.chromium.org/2495973002/diff/30001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/2495973002/diff/30001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:424: // TODO(trchen): Change input clip to expansion hint created above. This comment is now out of date - there is no expansion hint referenced above.
On 2016/11/23 17:40:52, chrishtr wrote: > https://codereview.chromium.org/2495973002/diff/30001/third_party/WebKit/Sour... > File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): > > https://codereview.chromium.org/2495973002/diff/30001/third_party/WebKit/Sour... > third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:424: // > TODO(trchen): Change input clip to expansion hint created above. > This comment is now out of date - there is no expansion hint referenced above. It's referring to something we haven't implemented today. I think I should rephrase it in a less confusing way. How about "Change input clip to the expansion hint once implemented."?
On 2016/11/23 at 19:22:41, trchen wrote: > On 2016/11/23 17:40:52, chrishtr wrote: > > https://codereview.chromium.org/2495973002/diff/30001/third_party/WebKit/Sour... > > File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): > > > > https://codereview.chromium.org/2495973002/diff/30001/third_party/WebKit/Sour... > > third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:424: // > > TODO(trchen): Change input clip to expansion hint created above. > > This comment is now out of date - there is no expansion hint referenced above. > > It's referring to something we haven't implemented today. I think I should rephrase it in a less confusing way. > How about "Change input clip to the expansion hint once implemented."? ok
lgtm
On 2016/11/23 at 20:07:26, chrishtr wrote: > lgtm LGTM 2
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/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: blimp_linux_dbg on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL) cast_shell_linux on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL) chromeos_daisy_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL) chromeos_x86-generic_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL) linux_chromium_asan_rel_ng on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL) linux_chromium_chromeos_compile_dbg_ng on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL) linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL) linux_layout_tests_slimming_paint_v2 on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL)
The CQ bit was checked by trchen@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from chrishtr@chromium.org, pdr@chromium.org Link to the patchset: https://codereview.chromium.org/2495973002/#ps50001 (title: "revise comments")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
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...) ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...) mac_chromium_compile_dbg_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by trchen@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from chrishtr@chromium.org, pdr@chromium.org Link to the patchset: https://codereview.chromium.org/2495973002/#ps70001 (title: "rebase")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch.
Bot data: {"patchset_id": 70001, "attempt_start_ts": 1480386282152510,
"parent_rev": "d10c3d3d06024fa9c34b72cb1f39322c5dc70887", "commit_rev":
"cd7c68e50139c41b677a6bb8e1febb239423c991"}
Message was sent while issue was closed.
Committed patchset #4 (id:70001)
Message was sent while issue was closed.
Description was changed from ========== [SPv2] Add filter support in PaintArtifactCompositor This CL enables CSS filter support by doing the following: 1. Now each effect node creates a render surface by default. This wasn't needed before because cc can apply accumulated transparency on layers directly, as long as the layers don't overlap. Filters always need render surface to apply. This also fixes multiple overlapping paint chunks under same opacity group. 2. Ensure proper clip nesting in compositing tree. The concept of input clip is introduced in effect node. The input clip node itself is not stored on the effect node but only computed during property tree building. The input clip represents the cull region for the compositing children of the effect. The input clip must be a common ancestor of all child paint chunk's clip node and child effect's output clip. 3. Because of 2., we no longer creates dummy clip node for effects. 4. Copy blink effect filter to cc effect, which is one line. BUG=609937 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== [SPv2] Add filter support in PaintArtifactCompositor This CL enables CSS filter support by doing the following: 1. Now each effect node creates a render surface by default. This wasn't needed before because cc can apply accumulated transparency on layers directly, as long as the layers don't overlap. Filters always need render surface to apply. This also fixes multiple overlapping paint chunks under same opacity group. 2. Ensure proper clip nesting in compositing tree. The concept of input clip is introduced in effect node. The input clip node itself is not stored on the effect node but only computed during property tree building. The input clip represents the cull region for the compositing children of the effect. The input clip must be a common ancestor of all child paint chunk's clip node and child effect's output clip. 3. Because of 2., we no longer creates dummy clip node for effects. 4. Copy blink effect filter to cc effect, which is one line. BUG=609937 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/b91d2f0d740683d361ba648148f5dd492552fdfb Cr-Commit-Position: refs/heads/master@{#434888} ==========
Message was sent while issue was closed.
Patchset 4 (id:??) landed as https://crrev.com/b91d2f0d740683d361ba648148f5dd492552fdfb Cr-Commit-Position: refs/heads/master@{#434888} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
