This allows us to create integer textures and sample them from a GrProcessor's code.
Filtering is limited to NEAREST.
Adds tests for reading/writing pixels, copying, and drawing. These operations are not allowed to convert to fixed/float configs.
Vulkan support is TBD.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4348
Change-Id: If38d89a03285d4bd98d1f14f9638b0320977e43d
Reviewed-on: https://skia-review.googlesource.com/4348
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
We're no longer using SkBitmap sources for SkBitmapProvider, so we can
restrict it to SkImage only.
At this point we could also remove it, but I think it'll come in handy
when we add shader subset support.
BUG=skia:5806
R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4655
Change-Id: I298da253cc8f7c1205b543521e62060a202a9f78
Reviewed-on: https://skia-review.googlesource.com/4655
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
This change makes SSE2/Neon horizontal convolution functions do not read
extra pixels past the end of the buffer. So we can remove all the SIMD
specific logic in SkConvolver to deal with last couple of rows and also
avoid applying padding to convolution filters.
Performance impact is small. Nanobench time change:
SSE2 NEON
bitmap_scale_filter_64_256 1% -2%
bitmap_scale_filter_256_64 1% 2%
bitmap_scale_filter_90_10 1% -1%
bitmap_scale_filter_90_30 1% 0%
bitmap_scale_filter_90_80 1% 0%
bitmap_scale_filter_90_90 1% 1%
bitmap_scale_filter_80_90 0% 0%
bitmap_scale_filter_30_90 3% 6%
bitmap_scale_filter_10_90 0% 2%
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2481733003
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review-Url: https://codereview.chromium.org/2481733003
Replaces the confusing --path flag with a positional argument that
gives the path to the skpbench binary.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4635
Change-Id: I2b5eeca61ec85e7fe45fd3370625eddf34a2fd0e
Reviewed-on: https://skia-review.googlesource.com/4635
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
GlyphGenerator::generatePath does not need to call getMetrics before
calling getPath. This is wasted effort, especially since the
SkScalerContext is being used directly instead of going through a glyph
cache (which would require this ordering).
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4620
Change-Id: I140a6715a1d1692b161ee3dae48e5482b6004b63
Reviewed-on: https://skia-review.googlesource.com/4620
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reason for revert:
Crashing Mac Perf and Test bots.
This is a flaky but extremely likely crash. I've only seen one Mac Perf or Test bot that had this patch that didn't crash.
This should be easy to reproduce like this:
$ gn gen out --args=is_debug=false
$ ninja -C out dm
$ out/dm -m xfermodes3 --config gpu
This is crashing every time I run it on my laptop, and never when I revert this CL.
Building in release and running --config gpu probably don't matter.
Original issue's description:
> Make SkSmallAllocator obey the RAII invariants and move to heap structures when needed.
>
> The biggest change is to the API which allowed code to bypass the
> destruction invariants. This destruction bypass feature was needed in
> only one use, and is totally encapsulated using createWithIniterT.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2488523003
>
> Committed: https://skia.googlesource.com/skia/+/d5dc657b8c3ac916f98005dafdedafe02f023449TBR=bungeman@google.com,herb@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2485853005
This trims a few packages. We do the same in buildbot.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4634
Change-Id: I4c76d744917cb244ca3390d55d9ea602cda2dd58
Reviewed-on: https://skia-review.googlesource.com/4634
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Without this patch I get this warning-as-error with XCode 8.1 (8B62):
../src/views/mac/SkOSWindow_Mac.mm:88:43: error: implicit conversion from nullable pointer 'NSScreen * _Nullable' to non-nullable pointer type 'NSScreen * _Nonnull' [-Werror,-Wnullable-to-nonnull-conversion]
[(SkNSView*)fHWND enterFullScreenMode:[NSScreen mainScreen] withOptions:nil];
Seems like the thing to do is explicitly null check [NSScreen mainScreen] before calling enterFullScreenMode?
(google.com/images?q=i+have+no+idea+what+i+am+doing)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4631
Change-Id: I20c4a2b559a347a6a128479b81cb515692832e72
Reviewed-on: https://skia-review.googlesource.com/4631
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Include cmath in a few source files which use signbit and a relying on
magic to happen to use it.
Also Fix nuttiness in SampleClip. No need to #define single character
identifiers.
Change-Id: Iae3352d0cab9aaa6c37d6424f064b3d86fa2e011
Reviewed-on: https://skia-review.googlesource.com/4626
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4582
Change-Id: Ied11c727a491382fce113b6e02831a67d944ca2f
Reviewed-on: https://skia-review.googlesource.com/4582
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Stephan Altmueller <stephana@google.com>
Definitely tricky for classes like SkNWayCanvas, where the caller (today)
need not pay attention to ownership of the canvases it gave the NWay
(after this CL, the caller *must* managed ownership)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4441
DOCS_PREVIEW= https://skia.org/?cl=4441
Change-Id: Ib1ac07a3cdf0686d78e7aaa4735d45cc90bea081
Reviewed-on: https://skia-review.googlesource.com/4441
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This removes a reason to call accessRenderTarget on the GrRenderTargetContext
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4583
Change-Id: I6e8a53ffd5c1fea80f542b70e05744e2991f70f8
Reviewed-on: https://skia-review.googlesource.com/4583
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
I think GrSurfaceDesc is still the most compact way to communicate the deferred GrSurface's settings to the Proxy but this CL, at least, reduces where it is used.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4559
Change-Id: Ica599c28a5aef1ed4094f47a4ac119e2d204d652
Reviewed-on: https://skia-review.googlesource.com/4559
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
This is much more explicit about what that type represents (are we in
legacy mode or not), which also makes it suitable for other (upcoming)
usage.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4529
Change-Id: Iacb397c34e7765f1ca86c0195bc622b2be4d9acf
Reviewed-on: https://skia-review.googlesource.com/4529
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
It is moved to src/utils. It is almost a tool, but has two uses in
src/ports.
The existing SkOSFile.cpp is left empty for the time being since it is
mentioned in Chromium's BUILD.gn for Skia.
Change-Id: I3bb7f7c4214359eb6ab906bfe76737d20bf1d6c7
Reviewed-on: https://skia-review.googlesource.com/4536
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>