Commit Graph

857 Commits

Author SHA1 Message Date
Ben Wagner
f1d4f00fda Replace CGFontCreate with CTFontManagerCreate.
Replaces calls to CGFontCreateWithDataProvider with calls to
CTFontManagerCreateFontDescriptorFromData. Note that this means Skia will
not create CTFonts based on CGFonts, however SkCreateTypefaceFromCTFont
allows the user to create CTFonts from CGFonts and introduce them to Skia.

Bug: skia:4043,skia:9627

Change-Id: I8eb72c0e4eb257149f1f6a78ca34da4fbfafccab
TBR: reed@google.com
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254181
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Dominik Röttsches <drott@google.com>
2019-11-27 18:37:33 +00:00
Brian Salomon
e21af50dc6 Test texture domain effect with local matrix.
Add a common way to make rect op for testing that uses a GP with a local
matrix.

Change-Id: I958d1230bd5067b2e4b60fcd374e2f7718681e43
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255782
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-11-22 22:37:33 +00:00
Mike Klein
fee0079e77 rough unit test support for FM
I've punted for now on GPU test support.

Change-Id: I2ebe54a6fc61e1ce92120a6a221d5bb936b047e4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255874
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-11-22 15:49:33 +00:00
Hal Canary
1ec9a28a28 Replace third_party/gif with new DEPS entry.
- BUILD.gn `gif` optional source_set: use new skia_libgifcodec_path
    code, not third_party/gif code.

  - SkCodec.cpp: use third_party version of SkGifCodec.h.

  - rm src/codec/SkGifCodec.* third_party/gif/*

Original CL: https://review.skia.org/254582

Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP
Bug: skia:9654
Change-Id: Ia0379af70a5ec5656a7d123b8b6816b9fa24eaee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255780
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-11-21 16:57:57 +00:00
Hal Canary
2dad99092c Replace third_party/gif: Preflight changes
Something is breaking client code in unexpected ways.  Let's try this
piecemeal.

  - skia_libgifcodec_path gn var. Default is
    third_party/externals/libgifcodec.  Anfroid framework uses
    third_party/libgifcodec.

  - skia_use_libgifcodec gn var; defaults to !skia_use_wuffs.  Allow
    disabling both codecs.

  - GN template("optional"): add public_include_dirs, similar to
    public_defines.

  - SK_USE_LIBGIFCODEC, ifdef for skia_use_libgifcodec.

  - SkCodec.cpp: use SK_USE_LIBGIFCODEC

Original CL:  https://review.skia.org/254582

Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP
Bug: skia:9654
Change-Id: I70561f5f945656065e4b318d5fff505961fb0b6b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255578
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-11-21 15:19:41 +00:00
Hal Canary
f7cb902904 Revert "Replace third_party/gif with new DEPS entry."
This reverts commit 6d29bfbfcd.

Reason for revert: try to fix g3 roll.

Original change's description:
> Replace third_party/gif with new DEPS entry.
>
>   - skia_libgifcodec_path gn var. Default is
>     third_party/externals/libgifcodec.  Anfroid framework uses
>     third_party/libgifcodec.
>
>   - skia_use_libgifcodec gn var; defaults to !skia_use_wuffs.  Allow
>     disabling both codecs.
>
>   - BUILD.gn `gif` optional source_set: use new skia_libgifcodec_path
>     code, not third_party/gif code.
>
>   - GN template("optional"): add public_include_dirs, similar to
>     public_defines.
>
>   - SK_USE_LIBGIFCODEC, ifdef for skia_use_libgifcodec.
>
>   - SkCodec.cpp: use third_party version of SkGifCodec.h.
>
>   - src/codec/SkGifCodec.*, third_party/gif/*: remove files.
>
> Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP
> Bug: skia:9654
> Change-Id: Ie22d2bb7e52322fd3eedb97015f3aec2ce5e3402
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254582
> Reviewed-by: Leon Scroggins <scroggo@google.com>
> Commit-Queue: Hal Canary <halcanary@google.com>

TBR=djsollen@google.com,halcanary@google.com,rmistry@google.com,scroggo@google.com

Change-Id: I427e1a073c0574e1502b6196873ac3001a22250b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9654
Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255534
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
2019-11-20 20:54:44 +00:00
Hal Canary
82c13311fa BUILD: libgifcodec: fix flutter build
Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian9-Clang-arm-Release-Flutter_Android
Change-Id: If6790e7084f2cc8a9acf759184a52d1fdcb9b793
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255531
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-11-20 20:48:59 +00:00
Hal Canary
6d29bfbfcd Replace third_party/gif with new DEPS entry.
- skia_libgifcodec_path gn var. Default is
    third_party/externals/libgifcodec.  Anfroid framework uses
    third_party/libgifcodec.

  - skia_use_libgifcodec gn var; defaults to !skia_use_wuffs.  Allow
    disabling both codecs.

  - BUILD.gn `gif` optional source_set: use new skia_libgifcodec_path
    code, not third_party/gif code.

  - GN template("optional"): add public_include_dirs, similar to
    public_defines.

  - SK_USE_LIBGIFCODEC, ifdef for skia_use_libgifcodec.

  - SkCodec.cpp: use third_party version of SkGifCodec.h.

  - src/codec/SkGifCodec.*, third_party/gif/*: remove files.

Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP
Bug: skia:9654
Change-Id: Ie22d2bb7e52322fd3eedb97015f3aec2ce5e3402
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254582
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-11-20 19:07:00 +00:00
Ben Wagner
f4fcbd4290 Add additional GCC Builds using Docker
Bug: skia:9632
Change-Id: If487a89a5750d6493bca3e841837a0a71b01c554
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254797
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-11-20 12:59:08 +00:00
Mike Klein
e0ce128c1d add VTune integration to SkVM
There's no prebuilt libjitprofiling.so in the VTune SDK,
so I couldn't make this entirely automagic.  To enable set

    skia_vtune_path = "/opt/intel/vtune_amplifier"

or obviously to wherever your VTune is installed.  Looking at
the source for jitprofiling.c, which is in the SDK, it might
be possible to replicate and make this more automatic, but I
think it's easy enough to just set a GN path variable.

For an assembly-level profile, leave this VTune option disabled:

    [ ] Remove raw collector data after resolving the result

Change-Id: I1426ab1b838e00745e22ca4a97b9d0cd4c4e3280
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255124
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-11-19 16:42:21 +00:00
Robert Phillips
c919f97768 Reformat gn files
Change-Id: I60ccd1ef19d6a6dc033e20e7ac55c3182d76ea0e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255082
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-11-18 16:39:28 +00:00
John Rosasco
24cbdab97e SKQP Build for Fuchsia SDK
Change-Id: I2619784eca0f7a4dd66f2db0104cb746d9266b4e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244369
Commit-Queue: John Rosasco <rosasco@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-11-18 12:34:28 +00:00
John Rosasco
e57ca49319 Use original fuchsia sdk token
Change-Id: I61b5b87253ec63ca6b0d9bacf19d6997eb0bad06
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254497
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: John Rosasco <rosasco@google.com>
Auto-Submit: John Rosasco <rosasco@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-11-14 16:26:58 +00:00
John Rosasco
a9b348f66c Reland fully delineate GL usage w/ skia_use_gl.
Change-Id: I90f40467be145537cc08461fd3805606432f0cfd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254240
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: John Rosasco <rosasco@google.com>
Auto-Submit: John Rosasco <rosasco@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-11-12 21:43:44 +00:00
Colin Cross
654eb2ad04 [SkQP/Android] Replace -Weverything with -Wextra
-Weverything is not recommended, use -Wextra.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP,Test-Debian9-Clang-NUC7i5BNK-CPU-Emulator-x86-devrel-All-Android_SKQP

Bug: b/143713277
Test: mma
Change-Id: Ibaca86bd52348d544a8109b25ae013001444935d
Reviewd-on: https://android-review.googlesource.com/1163299
Cherry-pick: 29cd4eca88df5fafde51ee9a50e3deb96263fc64
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253956
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-11-12 16:49:29 +00:00
Jim Van Verth
9187e49ed1 Detect whether trying to blit a Metal swapchain texture, and fail if so.
Metal swapchain textures (equivalent to GL's FBO 0) can't be used with
MTLBlitCommandEncoder. For copySurface we need to detect this and fail.
Future changes will handle GrSurfaceProxy.

Change-Id: I9235d91cf31e96260c8d1da5938f5441d2e49d27
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252045
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-11-12 14:56:28 +00:00
Mike Klein
44649ca518 gn format BUILD.gn
Change-Id: Ifd81cf84d0c9ea4ba7dbbec212961ebd7b18424c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253361
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-11-07 14:03:11 +00:00
John Rosasco
f66ec5d69d No GL support on Fuchsia.
Change-Id: Ibd5bd82c9967b6fd10fcf2269db60b6af3d55cbb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253257
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-11-07 01:04:19 +00:00
Robert Phillips
0efc01d540 Revert "Fully delineate GL usage w/ skia_use_gl"
This reverts commit 078cf3e3b2.

Reason for revert: Appears to be blocking the Chrome roll due to Fuchsia build failures

Original change's description:
> Fully delineate GL usage w/ skia_use_gl
> 
> Change-Id: I17424d2235c7a54c4cda036f01a0b99dadc4b632
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252085
> Commit-Queue: Mike Klein <mtklein@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=mtklein@google.com,bsalomon@google.com,halcanary@google.com,rosasco@google.com

Change-Id: I17ba79bfe6e7f81c126eddbd50ca5384cfa4179c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253098
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-11-06 17:19:48 +00:00
John Rosasco
078cf3e3b2 Fully delineate GL usage w/ skia_use_gl
Change-Id: I17424d2235c7a54c4cda036f01a0b99dadc4b632
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252085
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-11-06 15:15:03 +00:00
Hal Canary
7823aeb8d6 refactor/layering: SkMalloc.cpp
Change-Id: Ie27c9f0ba2b9f160010d33548dc8359851610d79
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/251819
Commit-Queue: Hal Canary <halcanary@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-10-31 15:49:03 +00:00
Hal Canary
e107faa062 SkRemoteGlyphCache Add tracing to diff canvas
Use `extra_cflags=["-DSK_CAPTURE_DRAW_TEXT_BLOB"]` to enable.

Change-Id: I1d6db478ee91696cdce090647b889c17a83a2718
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250259
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-10-24 17:09:31 +00:00
Kevin Lubick
2be14d3215 [fuzzing] Add two fuzzers for SkDescriptor
One is an API fuzzer, the other is for deserializing.

Bug: skia:9548
Change-Id: I5923b8fb76f36ec09fca74d5ba82245a8ddb5938
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249776
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2019-10-21 20:48:15 +00:00
Stephen White
fbffb99bb6 Dawn: build libdawn-native as a static lib, not shared.
Also clean up the main BUILD.gn file to use deps instead of public_deps
where possible.

Change-Id: I2cc7719e42ae70be9181bdb02a1995cd2c780672
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249177
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2019-10-17 15:04:14 +00:00
Stephen White
36446f281c Reformat BUILD files.
Change-Id: Iee2f376f7270200b5732726e9c6a3015b0cd4139
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248928
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2019-10-16 14:52:47 +00:00
Stephen White
1e2adcf428 Roll Dawn to ToT.
This requires some changes to dawnSetProcs() and some build file changes.

Change-Id: I8a643ec0690857d53db7c1f8f5223077e30f69e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248860
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-10-16 14:19:14 +00:00
Jim Van Verth
b7c5bac9da Remove some more MoltenVK support
Change-Id: I511f15f056e15beddeaaf203414a1519569bfbe4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248815
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-10-15 20:44:17 +00:00
Kevin Lubick
e27a503a0a [canvaskit] Clean up embedded fonts
See https://groups.google.com/forum/#!topic/skia-discuss/J2XT7XjmFtI

Change-Id: I73614208d26536924bc3ed3385c1cd3c490ef8a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247098
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-10-09 14:51:39 +00:00
Kevin Lubick
d71344590a speculitive fix for flutter roll
Change-Id: I5a7ead4f3b3f73321af99668e8328ffd3cbcc8a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246101
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2019-10-03 20:15:42 +00:00
Brian Osman
1244db5650 Don't try to build skparagraph on windows component builds
Change-Id: I34baa1a90f6441305dff349431fb0470bb12d0f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246096
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-10-03 19:07:12 +00:00
Kevin Lubick
369f6a5ea2 [canvaskit] Initial addition of SkParagraph
There are more parts of ParagraphStyle and TextStyle, but
this should be a bulk of the components.

Bug: skia:9469
Change-Id: I87fff6700f41cff49ecbee3a1339e84c36699c93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244837
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2019-10-03 18:04:55 +00:00
Brian Osman
c95c4a69e1 Remove old SkSL JIT and cleanup include files a bit
- The raster pipeline JIT was an experiment that never really panned
  out (except for also introducing the interpreter, which survives).
  The removal should be pretty thorough, including undoing some changes
  to SkRasterPipeline itself. For reference, I basically undid most of
  https://skia-review.googlesource.com/c/skia/+/112204/

- With runtime shaders, always convert to Program using kPipelineStage
  This makes the first-pass compile consistent with runtime color filter,
  and with GrSkSLFP.

- Remove sksl_mixer.inc, which hasn't been used in a while.

- In sksl_pipeline.inc, all of the math symbols are already declared
  in sksl_gpu.inc, which forms the base symbol table when this include
  is parsed.

  sk_x and sk_y appear to never be used? Those builtin IDs are the IDs
  of the x and y params to main, but that logic still works without
  these declarations.

  sk_OutColor only makes sense in FP files (it's still declared in
  sksl_fp.inc).

Change-Id: Ie8dd68d2c4687745d46f96804a76695bce8c1ba2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246017
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-10-03 18:00:40 +00:00
Chinmay Garde
a1ea0a96f4 Don't build the minimal Metal app when building for Flutter.
Change-Id: I6bfdbcfbfd53b60f8d9f5fee3d2621c3f3e8c147
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245476
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-02 14:04:43 +00:00
Leon Scroggins III
ba45830975 Move is_orientation_marker into its own file
Bug: skia:8046

This is used both by SkJpegCodec and SkWebpCodec, so make it possible
to use it when SK_HAS_JPEG_LIBRARY is not set.

Change-Id: I34aa3587500cca3d2d74c4eb33945451592bf72b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/175428
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-09-24 17:08:03 +00:00
Mike Reed
5f12eaa6c2 support gpu for skottie2movie
-g will try to render the frames using OpenGL

For the motion-blur test skottie on Mac Pro...

Before: 71.0 secs
After :  6.6 secs

Change-Id: I7e723d4ac0bb63b0e42381ed50bf2144dfc9c8a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/243428
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-09-24 16:42:50 +00:00
Brian Osman
aea77267bf Run gn format
Change-Id: Iac84a0c538ad89ef7579d1b73f7194fa135af0ad
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/243037
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-09-20 13:46:15 +00:00
Hal Canary
e5b65d212b pdf-comparison and image_diff_metric tools
Change-Id: I2ee96581d77c5ded9c9c2dc371a554ebda6b8d26
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/242819
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-09-19 21:18:28 +00:00
Mike Klein
6b4143e11f move skvm debug tools back to core
I happened to have this on when profiling skottie_tool and got curious
why I was seeing the interpreter run and not JIT code.  Mostly this
moves the code in bulk out of SkVMTest.cpp to SkVM.cpp so that code in
SkVM.cpp can call dump() on itself.

Also this CL has the skvm::Program hang onto the original value-based
builder program (in addition to its own interpreter program and JIT
program if we can).  This is entirely so that when JIT bails out I
can have it dump out both the builder and interpreter programs for
more debugging aid.

I'm still going to need more debug tools somewhere to figure out
what the program that needs 17 registers is, and what to do about
it.

Finally, remove skvmtool.  It's annoying to maintain its build
rules, and I don't use it much if ever anymore.

Change-Id: I995d15d04bda79ddfc4d68bda8aaa3b5b9261f08
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/242520
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-09-18 19:41:11 +00:00
Hal Canary
932a2c0e3b experimental/minimal_ios_mtl_skia_app
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Mac-Clang-arm64-Debug-iOS_Metal,Build-Mac-Clang-arm64-Release-iOS_Metal

Change-Id: I3cb9c7d9073fc0572f49fe1c48caf638e78e34f5
Resubmit-of: https://skia-review.googlesource.com/c/skia/+/238757
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/239121
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-09-17 15:18:26 +00:00
Hal Canary
3388c1a15e gn: split out iOS templates to gn/ios.gni
motivation:  BUILD.gn os too big, also can be reused in modules.

Also: add a BUILD.gn for minimal_ios_mtl_skia_app that uses the
template.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Mac-Clang-arm64-Debug-iOS_Metal,Build-Mac-Clang-arm64-Release-iOS,Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Debug-All-Metal,Test-iOS-Clang-iPhone6-GPU-PowerVRGX6450-arm64-Release-All

Change-Id: I70ebb9668cce51ea9fa671a3d8c93041fbedcbfa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/241761
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
2019-09-16 18:49:24 +00:00
Hal Canary
6ed3e8e779 BUILD/iOS-App: simplify bundle
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Mac-Clang-arm64-Debug-iOS_Metal,Build-Mac-Clang-arm64-Release-iOS,Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Debug-All-Metal,Test-iOS-Clang-iPhone6-GPU-PowerVRGX6450-arm64-Release-All

Change-Id: I9f4cdd215a8bf62016944f7200cb1543a751bfd0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/241048
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-09-16 16:55:04 +00:00
Jim Van Verth
e784f75beb Reland "Add launch screen to iOS apps"
This is a reland of bf8dad281e

Original change's description:
> Add launch screen to iOS apps
> 
> Bug: skia:
> Change-Id: I7ebe94213c26c31c1b0dbd1b8951f87263cd41a3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/175826
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Hal Canary <halcanary@google.com>

Bug: skia:
Change-Id: I111242899339186fba2b8753ee43bc0fb2ea5295
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/239437
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-09-05 14:05:08 +00:00
Jim Van Verth
f643ba7a90 Revert "Add launch screen to iOS apps"
This reverts commit bf8dad281e.

Reason for revert: Need to fix infra Housekeeper bot

Original change's description:
> Add launch screen to iOS apps
> 
> Bug: skia:
> Change-Id: I7ebe94213c26c31c1b0dbd1b8951f87263cd41a3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/175826
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Hal Canary <halcanary@google.com>

TBR=jvanverth@google.com,halcanary@google.com,benjaminwagner@google.com

Change-Id: Ie540cc4d3209cf5e92d4c66812243721b1ac7fc2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/239105
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-09-04 20:21:48 +00:00
Jim Van Verth
bf8dad281e Add launch screen to iOS apps
Bug: skia:
Change-Id: I7ebe94213c26c31c1b0dbd1b8951f87263cd41a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/175826
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
2019-09-04 18:44:21 +00:00
Hal Canary
03c68091c1 Revert "experimental/minimal_ios_mtl_skia_app"
This reverts commit c2dc9c8648.

Reason for revert: Build-Mac-Clang-arm64-Debug-iOS_Metal Build-Mac-Clang-arm64-Release-iOS_Metal broken:

    ninja: error: '../../../../../../skia/experimental/minimal_ios_mtl_skia_app/main.mm', needed by 'obj/experimental/minimal_ios_mtl_skia_app/gen/experimental/minimal_ios_mtl_skia_app/minimal_ios_mtl_skia_app.main.o', missing and no known rule to make it


Original change's description:
> experimental/minimal_ios_mtl_skia_app
> 
> Change-Id: Iec5b9d9b930cb8b2b97ce92c828ccba0a9e2a94d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238757
> Auto-Submit: Hal Canary <halcanary@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

TBR=jvanverth@google.com,halcanary@google.com

Change-Id: I6a3c16131072019ba541ad573c95a8de4d2b5eef
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/239120
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-09-04 15:52:08 +00:00
Hal Canary
c2dc9c8648 experimental/minimal_ios_mtl_skia_app
Change-Id: Iec5b9d9b930cb8b2b97ce92c828ccba0a9e2a94d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238757
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-09-04 14:44:02 +00:00
Hal Canary
3e710b0231 gn: try again to fix fuchsia
Change-Id: Ie5e437fa08fb85c764703d8e292e696a568f5dcd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/239117
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-09-04 14:33:42 +00:00
Hal Canary
45812a1faa gn: try to fix flutter roll
Change-Id: I8503ee596b35a45b5b0269cd6af98569115212cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/239116
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-09-04 13:26:02 +00:00
Jim Van Verth
86c498319e Fix argument path for dsymutil
Change-Id: Iad8dd9135aadd77ffa7cdbd53dbb1e97a5fdf8d5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238956
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-09-03 20:03:08 +00:00
Hal Canary
c7b263b603 gn: move all skia_* declare_args to skia.gni
motivation:  put them all in one place.

Change-Id: Id40aff1f6ddc36b99b14567f110b5084da7e2bd4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238899
Commit-Queue: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
2019-09-03 18:29:22 +00:00
Ben Wagner
edcce3145a [gn] Add pool for dsymutil
dsymutil seems to kill the machine when too many processes are run in
parallel, so we need to use a pool to limit the concurrency when
passing large -j to Ninja (e.g. Goma build).

Change-Id: I84404291db4781f86268256ab888cef8d07c770e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/234477
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2019-09-03 14:08:09 +00:00
Jim Van Verth
e58d532bc3 Get Metal running on iOS viewer.
Adds MetalWindowContext_ios and hooks it up to Window_ios.
Also includes some minor clean up in other iOS code.

Bug: skia:8737
Change-Id: I2e8a0c755310fbc4ed534f975815c60f8eca130b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238438
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-09-03 14:07:39 +00:00
Ben Wagner
d51ea41ce4 [gn] Move dsymutil from link command to a separate action
Change-Id: I18a3bd5e845305e3b2521d076fd641bd5175b618
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/234327
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2019-09-03 14:02:49 +00:00
Jim Van Verth
68cb8b0239 Switch to new IOS windowing system.
This replaces the SDL-based system and should allow Metal to work on iOS.
OpenGL and raster will render but there's no touch input yet.

Bug: skia:8737
Change-Id: I863accc47f0e1781192d567dbe54d1e321c3cd2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231561
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-08-29 20:13:03 +00:00
Hal Canary
a0b66fc79d SkPlainTextEditor: from experimental to modules
Change-Id: I8896283ee3a57af926a43f6647e27059d52dd7a8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/237146
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-08-27 20:32:19 +00:00
Stephen White
238fc249a4 Reland "Update DEPS: roll spirv-tools and spirv-headers."
This is a reland of d617d5d29c

Original change's description:
> Update DEPS: roll spirv-tools and spirv-headers.
> 
> spirv-tools and spirv-headers were about two years out-of-date, and
> Dawn requires more recent versions.
> 
> This required an updated BUILD.gn file for spirv-tools. I used a
> modified version of the one I had written for Dawn. (The latter will
> be removed in favour of this one when we switch the Dawn backend
> from using Dawn's DEPS for spirv-tools and spirv-headers to using
> Skia's).
> 
> Change-Id: If61eb05ada9f4287b1a16daf10f9b1fac041a7b0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/234907
> Commit-Queue: Stephen White <senorblanco@chromium.org>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>

Change-Id: Ic4fe17fe286b04905977b9acb280ee9970b305bc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/237194
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-08-26 17:34:15 +00:00
Stan Iliev
d3acd352b6 Revert "Update DEPS: roll spirv-tools and spirv-headers."
This reverts commit d617d5d29c.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Update DEPS: roll spirv-tools and spirv-headers.
> 
> spirv-tools and spirv-headers were about two years out-of-date, and
> Dawn requires more recent versions.
> 
> This required an updated BUILD.gn file for spirv-tools. I used a
> modified version of the one I had written for Dawn. (The latter will
> be removed in favour of this one when we switch the Dawn backend
> from using Dawn's DEPS for spirv-tools and spirv-headers to using
> Skia's).
> 
> Change-Id: If61eb05ada9f4287b1a16daf10f9b1fac041a7b0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/234907
> Commit-Queue: Stephen White <senorblanco@chromium.org>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>

TBR=senorblanco@chromium.org,ethannicholas@google.com

Change-Id: I464dc2c21381e714dabc25e63939dd6d7fa3fcff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/237150
Reviewed-by: Stan Iliev <stani@google.com>
Commit-Queue: Stan Iliev <stani@google.com>
2019-08-26 17:05:57 +00:00
Stephen White
d617d5d29c Update DEPS: roll spirv-tools and spirv-headers.
spirv-tools and spirv-headers were about two years out-of-date, and
Dawn requires more recent versions.

This required an updated BUILD.gn file for spirv-tools. I used a
modified version of the one I had written for Dawn. (The latter will
be removed in favour of this one when we switch the Dawn backend
from using Dawn's DEPS for spirv-tools and spirv-headers to using
Skia's).

Change-Id: If61eb05ada9f4287b1a16daf10f9b1fac041a7b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/234907
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2019-08-26 14:47:29 +00:00
Mike Klein
df54f37a5d remove SkPicture_none.cpp
I happened to notice that SkPicture_none.cpp no longer compiles.

    ...
    src/core/SkPicture_none.cpp:101:44: error: out-of-line definition of
    'CreateProc' does not match any declaration in 'SkPictureImageFilter'
    sk_sp<SkFlattenable> SkPictureImageFilter::CreateProc(SkReadBuffer& buffer) {
    ...

This leads me to conclude that it cannot be in active use.

Change-Id: I92a4daa3c7d5d7889c4f841b578c9c691525c1cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/235216
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-08-16 14:52:25 +00:00
Mike Klein
c4abade253 Reland "add a stub for running fiddles as GMs"
This is a reland of adfc22df86

PS2+3 restrict this to just local builds: no G3, no Android, etc.

Original change's description:
> add a stub for running fiddles as GMs
>
> This is about the 15th time I've hacked this up.
>
> Change-Id: I0c75c0d04133d867e942c39eba693fd7227ba0f5
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/233240
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>

Change-Id: I7b8e7418edc4949c2f3e07ddf01f0643344397d1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/233242
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-08-09 16:22:51 +00:00
Mike Klein
639fce9060 Revert "add a stub for running fiddles as GMs"
This reverts commit adfc22df86.

Reason for revert: breaks building DM in Android, probably Google3 too.  Shame.

Original change's description:
> add a stub for running fiddles as GMs
> 
> This is about the 15th time I've hacked this up.
> 
> Change-Id: I0c75c0d04133d867e942c39eba693fd7227ba0f5
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/233240
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>

TBR=mtklein@google.com,bsalomon@google.com

Change-Id: I56207630eeba4fb411111fd40e6bc532cef39407
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/233241
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-08-09 15:40:52 +00:00
Mike Klein
adfc22df86 add a stub for running fiddles as GMs
This is about the 15th time I've hacked this up.

Change-Id: I0c75c0d04133d867e942c39eba693fd7227ba0f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/233240
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-08-09 14:38:10 +00:00
Stephen White
a800ec96f7 Dawn: implement sk_app window contexts for all backends.
Implement Window contexts for D3D12, Metal and Vulkan, as well as
a base class for all of them (DawnWindowContext).
Implement WSI, swap chains and external textures for all backends.
Add Dawn support to Viewer app.

Change-Id: I9368eae8d43594821aa1edd9fd559c8a9ba30066
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/228060
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2019-08-02 19:51:02 +00:00
Hal Canary
1f94d3900b experimental/editor: clean up BUILD.gn
Place build rules in experimental/editor/BUILD.gn to keep the top-level
BUILD.gn file smaller.

Change-Id: Idf22aec6f86bc510f4528fe0296bc1bea69f3df2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230740
Commit-Queue: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-07-30 14:28:58 +00:00
Ben Wagner aka dogben
e19a4f2614 Revert "experimental/editor: depend on ICU, handle word-left and word-right"
This reverts commit de23697549.

Reason for revert: Causing segfault on Mac builders; BUILD.gn needs to be formatted.

Original change's description:
> experimental/editor: depend on ICU, handle word-left and word-right
> 
> In App: ctrl-left-arrow and ctrl-right-arrow.
> 
> Added a TODO about using better notion of a word.
> 
> Bug: skia:9020
> Change-Id: I6f2b930928b9d38bca47291fd39dde7f93ccac03
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230417
> Commit-Queue: Hal Canary <halcanary@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>

TBR=halcanary@google.com,bungeman@google.com

Change-Id: I62dc160d8ae1ce58878b8e222a4d7860cc92ddfe
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9020
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230577
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
2019-07-29 20:55:36 +00:00
Hal Canary
de23697549 experimental/editor: depend on ICU, handle word-left and word-right
In App: ctrl-left-arrow and ctrl-right-arrow.

Added a TODO about using better notion of a word.

Bug: skia:9020
Change-Id: I6f2b930928b9d38bca47291fd39dde7f93ccac03
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230417
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-07-29 20:19:31 +00:00
Brian Osman
f564f1515b Move cpu_modules inside skia_enable_tools
Skia clients shouldn't have to worry about this

Change-Id: I3a1cc191a7d4da88cf23a59cb3043cfb8b868f2c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/229382
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-07-24 13:16:35 +00:00
Mike Klein
84bcd0c3ae skvmtool upgrades
fix toy square program
  add a new toy plus_one program
  also run stock srcover programs
  time at N=15,255,4095

e.g.
            plus_one	 69 Mpx/s	435 Mpx/s	615 Mpx/s
              square	 73 Mpx/s	393 Mpx/s	527 Mpx/s
         srcover_f32	 19 Mpx/s	 38 Mpx/s	 39 Mpx/s
         srcover_i32	 36 Mpx/s	 89 Mpx/s	103 Mpx/s
   srcover_i32_naive	 34 Mpx/s	 85 Mpx/s	 91 Mpx/s
    srcover_i32_SWAR	 49 Mpx/s	169 Mpx/s	191 Mpx/s

Change-Id: Ie041603bf1b458472dd477c64a91c61162a362e3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/229396
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-07-23 17:46:35 +00:00
Stephen White
985741a554 First draft of Dawn backend: clears are working.
First draft of (mostly stubbed-out) GrDawnGpu.
Skeletons of GrDawnCaps, GrDawnGpuCommandBuffer, GrDawnRenderTarget.
First draft of DawnTestContext.
First draft of psuedo-fences for Dawn, implemented with MapReadAsync.

Change-Id: I443f3370522639e82f2fa0eebe6b206c372f13a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/228137
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-07-18 18:09:12 +00:00
Brian Osman
f5ac1992db Fix always recompiling with skia_compile_processors enabled
We moved the script output to 'generated' but never updated the expected
outputs location in GN, so ninja always thought the headers were missing.

Change-Id: Ib9519ce880d1bc4ad5056c17f19a9a7df75e77ed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/228346
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2019-07-18 16:45:17 +00:00
Greg Daniel
fad9fbc3c4 Revert "First draft of Dawn backend: clears are working."
This reverts commit 6cebea42a8.

Reason for revert: breaking google3 roll

Original change's description:
> First draft of Dawn backend: clears are working.
> 
> First draft of (mostly stubbed-out) GrDawnGpu.
> Skeletons of GrDawnCaps, GrDawnGpuCommandBuffer, GrDawnRenderTarget.
> First draft of DawnTestContext.
> First draft of psuedo-fences for Dawn, implemented with MapReadAsync.
> 
> Change-Id: Id009436f4441f26ffbc82d485d7af3a499b3281b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226857
> Commit-Queue: Stephen White <senorblanco@chromium.org>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com,senorblanco@chromium.org

Change-Id: Ie494b5a403e8537c6539551533ae8b9156e90a61
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/228120
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-07-17 17:23:02 +00:00
Stephen White
6cebea42a8 First draft of Dawn backend: clears are working.
First draft of (mostly stubbed-out) GrDawnGpu.
Skeletons of GrDawnCaps, GrDawnGpuCommandBuffer, GrDawnRenderTarget.
First draft of DawnTestContext.
First draft of psuedo-fences for Dawn, implemented with MapReadAsync.

Change-Id: Id009436f4441f26ffbc82d485d7af3a499b3281b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226857
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-07-17 16:29:22 +00:00
Hal Canary
e574f1e409 [reland] SkMetaData: move from src/ to tools/
Original: https://skia-review.googlesource.com/c/skia/+/227436
Change-Id: Iec326027319f39b0402e1b5c03b327cb26249159
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/227778
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-07-17 13:14:38 +00:00
Mike Klein
08ba113703 test (and fix?) SkVM JIT on arm64 Android bots
This has failed in the past on GPU perf bots,
I think because I've been flushing the cache wrong?

Try switching over to __builtin___clear_cache(), what I used
a few years ago when I last tried to do something like this.

Cq-Include-Trybots: skia.primary:Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android
Change-Id: Ic5e366022eb15f4544fb7b90a75f8c51e36392ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/227421
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-07-17 00:31:05 +00:00
Mike Klein
977e53267e test SkVM JIT on Mac bots
Not sure why this isn't already on.  x86-64 Mac and Linux use
the same ABI, and I've been testing this already on several Macs.

Change-Id: Ibc96ba027f6ae6d5fae20585949862474c2c59f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/227420
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-07-16 22:01:37 +00:00
Greg Daniel
12e7585495 Revert "SkMetaData: move from src/ to tools/"
This reverts commit 9d844d8ce5.

Reason for revert: breaking google3

Original change's description:
> SkMetaData: move from src/ to tools/
> 
> Change-Id: If581c8ceeaa76985535cb7b6772742f0011cfe8e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/227436
> Commit-Queue: Hal Canary <halcanary@google.com>
> Commit-Queue: Ben Wagner <bungeman@google.com>
> Auto-Submit: Hal Canary <halcanary@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>

TBR=halcanary@google.com,bungeman@google.com

Change-Id: Ifadad46f0663b743d3e57bb6317707f2a2fac07d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/227636
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-07-16 00:28:44 +00:00
Hal Canary
9d844d8ce5 SkMetaData: move from src/ to tools/
Change-Id: If581c8ceeaa76985535cb7b6772742f0011cfe8e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/227436
Commit-Queue: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-07-15 18:45:09 +00:00
Hal Canary
41248071ac tools: separate TimeUtils from AnimTimer
gm, slides, and samples no longer need to know about the implementation
details of AnimTimer.

This
    virtual bool onAnimate(const AnimTimer&);
becomes this:
    virtual bool onAnimate(double /*nanoseconds*/);
which is much easier to reason about.

AnimTimer itself is now part of viewer.

Change-Id: Ib70bf7a0798b1991f25204ae84f70463cdbeb358
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226838
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-07-12 15:05:01 +00:00
Stephen White
0d70b716ca Add first Dawn dependencies.
Add Dawn repo to DEPS.
Add skia_use_dawn flag to BUILD.gn (default false).
Add Metal.framework for Mac when building for Dawn/Metal.
Add d3d12, dxgi, d3dcompiler libs when building for Dawn/D3D12.
Disable SPIRV validation when building for Dawn.
Add BUILD.gn for dawn and dawn/third_party libraries.

(Note that I had to split the declare_args() section of BUILD.gn
into two, so that I could refer to skia_use_dawn in skia_enable_spirv_validation.
If there's a better way to do this, I'm open to suggestions.)

Change-Id: I9bdaf990694f6b8bcce6b77c1a8b1620a7396e34
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225137
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-07-10 21:21:17 +00:00
Brian Osman
489cf8888c Reland "Make the SkSL interpreter opt-in"
This reverts commit b6b966aa43.

Change-Id: I58c34fc8520384157c5adb0056f3568b8ef1d844
Bug: skia:9230
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225939
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-07-09 15:45:24 +00:00
Brian Osman
b6b966aa43 Revert "Make the SkSL interpreter opt-in"
This reverts commit 5cfbee286d.

Reason for revert: Breaking DM in Google3

Original change's description:
> Make the SkSL interpreter opt-in
> 
> Bug: skia:9230
> 
> Change-Id: I50b707a7dd372882a983a4570810dae05c2a3638
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225723
> Reviewed-by: Mike Klein <mtklein@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

TBR=mtklein@google.com,brianosman@google.com

Change-Id: I5ba231ab75dd44cc1d22d497f9d7e4b732e3aa14
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9230
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225938
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-07-08 20:47:03 +00:00
Craig Stout
b27aeb71b8 [fuchsia] Use //src/graphics/lib/vulkan for in-tree build
Change-Id: Ifd4f0f9e91377f543393cfb2e26f9d21ce807d2f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225417
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Craig Stout <cstout@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Craig Stout <cstout@google.com>
2019-07-08 20:20:13 +00:00
Brian Osman
5cfbee286d Make the SkSL interpreter opt-in
Bug: skia:9230

Change-Id: I50b707a7dd372882a983a4570810dae05c2a3638
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225723
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-07-08 19:44:22 +00:00
Mike Klein
7e65076ae3 move Builder/Program dump()
This is test-only code only used by SkVMTest.cpp,
so it can live there.  This cuts the dependency
of SkVM on SkStream and co.

Change-Id: I7695e527b2d16e4485f8c5f4cd39bb8300e9221d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225321
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-07-02 23:10:23 +00:00
Mike Klein
b5f95cd1f8 tool support for SkVM JIT on aarch64
- Add quick-building skvmtool
    - Remove SkString dependency
    - Add aarch64 support for perf dumps

Here's what I see on now for the tiny skvmtool program:

x86-64 (Xeon Gold 6154)
           │      skvm-jit-1707131987():
     24.93 │   0:   vmovups (%rsi),%ymm0
     50.13 │        vpmulld %ymm0,%ymm0,%ymm0
     24.93 │        vmovups %ymm0,(%rsi)
           │        add    $0x20,%rsi
           │        sub    $0x8,%rdi
           │      ↑ jne    0
           │        vzeroupper
           │      ← retq

aarch64 (Cortex A53)
           │      skvm-jit-485593645():
     11.55 │   0:   ldr    q0, [x1]
     47.65 │        mul    v0.4s, v0.4s, v0.4s
     31.77 │        str    q0, [x1]
           │        add    x1, x1, #0x10
      8.66 │        subs   x0, x0, #0x4
           │      ↑ b.ne   0
      0.36 │      ← ret

Change-Id: Ia83ebdc6d96c8bd367bce0e8f2792b5e5c79f750
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225186
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-07-02 20:11:19 +00:00
Mike Klein
ba41df7c60 disable SkVM JIT on Android
Crashing Nexus5x GPU Perf bots, who knows why...

Cq-Include-Trybots: skia.primary:Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All-Android
Change-Id: I351bb15651015561cd54b13c6e3732fd79c53cf8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/224287
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-27 23:18:03 +00:00
Mike Klein
0ef3f53c8e aarch64 JIT first pass
- this is enough to run some of the test programs
  - a couple instructions TODO: load8, store8, bytes,
    so I32_SWAR and I32 are not yet JIT'd, but F32
    and I32_Naive are

Change-Id: I1d97cff24aa7307726c722cce45896ed319877e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/224194
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-27 20:15:29 +00:00
Nathaniel Nifong
0c4fbf1bbb Include sharing proc in skia static library when building for android.
So it can be used for SKP serialization.

Bug: 9203
Change-Id: I094d5222f220bb79c7f61fd5ebebf48e23e97b0b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/223705
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2019-06-25 20:37:53 +00:00
Mike Klein
6bbeb4ab72 remove xbyak
For now, disable the vpmovusdb AVX-512 instruction, using the compound
AVX2 fallback instead.  I need to learn how to encode EVEX prefixes
before we can use that, and it's not very important.

That's everything!  We're fully in control now, and should be able to
run this on any x86-64 Linux or Mac.  And we can relax some of the
defined(SKVM_JIT) guards so that, e.g., we can unit test Assembler even
on all platforms.

Stifle some warnings about ~bool by ~(int)bool.

Would like to enable when is_mac too but can't seem to get past
(bogus?) thread annotation on the bots.  My local Mac is fine. :/

Change-Id: If00bdd97ebd9684ed109933e2fa70c5e6f6ea339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/222631
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-06-22 00:16:38 +00:00
Nathaniel Nifong
0426c38daa Reland "Deserialize MultiPictureDocument based SKP files (with image sharing proc) in wasm debugger."
This is a reland of 7635013ad1

Original change's description:
> Deserialize MultiPictureDocument based SKP files (with image sharing proc) in wasm debugger.
> 
> Change-Id: I73affae3cd05a2aa6ac1c75c8e049d352bbf3a85
> Bug: 9176
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/217135
> Commit-Queue: Nathaniel Nifong <nifong@google.com>
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>

Bug: 9176
Change-Id: Ifef1ff45ac0013ba3015f88c7ecd75527b28b604
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/222505
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2019-06-21 15:49:21 +00:00
Brian Salomon
384981be3d Revert "Deserialize MultiPictureDocument based SKP files (with image sharing proc) in wasm debugger."
This reverts commit 7635013ad1.

Reason for revert: breaking bots 

Original change's description:
> Deserialize MultiPictureDocument based SKP files (with image sharing proc) in wasm debugger.
> 
> Change-Id: I73affae3cd05a2aa6ac1c75c8e049d352bbf3a85
> Bug: 9176
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/217135
> Commit-Queue: Nathaniel Nifong <nifong@google.com>
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>

TBR=djsollen@google.com,mtklein@google.com,kjlubick@google.com,reed@google.com,nifong@google.com

Change-Id: Ie5e5dac46ba1beeb8de0a29c1a7be1264616fe92
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 9176
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/222502
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-06-20 18:52:01 +00:00
Nathaniel Nifong
7635013ad1 Deserialize MultiPictureDocument based SKP files (with image sharing proc) in wasm debugger.
Change-Id: I73affae3cd05a2aa6ac1c75c8e049d352bbf3a85
Bug: 9176
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/217135
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-06-20 17:33:04 +00:00
Brian Osman
fb32ddf622 Revert "Revert "Shuffle SkSL sources around so compiler and bytecode can be used w/o GPU""
This reverts commit 37a59ef1af.

Change-Id: If38da265ebbb196e72c7d035ba51028438787e2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221541
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-06-18 14:47:12 +00:00
Robert Phillips
37a59ef1af Revert "Shuffle SkSL sources around so compiler and bytecode can be used w/o GPU"
This reverts commit 90507286cc.

Reason for revert: Seems to be breaking some builds

Original change's description:
> Shuffle SkSL sources around so compiler and bytecode can be used w/o GPU
> 
> Change-Id: I7236a30040ab532086e68d6e9de2898dd7acaa32
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221098
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>

TBR=mtklein@google.com,kjlubick@google.com,brianosman@google.com,ethannicholas@google.com,reed@google.com

Change-Id: Ie230315a72ebcfae32bc9ce7bafec1f87106cff2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221536
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-06-18 11:35:18 +00:00
Mike Klein
17a9655db2 enable SkVM JIT testing on x86-64 Linux bots
Change-Id: Id87d8e7f4d9ae458f2eb79c82682702f659dec43
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221271
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-18 00:29:45 +00:00
Brian Osman
90507286cc Shuffle SkSL sources around so compiler and bytecode can be used w/o GPU
Change-Id: I7236a30040ab532086e68d6e9de2898dd7acaa32
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/221098
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-06-17 21:16:18 +00:00
Mike Reed
d62d406aa2 Revert "Revert "try resolver pattern""
This reverts commit 2bafb64ed3.

Change-Id: I46f29284546a8978fd0005a0937e28410e5ac0da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220518
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-06-12 14:46:56 +00:00
Mike Klein
613ad38b10 add basic JIT using xbyak
Long term we'll need to spin up our own codegen rather than using xbyak,
since it uses exceptions and does not support ARM.

I really don't like how I've hacked in the caching of the JITted
program, but that'll change anyway when switching away from xbyak.

Performance looks good, better than (lowp) SkRasterPipeline
but not quite as good as hand-tuned code:

  Opts:     0.2 ns/px
  RP:       0.7
  F32:      0.8
  I32:      0.6
  I32_SWAR: 0.5

ninja -C out dm nanobench && out/dm -m SkVM && gobjdump -D -b binary -mi386:x86-64 /tmp/code.bin --insn-width=10

Change-Id: I34ce46e1d3fe5aa75f42709049a92ac79bf48bbd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219341
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-11 18:40:39 +00:00
Julia Lavrova
a3552c5e6d Reland "SkParagraph"
This is a reland of 10ad0b9b01

Original change's description:
> SkParagraph
>
> Change-Id: I0a4be75fd0c18021c201bcc1edfdfad8556edeff
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/192100
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Julia Lavrova <jlavrova@google.com>

Change-Id: I46cf43eae693edf68e45345acd0eb39e04e02bfc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219863
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2019-06-11 17:20:36 +00:00
Herb Derby
2bafb64ed3 Revert "try resolver pattern"
This reverts commit a716809d5a.

Reason for revert: breaks google3

Original change's description:
> try resolver pattern
> 
> Change-Id: I32c5dbf4cacce9112df42a6f29800859625dc4a9
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/218965
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
> Auto-Submit: Mike Reed <reed@google.com>

TBR=robertphillips@google.com,reed@google.com

Change-Id: Ib6facd0fda07762ed394b7b2c84771d7a93edae0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/219488
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-06-11 16:01:14 +00:00