New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 788500 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Nov 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 1
Type: Bug



Sign in to add a comment

SVG rendering artifacts with GPU rasterization

Project Member Reported by fmalita@chromium.org, Nov 25 2017

Issue description

Chrome Version: (copy from chrome://version)
OS: (e.g. Win7, OSX 10.9.5, etc...)

What steps will reproduce the problem?

(1) open https://codepen.io/anon/pen/bYvXdE
(2) observe rendering artifacts (stray thin lines) when GPU rasterization is enabled


(split from https://bugs.chromium.org/p/chromium/issues/detail?id=773100#c6)

I ran a bisect and came up with 

You are probably looking for a change made after 496417 (known good), but no later than 496424 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/0c534f203cbe5e049a3d533ceb9dc0d7f403c79a..3123fbf5a3fb31ec55e7076b6689159a2d72c2fe

Which includes this Skia roll: https://chromium.googlesource.com/chromium/src/+/4276351eb9de8b14b0de30bb2c38827180ea2849

Suspecting the tessellator change - senorblanco@ PTAL.
 
gpu.png
36.4 KB View Download
Attaching a captured SKP for that scene in case it helps (doesn't immediately repro in SampleApp for me).
layer_1.skp
67.4 KB Download
Another (simpler?) repro: https://codepen.io/chrisgannon/pen/6c932fda8d8fca3e253b655033d86645

Reduce the output pane to scale the rendering down, and observe two white lines shooting out below a certain size.
bad_worm.png
3.2 KB View Download
Labels: -Pri-3 RegressedIn-62 M-63 OS-Android OS-Chrome OS-Linux OS-Mac OS-Windows Pri-1
Owner: bsalomon@chromium.org
This seems to be something in GrDefaultPathRenderer. If I comment that out (in GrPathRendererChain), the problem goes away.
Project Member

Comment 5 by bugdroid1@chromium.org, Nov 29 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/9c8a16bb1ef5b6663c7b2c98fc2ec7f6499f72a8

commit 9c8a16bb1ef5b6663c7b2c98fc2ec7f6499f72a8
Author: Brian Salomon <bsalomon@google.com>
Date: Wed Nov 29 13:07:28 2017

Make PathGeoBuilder use consistent iterators.

Previously it used a degenerate consuming iterator to determine the whether there were multiple contours. This was inconsistent with the tessellating step.

Bug:  chromium:788500 
Change-Id: I3938c69cf40bc551acdb8d5fa9b54d2c96e2a460
Reviewed-on: https://skia-review.googlesource.com/76961
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/9c8a16bb1ef5b6663c7b2c98fc2ec7f6499f72a8/gn/gm.gni
[add] https://crrev.com/9c8a16bb1ef5b6663c7b2c98fc2ec7f6499f72a8/gm/crbug_788500.cpp
[modify] https://crrev.com/9c8a16bb1ef5b6663c7b2c98fc2ec7f6499f72a8/src/gpu/ops/GrDefaultPathRenderer.cpp

Project Member

Comment 6 by bugdroid1@chromium.org, Nov 29 2017

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

commit b4513213245c2550683236b3aae829c8f3086469
Author: Brian Salomon <bsalomon@google.com>
Date: Wed Nov 29 13:30:06 2017

Revert "Make PathGeoBuilder use consistent iterators."

This reverts commit 9c8a16bb1ef5b6663c7b2c98fc2ec7f6499f72a8.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Make PathGeoBuilder use consistent iterators.
> 
> Previously it used a degenerate consuming iterator to determine the whether there were multiple contours. This was inconsistent with the tessellating step.
> 
> Bug:  chromium:788500 
> Change-Id: I3938c69cf40bc551acdb8d5fa9b54d2c96e2a460
> Reviewed-on: https://skia-review.googlesource.com/76961
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,brianosman@google.com

Change-Id: I18005ea2d7ba88c66334f110a5a74c6d82e4ab90
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  chromium:788500 
Reviewed-on: https://skia-review.googlesource.com/77440
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/b4513213245c2550683236b3aae829c8f3086469/gn/gm.gni
[delete] https://crrev.com/9c8a16bb1ef5b6663c7b2c98fc2ec7f6499f72a8/gm/crbug_788500.cpp
[modify] https://crrev.com/b4513213245c2550683236b3aae829c8f3086469/src/gpu/ops/GrDefaultPathRenderer.cpp

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 29 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/4f8c8f839a7f21b76e2a1152987ad2db24f66bd2

commit 4f8c8f839a7f21b76e2a1152987ad2db24f66bd2
Author: Robert Phillips <robertphillips@google.com>
Date: Wed Nov 29 13:30:46 2017

Revert "Make PathGeoBuilder use consistent iterators."

This reverts commit 9c8a16bb1ef5b6663c7b2c98fc2ec7f6499f72a8.

Reason for revert: An assert seems to be firing

Original change's description:
> Make PathGeoBuilder use consistent iterators.
> 
> Previously it used a degenerate consuming iterator to determine the whether there were multiple contours. This was inconsistent with the tessellating step.
> 
> Bug:  chromium:788500 
> Change-Id: I3938c69cf40bc551acdb8d5fa9b54d2c96e2a460
> Reviewed-on: https://skia-review.googlesource.com/76961
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,brianosman@google.com

Change-Id: I3a591086293d21f1a04dc3875242b96198aeddd8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  chromium:788500 
Reviewed-on: https://skia-review.googlesource.com/77441
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>


Project Member

Comment 8 by bugdroid1@chromium.org, Nov 29 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/29f9ed4dcc9c17e9f6116bed727a0fc0115b828d

commit 29f9ed4dcc9c17e9f6116bed727a0fc0115b828d
Author: Brian Salomon <bsalomon@google.com>
Date: Wed Nov 29 16:18:45 2017

Revert "Revert "Make PathGeoBuilder use consistent iterators.""

This reverts commit b4513213245c2550683236b3aae829c8f3086469.

Bug:  chromium:788500 
Change-Id: I6028b20770009b703f76ce2d9b451c561eaa705a
Reviewed-on: https://skia-review.googlesource.com/77582
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/29f9ed4dcc9c17e9f6116bed727a0fc0115b828d/gn/gm.gni
[add] https://crrev.com/29f9ed4dcc9c17e9f6116bed727a0fc0115b828d/gm/crbug_788500.cpp
[modify] https://crrev.com/29f9ed4dcc9c17e9f6116bed727a0fc0115b828d/src/gpu/ops/GrDefaultPathRenderer.cpp

Comment 9 by bsalo...@google.com, Nov 29 2017

Status: Fixed (was: Assigned)

Sign in to add a comment