platform/upstream/libSkiaSharp.git
8 years agomsan: build expat from source
mtklein [Sun, 7 Feb 2016 21:31:23 +0000 (13:31 -0800)]
msan: build expat from source

This should let us test it on the MSAN bot.

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

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

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

8 years agomsan: initialize buffer BlurLargeImage blurs
mtklein [Sun, 7 Feb 2016 20:23:10 +0000 (12:23 -0800)]
msan: initialize buffer BlurLargeImage blurs

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

BUG=skia:

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

8 years agomsan: these might be okay with libjpeg guarded.
mtklein [Sun, 7 Feb 2016 19:17:23 +0000 (11:17 -0800)]
msan: these might be okay with libjpeg guarded.

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

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

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

8 years agotry -O1 to speed up msan bot
mtklein [Sun, 7 Feb 2016 17:12:29 +0000 (09:12 -0800)]
try -O1 to speed up msan bot

We want it to be a debug build, but it probably doesn't need to be
completely unoptimized.

dm: 27m -> 7m
nanobench: 140m -> 33m

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

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

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

8 years agoUpdate SKP version
update-skps [Sun, 7 Feb 2016 08:44:13 +0000 (00:44 -0800)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

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

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

8 years agoupdate allocpixels to know about F16
reed [Sun, 7 Feb 2016 04:38:45 +0000 (20:38 -0800)]
update allocpixels to know about F16

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

TBR=

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

8 years agocould not resist: fast sse float <--> u16
mtklein [Sun, 7 Feb 2016 03:38:39 +0000 (19:38 -0800)]
could not resist: fast sse float <--> u16

    - generalizes the bench to float <--> {u8,u16}
    - must remember to implement NEON version at some point

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1676853002
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

8 years agoflags and hacks to get MSAN bot going
mtklein [Sun, 7 Feb 2016 03:12:23 +0000 (19:12 -0800)]
flags and hacks to get MSAN bot going

This disables a few tests in DM:
   - one BlurLargeImage GM maybe is really broken
   - FontMgrAndroidParser uses libexpat, which I've not (yet?) built from source,
     so MSAN can't see into it.

This extends some of the MSAN stifling we added around SkImageDecoder_libjpeg to SkCodec, and skips .wbmps, .pngs, and .bmps.  We're only seeing issues in colortables for .png and .bmp.

I think I can probably back out disabling Codec and the RAW image decodes...
they should all be covered by the libjpeg stifles.

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

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot

TBR=msarett@google.com

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

8 years agoUse size_t for get_row_bytes() in SkJpegCodec
msarett [Sat, 6 Feb 2016 23:58:50 +0000 (15:58 -0800)]
Use size_t for get_row_bytes() in SkJpegCodec

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

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

8 years agoupdate C++11 doc
mtklein [Sat, 6 Feb 2016 23:45:28 +0000 (15:45 -0800)]
update C++11 doc

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

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

8 years agoRevert of Improve GLSL integer support (patchset #1 id:1 of https://codereview.chromi...
dcheng [Sat, 6 Feb 2016 23:08:54 +0000 (15:08 -0800)]
Revert of Improve GLSL integer support (patchset #1 id:1 of https://codereview.chromium.org/1669853002/ )

Reason for revert:
MSAN bots are unhappy with this change: https://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20ChromeOS%20MSan%20Tests/builds/7068

Original issue's description:
> Improve GLSL integer support
>
>  - Adds shader types for uint.
>  - Adds a cap for integer support.
>  - Uses glVertexAttribIPointer for integer attribs.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1669853002
>
> Committed: https://skia.googlesource.com/skia/+/3a2caf8ecf38124f4ad21a0f6c4dabfcfa17911a

TBR=bsalomon@google.com,egdaniel@google.com,ethannicholas@google.com,cdalton@nvidia.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

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

8 years agoAdd non-inline SkRTreeFactory constructor to fix clang-cl
brucedawson [Sat, 6 Feb 2016 20:40:56 +0000 (12:40 -0800)]
Add non-inline SkRTreeFactory constructor to fix clang-cl

When Chromium is switched to build with VS 2015 that switches clang-cl
to build in -fmsc-version=1900 mode. This causes some changes in
importing of constructors and vftables which leads to link errors in
blink_platform.dll. Adding a non-inline constructor makes 1900 mode
behave consistently with 1800 mode and avoids the link error.

The root cause needs investigation but this will unblock the VS 2015
switch.

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

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

8 years agoRevert of skia: Add support for CHROMIUM_image backed textures. (patchset #17 id...
bsalomon [Sat, 6 Feb 2016 01:56:39 +0000 (17:56 -0800)]
Revert of skia: Add support for CHROMIUM_image backed textures. (patchset #17 id:340001 of https://codereview.chromium.org/1623653002/ )

Reason for revert:
New unit test is failing on Windows ANGLE bots:
http://build.chromium.org/p/client.skia/builders/Test-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-ANGLE/builds/1866/steps/dm/logs/stdio

Original issue's description:
> skia: Add support for CHROMIUM_image backed textures.
>
> I created a new abstract base class TextureStorageAllocator that consumers of
> Skia can subclass and pass back to Skia. When a surface is created with a
> pointer to a TextureStorageAllocator, any textures it creates, or that are
> derived from the original surface, will allocate and deallocate storage using
> the methods on TextureStorageAllocator.
>
> BUG=https://code.google.com/p/chromium/issues/detail?id=579664
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1623653002
>
> Committed: https://skia.googlesource.com/skia/+/92098e691f10a010e7421125ba4d44c02506bb55
>
> Committed: https://skia.googlesource.com/skia/+/7fec91ce6660190f8d7c5eb6f3061e4550cc672b

TBR=bsalomon@chromium.org,cblume@chromium.org,robertphillips@google.com,egdaniel@google.com,reed@google.com,erikchen@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=https://code.google.com/p/chromium/issues/detail?id=579664

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

8 years agoImprove GLSL integer support
cdalton [Sat, 6 Feb 2016 00:26:32 +0000 (16:26 -0800)]
Improve GLSL integer support

 - Adds shader types for uint.
 - Adds a cap for integer support.
 - Uses glVertexAttribIPointer for integer attribs.

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

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

8 years agoAdd Histogram Macros to Skia
ericrk [Fri, 5 Feb 2016 23:32:36 +0000 (15:32 -0800)]
Add Histogram Macros to Skia

Adds a set of histogram macros to Skia, modeled after Chrome's
UMA_HISTOGRAM_* macros. These allow logging of high frequency events,
and are useful to analyze real world usage of certain features.

By default, these macros are no-ops. Users can provide a custom
header file which defines these macros if they wish to collect
histogram data. Chrome will provide such a header.

I've currently only added two macros:
- SK_HISTOGRAM_BOOLEAN - logs a true/false type relationship (whether
we are tiling a texture or not on each draw).
- SK_HISTOGRAM_ENUMERATION - logs a set of potential values (which of
a number of choices were selected for the texture upload path).

We could add more unused macros at the moment, but it seems easier to
add these as needed, WDYT?

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

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

8 years agoSkPngCodec clean-ups
msarett [Fri, 5 Feb 2016 23:13:12 +0000 (15:13 -0800)]
SkPngCodec clean-ups

Use png_read_row() instead of png_read_rows(1).
All png_read_rows() does is call png_read_row() in
a loop.  This comes from Leon's comment in:
https://codereview.chromium.org/1671003004/

Also there is a bit of refactoring.

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

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

8 years agoincrease subdivision for very large cubics
caryclark [Fri, 5 Feb 2016 21:59:31 +0000 (13:59 -0800)]
increase subdivision for very large cubics

Allow 512 subdivisions for hairline cubics instead of 64
to allow very large cubics to be properly approximated with
lines.

R=reed@google.com
BUG=339297
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1674813002

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

8 years agoFix memory leaks in SurfaceClear_Gpu test
bsalomon [Fri, 5 Feb 2016 21:47:06 +0000 (13:47 -0800)]
Fix memory leaks in SurfaceClear_Gpu test

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

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

8 years agoskia: Add support for CHROMIUM_image backed textures.
erikchen [Fri, 5 Feb 2016 20:10:55 +0000 (12:10 -0800)]
skia: Add support for CHROMIUM_image backed textures.

I created a new abstract base class TextureStorageAllocator that consumers of
Skia can subclass and pass back to Skia. When a surface is created with a
pointer to a TextureStorageAllocator, any textures it creates, or that are
derived from the original surface, will allocate and deallocate storage using
the methods on TextureStorageAllocator.

BUG=https://code.google.com/p/chromium/issues/detail?id=579664
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1623653002

Committed: https://skia.googlesource.com/skia/+/92098e691f10a010e7421125ba4d44c02506bb55

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

8 years agoadd kRGBA_F16_SkColorType
reed [Fri, 5 Feb 2016 19:18:39 +0000 (11:18 -0800)]
add kRGBA_F16_SkColorType

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

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

8 years agoAdd GL indirect drawing APIs
cdalton [Fri, 5 Feb 2016 18:09:51 +0000 (10:09 -0800)]
Add GL indirect drawing APIs

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

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

8 years agoAdd support for GL_EXT_raster_multisample
cdalton [Fri, 5 Feb 2016 17:35:20 +0000 (09:35 -0800)]
Add support for GL_EXT_raster_multisample

Updates the GrGLGpu to call glRasterSamplesEXT when multisample is
enabled for a mixed sampled render target, but the stencil test is not
active.

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

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

8 years agoAdded JSON support for TextBlob et al.
ethannicholas [Fri, 5 Feb 2016 17:04:44 +0000 (09:04 -0800)]
Added JSON support for TextBlob et al.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1674643002

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

8 years agoOptimize the SkRawStream when the input is an asset stream
yujieqin [Fri, 5 Feb 2016 16:21:19 +0000 (08:21 -0800)]
Optimize the SkRawStream when the input is an asset stream

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

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

8 years agoRemove deferred clear from SkGpuDevice
bsalomon [Fri, 5 Feb 2016 15:17:34 +0000 (07:17 -0800)]
Remove deferred clear from SkGpuDevice

Add combining to GrClearBatch

Fix issue with state tracking in GrGLGpu::createTestingOnlyBackendTexture

Add tests for clearing GPU SkSurfaces and add tests for GrDrawContext::clear().

Add comment that SkCanvas::flush will resolve the RT in the GPU case.

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

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

8 years agoLast bit of GrGLSLFragmentProcessor-derived class cleanup
robertphillips [Fri, 5 Feb 2016 15:15:39 +0000 (07:15 -0800)]
Last bit of GrGLSLFragmentProcessor-derived class cleanup

I believe these are the last two that used the dispreferred constructor pattern.

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

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

8 years agoMove Google3-specific stack limitation logic to template classes.
benjaminwagner [Fri, 5 Feb 2016 15:02:38 +0000 (07:02 -0800)]
Move Google3-specific stack limitation logic to template classes.

Remove #ifdefs in other files.

Reapplies https://codereview.chromium.org/1656143003; removing the implicit constructors for GLPtr and GLPtrAlias resolves the build issue on Android.

Also reverts https://codereview.chromium.org/1663013004

Does not change the public API.

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

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

8 years agodont upload to Gold from MSAN bot
mtklein [Fri, 5 Feb 2016 14:16:59 +0000 (06:16 -0800)]
dont upload to Gold from MSAN bot

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

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

8 years agoupdate CQ with new bot names
mtklein [Fri, 5 Feb 2016 14:10:38 +0000 (06:10 -0800)]
update CQ with new bot names

NOTRY=true
NOTREECHECKS=true

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

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

8 years agoRevert of skia: Add support for CHROMIUM_image backed textures. (patchset #14 id...
jcgregorio [Fri, 5 Feb 2016 03:51:25 +0000 (19:51 -0800)]
Revert of skia: Add support for CHROMIUM_image backed textures. (patchset #14 id:260001 of https://codereview.chromium.org/1623653002/ )

Reason for revert:
Seems to causing the DEPS roll to fail:

   https://codereview.chromium.org/1668293002/

Original issue's description:
> skia: Add support for CHROMIUM_image backed textures.
>
> I created a new abstract base class TextureStorageAllocator that consumers of
> Skia can subclass and pass back to Skia. When a surface is created with a
> pointer to a TextureStorageAllocator, any textures it creates, or that are
> derived from the original surface, will allocate and deallocate storage using
> the methods on TextureStorageAllocator.
>
> BUG=https://code.google.com/p/chromium/issues/detail?id=579664
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1623653002
>
> Committed: https://skia.googlesource.com/skia/+/92098e691f10a010e7421125ba4d44c02506bb55

TBR=bsalomon@chromium.org,cblume@chromium.org,bsalomon@google.com,robertphillips@google.com,egdaniel@google.com,reed@google.com,erikchen@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=https://code.google.com/p/chromium/issues/detail?id=579664

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

8 years agoSet sRGB flag for PNGs with an sRGB chunk
msarett [Thu, 4 Feb 2016 23:37:58 +0000 (15:37 -0800)]
Set sRGB flag for PNGs with an sRGB chunk

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

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

8 years agoFix memory leak in SkSpecialSurface
robertphillips [Thu, 4 Feb 2016 22:59:58 +0000 (14:59 -0800)]
Fix memory leak in SkSpecialSurface

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

TBR=jcgregorio@google.com
NOTRY=true

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

8 years agoAdd SkAutoPixmapStorage::detachPixelsAsData()
fmalita [Thu, 4 Feb 2016 21:09:59 +0000 (13:09 -0800)]
Add SkAutoPixmapStorage::detachPixelsAsData()

Allows passing pixels ownership to clients.

BUG=skia:4896
R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1662353002

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

8 years agoskia: Add support for CHROMIUM_image backed textures.
erikchen [Thu, 4 Feb 2016 20:03:07 +0000 (12:03 -0800)]
skia: Add support for CHROMIUM_image backed textures.

I created a new abstract base class TextureStorageAllocator that consumers of
Skia can subclass and pass back to Skia. When a surface is created with a
pointer to a TextureStorageAllocator, any textures it creates, or that are
derived from the original surface, will allocate and deallocate storage using
the methods on TextureStorageAllocator.

BUG=https://code.google.com/p/chromium/issues/detail?id=579664
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1623653002

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

8 years agoextend compose-colorfilter to 4f
reed [Thu, 4 Feb 2016 19:35:27 +0000 (11:35 -0800)]
extend compose-colorfilter to 4f

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

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

8 years agospeculatively comment out chrome mac perf test crasher
caryclark [Thu, 4 Feb 2016 19:35:06 +0000 (11:35 -0800)]
speculatively comment out chrome mac perf test crasher

The Chrome Mac perf buildbot is mysteriously crashing.
Maybe it's related to this line of code.

Try taking it out to see if the crash goes away.

R=bsalomon@google.com
BUG=580313
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1663673006

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

8 years agoFixed references to MakeMatrix function
ethannicholas [Thu, 4 Feb 2016 19:19:40 +0000 (11:19 -0800)]
Fixed references to MakeMatrix function
TBR=joshualitt@chromium.org
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1666213002

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

8 years agoAdd SkSpecialImage & SkSpecialSurface classes
robertphillips [Thu, 4 Feb 2016 18:52:42 +0000 (10:52 -0800)]
Add SkSpecialImage & SkSpecialSurface classes

Initial classes.

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

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

8 years agoJSON API cleanups
ethannicholas [Thu, 4 Feb 2016 18:37:50 +0000 (10:37 -0800)]
JSON API cleanups
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1664263002

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

8 years agoDon't print dialog box prior to crashing.
djsollen [Thu, 4 Feb 2016 16:59:35 +0000 (08:59 -0800)]
Don't print dialog box prior to crashing.

This returns us to our previous behavior when we used 0xbbadbeef
to cause the process to terminate.

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

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

8 years agoImproved support for images/bitmaps in SkJSONCanvas
ethannicholas [Thu, 4 Feb 2016 14:45:25 +0000 (06:45 -0800)]
Improved support for images/bitmaps in SkJSONCanvas
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1662063003

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

8 years agoAdd SkAndroidCodec::getPixels
scroggo [Thu, 4 Feb 2016 14:14:24 +0000 (06:14 -0800)]
Add SkAndroidCodec::getPixels

This is a synonym for the version of getAndroidPixels that accepts
only three parameters (i.e. no AndroidOptions). It is very similar
to SkCodec::getPixels, so I think the motivation for naming the
version with options differently does not apply here.

Add comments to the header describing defaults.

Update the test to use a template, and delete a lot of redundant code.

Rename a variable to stop shadowing another variable.

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

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

8 years agoNext round of GrGLSLFragmentProcessor-derived class cleanup
robertphillips [Thu, 4 Feb 2016 14:11:53 +0000 (06:11 -0800)]
Next round of GrGLSLFragmentProcessor-derived class cleanup

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

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

8 years agoModify skia serve to return clip rect and view matrix
joshualitt [Thu, 4 Feb 2016 14:08:33 +0000 (06:08 -0800)]
Modify skia serve to return clip rect and view matrix

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

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

8 years agodon't get dismayed by negative scales for HQ
reed [Thu, 4 Feb 2016 03:07:54 +0000 (19:07 -0800)]
don't get dismayed by negative scales for HQ

needs https://codereview.chromium.org/1663793003/ to land first

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

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

8 years agoadd note about security and new subclasses
reed [Thu, 4 Feb 2016 00:31:35 +0000 (16:31 -0800)]
add note about security and new subclasses

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

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

8 years agoRevert of Work around exasperating Google3 Android build error. (patchset #1 id:1...
benjaminwagner [Thu, 4 Feb 2016 00:29:25 +0000 (16:29 -0800)]
Revert of Work around exasperating Google3 Android build error. (patchset #1 id:1 of https://codereview.chromium.org/1649493005/ )

Reason for revert:
This workaround no longer seems to be necessary.

Original issue's description:
> Work around exasperating Google3 Android build error.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1649493005
>
> Committed: https://skia.googlesource.com/skia/+/900901fb1ba5170549670829fc8f9d9b590ff5f0

TBR=mtklein@google.com,reed@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=skia:

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

8 years agoFix Unpremul Index8 tests
msarett [Wed, 3 Feb 2016 23:31:18 +0000 (15:31 -0800)]
Fix Unpremul Index8 tests

TBR=scroggo@google.com

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

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

8 years agoSSE optimizations for GrayAlpha -> RGBA/BGRA Premul/Unpremul
msarett [Wed, 3 Feb 2016 23:28:35 +0000 (15:28 -0800)]
SSE optimizations for GrayAlpha -> RGBA/BGRA Premul/Unpremul

Swizzle Runtime (Dell Venue 8)
Unpremul 0.17x
Premul   0.20x

PNG Decode Runtime on GrayAlpha Encoded PNGs (Dell Venue 8)
Unpremul Regular  0.91x
Unpremul ZeroInit 0.92x
Premul   Regular  0.84x
Premul   ZeroInit 0.85x

BUG=skia:4767
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1666853002
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

8 years agoMake SkImage::readYUV8Planes const
Brian Salomon [Wed, 3 Feb 2016 22:09:00 +0000 (17:09 -0500)]
Make SkImage::readYUV8Planes const

TBR=reed@google.com

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

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

8 years agoIncrease max vertex attrib count in GrPrimitiveProcessor
cdalton [Wed, 3 Feb 2016 22:02:49 +0000 (14:02 -0800)]
Increase max vertex attrib count in GrPrimitiveProcessor

Increases the max vertex attrib count in GrPrimitiveProcessor from 6 to
8. This is the required minimum by ES 2.0 for GL_MAX_VERTEX_ATTRIBS.

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

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

8 years agoSkMojo: generate on Darwin/x86_64
halcanary [Wed, 3 Feb 2016 21:54:03 +0000 (13:54 -0800)]
SkMojo: generate on Darwin/x86_64

also clean up generate and skmojo.gyp to work right.

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

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

8 years agoFix assert accessing pipeline from initBatchTracker
cdalton [Wed, 3 Feb 2016 21:29:19 +0000 (13:29 -0800)]
Fix assert accessing pipeline from initBatchTracker

Marks fPipelineInstalled as true before calling initBatchTracker. The
batch subclass ought to be able to access the newly constructed
pipeline object during its init.

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

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

8 years agoFix bugs in SkBmpCodec
msarett [Wed, 3 Feb 2016 21:12:38 +0000 (13:12 -0800)]
Fix bugs in SkBmpCodec

The decode should not depend on the requested alpha type.

These were exposed by:
https://codereview.chromium.org/1641273003

This should cause the number of untriaged images in Gold
to go to zero.

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

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

8 years agoRevert "Factor out xcode c/cpp settings into variables to apply to cmake builds."
bungeman [Wed, 3 Feb 2016 21:06:28 +0000 (13:06 -0800)]
Revert "Factor out xcode c/cpp settings into variables to apply to cmake builds."

This reverts commit 32235eac4b5c625e639757b8247f6e64ce4dc4c8.
This change should no longer be necessary now that gyp has been updated.

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

8 years agoTest unpremul decodes
msarett [Wed, 3 Feb 2016 20:39:10 +0000 (12:39 -0800)]
Test unpremul decodes

This is a workaround until SkCanvas supports drawing kUnpremul sources.

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

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

8 years agoClean up GrGLSLFragmentProcessor-derived classes
robertphillips [Wed, 3 Feb 2016 20:25:40 +0000 (12:25 -0800)]
Clean up GrGLSLFragmentProcessor-derived classes

In some other patches it was observed that many of the GrGLSLFragmentProcessor-derived classes needlessly pass a parameter to their constructors.

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

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

8 years agoReduce stack usage for Google3.
benjaminwagner [Wed, 3 Feb 2016 20:20:19 +0000 (12:20 -0800)]
Reduce stack usage for Google3.

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

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

8 years agoTreat bad values passed to --images as a fatal error
scroggo [Wed, 3 Feb 2016 20:19:11 +0000 (12:19 -0800)]
Treat bad values passed to --images as a fatal error

If an option is passed to --images that is either a non-existent path or
a folder with no images matching the supported types, assume this is
an error and exit, so they can supply a valid path instead.

Share code between DM and nanobench in SkCommonFlags.

nanobench now behaves more like DM - it will check a directory for
images that match the supported extensions.

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

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

8 years agoSkMojo: test linking Skia against the Mojo SDK
halcanary [Wed, 3 Feb 2016 19:53:18 +0000 (11:53 -0800)]
SkMojo: test linking Skia against the Mojo SDK

TODO: build on systems other than Linux.

Add mojo_skd to the DEPS.

Add a DM::Via called `mojo-`.

everything is hidden behind the gyp variable `skia_mojo`.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1644043003

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

8 years agoRoll third_party/externals/gyp 08429da795..87ac4d0e63fc (63 commits).
bungeman [Wed, 3 Feb 2016 19:25:26 +0000 (11:25 -0800)]
Roll third_party/externals/gyp 08429da795..87ac4d0e63fc (63 commits).

https://chromium.googlesource.com/external/gyp.git/+log/08429da795..87ac4d0e63fc

This is primarily to pick up changes to the CMake generator for Mac.

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

8 years agoDM: add uninteresting hashes FYI
mtklein [Wed, 3 Feb 2016 19:21:45 +0000 (11:21 -0800)]
DM: add uninteresting hashes FYI

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

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

8 years agoNEON optimizations for GrayAlpha -> RGBA/BGRA Premul/Unpremul
msarett [Wed, 3 Feb 2016 19:17:43 +0000 (11:17 -0800)]
NEON optimizations for GrayAlpha -> RGBA/BGRA Premul/Unpremul

PNG Decode Time Nexus 6P (for a test set of GrayAlpha encoded PNGs)
Regular   Unpremul 0.91x
Zero Init Unpremul 0.92x
Regular   Premul   0.84x
Zero Init Premul   0.86x

BUG=skia:4767
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1663623002
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

8 years agoAdd an avoidXfermode GM to exercise coverage
robertphillips [Wed, 3 Feb 2016 18:46:01 +0000 (10:46 -0800)]
Add an avoidXfermode GM to exercise coverage
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1663133003

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

8 years agoHandle gray alpha conversions in SkSwizzler
msarett [Wed, 3 Feb 2016 18:44:46 +0000 (10:44 -0800)]
Handle gray alpha conversions in SkSwizzler

Nothing fancy here.  By doing the entire conversion ourselves, we
only need to make one conversion pass over each row.  Additionally,
we optimize the premultiply since we know each color component of
the pixel is identical.

This will also enable us to follow up with platform specific
optimizations.

PNG Decode Time Nexus 6P (for a test set of GrayAlpha encoded PNGs)
Regular   Unpremul 0.95x
Zero Init Unpremul 0.94x
Regular   Premul   0.91x
Zero Init Premul   0.90x

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

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

8 years agoAdd --benchType and --sourceType to nanobench.
mtklein [Wed, 3 Feb 2016 18:40:54 +0000 (10:40 -0800)]
Add --benchType and --sourceType to nanobench.

To run only codec benches:
   $ out/Release/nanobench --images <> --benchType skcodec

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

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

8 years agoRename SkBitmapProcStateAutoMapper methods
fmalita [Wed, 3 Feb 2016 18:21:33 +0000 (10:21 -0800)]
Rename SkBitmapProcStateAutoMapper methods

x(),y() -> fractionalIntX(), fractionalIntY()

(to clarify the return type)

Also add fixed & int helpers.

R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1666433003
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

8 years agouse left-shift macro to fix/avoid undefined behvarior warnings
reed [Wed, 3 Feb 2016 18:16:08 +0000 (10:16 -0800)]
use left-shift macro to fix/avoid undefined behvarior warnings

motivated by https://codereview.chromium.org/1657333002/

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

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

8 years agooptimize src mode (opaque src in srcover) singleton with aa (e.g. a8 text mask)
reed [Wed, 3 Feb 2016 18:09:22 +0000 (10:09 -0800)]
optimize src mode (opaque src in srcover) singleton with aa (e.g. a8 text mask)

Before:
   8/8   MB 1 9.09ms 10.8ms 10.3ms 11.5ms 9% █▆▆▁▁▁▂▅█▆ nonrendering xfer4f_srcover_aa_1_opaque_linear
   8/8   MB 1 10.2ms 12.1ms 11.7ms 13.2ms 9% ▅▇▁▂▁▄█▆▅▆ nonrendering xfer4f_srcover_aa_1_opaque_srgb

After:
   8/8   MB 1 1.6ms 1.68ms 1.73ms 2.17ms 10% ▄▄█▁▃▁▁▂▁▁ nonrendering xfer4f_srcover_aa_1_opaque_linear
   8/8   MB 1 3.13ms 3.62ms 3.97ms 5.81ms 21% █▃▁▂▆▂▂▂▃▂ nonrendering xfer4f_srcover_aa_1_opaque_srgb

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

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

8 years agoMake helper function on GrGLSLProgramDataManager non virtual
egdaniel [Wed, 3 Feb 2016 17:52:51 +0000 (09:52 -0800)]
Make helper function on GrGLSLProgramDataManager non virtual

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

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

8 years agoDisable RAW decodes on Windows
msarett [Wed, 3 Feb 2016 17:47:56 +0000 (09:47 -0800)]
Disable RAW decodes on Windows

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

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

8 years agoextend gm to test aa[] parameter on xfer4f procs
reed [Wed, 3 Feb 2016 17:47:46 +0000 (09:47 -0800)]
extend gm to test aa[] parameter on xfer4f procs

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

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

8 years agoAdd gpu implementation of SkAvoidXfermode
robertphillips [Wed, 3 Feb 2016 17:42:49 +0000 (09:42 -0800)]
Add gpu implementation of SkAvoidXfermode
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1658623002

TBR=bsalomon@google.com

Committed: https://skia.googlesource.com/skia/+/15691a055db9b68c9b48f589e48d8a85888cf83f

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

8 years agoSupport decoding opaque to *premul
scroggo [Wed, 3 Feb 2016 17:42:42 +0000 (09:42 -0800)]
Support decoding opaque to *premul

If a client requests unpremul or premul from an opaque SkCodec,
support it. The opaque image can be treated as any of them, though
it will be less efficient to draw than if the client had used
opaque.

Change the filling code (i.e. for incomplete images) to base its color on
the source alpha type. Prior to adding the support to decode opaque to
any, it was fine to use either source or dest (which would have yielded
the same result). If the client requests non-opaque, we do not want this
to switch the fill value from black to transparent. This also allows
simplifying the signatures for getFillValue and onGetFillValue.

In CodexTest, expect the same result when decoding opaque to *premul,
and compare to the opaque version.

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

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

8 years agoHack together MSAN build.
mtklein [Wed, 3 Feb 2016 17:21:44 +0000 (09:21 -0800)]
Hack together MSAN build.

  - Build our own: freetype.
  - Avoid using: fontconfig, expat, GPU drivers.
  - Lie about safety: libjpeg (only from src/images... need to in src/codec?)

To run:
  $ tools/xsan_build memory dm
  $ out/Debug/dm -v --match ~Codec ~BlurLargeImage ~FontMgrAndroidParser

Notes:
  - Codec triggers issues in piex.
  - BlurLargeImage probably has bugs in the GM only.
  - FontMgrAndroidParser uses expat.

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

NOTREECHECKS=true

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

8 years agoRevert of Test CodecImageGenerator on GPU bots (patchset #1 id:1 of https://coderevie...
jcgregorio [Wed, 3 Feb 2016 16:31:07 +0000 (08:31 -0800)]
Revert of Test CodecImageGenerator on GPU bots (patchset #1 id:1 of https://codereview.chromium.org/1663453002/ )

Reason for revert:
Failures:
D/skia    ( 3581):  gpu image gen frame_larger_than_image.gif: Could not create a surface.
D/skia    ( 3581):  gpu image gen offsets_too_large.gif: Could not create a surface.
D/skia    ( 3581):  gpu image gen PANO_20121023_214540.jpg: Could not create a surface.
D/skia    ( 3581):  gpu image gen interlaced1.png: Could not create a surface.
D/skia    ( 3581):  gpu image gen interlaced2.png: Could not create a surface.
D/skia    ( 3581):  gpu image gen interlaced3.png: Could not create a surface.
D/skia    ( 3581):  gpu image gen Canon_5D2.dng: Could not create a surface.
D/skia    ( 3581):  gpu image gen Fuji_X20.dng: Could not create a surface.
D/skia    ( 3581):  gpu image gen HTC.dng: Could not create a surface.
D/skia    ( 3581):  gpu image gen lg_g4_iso_800.dng: Could not create a surface.
D/skia    ( 3581):  gpu image gen Canon_G7X.CR2: Could not create a surface.
D/skia    ( 3581):  gpu image gen Pentax_K5.DNG: Could not create a surface.
D/skia    ( 3581):  gpu image gen Nikon_1AW1.NEF: Could not create a surface.
D/skia    ( 3581):  gpu image gen Nikon_1J4.NEF: Could not create a surface.
D/skia    ( 3581):  gpu image gen Nikon_P330.NRW: Could not create a surface.
D/skia    ( 3581):  gpu image gen Olympus_E-PL3.ORF: Could not create a surface.
D/skia    ( 3581):  gpu image gen Olympus_PL7.ORF: Could not create a surface.
D/skia    ( 3581):  gpu image gen Pentax_K5.PEF: Could not create a surface.
D/skia    ( 3581):  gpu image gen Samsung_NX3000.SRW: Could not create a surface.

Original issue's description:
> Test CodecImageGenerator on GPU bots
>
> In crrev.com/1549473003, CodecImageGenerator implemented getYUV8Planes,
> so that we can test on a GPU bot. Update the arguments to DM so that
> we run CodecImageGenerator on GPU bots.
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1663453002
>
> Committed: https://skia.googlesource.com/skia/+/c9715406c4c9c995e5661a4ea2188fb8643845c0

TBR=msarett@google.com,scroggo@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

8 years agoAdd SkMSAN.h
mtklein [Wed, 3 Feb 2016 15:25:02 +0000 (07:25 -0800)]
Add SkMSAN.h

This lets us tag up pieces of code as requiring initialized inputs.

Almost all code requires initialized inputs, of course.  This is for
code that works correctly with uninitialized data but triggers false
positive warnings in MSAN.  E.g., imagine MSAN's found use of uninitialized
data in this max function:

  static uint8_t max(uint8_t x, uint8_t y) { return x > y ? x : y; }

There's no bug in here... if there's uninitialized data being branched upon
here for the first time, it's sure not max's fault, it's its caller's fault.

So we might do this:
  static uint8_t max(uint8_t x, uint8_t y) {
      // This function uses branching, so if MSAN finds a problem here,
      // we can assert x and y are initialized.  This will remind us the
      // problem somewhere in the caller or above, not here.
      sk_msan_assert_initialized(&x, &x+1);
      sk_masn_assert_initialized(&y, &y+1);
      return x > y ? x : y;
  }

By allowing code to assert its inputs must be initialized,
we can make the blame for use of uninitialized data more clear.

(Sometimes we have another option, to rewrite the code to avoid branching:
  static uint8_t max(uint8_t x, uint8_t y) {
      // This function is branchfree, so MSAN won't complain here.
      // No real need to assert anything as requiring initialization.
      int diff = x - y;
      int negative = diff >> (sizeof(int)*8 - 1);
      return (y & negative) | (x & ~negative);
  }
These approaches to fixing MSAN false positives are orthogonal.)

BUG=chromium:574114
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1658913005
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

8 years agoAdd option to specify a font collection when creating a
kulshin [Wed, 3 Feb 2016 15:22:52 +0000 (07:22 -0800)]
Add option to specify a font collection when creating a
DirectWrite font manager.

The corresponding Chromium change can be found at
https://codereview.chromium.org/1591883002/ .

TBR=reed
This is a trivial and long planned addition to the API.

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

8 years agoDo not upload to trusted partner's bucket if it is a dry run
rmistry [Wed, 3 Feb 2016 15:08:02 +0000 (07:08 -0800)]
Do not upload to trusted partner's bucket if it is a dry run

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

# Trybots do not exercise this code.
NOTRY=true

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

8 years agoAlways build our own zlib.
mtklein [Wed, 3 Feb 2016 15:06:27 +0000 (07:06 -0800)]
Always build our own zlib.

If we want to have an MSAN build, it'll help if we can build our own zlib
so that it's instrumented by MSAN.

Today we build our own zlib on Windows, but require the system to provide it
elsewhere.  This just makes everyone build it (except Android framework of course).

This drops the SIMD files.  They're only used to accelerate deflate
(compression), so they're not terribly interesting to us.  Again, this only
really changes compression speed on Windows bots... pretty niche.

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

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

8 years agoRevert of Add gpu implementation of SkAvoidXfermode (patchset #10 id:170001 of https...
mtklein [Wed, 3 Feb 2016 14:42:16 +0000 (06:42 -0800)]
Revert of Add gpu implementation of SkAvoidXfermode (patchset #10 id:170001 of https://codereview.chromium.org/1658623002/ )

Reason for revert:
shader compilation failures

error C1008: undefined variable "null"

https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/4064/steps/dm/logs/stdio

Original issue's description:
> Add gpu implementation of SkAvoidXfermode
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1658623002
>
> TBR=bsalomon@google.com
>
> Committed: https://skia.googlesource.com/skia/+/15691a055db9b68c9b48f589e48d8a85888cf83f

TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

8 years agoTest CodecImageGenerator on GPU bots
scroggo [Wed, 3 Feb 2016 14:23:06 +0000 (06:23 -0800)]
Test CodecImageGenerator on GPU bots

In crrev.com/1549473003, CodecImageGenerator implemented getYUV8Planes,
so that we can test on a GPU bot. Update the arguments to DM so that
we run CodecImageGenerator on GPU bots.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1663453002

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

8 years agoFix delete_path in webpages_playback.py
rmistry [Wed, 3 Feb 2016 13:58:31 +0000 (05:58 -0800)]
Fix delete_path in webpages_playback.py

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

# Trybots do not exercise this code.
NOTRY=true

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

8 years agoUse SkBitmapProcStateAutoMapper for filter samplers also
fmalita [Wed, 3 Feb 2016 13:44:21 +0000 (05:44 -0800)]
Use SkBitmapProcStateAutoMapper for filter samplers also

Observation: filter procs are also biased by s.fFilterOne{X,Y} / 2.  They all do
something along these lines:

  s.fInvProc(s.fInvMatrix,
    SkIntToScalar(x) + SK_ScalarHalf,
    SkIntToScalar(y) + SK_ScalarHalf, &srcPt);

  SkFixed fx = SkScalarToFixed(srcPt.fX) - (s.fFilterOneX >> 1);
  SkFixed fy = SkScalarToFixed(srcPt.fY) - (s.fFilterOneX >> 1);

It's trivial to extend SkBitmapProcStateAutoMapper to handle this internally, and
convert everyone off explicit mapping.

R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1661613002
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

8 years agoAdd gpu implementation of SkAvoidXfermode
robertphillips [Wed, 3 Feb 2016 13:20:09 +0000 (05:20 -0800)]
Add gpu implementation of SkAvoidXfermode
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1658623002

TBR=bsalomon@google.com

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

8 years agoDelete skp dir in partner bucket before uploading
rmistry [Wed, 3 Feb 2016 12:27:54 +0000 (04:27 -0800)]
Delete skp dir in partner bucket before uploading

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

# Trybots do not exercise this code.
NOTRY=true
TBR=borenet

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

8 years agoUpdate the dng_sdk version. The new version handles the posix_memalign() better
yujieqin [Wed, 3 Feb 2016 08:50:10 +0000 (00:50 -0800)]
Update the dng_sdk version. The new version handles the posix_memalign() better
Remove the '-DNO_POSIX_MEMALIGN'
With this change, most new Android (API>=17) should be able to use posix_memalign()

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

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

8 years agoTemplatize GrNonAtomicRef
cdalton [Wed, 3 Feb 2016 06:46:16 +0000 (22:46 -0800)]
Templatize GrNonAtomicRef

Templatizes GrNonAtomicRef so it does not necessarily require a virtual
destructor. This also gives us the flexibility to specialize how
different types get deleted.

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

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

8 years agoFix for rounded-rect clips with filters.
senorblanco [Wed, 3 Feb 2016 02:44:15 +0000 (18:44 -0800)]
Fix for rounded-rect clips with filters.

Don't use the base canvas size to limit raster of complex clips, since
the top canvas size may actually be larger (e.g., a blur filter which
expands the clip bounds to accommodate filter margins). Use the top
canvas bounds instead.

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

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

8 years agoRevert of Move Google3-specific stack limitation logic to template classes. Remove...
benjaminwagner [Wed, 3 Feb 2016 00:01:39 +0000 (16:01 -0800)]
Revert of Move Google3-specific stack limitation logic to template classes. Remove #ifdefs in other files. (patchset #2 id:50001 of https://codereview.chromium.org/1656143003/ )

Reason for revert:
See https://codereview.chromium.org/1665603002

Original issue's description:
> Move Google3-specific stack limitation logic to template classes. Remove #ifdefs in other files.
>
> Does not change the public API.
>
> TBR=reed
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1656143003
>
> Committed: https://skia.googlesource.com/skia/+/c92159c8250c62cc47b7b63686538d61d54d2835

TBR=mtklein@google.com,reed@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

8 years agoRecreate SKPs in a single directory for trusted partners.
rmistry [Tue, 2 Feb 2016 21:55:38 +0000 (13:55 -0800)]
Recreate SKPs in a single directory for trusted partners.

Context: https://bugs.chromium.org/p/skia/issues/detail?id=3751#c15

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

# Trybots do not run this code
NOTRY=true
TBR=borenet

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

8 years agoSSSE3 optimizations for gray -> RGBA (or BGRA)
msarett [Tue, 2 Feb 2016 21:41:03 +0000 (13:41 -0800)]
SSSE3 optimizations for gray -> RGBA (or BGRA)

Swizzle Bench Runtime
Dell Venue 8 0.16x
HP z620      0.47x

PNG Decode Time (for test set of gray encoded PNGs)
Dell Venue 8 0.80x
HP z620      0.96x

BUG=skia:4767
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1657393002
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

8 years agoModify skiaserve to support downloads
joshualitt [Tue, 2 Feb 2016 21:02:33 +0000 (13:02 -0800)]
Modify skiaserve to support downloads

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

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

8 years agoNEON optimizations for gray -> RGBA (or BGRA) conversions
msarett [Tue, 2 Feb 2016 20:59:45 +0000 (12:59 -0800)]
NEON optimizations for gray -> RGBA (or BGRA) conversions

Swizzle Bench Runtime
Nexus 6P 0.32x
Nexus 9  0.89x

PNG Decode Time (for test set of gray encoded PNGs)
Nexus 6P 0.88x
Nexus 9  0.91x

BUG=skia:4767
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1656383002
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

8 years agoMove Google3-specific stack limitation logic to template classes. Remove #ifdefs...
benjaminwagner [Tue, 2 Feb 2016 20:48:13 +0000 (12:48 -0800)]
Move Google3-specific stack limitation logic to template classes. Remove #ifdefs in other files.

Does not change the public API.

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

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

8 years agoUpdate SK_IMAGE_VERSION to test RAW
scroggo [Tue, 2 Feb 2016 19:56:33 +0000 (11:56 -0800)]
Update SK_IMAGE_VERSION to test RAW

Bump SK_IMAGE_VERSION to test the images in v2 in GoogleStorage, which
includes the images from v1 plus test images for SkRawCodec.

Only define skia_decodes_raw on platforms that support it, rather than
defining it always and checking additional conditions to determine
whether to support raw. Further, define it and SK_CODEC_DECODES_RAW
for all targets, so we can use the compile flag in other targets.

In DM, exclude the raw extensions if SK_CODEC_DECODES_RAW is not defined.

Blacklist raw extensions on NexusPlayer, which was running out of memory
when running them.

BUG=skia:4829

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

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

8 years agoModify skiaserve to support drawTo
joshualitt [Tue, 2 Feb 2016 19:07:39 +0000 (11:07 -0800)]
Modify skiaserve to support drawTo

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

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

8 years agounroll srcover_1 for blending a single color
reed [Tue, 2 Feb 2016 19:00:55 +0000 (11:00 -0800)]
unroll srcover_1 for blending a single color

Before:
curr/maxrss loops min median mean max stddev samples    config bench
   8/8   MB 1 1.59ms 1.82ms 1.89ms 2.59ms 14% ▁█▃▃▃▃▃▃▃▃ nonrendering xfer4f_srcover_1_alpha_linear
   8/8   MB 1 3.25ms 4.25ms 4.16ms 5.87ms 21% ▁▅▂▁▁▄█▄▅▂ nonrendering xfer4f_srcover_1_alpha_srgb

After:
curr/maxrss loops min median mean max stddev samples    config bench
   8/8   MB 1 915µs 915µs 946µs 1.02ms 4% █▄▇▁▁▁▆▁▁▁ nonrendering xfer4f_srcover_1_alpha_linear
   8/8   MB 1 2.69ms 3.08ms 3.03ms 3.63ms 10% ▁▃▂▁▁█▄▄▄▆ nonrendering xfer4f_srcover_1_alpha_srgb

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

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

8 years agoFix SampleApp instructions in the Windows quick-start
brianosman [Tue, 2 Feb 2016 18:59:30 +0000 (10:59 -0800)]
Fix SampleApp instructions in the Windows quick-start

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

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

8 years agoRemove SK_SUPPORT_LEGACY_SAMPLER_BIAS
fmalita [Tue, 2 Feb 2016 18:41:35 +0000 (10:41 -0800)]
Remove SK_SUPPORT_LEGACY_SAMPLER_BIAS

The guard has been removed from Chromium, this is now dead code.

TBR=reed@google.com,caryclark@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1658563002

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