This ensures we are doing apples-to-apples comparison across runs.
The Chrome-GPU pool has different machines with the same GPU, so it's
important to lock down to a specific CPU for perf testing.
No-Try: true
Change-Id: I66648c4ea58b835af0a63d36f4830b26d7c65c5f
Reviewed-on: https://skia-review.googlesource.com/50760
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
We no longer need to look at the field snugRB except to check for the
simple no-pixels case. This is good, because our snugRB <= ramRB check
is actually too weak, and is the source of this linked Chromium issue.
BUG=chromium:765858
Instead of doing complicated checks against that stored snugRB and the
computed ramRB, we now just ignore snugRB. We know the images written
by write_row_bytes() will be snug, so we can just look at width, height,
and color type to figure out exactly how many bytes we should be
reading.
Then it becomes the call to readByteArray()'s responsibility to make
sure that we have an array there of exactly that many bytes to read.
We've just got to make sure we check for its failure.
Change-Id: Ia05c36d8a77b0de16ee03a80f6cb2dab6fcedbae
Reviewed-on: https://skia-review.googlesource.com/50800
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
It currently asserts, but should instead silently fail. Otherwise,
without asserts turned on, this would leave the SkPath in an
inconsistent state.
Bug: chromium: 767770
Change-Id: Ib2af4caccfe19a4a008abccfe7b25b80ccf23146
Reviewed-on: https://skia-review.googlesource.com/50160
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
This way, we may be able to use SampleApp as a performance benchmark
tool that's closer to real-world use cases than nanobench.
For example, we can now run
./out/Release/SampleApp --slide Chart --backendTiles 8 --measureMS 2000
to test the threaded backend.
Bug: skia:
Change-Id: I92b177624bc8d16c5b4d3ad122319882e8783101
Reviewed-on: https://skia-review.googlesource.com/50801
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
This relands commit cb4d587666
which was reverted by commit b6d2be1330
because the original CL broke some blink layout tests, and the first
reland was reverted by commit because it broke filterfastbounds gm.
This reland let SkImageSource::onFilterNodeBounds() return the dst rect
with ctm applied when mapping forward or otherwise the default value.
Original description:
> Previously SkImageSource::filterBounds() uses the default
> SkImageFilter::onFilterNodeBounds() which returns the input rect.
>
> Now override onFilterNodeBounds() in SkImageSource to return src
> or dst rect (with transform applied).
Change-Id: I4548981142b9a96beda8339d394cf9943c9f4c0f
Reviewed-on: https://skia-review.googlesource.com/50420
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
variable
This patch merges fCurrIncrementalCodec and fCurrScanlineCodec usage
into single variable for SkIcoCodec.
Bug: skia: None
Change-Id: I6629f04fc27b8792c4cb1e6f494f8df7006c6b21
Reviewed-on: https://skia-review.googlesource.com/50520
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
This results in ~15% (~700ns vs ~600ns) speedup for
path_fill_small_rect bench in 8888 config. Some skps have a lot of stroked
horizontal/vertical lines (e.g., bar charts) so this improvement could
have a great impact there. For example, cereal converts Microsoft word docx
to PNGs on server and the sample docx has a big bar chart. That inspired
this improvement.
Bug: skia:
Change-Id: If191b8beca58c5c08b356b64ffef93d51761fd0a
Reviewed-on: https://skia-review.googlesource.com/50043
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Yuqian Li <liyuqian@google.com>
This CL will enable Android to statically link libskia into libhwui
while still exposing the symbols needed by other components of the
system.
Bug: b/31971097
Change-Id: Ib6c87331dbe456e247b46a34c38da4863dfe02f0
Reviewed-on: https://skia-review.googlesource.com/49766
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
The incorrect output file name meant that the update_build_version.py script
was being run on every build, resulting in unnecessary work.
Bug: skia:
Change-Id: I5da933fb9b8fdf0bc898d0e90eaae0a542cfb3b3
Reviewed-on: https://skia-review.googlesource.com/50302
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
All three image tile modes go through exclusive_clamp() and then a
gather today, so we can move the work of exclusive_clamp() into eac
gather_ stage, eliminating the need for clamp_{x,y} stages.
Luckily, we've got a convenient place to bottleneck this, ptr_and_ix(),
which works out the pointer and vector of indices to load for gathers.
This deletes SkRasterPipeline_repeat_tiling unit test, which now
no longer exactly makes sense. It tests that repeat_x does that
clamp, but that's now done automatically outside that stage.
Change-Id: I24637ef60921bec7aa00082984c0c6a49dd86ca9
Reviewed-on: https://skia-review.googlesource.com/50260
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Bug: skia:
Change-Id: Iee3a94e56d1c8992f844f2b67d0bb565dd896684
Reviewed-on: https://skia-review.googlesource.com/50262
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Bug: skia:
Change-Id: I4003085fbb1cadc4aeb2e950f1a9f44f96d03a93
Reviewed-on: https://skia-review.googlesource.com/50240
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit 7cf59526c9.
Reason for revert: Red red bots... it's tearing me apart...
Original change's description:
> Shrink GrDrawOpAtlases when no longer needed
>
> Bug: skia:3550
> Change-Id: I7b09aa2b0fd22ed99694f32f9f395392ef80e238
> Reviewed-on: https://skia-review.googlesource.com/49901
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com
Change-Id: I8331ec79b0796e1f75d7cc53b9753f886aea7fcd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:3550
Reviewed-on: https://skia-review.googlesource.com/50220
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
We don't really care about report_signal_unsafe.
Our signal handlers all just dump out a stack trace and crash.
If they crash themselves due to signal unsafe code, no big deal.
(I've never seen that happen.)
Change-Id: Ibb90b2b323d88a56d64e6ea62b9c0924a4e41444
Reviewed-on: https://skia-review.googlesource.com/50120
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Bug: skia:3550
Change-Id: I7b09aa2b0fd22ed99694f32f9f395392ef80e238
Reviewed-on: https://skia-review.googlesource.com/49901
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Bug: b/65743040
Use the latest version used by Chromium, which we also plan to use on
Android, for consistent testing.
Change-Id: If7dc904ccfb68bb68b5888cf3d4ded2bd1d083f7
Reviewed-on: https://skia-review.googlesource.com/50101
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Explicitly disable it on PixelC. This is arbitrary, so we continue to
get coverage of the single-threaded code.
Bug: skia:
Change-Id: I0ac91f7ca58652933db452720f353068cf2d0f2d
Reviewed-on: https://skia-review.googlesource.com/50000
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This is the same sort of thing as DM's serialize via.
It draws into a picture, serializes that, deserializes that,
and then draws that picture into the destination.
Change-Id: Ib58748786bc01fd8a0cb9355a2fd334311c361bf
Reviewed-on: https://skia-review.googlesource.com/49902
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
1f9d68437c..d482615954
$ git log 1f9d68437..d48261595 --date=short --no-merges --format='%ad %ae %s'
2017-09-21 jmadill Vulkan: Only init RenderPass once per frame.
Created with:
roll-dep skia/third_party/externals/angle2
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, see:
http://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium#TOC-Failures-due-to-DEPS-rolls
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE,Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-ANGLE,Perf-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE,Test-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE,Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-ANGLE,Test-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE
TBR=fmalita@google.com
Change-Id: Iab8ccd134dc40040748cfc9a0908b8121b897913
Reviewed-on: https://skia-review.googlesource.com/49920
Reviewed-by: angle-deps-roller . <angle-deps-roller@chromium.org>
Commit-Queue: angle-deps-roller . <angle-deps-roller@chromium.org>
Align by 4 safely before calling malloc.
BUG=chromium:763972
Change-Id: I9278ae0df516adf3eb96fc390ad7318a47cbefa4
Reviewed-on: https://skia-review.googlesource.com/49760
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: Id84e1534b00583eb2d76699386f42277d2007602
Reviewed-on: https://skia-review.googlesource.com/49900
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
The GN->Android.bp script runs with target_cpu="none",
but Android needs SkJumper_generated.S. Just skip it
explicitly for WASM.
Change-Id: I07b9761c591d48198460ce6300ed3bc9fd02a487
Reviewed-on: https://skia-review.googlesource.com/49903
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Change-Id: I2e24c990983ea93cbd7983c9c4e88120c2b7f358
Reviewed-on: https://skia-review.googlesource.com/49768
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
TSAN doesn't seem to be understanding that the memory coming back from
GrBuffer::map() is a new allocation. Using AnnotateNewMemory() to tell
TSAN didn't seem to help.
This also appears to fix a memory leak if buffer->updateData() fails
when useTempData was true. Not sure if that ever really happens?
Bug: skia:7058
Change-Id: I0a2786fa2c59e14c322ec5acc8cd26436c5a9477
Reviewed-on: https://skia-review.googlesource.com/49743
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Fix core.gni to use not use Assembler for none cpu.
Right now, there are no outputs because we aren't compiling
dm or nanobench. However, this still compiles the skia
library and creates two executables, so it's a good canary
for a real WASM build.
Additional note: the two executables in question don't draw
anything to the screen via GL, which is still not possible with
Skia+WASM.
Bug: skia:
Change-Id: I0d767467e94e40d01070e34223dd90e96f1c96f2
Reviewed-on: https://skia-review.googlesource.com/49540
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Eric Boren <borenet@google.com>
Change-Id: Ifa67c3e5cc188db71fab389f20f55e7cbfc6de8d
Reviewed-on: https://skia-review.googlesource.com/49747
Commit-Queue: Mike Klein <mtklein@chromium.org>
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Yuqian Li <liyuqian@google.com>
This is a step towards not trusting deserialized isoval/isrrect for general paths without losing the performance advantages of knowing that a path is a rrect/oval.
Change-Id: I1a8c0608c0f29f4bf7a118dfa1d475e2ab5802ea
Reviewed-on: https://skia-review.googlesource.com/49761
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This CL enables us to set the default visibility of the symbols
on Android to hidden. It is the intent that all of he SK_APIs
that have been added to /src directies should be removed as soon
as we can remove their callers within Android.
Bug: b/31971097
Change-Id: Ic787f94df0fb0c2b8d941aa7095a12b317c4b5de
Reviewed-on: https://skia-review.googlesource.com/49501
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Samplers now use their own enum rather than SkShader::TileMode.
Change-Id: I25324f7905a3c22fcd3699d6a0f778befa8c32da
Reviewed-on: https://skia-review.googlesource.com/49764
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Otherwise, the first few benches' measurements will be inaccurate.
For example, without this CL, the first few measurements are:
337ns, 566µs, 1000µs, ... without "--ms 1000" arg
211ns, 285µs, 874µs, ... with "--ms 1000" arg
With this CL, the first few measurements are:
195ns, 296µs, 1.03ms, ... without "--ms 1000" arg
204ns, 280µs, 859µs, ... with "--ms 1000" arg
In the example above, the first two measurements are vastly (>50%)
different without this CL. I think that's the reason why I keep
using "--ms 1000" arg locally. But it's really only necessary for
the first bench to warm up nanobench. It's a waste to apply
"--ms 1000" to all the following benches.
Bug: skia:
Change-Id: I1924ba3ff9185ed89aeda72794fafd1fe6625eef
Reviewed-on: https://skia-review.googlesource.com/49742
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
Instead of teaching TSAN than SkMutex is a lock to get around it not
understanding Mach semaphore_t routines, teach it that there is a
happens-before relationship between semaphore_signal() and
semaphore_wait().
This reverts commit e395bf2d18.
New changes are entirely restricted to SkSemaphore.cpp.
Change-Id: I27f647b93c48e81e8327db849881d669c4cd3d04
Reviewed-on: https://skia-review.googlesource.com/49180
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
1b7ed0ef2d..981f0f8f6a
$ git log 1b7ed0ef2..981f0f8f6 --date=short --no-merges --format='%ad %ae %s'
2017-09-21 jmadill Add flag to do a fast pass through perf tests.
2017-09-20 jmadill D3D11: Minor optimizations to vertex attribute application.
2017-09-20 jmadill Minor cleanup to setIndexBuffer.
2017-09-20 jmadill Improve the speed of MarkAttachmentsDirty.
Created with:
roll-dep skia/third_party/externals/angle2
BUG=725308
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, see:
http://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium#TOC-Failures-due-to-DEPS-rolls
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE,Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-ANGLE,Perf-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE,Test-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE,Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-ANGLE,Test-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE
TBR=fmalita@google.com
Change-Id: I69a0ded10bc43bfd7aaaa01cd9b03cc12c31bfa7
Reviewed-on: https://skia-review.googlesource.com/49820
Reviewed-by: angle-deps-roller . <angle-deps-roller@chromium.org>
Commit-Queue: angle-deps-roller . <angle-deps-roller@chromium.org>
Fresh off the griddle versions of:
SkPaint.h, SkCanvas.h, SkPath.h, and SkPixmap.h.
TBR=reed@google.com
Bug: skia: 9868
Change-Id: If3f0c1cd7973c53482772c2478b12f1070c9fc4d
Reviewed-on: https://skia-review.googlesource.com/46587
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Cary Clark <caryclark@skia.org>
61491505e8..1b7ed0ef2d
$ git log 61491505e..1b7ed0ef2 --date=short --no-merges --format='%ad %ae %s'
2017-09-20 jmadill D3D11: Minor optimizations to Renderer11.
Created with:
roll-dep skia/third_party/externals/angle2
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, see:
http://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium#TOC-Failures-due-to-DEPS-rolls
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE,Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-ANGLE,Perf-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-ANGLE,Perf-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE,Test-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE,Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-ANGLE,Test-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-ANGLE,Test-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE
TBR=fmalita@google.com
Change-Id: I89ad889c3836f5b23c0e6e92e72a6723532a0c19
Reviewed-on: https://skia-review.googlesource.com/49720
Reviewed-by: angle-deps-roller . <angle-deps-roller@chromium.org>
Commit-Queue: angle-deps-roller . <angle-deps-roller@chromium.org>