New issue
Advanced search Search tips

Issue 888453 link

Starred by 9 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 20
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Mac
Pri: 3
Type: Bug



Sign in to add a comment

Canvas rendering of circles is more like rounded rectangles

Project Member Reported by aerotwist@chromium.org, Sep 24

Issue description

Chrome Version: 71.0.3559.0 (Official Build) canary (64-bit)
OS: Mac, Android

What steps will reproduce the problem?
(1) Go to http://jsfiddle.net/Lve9mu8k/7/
(2) Take a look at the gloriously pink circles.

What is the expected result?

Circular circles.

What happens instead?

The circle on the left in the 300x300 canvas appears to be more like a rounded rectangle.


Please use labels and text to provide additional information.

If this is a regression (i.e., worked before), please consider using the
bisect tool (https://www.chromium.org/developers/bisect-builds-py) to help
us identify the root cause and more rapidly triage the issue.

For graphics-related bugs, please copy/paste the contents of the about:gpu
page at the end of this report.


 
Summary: Canvas rendering of circles is more like rounded rectangles (was: Canvas rendering of circles is)
If it's off any constellation to help debug, setting the width/height to 5000 makes it back a circle: http://jsfiddle.net/Lve9mu8k/26/
If it helps, here's a slightly more "advanced" version of the jsfiddle example: http://jsfiddle.net/Lve9mu8k/23/, strangely making the canvas itself smaller turns the smaller circle into a true circle again...
Hey, did a test with adding a moveTo(x, y) command to the pixel coordinates that you are drawing the circle to. Seems to fix it, an example is here: http://jsfiddle.net/Lve9mu8k/38/
Labels: Target-71 FoundIn-71 M-71 OS-Linux OS-Windows
Able to reprooduce the issue on the latest canary(71.0.3560.0) on Windows-10 and Linux Debian Rodete as well. This is non regression issue seen on older chrome version 60.0.3112.20 also.
Cc: jvanverth@google.com
Components: Internals>Skia
Owner: bsalo...@google.com
Status: Available (was: Untriaged)
The top left canvas is above the acceleration threshold, while the bottom right one is not. So looks like it's a Ganesh bug.

Brian, could you take a look or reassign?

(+jvanverth because circles/ovals...)
Owner: brianosman@google.com
Reassigning to Skia GPU wrangler.
Project Member

Comment 8 by bugdroid1@chromium.org, Nov 20

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

commit e3deee131979b5e2c6ee07cad59a06c247a40d91
Author: Brian Osman <brianosman@google.com>
Date: Tue Nov 20 16:42:04 2018

Use a smaller tolerance when chopping conics to quads

In most places we were using 0.25 (maximum distance between the actual
and approximated curves). In these few places, we were using 0.5, which
is enough to produce visible errors.

Added a GM that demonstrated the problem as reported - many of the arcs
with radius ~8 were previously closer to round-rects than circles.

Bug:  chromium:888453 
Change-Id: I7d22e27773f56174861526dd0223f52a93bf48eb
Reviewed-on: https://skia-review.googlesource.com/c/172060
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>

[modify] https://crrev.com/e3deee131979b5e2c6ee07cad59a06c247a40d91/src/gpu/ops/GrAAHairLinePathRenderer.cpp
[modify] https://crrev.com/e3deee131979b5e2c6ee07cad59a06c247a40d91/src/utils/SkShadowTessellator.cpp
[modify] https://crrev.com/e3deee131979b5e2c6ee07cad59a06c247a40d91/src/gpu/ops/GrAAConvexPathRenderer.cpp
[modify] https://crrev.com/e3deee131979b5e2c6ee07cad59a06c247a40d91/gm/circulararcs.cpp
[modify] https://crrev.com/e3deee131979b5e2c6ee07cad59a06c247a40d91/src/gpu/ops/GrAAConvexTessellator.cpp

Status: Fixed (was: Available)
Project Member

Comment 10 by bugdroid1@chromium.org, Nov 21

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

commit d51587706c4ada6fbd7f9251116649cf4d8f5b4e
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Wed Nov 21 13:05:24 2018

Roll src/third_party/skia a63cf8e80aa5..ef3f9bef8660 (30 commits)

https://skia.googlesource.com/skia.git/+log/a63cf8e80aa5..ef3f9bef8660


git log a63cf8e80aa5..ef3f9bef8660 --date=short --no-merges --format='%ad %ae %s'
2018-11-21 rmistry@google.com Revert "Reland "Temporarily remove Android compile bot from CQ""
2018-11-21 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-11-21 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-11-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/externals/angle2 0e604f9f1107..836674c28b1e (4 commits)
2018-11-20 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-11-20 rmistry@google.com Reland "Temporarily remove Android compile bot from CQ"
2018-11-20 kjlubick@google.com [canvaskit] Add debug-mode only logs
2018-11-20 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-11-20 michaelludwig@google.com Convert aa edge distances into attribute
2018-11-20 michaelludwig@google.com Add aa/non-aa, local coord, and perspective modes to rect benchmarks
2018-11-20 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-11-20 kjlubick@google.com Add software backend to gpu build
2018-11-20 kjlubick@google.com [canvaskit] Expand canvas2d API
2018-11-20 mtklein@google.com disable platform (matrix) procs
2018-11-20 michaelludwig@google.com Update drawimage composite benchmark to force aa
2018-11-20 reed@google.com hide (unused) intercepts methods -- for staging migration to SkFont
2018-11-20 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-11-20 brianosman@google.com Use GrVertexWriter for GrAAStrokeRectOp
2018-11-20 reed@google.com guard flag, so we can remove it and force clients to opt-in
2018-11-20 jvanverth@google.com Add SkImage::MakeFromYUVAPixmaps
2018-11-20 brianosman@google.com Use a smaller tolerance when chopping conics to quads
2018-11-20 bsalomon@google.com Add docs about building with clang-cl on Windows.
2018-11-20 mtklein@google.com SkBitmapProcState_matrixProcs.cpp refactoring
2018-11-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/externals/angle2 b81ff9e6c518..0e604f9f1107 (1 commits)
2018-11-20 bsalomon@google.com Experimentally disable GrTextureOp chaining on Intel GPUs on Mac.
2018-11-20 michaelludwig@google.com Add writePoint3() to SkWriteBuffer interface.
2018-11-20 bsalomon@google.com Pass alpha rather than full colors to TextureOps made from image sets.
2018-11-20 skia-bookmaker@skia-swarming-bots.iam.gserviceaccount.com Update markdown files
2018-11-20 skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com Update go_deps asset
2018-11-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/externals/angle2 8a0fb48a56d6..b81ff9e6c518 (2 commits)


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

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=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux-blink-rel;luci.chromium.try:linux-chromeos-compile-dbg;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:888453 ,chromium:906453
TBR=csmartdalton@chromium.org

Change-Id: I7cc3a2bb87f5fd53a7b05756b08e468d99aa26ff
Reviewed-on: https://chromium-review.googlesource.com/c/1345769
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#610020}
[modify] https://crrev.com/d51587706c4ada6fbd7f9251116649cf4d8f5b4e/DEPS

Sign in to add a comment