Commit Graph

18561 Commits

Author SHA1 Message Date
mtklein
3cc0dfffb7 Have DM manually encode its .png outputs.
This eliminates some variability on various axes: different PNG encoders, different libpng versions, different formats (RGB, indexed), different unpremultiplication, different sRGB tags.

BUG=skia:

Review URL: https://codereview.chromium.org/1304443002
2015-08-19 07:37:51 -07:00
halcanary
d75e21dade SkStream Testing: fix bug in new unit test.
Review URL: https://codereview.chromium.org/1297143004
2015-08-19 07:22:04 -07:00
mtklein
a4c3244760 add missing override
BUG=skia:

TBR=

Review URL: https://codereview.chromium.org/1292073003
2015-08-19 07:11:34 -07:00
joshualitt
ae41b38343 fill rect batch refactor into separate batches
BUG=skia:

Review URL: https://codereview.chromium.org/1295773003
2015-08-19 06:54:08 -07:00
Brian Salomon
6458b6f0a8 Init class ID in GrStencilPathBatch
TBR=joshualitt@google.com

Review URL: https://codereview.chromium.org/1300093007
2015-08-19 09:44:48 -04:00
halcanary
cb9241badd Fix stack overuse error
Review URL: https://codereview.chromium.org/1283193008
2015-08-19 06:12:40 -07:00
bsalomon
f3bf892d71 Fix VS 2015 build
TBR=robertphillips@google.com

Review URL: https://codereview.chromium.org/1297283003
2015-08-19 06:12:36 -07:00
fmalita
d3d07245e2 SkCanvas::onDrawPicture() quick-reject
R=reed@google.com,mtklein@google.com

Committed: https://skia.googlesource.com/skia/+/48ed62b29d45e42b971aac8858da06781c93e6d7

Review URL: https://codereview.chromium.org/1264133003
2015-08-19 06:07:36 -07:00
reed
a32cc950fb widen gm to show entire image, add place-holder for no context
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1294113003
2015-08-19 06:07:29 -07:00
halcanary
48305e8353 SkPDF/Deflate: clean up old SkFlate code
Factor out some of https://crrev.com/1227913008

BUG=skia:3030

Review URL: https://codereview.chromium.org/1298243002
2015-08-18 13:30:25 -07:00
bsalomon
a44919ea27 Path stenciling in GrBatch
Review URL: https://codereview.chromium.org/1293973003
2015-08-18 13:28:20 -07:00
msarett
b32758a72f Test scaling for small images
We don't want to test small images on Gold because they are
not interested to look at.  Instead, I wrote a unit test to
verify that scaling small images does not cause crashes.

BUG=skia:

Review URL: https://codereview.chromium.org/1287863004
2015-08-18 13:22:46 -07:00
egdaniel
73caadf277 Try enabling all nanobenches on Nexus7
BUG=skia:2774

Review URL: https://codereview.chromium.org/1290223005
2015-08-18 13:08:36 -07:00
reed
4f0e04736c handle no shader from image in drawAtlas
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1298233003
2015-08-18 12:50:24 -07:00
bsalomon
f46c5e8fdb Remove Cmd in GrTargetCommands that is no longer needed with GrCopySurfaceBatch
TBR=joshualitt@google.com

Review URL: https://codereview.chromium.org/1292623004
2015-08-18 12:30:02 -07:00
mtklein
08f9234eaa Try again to put SkXfermode_opts in SK_OPTS_NS
Remember failed attempt https://codereview.chromium.org/1286093004/ ?  I think this one is simpler and safer and even technically legal C++.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1296183004
2015-08-18 12:23:28 -07:00
joshualitt
892b0c3db9 Add skeleton json support to visualbench
BUG=skia:

Review URL: https://codereview.chromium.org/1298213002
2015-08-18 12:13:34 -07:00
bsalomon
872062cab8 GrCopySurfaceBatch
Review URL: https://codereview.chromium.org/1289673004
2015-08-18 12:12:35 -07:00
wangyix
2a378433eb added emitChild() to GrGLFragmentProcessor; removed AutoFragmentChildProcAdvance class
BUG=skia:4182

Review URL: https://codereview.chromium.org/1301523003
2015-08-18 12:00:12 -07:00
senorblanco
f39c9b2ccf Add support for non-mappable vert buffers to tessellating path renderer.
Use malloc-ed memory and the updateData() call instead.

BUG=skia:4215

Review URL: https://codereview.chromium.org/1288683004
2015-08-18 11:46:28 -07:00
msarett
3011711d5d Revert of Update skia to test with libpng to 1.6.10 (patchset #3 id:60001 of https://codereview.chromium.org/1301523005/ )
Reason for revert:
DM is failing on gm tests on Android bots.  Cause is not yet clear.

Original issue's description:
> Update skia to test with libpng to 1.6.10
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/f272bb03df9b86e7ea2cf23fb4d5cc56624e0118

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

Review URL: https://codereview.chromium.org/1298223002
2015-08-18 11:36:44 -07:00
wangyix
b1daa86732 When getGLInstance is called on a frag proc, the resulting GrGLFragmentProcessor will be the root of a tree of GrGLFragmentProcessors that mirrors the GrFragmentProcessor's tree. This allows setData() to be called recursively (removing the responsibility from compose shader) and allows gl instances direct access to their children gl instances so they can emit their code.
BUG=skia:4182

Review URL: https://codereview.chromium.org/1287023009
2015-08-18 11:29:32 -07:00
reed
935d6cfaa7 Add subsets to SkImageGenerator and SkImageCacherator
... to support subsets in SkImage!

BUG=skia:

Review URL: https://codereview.chromium.org/1301633002
2015-08-18 11:16:09 -07:00
msarett
f272bb03df Update skia to test with libpng to 1.6.10
BUG=skia:

Review URL: https://codereview.chromium.org/1301523005
2015-08-18 10:46:01 -07:00
hcm
7b076c41a1 Add internal links section to skia.org
BUG=skia:4142
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1284043004

Review URL: https://codereview.chromium.org/1284043004
2015-08-18 10:38:00 -07:00
bsalomon
5ea0363bf1 ClearStencilClip in GrBatch
Review URL: https://codereview.chromium.org/1288963004
2015-08-18 10:33:30 -07:00
joshualitt
2ad37be2b1 Move GrTBatchTesselator to its own file
BUG=skia:

Review URL: https://codereview.chromium.org/1298983002
2015-08-18 10:16:01 -07:00
mtklein
b2a327094f Update SkOpts namespaces.
portable -> default, and everyone gets an sk_ prefix.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1299013003
2015-08-18 10:00:29 -07:00
Brian Salomon
9dc2a9a972 Add missing overrides to clear and discard batch dumpInfo()
TBR=joshualitt@google.com

Review URL: https://codereview.chromium.org/1303533003
2015-08-18 12:46:51 -04:00
mtklein
2d141ba2df Patches on top of Radu's latest.
patch from issue 1273033005 at patchset 120001 (http://crrev.com/1273033005#ps120001)

BUG=skia:

Review URL: https://codereview.chromium.org/1288323004
2015-08-18 09:43:28 -07:00
bungeman
f05271581f Use portable code for family names with DirectWrite.
IDWriteFamily::GetFamilyNames appears to be 'helpful' and removes
parts of family names that look like style names. Since the iterator
is supposed to return the actual names and not just the name the
platform thinks the name is (as getFamilyName does), try returning
the raw names when possible.

BUG=skia:4217

Review URL: https://codereview.chromium.org/1302573002
2015-08-18 09:34:07 -07:00
bsalomon
5346983b2e Put clear and discard into GrBatch.
Review URL: https://codereview.chromium.org/1293563003
2015-08-18 09:20:09 -07:00
mtklein
d55d13af4f Update BUILD.public a bit.
- SSE2 files are unfortunately now mixed-case, _SSE2 or _sse2.
 - Adds lists for SSSE3 and SSE4 files.
 - Remove SkDocument_PDF_None.cpp
 - Remove a few more references to animator.
 - Exclude private headers from HDRS.
 - Formatting and notes.

BUG=skia:

Review URL: https://codereview.chromium.org/1298003007
2015-08-18 08:51:49 -07:00
halcanary
bf3dde2716 Clean up BUILD_simulator.py
Review URL: https://codereview.chromium.org/1298813002
2015-08-18 08:35:45 -07:00
mtklein
0c263fa9f8 Deduplicate typefaces across sub-pictures
Old flow to serialize a picture:
   1) serialize picture ops
   2) serialize all sub pictures recursively
   3) flatten the rest of this picture into a buffer, deduping flattenable factories and typefaces as we go
   4) serialize the factories and typefaces
   5) serialize the bytes from 3)

This allows the data in step 5) to refer to the deduplicated factories and typefaces from step 4).  But, each sub picture in step 2) is completely siloed, so they can't dedup with the parent picture or each other.

New flow:
   1) serialize picture ops
   2) flatten the rest of this picture into a buffer, deduping flattenable factories and typefaces as we go
   3) dummy-serialize sub pictures into /dev/null, with the effect of adding any new typefaces to our dedup set
   4) serialize the factories and typefaces
   5) serialize the bytes from 2)
   6) serialize all sub pictures recursively, with perfect deduplication because of step 3).

Now all typefaces in the top-level picture and all sub pictures recursively should end up deduplicated in the top-level typeface set.

Decoding changes are similar: we just thread through the top-level typefaces to the sub pictures.  What's convenient / surprising is that this new code correctly reads old pictures if we just have each picture prefer its local typeface set over the top-level one: old pictures always just use their own typefaces, and new pictures always use the top-level ones.

BUG=skia:4092

Review URL: https://codereview.chromium.org/1233953004
2015-08-18 08:29:59 -07:00
msarett
a83593b88a Prefer native scaling to sampling
In the cases we have come across so far, native scaling has better performance
and correctness than sampling.  If native scaling is supported we want to use
it.

Jpegs native scale rounds up.
Ex: An 11x11 image with sampleSize=8 scales to 2x2.

SkScaledCodec rounds down.
Ex: An 11x11 image with sampleSize=8 scales to 1x1.

Before the CL, we would choose to use SkScaledCodec because it scales closer to
the "ideal" scale.

I think we want to go with the native option as long as its within 1 of the
ideal value.
BUG=skia:

Review URL: https://codereview.chromium.org/1284243004
2015-08-18 08:03:58 -07:00
jvanverth
0628a52b0c Regenerate LCD text blobs if GrPaint's color changes, not SkPaint.
The GrPaint's color takes into account shaders and color filters, so is a
more accurate picture of the color state.

BUG=chromium:511787

Review URL: https://codereview.chromium.org/1297053004
2015-08-18 07:44:22 -07:00
wangyix
54017d7e5b Made isEqual in GrFragmentProcessor recursive
Added comment about how computeInvariantOutput() is non-recursive in GrFragmentProcessor

Made isEqual() recursive in GrFragmentProcessor

BUG=skia:4182

Review URL: https://codereview.chromium.org/1287343005
2015-08-18 07:39:33 -07:00
joshualitt
cd47b71ac6 GrAAFillRectBatch holds onto GrPipelineOptimizations
BUG=skia:

Review URL: https://codereview.chromium.org/1301603004
2015-08-18 07:25:38 -07:00
wangyix
69ed114d38 Added class AutoFragmentChildProcAdvance to be constructed before a child emitCode and destructed after
Fixed wrong indent

Changed auto child advance back to backwards linear search for getting subset of coords and samplers array of a child

Used offset from parent instead of backwards linear search to find a child proc's coords and transforms in Auto...Advance

append mangleString to variable name in nameVariable()

BUILDS! Added AutoFragmentChildProcAdvance class; fixed a few errors from previous commits

BUG=skia:4182

Review URL: https://codereview.chromium.org/1286293002
2015-08-18 07:24:29 -07:00
caryclark
94c902e63d fix pathops fuzz failures
If a curve has the identical start and control points, the
initial or final tangent can't be trivally determined. The
perpendicular to the tangent is used to measure coincidence.

Add logic for cubics, quadratics, and conics, to use the
secondary control points or the end points if the initial
control point alone can't determine the tangent.

Add debugging (currently untriggered by exhaustive testing)
to detect zero-length tangents which are not at the curve
endpoints.

Increase the number of temporary intersecions gathered from
10 to 12 but reduce the max passed in by cubic intersection from
27 to 12. Also, add checks if the max passed exceeds the
storage allocated.

When cleaning up parallel lines, choose the intersection which
is on the end of both segments over the intersection which
is on the end of a single segment.

TBR=reed@google.com
BUG=425140,516266

Review URL: https://codereview.chromium.org/1288863004
2015-08-18 07:12:44 -07:00
benjaminwagner
f82c13fced Reland of Fix a few bugs in the google3 sync scripts. (patchset #1 id:1 of https://codereview.chromium.org/1295213002/ )
Reason for revert:
Retry.

Original issue's description:
> Revert of Fix a few bugs in the google3 sync scripts. (patchset #1 id:1 of https://codereview.chromium.org/1291343006/ )
>
> Reason for revert:
> MacMini buildbots were unable to apply the patch.
> fatal: Could not parse object '18af0a0080cc2b2b3464292d35a0886cdade551f'.
> http://build.chromium.org/p/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release/builds/1580
> http://build.chromium.org/p/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Debug/builds/1474
> http://build.chromium.org/p/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Release/builds/1566
> http://build.chromium.org/p/client.skia/builders/Perf-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Release/builds/1480
> http://build.chromium.org/p/client.skia/builders/Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release/builds/1456
> http://build.chromium.org/p/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/1364
>
>
> Original issue's description:
> > Fix a few bugs in the google3 sync scripts.
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/18af0a0080cc2b2b3464292d35a0886cdade551f
>
> TBR=mtklein@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/e349d6b92574c1b0acdb4ba1ed8ff905ea830131

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

Review URL: https://codereview.chromium.org/1284093003
2015-08-18 06:25:14 -07:00
bsalomon
e46f9feb44 Privatize GrBatch subclass overrides
Review URL: https://codereview.chromium.org/1301663002
2015-08-18 06:05:14 -07:00
mtklein
cf9c475903 Remove a couple zombie pathops files.
These files don't compile and are not referenced by any GYP file.

BUG=skia:

Review URL: https://codereview.chromium.org/1299773002
2015-08-18 05:51:56 -07:00
mtklein
9483763793 Remove SkOpts_sse2.cpp.
It's sort of pointless: all our clients that will have SSE2 at runtime have it
unconditionally at compile time, so the functions in namespace portable will
pick up the SSE2 code.  The procs in SkOpts_sse2.o were just duplicate code.

A couple of the procs we had in _sse2.cpp can benefit slightly when compiled
with SSSE3.  I've moved those to _ssse3.cpp.  This should lead to small speedups
on platforms like Linux and Windows that have a baseline of SSE2.

Similarly, I've removed the call to Init_neon() when NEON is available globally... it's a no-op.

Renaming namespace portable to something clearer is TBD.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1294213002
2015-08-18 05:18:53 -07:00
reed
95dd17737d Revert[8] "move some public headers into private"
This reverts commit fb28cd2b13.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1298833002
2015-08-17 18:29:48 -07:00
robertphillips
ea4529d09a Move normal map creation methods to sk_tools
Split off of https://codereview.chromium.org/1261433009/ (Add SkCanvas::drawLitAtlas call)

Review URL: https://codereview.chromium.org/1298763002
2015-08-17 15:04:47 -07:00
mtklein
df5b7603d2 Add a simple script to simulate BUILD file glob() expansion.
This lets us test changes to BUILD.public.

This is not yet automated in any way.  My hope is to trigger it quietly via the presubmit for any CL that adds or removes a file, or changes BUILD.public.

BUG=skia:

Review URL: https://codereview.chromium.org/1290833003
2015-08-17 15:02:57 -07:00
benjaminwagner
e349d6b925 Revert of Fix a few bugs in the google3 sync scripts. (patchset #1 id:1 of https://codereview.chromium.org/1291343006/ )
Reason for revert:
MacMini buildbots were unable to apply the patch.
fatal: Could not parse object '18af0a0080cc2b2b3464292d35a0886cdade551f'.
http://build.chromium.org/p/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release/builds/1580
http://build.chromium.org/p/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Debug/builds/1474
http://build.chromium.org/p/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Release/builds/1566
http://build.chromium.org/p/client.skia/builders/Perf-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Release/builds/1480
http://build.chromium.org/p/client.skia/builders/Perf-Mac10.9-Clang-MacMini6.2-CPU-AVX-x86_64-Release/builds/1456
http://build.chromium.org/p/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/1364

Original issue's description:
> Fix a few bugs in the google3 sync scripts.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/18af0a0080cc2b2b3464292d35a0886cdade551f

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

Review URL: https://codereview.chromium.org/1295213002
2015-08-17 14:44:01 -07:00
benjaminwagner
18af0a0080 Fix a few bugs in the google3 sync scripts.
BUG=skia:

Review URL: https://codereview.chromium.org/1291343006
2015-08-17 14:23:03 -07:00