platform/upstream/libSkiaSharp.git
7 years agomove SkDraw.h to core
Mike Reed [Tue, 10 Jan 2017 19:57:59 +0000 (14:57 -0500)]
move SkDraw.h to core

BUG=skia:

Change-Id: Ic8c949530414f3f8d7caded969941dc853a06271
Reviewed-on: https://skia-review.googlesource.com/6845
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agopretty up some SkSplicer code
Mike Klein [Tue, 10 Jan 2017 21:11:15 +0000 (16:11 -0500)]
pretty up some SkSplicer code

  - build_stages.py uses gobjdump for both architectures, minor formatting changes
  - let byte arrays be written inline in splice()

Change-Id: I84bd47c18e5ae0b34b35f8c2f0a329fb1ea58f60
Reviewed-on: https://skia-review.googlesource.com/6833
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoInvalidate icache in copy_to_executable_mem()
Mike Klein [Tue, 10 Jan 2017 20:22:36 +0000 (15:22 -0500)]
Invalidate icache in copy_to_executable_mem()

This should be a no-op on x86 (unified icache and dcache), but is required on
ARM because the icache and dcache are separate.

The Pixel C bots are crashing at head, and so is my local Pixel C, but not
after this CL.  Interestingly, my Pixel not-C (phone) has always been fine.
I wonder if it has a unifed cache?

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Android-Clang-PixelC-CPU-TegraX1-arm64-Release-Android

Change-Id: I8f9d53729613c51aabfeb49495aac38ce2801a84
Reviewed-on: https://skia-review.googlesource.com/6847
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoAdd Gray8 pixel config
Brian Osman [Tue, 10 Jan 2017 19:20:02 +0000 (14:20 -0500)]
Add Gray8 pixel config

This is still just linear (non-sRGB), but adding sRGB will
be the next step. I've verified that this is really making
R8 textures when uploading Gray8 bitmaps. Tests pass, and
the all_bitmap_configs GM still renders correctly (unlike
when we just mapped Gray8 to Alpha8).

This adds another pixel config, which could grow our cache
footprint, but the benefits of not using 4bpp for 1bpp data
should outweigh that?

Re-land of https://skia-review.googlesource.com/c/6817/,
with fixes for Vulkan.

BUG=skia:6110

Change-Id: Ia763c276808be28027ed0005ee4b88637306583f
Reviewed-on: https://skia-review.googlesource.com/6839
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoSkSplicer: no need to set_k() manually.
Mike Klein [Tue, 10 Jan 2017 19:41:19 +0000 (14:41 -0500)]
SkSplicer: no need to set_k() manually.

set_k() is simulating the effect of loading a pointer constant into the register used to pass the 4th function argument.  An easier way to do this is to pass that pointer constant as the 4th function argument... duh.

Change-Id: I5604d6bbadd86eaaa82f8c4391080f6489b1927f
Reviewed-on: https://skia-review.googlesource.com/6843
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agodisable splicer on MSAN bot
Mike Klein [Tue, 10 Jan 2017 19:31:13 +0000 (14:31 -0500)]
disable splicer on MSAN bot

Not sure what to do about this long term.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN

Change-Id: If9e86c285914ce2d8255ac25197845728d7c5d49
Reviewed-on: https://skia-review.googlesource.com/6842
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRemove last of SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS
Hal Canary [Tue, 10 Jan 2017 18:58:24 +0000 (13:58 -0500)]
Remove last of SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS

Approval from https://review.skia.org/5006
TBR=reed@google.com
Change-Id: Icdd54be420260ecd2f94f2f1fa76caba34e6a50e
Reviewed-on: https://skia-review.googlesource.com/6840
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoSkSplicer: fix aarch64 jump offset, turn on testing on aarch64 Android bots
Mike Klein [Tue, 10 Jan 2017 19:09:24 +0000 (14:09 -0500)]
SkSplicer: fix aarch64 jump offset, turn on testing on aarch64 Android bots

I also updated the dump feature to work with aarch64, and included comments on how to disassemble an aarch64 dump.

Looking at an aarch64 dump made it immediately obvious that the jump offset was off by 1.

Change-Id: I17fa6ee44779e8be69ab4582e338c88212aba36c
Reviewed-on: https://skia-review.googlesource.com/6841
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoSkSplicer: test and fix loop logic
Mike Klein [Tue, 10 Jan 2017 18:42:51 +0000 (13:42 -0500)]
SkSplicer: test and fix loop logic

The new test would fail without the the change in SkSplicer.cpp to call fSpliced(x,x+body) instead of fSpliced(x,body).  The rest of the changes are cosmetic, mostly renaming n to limit.

Change-Id: Iae28802d0adb91e962ed3ee60fa5a4334bd140f9
Reviewed-on: https://skia-review.googlesource.com/6837
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert "Add Gray8 pixel config"
Brian Osman [Tue, 10 Jan 2017 18:47:27 +0000 (18:47 +0000)]
Revert "Add Gray8 pixel config"

This reverts commit f2956459f707de596dcb2c79a7ee1fa62d599c0d.

Reason for revert: GM and image failures on some bots (rendering red, not gray).

Original change's description:
> Add Gray8 pixel config
>
> This is still just linear (non-sRGB), but adding sRGB will
> be the next step. I've verified that this is really making
> R8 textures when uploading Gray8 bitmaps. Tests pass, and
> the all_bitmap_configs GM still renders correctly (unlike
> when we just mapped Gray8 to Alpha8).
>
> This adds another pixel config, which could grow our cache
> footprint, but the benefits of not using 4bpp for 1bpp data
> should outweigh that?
>
> BUG=skia:6110
>
> Change-Id: I4fc4c2479fc25f1d278e174a9bb5b542a0cb184c
> Reviewed-on: https://skia-review.googlesource.com/6817
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
>

TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org
BUG=skia:6110
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I95a4fc0450a569d5791f6bceb7fae61c7e5eba61
Reviewed-on: https://skia-review.googlesource.com/6838
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoTest SkSplicer on x86-64 bots, except Windows.
Mike Klein [Tue, 10 Jan 2017 17:06:21 +0000 (12:06 -0500)]
Test SkSplicer on x86-64 bots, except Windows.

Will follow up later with (is_android && target_cpu == "arm64").  Just being cautious.

Change-Id: I32bf48dec55633d6386c66fd0f11fc5616596477
Reviewed-on: https://skia-review.googlesource.com/6834
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoStart including 'winrt' in Windows toolchain
Brian Osman [Tue, 10 Jan 2017 15:38:23 +0000 (10:38 -0500)]
Start including 'winrt' in Windows toolchain

Recent versions of ANGLE require this. See:

  https://skia-review.googlesource.com/c/6698/

This also updates us to the latest version of the Windows SDK,
2015 Update 3 (Windows 10 SDK).

BUG=skia:
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug-GDI,Test-Win10-MSVC-ShuttleA-GPU-GTX660-x86_64-Debug-Vulkan,Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Release

Change-Id: I42c8cabc87717f8695763f2c5573b27ab8ab65be
Reviewed-on: https://skia-review.googlesource.com/6801
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoRespect SkColorSpace in SkPNGImageEncoder
Matt Sarett [Tue, 10 Jan 2017 16:28:54 +0000 (11:28 -0500)]
Respect SkColorSpace in SkPNGImageEncoder

This only changes behavior when the input SkBitmap/SkPixmap is
tagged with a non-null SkColorSpace.  Android tags their bitmaps
as sRGB when linear blending is enabled.  So this only changes
behavior in Android when linear blending is turned on.
*If linear blending is turned on, this will do a color correct
 encode (which is the desired behavior).
*If linear blending is turned off, this will do a legacy encode.

TODO: Add support for F16.
TODO: Add color space support to WEBP.
TODO: Tag encoded images with ICC profiles (when it makes sense).

BUG=skia:

Change-Id: Idd8a2836371d24a453d953e6fe2e76a87751be96
Reviewed-on: https://skia-review.googlesource.com/6498
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoClean up unused SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS code
Hal Canary [Tue, 10 Jan 2017 17:12:45 +0000 (12:12 -0500)]
Clean up unused SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS code

Approval from https://review.skia.org/5006
TBR=reed@google.com

Change-Id: Ie630a3f45a830c8c2dc80a30e759d9481b8d60a5
Reviewed-on: https://skia-review.googlesource.com/5775
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agosupport external raster handles
Mike Reed [Tue, 10 Jan 2017 16:58:39 +0000 (11:58 -0500)]
support external raster handles

draft CL for chrome: https://codereview.chromium.org/2618323005/

BUG=skia:

Change-Id: I5dbcd700818776a9f62f1e10723d2efcc248dc44
Reviewed-on: https://skia-review.googlesource.com/6406
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoremove xbyak experiment
Mike Klein [Tue, 10 Jan 2017 14:24:56 +0000 (09:24 -0500)]
remove xbyak experiment

SkSplicer is better.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I014ec0e9fb00a8a4694d442e672c65402621dc67
Reviewed-on: https://skia-review.googlesource.com/6830
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoMake SkImage_Base::onReadPixels() pure virtual
Matt Sarett [Tue, 10 Jan 2017 14:29:04 +0000 (09:29 -0500)]
Make SkImage_Base::onReadPixels() pure virtual

BUG=skia:

Change-Id: I52504b21313717bf8321ec3f1df770773703a1a1
Reviewed-on: https://skia-review.googlesource.com/6831
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoRemove SkUseTestFontConfigFile.
Ben Wagner [Mon, 9 Jan 2017 21:23:44 +0000 (16:23 -0500)]
Remove SkUseTestFontConfigFile.

This method and its associated globals are no longer used by any user
and can now be removed.

BUG=skia:2817

Change-Id: Ia627e2494f568a733999b980aec9284467d2640d
Reviewed-on: https://skia-review.googlesource.com/6821
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>

7 years agoAdd Gray8 pixel config
Brian Osman [Mon, 9 Jan 2017 20:32:57 +0000 (15:32 -0500)]
Add Gray8 pixel config

This is still just linear (non-sRGB), but adding sRGB will
be the next step. I've verified that this is really making
R8 textures when uploading Gray8 bitmaps. Tests pass, and
the all_bitmap_configs GM still renders correctly (unlike
when we just mapped Gray8 to Alpha8).

This adds another pixel config, which could grow our cache
footprint, but the benefits of not using 4bpp for 1bpp data
should outweigh that?

BUG=skia:6110

Change-Id: I4fc4c2479fc25f1d278e174a9bb5b542a0cb184c
Reviewed-on: https://skia-review.googlesource.com/6817
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoStart making texture coordinates be absolute
Robert Phillips [Mon, 9 Jan 2017 19:23:59 +0000 (14:23 -0500)]
Start making texture coordinates be absolute

The idea here is that we will pass GrTextureProxys in (where we're currently passing GrTextures) and defer the normalization until the texture is actually instantiated (and possibly move it to the GPU entirely)

This CL does (intentionally) change the texturedomaineffect GM but I believe the new behavior is more correct.

Change-Id: I4e0510b3dfb65ff0d0ee5921f9a6f94151e602d3
Reviewed-on: https://skia-review.googlesource.com/6807
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoSkSplicer: start on arm64
Mike Klein [Mon, 9 Jan 2017 22:21:32 +0000 (17:21 -0500)]
SkSplicer: start on arm64

Seems to be working.  The jump to loop_start might be a little off, but not by much.  Correctness is really still a big TODO.

$ adb shell 'cd /data/local/tmp; ./monobench SkRasterPipeline 200'
SkRasterPipeline_…
200  …f16_compile 1x  …f16_run 1.42x  …srgb_compile 2.21x  …srgb_run 2.59x⏎

Change-Id: I0e1acc6404cf3ce8084d9ef8011cbe0b5f1fd6e3
Reviewed-on: https://skia-review.googlesource.com/6811
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert "Improve quad edges' smoothness in non-AA cases"
Mike Klein [Tue, 10 Jan 2017 14:21:12 +0000 (14:21 +0000)]
Revert "Improve quad edges' smoothness in non-AA cases"

This reverts commit d4ed326d6f3704995b0e91292bf2c87e9d36bb14.

Reason for revert: reverting temporarily to get us rolling into Chrome again.

Must be this CL right?
https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/3364/layout-test-results/results.html

Original change's description:
> Improve quad edges' smoothness in non-AA cases
>
> Previously, non-AA quad edges only have an accuracy about 1/2 pixel
> (while the AA quad edges have an accuracy about 1/8 pixel).  Now, we
> increase non-AA quad edges' accuracy to 1/8 pixel as well.
>
> The difference is very significant for rotating non-AA filled circles.
> For example, run `./out/Debug/SampleApp --slide GM:fillcircle` with AA
> turned off (by pressing b).
>
> The benchmark added reveals that increasing quad accuracy from 1/2 to
> 1/8 doesn't affect the performance significantly. The following is the
> 1/2-accuracy performance versus 1/8-accuracy performance:
>
> curr/maxrss     loops   min     median  mean    max     stddev  samples
> config  bench
> 7/17  MB        19      2.43µs  2.57µs  2.81µs  10.5µs  22%     16119
> 8888    path_fill_big_nonaacircle
> 7/17  MB        17      1.38µs  1.42µs  1.52µs  13µs    20%     21409
> 8888    path_fill_small_nonaacircle
>
> curr/maxrss     loops   min     median  mean    max     stddev  samples
> config  bench
> 7/17  MB        71      2.52µs  2.59µs  2.79µs  7.67µs  19%     7557
> 8888    path_fill_big_nonaacircle
> 7/17  MB        64      1.45µs  1.49µs  1.51µs  2.39µs  5%      12704
> 8888    path_fill_small_nonaacircle
>
>
> BUG=skia:
>
> Change-Id: I3482098aeafcc6f2ec9aa3382977c0dc1b650964
> Reviewed-on: https://skia-review.googlesource.com/6699
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Yuqian Li <liyuqian@google.com>
>

TBR=caryclark@google.com,liyuqian@google.com,reed@google.com,djsollen@google.com,bungeman@google.com,reviews@skia.org,fmalita@chromium.org
BUG=skia:
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I5bc4596ab506f6f61ac2da91a07cf51d61114f31
Reviewed-on: https://skia-review.googlesource.com/6829
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
7 years agoGenerate Signed Distance Field directly from vector path
joel.liang [Tue, 10 Jan 2017 02:39:43 +0000 (18:39 -0800)]
Generate Signed Distance Field directly from vector path

Add SkGenerateDistanceFieldFromPath API to generate signed distance field directly from SkPath.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1643143002

Committed: https://skia.googlesource.com/skia/+/4de97a64e8829323a7070b623411d9f9ddb0cd0f
Committed: https://skia.googlesource.com/skia/+/e8f0a7b986f1e5583c9bc162efcdd92fd6430549
Committed: https://skia.googlesource.com/skia/+/67c7c81a82b6351e9fbbf235084d7120162d9268
Review-Url: https://codereview.chromium.org/1643143002
Committed: https://skia.googlesource.com/skia/+/64b70b096ac20833d9737758a4bd5f2a51078bc4
Review-Url: https://codereview.chromium.org/1643143002
Committed: https://skia.googlesource.com/skia/+/6d2f73c364d0d823f14d1ddebc88e0bcbc8f0634
Review-Url: https://codereview.chromium.org/1643143002

7 years agoMove resource ref/io manipulation from GrProgramElement to GrProcessor
Brian Salomon [Mon, 9 Jan 2017 20:30:02 +0000 (15:30 -0500)]
Move resource ref/io manipulation from GrProgramElement to GrProcessor

Change-Id: I783e74107f7d34b57d80b843fe23ce7126b77424
Reviewed-on: https://skia-review.googlesource.com/6816
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoRename function in PathOpsExtendedTest which takes strings.
Ben Wagner [Mon, 9 Jan 2017 20:54:34 +0000 (15:54 -0500)]
Rename function in PathOpsExtendedTest which takes strings.

A few methods in PathOpsExtendedTest were changed to write to SkStrings
instead of SkStreams. However, the names of these functions confusingly
still have "Stream" in their names. This CL is just a static function
rename and some small clean-up.

Change-Id: Idf21b2aba28a2f984ef30cb5c18e26a43a9c7201
Reviewed-on: https://skia-review.googlesource.com/6819
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>

7 years agoAllow constrained and unconstrained picture-images
Matt Sarett [Mon, 9 Jan 2017 20:59:17 +0000 (15:59 -0500)]
Allow constrained and unconstrained picture-images

BUG=skia:

Change-Id: Id9b7b2c82c634fec50f9a57f4b59ce0c02e0706a
Reviewed-on: https://skia-review.googlesource.com/6818
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
7 years agodocumentation: corrections to PDF docs
Hal Canary [Mon, 9 Jan 2017 20:58:56 +0000 (15:58 -0500)]
documentation: corrections to PDF docs

NOTRY=true
Change-Id: Ib3a1ca0111c9fa2ed34021420c410f816e196274
Reviewed-on: https://skia-review.googlesource.com/6820
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoRoll FreeType past 2.7.1.
Ben Wagner [Mon, 9 Jan 2017 20:12:33 +0000 (15:12 -0500)]
Roll FreeType past 2.7.1.

https://skia.googlesource.com/third_party/freetype2.git/+log/ffd8f6223607e..08fd250e1af0aa16

This picks up a number of fixes and an implementation of
FT_Get_Var_Design_Coordinates.

Change-Id: Idac2b3b5d2b0684fa2c13f4f2484c09f39a4eced
Reviewed-on: https://skia-review.googlesource.com/6815
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>

7 years agoAdd robocop instructions on how to interact with the autoroller
Ravi Mistry [Mon, 9 Jan 2017 19:31:33 +0000 (14:31 -0500)]
Add robocop instructions on how to interact with the autoroller

BUG=skia:6065

NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=6812

Change-Id: I04acc6d4a75ce01a3c0af94091ada84aeadc7da8
Reviewed-on: https://skia-review.googlesource.com/6812
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>

7 years agoRemove unused unique ID from GrProgramElement
Brian Salomon [Mon, 9 Jan 2017 15:14:34 +0000 (10:14 -0500)]
Remove unused unique ID from GrProgramElement

Change-Id: I27140b378ad665c40f6edced1a655150ebd4842c
Reviewed-on: https://skia-review.googlesource.com/6800
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoexclude src/splicer from g3
Mike Klein [Mon, 9 Jan 2017 18:40:00 +0000 (13:40 -0500)]
exclude src/splicer from g3

Change-Id: Id1ecf20bb785e5979afa9e07ca4bb04a7d839fb7
Reviewed-on: https://skia-review.googlesource.com/6806
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
7 years agoVarious memory leak fixes in Vulkan
Greg Daniel [Fri, 6 Jan 2017 19:40:08 +0000 (14:40 -0500)]
Various memory leak fixes in Vulkan

BUG=skia:6101

Change-Id: Iee798dd2d9dcc4521f643b814e65029b9383cc6f
Reviewed-on: https://skia-review.googlesource.com/6696
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>

7 years agoImprove quad edges' smoothness in non-AA cases
Yuqian Li [Fri, 6 Jan 2017 21:31:46 +0000 (16:31 -0500)]
Improve quad edges' smoothness in non-AA cases

Previously, non-AA quad edges only have an accuracy about 1/2 pixel
(while the AA quad edges have an accuracy about 1/8 pixel).  Now, we
increase non-AA quad edges' accuracy to 1/8 pixel as well.

The difference is very significant for rotating non-AA filled circles.
For example, run `./out/Debug/SampleApp --slide GM:fillcircle` with AA
turned off (by pressing b).

The benchmark added reveals that increasing quad accuracy from 1/2 to
1/8 doesn't affect the performance significantly. The following is the
1/2-accuracy performance versus 1/8-accuracy performance:

curr/maxrss     loops   min     median  mean    max     stddev  samples
config  bench
7/17  MB        19      2.43µs  2.57µs  2.81µs  10.5µs  22%     16119
8888    path_fill_big_nonaacircle
7/17  MB        17      1.38µs  1.42µs  1.52µs  13µs    20%     21409
8888    path_fill_small_nonaacircle

curr/maxrss     loops   min     median  mean    max     stddev  samples
config  bench
7/17  MB        71      2.52µs  2.59µs  2.79µs  7.67µs  19%     7557
8888    path_fill_big_nonaacircle
7/17  MB        64      1.45µs  1.49µs  1.51µs  2.39µs  5%      12704
8888    path_fill_small_nonaacircle

BUG=skia:

Change-Id: I3482098aeafcc6f2ec9aa3382977c0dc1b650964
Reviewed-on: https://skia-review.googlesource.com/6699
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agoGrTessellator: fix compile when LOGGING_ENABLED.
Stephen White [Mon, 9 Jan 2017 18:11:18 +0000 (13:11 -0500)]
GrTessellator: fix compile when LOGGING_ENABLED.

BUG=skia:

Change-Id: I1f0df58ffe79e439f92a8c1cd3c39812c32d039f
Reviewed-on: https://skia-review.googlesource.com/6743
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephan White <senorblanco@chromium.org>

7 years agoOmit flaky tests.
Ben Wagner [Mon, 9 Jan 2017 16:37:04 +0000 (11:37 -0500)]
Omit flaky tests.

BUG=skia:5876,skia:6082,skia:6086,skia:6097

Change-Id: I1f302c7bb0d147d976f320e01f969a1bd693c78c
Reviewed-on: https://skia-review.googlesource.com/6804
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoSeparate SkArithmeticImageFilter from SkXfermodeImageFilter.
Brian Salomon [Mon, 9 Jan 2017 15:48:23 +0000 (10:48 -0500)]
Separate SkArithmeticImageFilter from SkXfermodeImageFilter.

Change-Id: I145eed7276456b546ca5c66bc1a0f0f74a84f138
Reviewed-on: https://skia-review.googlesource.com/6728
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoSpecify bit depth and color space in SkImage::MakeFromPicture()
Matt Sarett [Mon, 9 Jan 2017 17:38:59 +0000 (12:38 -0500)]
Specify bit depth and color space in SkImage::MakeFromPicture()

BUG=skia:

Change-Id: I1d2a2b1f97557fc3e7ca6c2bdad6329f7760dbd2
Reviewed-on: https://skia-review.googlesource.com/6685
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoRevert "Revert "Removing ref counting from GrXPFactory.""
Brian Salomon [Mon, 9 Jan 2017 16:46:10 +0000 (11:46 -0500)]
Revert "Revert "Removing ref counting from GrXPFactory.""

This reverts commit 003312a211e65f35e402d6fe80a32e23d4c94ac4.

Change-Id: Ib41065e5c356d1dd99e70fa10611ac6756c2b79d
Reviewed-on: https://skia-review.googlesource.com/6803
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoSkSplicer
Mike Klein [Mon, 9 Jan 2017 15:20:13 +0000 (10:20 -0500)]
SkSplicer

I think I may have cracked the compile-ahead-of-time-splice-at-runtime nut.

This compiles stages ahead of time using clang, then splices them together at runtime.  This means the stages can be written in simple C++, with some mild restrictions.

This performs identically to our Xbyak experiment, and already supports more stages.  As written this stands alone from SkRasterPipeline_opts.h, but I'm fairly confident that the bulk (the STAGE implementations) can ultimately be shared.

As of PS 25 or so, this also supports all the stages used by bench/SkRasterPipelineBench.cpp:

    SkRasterPipeline_…
    400  …f16_compile 1x  …f16_run 1.38x  …srgb_compile 1.89x  …srgb_run 2.21x

That is, ~30% faster than baseline for f16, ~15% faster for sRGB.

Change-Id: I1ec7dcb769613713ce56978c58038f606f87d63d
Reviewed-on: https://skia-review.googlesource.com/6733
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert "Removing ref counting from GrXPFactory."
Brian Salomon [Mon, 9 Jan 2017 16:00:33 +0000 (16:00 +0000)]
Revert "Removing ref counting from GrXPFactory."

This reverts commit a8f80de2bc17672b4b6f26d3cf6b38123ac850c9.

Reason for revert: nanobench failing on windows bots, possibly others

Change-Id: Iacb8c650064a28654c165665be057377ffb02ba5
Reviewed-on: https://skia-review.googlesource.com/6802
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoRemoving ref counting from GrXPFactory.
Brian Salomon [Sat, 7 Jan 2017 14:37:13 +0000 (09:37 -0500)]
Removing ref counting from GrXPFactory.

All GrXPFactory instances are static constexpr.

Change-Id: If1086b08534166201e53b3fd9379104e361eb5e6
Reviewed-on: https://skia-review.googlesource.com/6701
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoMark flatennable macros as block beginning/ending in .clang-format
Brian Salomon [Mon, 9 Jan 2017 14:37:06 +0000 (09:37 -0500)]
Mark flatennable macros as block beginning/ending in .clang-format

Change-Id: I08e907cd5051d9f8cd97cdd773f9ff326cc6a0d8
Reviewed-on: https://skia-review.googlesource.com/6739
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoFix SkColorSpaceXform F16 behavior
Matt Sarett [Mon, 9 Jan 2017 14:14:28 +0000 (09:14 -0500)]
Fix SkColorSpaceXform F16 behavior

After changing the matrix representation, we are no longer guaranteed
that the "a" in "rgba" is zeroed in store_f16_1() opaque.

This fixed Gold:
https://gold.skia.org/search?blame=26a0543579cf7473de2099ce0d056ac8aba83811&head=true&include=false&limit=50&neg=false&pos=false&query=source_type%3DcolorImage&unt=true

Also tacked on an optimization.  No need to load alpha when the image
is opaque.

BUG=skia:

Change-Id: I28d80c486b6644eee4a38a7a70f94eb51474e4b0
Reviewed-on: https://skia-review.googlesource.com/6738
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoxbyak -> skia mirror, pin version
Mike Klein [Mon, 9 Jan 2017 13:36:17 +0000 (08:36 -0500)]
xbyak -> skia mirror, pin version

xbyak hasn't changed in a couple weeks, so this pinned version is likely the version all bots are already on.

Change-Id: I050e508f601838015edcb9890214bd7ee1ac1e59
Reviewed-on: https://skia-review.googlesource.com/6737
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agomake SkRBuffer always validate
Mike Reed [Sun, 8 Jan 2017 19:35:29 +0000 (14:35 -0500)]
make SkRBuffer always validate

BUG=skia:6102

Change-Id: Ic9fb259b2e980d00e179340945c50492f1803a4f
Reviewed-on: https://skia-review.googlesource.com/6736
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agomove SkBlitRow.h out of public
Mike Reed [Sun, 8 Jan 2017 15:32:57 +0000 (10:32 -0500)]
move SkBlitRow.h out of public

BUG=skia:

Change-Id: I9a9c04fdb9fcfe50d57b28fa560a9b3d5499b699
Reviewed-on: https://skia-review.googlesource.com/6734
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoUpdate SKP version
UpdateSKPs [Sun, 8 Jan 2017 06:49:05 +0000 (06:49 +0000)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=update-skps@skia.org
NO_MERGE_BUILDS

Change-Id: I65999be80e4fb702abdab31bf70fff21b7284d1e
Reviewed-on: https://skia-review.googlesource.com/6742
Reviewed-by: update-skps <update-skps@skia.org>
Commit-Queue: update-skps <update-skps@skia.org>

7 years agofix to not assign uninitialized array to string
Mike Reed [Sun, 8 Jan 2017 04:08:05 +0000 (23:08 -0500)]
fix to not assign uninitialized array to string

fixes https://skia-review.googlesource.com/c/6727/

BUG=skia:

Change-Id: I8b8f79174ec32a1fa9d17dec4f5c812f70b83fbe
Reviewed-on: https://skia-review.googlesource.com/6731
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoremove SkMemoryWStream -- unused externally
Mike Reed [Sat, 7 Jan 2017 16:16:28 +0000 (11:16 -0500)]
remove SkMemoryWStream -- unused externally

BUG=skia:

Change-Id: Idbc9af4e703238871f56f623cd616fb7a5e686d3
Reviewed-on: https://skia-review.googlesource.com/6727
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoSkXbyak: loop inside, only body
Mike Klein [Sat, 7 Jan 2017 11:09:43 +0000 (06:09 -0500)]
SkXbyak: loop inside, only body

SkXbyak_…
927  …JITCompiled 1x  …Interpreted 1.33x  …HandWritten 1.97x

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I486bbc341a38354345bfcf3d6150d1628f83f186
Reviewed-on: https://skia-review.googlesource.com/6726
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert "Retry "SkRasterPipelineBlitter: support A8"..."
Mike Klein [Sat, 7 Jan 2017 22:04:51 +0000 (22:04 +0000)]
Revert "Retry "SkRasterPipelineBlitter: support A8"..."

This reverts commit f55ea6a1deb21120944d406124a2984b5009260a.

Reason for revert: crbug.com/679147

Original change's description:
> Retry "SkRasterPipelineBlitter: support A8"...
>
>     ...preferring SkA8_Coverage_Blitter over SkRasterPipelineBlitter.
>
> I think we could make this work with SkRasterPipelineBlitter (tell it, draw white in Src mode with this mask), but the existing blitter is pretty hard to beat in efficiency and correctness.
>
> CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
>
>
> Change-Id: I72df9995c63f3334d8111c59711818cb5ed1e63c
> Reviewed-on: https://skia-review.googlesource.com/6627
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
>

TBR=mtklein@chromium.org,brianosman@google.com,reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I6a36b4c087a52e54f4d591ded40e6a202fb77068
Reviewed-on: https://skia-review.googlesource.com/6760
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoremove SkDebugWStream and other cleanups
Mike Reed [Sat, 7 Jan 2017 21:16:02 +0000 (16:16 -0500)]
remove SkDebugWStream and other cleanups

BUG=skia:

Change-Id: I06c07559b24411bd8bc4cba55bd8880f56486f76
Reviewed-on: https://skia-review.googlesource.com/6729
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoFix Sk8f::Store4 (for HSW)
Matt Sarett [Fri, 6 Jan 2017 22:30:55 +0000 (17:30 -0500)]
Fix Sk8f::Store4 (for HSW)

This should fix the colorspacexform gm in Gold.
https://gold.skia.org/search?head=true&include=false&limit=50&neg=false&pos=false&query=name%3Dcolorspacexform%26source_type%3Dgm&unt=true

BUG=skia:

Change-Id: I05e2c2c0e7d7095f6935e60ff1bf89858380335f
Reviewed-on: https://skia-review.googlesource.com/6721
Commit-Queue: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agotry harder to exclude SkXbyak.cpp from Google3 build
Mike Klein [Fri, 6 Jan 2017 21:18:02 +0000 (16:18 -0500)]
try harder to exclude SkXbyak.cpp from Google3 build

Change-Id: I26ce450e00b0634deeda61815ef6d501e788c0ae
Reviewed-on: https://skia-review.googlesource.com/6700
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agozero fBuf in new SkXbyakBench
Mike Klein [Fri, 6 Jan 2017 21:21:53 +0000 (16:21 -0500)]
zero fBuf in new SkXbyakBench

MSAN's keeping me honest...

CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN

Change-Id: If61f75ec919a2b5ae0e973db05760f88588fe18f
Reviewed-on: https://skia-review.googlesource.com/6702
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoMake all GrXPFactory instances statics.
Brian Salomon [Fri, 6 Jan 2017 21:17:50 +0000 (16:17 -0500)]
Make all GrXPFactory instances statics.

Change-Id: I423b821d96d483db8c43a6d5530adbc19cd68912
Reviewed-on: https://skia-review.googlesource.com/6693
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
7 years agoAdd a real SkXbyak bench, implement enough to run it.
Mike Klein [Fri, 6 Jan 2017 19:54:09 +0000 (14:54 -0500)]
Add a real SkXbyak bench, implement enough to run it.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

SkXbyak_…
9320  …JITCompiled 1x  …Interpreted 1.24x  …HandWritten 2.5x

Change-Id: I37d2d255ff32dcce73d29081d506e2d67477af97
Reviewed-on: https://skia-review.googlesource.com/6697
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoexclude src/opts/SkXbyak.cpp from g3 build
Mike Klein [Fri, 6 Jan 2017 19:13:28 +0000 (14:13 -0500)]
exclude src/opts/SkXbyak.cpp from g3 build

Change-Id: I5027275446ab9cc7fc7b12b2236a9d85ac50bef1
Reviewed-on: https://skia-review.googlesource.com/6695
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoAdd in Path fuzzer
Kevin Lubick [Fri, 6 Jan 2017 18:48:19 +0000 (13:48 -0500)]
Add in Path fuzzer

BUG=skia:

Change-Id: Ic8a56448b39bf6a8c6388bffb7f3b7c5ed798a2f
Reviewed-on: https://skia-review.googlesource.com/6692
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Kevin Lubick <kjlubick@google.com>

7 years agoAdd support for 64-bit devices when using gdb on Android
Derek Sollenberger [Fri, 6 Jan 2017 18:13:50 +0000 (13:13 -0500)]
Add support for 64-bit devices when using gdb on Android

Change-Id: I25c230dc7f417f3e09a01011377e6e0c7814092a
Reviewed-on: https://skia-review.googlesource.com/6689
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>

7 years agoPurge clip masks when they are no longer findable.
Brian Salomon [Fri, 6 Jan 2017 18:54:58 +0000 (13:54 -0500)]
Purge clip masks when they are no longer findable.

This improves memory usage when the content contains frequently changing clips implemented as masks.

BUG=chromium:676459

Change-Id: I06ea5f9fe1cff9564ea136bad9fe97f6ecd77ad9
Reviewed-on: https://skia-review.googlesource.com/6629
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoAvoid SkFixed overflow in decal bitmap procs
Florin Malita [Wed, 4 Jan 2017 18:01:55 +0000 (13:01 -0500)]
Avoid SkFixed overflow in decal bitmap procs

The check for decal mode can overflow in SkFixed.  Promote to
64bit (48.16) instead.

Also update can_truncate_to_fixed_for_decal() to take SkFixed params and
used it in ClampX_ClampY_filter_scale_SSE2().

BUG=chromium:675444
R=reed@google.com

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I759464cdaa5c005159e38e32167fb1937e2a1d28
Reviewed-on: https://skia-review.googlesource.com/6538
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>

7 years agoRemove arithmetic mode GrXP code.
Brian Salomon [Fri, 6 Jan 2017 17:54:58 +0000 (12:54 -0500)]
Remove arithmetic mode GrXP code.

The arithmetic mode xfermode is only used as an implementation detail of SkXfermodeImageFilter which always uses the arithmetic FP.

Change-Id: I5f9607aa9731a21e6666d9c749dfa705d40d5775
Reviewed-on: https://skia-review.googlesource.com/6688
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
7 years agoAdd support for tagging GrUniqueKeys with a debug string
Brian Salomon [Fri, 6 Jan 2017 17:04:19 +0000 (12:04 -0500)]
Add support for tagging GrUniqueKeys with a debug string

Change-Id: Ie7d56214fdee7a19a1e8ca3869e5e4d5e72cedf8
Reviewed-on: https://skia-review.googlesource.com/6632
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoSkXbyak basics
Mike Klein [Fri, 6 Jan 2017 17:00:31 +0000 (12:00 -0500)]
SkXbyak basics

A little JIT proof of concept for SkRasterPipeline, using xbyak, which is a header-only assembler.  It's x86-only, but supports x86 very thoroughly, and it's very user friendly (at least as far as assembler libraries go...).

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Ie17e562b0f3fff5914041badfb2c1fe4f86efab8
Reviewed-on: https://skia-review.googlesource.com/5730
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRetry "SkRasterPipelineBlitter: support A8"...
Mike Klein [Fri, 6 Jan 2017 16:30:55 +0000 (11:30 -0500)]
Retry "SkRasterPipelineBlitter: support A8"...

    ...preferring SkA8_Coverage_Blitter over SkRasterPipelineBlitter.

I think we could make this work with SkRasterPipelineBlitter (tell it, draw white in Src mode with this mask), but the existing blitter is pretty hard to beat in efficiency and correctness.

CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I72df9995c63f3334d8111c59711818cb5ed1e63c
Reviewed-on: https://skia-review.googlesource.com/6627
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert "Get latest ANGLE as of January 6, 2017"
Mike Klein [Fri, 6 Jan 2017 17:22:00 +0000 (17:22 +0000)]
Revert "Get latest ANGLE as of January 6, 2017"

This reverts commit 151d3b18fac381bc4d3d3b9017a9673bace889e5.

Reason for revert: broken bots

Original change's description:
> Get latest ANGLE as of January 6, 2017
>
> Also add ANGLE ES3 predefined configs.
>
> BUG=skia:
>
> Change-Id: I28d87b0676395d047e49bbb926db330f76cf17bd
> Reviewed-on: https://skia-review.googlesource.com/6683
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
>

TBR=bsalomon@google.com,brianosman@google.com,reviews@skia.org
BUG=skia:
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I8e893761308044abbeabf52fc8f0fc83d84b98b1
Reviewed-on: https://skia-review.googlesource.com/6687
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoAdd a script and documentation for building the Viewer APK.
Derek Sollenberger [Fri, 6 Jan 2017 16:41:56 +0000 (11:41 -0500)]
Add a script and documentation for building the Viewer APK.

BUG=skia:6009

DOCS_PREVIEW= https://skia.org/?cl=6660

Change-Id: Ibcf0d1e7f3519e703bc74f0329d0ac92110e70ec
Reviewed-on: https://skia-review.googlesource.com/6660
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoGet latest ANGLE as of January 6, 2017
Brian Osman [Fri, 6 Jan 2017 16:26:42 +0000 (11:26 -0500)]
Get latest ANGLE as of January 6, 2017

Also add ANGLE ES3 predefined configs.

BUG=skia:

Change-Id: I28d87b0676395d047e49bbb926db330f76cf17bd
Reviewed-on: https://skia-review.googlesource.com/6683
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoGet Debugger app compiling again
Robert Phillips [Fri, 6 Jan 2017 15:25:56 +0000 (10:25 -0500)]
Get Debugger app compiling again

Change-Id: I307088b2cf4fc1404313f280975ac39105f70ac0
Reviewed-on: https://skia-review.googlesource.com/6604
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Robert Phillips <robertphillips@google.com>

7 years agosimplify by removing _d stages
Mike Klein [Fri, 6 Jan 2017 15:21:56 +0000 (10:21 -0500)]
simplify by removing _d stages

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I75e232faee6ad48f65bac5b119a461280b27bbc8
Reviewed-on: https://skia-review.googlesource.com/6661
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert "Revert "Hard code bicubic coefficients in the shader""
Brian Osman [Fri, 6 Jan 2017 16:13:06 +0000 (16:13 +0000)]
Revert "Revert "Hard code bicubic coefficients in the shader""

This reverts commit b38db9a48db09b233309dca4f0858c1f0976734d.

Reason for revert: Nevermind. The regression was actually a bug fix!

Original change's description:
> Revert "Hard code bicubic coefficients in the shader"
>
> This reverts commit 81ad5f744a775826c0d68bf035e891ae178f89d2.
>
> Reason for revert: Serious regressions on Tegra3, and significant regression on Adreno 530.
>
> Original change's description:
> > Hard code bicubic coefficients in the shader
> >
> > BUG=skia:
> >
> > Change-Id: Ie231a9bd2ea2083005a595e9e426590da740b2ed
> > Reviewed-on: https://skia-review.googlesource.com/6619
> > Reviewed-by: Robert Phillips <robertphillips@google.com>
> > Commit-Queue: Brian Osman <brianosman@google.com>
> >
>
> TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org
> BUG=skia:
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Change-Id: I62b26f2a67e8a245c36bb6098c5cb9fbed21bb8f
> Reviewed-on: https://skia-review.googlesource.com/6630
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
>

TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org,brianosman@google.com
BUG=skia:
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I5d6d59f7079aca53b60472e1add75b319068fa67
Reviewed-on: https://skia-review.googlesource.com/6682
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoBe able to fuzz a directory of input
Kevin Lubick [Fri, 6 Jan 2017 13:26:56 +0000 (08:26 -0500)]
Be able to fuzz a directory of input

BUG=skia:5878

Change-Id: I13552948c86a83f2384b83f59432c11779f305f1
Reviewed-on: https://skia-review.googlesource.com/6528
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert "Hard code bicubic coefficients in the shader"
Brian Osman [Thu, 5 Jan 2017 21:54:25 +0000 (21:54 +0000)]
Revert "Hard code bicubic coefficients in the shader"

This reverts commit 81ad5f744a775826c0d68bf035e891ae178f89d2.

Reason for revert: Serious regressions on Tegra3, and significant regression on Adreno 530.

Original change's description:
> Hard code bicubic coefficients in the shader
>
> BUG=skia:
>
> Change-Id: Ie231a9bd2ea2083005a595e9e426590da740b2ed
> Reviewed-on: https://skia-review.googlesource.com/6619
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
>

TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org
BUG=skia:
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I62b26f2a67e8a245c36bb6098c5cb9fbed21bb8f
Reviewed-on: https://skia-review.googlesource.com/6630
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoRevert "Explicitly fail read/writePixels in invalid color space scenarios"
Brian Osman [Thu, 5 Jan 2017 21:40:16 +0000 (21:40 +0000)]
Revert "Explicitly fail read/writePixels in invalid color space scenarios"

This reverts commit efcc41805b43347444b83c1705d3d60c8d0caa70.

Reason for revert: Possible culprit for Chromium failures.

Original change's description:
> Explicitly fail read/writePixels in invalid color space scenarios
>
> It's not well defined what to do when moving from a nullptr color space to
> a tagged destination (drawing, reading, writing, etc...). In these
> scenarios, at least, we can choose to disallow the operation (rather than
> produce an unexpected or inconsistent result).
>
> BUG=skia:
>
> Change-Id: I033b23c6f2bb00664efc8fdab1b3f52053d77695
> Reviewed-on: https://skia-review.googlesource.com/6600
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Matt Sarett <msarett@google.com>
>

TBR=mtklein@google.com,bsalomon@google.com,msarett@google.com,brianosman@google.com,reviews@skia.org
BUG=skia:
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I17791f9285089ede42b7921324e0dc264865be1d
Reviewed-on: https://skia-review.googlesource.com/6628
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoHard code bicubic coefficients in the shader
Brian Osman [Thu, 5 Jan 2017 20:06:58 +0000 (15:06 -0500)]
Hard code bicubic coefficients in the shader

BUG=skia:

Change-Id: Ie231a9bd2ea2083005a595e9e426590da740b2ed
Reviewed-on: https://skia-review.googlesource.com/6619
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoUse stack instead of malloc() for most calls to SkRasterPipeline::run().
Mike Klein [Thu, 5 Jan 2017 20:03:53 +0000 (15:03 -0500)]
Use stack instead of malloc() for most calls to SkRasterPipeline::run().

Also split bench into run/compile variants to measure the effect:
 Before …f16_compile 1x  …f16_run 1.02x  …srgb_compile 1.56x  …srgb_run 1.61x
 After  …f16_run 1x  …f16_compile 1.01x  …srgb_compile 1.58x  …srgb_run 1.59x

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I8e65fb2acdbb05ccc0b3894f16d7646603c3e74d
Reviewed-on: https://skia-review.googlesource.com/6621
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert "SkRasterPipelineBlitter: support A8"
Mike Klein [Thu, 5 Jan 2017 20:25:46 +0000 (20:25 +0000)]
Revert "SkRasterPipelineBlitter: support A8"

This reverts commit f44373c119290b501d4aec7385e16d12c28a1f0f.

Reason for revert: MSAN

Original change's description:
> SkRasterPipelineBlitter: support A8
>
> This adds support for loading and storing A8, then uses it in SkRasterPipelineBlitter.
>
> I think this handles all dst formats now: A8, 565, 8888 (by policy, sRGB only) and F16.
>
> CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
>
>
> Change-Id: Id207f6e6c56b6bfcc301d77dd23e0959bb7afba8
> Reviewed-on: https://skia-review.googlesource.com/6554
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
>

TBR=mtklein@chromium.org,reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I9ead3c3335e1776e9a1639ca0481253821505d67
Reviewed-on: https://skia-review.googlesource.com/6625
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoSkRasterPipelineBlitter: support A8
Mike Klein [Wed, 4 Jan 2017 21:32:17 +0000 (16:32 -0500)]
SkRasterPipelineBlitter: support A8

This adds support for loading and storing A8, then uses it in SkRasterPipelineBlitter.

I think this handles all dst formats now: A8, 565, 8888 (by policy, sRGB only) and F16.

CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Id207f6e6c56b6bfcc301d77dd23e0959bb7afba8
Reviewed-on: https://skia-review.googlesource.com/6554
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoCleanup ops that are storing GrPipelineOptimizations.
Brian Salomon [Wed, 4 Jan 2017 18:25:17 +0000 (13:25 -0500)]
Cleanup ops that are storing GrPipelineOptimizations.

This is being stored and passed in places where it is unneeded or only 1 or 2 of its flags are needed.

Change-Id: Ifded9e645c0380e792708064ad69449653668acf
Reviewed-on: https://skia-review.googlesource.com/6583
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agomonobench: don't sort the Bench vector while iterating through it...
Mike Klein [Thu, 5 Jan 2017 19:23:57 +0000 (14:23 -0500)]
monobench: don't sort the Bench vector while iterating through it...

We sort to display Bench results in an ascending order, but we're doing this while iterating through the bench vector.  This is probably undefined, and really screws up the sample distribution in practice.  Slow benches run more often.

Instead, copy the results of the benches to a new Result vector to sort and display.  Each bench now gets its fair share of samples.

Change-Id: I4ead0d9d69af271c9971eedb35604a4b3bca0784
Reviewed-on: https://skia-review.googlesource.com/6623
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agomonobench: shuffle benchmark order between samples
Mike Klein [Thu, 5 Jan 2017 19:08:50 +0000 (14:08 -0500)]
monobench: shuffle benchmark order between samples

I had the thought that going through each bench in the same order is a bias we can avoid, however slight.

Change-Id: I2ef1a6f57c4d121883250d65ea2e98ebe834925d
Reviewed-on: https://skia-review.googlesource.com/6622
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRename batch->op in GrAuditTrail json and skiaserver's url handlers
Brian Salomon [Wed, 21 Dec 2016 20:40:26 +0000 (15:40 -0500)]
Rename batch->op in GrAuditTrail json and skiaserver's url handlers

Requires Infra change https://skia-review.googlesource.com/c/6397/

Change-Id: Ic04ea07a0450a99b291f1bc06d4a501d86f65f51
Reviewed-on: https://skia-review.googlesource.com/6398
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoGN: add skia_android_serial and push_$foo targets when it's set
Mike Klein [Thu, 5 Jan 2017 17:20:41 +0000 (12:20 -0500)]
GN: add skia_android_serial and push_$foo targets when it's set

E.g.
    $ ninja -C out push_dm

By default (ninja -C out) everything is built and pushed if skia_android_serial
is set.  Dependencies are tracked, so incremental builds push only executables
that have changed.

Change-Id: I586d81791f5f877b173cf61ed68fa9aab96234d2
Reviewed-on: https://skia-review.googlesource.com/6616
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoclamp to 1.0f in sk_linear_to_srgb_needs_round()
Mike Klein [Thu, 5 Jan 2017 17:23:37 +0000 (12:23 -0500)]
clamp to 1.0f in sk_linear_to_srgb_needs_round()

It's awkward today that it can go a little over 1.0f.
This is already slow, so a clamp won't slow it signficantly.

Change-Id: I9f882804e3ee949d72b7a05ad2cbac51731f6311
Reviewed-on: https://skia-review.googlesource.com/6617
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoMinor fixes for the Linux viewer
Jim Van Verth [Thu, 5 Jan 2017 18:50:49 +0000 (13:50 -0500)]
Minor fixes for the Linux viewer

BUG=skia:6091

Change-Id: Ia954c16610634e34f10bfe4273efc6677ca9563e
Reviewed-on: https://skia-review.googlesource.com/6618
Reviewed-by: Greg Daniel <egdaniel@google.com>
7 years agoignore max curvature at end point
Cary Clark [Thu, 5 Jan 2017 17:08:38 +0000 (12:08 -0500)]
ignore max curvature at end point

When a stroked cubic folds back on itself, the
stroker draws a round join.
If the max curvature is at
the endpoint, skip the join.

R=reed@google.com
BUG=skia:6083

Change-Id: I45e429432fcec311fa1115058515639370fe9a16
Reviewed-on: https://skia-review.googlesource.com/6606
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>

7 years agoExplicitly fail read/writePixels in invalid color space scenarios
Brian Osman [Thu, 5 Jan 2017 15:41:39 +0000 (10:41 -0500)]
Explicitly fail read/writePixels in invalid color space scenarios

It's not well defined what to do when moving from a nullptr color space to
a tagged destination (drawing, reading, writing, etc...). In these
scenarios, at least, we can choose to disallow the operation (rather than
produce an unexpected or inconsistent result).

BUG=skia:

Change-Id: I033b23c6f2bb00664efc8fdab1b3f52053d77695
Reviewed-on: https://skia-review.googlesource.com/6600
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years agoRemove SK_SUPPORT_LEGACY_EVAL_CUBIC-guarded code
Florin Malita [Thu, 5 Jan 2017 16:09:37 +0000 (11:09 -0500)]
Remove SK_SUPPORT_LEGACY_EVAL_CUBIC-guarded code

To land after http://crrev.com/2610923004.

R=caryclark@google.com

Change-Id: I0a748801be06530f98009e977e816c90f1ef5934
Reviewed-on: https://skia-review.googlesource.com/6611
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>

7 years agoUse nullptr to indicate C locale when using xlocale
Brian Salomon [Thu, 5 Jan 2017 15:37:24 +0000 (10:37 -0500)]
Use nullptr to indicate C locale when using xlocale

BUG=chromium:666228

Change-Id: I951102eba2b79ddaa5eb134834471a4a3ec8aed7
Reviewed-on: https://skia-review.googlesource.com/6603
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoAdd tools to support gdb and simpleperf for android executables.
Derek Sollenberger [Thu, 5 Jan 2017 16:39:04 +0000 (11:39 -0500)]
Add tools to support gdb and simpleperf for android executables.

Change-Id: I6e7f41df094ae037538ebd61e40385d7e2e9eb26
Reviewed-on: https://skia-review.googlesource.com/6615
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRemove Perf-Android-Clang-NexusPlayer-CPU-Moorefield-x86-Release-Android.
Ben Wagner [Thu, 5 Jan 2017 16:35:01 +0000 (11:35 -0500)]
Remove Perf-Android-Clang-NexusPlayer-CPU-Moorefield-x86-Release-Android.

BUG=skia:6095

Change-Id: I037aa94b23f22a4a7976b3acaacf25e21464d0f4
Reviewed-on: https://skia-review.googlesource.com/6614
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoGN: add test_app template
Mike Klein [Thu, 5 Jan 2017 15:54:57 +0000 (10:54 -0500)]
GN: add test_app template

This template encapsulates two common features of our test apps:
  - they set testonly, marking them as safe to use testonly libraries
  - they may want instead to be libapp.so on Android.

I plan to follow up to make test_apps push themselves to an Android device when a new argument android_serial is set.

Change-Id: I010d219c14ff6d0cd6a543dd56fd471a67ddb6f1
Reviewed-on: https://skia-review.googlesource.com/6608
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoDelete SkMakeImageFromPixelRef
Matt Sarett [Thu, 5 Jan 2017 14:32:11 +0000 (09:32 -0500)]
Delete SkMakeImageFromPixelRef

There are no callers.

BUG=skia:

Change-Id: Ie743fc61cc0a0ca755d4e3fdab8a5985fa35fbd3
Reviewed-on: https://skia-review.googlesource.com/6598
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years ago-Fast bot upgrades
Mike Klein [Thu, 5 Jan 2017 13:09:57 +0000 (08:09 -0500)]
-Fast bot upgrades

  - GCC -> Clang;
  - Add a Perf bot.

This -Fast mode is a stand-in for "how clients should/do really release code".  Today everyone uses Clang, so we should probably switch this bot too.

I also got interested in how it compares in performance to our ordinary Release build, so I've added a Perf bot.

I did try turning on link-time optimization (much slower build, somewhat faster binary), but that failed at the link step.  Going to save that for later.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-Clang-x86_64-Release-Fast,Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-Fast,Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-Fast

Change-Id: I58e6109f8a89799d80e769316902549131b619cf
Reviewed-on: https://skia-review.googlesource.com/6595
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRemove DMSrcSinkAndroid.
Derek Sollenberger [Thu, 5 Jan 2017 14:50:22 +0000 (09:50 -0500)]
Remove DMSrcSinkAndroid.

This code involves Skia having knowledge of HWUI internals and
causes problems with various build systems.  It is also not
currently being used and is therefore expendable.

Change-Id: I7b6a37fa4c9afcefbc6a957b49e7735da872ff14
Reviewed-on: https://skia-review.googlesource.com/6597
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
7 years agoOmit GPUMemoryTest for GTX1070 Windows Vulkan.
Ben Wagner [Wed, 4 Jan 2017 21:45:26 +0000 (16:45 -0500)]
Omit GPUMemoryTest for GTX1070 Windows Vulkan.

BUG=skia:6092

Change-Id: I820a2da22a1d852091c6a3416e11f90d6f644bc6
Reviewed-on: https://skia-review.googlesource.com/6586
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoMerge SkColorSpaceXform_XYZ and SkColorSpaceXform_Pipeline
Matt Sarett [Wed, 4 Jan 2017 21:54:55 +0000 (16:54 -0500)]
Merge SkColorSpaceXform_XYZ and SkColorSpaceXform_Pipeline

Use the pipeline implementation to handle F32.

This refactor has been broken away from the following mega-CL.
https://skia-review.googlesource.com/c/6260/

Change-Id: I79d8992f8c4a7e4dbf674a78484057a6b7f4f123
Reviewed-on: https://skia-review.googlesource.com/6585
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoDisable clang -Wsigned-enum-bitfield warnings
Matt Sarett [Wed, 4 Jan 2017 22:13:44 +0000 (17:13 -0500)]
Disable clang -Wsigned-enum-bitfield warnings

Full error text:
error: enums in the Microsoft ABI are signed integers by default;
consider giving the enum Properties an unsigned underlying type
to make this code portable [-Werror,-Wsigned-enum-bitfield]

BUG=skia:

Change-Id: I1491dd94c894e383fed401880fc04562140f7a66
Reviewed-on: https://skia-review.googlesource.com/6594
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoadd writePixels to SkBitmap
Mike Reed [Wed, 4 Jan 2017 21:34:31 +0000 (16:34 -0500)]
add writePixels to SkBitmap

BUG=skia:

Change-Id: I6f4db9ddc0364d9785e0f1794d86b73e66845ea9
Reviewed-on: https://skia-review.googlesource.com/6593
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>