New issue
Advanced search Search tips

Issue 660893 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2017
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 642376



Sign in to add a comment

Screenspace AA tessellating path renderer shows jaggy artifacts

Project Member Reported by senorblanco@chromium.org, Oct 31 2016

Issue description

With the screenspace AA tessellator enabled (#define SK_DISABLE_SCREENSPACE_TESS_AA_PATH_RENDERER removed), several layout tests show visual artifacts. In particular:

virtual/gpu/fast/canvas/canvas-arc-circumference-fill.html has jaggy edges on bottom three rows
virtual/gpu/fast/canvas/canvas-ellipse-circumference-fill.html has jaggy edges on almost all rows

This seems to occur when the path contains two self-intersections along the same straight edge.
 
Blocking: 642376
Project Member

Comment 2 by bugdroid1@chromium.org, Jan 3 2017

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

commit d4b21552481a6d313dfa9bc14b624c9ec94b56ce
Author: Stephen White <senorblanco@chromium.org>
Date: Tue Jan 03 20:24:19 2017

Quality and performance fixes for AA tessellating path renderer.

Use quads rather than triangles for the edge geometry. This allows
us to perform a simpler edge categorization (see below). It also
improves performance by reducing the number of edges processed during
the simplify and tessellate steps.

Label AA edges as three types: inner, outer, and connector. This
results in correct alpha values for intersected edges, even when
the top or bottom vertex has been merged with a vertex on edges
of different types.

Changed the "collinear edges" sample from the concavepaths GM for a
"fast-foward" shape, which more clearly shows the problem being fixed
here. (The collinearity from the "collinear edges" was actually being
removed earlier up the stack, causing the path to become convex and
not exercise the concave path renderers anyway.)

NOTE: this will cause changes in the "concavepaths" GM results, and
minor pixel diffs in a number of other tests.

BUG= 660893 

Change-Id: Ide49374d6d173404c7223f7316dd439df1435787
Reviewed-on: https://skia-review.googlesource.com/6427
Commit-Queue: Stephan White <senorblanco@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/d4b21552481a6d313dfa9bc14b624c9ec94b56ce/gm/concavepaths.cpp
[modify] https://crrev.com/d4b21552481a6d313dfa9bc14b624c9ec94b56ce/src/gpu/GrPathRendererChain.cpp
[modify] https://crrev.com/d4b21552481a6d313dfa9bc14b624c9ec94b56ce/src/gpu/GrTessellator.cpp
[modify] https://crrev.com/d4b21552481a6d313dfa9bc14b624c9ec94b56ce/src/gpu/ops/GrTessellatingPathRenderer.cpp

Project Member

Comment 3 by bugdroid1@chromium.org, Jan 3 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia.git/+/021f927e4cb8293a56923b763682217067486878

commit 021f927e4cb8293a56923b763682217067486878
Author: Stephan White <senorblanco@chromium.org>
Date: Tue Jan 03 21:06:16 2017

Revert "Quality and performance fixes for AA tessellating path renderer."

This reverts commit d4b21552481a6d313dfa9bc14b624c9ec94b56ce.

Reason for revert: accidentally added some unwanted changes

Original change's description:
> Quality and performance fixes for AA tessellating path renderer.
> 
> Use quads rather than triangles for the edge geometry. This allows
> us to perform a simpler edge categorization (see below). It also
> improves performance by reducing the number of edges processed during
> the simplify and tessellate steps.
> 
> Label AA edges as three types: inner, outer, and connector. This
> results in correct alpha values for intersected edges, even when
> the top or bottom vertex has been merged with a vertex on edges
> of different types.
> 
> Changed the "collinear edges" sample from the concavepaths GM for a
> "fast-foward" shape, which more clearly shows the problem being fixed
> here. (The collinearity from the "collinear edges" was actually being
> removed earlier up the stack, causing the path to become convex and
> not exercise the concave path renderers anyway.)
> 
> NOTE: this will cause changes in the "concavepaths" GM results, and
> minor pixel diffs in a number of other tests.
> 
> BUG= 660893 
> 
> Change-Id: Ide49374d6d173404c7223f7316dd439df1435787
> Reviewed-on: https://skia-review.googlesource.com/6427
> Commit-Queue: Stephan White <senorblanco@chromium.org>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> 

TBR=bsalomon@google.com,senorblanco@chromium.org,reviews@skia.org
BUG= 660893 
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I06a36e397645bfc42442a5a9e7c27328f6048ab9
Reviewed-on: https://skia-review.googlesource.com/6428
Commit-Queue: Stephan White <senorblanco@chromium.org>
Reviewed-by: Stephan White <senorblanco@chromium.org>

[modify] https://crrev.com/021f927e4cb8293a56923b763682217067486878/gm/concavepaths.cpp
[modify] https://crrev.com/021f927e4cb8293a56923b763682217067486878/src/gpu/GrPathRendererChain.cpp
[modify] https://crrev.com/021f927e4cb8293a56923b763682217067486878/src/gpu/GrTessellator.cpp
[modify] https://crrev.com/021f927e4cb8293a56923b763682217067486878/src/gpu/ops/GrTessellatingPathRenderer.cpp

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 4 2017

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

commit 880996d1006558c9bf2cc1399bbee3e51db5a205
Author: skia-deps-roller <skia-deps-roller@chromium.org>
Date: Wed Jan 04 02:54:31 2017

Roll src/third_party/skia/ 7551898f8..9ea894b4d (13 commits).

https://skia.googlesource.com/skia.git/+log/7551898f8eba..9ea894b4d030

$ git log 7551898f8..9ea894b4d --date=short --no-merges --format='%ad %ae %s'
2017-01-03 mtklein Revert "trim another instruction off SkRasterPipeline overhead"
2017-01-03 bungeman Specify "/utf-8" with Visual C++.
2017-01-03 senorblanco Quality and performance fixes for AA tessellating path renderer.
2017-01-03 senorblanco Revert "Quality and performance fixes for AA tessellating path renderer."
2017-01-03 senorblanco Quality and performance fixes for AA tessellating path renderer.
2017-01-03 ethannicholas fixed a divide-by-zero bug in skslc
2017-01-03 ethannicholas switched GrVkPipelineStateCache over to use SkLRUCache
2017-01-03 herb Fix: when pos is not finite, text pointer not advanced.
2017-01-03 reed validate deserialized path verbs
2016-12-22 scroggo GIF: Better check for frame dependency
2017-01-03 ethannicholas Force classic locale when parsing floats in skslc.
2016-12-29 ethannicholas fix for Vulkan SPIR-V crash on some systems
2016-12-29 mtklein trim another instruction off SkRasterPipeline overhead

BUG= 660893 , 660893 , 676755 

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

If the roll is causing failures, see:
http://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium#TOC-Failures-due-to-DEPS-rolls

CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
TBR=csmartdalton@google.com

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

[modify] https://crrev.com/880996d1006558c9bf2cc1399bbee3e51db5a205/DEPS

Status: Fixed (was: Assigned)

Sign in to add a comment