Enabling this in Chrome triggered a perf regression, and from looking at
the AA convex tesselator, I can believe that it's going to be as slow or
slower. (We'll trade a slightly more expensive shader for a much more
expensive chunk of CPU setup code).
Removing this simplifies this path renderer, including the ability to
batch line-only paths with more complex paths, which seems like a win.
Curious to see what other perf results are (in either direction).
Bug: chromium:908566
Change-Id: I127093dd271b8bdc6f81c1981e40257407157193
Reviewed-on: https://skia-review.googlesource.com/c/173426
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
GrAAFillRRectOp has special geometry and a fragment-shader branch to
conditionally evaluate the arc equation. This same special geometry
and fragment branch also turn out to be a substantial optimization for
drawing ovals (namely, by not evaluating the arc equation inside the
oval's inner diamond). Given these optimizations, it's a clear win to
draw ovals the exact same way we do round rects.
However, we still don't draw true circles as round rects, because it
can cause perf regressions on some platforms as compared to the
dedicated circle Op.
Bug: skia:
Change-Id: Ifdfc4f593a8ab01b6f73a9e15dde732254213455
Reviewed-on: https://skia-review.googlesource.com/c/173277
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This makes the comment on GrOp::uniqeID (that it's only used for audit
trail) true again. More importantly, it avoids always cycling through op
IDs, which can actually overflow. This makes Draw slightly bigger, but
saves the atomic overhead of getting a new ID for each op. Both of those
are probably too small to measure.
Bug: skia:8575
Change-Id: I6aecf0c72b85c59e8644a4574ccbeeb71997baca
Reviewed-on: https://skia-review.googlesource.com/c/173423
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
7310da33bc..8dc27f99b5
git log 7310da33bc7a..8dc27f99b556 --date=short --no-merges --format='%ad %ae %s'
2018-11-29 jmadill@chromium.org Use packed enum for DrawElementsType.
2018-11-29 syoussefi@chromium.org Vulkan: fix pipeline stages of memory barriers
2018-11-29 matavenrath@nvidia.com Optimize State::syncDirtyObjects
2018-11-29 syoussefi@chromium.org Vulkan: Uber-shader support
2018-11-29 syoussefi@chromium.org Vulkan: Allow descriptor pool to allocate different types
Created with:
gclient setdep -r third_party/externals/angle2@8dc27f99b556
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-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=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=borenet@google.com
Change-Id: I127ea6eb112d90481be10cb0cdf5dbe1832e58c2
Reviewed-on: https://skia-review.googlesource.com/c/173384
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bug: oss-fuzz:11546
Change-Id: I45cc443bcee240eebfa72fb0bdb19cb43192804f
Reviewed-on: https://skia-review.googlesource.com/c/173422
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Specifically, it fixes non-aa perspective quads batched with aa quads
getting an unsafe edge distance that leads to bleeding on certain GPUs.
Additionally, it tweaks the rectilinear distance optimization to
add .5 for masked edge and .5 for opposite masked edge, instead of
adding 1 for just the masked edge. Leads to no change when all edges
have AA, but preserves the rate-of-change of the edge distance attribute
when opposite edges differ in their AA state.
Bug: skia:
Change-Id: Ie55042e74ef44a8d33b4ae16e1e63eecdb2f24e1
Reviewed-on: https://skia-review.googlesource.com/c/173420
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
The debug checks caught a place in a few layout tests where it looked
like we could decal in 16.16, but the extra 32.32 precision accumulates
just enough along the line that we need to clamp the last pixel.
Looks like no GM diffs or Google3 diffs.
Change-Id: I86360021933c7bc9d5a8328809e812db0dfc5d3b
Reviewed-on: https://skia-review.googlesource.com/c/173440
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
- This update includes font documentation.
SkFont_Reference.bmh was generated by running:
bookmaker -b docs -i include/core/SkFont.h -t
This creates a placeholder
for examples and additional documentation.
- More work done to exclude experimental/private
symbols.
Symbols that include "experimental_", "legacy_",
"private_", "temporary_", "deprecated_" as part
of their name (case-insensitive) are not
referenced by the on-line docs and don't need
comments.
Tables built for online only include public symbols.
- Better links for constructors, destructors, operators
- Fixed some minor public interfaces
- Removed _const crutch on operators
- Keep includes inside 100 columns
TBR=reed@google.com
Docs-Preview: https://skia.org/?cl=171900
Bug: skia:
Change-Id: I93b229c6625d800604671e05b82a14c06cb906d2
Reviewed-on: https://skia-review.googlesource.com/c/171900
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
Add a new (optionally-built) ManagedAnimation CK helper, and provide
accessors for color and opacity properties.
The new wrapper class can be used as a drop-in replacement for the existing
Animation.
Change-Id: Iab6b6be9c736697b4731722806b145cbd130ce73
Reviewed-on: https://skia-review.googlesource.com/c/173322
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
This reverts commit b4f37a6a92.
It didn't fix the bug.
Bug: chromium:906453
Change-Id: I6c37486ccac619c3d5b6716cb76809be632c3c5f
Reviewed-on: https://skia-review.googlesource.com/c/173237
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Change-Id: I6b7ef512235dfc986563a3ae03375423e176713d
Reviewed-on: https://skia-review.googlesource.com/c/173360
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2c0d6a9404..7310da33bc
git log 2c0d6a9404cd..7310da33bc7a --date=short --no-merges --format='%ad %ae %s'
2018-11-29 yizhou.jiang@intel.com Implement GetMultismaplefvANGLE and SampleMaskiANGLE of texture multisample extension
Created with:
gclient setdep -r third_party/externals/angle2@7310da33bc7a
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-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=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=borenet@google.com
Change-Id: I94df8574a7d4d704cb44cb18f8e83ded2e780381
Reviewed-on: https://skia-review.googlesource.com/c/173310
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
c4e0a1e511..2c0d6a9404
git log c4e0a1e511fc..2c0d6a9404cd --date=short --no-merges --format='%ad %ae %s'
2018-11-29 jmadill@chromium.org WebGL: Fix DrawElements test and remove size check.
2018-11-28 syoussefi@chromium.org Vulkan: fix ProgramVk never releasing uniform buffers
2018-11-28 syoussefi@chromium.org Vulkan: Make DynamicBuffer use BufferHelper
2018-11-28 ynovikov@chromium.org Rearrange Android lib deps
Created with:
gclient setdep -r third_party/externals/angle2@2c0d6a9404cd
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-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=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=borenet@google.com
Change-Id: Iabcf8cad58add603a078e7354fc81256a14cbb62
Reviewed-on: https://skia-review.googlesource.com/c/173303
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
There don't seem to be any more rendering artifacts without the WAR.
Maybe the drivers got updated, or maybe something in our API usage
changed.
TBR=bsalomon@google.com
Bug: skia:8566
Change-Id: Id82588f445fd61a44e77b988c31fb7f46848fffa
Reviewed-on: https://skia-review.googlesource.com/c/173257
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This is a reland of c00e470547
Original change's description:
> Prefer GrAAConvexPathRenderer over ccpr
>
> Even though ccpr can be faster than the convex renderer for small
> paths, there is value in a simpler, more consistent approach. The
> convex renderer is single-pass, doesn't deal with caching, and is
> unaffected by the less favorable flush pattern in Chrome. We can
> address the regressions from this CL by optimizing single-pass convex
> path rendering, rather than trying to use ccpr more.
>
> Bug: chromium:860021
> Change-Id: I44ceefa43cdad7fb25c620faed8b525901fb1f0c
> Reviewed-on: https://skia-review.googlesource.com/c/171525
> Reviewed-by: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
Bug: chromium:860021
Change-Id: I37c2244f8a054614389cc35854706cbebf5d2e7c
Reviewed-on: https://skia-review.googlesource.com/c/173199
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This is part of a larger movement to remove unneeded
cache API chatter.
Change-Id: Id8e9c72a5cebe31a7efe51a947a1d4c68384609a
Reviewed-on: https://skia-review.googlesource.com/c/172947
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Bug: skia:
Change-Id: I1c001244dbc682c93278687a0378c59403845d0d
Reviewed-on: https://skia-review.googlesource.com/c/173235
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
This reverts commit 1a2476d294.
Reason for revert: Fixes printf signatures and asserts.
Original change's description:
> Revert "Initial definition of fill rect op"
>
> This reverts commit d3c92d9a36.
>
> Reason for revert: printf build failure on gcc, assert failures on CQ
>
> Original change's description:
> > Initial definition of fill rect op
> >
> > Bug: skia:
> > Change-Id: Ie0c99eb5163501853d1adc885bd3841f90a71924
> > Reviewed-on: https://skia-review.googlesource.com/c/163486
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
>
> TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com
>
> Change-Id: Ib32f91a39d91aeb87982a7b19719485e4a1bf8ae
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/c/173233
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com
Change-Id: I415913a269ba5bcdebd169b5ebc3510673247bfd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/173234
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
It looks like the old GrGlyphCache ctor was making an
initial arena alloc of 9 bytes.
Change-Id: Icc0d04c522fc1f90bf06bdfe5bd6ef56315776ac
Reviewed-on: https://skia-review.googlesource.com/c/173232
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This reverts commit d3c92d9a36.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> Initial definition of fill rect op
>
> Bug: skia:
> Change-Id: Ie0c99eb5163501853d1adc885bd3841f90a71924
> Reviewed-on: https://skia-review.googlesource.com/c/163486
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com
Change-Id: Ib32f91a39d91aeb87982a7b19719485e4a1bf8ae
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/173233
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Based on ag/5616352, patch set 5.
Bug: b/118742766
Test: lunch sdk && mmma external/skia on Mac
Similar to the linux build, use a new set of GN arguments to create a
json object to fill in the updated template.
Add the new include/config/mac folder for the newly generated mac-
specific SkUserConfig.h.
Include stdarg.h in SkTraceEventCommon, which is necessary for the mac
build.
Add a new GN arg (skia_use_fonthost_mac) to allow framework build to
manually not build SkFontHost_mac.cpp, and use the same font host
as the other builds.
Change-Id: I654ba496306a3f3591c3937ad5524cd45e49dd65
Reviewed-on: https://skia-review.googlesource.com/c/173183
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Bug: skia:
Change-Id: Ie0c99eb5163501853d1adc885bd3841f90a71924
Reviewed-on: https://skia-review.googlesource.com/c/163486
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This involves a refactor of how we deal with paint.
Now, we have a source-of-truth paint that is copied
and modified for each of fill/stroke/shadow.
Adds preliminary support for blend modes.
Most of what remains is text, images, and gradients.
Bug: skia:
Change-Id: I41806adeb7de4faa6c98a580c4f1de4e4a34a37d
Reviewed-on: https://skia-review.googlesource.com/c/173223
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Change-Id: Ib75b6a836184df739e4690dc275421e015d6a9bb
Reviewed-on: https://skia-review.googlesource.com/c/173228
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I21a3e74ab256d89ab6487e98abd940ff99dd6447
Reviewed-on: https://skia-review.googlesource.com/c/173227
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Bug: skia:
Change-Id: I223bef522ff8605674f4ecabcbd0624cfc92cb06
Reviewed-on: https://skia-review.googlesource.com/c/173224
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Bug: skia:
Change-Id: Iaa2971c28f6a8e869b92887e0c0595c73b0aebdb
Reviewed-on: https://skia-review.googlesource.com/c/173225
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
To facilitate demo code consolidation, introduce a custom property
manager which filters for node names starting with '$' and treats all
properties sharing the same name unitarily.
Update the Colorize GM to use this new helper.
Also revisit the PropertyObserver interface:
* aliases for client-facing value types
* introduce a new (decomposed) TransformPropertyValue, to replace component-wise setters
* consolidate the PropertyHandle interface to only expose get()/set()
Bug: skia:
Change-Id: I9aa9ee80c1fb57bbfbacab0fc3f017da909b24d9
Reviewed-on: https://skia-review.googlesource.com/c/173220
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
83b2f0e8a2..c4e0a1e511
git log 83b2f0e8a2e0..c4e0a1e511fc --date=short --no-merges --format='%ad %ae %s'
2018-11-28 timvp@google.com Revert "Enhance ANGLE for Android Developer Options"
Created with:
gclient setdep -r third_party/externals/angle2@c4e0a1e511fc
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-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=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=borenet@google.com
Change-Id: I54d4e8b66779bf4d1f21fab3592695f6a4ab44eb
Reviewed-on: https://skia-review.googlesource.com/c/173011
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This has the side effect of making samplers in Vulkan only dependent on
the sampler state and not the texture size.
Bug: skia:
Change-Id: I03ccc2c2faead4a1e10b9dd1e5d5885a9d672cc5
Reviewed-on: https://skia-review.googlesource.com/c/173103
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Bug: skia:
Change-Id: If7f9f3f4f79544484eb0fb406fea6772a9ca7722
Reviewed-on: https://skia-review.googlesource.com/c/171909
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
This reverts commit 26d8d77aae.
Reason for revert: speculative, in case this is blocking the chrome roll
Original change's description:
> don't trust convexity with affine transforms
>
> In theory, a convex shape transformed by an affine matrix should still
> be convex. However, due to numerical nastiness of floats, when we try
> to determine if something is convex, we can get different answers pre
> and post a transformation (think of two line segments nearly colinear).
>
> Convex paths take a faster scan converter, but it is only well behaved
> if the path is, in fact, convex. Thus we have to be conservative about
> which paths we mark as convex.
>
> This bug found a case where a "convex" path, after going through a transform,
> became (according to our measure) non-convex. The bug was that we *thought*
> that once convex always convex, but in reality it was not. The fix (hack) is
> to notice when we transform by an affine matrix (we're still assuming/hoping
> that scaling and translate keep things convex (1)...) and mark the convexity
> as "unknown", forcing us to re-compute it.
>
> This will slow down these paths, since it costs something to compute convexity.
> Hopefully non-scale-translate transforms are rare, so we won't notice the
> speed loss too much.
>
> (1) This is not proven. If we find scaling/translation to break our notion of
> convexity, we'll need to get more aggressive/clever to find a fix.
>
>
> Bug: 899689
> Change-Id: I5921eca247428bf89380bc2395fe373fa70deb1d
> Reviewed-on: https://skia-review.googlesource.com/c/173080
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Cary Clark <caryclark@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
TBR=mtklein@google.com,jvanverth@google.com,caryclark@google.com,reed@google.com,caryclark@skia.org
Change-Id: I5d846798f2c34c6576591a3c3125cfdc3c72dbdc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 899689
Reviewed-on: https://skia-review.googlesource.com/c/173162
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
This reverts commit 1dced86481.
Reason for revert: prolly not the problem for the roll
Original change's description:
> Revert "Don't let neighboring radii in GrAAFillRRectOp get too close"
>
> This reverts commit 778edc883b.
>
> Reason for revert: speculative, to see if chrome rolls
>
> Original change's description:
> > Don't let neighboring radii in GrAAFillRRectOp get too close
> >
> > Since each corner uses a different reference point, it's possible that
> > FP rounding can cause the edges of very close radii on a common edge
> > to accidentally overlap. This can cause a pixel to be drawn/blended
> > more than once. This CL addresses the issue by not allowing
> > neighboring radii on a common edge to get closer than 1/16 pixel from
> > one another.
> >
> > Bug: skia:8562
> > Change-Id: Ifda97c9a4c3973405f86f7fc6846a4073b3ab581
> > Reviewed-on: https://skia-review.googlesource.com/c/173036
> > Commit-Queue: Chris Dalton <csmartdalton@google.com>
> > Reviewed-by: Jim Van Verth <jvanverth@google.com>
>
> TBR=jvanverth@google.com,csmartdalton@google.com
>
> Change-Id: Ica14341e38bc0da649f0f0ade70692b0372f1c78
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:8562
> Reviewed-on: https://skia-review.googlesource.com/c/173160
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
TBR=jvanverth@google.com,csmartdalton@google.com,reed@google.com
Change-Id: I94f63e0e221b3e4340fc850a631a884738c479a7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:8562
Reviewed-on: https://skia-review.googlesource.com/c/173161
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>