New issue
Advanced search Search tips

Issue 851637 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 6
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Mac
Pri: 2
Type: Compat



Sign in to add a comment

SVG with thick strokes cause visual leaking when Hardware acceleration is on

Reported by a...@evernote.com, Jun 11 2018

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.17 Safari/537.36

Example URL:

Steps to reproduce the problem:
See https://youtu.be/ee_LeTAH1qo for the recording of how the bug manifests itself. Attached is a minimal project that was used to record the bug.

Steps to reproduce:
1. Unzip the attached file.
2. Open index.html in the browser

What is the expected behavior?
No visual artifacts are present.

What went wrong?
Some geometry is heavily leaking.

Does it occur on multiple sites: N/A

Is it a problem with a plugin? N/A 

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: 68.0.3440.17  Channel: beta
OS Version: OS X 10.12.6
Flash Version: 

This only happens when hardware acceleration is enabled, both on 67.0.3396.79 (Official Build) (64-bit) and 68.0.3440.17 (Official Build) beta (64-bit).

The problem is in the thicker (2px) strokes (see the CSS file for the extra comment). If I remove `stroke-width: 2px` from the rendered circles (and stroke width will be a default one), then the problem disappears.

For extra statistics, the bug is also present in latest stable Electron (unless --disable-gpu is provided to disable hardware acceleration). The bug does not appear in Safari.

The attached demo uses some clipping code for SVG paths. I suspect that a combination of very small SVG paths occurring at the edges of the spherical shape + non-default stroke width is what causing the issue.
 
chrome_svg_bug.zip
80.3 KB Download
Labels: Needs-Triage-M68
Components: Blink>SVG
Labels: Triaged-ET M-69 Target-69 FoundIn-69 OS-Windows
Status: Untriaged (was: Unconfirmed)
Able to reproduce the issue on chrome reported version 68.0.3440.17 and on latest chrome 69.0.3455.0 using Mac 10.12.6 and Windows-10. As this issue is seen from M-60(60.0.3112.0), hence considering this issue a Non-Regression and marking it as Untriaged.
Note: Issue is not seen on Ubuntu 14.04.

Thanks!

Comment 3 by f...@opera.com, Jun 12 2018

Components: -Blink>SVG Internals>GPU>Rasterization
Here's a minimalist demo. The issue seems to disappear when we constrain the numbers to integers or integers+0.5 (e.g. try changing the 499.9 to 500).
index.html.zip
858 bytes Download
Owner: senorblanco@chromium.org
Status: Assigned (was: Untriaged)
senorblanco: more gpu path rasterization bugs for you to triage/investigate.
Owner: bsalo...@google.com
I was able to repro this one only after switching to the Intel GPU on my MBP. So likely --gpu-rasterization-msaa-sample-count=0 would be necessary to repro on the discrete GPU.

This one also seems to be GrAALinearizingConvexPathRenderer; possibly a dupe of  http://crbug.com/869172 .

Brian, could you take a look?
Project Member

Comment 7 by bugdroid1@chromium.org, Sep 5

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/20ea47a5d9aa99b20a7745efce0f6c325666b463

commit 20ea47a5d9aa99b20a7745efce0f6c325666b463
Author: Brian Salomon <bsalomon@google.com>
Date: Wed Sep 05 19:20:49 2018

Fix missing triangle when miter point omitted in GrAAConvexTessellator.

This issue is seen in the existing GPU results for GM "strokes_round".

Detected while investigating the below bug. However, the real bug there
caused by bad tessellations appears to be coming from
GrAAConvexPathRenderer.

BUG= chromium:851637 

Change-Id: If4e653d10823d53f68bb9bf6bb77875cf391426f
Reviewed-on: https://skia-review.googlesource.com/151368
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/20ea47a5d9aa99b20a7745efce0f6c325666b463/src/gpu/ops/GrAAConvexTessellator.cpp

Project Member

Comment 8 by bugdroid1@chromium.org, Sep 5

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

commit f65d3e611c4dce936326bf53b5a065babef1129b
Author: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Wed Sep 05 23:51:31 2018

Roll src/third_party/skia 29a4a684af25..0c3dc59fc1c6 (14 commits)

https://skia.googlesource.com/skia.git/+log/29a4a684af25..0c3dc59fc1c6


git log 29a4a684af25..0c3dc59fc1c6 --date=short --no-merges --format='%ad %ae %s'
2018-09-05 swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/swiftshader fe5861bf5bb1..ad5c2952ca88 (5 commits)
2018-09-05 mtklein@google.com fix sw extended transfer functions
2018-09-05 mtklein@google.com fix typo
2018-09-05 mtklein@google.com add src/opts headers to .gni files
2018-09-05 bsalomon@google.com Don't use MEM_MOVE=true with SkTArrays of sk_sp
2018-09-05 jvanverth@google.com Rip out variable offsetting
2018-09-05 bsalomon@google.com Fix GrAAConvexTessellator to handle cases slightly concave bistectors.
2018-09-05 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-09-05 herb@google.com Centralize the predicate for a glyph being too large for the atlas
2018-09-05 bsalomon@google.com Fix missing triangle when miter point omitted in GrAAConvexTessellator.
2018-09-05 brianosman@google.com Remove SK_USE_LEGACY_PRIMARIES_TO_XYZ
2018-09-05 skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll skia/third_party/skcms 8a251fa55434..da4870efd7b7 (1 commits)
2018-09-05 caryclark@google.com Revert "makeSurface defaults to raster"
2018-09-05 egdaniel@google.com On GrAHardwareBufferImageGenerator store the owned texture as a GrGpuResource instead of GrTexture.


Created with:
  gclient setdep -r src/third_party/skia@0c3dc59fc1c6

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG= chromium:875650 , chromium:851637 ,chromium:b/112859199
TBR=jvanverth@chromium.org

Change-Id: I21e2f158cebeb62dbc38dfafaf9daea314093269
Reviewed-on: https://chromium-review.googlesource.com/1208297
Reviewed-by: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#589064}
[modify] https://crrev.com/f65d3e611c4dce936326bf53b5a065babef1129b/DEPS

Status: Fixed (was: Assigned)

Sign in to add a comment