Commit Graph

16376 Commits

Author SHA1 Message Date
scroggo
3da9181cd5 On windows, build zlib as a static library.
Partially in preparation for building libpng on Windows.

Also, this makes us consistent across platforms for PDF.

Uses the version of zlib checked into the Chromium tree.

Remove miniz, which is replaced by zlib.

Review URL: https://codereview.chromium.org/966963002
2015-03-02 06:24:15 -08:00
reed
db873d8677 add compose-colorfilter
now with serialization registration

This reverts commit 5bd055c038.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/970753002
2015-03-01 19:53:47 -08:00
reed
5bd055c038 Revert of add compose-colorfilter (patchset #2 id:20001 of https://codereview.chromium.org/969673002/)
Reason for revert:
need to register subclass for serialization

Original issue's description:
> add compose-colorfilter
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b675a73c1f3f4a433c4893199a0bd11126dfe130

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

Review URL: https://codereview.chromium.org/971653002
2015-03-01 19:16:38 -08:00
reed
b675a73c1f add compose-colorfilter
BUG=skia:

Review URL: https://codereview.chromium.org/969673002
2015-03-01 18:00:47 -08:00
robertphillips
73165bd417 Revert of Improve tracking of bound FBOs in GrGLGpu. (patchset #10 id:180001 of https://codereview.chromium.org/949263002/)
Reason for revert:
Experimentally reverting to see if this is the cause of the mac_chromium_rel_ng roll-blocking failures.

Original issue's description:
> Improve tracking of bound FBOs in GrGLGpu.
>
> Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0
>
> Committed: https://skia.googlesource.com/skia/+/b2af2d8b83ca4774c3b3bb1e49bc72605faa9589
>
> Committed: https://skia.googlesource.com/skia/+/0b70b86a7e9fda52ee7ebc1b9897eeaa09b9abef

TBR=egdaniel@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/970613003
2015-03-01 07:38:15 -08:00
halcanary
3d32d50364 PDF: Switch some unit tests to higher level API.
Also, clean up some headers.

Review URL: https://codereview.chromium.org/968683002
2015-03-01 06:55:20 -08:00
skia.buildbots
9f2f3493f6 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/968003002
2015-03-01 01:11:12 -08:00
bsalomon
bdff1fc494 Add msaa runs to nanobench
TBR=mtklein@google.com

Review URL: https://codereview.chromium.org/964053002
2015-02-28 16:56:31 -08:00
halcanary
1139889eb3 Doc: update dev/design/pdftheory with new function call
NOTRY=true
TBR=

Review URL: https://codereview.chromium.org/967873002
2015-02-28 08:04:33 -08:00
bsalomon
0b70b86a7e Improve tracking of bound FBOs in GrGLGpu.
Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0

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

Review URL: https://codereview.chromium.org/949263002
2015-02-27 17:10:02 -08:00
bsalomon
bb8bca36b7 Revert of Improve tracking of bound FBOs in GrGLGpu. (patchset #8 id:140001 of https://codereview.chromium.org/949263002/)
Reason for revert:
breaking things

Original issue's description:
> Improve tracking of bound FBOs in GrGLGpu.
>
> Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0
>
> Committed: https://skia.googlesource.com/skia/+/b2af2d8b83ca4774c3b3bb1e49bc72605faa9589

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

Review URL: https://codereview.chromium.org/963973002
2015-02-27 16:28:42 -08:00
bsalomon
b2af2d8b83 Improve tracking of bound FBOs in GrGLGpu.
Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0

Review URL: https://codereview.chromium.org/949263002
2015-02-27 15:17:31 -08:00
halcanary
394ce76992 Flate: skia_alloc_func works on both miniz and zlib
Also, Revert "Revert of Flate: fix valgrind miniz
Conditional-jump-or-move-depends... error"

This reverts commit 6dc4ef01a6.

The alloc functions really do have different types depending
on zlib implementation.

CQ_INCLUDE_TRYBOTS=client.skia:Linux Builder-Trybot

Review URL: https://codereview.chromium.org/963853002
2015-02-27 13:09:07 -08:00
joshualitt
d4c7d55594 nexus 9 fix
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/966773004
2015-02-27 13:00:56 -08:00
halcanary
2e3f9d8a93 PDF: Canon now owns a reference to all interned objects
Add SkPDFCanon::reset function to unref all objects.

No longer possible to remove object from canon

Motivation: this doesn't change these object's lifetime, (they will
still be fully unrefed when SkDocument::close() is called, but we no
longer have to remove them from the array when their destructor is
called.

Review URL: https://codereview.chromium.org/966863002
2015-02-27 12:41:03 -08:00
joshualitt
4f569beac7 Dash batch
BUG=skia:

Review URL: https://codereview.chromium.org/925673002
2015-02-27 11:41:50 -08:00
schenney
6dc4ef01a6 Revert of Flate: fix valgrind miniz Conditional-jump-or-move-depends... error (patchset #2 id:20001 of https://codereview.chromium.org/964933003/)
Reason for revert:
Breaks the chrome build.

../../third_party/skia/src/core/SkFlate.cpp:37:22: error: assigning to 'MOZ_Z_alloc_func' (aka 'MOZ_Z_voidpf (*)(MOZ_Z_voidpf, MOZ_Z_uInt, MOZ_Z_uInt)') from incompatible type 'void *(*)(void *, size_t, size_t)': type mismatch at 2nd parameter ('MOZ_Z_uInt' (aka 'unsigned int') vs 'size_t' (aka 'unsigned long'))
    flateData.zalloc = &skia_alloc_func;
                     ^ ~~~~~~~~~~~~~~~~
../../third_party/skia/src/core/SkFlate.cpp:180:28: error: assigning to 'MOZ_Z_alloc_func' (aka 'MOZ_Z_voidpf (*)(MOZ_Z_voidpf, MOZ_Z_uInt, MOZ_Z_uInt)') from incompatible type 'void *(*)(void *, size_t, size_t)': type mismatch at 2nd parameter ('MOZ_Z_uInt' (aka 'unsigned int') vs 'size_t' (aka 'unsigned long'))
    fImpl->fZStream.zalloc = &skia_alloc_func;

Original issue's description:
> Flate: fix valgrind miniz Conditional-jump-or-move-depends... error
>
> Committed: https://skia.googlesource.com/skia/+/e0638f8ecfb609c89cab1aa8b498ad3f368b89d3

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

Review URL: https://codereview.chromium.org/964953002
2015-02-27 11:39:58 -08:00
halcanary
e0638f8ecf Flate: fix valgrind miniz Conditional-jump-or-move-depends... error
Review URL: https://codereview.chromium.org/964933003
2015-02-27 10:39:28 -08:00
reed
44977485bd Revert of Revert of replace kIgnore_SkAlphaType with kUnknown_SkAlphaType (patchset #1 id:1 of https://codereview.chromium.org/966753002/)
Reason for revert:
Android has been updated, so we can re-land this.

Original issue's description:
> Revert of replace kIgnore_SkAlphaType with kUnknown_SkAlphaType (patchset #3 id:40001 of https://codereview.chromium.org/964613002/)
>
> Reason for revert:
> This breaks Android framework build. See
>
> 7f0fcdbf3c/logs/build_error.log
>
> We need to stop them from using kIgnore before we can reland this.
>
> Original issue's description:
> > replace kIgnore_SkAlphaType with kUnknown_SkAlphaType
> >
> > BUG=skia:
> > TBR=
> >
> > Committed: https://skia.googlesource.com/skia/+/1c8aeeaebce9675197be31bd769e8ffa2531bf86
>
> TBR=reed@google.com,reed@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/574290f61a47bd1ce1f9e2d941533bda9c8f03fe

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

Review URL: https://codereview.chromium.org/966853002
2015-02-27 10:23:00 -08:00
bsalomon
5abf584bcc Test msaa on bots using dm. 4 samples for Android, 16 elsewhere
Review URL: https://codereview.chromium.org/958033004
2015-02-27 10:13:36 -08:00
joshualitt
0823bfae15 Context batches
BUG=skia:

Review URL: https://codereview.chromium.org/913253003
2015-02-27 10:06:15 -08:00
robertphillips
9888b22fc9 Decrease GrInOrderDrawBuffer::Cmd's reliance on GrInOrderDrawBuffer
Review URL: https://codereview.chromium.org/940533003
2015-02-27 08:50:34 -08:00
fmalita
cf808aa862 Clang warnings for SkFontHost_FreeType_common.cpp
Signed/unsigned comparison warnings while attempting to build with Clang
on Linux.

R=bungeman@google.com,joshualitt@chromium.org

Review URL: https://codereview.chromium.org/961103002
2015-02-27 08:46:39 -08:00
robertphillips
a9061de9ff Add rewind capability to SkChunkAlloc
Split off from https://codereview.chromium.org/940533003/ (Decrease GrInOrderDrawBuffer::Cmd's reliance on GrInOrderDrawBuffer)

Review URL: https://codereview.chromium.org/967553003
2015-02-27 08:31:57 -08:00
fmalita
827da23c71 [SkSVGDevice] drawBitmap* support
Also fix a clip transform issue: clips are tracked in device space,
but if applied directly to leaf elements they are also subject to local
transforms ("transform='...'"). Instead, apply via <g> wrapper elements.

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

Review URL: https://codereview.chromium.org/959883003
2015-02-27 07:44:47 -08:00
herb
e70de9e4f0 Make the glyph array entries inline.
Perf Reports
bin/c --match nytimes --config 8888
desk_nytimes.skp_1_mpd	1.41ms -> 1.38ms	0.98x
desk_nytimes.skp_1	1.94ms -> 1.87ms	0.97x

bin/c --match nytimes --config gpu
desk_nytimes.skp_1_mpd	1.63ms -> 1.59ms	0.97x
desk_nytimes.skp_1	1.56ms ->  1.5ms	0.97x

Here are results from mac instruments:
--match nytimes --config gpu --samples 10000 --skps /Users/herb/src/skia/skps

Inline:
Total Samples	Running Time	Self		Symbol Name
94335	94335.0ms   98.3%	0.0	 	 start
2365	2365.0ms    2.4%	2365.0	 	SkGlyphCache::getGlyphIDMetrics(unsigned short, int, int)
975	975.0ms    1.0%	975.0	 	SkGlyphCache::lookupMetrics(unsigned int, SkGlyphCache::MetricsType)

Clean:
Total Samples	Running Time	Self		Symbol Name
96833	96833.0ms   97.3%	0.0	 	 start
3418	3418.0ms    3.4%	3418.0	 	SkGlyphCache::getGlyphIDMetrics(unsigned short, int, int)
1961	1961.0ms    1.9%	1961.0	 	SkGlyphCache::lookupMetrics(unsigned int, SkGlyphCache::MetricsType)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1

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

Review URL: https://codereview.chromium.org/885903002
2015-02-27 07:22:48 -08:00
scroggo
574290f61a Revert of replace kIgnore_SkAlphaType with kUnknown_SkAlphaType (patchset #3 id:40001 of https://codereview.chromium.org/964613002/)
Reason for revert:
This breaks Android framework build. See

7f0fcdbf3c/logs/build_error.log

We need to stop them from using kIgnore before we can reland this.

Original issue's description:
> replace kIgnore_SkAlphaType with kUnknown_SkAlphaType
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/1c8aeeaebce9675197be31bd769e8ffa2531bf86

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

Review URL: https://codereview.chromium.org/966753002
2015-02-27 06:21:58 -08:00
reed
1c8aeeaebc replace kIgnore_SkAlphaType with kUnknown_SkAlphaType
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/964613002
2015-02-27 06:00:33 -08:00
brucedawson
71d7f7f002 Initialize three locals to avoid the risk of uninitialized reads.
/analyze recently reported two new warnings about reading from
potentially uninitialized local variables:

src\third_party\skia\src\gpu\grclipmaskmanager.cpp(290) :
warning C6001: Using uninitialized memory 'requiresAA'.
src\third_party\skia\src\gpu\grclipmaskmanager.cpp(336) :
warning C6001: Using uninitialized memory 'genID'.

It is not clear whether the uninitialized reads can actually happen,
but the guarantees seem sufficiently non-obvious that the prudent thing
to do to guarantee future stability is to initialized them -- it's
cheap. I also initialized initialState because it seemed to fall in
the same class, despite there being no warning for it.

BUG=427616

Review URL: https://codereview.chromium.org/957133002
2015-02-26 13:28:53 -08:00
mtklein
e6cf9cb685 miniz support in SkFlate / PDF
- Adds miniz.c v115_r4 (latest release) to third_party.
   - Merges SkDeflateWStream into SkFlate so including "miniz.c" links
     without duplicating symbols.

The only interesting code change I've made is to remove the line
     fImpl->fZStream.data_type = Z_BINARY;
from SkDeflateWStream::SkDeflateWStream().  miniz doesn't have Z_BINARY
defined, and as far as I can tell, both zlib and miniz ignore data_type.

We should be able to swap skflate.gyp's dependency between zlib.gyp:zlib and
zlib.gyp:miniz at will (except of course on Windows) if we're interested in
zlib itself.  I've left android framework on its own zlib.  I think this all
means we can stop defining SK_NO_FLATE on Windows.

I'll leave the possible cleanup of SK_NO_FLATE itself for another time.  Might
be we always want to keep this dependency optional.

CQ_EXTRA_TRYBOTS=client.skia:Test-Win8-ShuttleA-HD7770-x86-Debug-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/957323003
2015-02-26 13:25:05 -08:00
bsalomon
6be6f7cb66 Cleanup in GrPipelineBuilder
Review URL: https://codereview.chromium.org/956363003
2015-02-26 13:05:21 -08:00
mtklein
24aa0f0679 Add sqrt() and rsqrt() to Sk4f.
This doesn't add them to the second-stringer Sk4i.  It's unclear we should be
doing that often, and we don't have efficient ways to do it except via floats.

BUG=skia:

Review URL: https://codereview.chromium.org/964603002
2015-02-26 12:48:05 -08:00
mtklein
2719552fb1 Think implicit promotion is a good idea?
Things like foo.multiply(Sk4f(t,t,t,t)) can just be foo.multiply(t).

BUG=skia:

Review URL: https://codereview.chromium.org/960773005
2015-02-26 12:21:25 -08:00
rmistry
896f3932c8 Automatically add NOTREECHECKS when uploading CLs from non master branches
These changes are possible due to the recently submitted depot_tools change
https://codereview.chromium.org/949273002/ ('Add ability to specify and run post upload hooks').

BUG=skia:

Review URL: https://codereview.chromium.org/963553002
2015-02-26 11:52:05 -08:00
bsalomon
ed0069a4c7 Revert of Improve tracking of bound FBOs in GrGLGpu. (patchset #6 id:100001 of https://codereview.chromium.org/949263002/)
Reason for revert:
breaking hd2000 windows bots

Original issue's description:
> Improve tracking of bound FBOs in GrGLGpu.
>
> Committed: https://skia.googlesource.com/skia/+/d2ad8eb5801e2c8c0fa544a6a776bb46eedde2a0

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

Review URL: https://codereview.chromium.org/964543002
2015-02-26 11:24:57 -08:00
humper
aae1a26039 remove unnecessary and confusing error message from scaler
(also fix whitespace)

BUG=skia:

Review URL: https://codereview.chromium.org/958013004
2015-02-26 11:07:23 -08:00
mtklein
870b9ea386 add auto SkPMFloat <-> Sk4f conversion
BUG=skia:

Review URL: https://codereview.chromium.org/954323002
2015-02-26 10:43:16 -08:00
rmistry
d223fb21d6 Automatically add a docs preview link and NOTRY=true when there are only docs changes.
These changes are possible due to the recently submitted depot_tools change
https://codereview.chromium.org/949273002/ ('Add ability to specify and run post upload hooks').

BUG=skia:3474

Review URL: https://codereview.chromium.org/960203002
2015-02-26 10:16:13 -08:00
mtklein
e76161458a Spin off some fixes to land right away.
BUG=skia:

Review URL: https://codereview.chromium.org/960023002
2015-02-26 10:14:15 -08:00
scroggo
7e051f9305 Fix SampleApp build on iOS.
Remove references to kNullGPU_DeviceType, which has been removed.

Review URL: https://codereview.chromium.org/960133004
2015-02-26 09:52:12 -08:00
joshualitt
642429e27c Some small code tidying
BUG=skia:

Review URL: https://codereview.chromium.org/961813002
2015-02-26 08:47:52 -08:00
bsalomon
d2ad8eb580 Improve tracking of bound FBOs in GrGLGpu.
Review URL: https://codereview.chromium.org/949263002
2015-02-26 07:56:22 -08:00
Stephen White
68ccca140d Win64 warning fix for GrTessellatingPathRenderer.
BUG=skia:

Review URL: https://codereview.chromium.org/956293003
2015-02-26 10:11:20 -05:00
senorblanco
d6ed19cc75 Tessellating GPU path renderer.
This path renderer converts paths to linear contours, resolves intersections via Bentley-Ottman, implements a trapezoidal decomposition a la Fournier and Montuno to produce triangles, and renders those with a single draw call. It does not currently do antialiasing, so it must be used in conjunction with multisampling.

A fair amount of the code is to handle floating point edge cases in intersections. Rather than perform exact computations (which would require arbitrary precision arithmetic), we reconnect the mesh to reflect the intersection points. For example, intersections can occur above the current vertex, and force edges to be merged into the current vertex, requiring a restart of the intersections. Splitting edges for intersections can also force them to merge with formerly-distinct edges in the same polygon, or to violate the ordering of the active edge list, or the active edge state of split edges.

BUG=skia:

Review URL: https://codereview.chromium.org/855513004
2015-02-26 06:58:17 -08:00
fmalita
f47e70712b Revert of Use an image generator to back SkPictureShader tiles. (patchset #4 id:60001 of https://codereview.chromium.org/866773002/)
Reason for revert:
TSAN troubles.

Original issue's description:
> Use an image generator to back SkPictureShader tiles.
>
> To avoid lifetime issues for tiles backed by discardable memory, use an
> image generator to re-generate them on the fly.
>
> With this CL, we are now caching bitmap shaders wrapping discardable
> pixel ref bitmaps backed by picture image generators.
>
> (the CL also includes some minor/unrelated SkPictureShader cleanup)
>
> BUG=skia:3220
> R=reed@google.com,halcanary@google.com
>
> Committed: https://skia.googlesource.com/skia/+/4739955e98ba86900a5bbac0e3661601427a54d4

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

Review URL: https://codereview.chromium.org/956143002
2015-02-25 17:47:06 -08:00
joshualitt
5f5a8d7599 adding preabandon flag to DM
BUG=skia:

Review URL: https://codereview.chromium.org/929243004
2015-02-25 14:09:46 -08:00
joshualitt
570d2f81a6 I'd really like to land this before the branch so speedy reviews are appreciated.
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/586d5d640b19860dfbbd903a5188da1bbbe87336

Review URL: https://codereview.chromium.org/936943002
2015-02-25 13:19:48 -08:00
joshualitt
2907059d0e Revert of Pass clip to context (patchset #8 id:180001 of https://codereview.chromium.org/936943002/)
Reason for revert:
Strange blur problems on nexus 5

Original issue's description:
> I'd really like to land this before the branch so speedy reviews are appreciated.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/586d5d640b19860dfbbd903a5188da1bbbe87336

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

Review URL: https://codereview.chromium.org/956083002
2015-02-25 13:04:44 -08:00
mtklein
edeccc5860 Clean up ColorRectProc plumbing.
We've always been using the portable ColorRect32, so we don't need the
ColorRectProc plumbing.

Furthermore, ColorRect32 doesn't seem to be very important (we're only using
it in the opaque case, which our row-by-row procs already specialize for).
Remove that too.

If we find we want specialization for really narrow rects again, let's put it in
blitRect() directly.  It's pretty unlikely we're going to get platform-specific
speedup for blits to non-contiguous memory.

My local SKP comparison is +- 3%... most neutral I've ever seen.

BUG=skia:

Review URL: https://codereview.chromium.org/959873002
2015-02-25 12:52:57 -08:00
mtklein
59c9203321 Fix the race to set the new gen ID.
There's a small window where two threads can both see the gen ID is zero,
both go get new distinct genIDs, but race to write them.

This now uses compare_exchange to read and leave the winner's ID in place
when there's a race.

SkAtomics isn't public.
TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/956013002
2015-02-25 12:51:55 -08:00