platform/upstream/libSkiaSharp.git
8 years agoOptimize RGB16 blitH functions with NEON for ARM platform.
yang.zhang [Thu, 30 Jul 2015 12:37:06 +0000 (05:37 -0700)]
Optimize RGB16 blitH functions with NEON for ARM platform.

Here are some performance resultsi on Nexus 9:
SkRGB16BlitterBlitH_neon:
    +--------+-----------+
    |height  |  C/NEON   |
    +--------+-----------+
    |1       | 0.888531  |
    +--------+-----------+
    |8       | 1.231800  |
    +--------+-----------+
    |18      | 1.073327  |
    +--------+-----------+
    |32      | 1.136991  |
    +--------+-----------+
    |76      | 1.174638  |
    +--------+-----------+
    |85      | 1.188551  |
    +--------+-----------+
    |120     | 1.180261  |
    +--------+-----------+
    |128     | 1.183726  |
    +--------+-----------+
    |512     | 1.220806  |
    +--------+-----------+

BUG=skia:

Review URL: https://codereview.chromium.org/1229673008

8 years agoUpdate SkLightingShader to take a localMatrix
robertphillips [Thu, 30 Jul 2015 12:09:17 +0000 (05:09 -0700)]
Update SkLightingShader to take a localMatrix

W/o this we can't draw lit objects anywhere but the origin.

Review URL: https://codereview.chromium.org/1253223003

8 years agoRemove WEBKIT_VERSION_MIN_REQUIRED and config.h.
bungeman [Wed, 29 Jul 2015 21:46:12 +0000 (14:46 -0700)]
Remove WEBKIT_VERSION_MIN_REQUIRED and config.h.

WebKit style guide (https://www.webkit.org/coding/coding-style.html)
explicitly states:

> All implementation files must #include "config.h" first.
> Header files should never include "config.h".

Also, it isn't currently being used.

TBR=reed@google.com
This just removes unused bits.

Review URL: https://codereview.chromium.org/1256133004

8 years agoDouble free in ~SkPictureData()
fmalita [Wed, 29 Jul 2015 21:40:06 +0000 (14:40 -0700)]
Double free in ~SkPictureData()

On subpicture parsing failures we clean up all fPictureRefs entries
*and* delete the array itself.  But the destructor also deletes the
array => double free.

Alternatively, we can set fPictureCount to the number of successfully
parsed pictures such that the destructor handles all the cleanup.

BUG=515228
R=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/1264503011

8 years agoRemove SK_BUILD_FOR SDL, BREW, and PALM.
bungeman [Wed, 29 Jul 2015 20:37:27 +0000 (13:37 -0700)]
Remove SK_BUILD_FOR SDL, BREW, and PALM.

SDL isn't an OS anyway, it's just a library views can use. Remaining
support for Brew was removed some time ago, and there are currently
no uses of SK_BUILD_FOR_PALM.

Review URL: https://codereview.chromium.org/1268573002

8 years agoMove the last headers. Cross your fingers.
mtklein [Wed, 29 Jul 2015 20:31:22 +0000 (13:31 -0700)]
Move the last headers.  Cross your fingers.

If this doesn't work, one at a time...

BUG=skia:4126

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1255373006

8 years agoMove non-trivial constructors out-of-line.
mtklein [Wed, 29 Jul 2015 20:14:05 +0000 (13:14 -0700)]
Move non-trivial constructors out-of-line.

There is more than one way to skin this SkPathPriv.h cat.

These constructors are large enough that they probably shouldn't have
been inlined like this anyway.

BUG=skia:4126

Review URL: https://codereview.chromium.org/1253963004

8 years agoremove (unnecessary?) call to notifyPixelsChanged
reed [Wed, 29 Jul 2015 19:44:52 +0000 (12:44 -0700)]
remove (unnecessary?) call to notifyPixelsChanged

BUG=skia:

Review URL: https://codereview.chromium.org/1265733002

8 years agoRemove SK_BUILD_FOR_WINCE.
bungeman [Wed, 29 Jul 2015 19:34:25 +0000 (12:34 -0700)]
Remove SK_BUILD_FOR_WINCE.

This hasn't been tested for years, and no one currently knows when it
last worked (if ever). It is doubtful that any of the remaining logic
would even make sense with a modern version of Embedded Compact 2013.

Review URL: https://codereview.chromium.org/1260453008

8 years agoMove LightingShader to effects
robertphillips [Wed, 29 Jul 2015 19:28:04 +0000 (12:28 -0700)]
Move LightingShader to effects

Additionally this CL:

forces the light colors to be opaque
forces the light direction to be normalized
adds a raster implementation
adds a gm

Review URL: https://codereview.chromium.org/1245883003

8 years agoClean up a few includes, introduce iwyu.
bungeman [Wed, 29 Jul 2015 18:49:40 +0000 (11:49 -0700)]
Clean up a few includes, introduce iwyu.

The current include-what-you-use with current clang is much less
noisy and more useful than it has been in the past. This change
introduces a few IWYU directives (which are helpful documentation for
humans as well) and fixes a few sets of includes.

Review URL: https://codereview.chromium.org/1207893002

8 years agoSkImage_Raster's pixels are always immutable.
reed [Wed, 29 Jul 2015 18:44:52 +0000 (11:44 -0700)]
SkImage_Raster's pixels are always immutable.

To make this work, we tag their pixelrefs as temporarily immutable, allowing
ourselves to restore the pixels to mutability only when the image drops away.

This should allow us to wobble back and forth between writing to the Surface
and reading from the Image without a COW, with the Surface seeing mutable
pixels and the Image seeing immutable pixels.

The big idea is, Image doesn't need forever-immutable pixels, it just needs
pixels that are immutable as long as it's alive.

BUG=skia:

patch from issue 804523002 at patchset 40001 (http://crrev.com/804523002#ps40001)

Review URL: https://codereview.chromium.org/1254383006

8 years agobuildbot_spec.py: Include dm_flags and nanobench_flags
borenet [Wed, 29 Jul 2015 18:43:07 +0000 (11:43 -0700)]
buildbot_spec.py: Include dm_flags and nanobench_flags

Eventually I'll want to merge them into this file, but not just yet.

NOTRY=true
BUG=skia:4132

Review URL: https://codereview.chromium.org/1257933003

8 years agobuildbot_spec.py: Add Android/ChromeOS device info, add builder_cfg dict
borenet [Wed, 29 Jul 2015 18:15:42 +0000 (11:15 -0700)]
buildbot_spec.py: Add Android/ChromeOS device info, add builder_cfg dict

NOTRY=true
BUG=skia:4132

Review URL: https://codereview.chromium.org/1269543002

8 years agoMove headers with no dependencies.
mtklein [Wed, 29 Jul 2015 18:10:46 +0000 (11:10 -0700)]
Move headers with no dependencies.

C.f.  https://codereview.chromium.org/1261013003/

BUG=skia:4126

Will follow up with two more CLs if this works:
  - one moving SkRecords.h
  - one moving SkMiniRecorder.h

No public API changes.
TBR=reed@google.com

Committed: https://skia.googlesource.com/skia/+/117842223bd13325b6da26110d80e0590c1a742b

Review URL: https://codereview.chromium.org/1266593002

8 years agoFix for GrAtlasTextContext crash
joshualitt [Wed, 29 Jul 2015 18:10:38 +0000 (11:10 -0700)]
Fix for GrAtlasTextContext crash

BUG=510931

Review URL: https://codereview.chromium.org/1256763005

8 years agoMake SkSwizzler::Fill() support 565
msarett [Wed, 29 Jul 2015 17:37:29 +0000 (10:37 -0700)]
Make SkSwizzler::Fill() support 565

BUG=skia:4135

Review URL: https://codereview.chromium.org/1267543002

8 years agoAdding debug SkScalerContext which returns random mask formats
joshualitt [Wed, 29 Jul 2015 17:14:58 +0000 (10:14 -0700)]
Adding debug SkScalerContext which returns random mask formats

TBR=reed@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1260473004

8 years agoRevert "Move headers with no dependencies."
Mike Klein [Wed, 29 Jul 2015 15:50:09 +0000 (11:50 -0400)]
Revert "Move headers with no dependencies."

This reverts commit 117842223bd13325b6da26110d80e0590c1a742b.

No good:
https://uberchromegw.corp.google.com/i/client.skia/builders/Mac%20Builder/builds/3465/steps/compile/logs/stdio

BUG=skia:4126

Review URL: https://codereview.chromium.org/1262173002 .

8 years agorewrite path.getBounds test to work-around compiler bug
reed [Wed, 29 Jul 2015 15:37:13 +0000 (08:37 -0700)]
rewrite path.getBounds test to work-around compiler bug

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1262143002

8 years agoMove headers with no dependencies.
mtklein [Wed, 29 Jul 2015 15:18:34 +0000 (08:18 -0700)]
Move headers with no dependencies.

C.f.  https://codereview.chromium.org/1261013003/

BUG=skia:4126

Will follow up with two more CLs if this works:
  - one moving SkRecords.h
  - one moving SkMiniRecorder.h

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1266593002

8 years agoupdate C++11 docs
mtklein [Wed, 29 Jul 2015 14:49:40 +0000 (07:49 -0700)]
update C++11 docs

BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/dev/contrib/c++11?cl=1263793002

Review URL: https://codereview.chromium.org/1263793002

8 years agoAdd builder_spec.py
borenet [Wed, 29 Jul 2015 14:38:49 +0000 (07:38 -0700)]
Add builder_spec.py

Works like dm_flags.py and nanobench_flags.py; adds things like
GYP_DEFINES, additional environment variables, and build targets.

Required copying builder_name_schema from the tools/build repo.

BUG=skia:4132

Review URL: https://codereview.chromium.org/1265623002

8 years agofix dstreadshuffle text portable gm
caryclark [Wed, 29 Jul 2015 13:58:40 +0000 (06:58 -0700)]
fix dstreadshuffle text portable gm

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1259093004

8 years agoFix silly mistake in allocating geoms in TextBatch
bsalomon [Wed, 29 Jul 2015 13:54:33 +0000 (06:54 -0700)]
Fix silly mistake in allocating geoms in TextBatch

TBR=joshualitt@google.com

Review URL: https://codereview.chromium.org/1259103004

8 years agoAllow Srcs to veto Sinks based on their broad type.
mtklein [Wed, 29 Jul 2015 13:37:28 +0000 (06:37 -0700)]
Allow Srcs to veto Sinks based on their broad type.

This breaks Sinks down into three auto-detected types:
  - GPU:    anything that requests to be run in the GPU enclave
  - Vector: anything that writes to the stream instead of the bitmap
  - Raster: everything else

Some examples: gpu -> GPU, msaa16 -> GPU, 8888 -> raster, pdf -> vector,
               svg -> vector, pipe-8888 -> raster, tiles_rt-gpu -> GPU

This lets image decoding sinks veto non-raster backends explicitly,
and can let particular GMs veto GPU or non-GPU sinks as they like.

BUG=skia:

Review URL: https://codereview.chromium.org/1239953004

8 years agoSkip temp texture when config conversion test has already failed.
bsalomon [Wed, 29 Jul 2015 13:08:46 +0000 (06:08 -0700)]
Skip temp texture when config conversion test has already failed.

Review URL: https://codereview.chromium.org/1261033005

8 years agomake tests portable by using 565 compatible colors
caryclark [Wed, 29 Jul 2015 12:27:47 +0000 (05:27 -0700)]
make tests portable by using 565 compatible colors

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1262703002

8 years agoDon't read from unref'ed RT in GrContext::readSurfacePixels
bsalomon [Tue, 28 Jul 2015 22:39:45 +0000 (15:39 -0700)]
Don't read from unref'ed RT in GrContext::readSurfacePixels

BUG=chromium:514716

TBR=robertphillips@google.com

Review URL: https://codereview.chromium.org/1258673009

8 years agoMove draw on upload decision in GrGpu
bsalomon [Tue, 28 Jul 2015 20:26:15 +0000 (13:26 -0700)]
Move draw on upload decision in GrGpu

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/0341b4427e5f037e3b501ed6e57dfdb7b40f150e

Review URL: https://codereview.chromium.org/1257073003

8 years agoRevert "Move the rest of src headers used by include to include/private."
Mike Klein [Tue, 28 Jul 2015 20:01:24 +0000 (16:01 -0400)]
Revert "Move the rest of src headers used by include to include/private."

This reverts commit d12e6ffa5cc1c1af47bf73c7c127d8d7f7443058.

Our Chrome roll canaries are failing with the dreaded
Ninja-says-there's-more-work-to-do message.  I will break this up
smaller (if possible) and try again tomorrow.

BUG=skia:4126

Review URL: https://codereview.chromium.org/1258293004 .

8 years agoRevert of Move draw on upload decision in GrGpu (patchset #4 id:50001 of https:/...
bsalomon [Tue, 28 Jul 2015 19:23:26 +0000 (12:23 -0700)]
Revert of Move draw on upload decision in GrGpu (patchset #4 id:50001 of https://codereview.chromium.org/1257073003/)

Reason for revert:
breaking write pixels test on bots

Original issue's description:
> Move draw on upload decision in GrGpu
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/0341b4427e5f037e3b501ed6e57dfdb7b40f150e

TBR=robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1260293004

8 years agogm missed portable text in textblobshader
caryclark [Tue, 28 Jul 2015 18:55:49 +0000 (11:55 -0700)]
gm missed portable text in textblobshader

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1263593004

8 years agoMove the rest of src headers used by include to include/private.
mtklein [Tue, 28 Jul 2015 18:51:50 +0000 (11:51 -0700)]
Move the rest of src headers used by include to include/private.

$ git grep "../../src/" | grep include

now returns nothing.

BUG=skia:4126

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1261013003

8 years agoRemoved GrFragmentProcessor::fWillUseInputColor
wangyix [Tue, 28 Jul 2015 18:47:44 +0000 (11:47 -0700)]
Removed GrFragmentProcessor::fWillUseInputColor

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1259303003

8 years agogm fix missed portable gm text in samplerstress
caryclark [Tue, 28 Jul 2015 18:22:48 +0000 (11:22 -0700)]
gm fix missed portable gm text in samplerstress

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1261093002

8 years agomake pixelsnap textblob* etc gm portable
caryclark [Tue, 28 Jul 2015 17:37:53 +0000 (10:37 -0700)]
make pixelsnap textblob* etc gm portable

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1263553002

8 years agoChange GrDefaultGeoProcFactory to a namespace
joshualitt [Tue, 28 Jul 2015 17:20:08 +0000 (10:20 -0700)]
Change GrDefaultGeoProcFactory to a namespace

BUG=skia:

Review URL: https://codereview.chromium.org/1257333002

8 years agoCleanup GrDefaultGeoProcFactory localCoords
joshualitt [Tue, 28 Jul 2015 17:01:18 +0000 (10:01 -0700)]
Cleanup GrDefaultGeoProcFactory localCoords

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1257193002

8 years agoRename GrInOrderDrawBuffer to GrBufferedDrawTarget
joshualitt [Tue, 28 Jul 2015 16:58:39 +0000 (09:58 -0700)]
Rename GrInOrderDrawBuffer to GrBufferedDrawTarget

BUG=skia:

Review URL: https://codereview.chromium.org/1261033002

8 years agoMove SkTHash.h to include/private.
mtklein [Tue, 28 Jul 2015 16:54:52 +0000 (09:54 -0700)]
Move SkTHash.h to include/private.

include/views/SkOSWindow_Win.h includes it.

To move SkTHash.h to include/private, SkChecksum.h needs to go there too.  To move SkChecksum.h to include/private, SkTLogic needs to go there too.

This adds a bunch of -Iinclude/private to tools.gyp I missed in the last CL.

No public API changes.
TBR=reed@google.com

BUG=skia:4126

Review URL: https://codereview.chromium.org/1260613006

8 years agoFix a stray -Winconsistent-missing-override warning.
mtklein [Tue, 28 Jul 2015 16:35:19 +0000 (09:35 -0700)]
Fix a stray -Winconsistent-missing-override warning.

TBR=

BUG=skia:

Review URL: https://codereview.chromium.org/1261043002

8 years agoMove draw on upload decision in GrGpu
bsalomon [Tue, 28 Jul 2015 16:13:47 +0000 (09:13 -0700)]
Move draw on upload decision in GrGpu

BUG=skia:

Review URL: https://codereview.chromium.org/1257073003

8 years agoadd -Iinclude/private anywhere we have -Isrc/core
mtklein [Tue, 28 Jul 2015 15:55:14 +0000 (08:55 -0700)]
add -Iinclude/private anywhere we have -Isrc/core

I'll be moving headers from src/core to include/private, so this guarantees
that anyone who was finding them via -Isrc/core can now find them via
-Iinclude/private.

This is purely mechanical, mostly to preserve my sanity, so it's likely
(harmless) overkill.

Chromium's GYP and GN builds already set -Iinclude/private for Skia builds.

BUG=skia:4126

Review URL: https://codereview.chromium.org/1265443002

8 years agoupdate presubmit to know about include/private
mtklein [Tue, 28 Jul 2015 15:54:12 +0000 (08:54 -0700)]
update presubmit to know about include/private

BUG=skia:4126

Review URL: https://codereview.chromium.org/1259953004

8 years agoremove all guards for changes to drawBitmapRect / drawImageRect
reed [Tue, 28 Jul 2015 14:35:14 +0000 (07:35 -0700)]
remove all guards for changes to drawBitmapRect / drawImageRect

BUG=skia:

Review URL: https://codereview.chromium.org/1239193002

8 years agochange getBounds to return 0000 iff there are zero points
reed [Tue, 28 Jul 2015 13:00:50 +0000 (06:00 -0700)]
change getBounds to return 0000 iff there are zero points

This is a contract change for SkPath::getBounds(), which formally was defined to return 0,0,0,0 for a 1-point path, regardless of the coordinates of that point. This seems wacky/inconsistent, and was causing other bugs (incorrect bounds) when this was unioned with other rects.

Does anyone remember why we defined it this way?

BUG=513799

Review URL: https://codereview.chromium.org/1261773002

8 years agoFix android_launch_app after Gradle change
borenet [Tue, 28 Jul 2015 13:00:36 +0000 (06:00 -0700)]
Fix android_launch_app after Gradle change

NOTRY=true
TBR=djsollen
BUG=skia:

Review URL: https://codereview.chromium.org/1258253002

8 years agoandroid_install_app: Use lower-cased app name
borenet [Tue, 28 Jul 2015 12:13:41 +0000 (05:13 -0700)]
android_install_app: Use lower-cased app name

NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1261873002

8 years agocompute split conic endpoints exactly
caryclark [Tue, 28 Jul 2015 12:12:19 +0000 (05:12 -0700)]
compute split conic endpoints exactly

The divide by w can generate slightly erroneous results even
for t == 0 or t == 1. The error in turn defeats detecting
a point in common for a pair of curves that travel in
opposite directions.

Instead, special case endpoints when the t is 0 or 1.

TBR=reed@google.com
BUG=514118

Review URL: https://codereview.chromium.org/1259513004

8 years agoPass the destination pointer to next() in SkSwizzler
msarett [Mon, 27 Jul 2015 22:13:17 +0000 (15:13 -0700)]
Pass the destination pointer to next() in SkSwizzler

Per our discussion, we can make the swizzler simpler and more usable
for SkCodec and SkScanlineDecoder by only having a single version of
next() which takes a pointer to the srcRow and a pointer to the
dstRow.

BUG=skia:

Review URL: https://codereview.chromium.org/1256373002

8 years agodocumentation: more API details and examples.
halcanary [Mon, 27 Jul 2015 20:13:03 +0000 (13:13 -0700)]
documentation: more API details and examples.

NOTRY=true
DOCS_PREVIEW= https://skia.org/user/api/skpaint?cl=1240893003

Review URL: https://codereview.chromium.org/1240893003

8 years agoFixing src rect constraint support for drawImage with SkPicture
junov [Mon, 27 Jul 2015 20:11:55 +0000 (13:11 -0700)]
Fixing src rect constraint support for drawImage with SkPicture

Follow-up to https://codereview.chromium.org/1228083004

BUG=skia:

Review URL: https://codereview.chromium.org/1256853004

8 years agoremove pixel assert from ctable validator
reed [Mon, 27 Jul 2015 19:19:16 +0000 (12:19 -0700)]
remove pixel assert from ctable validator

BUG=514143

Review URL: https://codereview.chromium.org/1252973003

8 years agoCleanup Default Geo Proc API
joshualitt [Mon, 27 Jul 2015 19:13:14 +0000 (12:13 -0700)]
Cleanup Default Geo Proc API

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1253393002

8 years agoNo one calls SkXfermode::GetProc16
mtklein [Mon, 27 Jul 2015 19:07:29 +0000 (12:07 -0700)]
No one calls SkXfermode::GetProc16

BUG=skia:

Review URL: https://codereview.chromium.org/1253493002

8 years agoRevert of Lay groundwork for SkOpts. (patchset #3 id:40001 of https://codereview...
mtklein [Mon, 27 Jul 2015 19:03:23 +0000 (12:03 -0700)]
Revert of Lay groundwork for SkOpts. (patchset #3 id:40001 of https://codereview.chromium.org/1255193002/)

Reason for revert:
Chromium doesn't call SkGraphics::Init().  This setup won't work.

Original issue's description:
> Lay groundwork for SkOpts.
>
> This doesn't really do anything yet.  It's just the CPU detection code, skeleton new .cpp files, and a few little .gyp tweaks.
>
> BUG=skia:4117
>
> Committed: https://skia.googlesource.com/skia/+/ce2c5055cee5d5d3c9fc84c1b3eeed4b4d84a827

TBR=djsollen@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4117

Review URL: https://codereview.chromium.org/1261743002

8 years agofix up GrImmediateDrawTarget.cpp
joshualitt [Mon, 27 Jul 2015 18:41:15 +0000 (11:41 -0700)]
fix up GrImmediateDrawTarget.cpp

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1260023003

8 years agoRemove sk_memcpy32
mtklein [Mon, 27 Jul 2015 18:08:28 +0000 (11:08 -0700)]
Remove sk_memcpy32

It's only implemented on x86, where the exisiting benchmark says memcpy() is
faster for all cases:

Timer overhead: 24ns
curr/maxrss    loops    min    median    mean    max    stddev    samples       config    bench
  10/10  MB    1    35.9µs    36.2µs    36.2µs    36.6µs    1%    ▁▂▄▅▅▃█▄▄▅    nonrendering    sk_memcpy32_100000
  10/10  MB    13    2.27µs    2.28µs    2.28µs    2.29µs    0%    █▄▃▅▃▁▃▅▁▄    nonrendering    sk_memcpy32_10000
  11/11  MB    677    91.6ns    95.9ns    94.5ns    99.4ns    3%    ▅▅▅▅▅█▁▁▁▁    nonrendering    sk_memcpy32_1000
  11/11  MB    1171    20ns    20.9ns    21.3ns    23.4ns    6%    ▁▁▇▃▃▃█▇▃▃    nonrendering    sk_memcpy32_100
  11/11  MB    1952    14ns    14ns    14.3ns    15.2ns    3%    ▁▁██▁▁▁▁▁▁    nonrendering    sk_memcpy32_10
  11/11  MB    5    33.6µs    33.7µs    34.1µs    35.2µs    2%    ▆▇█▁▁▁▁▁▁▁    nonrendering    memcpy32_memcpy_100000
  11/11  MB    18    2.12µs    2.22µs    2.24µs    2.39µs    5%    ▂█▄▇█▄▇▁▁▁    nonrendering    memcpy32_memcpy_10000
  11/11  MB    1112    87.3ns    87.3ns    89.1ns    93.7ns    3%    ▄██▄▁▁▁▁▁▁    nonrendering    memcpy32_memcpy_1000
  11/11  MB    2124    12.8ns    13.3ns    13.5ns    14.8ns    6%    ▁▁▁█▃▃█▇▃▃    nonrendering    memcpy32_memcpy_100
  11/11  MB    3077    9ns    9.41ns    9.52ns    10.2ns    4%    ▃█▁█▃▃▃▃▃▃    nonrendering    memcpy32_memcpy_10

(Why?  One fewer thing to port to SkOpts.)

BUG=skia:4117

Review URL: https://codereview.chromium.org/1256763003

8 years agoLay groundwork for SkOpts.
mtklein [Mon, 27 Jul 2015 17:52:33 +0000 (10:52 -0700)]
Lay groundwork for SkOpts.

This doesn't really do anything yet.  It's just the CPU detection code, skeleton new .cpp files, and a few little .gyp tweaks.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1255193002

8 years agoMake peekPixels() usable with raster surface snapshots
fmalita [Mon, 27 Jul 2015 17:27:28 +0000 (10:27 -0700)]
Make peekPixels() usable with raster surface snapshots

SkSurface_Raster snapshots do not lock their backing bitmaps when the
pixel ref is shared - they only lock on deep-copy.

But since for raster surfaces the pixels are always in memory, I think
it would be OK to also lock in the former case.

This allows for optimized (zero-copy) reads of raster surface snapshot
data.

R=reed@google.com

Review URL: https://codereview.chromium.org/1256993002

8 years agoSteal refs from other TextBatch in onCombineIfPossible
bsalomon [Mon, 27 Jul 2015 14:00:00 +0000 (07:00 -0700)]
Steal refs from other TextBatch in onCombineIfPossible

Review URL: https://codereview.chromium.org/1257683004

8 years agoNEON has a ternary instruction.
mtklein [Mon, 27 Jul 2015 13:12:05 +0000 (06:12 -0700)]
NEON has a ternary instruction.

Nothing seems to run any faster or slower, but it is terser.

BUG=skia:

Review URL: https://codereview.chromium.org/1255913004

8 years agoMake allocation count in TextBatch implicit
bsalomon [Mon, 27 Jul 2015 13:12:01 +0000 (06:12 -0700)]
Make allocation count in TextBatch implicit

Review URL: https://codereview.chromium.org/1254903002

8 years agoRemove skia_arch_width, fold into skia_arch_type.
Brian Salomon [Mon, 27 Jul 2015 13:10:36 +0000 (09:10 -0400)]
Remove skia_arch_width, fold into skia_arch_type.
DOCS_PREVIEW= https://skia.org/?cl=1228553010

BUG=skia:4042
R=borenet@google.com, mtklein@google.com

Review URL: https://codereview.chromium.org/1228553010

8 years agoAdded GrGLBlend.h|cpp with helper function AppendPorterDuffBlend() in preparation...
wangyix [Fri, 24 Jul 2015 20:48:26 +0000 (13:48 -0700)]
Added GrGLBlend.h|cpp with helper function AppendPorterDuffBlend() in preparation for SkComposeShader gpu backend

BUG=skia:

Review URL: https://codereview.chromium.org/1254833003

8 years agomixed text blobs really draws LCD
joshualitt [Fri, 24 Jul 2015 20:16:24 +0000 (13:16 -0700)]
mixed text blobs really draws LCD

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1261483002

8 years agoUpdate Android Apps to use gradle
djsollen [Fri, 24 Jul 2015 20:15:58 +0000 (13:15 -0700)]
Update Android Apps to use gradle

This CL replaces ant with gradle for the task of building APKs.
The primary driver of this change is that it now allow us to
develop and test our apps using Android Studio.
DOCS_PREVIEW= https://skia.org/?cl=1215023017

Committed: https://skia.googlesource.com/skia/+/425535f1626932e4e22f61a2571f9c3c2b1c5977

Review URL: https://codereview.chromium.org/1215023017

8 years agorename portable_typeface_always to portable_typeface
caryclark [Fri, 24 Jul 2015 19:09:25 +0000 (12:09 -0700)]
rename portable_typeface_always to portable_typeface

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1257773002

8 years agofix for GrAtlasTextContext occasionally crashes on mixed runs
joshualitt [Fri, 24 Jul 2015 18:24:31 +0000 (11:24 -0700)]
fix for GrAtlasTextContext occasionally crashes on mixed runs

TBR=bsalomon@google.com
BUG=510931

Review URL: https://codereview.chromium.org/1252423002

8 years agomake fontscalar gammatext lcdtext typeface verttext2 gm portable
caryclark [Fri, 24 Jul 2015 18:08:01 +0000 (11:08 -0700)]
make fontscalar gammatext lcdtext typeface verttext2 gm portable

Pass generic font names to tool util function to generate
platform specific fonts and gm test output by unique name.

R=bungeman@google.com

Review URL: https://codereview.chromium.org/1256903002

8 years agoMinimize retrieving SkGlyph in GrTextContext
joshualitt [Fri, 24 Jul 2015 17:37:00 +0000 (10:37 -0700)]
Minimize retrieving SkGlyph in GrTextContext

BUG=skia:

Review URL: https://codereview.chromium.org/1257603005

8 years agoFix Ganesh drawAtlas bug with quad colors
robertphillips [Fri, 24 Jul 2015 17:20:45 +0000 (10:20 -0700)]
Fix Ganesh drawAtlas bug with quad colors

Ganesh was not expanding the quad colors to vertex colors before calling drawVertices.

The new GM would've caught this bug and reveals Ganesh's limitations re the various xfer modes used with drawAtlas (i.e., w/o AA Ganesh only supports kModulate, w/ AA Ganesh only supports the coefficient-based xfer modes).

Review URL: https://codereview.chromium.org/1254943002

8 years agoSet preallocated TextBatch geometries to 4 rather than 32
bsalomon [Fri, 24 Jul 2015 15:10:43 +0000 (08:10 -0700)]
Set preallocated TextBatch geometries to 4 rather than 32

Review URL: https://codereview.chromium.org/1256843003

8 years agoskia: wrong calling convention on eglGetPlatformDisplayEXT
hendrikw [Fri, 24 Jul 2015 13:52:40 +0000 (06:52 -0700)]
skia: wrong calling convention on eglGetPlatformDisplayEXT

When attempting to run the release compile of nanobench on windows, I would
immediately crash due to c++'s buffer security check.

This was caused by calling the function with the wrong calling
convention.  I'm not sure how this ever worked for anyone.

Anyway, fix is to use eglext.h's version of the function definition.

Review URL: https://codereview.chromium.org/1250383002

8 years agomake dftext gm not overlap itself
caryclark [Thu, 23 Jul 2015 21:07:58 +0000 (14:07 -0700)]
make dftext gm not overlap itself

TBR=jvanverth@google.com

Review URL: https://codereview.chromium.org/1253643004

8 years agomake fontcache textblob gm portable
caryclark [Thu, 23 Jul 2015 20:48:31 +0000 (13:48 -0700)]
make fontcache textblob gm portable

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1245123006

8 years agofix path ops fuzz buster
caryclark [Thu, 23 Jul 2015 19:40:22 +0000 (12:40 -0700)]
fix path ops fuzz buster

Mark collapsed segments as done and remove collapsed
segment references from the coincidence array.

Also add test names to global debugging.

R=fmalita@chromium.org
BUG=512592

Review URL: https://codereview.chromium.org/1250293002

8 years agomake dftext the same on Linux and Android
caryclark [Thu, 23 Jul 2015 19:38:59 +0000 (12:38 -0700)]
make dftext the same on Linux and Android

Use the same font sizes on both platforms so that the gm images
are easier to compare one to the other.

TBR=jvanverth@google.com

Review URL: https://codereview.chromium.org/1253573006

8 years agoRemove test of illegal behavior that modifies a texture backing an SkImage.
bsalomon [Thu, 23 Jul 2015 19:22:19 +0000 (12:22 -0700)]
Remove test of illegal behavior that modifies a texture backing an SkImage.

Review URL: https://codereview.chromium.org/1244143004

8 years agoFix Android x86 compile on mac
msarett [Thu, 23 Jul 2015 18:57:13 +0000 (11:57 -0700)]
Fix Android x86 compile on mac

It appears I failed to fully disable it on the first attempt.

BUG=skia:

Review URL: https://codereview.chromium.org/1249083004

8 years agoSkia: ANGLE Roll
hendrikw [Thu, 23 Jul 2015 18:56:40 +0000 (11:56 -0700)]
Skia: ANGLE Roll

Includes fix for vertex index.

BUG=510585

Review URL: https://codereview.chromium.org/1246143005

8 years agofix typeface leak
caryclark [Thu, 23 Jul 2015 18:52:01 +0000 (11:52 -0700)]
fix typeface leak

TBR=bungeman@google.com

Review URL: https://codereview.chromium.org/1239303003

8 years agoFix ImageNewSurface test on S4.
bsalomon [Thu, 23 Jul 2015 18:45:02 +0000 (11:45 -0700)]
Fix ImageNewSurface test on S4.

This still leaves the SkImage_NewFromTexture broken.

Review URL: https://codereview.chromium.org/1253513004

8 years agoFix variable shadowing in SkMorphologyImageFilter
robertphillips [Thu, 23 Jul 2015 18:35:08 +0000 (11:35 -0700)]
Fix variable shadowing in SkMorphologyImageFilter

Review URL: https://codereview.chromium.org/1245883005

8 years agoUpdate fallback rsqrt implementation to use optimal constants.
jvanverth [Thu, 23 Jul 2015 18:14:29 +0000 (11:14 -0700)]
Update fallback rsqrt implementation to use optimal constants.

Improves max relative error from 0.00175126 to 0.000650197.
Also add unit tests to check error bounds.

BUG=chromium:511458

Review URL: https://codereview.chromium.org/1251423002

8 years agofix comment on GrBatchTextStrike
joshualitt [Thu, 23 Jul 2015 17:58:48 +0000 (10:58 -0700)]
fix comment on GrBatchTextStrike

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1252783002

8 years agofix typo
caryclark [Thu, 23 Jul 2015 16:11:58 +0000 (09:11 -0700)]
fix typo

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1245993003

8 years agoHave Windows use _mm_rsqrt_ss too.
mtklein [Thu, 23 Jul 2015 15:37:02 +0000 (08:37 -0700)]
Have Windows use _mm_rsqrt_ss too.

Tidy up a little while I'm in here:
  1) SIMD headers are now included by SkTypes.h as appropriate.
  2) _mm_cvtss_f32() is pithier and generates the same code.

Looks like this is the only code checking for SSE wrong.  After this CL:
    ~/skia (sse) $ git grep __SSE
    include/core/SkPreConfig.h:    #if defined(__SSE4_2__)
    include/core/SkPreConfig.h:    #elif defined(__SSE4_1__)
    include/core/SkPreConfig.h:    #elif defined(__SSE3__)
    include/core/SkPreConfig.h:    #elif defined(__SSE2__)
every other check is in SkPreConfig.h where it belongs.

This is going to affect some GMs subtly on Windows.

BUG=chromium:511458

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1248503004

8 years agoSmall tweak to TextBlobCacheTest
joshualitt [Thu, 23 Jul 2015 15:30:25 +0000 (08:30 -0700)]
Small tweak to TextBlobCacheTest

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1251383003

8 years agofix memory leak in TextBlobCacheTest
joshualitt [Thu, 23 Jul 2015 15:09:35 +0000 (08:09 -0700)]
fix memory leak in TextBlobCacheTest

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1252593002

8 years agoAttempt to somewhat simplify GrContext::readSurfacePixels interaction with GrGpu.
bsalomon [Thu, 23 Jul 2015 15:07:21 +0000 (08:07 -0700)]
Attempt to somewhat simplify GrContext::readSurfacePixels interaction with GrGpu.

Review URL: https://codereview.chromium.org/1255483005

8 years agoFix formatting in the CQ keywords markdown
rmistry [Thu, 23 Jul 2015 15:02:13 +0000 (08:02 -0700)]
Fix formatting in the CQ keywords markdown

BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1247323002
TBR=jcgregorio

Review URL: https://codereview.chromium.org/1247323002

8 years agoName of primitive processor will now be printed in generated shader code
wangyix [Thu, 23 Jul 2015 15:02:09 +0000 (08:02 -0700)]
Name of primitive processor will now be printed in generated shader code

BUG=skia:

Review URL: https://codereview.chromium.org/1253513003

8 years agoRevert "Update Android Apps to use gradle"
joshualitt [Thu, 23 Jul 2015 15:00:33 +0000 (08:00 -0700)]
Revert "Update Android Apps to use gradle"

This reverts commit 425535f1626932e4e22f61a2571f9c3c2b1c5977.

NOTRY=true
NOTREECHECKS=true
TBR=djsollen@google.com
BUG=skia:
DOCS_PREVIEW= https://skia.org/?cl=1250233002

Review URL: https://codereview.chromium.org/1250233002

8 years agoAdded GrGLFragmentProcessor::EmitArgs struct for use with emitCode()
wangyix [Wed, 22 Jul 2015 22:08:53 +0000 (15:08 -0700)]
Added GrGLFragmentProcessor::EmitArgs struct for use with emitCode()

BUG=skia:

Review URL: https://codereview.chromium.org/1251173002

8 years agoAdd skia_use_android_framework_defines GYP_DEFINE
borenet [Wed, 22 Jul 2015 20:29:25 +0000 (13:29 -0700)]
Add skia_use_android_framework_defines GYP_DEFINE

BUG=skia:4082

Review URL: https://codereview.chromium.org/1243383002

8 years agoMisc cleanup
robertphillips [Wed, 22 Jul 2015 18:54:44 +0000 (11:54 -0700)]
Misc cleanup

This is split off of https://codereview.chromium.org/1225923010/ (Start tightening correspondence betweeen GrDrawContext and GrRenderTarget). It:

fixes some style nits
replaces some passing of GrContext with GrTextureProvider & GrDrawContext
does a bit of the finer grained creation of GrDrawContexts

Review URL: https://codereview.chromium.org/1245183002

8 years agoUpdate Android Apps to use gradle
djsollen [Wed, 22 Jul 2015 18:33:24 +0000 (11:33 -0700)]
Update Android Apps to use gradle

This CL replaces ant with gradle for the task of building APKs.
The primary driver of this change is that it now allow us to
develop and test our apps using Android Studio.
DOCS_PREVIEW= https://skia.org/?cl=1215023017

Review URL: https://codereview.chromium.org/1215023017

8 years agoFix up textblobcachetest
joshualitt [Wed, 22 Jul 2015 18:00:32 +0000 (11:00 -0700)]
Fix up textblobcachetest

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1250003003