This was 6-8% faster than the previous code on my Trashcan.
Change-Id: I70081009e233c83226d6d302f871fb7e86cdc438
Reviewed-on: https://skia-review.googlesource.com/16986
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Realized that a pending CL needed to add (yet another) private type to SkRecords.h, but w/o this CL I'd be forced to move that header also into private. This change frees us up to not have transitive exposure for types that need to be recorded.
Bug: skia:
Change-Id: Id79f1c2e44ba85e063c1360cf96c92de6397ca2b
Reviewed-on: https://skia-review.googlesource.com/17031
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Bug: skia:
Change-Id: I0eb5039146278f88b7a869c8c19d5f84d5857529
Reviewed-on: https://skia-review.googlesource.com/17108
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Dither can bump color values above alpha (duh), or below
zero (duh), so clamp back to premul after dithering.
BUG=skia:6644,skia:6643
Change-Id: Ida107e866380e06130af0d01467117bca929ba44
Reviewed-on: https://skia-review.googlesource.com/17070
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
The new version of this feature creates and destroys textures
on the same context, so shouldn't encounter the bug.
Bug: skia:
Change-Id: I5ace8fd066b0198e075a53742875554637fde553
Reviewed-on: https://skia-review.googlesource.com/17101
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I53663197de96402152c07e2ff208fd74e380b0c6
Reviewed-on: https://skia-review.googlesource.com/17061
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Speculative roll fix.
Change-Id: I570c807c4f1d695fe46526a943d5376b79b358a1
Reviewed-on: https://skia-review.googlesource.com/17023
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
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>