platform/upstream/libSkiaSharp.git
8 years agoRevert of Normalize SkXfermode_opts.h argument order as d,s[,aa]. (patchset #1 id...
mtklein [Wed, 12 Aug 2015 20:51:27 +0000 (13:51 -0700)]
Revert of Normalize SkXfermode_opts.h argument order as d,s[,aa]. (patchset #1 id:1 of https://codereview.chromium.org/1289903002/ )

Reason for revert:
?

Original issue's description:
> Normalize SkXfermode_opts.h argument order as d,s[,aa].
>
> At head they're s,d[,aa] in SkXfermode_opts.h but Sk4px::Map* expect d,s[,aa]
> so we ended up having to write weird little lambda shims to match impedance.
>
> There's no reason for these to disagree, and d,s[,aa] is the One True Order
> (because no matter what you're doing in graphics, there's always a dst).
>
> Should be no perf or image diff, though I'm suspicious it might help MSVC code generation.
>
> BUG=skia:4117
>
> Committed: https://skia.googlesource.com/skia/+/6028a8476504022fe40b6870b1460b5e4a80969f

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

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

8 years agoUse forwarding with SkTLazy::init.
bungeman [Wed, 12 Aug 2015 20:37:16 +0000 (13:37 -0700)]
Use forwarding with SkTLazy::init.

This allows removal the difficult to use (and so currently unused)
placement new and related macros to allow any constructor of T to
be used to initilize the storage of SkTLazy. This also properly
aligns the SkTLazy storage.

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

8 years agoAdd gyp support for new GPU backend
jvanverth [Wed, 12 Aug 2015 19:58:13 +0000 (12:58 -0700)]
Add gyp support for new GPU backend

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

8 years agoRefactor helper function for SkBitmapShader to GrFragmentProcessor
joshualitt [Wed, 12 Aug 2015 19:57:54 +0000 (12:57 -0700)]
Refactor helper function for SkBitmapShader to GrFragmentProcessor

BUG=skia:

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

8 years agoRevert[4] "move some public headers into private"
reed [Wed, 12 Aug 2015 19:53:10 +0000 (12:53 -0700)]
Revert[4] "move some public headers into private"

This reverts commit 9cdcabefa33d49febfdb45e388e762b4dee8dd6f.

BUG=skia:
TBR=

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

8 years agobroken bots war
joshualitt [Wed, 12 Aug 2015 19:52:47 +0000 (12:52 -0700)]
broken bots war

TBR=bsalomon@google.com
BUG=skia:

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

8 years agoAdd support for a new GPU interface
jvanverth [Wed, 12 Aug 2015 19:19:36 +0000 (12:19 -0700)]
Add support for a new GPU interface

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

8 years agoRevert of Refactor to put SkXfermode_opts inside SK_OPTS_NS. (patchset #1 id:1 of...
mtklein [Wed, 12 Aug 2015 18:56:43 +0000 (11:56 -0700)]
Revert of Refactor to put SkXfermode_opts inside SK_OPTS_NS. (patchset #1 id:1 of https://codereview.chromium.org/1286093004/ )

Reason for revert:
Maybe causing test / gold problems?

Original issue's description:
> Refactor to put SkXfermode_opts inside SK_OPTS_NS.
>
> Without this refactor I was getting warnings previously about having code
> inside namespace SK_OPTS_NS (e.g. namespace sse2, namespace neon) referring to
> code inside an anonymous namespace (Sk4px, SkPMFloat, Sk4f, etc) [1].
>
> That low-level code was in an anonymous namespace to allow multiple independent
> copies of its methods to be instantiated without the linker getting confused /
> offended about violating the One Definition Rule.  This was only happening in
> Debug mode where the methods were not being inlined.
>
> To fix this all, I've force-inlined the methods of the low-level code and
> removed the anonymous namespace.
>
> BUG=skia:4117
>
>
> [1] Here is what those errors looked like:
>
> In file included from ../../../../src/core/SkOpts.cpp:18:0:
> ../../../../src/opts/SkXfermode_opts.h:193:7: error: 'portable::Sk4pxXfermode' has a field 'portable::Sk4pxXfermode::fProc4' whose type uses the anonymous namespace [-Werror]
>  class Sk4pxXfermode : public SkProcCoeffXfermode {
>        ^
> ../../../../src/opts/SkXfermode_opts.h:193:7: error: 'portable::Sk4pxXfermode' has a field 'portable::Sk4pxXfermode::fAAProc4' whose type uses the anonymous namespace [-Werror]
> ../../../../src/opts/SkXfermode_opts.h:235:7: error: 'portable::SkPMFloatXfermode' has a field 'portable::SkPMFloatXfermode::fProcF' whose type uses the anonymous namespace [-Werror]
>  class SkPMFloatXfermode : public SkProcCoeffXfermode {
>        ^
> cc1plus: all warnings being treated as errors
>
> Committed: https://skia.googlesource.com/skia/+/b07bee3121680b53b98b780ac08d14d374dd4c6f

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

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

8 years agoAdd GrAARectBatch which can handle a local matrix
joshualitt [Wed, 12 Aug 2015 18:51:46 +0000 (11:51 -0700)]
Add GrAARectBatch which can handle a local matrix

BUG=skia:

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

8 years agoAdd override to GrAAFillRectBatch::onCombineIfPossible
bsalomon [Wed, 12 Aug 2015 18:28:11 +0000 (11:28 -0700)]
Add override to GrAAFillRectBatch::onCombineIfPossible

TBR=robertphillips@google.com

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

8 years agoSkPDF: Move SkFlate into src/pdf (part 1/3) [reland]
halcanary [Wed, 12 Aug 2015 18:24:40 +0000 (11:24 -0700)]
SkPDF:  Move SkFlate into src/pdf (part 1/3) [reland]

Rename to SkDeflate so Chromium builders continue to work

Next, we change remove SkFlate from Chromium build files, then we can delete SkFlate.

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

8 years agoCheck for xfer barriers in GrBatch, auto-issue barriers in GrGpu
bsalomon [Wed, 12 Aug 2015 18:14:50 +0000 (11:14 -0700)]
Check for xfer barriers in GrBatch, auto-issue barriers in GrGpu

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

8 years agoNormalize SkXfermode_opts.h argument order as d,s[,aa].
mtklein [Wed, 12 Aug 2015 17:52:25 +0000 (10:52 -0700)]
Normalize SkXfermode_opts.h argument order as d,s[,aa].

At head they're s,d[,aa] in SkXfermode_opts.h but Sk4px::Map* expect d,s[,aa]
so we ended up having to write weird little lambda shims to match impedance.

There's no reason for these to disagree, and d,s[,aa] is the One True Order
(because no matter what you're doing in graphics, there's always a dst).

Should be no perf or image diff, though I'm suspicious it might help MSVC code generation.

BUG=skia:4117

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

8 years agoRefactor to put SkXfermode_opts inside SK_OPTS_NS.
mtklein [Wed, 12 Aug 2015 17:23:37 +0000 (10:23 -0700)]
Refactor to put SkXfermode_opts inside SK_OPTS_NS.

Without this refactor I was getting warnings previously about having code
inside namespace SK_OPTS_NS (e.g. namespace sse2, namespace neon) referring to
code inside an anonymous namespace (Sk4px, SkPMFloat, Sk4f, etc) [1].

That low-level code was in an anonymous namespace to allow multiple independent
copies of its methods to be instantiated without the linker getting confused /
offended about violating the One Definition Rule.  This was only happening in
Debug mode where the methods were not being inlined.

To fix this all, I've force-inlined the methods of the low-level code and
removed the anonymous namespace.

BUG=skia:4117

[1] Here is what those errors looked like:

In file included from ../../../../src/core/SkOpts.cpp:18:0:
../../../../src/opts/SkXfermode_opts.h:193:7: error: 'portable::Sk4pxXfermode' has a field 'portable::Sk4pxXfermode::fProc4' whose type uses the anonymous namespace [-Werror]
 class Sk4pxXfermode : public SkProcCoeffXfermode {
       ^
../../../../src/opts/SkXfermode_opts.h:193:7: error: 'portable::Sk4pxXfermode' has a field 'portable::Sk4pxXfermode::fAAProc4' whose type uses the anonymous namespace [-Werror]
../../../../src/opts/SkXfermode_opts.h:235:7: error: 'portable::SkPMFloatXfermode' has a field 'portable::SkPMFloatXfermode::fProcF' whose type uses the anonymous namespace [-Werror]
 class SkPMFloatXfermode : public SkProcCoeffXfermode {
       ^
cc1plus: all warnings being treated as errors

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

8 years agoAll child GrFragmentProcs' transforms and textures will be stored in the root GrFragm...
wangyix [Wed, 12 Aug 2015 16:40:47 +0000 (09:40 -0700)]
All child GrFragmentProcs' transforms and textures will be stored in the root GrFragmentProc in preorder

Changed childProcessor(i) to return const referencd

Fixed rootProc/parentProc offset issues; renamed a few things.

added nonempty check to gatherTransforms to avoid segfault

removed recursive append_gr_coord_transforms() from GrGLProgramBuilder

BUILDS! Changed num*includeProc() calls to num() calls

added gatherCoordTransforms(). added coordTransforms() for root proc only

Modified GrFragmentProcessor to append child proc transforms and textures to root proc's arrays.

BUG=skia:4182

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

8 years agoRevert of SkPDF: Move SkFlate into src/pdf (part 1/3) (patchset #1 id:1 of https...
halcanary [Wed, 12 Aug 2015 15:53:04 +0000 (08:53 -0700)]
Revert of SkPDF:  Move SkFlate into src/pdf (part 1/3) (patchset #1 id:1 of https://codereview.chromium.org/1285913002/ )

Reason for revert:
broke gn ("Duplicate object file")

Original issue's description:
> SkPDF:  Move SkFlate into src/pdf (part 1/3)
>
> Next, we change Chromium build files, then we do the actual move.
>
> Committed: https://skia.googlesource.com/skia/+/e14c1fe04fc72ec9bcf55820b5c65a71d7d0a764

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

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

8 years agoUpdate CodexTest to test valid_alpha.
scroggo [Wed, 12 Aug 2015 15:31:44 +0000 (08:31 -0700)]
Update CodexTest to test valid_alpha.

Add a static function to CodexTest, which consolidates decoding,
comparing to an expected SkCodec::Result, and optionally comparing to a
digest.

Test decoding non-opaque to opaque (fails) and premul to unpremul/vice
versa (succeeds).

BUG=skia:3475

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

8 years agoRevise DrawAtlasBatch to get rid of one copy when generating the batch.
jvanverth [Wed, 12 Aug 2015 15:15:31 +0000 (08:15 -0700)]
Revise DrawAtlasBatch to get rid of one copy when generating the batch.

This doesn't appear to have much affect on perf in SampleApp, but
it should avoid some copies and replaces a couple of STArrays
with one that just does a memcpy in the copy constructor.

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

8 years agoRemove trace marker support from GrBufferedDrawTarget
bsalomon [Wed, 12 Aug 2015 15:11:22 +0000 (08:11 -0700)]
Remove trace marker support from GrBufferedDrawTarget

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

8 years agoFix bmp RLE "bug"
msarett [Wed, 12 Aug 2015 15:08:56 +0000 (08:08 -0700)]
Fix bmp RLE "bug"

Chromium's test suite contains an RLE image that reports a certain
file size in the header, but then contains additional encoded data.
Our bmp decoder would only decode half of the image, before stopping.

With this fix, we check for additional data before returning
kIncompleteInput.

If this lands, I will upload the test image to the bots.

Also adding an invalid image test to CodexTest.

BUG=skia:

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

8 years agoSkPDF: Move SkFlate into src/pdf (part 1/3)
halcanary [Wed, 12 Aug 2015 14:39:33 +0000 (07:39 -0700)]
SkPDF:  Move SkFlate into src/pdf (part 1/3)

Next, we change Chromium build files, then we do the actual move.

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

8 years agoC API: add radial, sweep, and two-point conical gradient shaders
halcanary [Wed, 12 Aug 2015 14:37:34 +0000 (07:37 -0700)]
C API: add radial, sweep, and two-point conical gradient shaders

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

8 years agoConsolidate SkCodec functions for handling rewind
scroggo [Wed, 12 Aug 2015 14:24:13 +0000 (07:24 -0700)]
Consolidate SkCodec functions for handling rewind

Previously, many of our codec implementations followed the same
pattern (often in a function named handleRewind):

switch (this->rewindIfNeeded()) {
  case CouldNotRewind:
    return CouldNotRewind;
  case NoRewindNecessary:
    // keep going
    break;
  case Rewound:
     <re-read header etc>
    break;
}

In this CL, remove the enum, and put the piece that happens in the
Rewound case into a virtual function, onRewind. rewindIfNeeded now
contains the common pieces from various functions named handleRewind.

In SkBmpCodec, add a function that returns whether the BMP is in ICO,
so it can have a common implementation for onRewind.

BUG=skia:3257

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

8 years agoAdd ability to pass in an optional path to additional unit tests to run.
egdaniel [Wed, 12 Aug 2015 13:51:08 +0000 (06:51 -0700)]
Add ability to pass in an optional path to additional unit tests to run.

BUG=skia:

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

8 years agoMove AAFillRect into CPP for templatization
joshualitt [Wed, 12 Aug 2015 13:36:57 +0000 (06:36 -0700)]
Move AAFillRect into CPP for templatization

BUG=skia:

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

8 years agoRevert[3] "move some public headers into private"
reed [Wed, 12 Aug 2015 12:33:12 +0000 (05:33 -0700)]
Revert[3] "move some public headers into private"

This reverts commit 9d20ee57d72a3850a6b51f2f2b00e00978be3864.

BUG=skia:
TBR=

failures here: https://codereview.chromium.org/1286103004

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

8 years agoRevert[2] "move some public headers into private"
reed [Wed, 12 Aug 2015 11:42:08 +0000 (04:42 -0700)]
Revert[2] "move some public headers into private"

This reverts commit 4cf9e7e14797f87f08b2078fa1afaf731cbf8f52.

BUG=skia:
TBR=
NOTRY=True

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

8 years agoMake GrBatch carry its own GrPipeline
bsalomon [Tue, 11 Aug 2015 21:47:42 +0000 (14:47 -0700)]
Make GrBatch carry its own GrPipeline

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

8 years agoHopefully fix ios bots
msarett [Tue, 11 Aug 2015 21:44:02 +0000 (14:44 -0700)]
Hopefully fix ios bots
BUG=skia:

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

8 years agoSkPDF: clean up overuse of SK_SUPPORT_PDF
halcanary [Tue, 11 Aug 2015 20:35:12 +0000 (13:35 -0700)]
SkPDF: clean up overuse of SK_SUPPORT_PDF

When possible use run-time checks (via SkDocument::CreatePDF)
When PDF is disabled, do not compile tests/PDF*.cpp

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

8 years agoSwitching Skia to chromium's libjpeg-turbo
msarett [Tue, 11 Aug 2015 20:32:54 +0000 (13:32 -0700)]
Switching Skia to chromium's libjpeg-turbo

Compile SkJpegCodec and SkImageDecoder_libjpeg with
chromium's libjpeg-turbo.  SkImageDecoder_libjpeg still uses
libjpeg on Android and the Android framework.  SkJpegCodec is
still not compiled on the Android framework.

BUG=skia:

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

8 years agodecrement lockcount if we failed to get pixels
reed [Tue, 11 Aug 2015 19:23:45 +0000 (12:23 -0700)]
decrement lockcount if we failed to get pixels

BUG=519581

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

8 years agoAdd high resolution WallTimer to SampleApp
jvanverth [Tue, 11 Aug 2015 18:07:07 +0000 (11:07 -0700)]
Add high resolution WallTimer to SampleApp

Gives better than 1 ms results when timing framerate.

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

8 years agoSkPDF: allow PDF module to be disabled in DM and SampleApp
halcanary [Tue, 11 Aug 2015 17:30:12 +0000 (10:30 -0700)]
SkPDF: allow PDF module to be disabled in DM and SampleApp

To disable PDF:

    GYP_DEFINES='skia_pdf=0' bin/sync-and-gyp
    ninja -C out/Debug dm SampleApp

When disabled, SkDocument::CreatePDF() always returns NULL.

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

8 years agoRevert "move some public headers into private"
reed [Tue, 11 Aug 2015 15:39:18 +0000 (08:39 -0700)]
Revert "move some public headers into private"

This reverts commit eedf0fb20489bc6c3706539dd6ab499f41cbe048.

BUG=skia:
TBR=
NOTRY=True

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

8 years agomove some public headers into private
reed [Tue, 11 Aug 2015 14:15:00 +0000 (07:15 -0700)]
move some public headers into private

BUG=skia:

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

8 years agoMove Perf documentation to the testing section
hcm [Tue, 11 Aug 2015 14:00:01 +0000 (07:00 -0700)]
Move Perf documentation to the testing section

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

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

8 years agoMake initBatchTracker private, move towards pipeline on batch
bsalomon [Mon, 10 Aug 2015 20:03:50 +0000 (13:03 -0700)]
Make initBatchTracker private, move towards pipeline on batch

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

8 years agoSk4px blit mask.
mtklein [Mon, 10 Aug 2015 19:58:17 +0000 (12:58 -0700)]
Sk4px blit mask.

Local SKP nanobenching ranges SSE between 1.05x and 0.87x, much more heavily weighted toward <1.0x ratios (speedups).
I profiled the top five regressions (1.05x-1.01x) and they look like noise.  Will follow up after broad bot results.

NEON looks similar but less extreme than SSE changes, ranging between 1.02x and 0.95x, again mostly speedups in 0.99x-0.97x range.

The old code trifurcated into black, opaque-but-not-black, and general versions as a function of the constant src color.  I did not see a significant difference between general and opaque-but-not-black, and I don't think a black version would be faster using SIMD.  So we have here just one version of the code, the general version.

Somewhat fantastically, I see no pixel diffs on GMs or SKPs.

I will be following up with more CLs for the other procs called by SkBlitMask.
BUG=skia:

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

8 years agoRemove GrPipelineOptimizations member from GrPipeline
bsalomon [Mon, 10 Aug 2015 19:01:15 +0000 (12:01 -0700)]
Remove GrPipelineOptimizations member from GrPipeline

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

8 years agotrivial CL to add drawBatch to GrDrawContext
joshualitt [Mon, 10 Aug 2015 18:59:02 +0000 (11:59 -0700)]
trivial CL to add drawBatch to GrDrawContext

TBR=bsalomon@google.com
BUG=skia:

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

8 years agoExpand functionality of GrRectBatchFactory with AARects
joshualitt [Mon, 10 Aug 2015 18:40:56 +0000 (11:40 -0700)]
Expand functionality of GrRectBatchFactory with AARects

BUG=skia:

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

8 years agoFix to call SkDelete_array instead of SkDelete to fix ASAN error.
egdaniel [Mon, 10 Aug 2015 18:39:10 +0000 (11:39 -0700)]
Fix to call SkDelete_array instead of SkDelete to fix ASAN error.
TBR=mtklein@google.com

BUG=skia:

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

8 years agoRevert of [TextBlob] Fall back to TightRunBounds when the font bounds are empty ...
egdaniel [Mon, 10 Aug 2015 18:02:46 +0000 (11:02 -0700)]
Revert of [TextBlob] Fall back to TightRunBounds when the font bounds are empty (patchset #1 id:1 of https://codereview.chromium.org/1284693002/ )

Reason for revert:
Breaking DEPS roll on Assert in SkTextBlobBuilder::TightRunBounds.

Original issue's description:
> [TextBlob] Fall back to TightRunBounds when the font bounds are empty
>
> Empty font bounds are likely an indication of a font bug.  As a best
> effort, we can use TightRunBounds in this easily detectable case.
>
> BUG=507022
> R=reed@google.com,bungeman@google.com
>
> Committed: https://skia.googlesource.com/skia/+/d6b99cc6b84b3ec864221cbe9945d203bd9eb072

TBR=bungeman@google.com,reed@google.com,fmalita@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=507022

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

8 years agoRename GrPipelineInfo to GrPipelineOptimizations
bsalomon [Mon, 10 Aug 2015 17:47:29 +0000 (10:47 -0700)]
Rename GrPipelineInfo to GrPipelineOptimizations

TBR=joshualitt@google.com

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

8 years agoMove GrStrokeRectBatch creation to behind factory
joshualitt [Mon, 10 Aug 2015 17:30:14 +0000 (10:30 -0700)]
Move GrStrokeRectBatch creation to behind factory

BUG=skia:

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

8 years agoCreate GrRectBatchFactory
joshualitt [Mon, 10 Aug 2015 17:08:26 +0000 (10:08 -0700)]
Create GrRectBatchFactory

BUG=skia:

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

8 years agoThis is a speculative fix for the crash on IOS
egdaniel [Mon, 10 Aug 2015 17:06:43 +0000 (10:06 -0700)]
This is a speculative fix for the crash on IOS
TBR=mtklein

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

8 years ago[TextBlob] Fall back to TightRunBounds when the font bounds are empty
fmalita [Mon, 10 Aug 2015 16:24:31 +0000 (09:24 -0700)]
[TextBlob] Fall back to TightRunBounds when the font bounds are empty

Empty font bounds are likely an indication of a font bug.  As a best
effort, we can use TightRunBounds in this easily detectable case.

BUG=507022
R=reed@google.com,bungeman@google.com

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

8 years agomove Stroke Rect and AAFill Rect to their own file
joshualitt [Mon, 10 Aug 2015 16:03:51 +0000 (09:03 -0700)]
move Stroke Rect and AAFill Rect to their own file

BUG=skia:

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

8 years agoEnsure that android "release" apps are signed with debug key
djsollen [Mon, 10 Aug 2015 15:58:03 +0000 (08:58 -0700)]
Ensure that android "release" apps are signed with debug key

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

8 years agoSkPDF: add assert for that SkWStream behaves.
halcanary [Mon, 10 Aug 2015 15:49:03 +0000 (08:49 -0700)]
SkPDF: add assert for that SkWStream behaves.

Motivation:  this might catch future issues like this.

BUG=skia:4181

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

8 years agoUse a factory function to create GrPipeline and remove unused member
bsalomon [Mon, 10 Aug 2015 15:23:11 +0000 (08:23 -0700)]
Use a factory function to create GrPipeline and remove unused member

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

8 years agoWire up testcreate function for GrDrawAtlasBatch
joshualitt [Mon, 10 Aug 2015 15:02:58 +0000 (08:02 -0700)]
Wire up testcreate function for GrDrawAtlasBatch

BUG=skia:

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

8 years agoRemove an unused function.
thakis [Mon, 10 Aug 2015 13:05:17 +0000 (06:05 -0700)]
Remove an unused function.

BUG=chromium:505316

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

8 years agoapi helpers inspired by blink use-cases
reed [Mon, 10 Aug 2015 02:41:13 +0000 (19:41 -0700)]
api helpers inspired by blink use-cases

BUG=skia:
TBR=

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

8 years agoremove unneeded _DRAWIMAGERECT flags
reed [Sat, 8 Aug 2015 02:09:09 +0000 (19:09 -0700)]
remove unneeded _DRAWIMAGERECT flags

BUG=skia:
TBR=

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

8 years agofixup precision with configurable atlas
joshualitt [Fri, 7 Aug 2015 20:36:44 +0000 (13:36 -0700)]
fixup precision with configurable atlas

BUG=skia:

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

8 years agoRevert of Update libwebp and resume testing scaled webp (patchset #2 id:20001 of...
scroggo [Fri, 7 Aug 2015 19:53:25 +0000 (12:53 -0700)]
Revert of Update libwebp and resume testing scaled webp (patchset #2 id:20001 of https://codereview.chromium.org/1280073002/ )

Reason for revert:
Compile failures, e.g.

http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-Arm7-Debug-Android_NoNeon/builds/1427/steps/build%20most/logs/stdio

Original issue's description:
> Update libwebp and resume testing scaled webp
>
> libwebp has a fix for [1]. Update to the commit that contains the fix.
>
> Update libwebp.gypi, corresponding to libwebp's latest makefile.
>
> Turn back on DM testing for scaled webp, now that it should no longer
> use uninitialized memory.
>
> Fix a warning in config.h
>
> [1] https://code.google.com/p/webp/issues/detail?id=254
>
> BUG=skia:4038
>
> Committed: https://skia.googlesource.com/skia/+/0575d3e6c272744a66ab3281f9871366717df339

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

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

8 years agoUpdate libwebp and resume testing scaled webp
scroggo [Fri, 7 Aug 2015 19:49:16 +0000 (12:49 -0700)]
Update libwebp and resume testing scaled webp

libwebp has a fix for [1]. Update to the commit that contains the fix.

Update libwebp.gypi, corresponding to libwebp's latest makefile.

Turn back on DM testing for scaled webp, now that it should no longer
use uninitialized memory.

Fix a warning in config.h

[1] https://code.google.com/p/webp/issues/detail?id=254

BUG=skia:4038

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

8 years agoGrDrawVertices to batches
joshualitt [Fri, 7 Aug 2015 19:46:26 +0000 (12:46 -0700)]
GrDrawVertices to batches

BUG=skia:

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

8 years agoMove GrDrawAtlasBatch to separate file
jvanverth [Fri, 7 Aug 2015 19:18:54 +0000 (12:18 -0700)]
Move GrDrawAtlasBatch to separate file

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

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

8 years agoRevert of Move GrDrawAtlasBatch to separate file (patchset #1 id:1 of https://coderev...
jvanverth [Fri, 7 Aug 2015 18:53:13 +0000 (11:53 -0700)]
Revert of Move GrDrawAtlasBatch to separate file (patchset #1 id:1 of https://codereview.chromium.org/1274013003/ )

Reason for revert:
Build failures

Original issue's description:
> Move GrDrawAtlasBatch to separate file
>
> Committed: https://skia.googlesource.com/skia/+/b091c44c33edbad3466601b29d60bc2eaa4453fa

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

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

8 years agoMove GrDrawAtlasBatch to separate file
jvanverth [Fri, 7 Aug 2015 18:49:17 +0000 (11:49 -0700)]
Move GrDrawAtlasBatch to separate file

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

8 years agoMake folder for batches
joshualitt [Fri, 7 Aug 2015 18:42:16 +0000 (11:42 -0700)]
Make folder for batches

BUG=skia:

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

8 years agoFirst pass at drawAtlas batching.
jvanverth [Fri, 7 Aug 2015 17:09:28 +0000 (10:09 -0700)]
First pass at drawAtlas batching.

Moves drawAtlas setup into its own method in GrDrawContext, and adds
DrawAtlasBatch.
Uses pre-built index buffer for quads.

TBR=bsalomon@google.com

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

8 years agoGold Workflows Documentation
hcm [Fri, 7 Aug 2015 17:09:03 +0000 (10:09 -0700)]
Gold Workflows Documentation

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

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

8 years agoBreak LCD and Bitmap text dependency on hardcoded atlas values
joshualitt [Fri, 7 Aug 2015 16:55:23 +0000 (09:55 -0700)]
Break LCD and Bitmap text dependency on hardcoded atlas values

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/846b022f6b469cfde285372f26e0d5c593d122ac

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

8 years agoAdd approxBytesUsed to hashes.
mtklein [Fri, 7 Aug 2015 16:33:37 +0000 (09:33 -0700)]
Add approxBytesUsed to hashes.

BUG=skia:

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

8 years agoThe compiler can generate smulbb perfectly well nowadays.
mtklein [Fri, 7 Aug 2015 15:48:12 +0000 (08:48 -0700)]
The compiler can generate smulbb perfectly well nowadays.

BUG=skia:4117

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

8 years agoAdd Batch logging
joshualitt [Fri, 7 Aug 2015 15:11:19 +0000 (08:11 -0700)]
Add Batch logging

BUG=skia:

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

8 years agoThis iOS crash makes little sense to me. Add some debugging.
mtklein [Fri, 7 Aug 2015 14:22:44 +0000 (07:22 -0700)]
This iOS crash makes little sense to me.  Add some debugging.

We called new float[...].  The pointer returned should be aligned for float writes.

See https://uberchromegw.corp.google.com/i/client.skia/builders/Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/30e4d75c3aebf49b179c265a91adbb6012970d2b

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

8 years agoThis iOS crash makes little sense to me. Add some debugging.
mtklein [Fri, 7 Aug 2015 13:55:31 +0000 (06:55 -0700)]
This iOS crash makes little sense to me.  Add some debugging.

We called new float[...].  The pointer returned should be aligned for float writes.

See https://uberchromegw.corp.google.com/i/client.skia/builders/Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release

BUG=skia:

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

8 years agoFix StringTest for VS2015
bsalomon [Fri, 7 Aug 2015 00:56:13 +0000 (17:56 -0700)]
Fix StringTest for VS2015

TBR=reed@google.com

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

8 years agoFix warnings on VS2015 x86_64 build
bsalomon [Fri, 7 Aug 2015 00:33:16 +0000 (17:33 -0700)]
Fix warnings on VS2015 x86_64 build

TBR=bungeman@google.com

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

8 years agoSplit SkBmpCodec into three separate classes
msarett [Thu, 6 Aug 2015 22:34:42 +0000 (15:34 -0700)]
Split SkBmpCodec into three separate classes

Will regress behavior on gold on test32bfv4.bmp, where we
will no longer fix transparent decodes.

TODO: Start fixing transparent decodes again, or decide
that we don't want to fix them and remove isTransparent
from SkSwizzler.  I think this may become more clear when I
start implementing the scanline decoder.

BUG=skia:

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

8 years agoLet SkWebpCodec decode to 565
scroggo [Thu, 6 Aug 2015 20:50:15 +0000 (13:50 -0700)]
Let SkWebpCodec decode to 565

BUG=skia:3257

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

8 years agoPlug a leak in GrTestUtils.
senorblanco [Thu, 6 Aug 2015 19:29:03 +0000 (12:29 -0700)]
Plug a leak in GrTestUtils.

TBR=mtklein,bsalomon

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

8 years agoFix color swap for webp 565
scroggo [Thu, 6 Aug 2015 18:44:56 +0000 (11:44 -0700)]
Fix color swap for webp 565

When webp decoding to 565, swap the colors so they look right.

BUG=skia:4174

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

8 years agoremove guard for SrcPtr in drawBitmapRect for android
reed [Thu, 6 Aug 2015 18:25:15 +0000 (11:25 -0700)]
remove guard for SrcPtr in drawBitmapRect for android

BUG=skia:
NOTRY=True
TBR=

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

8 years agoPurge non-NEON ARM code.
mtklein [Thu, 6 Aug 2015 18:18:50 +0000 (11:18 -0700)]
Purge non-NEON ARM code.

As I begin to wade in here, it's nice to remove as much code as possible.

BUG=skia:4117

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

8 years ago__ARM_NEON is defined both by ARMv8 and ARMv7 + -mfpu=neon.
mtklein [Thu, 6 Aug 2015 18:17:06 +0000 (11:17 -0700)]
__ARM_NEON is defined both by ARMv8 and ARMv7 + -mfpu=neon.

Can't hurt to simplify a little.

BUG=skia:4117

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

8 years agoMove some work from backend onClear to base class clear
egdaniel [Thu, 6 Aug 2015 17:54:13 +0000 (10:54 -0700)]
Move some work from backend onClear to base class clear

BUG=skia:

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

8 years agoImplement caching of stroked paths in the tessellating path renderer.
senorblanco [Thu, 6 Aug 2015 17:28:55 +0000 (10:28 -0700)]
Implement caching of stroked paths in the tessellating path renderer.

This requires adding the stroke info to the cache key, and doing the
stroking and dashing before rendering as triangles.

BUG=skia:3755

Committed: https://skia.googlesource.com/skia/+/29e0d3f267a03546f236023347cdb4595ece2fd1

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

8 years agoflag to use const& instead of const* for src-rect
reed [Thu, 6 Aug 2015 17:02:53 +0000 (10:02 -0700)]
flag to use const& instead of const* for src-rect

BUG=skia:

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

8 years agoDon't pass pipeline to GrBatch::generateGeometry()
bsalomon [Thu, 6 Aug 2015 15:52:49 +0000 (08:52 -0700)]
Don't pass pipeline to GrBatch::generateGeometry()

R=joshualitt@google.com

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

8 years agoAnother small fix for reordering
joshualitt [Thu, 6 Aug 2015 15:39:22 +0000 (08:39 -0700)]
Another small fix for reordering

BUG=skia:

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

8 years agoPort SkTextureCompression opts to SkOpts
mtklein [Thu, 6 Aug 2015 15:17:16 +0000 (08:17 -0700)]
Port SkTextureCompression opts to SkOpts

Pretty vanilla translation.  I cleaned up who calls whom a little.
Used to be utils -> opts -> utils, now it's just utils -> opts.

I may follow up with a pass over the NEON code for readability
and to clean up dead code.

This turns on NEON A8->R11EAC conversion for ARMv8.
Unit tests which now hit the NEON code still pass.
I can't find any related bench.

BUG=skia:4117

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

8 years agoRemove SK_LEGACY_SKPOINT3_CTORS flag
robertphillips [Thu, 6 Aug 2015 14:08:31 +0000 (07:08 -0700)]
Remove SK_LEGACY_SKPOINT3_CTORS flag

Cannot land before Blink https://codereview.chromium.org/1274673002/ (Remove reliance on legacy Skia SkPoint3 ctors in FELighting.cpp)

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

8 years agoSkSurface copy-on-write can yield stale GPU render targets.
fmalita [Thu, 6 Aug 2015 14:04:51 +0000 (07:04 -0700)]
SkSurface copy-on-write can yield stale GPU render targets.

Prepare_rt_for_external_access() grabs the render target and then fires
access notifications.

But the notification handlers may trigger copy-on-write, causing the
returned render target to be stale (pointing at the detached snapshot).

We should grab the render target after firing notifications.

R=reed@google.com,bsalomon@google.com

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

8 years agoMinor cleanup: remove GR_TESSELLATING_PATH_RENDERING #ifdef.
senorblanco [Thu, 6 Aug 2015 13:52:10 +0000 (06:52 -0700)]
Minor cleanup: remove GR_TESSELLATING_PATH_RENDERING #ifdef.

Also, new -> SkNEW.

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

8 years agouse kFast_SrcRectConstraint to match drawAtlas semantics
reed [Thu, 6 Aug 2015 13:51:52 +0000 (06:51 -0700)]
use kFast_SrcRectConstraint to match drawAtlas semantics

BUG=skia:
TBR=

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

8 years agoSupport decoding PNG to 565.
scroggo [Thu, 6 Aug 2015 13:08:18 +0000 (06:08 -0700)]
Support decoding PNG to 565.

Although we initially discussed not supporting 565, SkCodec needs to
support Android's BitmapFactory and BitmapRegionDecoder, which need to
support 565.

We could instead implement 565 on top of SkCodec, but this would require
more memory and run more slowly.

An open question is whether to support dithering, and how. In order to
support dithering, we need to pass y to RowProc, which I believe means
we will need to pass y to SkSwizzler::swizzle().

I dislike having an option which is typically ignored - SkImageDecoder
allows you to turn on dithering when decoding to any color type, but it
is only meaningful only if the output color type is 565.

We could also make the client implement dithering, which I believe would
mean forcing them to do the conversion to 565 (since we have already
thrown away data when we convered to 565 without dithering).

BUG=skia:3257

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

8 years agosimulate drawatlas
reed [Thu, 6 Aug 2015 12:14:11 +0000 (05:14 -0700)]
simulate drawatlas

BUG=skia:

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

8 years agoRephrase Windows gyp instructions
mtklein [Wed, 5 Aug 2015 23:18:03 +0000 (16:18 -0700)]
Rephrase Windows gyp instructions

The existing instructions seem misleading.

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

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

8 years agoFix reording across rendertarget switching
joshualitt [Wed, 5 Aug 2015 21:36:31 +0000 (14:36 -0700)]
Fix reording across rendertarget switching

BUG=skia:

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

8 years agoDetect MIPS DSP and DSPR2 programattically.
mtklein [Wed, 5 Aug 2015 21:17:32 +0000 (14:17 -0700)]
Detect MIPS DSP and DSPR2 programattically.

Procedure:

$ platform_tools/android/toolchains/ndk-r10c-mips-darwin_v14/bin/mipsel-linux-android-gcc -dM -E - < /dev/null | sort > vanilla.mips
$ platform_tools/android/toolchains/ndk-r10c-mips-darwin_v14/bin/mipsel-linux-android-gcc -mdsp -dM -E - < /dev/null | sort > dsp.mips
$ platform_tools/android/toolchains/ndk-r10c-mips-darwin_v14/bin/mipsel-linux-android-gcc -mdspr2 -dM -E - < /dev/null | sort > dspr2.mips

$ diff vanilla.mips dsp.mips
239a240,241
> #define __mips_dsp 1
> #define __mips_dsp_rev 1

$ diff vanilla.mips dspr2.mips
239a240,242
> #define __mips_dsp 1
> #define __mips_dsp_rev 2
> #define __mips_dspr2 1

So, defined(__mips_dsp) -> SK_MIPS_HAS_DSP, defined(__mips_dspr2) -> SK_MIPS_HAS_DSPR2.

BUG=skia:

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

8 years agoFix variable shadowing and unreachable code that it caused
brucedawson [Wed, 5 Aug 2015 21:05:17 +0000 (14:05 -0700)]
Fix variable shadowing and unreachable code that it caused

Change https://codereview.chromium.org/1261643004 renamed a function
parameter so that some code became unreachable. This renames that
parameter back.

R=bsalomon@google.com
BUG=skia:4169

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

8 years agoFix ASAN error for wbmp swizzles
msarett [Wed, 5 Aug 2015 20:59:40 +0000 (13:59 -0700)]
Fix ASAN error for wbmp swizzles

BUG=skia:

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

8 years agoIWYU: 'core' target, files starting A-C.
bungeman [Wed, 5 Aug 2015 20:57:49 +0000 (13:57 -0700)]
IWYU: 'core' target, files starting A-C.

TBR=reed@google.com
Verbal lgtm, does not change API.

Committed: https://skia.googlesource.com/skia/+/7403d87db8e43d4c2b5b25ac22a0ebc22bd09d69

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