platform/upstream/libSkiaSharp.git
8 years agoOn gpu, use max(r,g,b) for coverage alpha in LCD and update lcd blend gm.
egdaniel [Tue, 15 Sep 2015 20:13:50 +0000 (13:13 -0700)]
On gpu, use max(r,g,b) for coverage alpha in LCD and update lcd blend gm.

BUG=skia:

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

8 years agoUpdate params to get better packing for DF path atlas
jvanverth [Tue, 15 Sep 2015 20:11:11 +0000 (13:11 -0700)]
Update params to get better packing for DF path atlas

Gets about a 4x speedup on desk_chalkboard.skp.

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

8 years agoForward declare SkStrokeRec in SkPathEffect
halcanary [Tue, 15 Sep 2015 19:53:07 +0000 (12:53 -0700)]
Forward declare SkStrokeRec in SkPathEffect

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

8 years agocreate SkBitmapProvider to abstract images and bitmaps
reed [Tue, 15 Sep 2015 19:38:12 +0000 (12:38 -0700)]
create SkBitmapProvider to abstract images and bitmaps

BUG=skia:

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

8 years agoConvert unit tests, GMs from SkBitmapSource to SkImagesource
fmalita [Tue, 15 Sep 2015 18:26:13 +0000 (11:26 -0700)]
Convert unit tests, GMs from SkBitmapSource to SkImagesource

This removes SkBitmapSource clients within Skia.

http://crrev.com/1334173004 does the same for Blink, so we should be
able to remove SkBitmapSource in a follow-up.

R=reed@google.com,robertphillips@google.com,mtklein@google.com

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

8 years agoAdd special case circle blur for Ganesh
robertphillips [Tue, 15 Sep 2015 17:20:55 +0000 (10:20 -0700)]
Add special case circle blur for Ganesh

This makes the blurcircles bench go from ~33us to ~8us on Windows desktop.

It will require layout test suppressions

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

8 years agosmall tweaks to cmake_build
mtklein [Tue, 15 Sep 2015 17:17:08 +0000 (10:17 -0700)]
small tweaks to cmake_build

  - streamline how we define $here
  - only make `cmake` when bootstrapping; it's a little less to build

BUG=skia:4269
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot

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

8 years agoAdd support for blending of LCD for all blend modes.
egdaniel [Tue, 15 Sep 2015 16:31:40 +0000 (09:31 -0700)]
Add support for blending of LCD for all blend modes.
BUG=skia:

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

8 years agoMinor fix to attaching stencils
egdaniel [Tue, 15 Sep 2015 15:46:13 +0000 (08:46 -0700)]
Minor fix to attaching stencils

BUG=skia:

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

8 years agoAdd viewer mode to VisualBench.
jvanverth [Tue, 15 Sep 2015 14:40:56 +0000 (07:40 -0700)]
Add viewer mode to VisualBench.

Displays each benchmark/skp with a graph showing a series of frame times.
Use the space bar to skip to the next benchmark.

Adds an option to hit ESC to quit VisualBench. Useful in fullscreen mode.

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

8 years agoParallel cache.
herb [Tue, 15 Sep 2015 14:03:03 +0000 (07:03 -0700)]
Parallel cache.

TBR=reed@google.com

BUG=skia:1330,528560

Committed: https://skia.googlesource.com/skia/+/6f2a486040cb25465990196c229feb47e668e87f

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

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

8 years agoAdd documentation of cs.skia.org.
benjaminwagner [Tue, 15 Sep 2015 14:02:02 +0000 (07:02 -0700)]
Add documentation of cs.skia.org.

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

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

8 years agoSpeculative fix for uninitialized bitmap mem in ImageFilterTest
fmalita [Tue, 15 Sep 2015 13:56:23 +0000 (06:56 -0700)]
Speculative fix for uninitialized bitmap mem in ImageFilterTest

TBR=reed@google.com

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

8 years agoLet's try building the example app on the bots too.
mtklein [Tue, 15 Sep 2015 13:07:47 +0000 (06:07 -0700)]
Let's try building the example app on the bots too.

BUG=skia:4269

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot
NOTREECHECKS=true

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

8 years agocmake_build is a bash script.
Mike Klein [Tue, 15 Sep 2015 12:29:02 +0000 (08:29 -0400)]
cmake_build is a bash script.

BUG=skia:4269

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

8 years agoSuppress test_imagegenerator_factory
fmalita [Mon, 14 Sep 2015 21:51:04 +0000 (14:51 -0700)]
Suppress test_imagegenerator_factory

Temporarily disable the test while we figure what (if anything) to do
about the SkImageGenerator gFactory race.

BUG=skia:4339
TBR=reed@google.com,mtklein@google.com

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

8 years agoremove code from SK_SUPPORT_LEGACY_NEWFROMGENERATOR, eliminates caller of deprecated...
reed [Mon, 14 Sep 2015 20:54:39 +0000 (13:54 -0700)]
remove code from SK_SUPPORT_LEGACY_NEWFROMGENERATOR, eliminates caller of deprecated SkInstallDiscardablePixelRef

BUG=skia:

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

8 years agofix leaked generator
reed [Mon, 14 Sep 2015 20:41:23 +0000 (13:41 -0700)]
fix leaked generator

BUG=skia:4335

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

8 years agoSkImageSource
fmalita [Mon, 14 Sep 2015 20:31:18 +0000 (13:31 -0700)]
SkImageSource

Blink is migrating away from SkBitmaps, so we need an SkImage-based
SkImageFilter source.  This is pretty much a 1-1 equivalent of
SkBitmapSource.

To avoid duplication, relocate the SkImage deserialization logic
from SkPictureData to SkReadBuffer.

R=reed@google.com,robertphillips@google.com,senorblanco@chromium.org

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

8 years agoAdd helper for creating leaf FPs inside GrFP::TestCreate functions
bsalomon [Mon, 14 Sep 2015 20:16:26 +0000 (13:16 -0700)]
Add helper for creating leaf FPs inside GrFP::TestCreate functions

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

8 years agoRevert of SkPx: new approach to fixed-point SIMD (patchset #9 id:160001 of https...
mtklein [Mon, 14 Sep 2015 20:14:31 +0000 (13:14 -0700)]
Revert of SkPx: new approach to fixed-point SIMD (patchset #9 id:160001 of https://codereview.chromium.org/1317233005/ )

Reason for revert:
http://build.chromium.org/p/client.skia.compile/builders/Build-Mac10.8-Clang-Arm7-Debug-Android/builds/4627

Original issue's description:
> SkPx: new approach to fixed-point SIMD
>
> SkPx is like Sk4px, except each platform implementation of SkPx can declare
> a different sweet spot of N pixels, with extra loads and stores to handle the
> ragged edge of 0<n<N pixels.
>
> In this case, _sse's sweet spot remains 4 pixels.   _neon jumps up to 8 so
> we can now use NEON's transposing loads and stores, and _none is just 1.
> This makes operations involving alpha considerably more efficient on NEON,
> as alpha is its own distinct 8x8 bit plane that's easy to toss around.
>
> This incorporates a few other improvements I've been wanting:
>   - no requirement that we're dealing with SkPMColor.  SkColor works too.
>   - no anonymous namespace hack to differentiate implementations.
>
> Codegen and perf look good on Clang/x86-64 and GCC/ARMv7.
> The NEON code looks very similar to the old NEON code, as intended.
> No .skp or GM diffs on my laptop.  Don't expect any.
>
> I intend this to replace Sk4px.  Plan after landing:
>   - port SkXfermode_opts.h
>   - port Color32 in SkBlitRow_D32.cpp (and move to SkBlitRow_opts.h like other
>     SkOpts code)
>   - delete all Sk4px-related code
>   - clean up evolutionary dead ends in SkNx (Sk16b, Sk16h, Sk4i, Sk4d, etc.)
>     leaving Sk2f, Sk4f (and Sk2s, Sk4s).
>   - find a machine with AVX2 to work on, write SkPx_avx2.h handling 8 pixels
>     at a time.
>
> In the end we'll have Sk4f for float pixels, SkPx for fixed-point pixels.
>
> BUG=skia:4117
>
> Committed: https://skia.googlesource.com/skia/+/82c93b45ed6ac0b628adb8375389c202d1f586f9

TBR=mtklein@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4117

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

8 years agoMove some of the adding stencil attachment logic of Gpu and into Render Target.
egdaniel [Mon, 14 Sep 2015 19:56:10 +0000 (12:56 -0700)]
Move some of the adding stencil attachment logic of Gpu and into Render Target.

The new flow of calls for attaching a Stencil looks like:

Client
  rt->attachStencilAttachment()
    gpu->getStencilAttachment()
      glgpu->createStencilAttachment()
    glrt->completeStencilAttachment() //actually attaches

BUG=skia:

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

8 years agoUpdate SkWhitelistChecksums.cpp with the checksums of the fonts on the CT slave machines.
rmistry [Mon, 14 Sep 2015 19:50:22 +0000 (12:50 -0700)]
Update SkWhitelistChecksums.cpp with the checksums of the fonts on the CT slave machines.

This file was generated using the whitelist_typefaces tool.
I tried out this file on 3 of the 100
CT slaves and './out/Debug/whitelist_typefaces --check' successfully returned 0.

BUG=skia:4336

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

8 years agoSkPx: new approach to fixed-point SIMD
mtklein [Mon, 14 Sep 2015 19:43:20 +0000 (12:43 -0700)]
SkPx: new approach to fixed-point SIMD

SkPx is like Sk4px, except each platform implementation of SkPx can declare
a different sweet spot of N pixels, with extra loads and stores to handle the
ragged edge of 0<n<N pixels.

In this case, _sse's sweet spot remains 4 pixels.   _neon jumps up to 8 so
we can now use NEON's transposing loads and stores, and _none is just 1.
This makes operations involving alpha considerably more efficient on NEON,
as alpha is its own distinct 8x8 bit plane that's easy to toss around.

This incorporates a few other improvements I've been wanting:
  - no requirement that we're dealing with SkPMColor.  SkColor works too.
  - no anonymous namespace hack to differentiate implementations.

Codegen and perf look good on Clang/x86-64 and GCC/ARMv7.
The NEON code looks very similar to the old NEON code, as intended.
No .skp or GM diffs on my laptop.  Don't expect any.

I intend this to replace Sk4px.  Plan after landing:
  - port SkXfermode_opts.h
  - port Color32 in SkBlitRow_D32.cpp (and move to SkBlitRow_opts.h like other
    SkOpts code)
  - delete all Sk4px-related code
  - clean up evolutionary dead ends in SkNx (Sk16b, Sk16h, Sk4i, Sk4d, etc.)
    leaving Sk2f, Sk4f (and Sk2s, Sk4s).
  - find a machine with AVX2 to work on, write SkPx_avx2.h handling 8 pixels
    at a time.

In the end we'll have Sk4f for float pixels, SkPx for fixed-point pixels.

BUG=skia:4117

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

8 years agoTest that GrFragmentProcessors work without input colors.
bsalomon [Mon, 14 Sep 2015 19:26:33 +0000 (12:26 -0700)]
Test that GrFragmentProcessors work without input colors.

Committed: https://skia.googlesource.com/skia/+/72c58e7052af2a0855412ce4b249f977069db751

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

8 years agocmake_build: support SKIA_OUT and BUILDTYPE
mtklein [Mon, 14 Sep 2015 19:02:32 +0000 (12:02 -0700)]
cmake_build: support SKIA_OUT and BUILDTYPE

And, fix BUILDTYPE=Debug build.
EQUAL is for numbers, STREQUAL for strings.

BUG=skia:

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

8 years agoRevert of Test that GrFragmentProcessors work without input colors. (patchset #2...
bsalomon [Mon, 14 Sep 2015 19:01:42 +0000 (12:01 -0700)]
Revert of Test that GrFragmentProcessors work without input colors. (patchset #2 id:20001 of https://codereview.chromium.org/1341853002/ )

Reason for revert:
Need to fix up more processor subclasses.

Original issue's description:
> Test that GrFragmentProcessors work without input colors.
>
> Committed: https://skia.googlesource.com/skia/+/72c58e7052af2a0855412ce4b249f977069db751

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

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

8 years agoTest that GrFragmentProcessors work without input colors.
bsalomon [Mon, 14 Sep 2015 18:55:51 +0000 (11:55 -0700)]
Test that GrFragmentProcessors work without input colors.

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

8 years agoFix GPU-only snapping bug in mask blur rendering
robertphillips [Mon, 14 Sep 2015 18:18:13 +0000 (11:18 -0700)]
Fix GPU-only snapping bug in mask blur rendering

The existing mask effect code in Ganesh is subject to snapping issues (when the created mask is redrawn). This artifact can be seen by rendering the original geometry (w/o blurs) and comparing that result to a rendering of the unblurred masks. W/o this patch the results do not match up (they are arbitrarily shifted by a pixel).

This patch will require rebaselining and suppressions.

Chromium layout tests suppressions are here:
https://codereview.chromium.org/1342683003/ (Add layout test suppressions for upcoming Skia roll)

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

8 years agoimpl preroll for all image backends
reed [Mon, 14 Sep 2015 18:17:23 +0000 (11:17 -0700)]
impl preroll for all image backends

BUG=skia:

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

8 years agoHave SkVarAlloc::alloc() use sk_malloc_throw.
mtklein [Mon, 14 Sep 2015 18:11:17 +0000 (11:11 -0700)]
Have SkVarAlloc::alloc() use sk_malloc_throw.

Very right, it's not prepared to handle return-NULL mallocs at all.

BUG=530759

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

8 years agoSkValidatingReadBuffer: make sure we don't call readTypeface().
mtklein [Mon, 14 Sep 2015 18:09:42 +0000 (11:09 -0700)]
SkValidatingReadBuffer: make sure we don't call readTypeface().

Add an assert to make sure we're not calling this unimplemented method.

BUG=skia:3978

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

8 years agofix leak in test
reed [Mon, 14 Sep 2015 17:53:24 +0000 (10:53 -0700)]
fix leak in test

BUG=skia:4335

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

8 years agobe sure to use cached bitmap when we need to upload something to make a texture
reed [Mon, 14 Sep 2015 17:27:57 +0000 (10:27 -0700)]
be sure to use cached bitmap when we need to upload something to make a texture

BUG=skia:4334

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

8 years agoCMake bot script
mtklein [Mon, 14 Sep 2015 17:02:50 +0000 (10:02 -0700)]
CMake bot script

 - Add CMake v3.3.1 (latest) to DEPS.
 - Add cmake/bot-cmake.sh to bootstrap CMake then build Skia using that.

Works on my Mac and Linux box, both with no system CMake installation.

CMake will be ~100M on disk.  The first bootstrap takes a couple minutes,
and a no-op re-run of bot-cmake.sh takes 15-20 seconds.  I thought about
having bot-cmake.sh fetch CMake instead of DEPS, but I'm not sure I can
handle updates, etc. as robustly as it can.

This will only work on Linux and Mac.  CMake requires an older CMake on
Windows.  It doesn't have an equivalent ./bootstrap there.  Will have to
think about how Windows bots will work!

BUG=skia:4269

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

8 years agowe must own/free the generator, even if we fail to return a cacherator
reed [Mon, 14 Sep 2015 16:59:28 +0000 (09:59 -0700)]
we must own/free the generator, even if we fail to return a cacherator

BUG=skia:4332

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

8 years agodisable kIndex_8 gpu support for now -- seems to always be slower
reed [Mon, 14 Sep 2015 16:09:00 +0000 (09:09 -0700)]
disable kIndex_8 gpu support for now -- seems to always be slower

BUG=skia:4333

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

8 years agodiscardable pixelrefs are gone, update tests accordingly
reed [Mon, 14 Sep 2015 15:52:12 +0000 (08:52 -0700)]
discardable pixelrefs are gone, update tests accordingly

BUG=skia:4328

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

8 years agoremove dead code not mentioned in any GYP
mtklein [Mon, 14 Sep 2015 13:33:47 +0000 (06:33 -0700)]
remove dead code not mentioned in any GYP

BUG=skia:

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

8 years agoUpdate SKP version
update-skps [Sun, 13 Sep 2015 21:05:54 +0000 (14:05 -0700)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

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

8 years agoformalize generate->bitmap
reed [Sun, 13 Sep 2015 18:03:32 +0000 (11:03 -0700)]
formalize generate->bitmap

just move block of code to expose it

BUG=skia:4328
TBR=

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

8 years agoremove obsolete samples
reed [Sat, 12 Sep 2015 16:55:30 +0000 (09:55 -0700)]
remove obsolete samples

BUG=skia:
TBR=

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

8 years agosync-and-gyp: Update shell script to correct the syntax of functions
Hal Canary [Sat, 12 Sep 2015 00:49:00 +0000 (20:49 -0400)]
sync-and-gyp: Update shell script to correct the syntax of functions

R=halcanary@gmail.com

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

8 years agoskia: Add ANGLE with GL backend to nanobench/DM
hendrikw [Fri, 11 Sep 2015 20:07:29 +0000 (13:07 -0700)]
skia: Add ANGLE with GL backend to nanobench/DM

This will allow us to test this without hacking it in, might be useful
for others too.

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

8 years agomove GrGLPathProcessor back into GrPathProcessor
joshualitt [Fri, 11 Sep 2015 18:52:17 +0000 (11:52 -0700)]
move GrGLPathProcessor back into GrPathProcessor

BUG=skia:

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

8 years agosupport colortables in cacherator
reed [Fri, 11 Sep 2015 18:47:27 +0000 (11:47 -0700)]
support colortables in cacherator

BUG=skia:
TBR=scroggo

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

8 years agoremove path specific program building classes
joshualitt [Fri, 11 Sep 2015 18:45:01 +0000 (11:45 -0700)]
remove path specific program building classes

BUG=skia:

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

8 years agoProvide link to worker logs.
benjaminwagner [Fri, 11 Sep 2015 17:56:24 +0000 (10:56 -0700)]
Provide link to worker logs.

BUG=skia:4063
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1338823002

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

8 years agoStart trying to collapse path program stuff
joshualitt [Fri, 11 Sep 2015 17:44:13 +0000 (10:44 -0700)]
Start trying to collapse path program stuff

BUG=skia:

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

8 years agoRemove jpegs with uninitialized memory from Gold
msarett [Fri, 11 Sep 2015 16:01:16 +0000 (09:01 -0700)]
Remove jpegs with uninitialized memory from Gold

BitmapRegionSampler (uses SkImageDecoder) will often scale
to a power of 2 regardless of the sampleSize requested.
This is skbug.com/4319.

Consider a 60x60 image.
To decode a subset with sample size 3, we might ask for the
following.
[x, y, w, h] = [-15, -15, 30, 30]
sampleSize = 3

Since w = 30 and h = 30, this should give us a 10x10
result.  Only the bottom right 5x5 quadrant of this 10x10
subset will actually be in the image.  We should get a 5
pixel border on the top and left because we ask for 15
extra pixels on the top and left.

Unfortunately, SkImageDecoder will take our requested
sample size of 3, and then decide to use a sample size of
2.  Not only will it scale the image by 2, but it will also
scale the border by 2.  So while we are expecting pixel
data to begin at offset (5, 5) of the result bitmap, it
actually begins at offset (7, 7).  Making things worse,
the pixels between (5, 5) and (7, 7) are uninitialized,
causing problems on Gold.

Options for fixing this include:
(1) Not testing decodes with a border.
(2) Changing the test to check the size of the output
bitmap.
(3) Disable the tests.

I think it's best to just disable these tests.  We know
they don't work, so why do we need to see the results on
Gold?

BUG=skia:4319

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

8 years agoRemove batchtracker
joshualitt [Fri, 11 Sep 2015 15:19:35 +0000 (08:19 -0700)]
Remove batchtracker

BUG=skia:

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

8 years agoincrease resource image-cache size to test perf
reed [Fri, 11 Sep 2015 15:19:23 +0000 (08:19 -0700)]
increase resource image-cache size to test perf

BUG=skia:
TBR=

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

8 years agoRevert of Parallel cache - preliminary (patchset #23 id:440001 of https://codereview...
jyasskin [Fri, 11 Sep 2015 01:11:29 +0000 (18:11 -0700)]
Revert of Parallel cache - preliminary  (patchset #23 id:440001 of https://codereview.chromium.org/1264103003/ )
Also reverts https://codereview.chromium.org/1333003002/ which was layered on top.

Reason for revert:
Appears to leak GDI handles: http://build.chromium.org/p/chromium.memory.fyi/builders/Windows%20Unit%20%28DrMemory%20full%29%20%282%29/builds/8247

~~Dr.M~~ Error #1: HANDLE LEAK: GDI handle 0x03050a84 and 3 similar handle(s) were opened but not closed:
~~Dr.M~~ # 0 system call NtGdiCreateDIBSection
~~Dr.M~~ # 1 GDI32.dll!CreateDIBSection                                                +0xdc     (0x768ead23 <GDI32.dll+0x1ad23>)
~~Dr.M~~ # 2 skia.dll!HDCOffscreen::draw                                                [third_party\skia\src\ports\skfonthost_win.cpp:499]
~~Dr.M~~ # 3 skia.dll!SkScalerContext_GDI::generateImage                                [third_party\skia\src\ports\skfonthost_win.cpp:1233]
~~Dr.M~~ # 4 skia.dll!SkScalerContext::getImage                                         [third_party\skia\src\core\skscalercontext.cpp:530]
~~Dr.M~~ # 5 skia.dll!SkGlyphCache::OnceFillInImage                                     [third_party\skia\src\core\skglyphcache.cpp:252]
~~Dr.M~~ # 6 skia.dll!sk_once_slow<>                                                    [third_party\skia\include\core\skonce.h:76]
~~Dr.M~~ # 7 skia.dll!SkGlyphCache::findImage                                           [third_party\skia\src\core\skglyphcache.cpp:260]
~~Dr.M~~ # 8 skia.dll!D1G_RectClip                                                      [third_party\skia\src\core\skdraw.cpp:1479]
~~Dr.M~~ # 9 skia.dll!SkDraw::drawPosText                                               [third_party\skia\src\core\skdraw.cpp:1838]
~~Dr.M~~ #10 skia.dll!SkBitmapDevice::drawPosText                                       [third_party\skia\src\core\skbitmapdevice.cpp:348]
~~Dr.M~~ #11 skia.dll!SkCanvas::onDrawPosText                                           [third_party\skia\src\core\skcanvas.cpp:2433]
~~Dr.M~~ #12 skia.dll!SkCanvas::drawPosText                                             [third_party\skia\src\core\skcanvas.cpp:2507]
~~Dr.M~~ #13 skia.dll!SkRecords::Draw::draw<>                                           [third_party\skia\src\core\skrecorddraw.cpp:109]
~~Dr.M~~ #14 skia.dll!SkRecord::Record::visit<>                                         [third_party\skia\src\core\skrecord.h:170]
~~Dr.M~~ #15 skia.dll!SkRecordDraw                                                      [third_party\skia\src\core\skrecorddraw.cpp:55]
~~Dr.M~~ #16 skia.dll!SkBigPicture::playback                                            [third_party\skia\src\core\skbigpicture.cpp:43]
~~Dr.M~~ #17 skia.dll!SkCanvas::onDrawPicture                                           [third_party\skia\src\core\skcanvas.cpp:2800]
~~Dr.M~~ #18 skia.dll!SkCanvas::drawPicture                                             [third_party\skia\src\core\skcanvas.cpp:2770]
~~Dr.M~~ #19 cc.dll!cc::DrawingDisplayItem::Raster                                      [cc\playback\drawing_display_item.cc:51]
~~Dr.M~~ #20 cc.dll!cc::DisplayItemList::Raster                                         [cc\playback\display_item_list.cc:107]
~~Dr.M~~ #21 cc.dll!cc::DisplayListRasterSource::RasterCommon                           [cc\playback\display_list_raster_source.cc:122]
~~Dr.M~~ #22 cc.dll!cc::DisplayListRasterSource::PlaybackToCanvas                       [cc\playback\display_list_raster_source.cc:100]
~~Dr.M~~ #23 cc.dll!cc::TileTaskWorkerPool::PlaybackToMemory                            [cc\raster\tile_task_worker_pool.cc:208]
~~Dr.M~~ #24 cc.dll!cc::OneCopyTileTaskWorkerPool::PlaybackAndCopyOnWorkerThread        [cc\raster\one_copy_tile_task_worker_pool.cc:413]
~~Dr.M~~ #25 cc.dll!cc::`anonymous namespace'::RasterBufferImpl::Playback               [cc\raster\one_copy_tile_task_worker_pool.cc:53]
~~Dr.M~~ #26 cc.dll!cc::`anonymous namespace'::RasterTaskImpl::Raster                   [cc\tiles\tile_manager.cc:131]
~~Dr.M~~ #27 cc.dll!cc::`anonymous namespace'::RasterTaskImpl::RunOnWorkerThread        [cc\tiles\tile_manager.cc:90]
~~Dr.M~~ #28 cc.dll!cc::TaskGraphRunner::RunTaskWithLockAcquired                        [cc\raster\task_graph_runner.cc:418]
~~Dr.M~~ #29 cc.dll!cc::TaskGraphRunner::Run                                            [cc\raster\task_graph_runner.cc:361]
~~Dr.M~~ #30 base.dll!base::SimpleThread::ThreadMain                                    [base\threading\simple_thread.cc:66]
~~Dr.M~~ #31 base.dll!base::`anonymous namespace'::ThreadFunc                           [base\threading\platform_thread_win.cc:82]
~~Dr.M~~ #32 KERNEL32.dll!BaseThreadInitThunk                                          +0x11     (0x7570337a <KERNEL32.dll+0x1337a>)
~~Dr.M~~ Note: @0:15:51.087 in thread 196
~~Dr.M~~ Note: handles created with the same callstack are closed here:
~~Dr.M~~ Note: # 0 system call NtGdiDeleteObjectApp
~~Dr.M~~ Note: # 1 GDI32.dll!DeleteObject                                                    +0x149    (0x768e57d3 <GDI32.dll+0x157d3>)
~~Dr.M~~ Note: # 2 skia.dll!HDCOffscreen::draw                                                [third_party\skia\src\ports\skfonthost_win.cpp:471]
~~Dr.M~~ Note: # 3 skia.dll!SkScalerContext_GDI::generateImage                                [third_party\skia\src\ports\skfonthost_win.cpp:1233]
~~Dr.M~~ Note: # 4 skia.dll!SkScalerContext::getImage                                         [third_party\skia\src\core\skscalercontext.cpp:530]
~~Dr.M~~ Note: # 5 skia.dll!SkGlyphCache::OnceFillInImage                                     [third_party\skia\src\core\skglyphcache.cpp:252]
~~Dr.M~~ Note: # 6 skia.dll!sk_once_slow<>                                                    [third_party\skia\include\core\skonce.h:76]
~~Dr.M~~ Note: # 7 skia.dll!SkGlyphCache::findImage                                           [third_party\skia\src\core\skglyphcache.cpp:260]
~~Dr.M~~ Note: # 8 skia.dll!D1G_RectClip                                                      [third_party\skia\src\core\skdraw.cpp:1479]
~~Dr.M~~ Note: # 9 skia.dll!SkDraw::drawPosText                                               [third_party\skia\src\core\skdraw.cpp:1838]
~~Dr.M~~ Note: #10 skia.dll!SkBitmapDevice::drawPosText                                       [third_party\skia\src\core\skbitmapdevice.cpp:348]
~~Dr.M~~ Note: #11 skia.dll!SkCanvas::onDrawPosText                                           [third_party\skia\src\core\skcanvas.cpp:2433]
~~Dr.M~~ Note: #12 skia.dll!SkCanvas::drawPosText                                             [third_party\skia\src\core\skcanvas.cpp:2507]
~~Dr.M~~ Note: #13 skia.dll!SkRecords::Draw::draw<>                                           [third_party\skia\src\core\skrecorddraw.cpp:109]
~~Dr.M~~ Note: #14 skia.dll!SkRecord::Record::visit<>                                         [third_party\skia\src\core\skrecord.h:170]
~~Dr.M~~ Note: #15 skia.dll!SkRecordDraw                                                      [third_party\skia\src\core\skrecorddraw.cpp:55]
~~Dr.M~~ Note: #16 skia.dll!SkBigPicture::playback                                            [third_party\skia\src\core\skbigpicture.cpp:43]
~~Dr.M~~ Note: #17 skia.dll!SkCanvas::onDrawPicture                                           [third_party\skia\src\core\skcanvas.cpp:2800]
~~Dr.M~~ Note: #18 skia.dll!SkCanvas::drawPicture                                             [third_party\skia\src\core\skcanvas.cpp:2770]
~~Dr.M~~ Note: #19 cc.dll!cc::DrawingDisplayItem::Raster                                      [cc\playback\drawing_display_item.cc:51]
~~Dr.M~~ Note: #20 cc.dll!cc::DisplayItemList::Raster                                         [cc\playback\display_item_list.cc:107]
~~Dr.M~~ Note: #21 cc.dll!cc::DisplayListRasterSource::RasterCommon                           [cc\playback\display_list_raster_source.cc:122]
~~Dr.M~~ Note: #22 cc.dll!cc::DisplayListRasterSource::PlaybackToCanvas                       [cc\playback\display_list_raster_source.cc:100]
~~Dr.M~~ Note: #23 cc.dll!cc::TileTaskWorkerPool::PlaybackToMemory                            [cc\raster\tile_task_worker_pool.cc:208]
~~Dr.M~~ Note: #24 cc.dll!cc::OneCopyTileTaskWorkerPool::PlaybackAndCopyOnWorkerThread        [cc\raster\one_copy_tile_task_worker_pool.cc:413]
~~Dr.M~~ Note: #25 cc.dll!cc::`anonymous namespace'::RasterBufferImpl::Playback               [cc\raster\one_copy_tile_task_worker_pool.cc:53]
~~Dr.M~~ Note: #26 cc.dll!cc::`anonymous namespace'::RasterTaskImpl::Raster                   [cc\tiles\tile_manager.cc:131]
~~Dr.M~~ Note: #27 cc.dll!cc::`anonymous namespace'::RasterTaskImpl::RunOnWorkerThread        [cc\tiles\tile_manager.cc:90]
~~Dr.M~~ Note: #28 cc.dll!cc::TaskGraphRunner::RunTaskWithLockAcquired                        [cc\raster\task_graph_runner.cc:418]
~~Dr.M~~ Note: #29 cc.dll!cc::TaskGraphRunner::Run                                            [cc\raster\task_graph_runner.cc:361]
~~Dr.M~~ Note: #30 base.dll!base::SimpleThread::ThreadMain                                    [base\threading\simple_thread.cc:66]
~~Dr.M~~ Note: #31 base.dll!base::`anonymous namespace'::ThreadFunc                           [base\threading\platform_thread_win.cc:82]
~~Dr.M~~ Note: #32 KERNEL32.dll!BaseThreadInitThunk                                          +0x11     (0x7570337a <KERNEL32.dll+0x1337a>)

Original issue's description:
> Parallel cache.
>
> TBR=reed@google.com
>
> BUG=skia:1330
>
> Committed: https://skia.googlesource.com/skia/+/6f2a486040cb25465990196c229feb47e668e87f
>
> Committed: https://skia.googlesource.com/skia/+/bf2988833e5a36c6b430da6fdd2cfebd0015adec

TBR=reed@google.com,mtklein@google.com,mtklein@chromium.org,herb@google.com
BUG=skia:1330

[mtklein mucking around]
NOTREECHECKS=true

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

8 years agoRevert of use new shuffle to speed up affine matrix mappts (patchset #3 id:40001...
mtklein [Thu, 10 Sep 2015 23:38:41 +0000 (16:38 -0700)]
Revert of use new shuffle to speed up affine matrix mappts (patchset #3 id:40001 of https://codereview.chromium.org/1333983002/ )

Reason for revert:
Unexpected perf impact, and a whole bunch of new images in gold (mostly invisibly different).

Original issue's description:
> use new shuffle to speed up affine matrix mappts
>
> sse: 25 -> 18
> neon: 95 -> 86
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/e70afc9f48d00828ee6b707899a8ff542b0e8b98

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

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

8 years agoUse SkImageCacherator in SkImages
reed [Thu, 10 Sep 2015 21:33:38 +0000 (14:33 -0700)]
Use SkImageCacherator in SkImages

Possible follow-up changes to consider

1. Roll SkImage_Raster and _Gpu into _Generator, where the generator (or cacherator) is backed by a pre-existing texture or raster.
2. Evolve SkImageUsageType into a verb requiring stretching, and have the caller (common code) digest the caps() and usage, so that subclasses are just told what to do (stretch or not)
3. Common code/utility to convert an unstretched texture into a stretch one (and cache it) if the generator can only make an unstretched one.

BUG=skia:

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

8 years agouse new shuffle to speed up affine matrix mappts
mtklein [Thu, 10 Sep 2015 21:32:32 +0000 (14:32 -0700)]
use new shuffle to speed up affine matrix mappts

sse: 25 -> 18
neon: 95 -> 86

BUG=skia:

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

8 years agoAdd simd.md to document Skia SIMD code / plans.
mtklein [Thu, 10 Sep 2015 21:21:12 +0000 (14:21 -0700)]
Add simd.md to document Skia SIMD code / plans.

BUG=skia:4117
NOTRY=true
DOCS_PREVIEW= https://skia.org/dev/contrib/simd?cl=1330083002

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

8 years agoCorrect a possible free after use.
herb [Thu, 10 Sep 2015 21:16:12 +0000 (14:16 -0700)]
Correct a possible free after use.

This shows up in TSAN runs as a use-after-free warning.

BUG=skia:

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

8 years agoSkNx_shuffle
mtklein [Thu, 10 Sep 2015 21:16:07 +0000 (14:16 -0700)]
SkNx_shuffle

This allows us to express shuffles more directly in code while also giving us a
convenient point to platform-specify particular shuffles for particular types.

No specializations yet.  Everyone just uses the (pretty good) default option.

BUG=skia:

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

8 years agofix missing clipmaskmanager
Brian Salomon [Thu, 10 Sep 2015 18:40:20 +0000 (14:40 -0400)]
fix missing clipmaskmanager

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

8 years agomake a shallow-copy so we don't get racy trying to lock/unlock our private bitmap
reed [Thu, 10 Sep 2015 18:38:58 +0000 (11:38 -0700)]
make a shallow-copy so we don't get racy trying to lock/unlock our private bitmap

BUG= 529995
NOTREECHECKS=True

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

8 years agoFix texture creation on stencil format test code
egdaniel [Thu, 10 Sep 2015 18:28:22 +0000 (11:28 -0700)]
Fix texture creation on stencil format test code

BUG=skia:

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

8 years agoPort SkMatrix opts to SkOpts.
mtklein [Thu, 10 Sep 2015 18:18:31 +0000 (11:18 -0700)]
Port SkMatrix opts to SkOpts.

No changes to the code, just moved around.

This will have the effect of enabling vectorized code on ARMv7.
Should be no effect on ARMv8 or x86, which would have been vectorized already.

nanobench --match mappoints changes on Nexus 5 (ARMv7):

_affine: 132 -> 95
_scale: 118 -> 47
_trans: 60 -> 37

A teaser:
We should next look at the ABCD->BADC shuffle we've noted that we need in _affine.  A quick hack showed doing that optimally is another ~35% speedup on x86.  Got to figure out how to do it best on ARM though: that same quick hack was a 2x slowdown there.  Good reason to resurrect that SkNx_shuffle() CL!

(I believe the answers are vrev64q_f32(v) and _mm_shuffle_ps(v,v, _MM_SHUFFLE(2,3,0,1), but we should probably find out in another CL.)

BUG=skia:4117

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

8 years agoRemove GrClipTarget
bsalomon [Thu, 10 Sep 2015 18:16:35 +0000 (11:16 -0700)]
Remove GrClipTarget

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

8 years agoSimplify installation of pipeling into GrDrawBatch in GrDrawTarget
bsalomon [Thu, 10 Sep 2015 18:10:50 +0000 (11:10 -0700)]
Simplify installation of pipeling into GrDrawBatch in GrDrawTarget

R=joshualitt@google.com

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

8 years agoLate creation of GrPathProcessor
joshualitt [Thu, 10 Sep 2015 18:00:51 +0000 (11:00 -0700)]
Late creation of GrPathProcessor

BUG=skia:

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

8 years agoCleanup GrDrawTarget now that all paths lead to GrBatch
bsalomon [Thu, 10 Sep 2015 17:42:55 +0000 (10:42 -0700)]
Cleanup GrDrawTarget now that all paths lead to GrBatch

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

8 years agoPort SkBlitRow::Color32 to SkOpts.
mtklein [Thu, 10 Sep 2015 17:38:02 +0000 (10:38 -0700)]
Port SkBlitRow::Color32 to SkOpts.

This was a pre-SkOpts attempt that we can bring under its wing now.

This should be a perf no-op, deo volente.

BUG=skia:4117

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

8 years agoDM: add --key and --properties to PNG description field.
mtklein [Thu, 10 Sep 2015 17:37:44 +0000 (10:37 -0700)]
DM: add --key and --properties to PNG description field.

This tags each image with the bot that created it.

BUG=skia:4322

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

8 years agoFix leak of path ranges
bsalomon [Thu, 10 Sep 2015 16:31:59 +0000 (09:31 -0700)]
Fix leak of path ranges

R=egdaniel@google.com

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

8 years agoCalculate pixel config and stencil fmt pairs once per pixel config.
egdaniel [Thu, 10 Sep 2015 15:37:20 +0000 (08:37 -0700)]
Calculate pixel config and stencil fmt pairs once per pixel config.

We use a temp FB and stencil buffer to test different stencil formats with
a given pixel config. We then keep a map from pixel config to desired stencil
format.

BUG=skia:

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

8 years agoAdd a mutex to GrContext::readSurfacePixels to protect against multiple CPU raster...
bsalomon [Thu, 10 Sep 2015 15:12:46 +0000 (08:12 -0700)]
Add a mutex to GrContext::readSurfacePixels to protect against multiple CPU raster threads accessing the same GrContext to read back GPU input data

BUG=chromium:524717

TBR=reed@google.com

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

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

8 years agoThere's a set probability that a linear pipeline of random procs will be created...
wangyix [Thu, 10 Sep 2015 13:57:05 +0000 (06:57 -0700)]
There's a set probability that a linear pipeline of random procs will be created (old behavior), or a pipeline with a single proc tree (added behavior).

Had to move GrComposeEffect class definition from SkComposeShader.cpp to SkComposeShader.h so that GLProgramsTest can call GrComposeEffect::Create()

BUG=skia:4182

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

8 years agoInitialize subrun variables to make Valgrind happy
jvanverth [Thu, 10 Sep 2015 13:31:38 +0000 (06:31 -0700)]
Initialize subrun variables to make Valgrind happy

The check at line 1259 was failing in Valgrind, and in
the default constructor subrun.fMaskFormat is never inited.
Also set some other variables to avoid future problems.

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

8 years agoRevert of Add a mutex to GrContext::readSurfacePixels to protect against multiple...
bsalomon [Thu, 10 Sep 2015 01:57:49 +0000 (18:57 -0700)]
Revert of Add a mutex to GrContext::readSurfacePixels to protect against multiple CPU raster threads accessin… (patchset #1 id:1 of https://codereview.chromium.org/1329313002/ )

Reason for revert:
breaking the bots

Original issue's description:
> Add a mutex to GrContext::readSurfacePixels to protect against multiple CPU raster threads accessing the same GrContext to read back GPU input data
>
> BUG=chromium:524717
>
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/eb662bc407cec0585a821946fef123102cae64db

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

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

8 years agoAdd a mutex to GrContext::readSurfacePixels to protect against multiple CPU raster...
bsalomon [Thu, 10 Sep 2015 01:05:03 +0000 (18:05 -0700)]
Add a mutex to GrContext::readSurfacePixels to protect against multiple CPU raster threads accessing the same GrContext to read back GPU input data

BUG=chromium:524717

TBR=reed@google.com

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

8 years agoSK_API on GrWrapTextureInBitmap
bsalomon [Wed, 9 Sep 2015 21:51:52 +0000 (14:51 -0700)]
SK_API on GrWrapTextureInBitmap

BUG=chromium:524717
TBR=reed@google.com

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

8 years agoRemove race.
herb [Wed, 9 Sep 2015 21:48:33 +0000 (14:48 -0700)]
Remove race.

BUG=skia:

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

8 years agofix leaked picture
reed [Wed, 9 Sep 2015 20:42:14 +0000 (13:42 -0700)]
fix leaked picture

BUG=skia:
TBR=

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

8 years agodon't peek w/o first acquiring the lock
reed [Wed, 9 Sep 2015 20:25:24 +0000 (13:25 -0700)]
don't peek w/o first acquiring the lock

BUG=skia:

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

8 years agoReland of more zero-length changes for svg compatibility (patchset #1 id:1 of https...
caryclark [Wed, 9 Sep 2015 20:20:49 +0000 (13:20 -0700)]
Reland of more zero-length changes for svg compatibility (patchset #1 id:1 of https://codereview.chromium.org/1334543002/ )

Reason for revert:
DEPS should be fixed now

Original issue's description:
> Revert of more zero-length changes for svg compatibility (patchset #6 id:100001 of https://codereview.chromium.org/1330623003/ )
>
> Reason for revert:
> breaks DEPS
>
> Original issue's description:
> > more zero-length changes for svg compatibility
> >
> > If a path contains a moveTo followed by a line or curve,
> > even if the line or curve has no length, SVG expects
> > the end caps to draw if the cap style is round or square.
> >
> > Fredrik Söderquist attached a patch to the chrome bug
> > (slightly modified here) that fixes layout test failures
> > resulting from deleting special-case code in SVG
> > dealing with zero-length path segments.
> >
> > R=reed@google.com,fs@opera.com
> > BUG=22974
> >
> > Committed: https://skia.googlesource.com/skia/+/62fb1ba1786863e545c89839b5706ad5151cec15
>
> TBR=fs@opera.com,reed@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=22974
>
> Committed: https://skia.googlesource.com/skia/+/5ca4fa3846067a47e88d35ace895df3ebe3ec2a5

TBR=fs@opera.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=22974

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

8 years agoBrian requested a new namespace for factories that create fragment processors that...
wangyix [Wed, 9 Sep 2015 19:58:32 +0000 (12:58 -0700)]
Brian requested a new namespace for factories that create fragment processors that combine 2 things with a xfermode.  This way, we can change the implementation of these factories in the future to not use GrComposeEffect if desired.

BUG=skia:4182

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

8 years agoParallel cache.
herb [Wed, 9 Sep 2015 19:16:09 +0000 (12:16 -0700)]
Parallel cache.

TBR=reed@google.com

BUG=skia:1330

Committed: https://skia.googlesource.com/skia/+/6f2a486040cb25465990196c229feb47e668e87f

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

8 years agoadd picture-image variant
reed [Wed, 9 Sep 2015 18:29:09 +0000 (11:29 -0700)]
add picture-image variant

BUG=skia:

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

8 years agoMimic Chrome better in our GYPs.
mtklein [Wed, 9 Sep 2015 17:46:20 +0000 (10:46 -0700)]
Mimic Chrome better in our GYPs.

To match Chrome, make sure we've disabled thread-safe statics, RTTI, and exceptions.  Linux needed -fno-threadsafe-statics, Mac needed all three.

Nothing important triggered this CL.  I just got confused when I saw exception handling (calls to delete, stack unwinding) in some generated code on my laptop.

BUG=skia:

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

8 years agoswitch over to using images
reed [Wed, 9 Sep 2015 17:45:36 +0000 (10:45 -0700)]
switch over to using images

BUG=skia:
TBR=

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

8 years agoSpecialize SkOncePtr<T[]>.
mtklein [Wed, 9 Sep 2015 17:00:22 +0000 (10:00 -0700)]
Specialize SkOncePtr<T[]>.

SkOncePtr<T[]> is identical to SkOncePtr<T> except we'll default to delete[]
for cleanup.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot

BUG=skia:

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

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

8 years agoMake GrProcessorDataManager a noop
joshualitt [Wed, 9 Sep 2015 17:00:12 +0000 (10:00 -0700)]
Make GrProcessorDataManager a noop

TBR=bsalomon@google.com
BUG=skia:

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

8 years agoGrPathRangeBatch
bsalomon [Wed, 9 Sep 2015 16:48:06 +0000 (09:48 -0700)]
GrPathRangeBatch

BUG=skia:

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

8 years agoRevert of more zero-length changes for svg compatibility (patchset #6 id:100001 of...
caryclark [Wed, 9 Sep 2015 16:34:22 +0000 (09:34 -0700)]
Revert of more zero-length changes for svg compatibility (patchset #6 id:100001 of https://codereview.chromium.org/1330623003/ )

Reason for revert:
breaks DEPS

Original issue's description:
> more zero-length changes for svg compatibility
>
> If a path contains a moveTo followed by a line or curve,
> even if the line or curve has no length, SVG expects
> the end caps to draw if the cap style is round or square.
>
> Fredrik Söderquist attached a patch to the chrome bug
> (slightly modified here) that fixes layout test failures
> resulting from deleting special-case code in SVG
> dealing with zero-length path segments.
>
> R=reed@google.com,fs@opera.com
> BUG=22974
>
> Committed: https://skia.googlesource.com/skia/+/62fb1ba1786863e545c89839b5706ad5151cec15

TBR=fs@opera.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=22974

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

8 years agoPort uses of SkLazyPtr to SkOncePtr.
mtklein [Wed, 9 Sep 2015 16:09:53 +0000 (09:09 -0700)]
Port uses of SkLazyPtr to SkOncePtr.

This gives SkOncePtr a non-trivial destructor that uses std::default_delete
by default.  This is overrideable, as seen in SkColorTable.

SK_DECLARE_STATIC_ONCE_PTR still just leaves its pointers hanging at EOP.

BUG=skia:

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

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

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

8 years agowire up incNumDraws
joshualitt [Wed, 9 Sep 2015 15:29:47 +0000 (08:29 -0700)]
wire up incNumDraws

BUG=skia:

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

8 years agoGM: replace boilerplate with macros
halcanary [Wed, 9 Sep 2015 15:16:41 +0000 (08:16 -0700)]
GM: replace boilerplate with macros

I have verified locally that nothing draws differently.

Motivation:
*   SK_SIMPLE_GM makes it easier to write a GM.
*   Reducing 1100 lines of code makes maintenance easier.
*   Simple GMs are easy to convert to Fiddles.

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

8 years agoDetach cache in DF routines rather than passing it in.
jvanverth [Wed, 9 Sep 2015 15:05:12 +0000 (08:05 -0700)]
Detach cache in DF routines rather than passing it in.

This removes nesting of cache accesses, which avoids a possible
deadlock condition when the caches are the same.

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

8 years agoMake SkGraphics::Term a no-op, stop calling it.
mtklein [Wed, 9 Sep 2015 14:35:42 +0000 (07:35 -0700)]
Make SkGraphics::Term a no-op, stop calling it.

I'd remove it entirely but Android is calling it explicitly.

BUG=skia:4259

Committed: https://skia.googlesource.com/skia/+/925979f733fe8e70d84627147dee04d030423349

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

8 years agoRevert of Make SkGraphics::Term a no-op, stop calling it. (patchset #2 id:20001 of...
mtklein [Wed, 9 Sep 2015 14:22:09 +0000 (07:22 -0700)]
Revert of Make SkGraphics::Term a no-op, stop calling it. (patchset #2 id:20001 of https://codereview.chromium.org/1329853005/ )

Reason for revert:
SK_ATTR_DEPRECATED is meaningful to Android.  Don't use it.

Original issue's description:
> Make SkGraphics::Term a no-op, stop calling it.
>
> I'd remove it entirely but Android is calling it explicitly.
>
> BUG=skia:4259
>
> Committed: https://skia.googlesource.com/skia/+/925979f733fe8e70d84627147dee04d030423349

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

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

8 years agoRevert of Port uses of SkLazyPtr to SkOncePtr. (patchset #7 id:110001 of https:/...
mtklein [Wed, 9 Sep 2015 14:10:42 +0000 (07:10 -0700)]
Revert of Port uses of SkLazyPtr to SkOncePtr. (patchset #7 id:110001 of https://codereview.chromium.org/1322933005/ )

Reason for revert:
Breaks Chrome roll.

obj/skia/ext/skia_chrome.skia_memory_dump_provider.o
does not have -I include/private on its include path, but transitively includes SkMessageBus.h.

Original issue's description:
> Port uses of SkLazyPtr to SkOncePtr.
>
> This gives SkOncePtr a non-trivial destructor that uses std::default_delete
> by default.  This is overrideable, as seen in SkColorTable.
>
> SK_DECLARE_STATIC_ONCE_PTR still just leaves its pointers hanging at EOP.
>
> BUG=skia:
>
> No public API changes.
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/a1254acdb344174e761f5061c820559dab64a74c

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

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

8 years agomore zero-length changes for svg compatibility
caryclark [Wed, 9 Sep 2015 14:04:33 +0000 (07:04 -0700)]
more zero-length changes for svg compatibility

If a path contains a moveTo followed by a line or curve,
even if the line or curve has no length, SVG expects
the end caps to draw if the cap style is round or square.

Fredrik Söderquist attached a patch to the chrome bug
(slightly modified here) that fixes layout test failures
resulting from deleting special-case code in SVG
dealing with zero-length path segments.

R=reed@google.com,fs@opera.com
BUG=22974

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

8 years agoPort uses of SkLazyPtr to SkOncePtr.
mtklein [Wed, 9 Sep 2015 13:48:29 +0000 (06:48 -0700)]
Port uses of SkLazyPtr to SkOncePtr.

This gives SkOncePtr a non-trivial destructor that uses std::default_delete
by default.  This is overrideable, as seen in SkColorTable.

SK_DECLARE_STATIC_ONCE_PTR still just leaves its pointers hanging at EOP.

BUG=skia:

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

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

8 years agoProvides various implementations of Android's SkBitmapRegionDecoder.
msarett [Tue, 8 Sep 2015 22:35:32 +0000 (15:35 -0700)]
Provides various implementations of Android's SkBitmapRegionDecoder.

Implements testing in DM for these implementations.

nanobench testing will follow after this.

TBR=scroggo
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/76f755e6d54a32f9887ad254ce59a3a62f28bde4

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