New issue
Advanced search Search tips

Issue 678403 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: 2017-02-02
OS: All
Pri: 2
Type: Bug-Regression

Blocked on:
issue skia:7168



Sign in to add a comment

Transformed box with border-radius fails to invalidate, leaves borders on the page

Project Member Reported by pdr@chromium.org, Jan 4 2017

Issue description

Chrome Version: 57.0.2970.0
OS: Win10

What steps will reproduce the problem?
(1) Open http://jsbin.com/valeti
(2) Notice the box leaves around lines as it moves.

What is the expected result?
The box should move around and not leave lines.
 
Labels: Needs-Feedback OS-Windows
NextAction: 2017-02-02
Status: Unconfirmed (was: Untriaged)
I can't repro with Version 57.0.2972.0 canary (64-bit).

Is this sensitive to viewport size or dpi or zoom?
I tried Win 10 Canary and ToT linux.

Comment 3 by pdr@chromium.org, Jan 6 2017

Labels: -Needs-Feedback
I can reproduce this with --disable-gpu-compositing on OSX 10.12.12/non-retina at ToT, as well as android/canary with no flags (zoomed all the way out), and win10 at ToT.

Comment 4 by pdr@chromium.org, Jan 6 2017

Labels: -OS-Windows -Type-Bug -Needs-Bisect OS-All Type-Bug-Regression
Owner: chrishtr@chromium.org
Status: Untriaged (was: Unconfirmed)
I bisected this on mac to:
https://chromium.googlesource.com/chromium/src/+log/87a98e4bdb72d8dd75c89d1c068f26516da0ef6b..18fac5c4bf292cc711aee969b9a88f8d8630e861
aka "Partial raster for GPU"
https://chromium.googlesource.com/chromium/src/+/5ac42f32e7b4142cd578082424a85a26794cf0ab

I bisected this on windows to:
https://chromium.googlesource.com/chromium/src/+log/8694d7b928ba2b7bfe73fbcb74d052faa5eb309c..4c9fd0d3128c87e1289e9ac1d47fec18d7107077
aka "turn on partial raster by default"
https://chromium.googlesource.com/chromium/src/+/d7512fd5a1b7a87b3808c5edf1bed88a55242819

It looks like this is a partial raster regression. Chris, can you triage?
Components: Internals>Compositing>Rasterization
Status: Assigned (was: Untriaged)
Owner: fmalita@chromium.org
In this example, a div of size 200x200 with a rounded corner and 1px
border is rendered inside of a transform that scales by 0.5, 0.5. Thus
the resulting box should be drawable in a region of size 101x101, since the
borders should end up drawing 0.5px on each side after transform.
Blockedon: skia:7168
@chris, pdr, an update on this: it is most likely related to Skia's hairline stroker (which trades some accuracy for speed).

We have some workarounds in SVG to inflate the inval rect when hairlines are involved, and I'm thinking we could add something similar for boxes.  I can look at that, just need to refresh myself on where the hooks for munging the inval rect are.

Another option would be to disable the hairline optimization completely - but that's likely to slow some things down considerably.

Longer term I think Mike has some ideas on how to make the hairline stroker more accurate, so hopefully we can remove the workarounds at some point.

Sign in to add a comment