Add an opt-in mechanism (SkShader::isRasterPipelineOnly) and switch
SkSweepGradient to always-RP.
This also repurposes the existing SK_LEGACY_SWEEP_GRADIENT guard.
Change-Id: Iabf0a701eda56f009d331120f0c987f96bd35d27
Reviewed-on: https://skia-review.googlesource.com/16912
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Change-Id: Ide8303f6fc162f3703f7db298fe210d47225a580
Reviewed-on: https://skia-review.googlesource.com/16988
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
defined(SK_BUILD_FOR_WIN32) is our usual way of detecting Windows.
It's basically a roundabout defined(_WIN32).
Don't know why I picked _MSC_VER here.
BUG=skia:6635
Change-Id: I8986ec12dc1cc79a1cf16abf2a1ecbc5e0447786
Reviewed-on: https://skia-review.googlesource.com/16919
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Bug: skia:
Change-Id: I49d9c697e1749972f4f2fbc89ca47a472c986b65
Reviewed-on: https://skia-review.googlesource.com/16980
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Change-Id: Ib9f59ddf1c2c3f2bd0004ae16f842e52f45df8c9
Reviewed-on: https://skia-review.googlesource.com/16832
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
rcp(rsqrt(x)) doesn't have enough precision when x is a coordinate.
(It's fine when x is a color, like in the softlight blend mode.)
Adds a GM to test this. It used to look quite ugly.
Change-Id: Icec295c2e2f50ae7a5e3e33c62270f632a58f65c
Reviewed-on: https://skia-review.googlesource.com/16914
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
We'll now run non-rendering and raster benchmarks,
for simplicity choosing sRGB as the only raster configuration.
$ ninja -C out monobench; and out/monobench "linear_clamp_(3color|pos)\$"
gradient_linear_clamp_…
6257 …3color 1x …pos 1.03x
$ ninja -C out monobench; and out/monobench "linear_clamp_.*[^4][^f]\$"
gradient_linear_clamp_…
321 …shallow 1x …shallow_dither 1x …3color 1.49x …hicolor 1.5x …pos 1.52x
Change-Id: I7282a84c982eb1f11f0ea2dfe39afea66231761c
Reviewed-on: https://skia-review.googlesource.com/16877
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Bug: skia:
Change-Id: I824980a47ddd7c8c7627dabb5efd40f8f0889b67
Reviewed-on: https://skia-review.googlesource.com/16900
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Change-Id: Iedfded98ce82d15945667232fde22d046d5106b3
Reviewed-on: https://skia-review.googlesource.com/16879
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Mike Reed <reed@google.com>
This flags was only specified in one place (per backend). However, it was specified when no allocations occur.
Change-Id: Ic892d3064598519a07fb6773ba626fe022ef2f78
Reviewed-on: https://skia-review.googlesource.com/16904
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: skia:
Change-Id: I997c6269e4676bf4cedddcd87e71d107053678bb
Reviewed-on: https://skia-review.googlesource.com/16905
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Specific methods that limit the data to valid configurations are better
than a runtime mega-assert.
Bug: skia:
Change-Id: Ie15f2dc79659e44cfaddd16eb474795b110fda73
Reviewed-on: https://skia-review.googlesource.com/16577
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
It is expected that this will fix the Vulkan perf regression associated with splitting up the opLists
Change-Id: I1bbb6f71745bb08d4a8c2f7810e5ab84cca75e84
Reviewed-on: https://skia-review.googlesource.com/16901
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
These were replaced with RPi-based jobs in
https://skia-review.googlesource.com/c/11521/. The old jobs no longer
have any bots to run them, which is causing a lot of warnings in the
task scheduler logs.
No-Try: true
Change-Id: Iae7b8371cd80fd7ee3fbe368d5dccb0a94913f14
Reviewed-on: https://skia-review.googlesource.com/16876
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Stephan Altmueller <stephana@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Don't know why I never wrote unaligned_store() to mirror
unaligned_load(), but now I have. This replaces all
remaining memcpy() in SkJumper_stages.cpp, which is nice.
The generated stage code didn't change.
Change-Id: I714c1072a975d7fa268a4b06c13f06557bf0c12c
Reviewed-on: https://skia-review.googlesource.com/16870
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Classifies fully visible opaque shadows differently
than transparent to avoid cache collisions.
Change-Id: Iba5aab2b2cbe08f70205c343e86fe92b0cab7497
Reviewed-on: https://skia-review.googlesource.com/16858
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Change-Id: I17ac13b9d1ea6765e2c1a2b53aa6975eab408856
Reviewed-on: https://skia-review.googlesource.com/16713
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
needed to add two helper stages for composeshader
load_rgba, store_rgba
These just read/write the r,g,b,a registers to context memory, making no promise as to how the
memory is formatted (e.g. interleaved -vs- planar).
Note that we have similar existing stages, but they did not seem to suit:
constant_color
This guy loads 4 floats from memory, and splats them into registers. I need to load 4 entire
registers.
load_f32, store_f32
These offset where they read/write based on the 'x' register, plus they guarantee that the memory
will be interleaved ala SkPM4f.
Bug: skia:
Change-Id: Iaa81f950660b837bdb34416ab3e342d56a92239b
Reviewed-on: https://skia-review.googlesource.com/16716
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
expect to refactor the impl, so this just makes that easier
(plus SkDraw.cpp was just too big)
Bug: skia:
Change-Id: I22c07d37429195363d9a76e56a1dca915f9c2d57
Reviewed-on: https://skia-review.googlesource.com/16863
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Bug: 720083
Change-Id: Ibd4dbf6ee95ac14857e8280a441f81976710e5e8
Reviewed-on: https://skia-review.googlesource.com/16700
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
This is a syntax-only change to convert to the new (documented) context
module.
R=borenet@google.com
Bug: skia:
Change-Id: Id907c309d3cf38b85a46f6d8d7ce90ed58ba026f
Reviewed-on: https://skia-review.googlesource.com/16840
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
https://codereview.chromium.org/908353002 fixed drawRect 2+ years ago, but
drawOval and drawArc were still susceptible. This version ensures that all
rects are sorted before we do the bounds check. Added a new makeSorted
helper to simplify the code, and an assert to catch any future oversight.
All other drawing functions compute their bounds rect in some way that
already ensures it is sorted.
Bug: skia:
Change-Id: I8926b2dbe9d496d0876f1ac5313bd058ae4568b7
Reviewed-on: https://skia-review.googlesource.com/16702
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
after manually fixing missing names
needed to make documentation easier,
the bookmaker tool found a number of
additional errors.
this is why computers will take our jobs
R=reed@google.com
DOCS_PREVIEW= https://skia.org/?cl=16616
Change-Id: Ieabebf5672601769852adde9be47459602fb43ab
Change-Id: Ieabebf5672601769852adde9be47459602fb43ab
Reviewed-on: https://skia-review.googlesource.com/16616
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Mike Reed <reed@google.com>
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
build:
https://crrev.com/5f26f71095d6af2bd74c035badf11122bbfabe96 Notify network-service-dev mailing list when Mojo Linux bot has a failure. (jam@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ia70328b19c303b6e3f4cd31b9c0675522ba65ac8
Reviewed-on: https://skia-review.googlesource.com/16827
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>