platform/upstream/libSkiaSharp.git
9 years agoFix libjpeg-turbo deps file
Matt Sarett [Wed, 1 Jul 2015 22:56:52 +0000 (18:56 -0400)]
Fix libjpeg-turbo deps file

BUG=skia:

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

9 years agowhitespace
Matt Sarett [Wed, 1 Jul 2015 22:21:42 +0000 (18:21 -0400)]
whitespace

9 years agoThis change:
emmaleer [Wed, 1 Jul 2015 21:44:32 +0000 (14:44 -0700)]
This change:
- supports kGray correctly
- avoid extra call to png_get_IHDR by storing the bit depth
- call transforms as needed
- checks for tRNS alpha value in RGB and GRAY color types

BUG=skia:

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

9 years agoAdd libjpeg-turbo library (depends on yasm)
msarett [Wed, 1 Jul 2015 21:41:02 +0000 (14:41 -0700)]
Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

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

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

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

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

9 years agoRemove SkThread.h, include SkMutex.h or SkAtomics.h as appropriate.
mtklein [Wed, 1 Jul 2015 21:00:57 +0000 (14:00 -0700)]
Remove SkThread.h, include SkMutex.h or SkAtomics.h as appropriate.

SkThread.h doesn't do anything anymore execept include those two,
and thankfully, it doesn't seem to be mentioned outside Skia.

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

BUG=skia:

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

9 years agoAdd support for drawBitmapRect() to SkMiniRecorder.
mtklein [Wed, 1 Jul 2015 20:56:53 +0000 (13:56 -0700)]
Add support for drawBitmapRect() to SkMiniRecorder.

BUG=chromium:503705

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

9 years agoRevert "Move headers used by headers in include/ to include/private."
Mike Klein [Wed, 1 Jul 2015 20:35:59 +0000 (16:35 -0400)]
Revert "Move headers used by headers in include/ to include/private."

This reverts commit 928e16565f3e69cd6661e9ad300ac17e3f33c0c8.

BUG=skia:

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

9 years agoRevert of Switch SkJpegCode to libjpeg-turbo (patchset #28 id:710001 of https://coder...
msarett [Wed, 1 Jul 2015 20:11:08 +0000 (13:11 -0700)]
Revert of Switch SkJpegCode to libjpeg-turbo (patchset #28 id:710001 of https://codereview.chromium.org/1180983002/)

Reason for revert:
Broke iOS build.

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

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

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

9 years agoDon't cap num_cores at 32 on 32-bit Windows.
mtklein [Wed, 1 Jul 2015 20:06:49 +0000 (13:06 -0700)]
Don't cap num_cores at 32 on 32-bit Windows.

See here for a similar change in Ninja.  Wanna bet they just got Z840s too?
https://github.com/martine/ninja/commit/8c8834acffdc0da0d94119725929acc712c9dfad

BUG=skia:

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

9 years agocleanup GLBenches
joshualitt [Wed, 1 Jul 2015 19:39:07 +0000 (12:39 -0700)]
cleanup GLBenches

BUG=skia:

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

9 years agoAdd libjpeg-turbo library (depends on yasm)
msarett [Wed, 1 Jul 2015 19:36:18 +0000 (12:36 -0700)]
Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

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

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

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

9 years agoMove headers used by headers in include/ to include/private.
mtklein [Wed, 1 Jul 2015 18:55:42 +0000 (11:55 -0700)]
Move headers used by headers in include/ to include/private.

Some of this is transitive, like SkRecords.h used by SkMiniRecorder.h
used by (public) SkPictureRecorder.h.

BUG=skia:

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

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

9 years agoRevert of Fix SkTileImageFilter clipping/cropRect interaction issue (patchset #2...
bsalomon [Wed, 1 Jul 2015 18:02:50 +0000 (11:02 -0700)]
Revert of Fix SkTileImageFilter clipping/cropRect interaction issue (patchset #2 id:30001 of https://codereview.chromium.org/1210053003/)

Reason for revert:
Perf regression: https://code.google.com/p/chromium/issues/detail?id=505564

Original issue's description:
> Fix SkTileImageFilter clipping/cropRect interaction issue
>
> BUG=499499
>
> Committed: https://skia.googlesource.com/skia/+/157bcd0840b578060dbc3365daafffc6837da391

TBR=reed@google.com,senorblanco@google.com,senorblanco@chromium.org,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=499499

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

9 years agoRevert "Move headers used by headers in include/ to include/private."
jvanverth [Wed, 1 Jul 2015 16:45:46 +0000 (09:45 -0700)]
Revert "Move headers used by headers in include/ to include/private."

This reverts commit a89f55198bdc58f0b6f6196907ab25a6afc1a661.

Reason: breaking the roll.

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

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

9 years agoMove headers used by headers in include/ to include/private.
mtklein [Wed, 1 Jul 2015 15:41:14 +0000 (08:41 -0700)]
Move headers used by headers in include/ to include/private.

Some of this is transitive, like SkRecords.h used by SkMiniRecorder.h
used by (public) SkPictureRecorder.h.

BUG=skia:

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

9 years agofix for angle
joshualitt [Wed, 1 Jul 2015 15:34:50 +0000 (08:34 -0700)]
fix for angle

BUG=skia:

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

9 years agoThread through a flag to force SkPicture::playback() when recording subpictures.
mtklein [Wed, 1 Jul 2015 14:04:37 +0000 (07:04 -0700)]
Thread through a flag to force SkPicture::playback() when recording subpictures.

This makes nanobench picture recording benchmarks somewhat useful again,
as opposed to all taking about 5us to run no matter the content.

ATTN Sheriff: this will probably trigger perf.skia.org alerts.

BUG=skia:

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

9 years agoIn the case of subset decodes, we will often not decode to
msarett [Wed, 1 Jul 2015 13:50:35 +0000 (06:50 -0700)]
In the case of subset decodes, we will often not decode to
the bottom of the image.  In our code before this patch,
this would result in cleanup code in onFinish() never being
called.

We can allow subclasses to take ownership of the
SkScanlineDecoder in order to make sure that it is
finished/deleted before deleting the decode manager.

BUG=skia:

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

9 years agoBenchmark to test cost for additional vertex attributes
joshualitt [Wed, 1 Jul 2015 13:20:13 +0000 (06:20 -0700)]
Benchmark to test cost for additional vertex attributes

BUG=skia:

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

9 years agoFix dm failures after Cleanup legacy NVPR-related definitions
kkinnunen [Wed, 1 Jul 2015 11:31:29 +0000 (04:31 -0700)]
Fix dm failures after Cleanup legacy NVPR-related definitions

Non-NV_path_rendering drivers should always return NULL context
for NVPR context type request. Fix this.

This was needed due to the previous patch trying to implement below:
NV_path_rendering drivers should return non-NULL context
for NVPR context type request, regardless whether path
rendering is actually supported or not. This is due to SAN
bots having older drivers and trying to run nvprmsaa config.

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

9 years agoCleanup legacy NVPR-related definitions
kkinnunen [Wed, 1 Jul 2015 09:58:50 +0000 (02:58 -0700)]
Cleanup legacy NVPR-related definitions

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

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

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

Avoid failing interface creation even if nvprmsaaXX config is
requested but the driver is not recent enough. The SAN bots have
old driver, but try to run nvprmsaa16 configs. Instead, print
out a warning.

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

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

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

9 years agoRevert of Skip SkSharedMutexMultiThreaded test on TSAN bot while investigating. ...
herb [Tue, 30 Jun 2015 21:23:29 +0000 (14:23 -0700)]
Revert of Skip SkSharedMutexMultiThreaded test on TSAN bot while investigating. (patchset #1 id:1 of https://codereview.chromium.org/1213033003/)

Reason for revert:
Add tsan annotations to repair tests.

Original issue's description:
> Skip SkSharedMutexMultiThreaded test on TSAN bot while investigating.
>
> The ~ means "don't run this".  This keeps all the other bots running the code, skipping it only on the whiny TSAN bot.
>
> BUG=skia:3997
>
> Committed: https://skia.googlesource.com/skia/+/37cc0b2e31e4a078b12790253d7032d36271440c

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

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

9 years agoAdd annotations to SkSharedMutex.
herb [Tue, 30 Jun 2015 21:12:16 +0000 (14:12 -0700)]
Add annotations to SkSharedMutex.

BUG=skia:3997

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

9 years agoFix infinite matrix during an invert.
vmpstr [Tue, 30 Jun 2015 20:36:04 +0000 (13:36 -0700)]
Fix infinite matrix during an invert.

This patch ensures that when inverting a SkMatrix44, we handle small
floats properly. When inverted these can cause infinite values, but
still evaluate to true in an if condition.

BUG=chromium:498516

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

9 years agoFix CodecSubset benches seg faults for kIndex8
msarett [Tue, 30 Jun 2015 20:29:37 +0000 (13:29 -0700)]
Fix CodecSubset benches seg faults for kIndex8

All of the CodecSubset benches fail when the color type is
kIndex8.  We need to pass a color table to allocPixels()
when we want to decode to kIndex8 or it will throw a failure.

BUG=skia:

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

9 years agoAdd SkSurface factory for wrapping an FBO in SkSurface
bsalomon [Tue, 30 Jun 2015 19:04:40 +0000 (12:04 -0700)]
Add SkSurface factory for wrapping an FBO in SkSurface

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

9 years agoRename flushForExternalRead->flushForExternalIO and always call in SkSurface::getText...
bsalomon [Tue, 30 Jun 2015 18:37:35 +0000 (11:37 -0700)]
Rename flushForExternalRead->flushForExternalIO and always call in SkSurface::getTextureHandle

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

9 years agoSkip SkSharedMutexMultiThreaded test on TSAN bot while investigating.
mtklein [Tue, 30 Jun 2015 17:51:50 +0000 (10:51 -0700)]
Skip SkSharedMutexMultiThreaded test on TSAN bot while investigating.

The ~ means "don't run this".  This keeps all the other bots running the code, skipping it only on the whiny TSAN bot.

BUG=skia:3997

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

9 years agoAdd wrapper script for computing n-grams from SKPs on Cluster Telemetry
borenet [Tue, 30 Jun 2015 17:24:03 +0000 (10:24 -0700)]
Add wrapper script for computing n-grams from SKPs on Cluster Telemetry

Add --n argument

BUG=skia:3840

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

9 years agoPass arguments to SkRecords structs by const&.
mtklein [Tue, 30 Jun 2015 16:49:49 +0000 (09:49 -0700)]
Pass arguments to SkRecords structs by const&.

This has the effect of using delay_copy() on every argument,
obviating the need for delay_copy() and, crucially, having
to remember to call delay_copy().

All these constructors are fully inlined, so we'll never pay
a penalty for passing small things by reference... the compiler
can see that and just pass by value.

BUG=skia:

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

9 years agoRevert of Cleanup legacy NVPR-related definitions (patchset #4 id:60001 of https...
jvanverth [Tue, 30 Jun 2015 16:40:38 +0000 (09:40 -0700)]
Revert of Cleanup legacy NVPR-related definitions (patchset #4 id:60001 of https://codereview.chromium.org/1177243004/)

Reason for revert:
Breaks the Ubuntu *SAN bots.

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

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

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

9 years agoRemove default for --images in common flags
bsalomon [Tue, 30 Jun 2015 16:38:35 +0000 (09:38 -0700)]
Remove default for --images in common flags

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

9 years agoUse AddStory instead of deprecated AddUserStory
rmistry [Tue, 30 Jun 2015 16:20:17 +0000 (09:20 -0700)]
Use AddStory instead of deprecated AddUserStory

BUG=skia:3967
TBR=nednguyen
NOTRY=true

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

9 years agoFix blur bug on Andreno 430 with bool cast to float
bsalomon [Tue, 30 Jun 2015 16:19:14 +0000 (09:19 -0700)]
Fix blur bug on Andreno 430 with bool cast to float

BUG=skia:3944

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

9 years agoRevert of Use page_set_module.PageSet instead of story.StorySet (patchset #1 id:1...
rmistry [Tue, 30 Jun 2015 15:22:25 +0000 (08:22 -0700)]
Revert of Use page_set_module.PageSet instead of story.StorySet (patchset #1 id:1 of https://codereview.chromium.org/1221553003/)

Reason for revert:
This should no longer be required due to Ned's fix in https://codereview.chromium.org/1217823005/

Original issue's description:
> Use page_set_module.PageSet instead of story.StorySet
>
> BUG=skia:3967
> NOTRY=true
> TBR=nednguyen
>
> Committed: https://skia.googlesource.com/skia/+/7b971f0152299ae9a924252a9bfd220318497bdd

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

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

9 years agoAdd benchmarkstream to visualbench
joshualitt [Tue, 30 Jun 2015 14:43:14 +0000 (07:43 -0700)]
Add benchmarkstream to visualbench

BUG=skia:

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

9 years agoUpdate blur image filter bench to have crop variation
bsalomon [Tue, 30 Jun 2015 14:42:42 +0000 (07:42 -0700)]
Update blur image filter bench to have crop variation

BUG=skia:3944

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

9 years agoChange initializer list order to match field declaration order.
sammc [Tue, 30 Jun 2015 14:09:49 +0000 (07:09 -0700)]
Change initializer list order to match field declaration order.

BUG=chromium:505304

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

9 years agoMove visualbench to its own folder
joshualitt [Tue, 30 Jun 2015 13:50:10 +0000 (06:50 -0700)]
Move visualbench to its own folder

BUG=skia:

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

9 years agoUse page_set_module.PageSet instead of story.StorySet
rmistry [Tue, 30 Jun 2015 12:03:05 +0000 (05:03 -0700)]
Use page_set_module.PageSet instead of story.StorySet

BUG=skia:3967
NOTRY=true
TBR=nednguyen

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

9 years agoCleanup legacy NVPR-related definitions
kkinnunen [Tue, 30 Jun 2015 10:59:50 +0000 (03:59 -0700)]
Cleanup legacy NVPR-related definitions

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

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

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

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

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

9 years agoMigrate PageSets to StorySets in buildbot page sets
rmistry [Tue, 30 Jun 2015 10:54:07 +0000 (03:54 -0700)]
Migrate PageSets to StorySets in buildbot page sets

BUG=skia:3967
NOTRY=true
TBR=

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

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

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

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

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

BUG=chromium:344330

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

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

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

BUG=skia:

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

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

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

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

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

BUG=skia:

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

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

BUG=skia:

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

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

BUG=skia:

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

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

BUG=skia:3979

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

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

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

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

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

BUG=skia:

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

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

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

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

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

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

BUG=skia:

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

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

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

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

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

R=fmalita@chromium.org
BUG=502792

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

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

Reason for revert:
yasm is leaking memory :(.

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

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

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

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

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

BUG=skia:

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

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

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

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

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

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

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

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

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

BUG=skia:

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

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

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

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

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

BUG=skia:

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

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

BUG=485243

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

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

TBR=bsalomon@google.com
BUG=skia:

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

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

Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

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

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

BUG=skia:

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

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

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

BUG=skia:

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

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

BUG=skia:

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

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

BUG=skia:3984,skia:3934

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

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

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

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

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

BUG=skia:

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

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

It's too random to be helpful.

BUG=skia:

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

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

BUG=chromium:496224

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

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

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

BUG=skia:

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

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

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

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

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

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

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

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

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

BUG=skia:

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

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

Reason for revert:
fixes have landed in android

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

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

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

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

BUG=skia:

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

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

BUG=499499

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

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

BUG=skia:
TBR=

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

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

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

Let's re-land this.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BUG=skia:

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

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

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

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

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

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

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

BUG=skia:

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

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

BUG=skia:

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

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

BUG=skia:

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

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

BUG=skia:

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

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

BUG=skia:

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

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

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

BUG=skia:

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

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

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

BUG=skia:

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

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

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

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

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

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

BUG=skia:

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

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

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

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

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

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

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

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

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

BUG=skia:

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

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

BUG=skia:3840

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

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

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

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

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

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

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

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

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

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

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

BUG=skia:

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

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

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

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

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

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

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

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

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

BUG=skia:

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

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

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

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

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

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

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

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

BUG=skia:

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

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

Reason for revert:
64-bit ARM build failures.

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

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

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

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

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

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

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

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

BUG=skia:

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

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

TBR=robertphillips@google.com

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