Commit Graph

17290 Commits

Author SHA1 Message Date
joshualitt
e590266294 Add unit tests for stroke rects and drawVertices
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1133613004
2015-05-11 08:18:35 -07:00
joshualitt
21279c7ada AADistanceFieldPathRenderer unit tests
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1129083005
2015-05-11 07:21:37 -07:00
caryclark
624637cc8e Path ops formerly found the topmost unprocessed edge and determined its angle sort order to initialize the winding. This never worked correctly with cubics and was flaky with paths consisting mostly of vertical edges.
This replacement shoots axis-aligned rays through all intersecting edges to find the outermost one either horizontally or vertically. The resulting code is smaller and twice as fast.

To support this, most of the horizontal / vertical intersection code was rewritten and standardized, and old code supporting the top-directed winding was deleted.

Contours were pointed to by an SkTDArray. Instead, put them in a linked list, and designate the list head with its own class to ensure that methods that take lists of contours start at the top. This change removed a large percentage of memory allocations used by path ops.

TBR=reed@google.com
BUG=skia:3588

Review URL: https://codereview.chromium.org/1111333002
2015-05-11 07:21:28 -07:00
joshualitt
af2d56d213 print on unused uniforms in debug builds
BUG=skia:

Review URL: https://codereview.chromium.org/1136803002
2015-05-11 06:21:34 -07:00
Derek Sollenberger
7c722197b3 Add android_launch_app script to allow command line options to be passed to the sampleApp when starting.
BUG=skia:3815
DOCS_PREVIEW= https://skia.org/?cl=1136753003
R=bungeman@google.com, tomhudson@google.com

Review URL: https://codereview.chromium.org/1136753003
2015-05-11 08:54:19 -04:00
gen.kim
88f12dbe92 SkPictureShader: floor scaledSize not to exceed maxTextureSize
scaledSize becomes larger than maxTextureSize by zoom level
because it is rounded.

BUG=chromium:485916

Review URL: https://codereview.chromium.org/1129413002
2015-05-10 18:33:29 -07:00
egdaniel
c19cdc254c Only discard for XP dstCopies if we have a coverage value.
TBR=bsalomon@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1125283005
2015-05-10 08:45:18 -07:00
skia.buildbots
ffb3f6817d Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/1123233004
2015-05-10 01:14:36 -07:00
egdaniel
28eee1aa2e Disable advance blend equations.
This is a temporary disabling of advanced blend equations till we can fix
the various bugs associated with it.

BUG=skia:3822

Review URL: https://codereview.chromium.org/1130003003
2015-05-08 14:42:44 -07:00
egdaniel
7dfc27ca42 Remove coverage multiplies when it is known to be fully opaque.
BUG=skia:

Review URL: https://codereview.chromium.org/1132883002
2015-05-08 12:48:35 -07:00
fmalita
f36cca8a61 Remove unused SK_SUPPORT_LEGACY_ROUND_MIPMAP_LEVEL_CHOICE guard
R=reed@google.com,robertphillips@google.com

Review URL: https://codereview.chromium.org/1135823003
2015-05-08 11:40:41 -07:00
halcanary
60a0c6292f whitespace change (testing flaky bots)
NOTRY=true
TBR=

Review URL: https://codereview.chromium.org/1132043004
2015-05-08 11:39:26 -07:00
halcanary
fb29947884 whitespace change
NOTRY=true
TBR=

Review URL: https://codereview.chromium.org/1131053004
2015-05-08 10:53:29 -07:00
bungeman
c0727d117e Trim whitespace from parsed filename in Android v21.
The entire text content of the 'font' element is currently used as the
file name. This wasn't an issue in earlier versions, as the 'file'
element was dedicated to only containing the file name. The new 'font'
element also contains a number of attributes and potentially other tags.
This means that a 'font' element can become quite long, making it
desireable to be able to split it across multiple lines.

However, splitting the 'font' element across multiple lines is currently
difficult and awkward as any whitespace outside of tags will be
considered part of the file name. This change means that any leading or
trailing whitespace will not be considered part of the file name.

This only applies to v21 and later files, so while this restricts font
file names from beginning and ending with whitespace, it is unlikely to
break any users in practice. It is probably also undesireable to have
font files with names that begin or end with whitespace in any event.

Review URL: https://codereview.chromium.org/1125413003
2015-05-08 08:31:54 -07:00
bsalomon
72c7a60ecf remove legacy Gr things
Review URL: https://codereview.chromium.org/1132813002
2015-05-08 07:17:05 -07:00
robertphillips
2a974625c5 Fix convex-lineonly-paths GM so it plays nice with SampleApp
Review URL: https://codereview.chromium.org/1131273002
2015-05-08 07:08:13 -07:00
robertphillips
e16dfdbead Enable GrAAConvexTessellator in GrAAConvexPathRenderer
This CL plumbs the GrAAConvexTessellator into the GrAAConvexPathRenderer but disables in Chrome & Android.

Review URL: https://codereview.chromium.org/1130883003
2015-05-08 04:46:51 -07:00
reed
b7ed856fad Revert of Sketch splitting SkPicture into an interface and SkBigPicture. (patchset #22 id:420001 of https://codereview.chromium.org/1112523006/)
Reason for revert:
speculative revert to fix failures in DEPS roll

Original issue's description:
> Sketch splitting SkPicture into an interface and SkBigPicture.
>
> Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
> These cover about 89% of draw calls from Blink SKPs,
> and about 25% of draw calls from our GMs.
>
> SkPicture handles:
>   - serialization and deserialization
>   - unique IDs
>
> Everything else is left to the subclasses:
>   - playback(), cullRect()
>   - hasBitmap(), hasText(), suitableForGPU(), etc.
>   - LayerInfo / AccelData if applicable.
>
> The time to record a 1-op picture improves a good chunk
> (2 mallocs to 1), and the time to record a 0-op picture
> greatly improves (2 mallocs to none):
>
>     picture_overhead_draw:   450ns -> 350ns
>     picture_overhead_nodraw: 300ns -> 90ns
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c92c129ff85b05a714bd1bf921c02d5e14651f8b

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

Review URL: https://codereview.chromium.org/1130333002
2015-05-07 17:30:13 -07:00
reed
8b26b99c97 new image from backend desc
BUG=485243

Review URL: https://codereview.chromium.org/1121813002
2015-05-07 15:36:18 -07:00
joshualitt
a2532d90cf adding rect batch unit test
BUG=skia:

Review URL: https://codereview.chromium.org/1135513002
2015-05-07 14:21:00 -07:00
mtklein
c92c129ff8 Sketch splitting SkPicture into an interface and SkBigPicture.
Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
These cover about 89% of draw calls from Blink SKPs,
and about 25% of draw calls from our GMs.

SkPicture handles:
  - serialization and deserialization
  - unique IDs

Everything else is left to the subclasses:
  - playback(), cullRect()
  - hasBitmap(), hasText(), suitableForGPU(), etc.
  - LayerInfo / AccelData if applicable.

The time to record a 1-op picture improves a good chunk
(2 mallocs to 1), and the time to record a 0-op picture
greatly improves (2 mallocs to none):

    picture_overhead_draw:   450ns -> 350ns
    picture_overhead_nodraw: 300ns -> 90ns

BUG=skia:

Review URL: https://codereview.chromium.org/1112523006
2015-05-07 13:41:07 -07:00
joshualitt
2fbd4068bd tesselating path renderer unit tests
BUG=skia:

Review URL: https://codereview.chromium.org/1127183006
2015-05-07 13:06:42 -07:00
halcanary
96287f7af7 SkPDF: detect YUV-JPEG without relying on ImageGenerator
JPEG/JFIF References:
*   http://www.w3.org/Graphics/JPEG/itu-t81.pdf
*   http://www.w3.org/Graphics/JPEG/jfif3.pdf

BUG=476721
BUG=446940

Review URL: https://codereview.chromium.org/1133443003
2015-05-07 11:46:59 -07:00
bsalomon
e64eb570a5 Iterate over instanced draws in GrGpu rather than above GrBatchTarget
Review URL: https://codereview.chromium.org/1127273007
2015-05-07 11:35:55 -07:00
joshualitt
3b58d75170 Initial CL to create Reorder command builder behind a flag
BUG=skia:

Review URL: https://codereview.chromium.org/1129943004
2015-05-07 11:14:30 -07:00
mtklein
fc00a7c501 SK_ARRAY_COUNT shouldn't work on pointers.
Simpler version of https://codereview.chromium.org/1123923002/

BUG=skia:3593
R=brucedawson@chromium.org,reed@google.com,tfarina@chromium.org

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

Review URL: https://codereview.chromium.org/1114283003
2015-05-07 10:58:44 -07:00
bungeman
4a8d622e1d Add default resourcePath to SampleApp on Android.
Currently SampleApp on Android cannot find resources. This sets the
resourcePath to /data/local/tmp/skia/resources/ which is the path
used in documentationo. A future change will allow this default to be
overridden.

BUG=skia:3815

Review URL: https://codereview.chromium.org/1125363004
2015-05-07 10:57:02 -07:00
mtklein
e44b5084d8 DM: use SkFunction to make required argument type clearer.
Previously it was hard to tell that DrawFn took an SkCanvas* and returned an Error.  Now it's clear from the type.

BUG=skia:

Review URL: https://codereview.chromium.org/1125233002
2015-05-07 10:53:34 -07:00
mtklein
4525f438a8 We don't use boxBlurY.
Also noticed nobody sets SK_DISABLE_BLUR_DIVISION_OPTIMIZATION.

BUG=skia:

Review URL: https://codereview.chromium.org/1134513003
2015-05-07 10:51:55 -07:00
mtklein
32618cb857 Test sp-8888 mode on a few fast bots.
(It's not particularly slow, but this mode doesn't really need global coverage.)

BUG=skia:

Review URL: https://codereview.chromium.org/1129903003
2015-05-07 10:26:44 -07:00
robertphillips
e40d397259 Isolate GrBufferAllocPools inside GrBatchTarget
This CL refactors the location of the GrBufferAllocPools so they reside entirely inside the GrBatchTarget. This is in preparation for making them use scratch resources.

Review URL: https://codereview.chromium.org/1131553002
2015-05-07 09:51:43 -07:00
joshualitt
0acd0d33fd adding uniqueID to GrContext
BUG=skia:

Review URL: https://codereview.chromium.org/1128873009
2015-05-07 08:23:19 -07:00
joshualitt
622d3aded2 Adding unit tests for limited subset of DefaultPathRenderer
BUG=skia:

Review URL: https://codereview.chromium.org/1129203002
2015-05-07 08:13:11 -07:00
cdalton
797e906c74 Re-enable validation for glBlendBarrierKHR and glBlendEquation
BUG=skia:

Review URL: https://codereview.chromium.org/1103673002
2015-05-06 13:53:12 -07:00
cdalton
8917d62ef4 Implement support for KHR_blend_equation_advanced
Uses KHR(or NV)_blend_equation_advanced to implement custom Xfer modes
in hardware.

BUG=skia:

Review URL: https://codereview.chromium.org/1037123003
2015-05-06 13:40:21 -07:00
mtklein
e0cab96599 Really use SSE4 (and SSSE3) in SkBlurImage_SSE4
We don't seem to be making good use of the available instruction set.
SSE4.1 gives us an easy way to unpack a pixel into an __m128i, and
SSSE3 gave us an easy way to do the reverse.

This should be bit-perfect and about a 10% speedup.

BUG=skia:

Review URL: https://codereview.chromium.org/1123263003
2015-05-06 13:22:02 -07:00
cdalton
0ce02c3ac1 Place nvpr above tesselating path renderer in the chain
BUG=skia:

Review URL: https://codereview.chromium.org/1123343003
2015-05-06 13:16:43 -07:00
reed
c1e1faae07 use floor for mip-level choice
this chrome change must land first: https://codereview.chromium.org/1131663002/

BUG=skia:

Review URL: https://codereview.chromium.org/1131613002
2015-05-06 13:02:37 -07:00
reed
a85d4d0814 Make drawImage a virtual on SkDevice
This reverts commit 06dad4b92f.

BUG=485243

Review URL: https://codereview.chromium.org/1129843003
2015-05-06 12:56:48 -07:00
mtklein
44d43d8d6e Add a control benchmark.
I'm thinking of using this in perf with something like:
   ratio(fill(filter("test=foo")), fill(filter("test=control")))

Does that make sense to you?

Not sure that this is really a good control bench on all bots,
but I propose we just run it a bit and find out if it needs work.

BUG=skia:

Review URL: https://codereview.chromium.org/1129823003
2015-05-06 12:42:04 -07:00
cdalton
e4017d8ca7 Add layout qualifiers to GrGLShaderBuilder
BUG=skia:

Review URL: https://codereview.chromium.org/1114813002
2015-05-06 11:48:56 -07:00
mtklein
6fbf4b3a7f Do we still need this DOUBLE_LOOP feature?
If so, let's do it this way so it works for all source types and doesn't need
to be chosen at compile time.

BUG=skia:

Review URL: https://codereview.chromium.org/1129693003
2015-05-06 11:35:40 -07:00
halcanary
bc4696b917 SkPDF: Move utility fns to SkPDFUtils
BUG=skia:3585

Review URL: https://codereview.chromium.org/1124193003
2015-05-06 10:56:04 -07:00
reed
06dad4b92f Revert of Revert of Revert of Make drawImage a virtual on SkDevice (patchset #1 id:1 of https://codereview.chromium.org/1126273002/)
Reason for revert:
still breaking webglconformance

Original issue's description:
> Revert of Revert of Make drawImage a virtual on SkDevice (patchset #1 id:1 of https://codereview.chromium.org/1124003002/)
>
> Reason for revert:
> retry now that some fixes (onDrawImage overrides) have landed in chrome/blink
>
> Original issue's description:
> > Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of https://codereview.chromium.org/1122643005/)
> >
> > Reason for revert:
> > speculative to see if it unblocks DEPS roll
> >
> > Original issue's description:
> > > Make drawImage a virtual on SkDevice
> > >
> > > Now with patch for SkDeferredCanvas
> > >
> > > This reverts commit 119468b71f.
> > >
> > > BUG=skia:
> > >
> > > Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8
> >
> > TBR=robertphillips@google.com,mtklein@google.com,reed@google.com
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/3538e3bfe2e00bc1b5b48d977fa7adff64d8c96b
>
> TBR=robertphillips@google.com,mtklein@google.com,reed@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/620ba3afe09d4173c87537040fe50c1c1895fb1a

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

Review URL: https://codereview.chromium.org/1127993004
2015-05-06 10:16:02 -07:00
borenet
d9b6be197f Remove upright-matrix- configs from Android bots
The Android bots are flaking like crazy. I'm not sure if these configs
are hurting the situation, but let's see if this helps.

TBR=mtklein,halcanary
BUG=skia:

Review URL: https://codereview.chromium.org/1131603002
2015-05-06 08:33:51 -07:00
reed
620ba3afe0 Revert of Revert of Make drawImage a virtual on SkDevice (patchset #1 id:1 of https://codereview.chromium.org/1124003002/)
Reason for revert:
retry now that some fixes (onDrawImage overrides) have landed in chrome/blink

Original issue's description:
> Revert of Make drawImage a virtual on SkDevice (patchset #4 id:60001 of https://codereview.chromium.org/1122643005/)
>
> Reason for revert:
> speculative to see if it unblocks DEPS roll
>
> Original issue's description:
> > Make drawImage a virtual on SkDevice
> >
> > Now with patch for SkDeferredCanvas
> >
> > This reverts commit 119468b71f.
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/14fe8fd3e53b5e988aac189a8bc3ed28904d85c8
>
> TBR=robertphillips@google.com,mtklein@google.com,reed@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3538e3bfe2e00bc1b5b48d977fa7adff64d8c96b

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

Review URL: https://codereview.chromium.org/1126273002
2015-05-06 07:54:38 -07:00
mtklein
7882924c10 DM: add Via abstract class
BUG=skia:

Review URL: https://codereview.chromium.org/1117183007
2015-05-06 07:54:07 -07:00
mtklein
0d992db1cf Make SkFunction copyable so it can go in containers.
This totally overhauls the implementation to use ordinary inheritance-based type erasure.  I give up for now getting my manual vtable shenanigans to work with MSVC.  Still those same "expected ; before ), also expected ) before ;" errors.

I added support for uninitialized SkFunctions and operator=(), because it was fairly straightforward with this implementation.

The main downside here is that I've removed the inline implementation.  All SkFunctions involve a heap allocation, even when just wrapping function pointers.

BUG=skia:

Review URL: https://codereview.chromium.org/1056673002
2015-05-06 07:40:26 -07:00
joshualitt
444987fea8 small fix to correct bounds on distance field text
BUG=skia:

Review URL: https://codereview.chromium.org/1122253003
2015-05-06 06:46:01 -07:00
robertphillips
84b008873b Add GrAAConvexTessellator class
This CL adds a GrAAConvexTessellator class. It does not connect it to the GrAAConvexPathRenderer.

Review URL: https://codereview.chromium.org/1084943003
2015-05-06 05:15:57 -07:00