New issue
Advanced search Search tips

Issue 607831 link

Starred by 8 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

CSS transition on transform breaks blur filter

Reported by benjami...@gmail.com, Apr 29 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/602.1.29 (KHTML, like Gecko) Version/9.1.1 Safari/601.6.17

Example URL:
http://sharedfil.es/RhXVBmewcr.html

Steps to reproduce the problem:
1. Go to http://sharedfil.es/RhXVBmewcr.html
2. Hover the black square.
3. Look at the blur during the transition.

What is the expected behavior?
The square animates and the blur stays visible.

What went wrong?
The blur becomes sharp during the animation.

Does it occur on multiple sites: Yes

Is it a problem with a plugin? No 

Did this work before? Yes Chrome 49.

Does this work in other browsers? Yes 

Chrome version: Version 50.0.2661.94 (64-bit)  Channel: stable
OS Version: OS X 10.11.4
Flash Version: 

See the header's button on https://stripe.com/atlas for a real-world use case.
 

Comment 1 by f...@opera.com, Apr 29 2016

Components: -Blink Blink>CSS>Filters
Status: Untriaged (was: Unconfirmed)
Thus spake bisect-builds.py:

You are probably looking for a change made after 370531 (known good), but no later than 370539 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/db6584f5ba2d6cda49fa42775903399cd4d427d6..65e89854f57ac34a51e4c60ac663ce21110e6944

Owner: senorblanco@chromium.org
Status: Assigned (was: Untriaged)
That bisect was off. Trying again:

You are probably looking for a change made after 370520 (known good), but no later than 370526 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/fb6d7cd97f963253a64b8234954d0f76fa310871..25d2a4a86fb664bbeff65fb68f835c92cd6318c4

Most likely my https://chromium.googlesource.com/chromium/src/+/38858c57782f2a32cf4f93fcfcc35c340e665be4
It seems to be the edges added for antialiasing when a transform is present (simplified test case attached). After my change, the edges are placed at the original (unfiltered) rect position, and clip the content.
filter-rotate-clipping-bug.html
413 bytes View Download
Quick hack that shows that disabling AA fixes the problem.
disable-aa-hack.patch
598 bytes Download
Cc: enne@chromium.org
 Issue 608639  has been merged into this issue.
Project Member

Comment 9 by bugdroid1@chromium.org, May 3 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c2061a305a361ebda94b0e46e80a69846b875cc5

commit c2061a305a361ebda94b0e46e80a69846b875cc5
Author: senorblanco <senorblanco@chromium.org>
Date: Tue May 03 19:52:13 2016

cc: fix pixel-moving filter effects on a rotated layer.

When a pixel-moving filter (e.g. blur, drop-shadow) is applied to a
transformed layer, we were leaving the edge equations used for edge-AA
at the original primitive's position, causing them to truncate the
effect (e.g., blur margins).

This fix detects that AA is required on a filter that changes the
bounds, disables edge-AA and bloats the boundaries by an extra pixel
instead.

This revealed that we were drawing the filtered result with NEAREST
filtering (!), causing some nasty jaggies when rotated. This was fixed by
manually setting the min and mag filters to LINEAR.

It also revealed that the software renderer was not
applying filter outsets. The GL renderer was previously
fixed here: https://codereview.chromium.org/1517693002. This
CL makes similar changes to the software renderer.

BUG= 607831 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/1942863002
Cr-Commit-Position: refs/heads/master@{#391332}

[modify] https://crrev.com/c2061a305a361ebda94b0e46e80a69846b875cc5/cc/output/gl_renderer.cc
[modify] https://crrev.com/c2061a305a361ebda94b0e46e80a69846b875cc5/cc/output/software_renderer.cc
[modify] https://crrev.com/c2061a305a361ebda94b0e46e80a69846b875cc5/cc/output/software_renderer.h
[add] https://crrev.com/c2061a305a361ebda94b0e46e80a69846b875cc5/cc/test/data/rotated_drop_shadow_filter_gl.png
[add] https://crrev.com/c2061a305a361ebda94b0e46e80a69846b875cc5/cc/test/data/rotated_drop_shadow_filter_sw.png
[add] https://crrev.com/c2061a305a361ebda94b0e46e80a69846b875cc5/cc/test/data/rotated_filter_gl.png
[add] https://crrev.com/c2061a305a361ebda94b0e46e80a69846b875cc5/cc/test/data/rotated_filter_sw.png
[modify] https://crrev.com/c2061a305a361ebda94b0e46e80a69846b875cc5/cc/trees/layer_tree_host_pixeltest_filters.cc

Status: Fixed (was: Assigned)
 Issue 609057  has been merged into this issue.
This appears better, but does not seem to be entirely fixed.  Please see the attached video.
happytrails.mov
1.3 MB Download

Comment 13 by f...@opera.com, Jul 6 2016

 Issue 625971  has been merged into this issue.
Components: -Blink>CSS>Filters Blink>Compositing>Filters

Sign in to add a comment