New issue
Advanced search Search tips

Issue 807188 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 12
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

SVG feTile creates wrong result in some browser zoom levels

Reported by jan.boes...@incors.com, Jan 30 2018

Issue description

UserAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36

Example URL:
https://codepen.io/anon/pen/bLGmjr

Steps to reproduce the problem:
Visit https://codepen.io/anon/pen/bLGmjr  or run the attached code.

What is the expected behavior?
The rectangle should be seamlessly filled with red color, independent from the browser's zoom level.

What went wrong?
If the browser's zoom level is set to 50% or 25%, The rectangle will be displayed as a raster of small squares.

Interestingly if you change the tile size (in feComponentTransfer) to 12x12 pixels, the problem occurs at zoom level 33%. If you set it to 20x20 pixels, the problem does not occur at all.

Does it occur on multiple sites: N/A

Is it a problem with a plugin? No 

Did this work before? N/A 

Does this work in other browsers? Yes

Chrome version: 64.0.3282.119  Channel: stable
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version: 

Works correctly on Firefox and Internet Explorer
 
feTile.html
418 bytes View Download
result_at_50_percent.png
957 bytes View Download
Labels: Needs-Triage-M64
Components: Blink>SVG
Components: -Blink>SVG Internals>GPU
Labels: Needs-Feedback OS-Android OS-Chrome OS-Linux OS-Mac
NextAction: 2018-02-19
Status: Available (was: Unconfirmed)
I can't reproduce this in a chromium bisect, though it does reproduce in Chrome.

What happens if you disable GPU rasterization?
Components: -Internals>GPU Internals>Skia
Labels: -Type-Compat -Needs-Feedback -Needs-Triage-M64 FoundIn-64 RegressedIn-64 Type-Bug-Regression
NextAction: ----
Owner: robertphillips@chromium.org
Status: Assigned (was: Available)
It is a GPU raster issue. Bisect says:

https://chromium.googlesource.com/chromium/src/+log/8aa1a1715765e192313f677a35fbd8618e6491eb..0aa10a8d01e118db52d355ddaee261fbb5c8ed11

The only likely candidate is https://chromium-review.googlesource.com/c/chromium/src/+/744683: Reenable Skia's deferred proxies

Evidence suggests some rounding issue combined with power-of-2.
Problem disappears after switching off hardware acceleration.
Thanks for confirming that it's a GPU raster bug.
Cc: fmalita@chromium.org
Adding Florin, who might know what is up with the image filters.
bug-807188.skp
1.9 KB Download
As a stand alone svg
bug-807188.svg
416 bytes Download
Just wanted to give an update why I hope this will be fixed.

When filtering a large rectangle in SVG sometimes it is much faster to filter a small area first and then use feTile to fill a larger area with the result. This can improve rendering of SVGs quite a bit.

Due to the artefacts in some zoom levels, feTile is mostly unusable on Chrome, which again makes it unusable for SVGs on websites. 

In short, fixing this issue would make is possible to use the performance potentials provided by feTile.
Status: Fixed (was: Assigned)
AFAICT this has been fixed.

OP, could you verify?

Comment 11 Deleted

It has improved a lot, but unfortunately I can still find cases where the artefacts occur.

If I open the following codepen and zoom to 110%, the rectangle shows a grid:
https://codepen.io/anon/pen/jXbdbN

Interestingly, If I zoom in further (to 150%) and then zoom back to 110%, the rectangle is painted correctly (without a grid). Only after reloading the page the grid shows again.



zoom110percent.png
1.1 KB View Download
test.html
458 bytes View Download

Sign in to add a comment