Change-Id: I060419bc39484b379329a1691e199d9d3db9c808
Reviewed-on: https://skia-review.googlesource.com/8807
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Also: update some of SkPDF to use these rather than the RasterClip.
Change-Id: I5a2564d2269c145135df6a8eda65ab05e4aeaf14
Reviewed-on: https://skia-review.googlesource.com/8159
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
Refactoring to refamiliarize myself with SkTaskGroup and SkThreadPool.
This adds an SkExecutor interface to describe how we use SkThreadPool,
with a global setter and getter for a default instance. Then I rewrote
SkTaskGroup to work with any executor, the global default by default.
I also think I've made the SkTaskGroup::wait() borrow logic clearer
with the addition of SkSemaphore::try_wait(). This lets me keep the
semaphore count and actual count of work in perfect sync.
Change-Id: I6bbdfaeb0e2c3a43daff6192d34bc4a3f7210178
Reviewed-on: https://skia-review.googlesource.com/8836
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This is preparation for removing skia_enable_jumper, making it true.
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN
Change-Id: I21763ea5ebafaaddda7056176796307f1a81d722
Reviewed-on: https://skia-review.googlesource.com/8830
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This reverts commit 02241e976b.
Reason for revert: cq proto has been rolled to depot_tools.
Original change's description:
> Revert "CQ config: add gerrit CQAbility verifier."
>
> This reverts commit 0462822132.
>
> Reason for revert: Lets revert until the proto is rolled into Skia.
>
> Original change's description:
> > CQ config: add gerrit CQAbility verifier.
> >
> > Goal is to ensure that unreviewed and untrusted code isn't sent through
> > CQ to try bots, by accident or through malicious intent.
> >
> > R=rmistry@google.com
> > BUG=chromium:692613
> > NOTRY=True
> >
> > Change-Id: I750be91895f5b77229b8f4a22216f00eaa75f7a0
> > Reviewed-on: https://skia-review.googlesource.com/8620
> > Reviewed-by: Ravi Mistry <rmistry@google.com>
> > Commit-Queue: Ravi Mistry <rmistry@google.com>
> >
>
> TBR=rmistry@google.com,reviews@skia.org,tandrii@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:692613
>
> Change-Id: I6d4b821b2a02ef3e097cf68cd8ebfb2b51d4d165
> Reviewed-on: https://skia-review.googlesource.com/8663
> Reviewed-by: Ravi Mistry <rmistry@google.com>
> Commit-Queue: Ravi Mistry <rmistry@google.com>
>
R=rmistry@google.com,reviews@skia.org,tandrii@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
BUG=chromium:692613
Change-Id: Icefcd69b4608e5294f358de66a9ce014c9950ede
Reviewed-on: https://skia-review.googlesource.com/8740
Reviewed-by: Ravi Mistry <rmistry@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Invert some math to remove a negation.
Don't keep a persistent count in EdgeList; we'll test for degenerate
boundaries in boundary_to_aa_mesh().
Make connect() use the top/bottom ordering that new_edge has already
done for us.
Don't add the an edge to the same poly twice when it's easily detectable.
Remove some superfluous variables and intialization.
BUG=skia:
Change-Id: I0efd9ec385d6dfec8950b7acfc6dd25572f667b5
Reviewed-on: https://skia-review.googlesource.com/8784
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Valgrind uses the unmodified binary. See skia:6267.
BUG=skia:6267
Change-Id: I3fcecf9ffce67ebec88d4005e464c66d25c6aa21
Reviewed-on: https://skia-review.googlesource.com/8833
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Starting with uninitialized vectors is only minorly faster (<0.5%).
I'd rather keep the zeroes and feel warm and fuzzy.
Change-Id: Ib28aef9c9a75f53e2ab645bfb094582e30b7df07
Reviewed-on: https://skia-review.googlesource.com/8825
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Change-Id: Ia160d3b17abebf0075f8ce2b608653e496f46d58
Reviewed-on: https://skia-review.googlesource.com/8805
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
BUG=skia:
Change-Id: Id532233537d18e6185a83681188aa73527b212a1
Reviewed-on: https://skia-review.googlesource.com/8842
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
BUG=skia:
Change-Id: I153978a92420eb2c39024213ebcdf95d1b8bde30
Reviewed-on: https://skia-review.googlesource.com/8839
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Mostly plumbing, plus some minimal testing to make sure that
the platform APIs don't explode. I plan to add testing of
SkCrossContextImageData using this, which should verify that
textures are actually shared.
Also found a factory and some related code in the
CommandBuffer test context that was totally unused.
BUG=skia:
Change-Id: I05bbc22c4d1ef946b702a5cc7f67788785219c62
Reviewed-on: https://skia-review.googlesource.com/8808
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
BUG:692936
Change-Id: I8394554764b1f46bd8eaabb0194d52f361d477c1
Reviewed-on: https://skia-review.googlesource.com/8826
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
This reverts commit bc9cd524d8.
Reason for revert: Unable to find Valgrind binary.
Original change's description:
> Split Valgrind jobs -- one DM/NB run per task.
>
> Remove special build for Valgrind -- Valgrind uses the unmodified binary. See skia:6267.
>
> BUG=skia:2789,skia:6267
>
> Change-Id: Id56c460abf36eb2be633ac3a309e0dbc7a278f41
> Reviewed-on: https://skia-review.googlesource.com/8723
> Commit-Queue: Ben Wagner <benjaminwagner@google.com>
> Reviewed-by: Eric Boren <borenet@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
>
TBR=mtklein@chromium.org,borenet@google.com,mtklein@google.com,benjaminwagner@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:2789,skia:6267
Change-Id: I16876a8528c441805931ed21e9aa8688ab2e0b4c
Reviewed-on: https://skia-review.googlesource.com/8831
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Change-Id: I723ae1ecaebf43e84bf47163e44e7899faf31c8a
Reviewed-on: https://skia-review.googlesource.com/8824
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Remove special build for Valgrind -- Valgrind uses the unmodified binary. See skia:6267.
BUG=skia:2789,skia:6267
Change-Id: Id56c460abf36eb2be633ac3a309e0dbc7a278f41
Reviewed-on: https://skia-review.googlesource.com/8723
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
This should be a big win on Windows, but I haven't timed there yet.
On my Mac, it's a solid 2% speedup.
PS1 was insufficiently ambitious, but was this for posterity:
No need to vzeroupper twice on Windows.
On Windows start_pipeline() will vzeroupper,
so no need to do it in just_return().
Change-Id: I099320b95da85900a60ce96fdb7a216a36db1858
Reviewed-on: https://skia-review.googlesource.com/8821
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Also changes the behavior of these flags to only override their
corresponding context options when set, and to leave them unchanged
when not set.
BUG=skia:
Change-Id: I09f6be09997594fa888d9045dd4901354ef3f880
Reviewed-on: https://skia-review.googlesource.com/8780
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
It should only be advertised if the child also advertises it.
Change-Id: I698213c9562d710dff45f0622d50eacc41e29af5
Reviewed-on: https://skia-review.googlesource.com/8811
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Fuzzing can produce inconsistant data, such as flags or bounds.
Also, use std::unique_ptr to reduce the need for calling `delete`.
BUG=skia:6262
BUG=skia:6263
Change-Id: I1de6b5f764cda346bb3cd5cd4698816b6b68f395
Reviewed-on: https://skia-review.googlesource.com/8812
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
This matches what is done in the LUT texture case.
Change-Id: I95ab8c9ac761a3315a55a7f81bfe2e4077070542
Reviewed-on: https://skia-review.googlesource.com/8813
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
- Compile stages with -DWIN to pick up MS-specific start_pipeline().
- Add SkJumper_generated_win.S with MS-specific assembly.
- Add a minimal asm tool to our GN Windows toolchain.
The SkRasterPipeline_f16 benchmark run ~4x faster on my desktop.
Change-Id: Ia45afb4ecb6a055e2c0e43f0f54f59e081c23b7f
Reviewed-on: https://skia-review.googlesource.com/8778
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Instead of using a full tessellate() pass, which allocates Polys,
MonotonePolys, etc. It's faster to simply accumulate the winding number
in the left-adjacent edge, and use that to remove non-boundary edges
(edges for which apply_fill_type() returns the same value on either
side of the edge).
This gives ~4-5% boost on MotionMark Fill Shapes.
Change-Id: I66bd4248ace01a8c35abd99519f4c455f936e5e5
Reviewed-on: https://skia-review.googlesource.com/8782
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
clipstack is always available, canvas checks for empty clips up-front
Next step is to clarify if PDF wants to use Regions or Clipstack for its clipping (but not both)
Change-Id: Iaf1fa35160291e08c33ff61114557deff72304b3
Reviewed-on: https://skia-review.googlesource.com/8692
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Previously, operator& for enum class bitfields was reserved only to
return a bool. e.g:
if (flags & Flags::kFlag)
This change adds a new template class GrTFlagsMask<> that gets
instantiated by operator~ and allows us to write expressions like:
flags &= ~Flags::kFlag
(flags & ~Flags::kFlag1) | Flags::kFlag2
BUG=skia:
Change-Id: I21e5eb9304135e82cdda459e8a833a3489f6beaf
Reviewed-on: https://skia-review.googlesource.com/8563
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
BUG=skia:6260
Change-Id: Id27ac7f64276f87f86719bf4fc3f8834466320ab
Reviewed-on: https://skia-review.googlesource.com/8800
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
BUG=skia:
Change-Id: Id66505d2e45cfff0bb31f630d96f7a78ad2f701b
Reviewed-on: https://skia-review.googlesource.com/8721
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
This was the only non-test user of GrXPFactory::isConstantPreCoverageBlendedColor which is now removed.
Change-Id: Ic1c130d30a44e1a955b89f8912433a3c9df2e61e
Reviewed-on: https://skia-review.googlesource.com/8776
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Improve temporary_internal_getRgnClip performance for rect clips
by avoiding SkClipStack::asPath.
BUG=skia:
Change-Id: I371ac6031df325646841d57c4afaba7b835a12bb
Reviewed-on: https://skia-review.googlesource.com/8688
Commit-Queue: Stan Iliev <stani@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Prefer EllipseOp instead of DIEllipseOp, which improves the
performance.
BUG=skia:
Change-Id: I607c21326b44a80e0586c577349452a9c369488f
Reviewed-on: https://skia-review.googlesource.com/8690
Commit-Queue: Stan Iliev <stani@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
(No longer) Blocked on: https://skia-review.googlesource.com/c/8450/ (Remove asTextureRef from SkSpecialImage & update effects accordingly (take 2))
This also (unfortunately) picks up a few straggling effects that didn't have a sk_sp<GrTextureProxy> factory.
Change-Id: I5ce583a084aa8fe00e866eec1db90e2ec9dd2ab0
Reviewed-on: https://skia-review.googlesource.com/8500
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>