CSS filter effects rendering is clipped on hiDPI Mac
Reported by
stefan.v...@gmail.com,
Jun 28 2016
|
||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 Example URL: Steps to reproduce the problem: 1. Install the "Turn Off the Lights" Chrome extension https://chrome.google.com/webstore/detail/turn-off-the-lights/bfbmjmiodbnnpllbbbfblcplfjjepjdn https://www.turnoffthelights.com 2. Open the Turn Off the Lights options page -> Click the "Visual Effects" tab. And enable the "Atmosphere Lighting" feature. Enable the "Extract the color from the video" radio button. And also the "vivid mode checkbox" 2. When you open now this YouTube video https://youtu.be/4KzFe50RQkQ?t=2h27m38s 3. You see it doesn't glow the whole content around this box. In the previous Chrome you see the glow over the box. What is the expected behavior? The glow must go over the whole part. This code in the Turn Off the Lights Chrome extension is never changed for this Atmosphere Lighting feature for YouTube. And you do not see this issue on the older Google Chrome version. What went wrong? Now the glow stop within that container box. Does it occur on multiple sites: Yes Is it a problem with a plugin? No Did this work before? Yes Chrome40 Does this work in other browsers? Yes Chrome version: 51.0.2704.103 Channel: n/a OS Version: OS X 10.11.5 Flash Version: Shockwave Flash 22.0 r0 I am the developer of Turn Off the Lights. And there is possible an rendering issue with the CSS -webkit-filter: blur(30px); .
,
Jul 12 2016
stefan.vd01@: Could you provide a minimal repro case, preferably without using the extension (ie., web content only)? That would really help to track down this problem.
,
Jul 12 2016
OK. I will share a live .html sample (within 30 minutes)
,
Jul 12 2016
Here is the sample file: https://www.turnoffthelights.com/issue624027.html Click on the play button, and you see something like this (see JPG file). The blur effect is inside the box. In previous Chrome versions you didn't saw this issue.
,
Jul 12 2016
When I resize the Chrome window, it's gone. And see a smooth overflow (that do not stop the glow effect). But after a new video frame, it's back for the new colors.
,
Jul 12 2016
Thanks for the quick reduction! Will investigate.
,
Jul 18 2016
I couldn't reproduce this on Win/Mac/Linux, although all of my devices are loDPI. This might be a hiDPI issue.
,
Jul 18 2016
I use a Macbook Pro Retina 15inch (begin 2013) and still see this issue.
,
Aug 12 2016
I can repro on a mid-2012 Retina MacBook Pro. So it does seem to be HiDPI-specific.
,
Aug 12 2016
bisect-builds.py says: You are probably looking for a change made after 324657 (known good), but no later than 324661 (first known bad). CHANGELOG URL: https://chromium.googlesource.com/chromium/src/+log/db4f05ad8220e94b82976196cdb307fd4be9047d..84fa271b53e4ef85329961f9d36d533b73bd2ff7 The only thing that looks relevant is "Mac: Partially enable partial swap" aka https://codereview.chromium.org/1065123002, although perhaps that change simply exposed a bug in cc or elsewhere.
,
Aug 12 2016
,
Aug 12 2016
,
Aug 12 2016
passing --ui-disable-partial-swap on the command line seems to fix it, so I'm guessing that something is passing an insufficient (likely loDPI) invalidation rect to the partial swap code.
,
Aug 12 2016
The problem is in the damage tracker, likely here:
damage_rect_for_this_update =
filters.MapRect(damage_rect_for_this_update, SkMatrix::I());
The matrix passed to MapRect should likely contain the device scale factor. Forcing it to SkMatrix::MakeScale(2.0f) "fixes" the bug.
https://cs.chromium.org/chromium/src/cc/trees/damage_tracker.cc?sq=package:chromium&dr=C&rcl=1470626560&l=141
,
Aug 12 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2bc7c6121856f959d907ec52e0aadf43d7a39616 commit 2bc7c6121856f959d907ec52e0aadf43d7a39616 Author: senorblanco <senorblanco@chromium.org> Date: Fri Aug 12 19:34:17 2016 cc: fix damage tracker rect with hidpi filters. BUG= 624027 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel Review-Url: https://codereview.chromium.org/2241763002 Cr-Commit-Position: refs/heads/master@{#411734} [modify] https://crrev.com/2bc7c6121856f959d907ec52e0aadf43d7a39616/cc/layers/render_surface_impl.cc [modify] https://crrev.com/2bc7c6121856f959d907ec52e0aadf43d7a39616/cc/layers/render_surface_impl.h [modify] https://crrev.com/2bc7c6121856f959d907ec52e0aadf43d7a39616/cc/trees/damage_tracker.cc [modify] https://crrev.com/2bc7c6121856f959d907ec52e0aadf43d7a39616/cc/trees/damage_tracker_unittest.cc [modify] https://crrev.com/2bc7c6121856f959d907ec52e0aadf43d7a39616/cc/trees/layer_tree_host_common.cc [modify] https://crrev.com/2bc7c6121856f959d907ec52e0aadf43d7a39616/cc/trees/layer_tree_host_common.h
,
Aug 12 2016
,
Apr 5 2017
|
||||||
►
Sign in to add a comment |
||||||
Comment 1 by tkent@chromium.org
, Jul 5 2016