platform/upstream/libSkiaSharp.git
9 years agoRefactor separable varying location info to be stored in GrGLProgram subclass
kkinnunen [Tue, 30 Jun 2015 06:01:28 +0000 (23:01 -0700)]
Refactor separable varying location info to be stored in GrGLProgram subclass

Refactor separable varying location info to be stored in GrGLProgram
subclass GrGLProgram instead of storing it in GrGLPathProcessor.

Separable varyings are exactly analoguous to uniforms: they are inputs
to the shader program. Shader compile-time information about uniforms is gathered to
GrGLProgramBuilder. This information is the converted to link-time
information, uniform locations, when constructing the program. Separable
varyings need to have same lifetime model.

This is needed in the future to support path rendering in Chromium. The
Chromium pseudo-extension will expose program fragment input binding
function similar to uniform binding function. Thus the separable varying
locations need to be decided and bound before link, e.g. before
GrGLProgram is created. This will be achieved in further patches by
overloading GrGLProgramBuilder::bindProgramResourceLocations() in
GrGLNvprProgramBuilder.

BUG=chromium:344330

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

9 years agoHide NVPR text behind distance field flag
cdalton [Mon, 29 Jun 2015 21:15:19 +0000 (14:15 -0700)]
Hide NVPR text behind distance field flag

TODO: Rename the distance field flag to be more general.

BUG=skia:

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

9 years agoRemove old iOS porting files.
bungeman [Mon, 29 Jun 2015 21:12:41 +0000 (14:12 -0700)]
Remove old iOS porting files.

These files do not appear to be used, are unfinished, and should be
redundant with the mac porting files.

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

9 years agoaugment surface tests to check legacy genID
reed [Mon, 29 Jun 2015 21:09:41 +0000 (14:09 -0700)]
augment surface tests to check legacy genID

BUG=skia:

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

9 years agoMake nanobench zoom animation time based
cdalton [Mon, 29 Jun 2015 21:06:10 +0000 (14:06 -0700)]
Make nanobench zoom animation time based

BUG=skia:

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

9 years agoImplement shared locks in the style of pthread's rwlock.
herb [Mon, 29 Jun 2015 20:46:55 +0000 (13:46 -0700)]
Implement shared locks in the style of pthread's rwlock.

BUG=skia:

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

9 years agoAdd script for triggering Cluster Telemetry jobs using local scripts
borenet [Mon, 29 Jun 2015 19:54:25 +0000 (12:54 -0700)]
Add script for triggering Cluster Telemetry jobs using local scripts

BUG=skia:3979

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

9 years agoSoftLight with SkPMFloat
mtklein [Mon, 29 Jun 2015 19:16:26 +0000 (12:16 -0700)]
SoftLight with SkPMFloat

SSE speeds up about 4.5x over existing integer SSE,
NEON speeds up about 3x over serial integer code.

We expect 1-2 bit component diffs in the usual GMs.

Still guarded by SK_SUPPORT_LEGACY_XFERMODES,
which I'll now try to lift in Chrome.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/3e47d49b46b3ab62071218ef3dd44642c9713e04

CQ_EXTRA_TRYBOTS=client.skia:Test-ChromeOS-GCC-Daisy-CPU-NEON-Arm7-Debug-Trybot

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

9 years agoEdges matter, part 2.
mtklein [Mon, 29 Jun 2015 19:04:10 +0000 (12:04 -0700)]
Edges matter, part 2.

Affected modes: lighten, hard-light, overlay (== hard-light).
This fixes a couple places where I used < when I should have used <=,
or swapped the logic as I've done here.

Caught by layout tests; our tests should be unchanged.
https://storage.googleapis.com/chromium-layout-test-archives/linux_blink_rel/68935/layout-test-results/css3/blending/background-blend-mode-crossfade-image-gradient-diffs.html

BUG=skia:

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

9 years agodon't fix winding for empty paths
caryclark [Mon, 29 Jun 2015 18:41:52 +0000 (11:41 -0700)]
don't fix winding for empty paths

A path can be non-empty but become empty when it is simplified.
For instance, a path with the same rectangle, twice, with opposite
windings.

No contours are created for empty paths, so don't try to
fix their winding direction.

Additionally, check for a NULL coincidence since the
OpBuilder assumes that no concidence edges can be present
after the paths are simplified. This code should not get
called, but it's worth the future-proofing to check.

R=fmalita@chromium.org
BUG=502792

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

9 years agoRevert of Switch SkJpegCode to libjpeg-turbo (patchset #25 id:680001 of https://coder...
msarett [Mon, 29 Jun 2015 17:30:59 +0000 (10:30 -0700)]
Revert of Switch SkJpegCode to libjpeg-turbo (patchset #25 id:680001 of https://codereview.chromium.org/1180983002/)

Reason for revert:
yasm is leaking memory :(.

https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN/builds/926/steps/build%20dm/logs/stdio

Original issue's description:
> Add libjpeg-turbo library (depends on yasm)
> Mangle external function names to avoid conflict with libjpeg
> Take advantage of direct color conversion (RGBA, BGRA, 565)
> Prepare to use jpeg_skip_scanlines (when it is upstreamed)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d
>
> Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5

TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

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

9 years agoAdd libjpeg-turbo library (depends on yasm)
msarett [Mon, 29 Jun 2015 17:14:11 +0000 (10:14 -0700)]
Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

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

9 years agoAdding binary for yasm on x86 android devices
Matt Sarett [Mon, 29 Jun 2015 16:50:38 +0000 (12:50 -0400)]
Adding binary for yasm on x86 android devices

9 years agoRevert of SoftLight with SkPMFloat (patchset #6 id:100001 of https://codereview.chrom...
mtklein [Mon, 29 Jun 2015 16:37:29 +0000 (09:37 -0700)]
Revert of SoftLight with SkPMFloat (patchset #6 id:100001 of https://codereview.chromium.org/1221493002/)

Reason for revert:
xfermodes and xfermodes2 show major diffs on Nexus 5 and Daisy (both ARMv7 w/NEON).  Nexus 9 and SSE all look fine...

Original issue's description:
> SoftLight with SkPMFloat
>
> SSE speeds up about 4.5x over existing integer SSE,
> NEON speeds up about 3x over serial integer code.
>
> We expect 1-2 bit component diffs in the usual GMs.
>
> Still guarded by SK_SUPPORT_LEGACY_XFERMODES,
> which I'll now try to lift in Chrome.
>
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3e47d49b46b3ab62071218ef3dd44642c9713e04

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

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

9 years agoremove premature discard optimization
reed [Mon, 29 Jun 2015 16:00:20 +0000 (09:00 -0700)]
remove premature discard optimization

BUG=skia:

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

9 years agoSoftLight with SkPMFloat
mtklein [Mon, 29 Jun 2015 15:40:30 +0000 (08:40 -0700)]
SoftLight with SkPMFloat

SSE speeds up about 4.5x over existing integer SSE,
NEON speeds up about 3x over serial integer code.

We expect 1-2 bit component diffs in the usual GMs.

Still guarded by SK_SUPPORT_LEGACY_XFERMODES,
which I'll now try to lift in Chrome.

BUG=skia:

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

9 years agoadd getTextureHandle to SkSurface
reed [Mon, 29 Jun 2015 14:37:01 +0000 (07:37 -0700)]
add getTextureHandle to SkSurface

BUG=485243

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

9 years agoFix for valgrind use of uninitialized variable
joshualitt [Mon, 29 Jun 2015 13:58:06 +0000 (06:58 -0700)]
Fix for valgrind use of uninitialized variable

TBR=bsalomon@google.com
BUG=skia:

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

9 years agoUpdate SKP version
skia.buildbots [Sun, 28 Jun 2015 07:19:12 +0000 (00:19 -0700)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

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

9 years agoBenchmark to test native perf of GL Instanced Ararys
joshualitt [Fri, 26 Jun 2015 21:20:41 +0000 (14:20 -0700)]
Benchmark to test native perf of GL Instanced Ararys

BUG=skia:

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

9 years agoDon't suppress nanobench output table in verbose mode
cdalton [Fri, 26 Jun 2015 20:32:53 +0000 (13:32 -0700)]
Don't suppress nanobench output table in verbose mode

Changes verbose mode to print both the table and the individual sample
values. No need to hold back information in verbose mode.

BUG=skia:

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

9 years agoadd drawArraysInstanced to caps
joshualitt [Fri, 26 Jun 2015 19:46:36 +0000 (12:46 -0700)]
add drawArraysInstanced to caps

BUG=skia:

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

9 years agoMake SkPaint::glyphsToUnichars use explicit SkSurfaceProps
robertphillips [Fri, 26 Jun 2015 19:17:59 +0000 (12:17 -0700)]
Make SkPaint::glyphsToUnichars use explicit SkSurfaceProps

BUG=skia:3984,skia:3934

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

9 years agoremove SkInstCnt
mtklein [Fri, 26 Jun 2015 18:45:03 +0000 (11:45 -0700)]
remove SkInstCnt

It's been outclassed by Valgrind and leak sanitizer,
and it seems to be causing problems for external folks building Skia.

I'm not sure why our own builds seem unaffected.

Latest thread:
https://groups.google.com/forum/#!topic/skia-discuss/oj9FsQwwSF0

BUG=skia:

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

9 years agoKill mixedxfermodes
mtklein [Fri, 26 Jun 2015 18:43:30 +0000 (11:43 -0700)]
Kill mixedxfermodes

It's too random to be helpful.

BUG=skia:

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

9 years agoTurn off buffer mapping in Chromium
bsalomon [Fri, 26 Jun 2015 18:38:25 +0000 (11:38 -0700)]
Turn off buffer mapping in Chromium

BUG=chromium:496224

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

9 years agoAdd extra braces for uintNNxMx4_t initializers.
mtklein [Fri, 26 Jun 2015 18:10:28 +0000 (11:10 -0700)]
Add extra braces for uintNNxMx4_t initializers.

These structs are always implemented as
    struct uintNNxMx4_t {
        uintNNxM val[4];
    };
So, the first set of braces is for the struct, the second for val.

BUG=skia:

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

9 years agoAndroid scripts now notify gyp that your building with clang
djsollen [Fri, 26 Jun 2015 18:03:56 +0000 (11:03 -0700)]
Android scripts now notify gyp that your building with clang

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

9 years agoColor dodge and burn with SkPMFloat.
mtklein [Fri, 26 Jun 2015 17:46:31 +0000 (10:46 -0700)]
Color dodge and burn with SkPMFloat.

Both 25-35% faster with SSE.
With NEON, Burn measures as a ~10% regression, Dodge a huge 2.9x improvement.

The Burn regression is somewhat artificial: we're drawing random colored rects onto an opaque white dst, so we're heavily biased toward the (d==da) fast path in the serial code.  In the vector code there's no short-circuiting and we always pay a fixed cost for ColorBurn regardless of src or dst content.

Dodge's fast paths, in contrast, only trigger when (s==sa) or (d==0), neither of which happens any more than randomly in our benchmark.  I don't think (d==0) should happen at all.  Similarly, the (s==0) Burn fast path is really only going to happen as often as SkRandom allows.

In practice, the existing Burn benchmark is hitting its fast path 100% of the time.  So I actually feel really great that this only dings the benchmark by 10%.

Chrome's still guarded by SK_SUPPORT_LEGACY_XFERMODES, which I'll lift after finishing the last xfermode, SoftLight.

BUG=skia:

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

9 years agoRevert of Revert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 of https...
reed [Fri, 26 Jun 2015 17:23:07 +0000 (10:23 -0700)]
Revert of Revert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 of https://codereview.chromium.org/1203983003/)

Reason for revert:
fixes have landed in android

Original issue's description:
> Revert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 of https://codereview.chromium.org/1200323005/)
>
> Reason for revert:
> Breaking the Android build.
>
> Original issue's description:
> > remove SK_SUPPORT_LEGACY_PATHOP_ENUMS
> >
> > BUG=skia:
> > TBR=
> >
> > Committed: https://skia.googlesource.com/skia/+/8bcc7a00febd737f7e82513bd5e4a697526626de
>
> TBR=reed@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/ba9a4aa8550c982c480d03cb6ba2cabaf6209b41

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

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

9 years agoFix nanobench to reset gl/gr context after every config run.
egdaniel [Fri, 26 Jun 2015 15:12:46 +0000 (08:12 -0700)]
Fix nanobench to reset gl/gr context after every config run.

BUG=skia:

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

9 years agoFix SkTileImageFilter clipping/cropRect interaction issue
robertphillips [Fri, 26 Jun 2015 15:07:39 +0000 (08:07 -0700)]
Fix SkTileImageFilter clipping/cropRect interaction issue

BUG=499499

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

9 years agoadd/fix copyrights
reed [Fri, 26 Jun 2015 14:26:19 +0000 (07:26 -0700)]
add/fix copyrights

BUG=skia:
TBR=

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

9 years agoRevert of Revert of added stroking support to GrAALinearizingConvexPathRenderer ...
fmalita [Fri, 26 Jun 2015 14:18:24 +0000 (07:18 -0700)]
Revert of Revert of added stroking support to GrAALinearizingConvexPathRenderer (patchset #1 id:1 of https://codereview.chromium.org/1212833002/)

Reason for revert:
Manual roll is in: https://codereview.chromium.org/1212373002

Let's re-land this.

Original issue's description:
> Revert of added stroking support to GrAALinearizingConvexPathRenderer (patchset #6 id:100001 of https://codereview.chromium.org/1180903006/)
>
> Reason for revert:
> speculative revert to try to fix DEPS roll (layouttests)
>
> Original issue's description:
> > added stroking support to GrAALinearizingConvexPathRenderer
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/2436f191e6602953b32a51cf50f2d7a4e2af90fd
>
> TBR=bsalomon@google.com,robertphillips@google.com,ethannicholas@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/9730f4a663534009d216c2f6d834bd534dd44a3d

TBR=bsalomon@google.com,robertphillips@google.com,ethannicholas@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

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

9 years agoRevert of added stroking support to GrAALinearizingConvexPathRenderer (patchset ...
reed [Fri, 26 Jun 2015 12:06:43 +0000 (05:06 -0700)]
Revert of added stroking support to GrAALinearizingConvexPathRenderer (patchset #6 id:100001 of https://codereview.chromium.org/1180903006/)

Reason for revert:
speculative revert to try to fix DEPS roll (layouttests)

Original issue's description:
> added stroking support to GrAALinearizingConvexPathRenderer
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/2436f191e6602953b32a51cf50f2d7a4e2af90fd

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

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

9 years agoRevert of Revert of Return GrGLContext from GrTestTarget (patchset #1 id:1 of https...
reed [Fri, 26 Jun 2015 04:29:25 +0000 (21:29 -0700)]
Revert of Revert of Return GrGLContext from GrTestTarget (patchset #1 id:1 of https://codereview.chromium.org/1211123004/)

Reason for revert:
un-referting, did not help DEPS roll

Original issue's description:
> Revert of Return GrGLContext from GrTestTarget (patchset #3 id:40001 of https://codereview.chromium.org/1207393002/)
>
> Reason for revert:
> speculative revert to unblock DEPS roll (layout-tests)
>
> Original issue's description:
> > Return GrGLContext from GrTestTarget
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/b6d93ea428ca5d13641c35faca7d0380980a3a17
>
> TBR=bsalomon@google.com,joshualitt@google.com,joshualitt@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/1852ec2b46a2a0efbb3550ff4d8b640f56a810e9

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

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

9 years agoAdd samplingTime mode to nanobench
cdalton [Fri, 26 Jun 2015 02:17:08 +0000 (19:17 -0700)]
Add samplingTime mode to nanobench

Adds a nanobench mode that takes samples for a fixed amount of time,
rather than taking a fixed amount of samples.

BUG=skia:

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

9 years agoRevert of Return GrGLContext from GrTestTarget (patchset #3 id:40001 of https://coder...
reed [Fri, 26 Jun 2015 01:59:32 +0000 (18:59 -0700)]
Revert of Return GrGLContext from GrTestTarget (patchset #3 id:40001 of https://codereview.chromium.org/1207393002/)

Reason for revert:
speculative revert to unblock DEPS roll (layout-tests)

Original issue's description:
> Return GrGLContext from GrTestTarget
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b6d93ea428ca5d13641c35faca7d0380980a3a17

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

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

9 years agoimplement drawAtlas natively on gpu-device
reed [Thu, 25 Jun 2015 23:25:25 +0000 (16:25 -0700)]
implement drawAtlas natively on gpu-device

BUG=skia:

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

9 years agoReturn GrGLContext from GrTestTarget
joshualitt [Thu, 25 Jun 2015 22:02:22 +0000 (15:02 -0700)]
Return GrGLContext from GrTestTarget

BUG=skia:

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

9 years agoadded stroking support to GrAALinearizingConvexPathRenderer
ethannicholas [Thu, 25 Jun 2015 21:42:34 +0000 (14:42 -0700)]
added stroking support to GrAALinearizingConvexPathRenderer

BUG=skia:

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

9 years agofix up virtual / override stuff
reed [Thu, 25 Jun 2015 21:26:11 +0000 (14:26 -0700)]
fix up virtual / override stuff

BUG=skia:

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

9 years agoadd drawImageNine
reed [Thu, 25 Jun 2015 19:32:03 +0000 (12:32 -0700)]
add drawImageNine
this also exposes nine-patch drawing directly to devices, and creates a shared iterator for unrolling a nine-patch into single rect->rect draws.

BUG=skia:

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

9 years agoAdd loopSKP flag to nanobench
cdalton [Thu, 25 Jun 2015 17:51:56 +0000 (10:51 -0700)]
Add loopSKP flag to nanobench

Adds a loopSKP flag that forces SKPBenches to draw with only 1 loop.

BUG=skia:

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

9 years agoWhat did we learn today? 255 != 256
mtklein [Thu, 25 Jun 2015 17:26:46 +0000 (10:26 -0700)]
What did we learn today?  255 != 256

vcvt_n_f32_u32 and _u32_f32 work in power-of-2 fixed point, so (...,8)
meant 'please multiply or divide by 256'.  We need to use 255.  :(

BUG=skia:

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

9 years agoConvert SkPMFloat to [0,1] range and prune its API.
mtklein [Thu, 25 Jun 2015 15:56:28 +0000 (08:56 -0700)]
Convert SkPMFloat to [0,1] range and prune its API.

Now that Sk4px exists, there's a lot less sense in eeking out every
cycle of speed from SkPMFloat: if we need to go _really_ fast, we
should use Sk4px.  SkPMFloat's going to be used for things that are
already slow: large-range intermediates, divides, sqrts, etc.

A [0,1] range is easier to work with, and can even be faster if we
eliminate enough *255 and *1/255 steps.  This is particularly true
on ARM, where NEON can do the *255 and /255 steps for us while
converting float<->int.

We have lots of experimental SkPMFloat <-> SkPMColor APIs that
I'm now removing.  Of the existing APIs, roundClamp() is the sanest,
so I've kept only that, now called round().  The 4-at-a-time APIs
never panned out, so they're gone.

There will be small diffs on:
colormatrix coloremoji colorfilterimagefilter fadefilter imagefilters_xfermodes imagefilterscropexpand imagefiltersgraph tileimagefilter

BUG=skia:

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

9 years agoRevert of Cleanup legacy NVPR-related definitions (patchset #3 id:40001 of https...
fmalita [Thu, 25 Jun 2015 15:42:24 +0000 (08:42 -0700)]
Revert of Cleanup legacy NVPR-related definitions (patchset #3 id:40001 of https://codereview.chromium.org/1177243004/)

Reason for revert:
Broke the GPU SAN bots: https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-Golo-GPU-GT610-x86_64-Debug-ASAN/builds/779/steps/dm/logs/stdio

Original issue's description:
> Cleanup legacy NVPR-related definitions
>
> Fixed-function NVPR codepaths were removed a while ago. Only NVPR API
> version 1.3 (PathFragmentInputGen) was left working. Remove
> backwards-compatibility code that was left behind.
>
> Remove some NVPR API function typedefs that were left from initial
> commits.
>
> Remove PathCoords function pointer from GrGLInterface, it has
> never been called and causes problems in the future, since it will
> not be implemented in the Chromium pseudo extension.
>
> Committed: https://skia.googlesource.com/skia/+/fb8d6884e0e01d0c2f8596adf5af1efb0d08de7e

TBR=joshualitt@google.com,cdalton@nvidia.com,bsalomon@google.com,kkinnunen@nvidia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

9 years agoFix link error when running `make tools` with skia_shared_lib=1
borenet [Thu, 25 Jun 2015 15:05:19 +0000 (08:05 -0700)]
Fix link error when running `make tools` with skia_shared_lib=1

I'm getting this error, which is fixed by this change:

[75/76] LINK skpdiff
FAILED: c++ -m64 -pie -Wl,-rpath=\$ORIGIN/lib/ -Wl,-rpath-link=lib/ -o skpdiff -Wl,--start-group obj/tools/skpdiff/skpdiff.skpdiff_main.o obj/tools/skpdiff/skpdiff.SkDiffContext.o obj/tools/skpdiff/skpdiff.SkImageDiffer.o obj/tools/skpdiff/skpdiff.SkPMetric.o obj/tools/skpdiff/skpdiff.skpdiff_util.o obj/tools/skpdiff/skpdiff.SkDifferentPixelsMetric_cpu.o obj/gyp/libflags.a obj/gyp/libpicture_utils.a -Wl,--end-group lib/libskia.so -lrt -lz
/usr/bin/ld: obj/tools/skpdiff/skpdiff.SkDiffContext.o: undefined reference to symbol 'pthread_mutexattr_settype@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

BUG=skia:

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

9 years agoAdd lua scripts for generating n-grams from SKPs
borenet [Thu, 25 Jun 2015 14:47:40 +0000 (07:47 -0700)]
Add lua scripts for generating n-grams from SKPs

BUG=skia:3840

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

9 years agoCleanup legacy NVPR-related definitions
kkinnunen [Thu, 25 Jun 2015 09:06:56 +0000 (02:06 -0700)]
Cleanup legacy NVPR-related definitions

Fixed-function NVPR codepaths were removed a while ago. Only NVPR API
version 1.3 (PathFragmentInputGen) was left working. Remove
backwards-compatibility code that was left behind.

Remove some NVPR API function typedefs that were left from initial
commits.

Remove PathCoords function pointer from GrGLInterface, it has
never been called and causes problems in the future, since it will
not be implemented in the Chromium pseudo extension.

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

9 years agoImplement four more xfermodes with Sk4px.
mtklein [Wed, 24 Jun 2015 22:18:39 +0000 (15:18 -0700)]
Implement four more xfermodes with Sk4px.

HardLight, Overlay, Darken, and Lighten are all
~2x faster with SSE, ~25% faster with NEON.

This covers all previously-implemented NEON xfermodes.
3 previous SSE xfermodes remain.  Those need division
and sqrt, so I'm planning on using SkPMFloat for them.
It'll help the readability and NEON speed if I move that
into [0,1] space first.

The main new concept here is c.thenElse(t,e), which behaves like
(c ? t : e) except, of course, both t and e are evaluated.  This allows
us to emulate conditionals with vectors.

This also removes the concept of SkNb.  Instead of a standalone bool
vector, each SkNi or SkNf will just return their own types for
comparisons.  Turns out to be a lot more manageable this way.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b9d4163bebab0f5639f9c5928bb5fc15f472dddc

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Arm64-Debug-Android-Trybot

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

9 years agoRevert of Switch SkJpegCode to libjpeg-turbo (patchset #11 id:540001 of https://coder...
mtklein [Wed, 24 Jun 2015 22:14:48 +0000 (15:14 -0700)]
Revert of Switch SkJpegCode to libjpeg-turbo (patchset #11 id:540001 of https://codereview.chromium.org/1180983002/)

Reason for revert:
https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Ubuntu-GCC-MipsDSP2-Debug-Android/builds/1136/steps/build%20most/logs/stdio

Original issue's description:
> Add libjpeg-turbo library (depends on yasm)
> Mangle external function names to avoid conflict with libjpeg
> Take advantage of direct color conversion (RGBA, BGRA, 565)
> Prepare to use jpeg_skip_scanlines (when it is upstreamed)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

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

9 years agoAdd libjpeg-turbo library (depends on yasm)
msarett [Wed, 24 Jun 2015 22:10:25 +0000 (15:10 -0700)]
Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

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

9 years agoRevert of remove workaround for dx9 angle slow rgba pixel ops (patchset #1 id:1 of...
bsalomon [Wed, 24 Jun 2015 22:04:13 +0000 (15:04 -0700)]
Revert of remove workaround for dx9 angle slow rgba pixel ops (patchset #1 id:1 of https://codereview.chromium.org/1207003002/)

Reason for revert:
users are still on dx9 angle :(

Original issue's description:
> remove workaround for dx9 angle slow rgba pixel ops
>
> TBR=robertphillips@google.com
>
> Committed: https://skia.googlesource.com/skia/+/1e1adc33ba1acb9a2ad41c0a5a9b6166ee9d7a2a

TBR=robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

9 years agoAdd a 64-bit ARM builder to the CQ.
mtklein [Wed, 24 Jun 2015 21:52:24 +0000 (14:52 -0700)]
Add a 64-bit ARM builder to the CQ.

It's possible this rarely breaks, but I do write ARMv8 code frequently
enough that it'll help prevent broken trees.

BUG=skia:

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

9 years agoRevert of Implement four more xfermodes with Sk4px. (patchset #16 id:290001 of https...
mtklein [Wed, 24 Jun 2015 21:30:43 +0000 (14:30 -0700)]
Revert of Implement four more xfermodes with Sk4px. (patchset #16 id:290001 of https://codereview.chromium.org/1196713004/)

Reason for revert:
64-bit ARM build failures.

Original issue's description:
> Implement four more xfermodes with Sk4px.
>
> HardLight, Overlay, Darken, and Lighten are all
> ~2x faster with SSE, ~25% faster with NEON.
>
> This covers all previously-implemented NEON xfermodes.
> 3 previous SSE xfermodes remain.  Those need division
> and sqrt, so I'm planning on using SkPMFloat for them.
> It'll help the readability and NEON speed if I move that
> into [0,1] space first.
>
> The main new concept here is c.thenElse(t,e), which behaves like
> (c ? t : e) except, of course, both t and e are evaluated.  This allows
> us to emulate conditionals with vectors.
>
> This also removes the concept of SkNb.  Instead of a standalone bool
> vector, each SkNi or SkNf will just return their own types for
> comparisons.  Turns out to be a lot more manageable this way.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b9d4163bebab0f5639f9c5928bb5fc15f472dddc

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

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

9 years agoImplement four more xfermodes with Sk4px.
mtklein [Wed, 24 Jun 2015 21:27:35 +0000 (14:27 -0700)]
Implement four more xfermodes with Sk4px.

HardLight, Overlay, Darken, and Lighten are all
~2x faster with SSE, ~25% faster with NEON.

This covers all previously-implemented NEON xfermodes.
3 previous SSE xfermodes remain.  Those need division
and sqrt, so I'm planning on using SkPMFloat for them.
It'll help the readability and NEON speed if I move that
into [0,1] space first.

The main new concept here is c.thenElse(t,e), which behaves like
(c ? t : e) except, of course, both t and e are evaluated.  This allows
us to emulate conditionals with vectors.

This also removes the concept of SkNb.  Instead of a standalone bool
vector, each SkNi or SkNf will just return their own types for
comparisons.  Turns out to be a lot more manageable this way.

BUG=skia:

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

9 years agoremove workaround for dx9 angle slow rgba pixel ops
bsalomon [Wed, 24 Jun 2015 20:22:50 +0000 (13:22 -0700)]
remove workaround for dx9 angle slow rgba pixel ops

TBR=robertphillips@google.com

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

9 years agoClarify iOS flush-to-zero status.
bungeman [Wed, 24 Jun 2015 20:08:51 +0000 (13:08 -0700)]
Clarify iOS flush-to-zero status.

Modern processors support flush-to-zero and denormalized-are-zero
for floating point operations (with ARM NEON unable to disable them).
However, iOS on ARM is the only current system which defaults
processes to using both all the time. However, this is only iOS on
ARM, iOS on x86 (the simulator) does not. Correctly defining this
allows the math tests to run error free in the simulator.

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

9 years agoCleanup: Comment and ordering changes.
herb [Wed, 24 Jun 2015 20:06:21 +0000 (13:06 -0700)]
Cleanup: Comment and ordering changes.
This should be a whitespace only change.
BUG=skia:

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

9 years agoAdd default for GrGLSLCaps::fGLSLGeneration
jvanverth [Wed, 24 Jun 2015 18:07:07 +0000 (11:07 -0700)]
Add default for GrGLSLCaps::fGLSLGeneration

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

9 years agoadd SkCanvas::drawAtlas
reed [Wed, 24 Jun 2015 17:29:17 +0000 (10:29 -0700)]
add SkCanvas::drawAtlas

BUG=skia:

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

9 years agoFix debugger compilation
robertphillips [Wed, 24 Jun 2015 17:09:57 +0000 (10:09 -0700)]
Fix debugger compilation

TBR=bsalomon@google.com

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

9 years agoAlter shader code for soft light to avoid driver bug.
egdaniel [Wed, 24 Jun 2015 15:14:49 +0000 (08:14 -0700)]
Alter shader code for soft light to avoid driver bug.

On the n5 there seems to be an issue where negating a variable at the start
of an equation doesn't work. Moving the negated variable to a subtract at the
end works around the issue (as would multiplying by -1.0).

The main bug was caused by the -DaCub in the else if block, but I also
adjusted the else block to make sure the same issue doesn't appear there
at some later date.

BUG=chromium:502434

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

9 years agoRevert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 of https://coderevi...
scroggo [Wed, 24 Jun 2015 15:05:52 +0000 (08:05 -0700)]
Revert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 of https://codereview.chromium.org/1200323005/)

Reason for revert:
Breaking the Android build.

Original issue's description:
> remove SK_SUPPORT_LEGACY_PATHOP_ENUMS
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/8bcc7a00febd737f7e82513bd5e4a697526626de

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

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

9 years agoMove GLSL-specific routines/classes to separate glsl directory
jvanverth [Wed, 24 Jun 2015 13:59:57 +0000 (06:59 -0700)]
Move GLSL-specific routines/classes to separate glsl directory

The purpose is to begin separating our GLSL-specific code from
our GL-specific code, so it can be used with the GL45 platform

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

9 years agoRefactor GrBufferAllocPools to use resource cache
robertphillips [Wed, 24 Jun 2015 13:54:10 +0000 (06:54 -0700)]
Refactor GrBufferAllocPools to use resource cache

Committed: https://skia.googlesource.com/skia/+/e935f1a0e2351373c33600b8388492ce1218014a

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

9 years agoremove SK_SUPPORT_LEGACY_PATHOP_ENUMS
reed [Wed, 24 Jun 2015 05:05:19 +0000 (22:05 -0700)]
remove SK_SUPPORT_LEGACY_PATHOP_ENUMS

BUG=skia:
TBR=

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

9 years agoremove SK_SUPPORT_LEGACY_FILTERLEVEL_ENUM
reed [Wed, 24 Jun 2015 04:47:30 +0000 (21:47 -0700)]
remove SK_SUPPORT_LEGACY_FILTERLEVEL_ENUM

BUG=skia:
TBR=

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

9 years agoremove (legacy) NewFromData
reed [Wed, 24 Jun 2015 04:31:08 +0000 (21:31 -0700)]
remove (legacy) NewFromData

BUG=skia:
TBR=

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

9 years agoMake SkGpuDevice know its alpha type
bsalomon [Tue, 23 Jun 2015 21:38:48 +0000 (14:38 -0700)]
Make SkGpuDevice know its alpha type

Make SkImage_Gpu snapshots opaque if surface is opaque.

BUG=skia:3965

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

9 years agoadd more tests
reed [Tue, 23 Jun 2015 21:34:58 +0000 (14:34 -0700)]
add more tests

BUG=skia:
TBR=

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

9 years agoMake SkNSView's window accept mouseMoved events
bsalomon [Tue, 23 Jun 2015 21:03:47 +0000 (14:03 -0700)]
Make SkNSView's window accept mouseMoved events

TBR=reed@google.com

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

9 years agoRename SkFontConfigParser_android SkFontMgr_android_parser.
bungeman [Tue, 23 Jun 2015 20:25:46 +0000 (13:25 -0700)]
Rename SkFontConfigParser_android SkFontMgr_android_parser.

There are a number of files with 'FontConfig' in their names which
just have to do with font configuration, but nothing to do with
the FontConfig project or even with each other. This clarifies
that these files deal with parsing for the Android font manager.

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

9 years agoImplement SkGLContext swapBuffers with fence syncs
cdalton [Tue, 23 Jun 2015 20:23:44 +0000 (13:23 -0700)]
Implement SkGLContext swapBuffers with fence syncs

Improves the GPU measuring accuracy of nanobench by using fence syncs.
Fence syncs are very widely supported and available on almost every
platform.

NO_MERGE_BUILDS
BUG=skia:

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

9 years agoRevert of Refactor GrBufferAllocPools to use resource cache (patchset #15 id:280001...
robertphillips [Tue, 23 Jun 2015 19:36:12 +0000 (12:36 -0700)]
Revert of Refactor GrBufferAllocPools to use resource cache (patchset #15 id:280001 of https://codereview.chromium.org/1139753002/)

Reason for revert:
Will reland after Chromium branch

Original issue's description:
> Refactor GrBufferAllocPools to use resource cache
>
> Committed: https://skia.googlesource.com/skia/+/e935f1a0e2351373c33600b8388492ce1218014a

TBR=bsalomon@google.com,joshualitt@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

9 years agoremove SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELS
reed [Tue, 23 Jun 2015 19:10:27 +0000 (12:10 -0700)]
remove SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELS

BUG=skia:

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

9 years agoRevert of SkPDF: Annotations are clipped by canvas clip stack. (patchset #2 id:20001...
halcanary [Tue, 23 Jun 2015 17:59:12 +0000 (10:59 -0700)]
Revert of SkPDF: Annotations are clipped by canvas clip stack. (patchset #2 id:20001 of https://codereview.chromium.org/1148263005/)

Reason for revert:
http://crbug.com/503541

Original issue's description:
> SkPDF: Annotations are clipped by canvas clip stack.
>
> Also, remove some SkPDFDevice functions.
>
> Will fix this GM: http://crrev.com/1159273003
>
> BUG=skia:3872
>
> Committed: https://skia.googlesource.com/skia/+/eee0e4e9d343d8b6c5ae2da7f17196f00d8859bc

TBR=tomhudson@google.com,reed@google.com
BUG=skia:3872
BUG=503541

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

9 years agoFix memory leak in simple-offsetimagefilter
robertphillips [Tue, 23 Jun 2015 16:28:52 +0000 (09:28 -0700)]
Fix memory leak in simple-offsetimagefilter

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

9 years agomore tests for offsetimagefilter
reed [Tue, 23 Jun 2015 15:29:20 +0000 (08:29 -0700)]
more tests for offsetimagefilter

BUG=skia:

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

9 years agoRefactor GrBufferAllocPools to use resource cache
robertphillips [Tue, 23 Jun 2015 15:23:08 +0000 (08:23 -0700)]
Refactor GrBufferAllocPools to use resource cache

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

9 years agoStop using the NVPR glyph loading functionality
kkinnunen [Tue, 23 Jun 2015 14:27:40 +0000 (07:27 -0700)]
Stop using the NVPR glyph loading functionality

Remove the NVPR glyph loading functionality. A bit risky feature.

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

9 years agoRename SkFontHost_none.cpp to SkFontMgr_empty_factory.
bungeman [Tue, 23 Jun 2015 14:18:21 +0000 (07:18 -0700)]
Rename SkFontHost_none.cpp to SkFontMgr_empty_factory.

When the current function was added in
https://skia.googlesource.com/skia/+/070da5edcb1c6e9b9507f06a5e2c270e1c1fd796%5E%21/#F3
the SkFontHost was still alive and well. Now that this file no
longer contains any SkFontHost related code, rename the file for
clarity and uniformity.

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

9 years agoadd autotuning to visualbench
joshualitt [Tue, 23 Jun 2015 14:10:59 +0000 (07:10 -0700)]
add autotuning to visualbench

BUG=skia:

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

9 years agoFix memory leak in SkPictureRecord
robertphillips [Tue, 23 Jun 2015 13:54:56 +0000 (06:54 -0700)]
Fix memory leak in SkPictureRecord

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

9 years agoFix indirect use of defined() directive
tomhudson [Tue, 23 Jun 2015 13:31:32 +0000 (06:31 -0700)]
Fix indirect use of defined() directive

BUG=432391
R=bsalomon,bungeman1

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

9 years agoPropagate SkSurfaceProps to more call sites
robertphillips [Tue, 23 Jun 2015 13:26:08 +0000 (06:26 -0700)]
Propagate SkSurfaceProps to more call sites

Start moving to a world where everyone provides surface properties.

Most notably this exposes a portion of SkSurfaceProps to the C API.

BUG=skia:3934

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

9 years agoTweak SkiaLab docs
borenet [Tue, 23 Jun 2015 13:05:01 +0000 (06:05 -0700)]
Tweak SkiaLab docs

BUG=skia:3850
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1203443003

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

9 years agoadd simple test for offsetimagefilter
reed [Tue, 23 Jun 2015 13:01:10 +0000 (06:01 -0700)]
add simple test for offsetimagefilter

BUG=skia:
TBR=

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

9 years agoadd break statement -- lost during rewrite earlier
reed [Tue, 23 Jun 2015 00:03:10 +0000 (17:03 -0700)]
add break statement -- lost during rewrite earlier

BUG=skia:
TBR=

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

9 years agochange old picture serialization to really handle images
reed [Mon, 22 Jun 2015 19:48:26 +0000 (12:48 -0700)]
change old picture serialization to really handle images

BUG=skia:3965

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

9 years agofix for calling bindFragDataLocation on OpenGL 2.1
joshualitt [Mon, 22 Jun 2015 19:31:31 +0000 (12:31 -0700)]
fix for calling bindFragDataLocation on OpenGL 2.1

BUG=skia:3966

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

9 years agoClean up usage of SkSurfaceProps
robertphillips [Mon, 22 Jun 2015 19:06:08 +0000 (12:06 -0700)]
Clean up usage of SkSurfaceProps

This CL continues cleaning up Skia's usage of SkSurfaceProps. It:

  Removes the duplicate SkSurfaceProps object from SkImageFilter::Proxy.

  Removes a dispreferred ctor from SkCanvas

  Removes the initForRootLayer entry point from SkDevice (since the root device and the canvas should always have the same pixel geometry now).

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

9 years agoUse vmulq_n_u32(..., 0x01010101) to distribute alphas.
mtklein [Mon, 22 Jun 2015 18:00:47 +0000 (11:00 -0700)]
Use vmulq_n_u32(..., 0x01010101) to distribute alphas.

This seems to make alphas() faster and Load[24]Alphas() no slower.
The change is particularly noticeable on xfermodes that call alphas()
twice (on src and dst), with a 10-12% speedup.

Xfermode_Difference_aa   29ms -> 28.4ms 0.98x
   Xfermode_DstATop_aa 27.2ms -> 26.7ms 0.98x
       Xfermode_Xor_aa 27.2ms -> 26.5ms 0.98x
      Xfermode_DstOver 23.6ms -> 22.9ms 0.97x
   Xfermode_DstOver_aa 27.8ms -> 26.8ms 0.96x
       Xfermode_DstOut 22.6ms -> 21.7ms 0.96x
  Xfermode_Multiply_aa   30ms -> 28.5ms 0.95x
    Xfermode_DstOut_aa 26.1ms -> 24.8ms 0.95x
     Xfermode_DstIn_aa 25.4ms -> 24.1ms 0.95x
      Xfermode_DstATop 28.7ms ->   26ms 0.9x
     Xfermode_Multiply 35.5ms -> 31.3ms 0.88x
   Xfermode_Difference 31.8ms -> 27.7ms 0.87x
          Xfermode_Xor 30.1ms -> 26.1ms 0.87x
BUG=skia:

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

9 years agofix spurious init on VisualBench startup
joshualitt [Mon, 22 Jun 2015 17:44:46 +0000 (10:44 -0700)]
fix spurious init on VisualBench startup

BUG=skia:

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

9 years agoImplemented onGetScanlines and onSkipScanlines for interlaced pngs
emmaleer [Mon, 22 Jun 2015 17:40:21 +0000 (10:40 -0700)]
Implemented onGetScanlines and onSkipScanlines for interlaced pngs

Modified DM tests to be faster when decoding interlaced pngs

BUG=skia:

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

9 years agoUpdate some Sk4px APIs.
mtklein [Mon, 22 Jun 2015 17:39:38 +0000 (10:39 -0700)]
Update some Sk4px APIs.

Mostly this is about ergonomics, making it easier to do good operations and hard / impossible to do bad ones.

- SkAlpha / SkPMColor constructors become static factories.
- Remove div255TruncNarrow(), rename div255RoundNarrow() to div255().  In practice we always want to round, and the narrowing to 8-bit is contextually obvious.
- Rename fastMulDiv255Round() approxMulDiv255() to stress it's approximate-ness over its speed.  Drop Round for the same reason as above... we should always round.
- Add operator overloads so we don't have to keep throwing in seemingly-random Sk4px() or Sk4px::Wide() casts.
- use operator*() for 8-bit x 8-bit -> 16-bit math.  It's always what we want, and there's generally no 8x8->8 alternative.
- MapFoo can take a const Func&.  Don't think it makes a big difference, but nice to do.

BUG=skia:

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

9 years agoBegin kLegacyFontHost_InitType cleanup
robertphillips [Mon, 22 Jun 2015 16:46:59 +0000 (09:46 -0700)]
Begin kLegacyFontHost_InitType cleanup

This CL starts the process of pushing kLegacyFontHost_InitType-type SkSurfaceProps up the call stack and out of Skia. It:

 Gets rid of the default SkBaseDevice ctor. This means everyone has to always hand an explicit SkSurfaceProps to it.

 It makes public the SkBitmapDevice creation methods that require SkSurfaceProps.

 Removes (in Skia's code base) all SkBitmapDevice ctor calls w/o SkSurfaceProps.

 Makes the "recording" canvases (e.g., pdf, svg, xps) explicitly not use kLegacyFontHost_InitType.

 Replicates the creating canvas/device's flags on saveLayer devices

BUG=skia:3934

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

9 years agoclean offsetimagefilter gm
reed [Mon, 22 Jun 2015 16:10:14 +0000 (09:10 -0700)]
clean offsetimagefilter gm

BUG=skia:
TBR=robertphilips

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

9 years agoChange large glyph check back to > threshold.
jvanverth [Mon, 22 Jun 2015 15:08:09 +0000 (08:08 -0700)]
Change large glyph check back to > threshold.

Using >= misses some Chromium test cases that are still
being rendered as paths.

BUG=chromium:467569

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