Commit Graph

17463 Commits

Author SHA1 Message Date
caryclark
fba9da78ac fix path op builder
The rewrite of path ops caused the inner contour direction to be reversed.
This exposed an existing bug in path ops builder, namely that the implicit
winding of the internal sum path could hide inner contours if they ended
up in the wrong direction.

Setting the sum path's fill type to even-odd ensures that the inner
contours aren't discarded.

R=fmalita@chromium.org
BUG=skia:3838

Review URL: https://codereview.chromium.org/1126193004
2015-05-14 14:18:13 -07:00
bungeman
3489ee0f4f Font variations.
Multiple Master and TrueType fonts support variation axes.
This implements back-end support for axes on platforms which
support it.

Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97

Review URL: https://codereview.chromium.org/1027373002
2015-05-14 14:18:03 -07:00
reed
86a17e7716 Revert of Implement support for non-scale/translate CTM in image filters. (patchset #4 id:60001 of https://codereview.chromium.org/1140943004/)
Reason for revert:
matriximagefilter needs to antialias its draw, so we get smooth diagonals...

Original issue's description:
> Implement support for non-scale/translate CTM in image filters.
>
> Clone with tweaks of https://codereview.chromium.org/986623003/
>
> pre-cl to guard chrome here: https://codereview.chromium.org/1133403003/
>
> BUG=skia:3288
>
> Committed: https://skia.googlesource.com/skia/+/35786b176c159d2e7a816e9da9b051ef3129d5cb

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

Review URL: https://codereview.chromium.org/1139173002
2015-05-14 12:25:22 -07:00
mtklein
ec1f77d097 Revert of Temporarily revert just Multiply to see if that's the source of NEON diffs. (patchset #2 id:20001 of https://codereview.chromium.org/1129293005/)
Reason for revert:
Undo Xor revert.  Getting too confusing now.

Original issue's description:
> Temporarily revert just Multiply to see if that's the source of NEON diffs.
>
> Local testing is confusing and inconclusive.  Pulling out the big guns.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/5b9f352ff1e245dd48e200f8f8b683f4569547d3
>
> Committed: https://skia.googlesource.com/skia/+/6095260e55ac5f263df26cdde427531a0e7da8dd

TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1138073005
2015-05-14 11:49:01 -07:00
mtklein
6095260e55 Temporarily revert just Multiply to see if that's the source of NEON diffs.
Local testing is confusing and inconclusive.  Pulling out the big guns.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/5b9f352ff1e245dd48e200f8f8b683f4569547d3

Review URL: https://codereview.chromium.org/1129293005
2015-05-14 10:35:33 -07:00
mtklein
af953bbdfb Revert of Temporarily revert just Multiply to see if that's the source of NEON diffs. (patchset #1 id:1 of https://codereview.chromium.org/1129293005/)
Reason for revert:
Diff's still there.  Multiply is not the culprit.

Original issue's description:
> Temporarily revert just Multiply to see if that's the source of NEON diffs.
>
> Local testing is confusing and inconclusive.  Pulling out the big guns.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/5b9f352ff1e245dd48e200f8f8b683f4569547d3

TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1143553004
2015-05-14 10:18:14 -07:00
joshualitt
e578a95d3a Remove viewmatrix from GrGeometryProcessor base class
BUG=skia:

Review URL: https://codereview.chromium.org/1127953003
2015-05-14 10:09:14 -07:00
mtklein
5b9f352ff1 Temporarily revert just Multiply to see if that's the source of NEON diffs.
Local testing is confusing and inconclusive.  Pulling out the big guns.

BUG=skia:

Review URL: https://codereview.chromium.org/1129293005
2015-05-14 09:17:09 -07:00
senorblanco
d4d83eb032 Tesellating path renderer: typecast cleanup; logging build fix.
Use SkPoint* for all vertex data. (It was void* to support two different
vertex data formats, which we no longer need.)
Assert that vertex stride == sizeof(SkPoint).
Fix build when LOGGING_ENABLED=1.

BUG=skia:

Review URL: https://codereview.chromium.org/1128083004
2015-05-14 09:08:14 -07:00
robertphillips
7156b09c4b Revert of Defer glClear to just before draw call (patchset #2 id:20001 of https://codereview.chromium.org/1113003005/)
Reason for revert:
This CL seems to be triggering the assert:
src/gpu/SkGpuDevice.cpp:319: failed assertion "!fNeedClear"
on, at least, Mac & Ubuntu.

Original issue's description:
> Defer glClear to just before draw call
>
> Remove some DO_DEFERRED_CLEAR call to avoid call glClear separately, like this:
> glBindFramebuffer(1)
> glClear
> glBindFramebuffer(2)
> glClear
> glBindFramebuffer(1)
> glDrawXXX
> glBindFramebuffer(2)
> glDrawXXX
>
> These call sequences may need read and write memory back and forth.
>
> If we call DO_DEFERRED_CLEAR just before draw call, we can bind, clear and draw in one go.
> e.g.
> glBindFramebuffer(1)
> glClear
> glDrawXXX
> glBindFramebuffer(2)
> glClear
> glDrawXXX
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c3c06a13e69b90d4cc1d543853504072d363ae8b

TBR=bsalomon@google.com,joel.liang@arm.com,wasim.abbas@arm.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1136393005
2015-05-14 08:54:12 -07:00
wasim.abbas
c3c06a13e6 Defer glClear to just before draw call
Remove some DO_DEFERRED_CLEAR call to avoid call glClear separately, like this:
glBindFramebuffer(1)
glClear
glBindFramebuffer(2)
glClear
glBindFramebuffer(1)
glDrawXXX
glBindFramebuffer(2)
glDrawXXX

These call sequences may need read and write memory back and forth.

If we call DO_DEFERRED_CLEAR just before draw call, we can bind, clear and draw in one go.
e.g.
glBindFramebuffer(1)
glClear
glDrawXXX
glBindFramebuffer(2)
glClear
glDrawXXX

BUG=skia:

Review URL: https://codereview.chromium.org/1113003005
2015-05-14 08:24:52 -07:00
borenet
7ae68a8f8d Android scripts: add --verbose, fix missing 'source android_setup'
BUG=skia:3836
TBR=djsollen

Review URL: https://codereview.chromium.org/1145473002
2015-05-14 06:37:23 -07:00
reed
35786b176c Implement support for non-scale/translate CTM in image filters.
Clone with tweaks of https://codereview.chromium.org/986623003/

pre-cl to guard chrome here: https://codereview.chromium.org/1133403003/

BUG=skia:3288

Review URL: https://codereview.chromium.org/1140943004
2015-05-14 06:36:53 -07:00
caryclark
182b499cd7 look for deleted pts when detecting line/curve coincident edges
TBR=reed@google.com
BUG=skia:3651

Review URL: https://codereview.chromium.org/1129863007
2015-05-14 05:45:54 -07:00
robertphillips
eea2ff7201 Revert of Refactor GrBufferAllocPools to use resource cache (patchset #9 id:160001 of https://codereview.chromium.org/1139753002/)
Reason for revert:
Perf Regression for some bot/skp combinations

Original issue's description:
> Refactor GrBufferAllocPools to use resource cache
>
> Committed: https://skia.googlesource.com/skia/+/c5f1c5414fc8f73cbefadcc1b24ec794056fa203

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

Review URL: https://codereview.chromium.org/1129863008
2015-05-14 05:24:53 -07:00
mtklein
c30806f9f1 Perform SkPicture analysis lazily.
I realized when writing the comment on https://crrev.com/1135363002/
that I'd really just sketched out the entire thing, so I couldn't help
but actually write up a working CL.  How does this do for your benchmark?

BUG=chromium:487075

Review URL: https://codereview.chromium.org/1130123006
2015-05-13 19:26:14 -07:00
joshualitt
88c23fc6e8 remove color from GrGeometryProcessor
BUG=skia:

Review URL: https://codereview.chromium.org/1140983002
2015-05-13 14:18:07 -07:00
mtklein
2d8d33e9e8 Sk4px: SrcATop, DstATop, Xor, Multiply
SSE runs 2-3x faster (than 4f), NEON runs 1.2-1.4x faster (than existing NEON).

Small diffs on {aarectmodes, imagefilters_xfermodes, hairmodes, mixed_xfermodes} only on AA edges due to precision drop.

BUG=skia:

Review URL: https://codereview.chromium.org/1132853005
2015-05-13 14:08:45 -07:00
reed
177cb84986 Revert of Implement support for non-scale/translate CTM in image filters. (patchset #4 id:60001 of https://codereview.chromium.org/1120043002/)
Reason for revert:
don't reference layer after its deleted

Original issue's description:
> Implement support for non-scale/translate CTM in image filters.
>
> Implemented by extracting out the non-scale/translate components
> and applying that post-filter as an SkMatrixImageFilter.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4f12b8bd2cb43daeffa4d1c53120ae94c5ccf486

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

Review URL: https://codereview.chromium.org/1128133005
2015-05-13 14:00:00 -07:00
reed
4f12b8bd2c Implement support for non-scale/translate CTM in image filters.
Implemented by extracting out the non-scale/translate components
and applying that post-filter as an SkMatrixImageFilter.

BUG=skia:

Review URL: https://codereview.chromium.org/1120043002
2015-05-13 13:34:57 -07:00
cdalton
231c5fd590 Don't issue texture barriers for RT's with separate storage
BUG=skia:

Review URL: https://codereview.chromium.org/1137663004
2015-05-13 12:35:36 -07:00
joshualitt
1ba8cc9193 removing equality / compute invariant loops from GrGeometryProcessors
BUG=skia:

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

Review URL: https://codereview.chromium.org/1111603004
2015-05-13 12:24:23 -07:00
mtklein
8a90edc2a5 Sk4px: alphas() and Load[24]Alphas()
alphas() extracts the 4 alphas from an existing Sk4px as another Sk4px.
LoadNAlphas() constructs an Sk4px from N packed alphas.

In both cases, we end up with 4x repeated alphas aligned with their pixels.

alphas()
  A0 R0 G0 B0  A1 R1 G1 B1  A2 R2 G2 B2  A3 R3 G3 B3
  ->
  A0 A0 A0 A0  A1 A1 A1 A1  A2 A2 A2 A2  A3 A3 A3 A3

Load4Alphas()
  A0 A1 A2 A3
  ->
  A0 A0 A0 A0  A1 A1 A1 A1  A2 A2 A2 A2  A3 A3 A3 A3

Load2Alphas()
  A0 A1
  ->
  A0 A0 A0 A0  A1 A1 A1 A1  0 0 0 0  0 0 0 0

This is a 5-10% speedup for AA on Intel, and wash on ARM.
AA is still mostly dominated by the final lerp.

alphas() isn't used yet, but it's similar enough to Load[24]Alphas()
that it was easier to write all at once.

BUG=skia:

Review URL: https://codereview.chromium.org/1138333003
2015-05-13 12:19:42 -07:00
bungeman
5ae1312c9f Revert of Font variations. (patchset #21 id:400001 of https://codereview.chromium.org/1027373002/)
Reason for revert:
Mac failing to build due to CFNumberType in Chromium Canary.

Original issue's description:
> Font variations.
>
> Multiple Master and TrueType fonts support variation axes.
> This implements back-end support for axes on platforms which
> support it.
>
> Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97

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

Review URL: https://codereview.chromium.org/1128913008
2015-05-13 12:16:41 -07:00
joshualitt
1573206f20 fix for angle bot
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/1137333004
2015-05-13 12:15:14 -07:00
joshualitt
fc0725645c fix for blur large glyphs problems
BUG=skia:

Review URL: https://codereview.chromium.org/1131023006
2015-05-13 12:15:06 -07:00
mtklein
d0a1088bf7 Add _aa variants of Xfermode benches.
Also, allow multiple DEF_BENCH() per line by using __COUNTER__ instead of __LINE__.

BUG=skia:

Review URL: https://codereview.chromium.org/1140643004
2015-05-13 11:54:00 -07:00
joshualitt
19e4c02a41 Keep Big Glyph coordinates in float in GrAtlasTextContext
TBR=jvanverth@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1132853004
2015-05-13 11:23:03 -07:00
bungeman
05773ed309 Font variations.
Multiple Master and TrueType fonts support variation axes.
This implements back-end support for axes on platforms which
support it.

Review URL: https://codereview.chromium.org/1027373002
2015-05-13 10:57:10 -07:00
robertphillips
c5f1c5414f Refactor GrBufferAllocPools to use resource cache
Review URL: https://codereview.chromium.org/1139753002
2015-05-13 10:55:33 -07:00
egdaniel
1bf714fb45 Revert of Revert of Revert of Remove workaround to for lower glsl support for qualcomm (patchset #1 id:1 of https://codereview.chromium.org/1138013004/)
Reason for revert:
still broken :(

Original issue's description:
> Revert of Revert of Remove workaround to for lower glsl support for qualcomm (patchset #1 id:1 of https://codereview.chromium.org/1135393003/)
>
> Reason for revert:
> trying once more
>
> Original issue's description:
> > Revert of Remove workaround to for lower glsl support for qualcomm (patchset #1 id:1 of https://codereview.chromium.org/1133543004/)
> >
> > Reason for revert:
> > breaks many qualcomm gms
> >
> > Original issue's description:
> > > Remove workaround to for lower glsl support for qualcomm
> > >
> > > BUG=skia:
> > >
> > > Committed: https://skia.googlesource.com/skia/+/9770bdce776f45367c419b8dd82219eece26ca5c
> >
> > TBR=bsalomon@google.com
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/0cfe1242ee284290bde1ebe3f48626c555fdac51
>
> TBR=bsalomon@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b72f920ef581e9cf50a6c1afc80ed04bb086488e

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

Review URL: https://codereview.chromium.org/1130413006
2015-05-13 10:32:49 -07:00
caryclark
38a017bf44 clean up tests
Confirm that no path ops tests are flaky, and clean up errors around
that. The test framework was incorrectly checking for >= MAX_ERRORS for
failure and <= MAX_ERRORS for success.

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1140563003
2015-05-13 10:13:17 -07:00
bsalomon
8780bc65bd Remove GrGLVertexArray from GrGpuResource hierarchy.
Review URL: https://codereview.chromium.org/1137093002
2015-05-13 09:56:37 -07:00
bungeman
10b063cb91 Extensible Android font configuration parsing.
The xml parsing of the Android font configuration is quite lax in what
it allows. This has lead to issues with forward compatibility and
extending the existing format. This has lead to some confusion about
what the actual format is and how a given proposed change will affect
existing files and readers.

The main issue this fixes is containment. Tags are now only recognized
at the correct levels in the correct containing tags. Tags which are
not recognized are properly skipped. Tags which accumulate character
data now only accumulate the character data in their own element as
opposed to all child elements.

Review URL: https://codereview.chromium.org/1138073002
2015-05-13 08:52:16 -07:00
joshualitt
6c891107ce GLProgramsTest 3.0
BUG=skia:

Review URL: https://codereview.chromium.org/1139743002
2015-05-13 08:51:50 -07:00
egdaniel
b72f920ef5 Revert of Revert of Remove workaround to for lower glsl support for qualcomm (patchset #1 id:1 of https://codereview.chromium.org/1135393003/)
Reason for revert:
trying once more

Original issue's description:
> Revert of Remove workaround to for lower glsl support for qualcomm (patchset #1 id:1 of https://codereview.chromium.org/1133543004/)
>
> Reason for revert:
> breaks many qualcomm gms
>
> Original issue's description:
> > Remove workaround to for lower glsl support for qualcomm
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/9770bdce776f45367c419b8dd82219eece26ca5c
>
> TBR=bsalomon@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/0cfe1242ee284290bde1ebe3f48626c555fdac51

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

Review URL: https://codereview.chromium.org/1138013004
2015-05-13 08:46:51 -07:00
caryclark
bca19f7747 deal more consistently with unsortable edges
Improve line/curve coincident detection and resolution. This fixed the remaining simple failures.

When an edge is unsortable, use the ray intersection to determine the angles' winding.

Deal with degenerate segments.

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

Review URL: https://codereview.chromium.org/1140813002
2015-05-13 08:23:48 -07:00
mtklein
04d24a3f86 Turn on Sk4px xfermodes when we have NEON too.
For SSE, Sk4px is better than Sk4f is better than SkXfermodes_opts_SSE2 (where implemented).
For NEON, Sk4px is better than SkXfermodes_opts_arm_neon is better than Sk4f (where implemented).

This is a 1.6-1.9x speedup for Plus,Modulate, and Screen for NEON.

BUG=skia:

Review URL: https://codereview.chromium.org/1128053004
2015-05-13 08:02:14 -07:00
joshualitt
4c977868bb fix bounds for BW lines, AA Hairlines
BUG=skia:

Review URL: https://codereview.chromium.org/1123253003
2015-05-13 08:00:56 -07:00
jvanverth
28761fe4fb Fix assert in GrBatchAtlas.
Stops this assert from triggering on the iOS build.

Review URL: https://codereview.chromium.org/1131003004
2015-05-13 07:55:55 -07:00
reed
b56158118c simplify RawIter
BUG=skia:

Review URL: https://codereview.chromium.org/1137783006
2015-05-13 07:55:48 -07:00
egdaniel
0cfe1242ee Revert of Remove workaround to for lower glsl support for qualcomm (patchset #1 id:1 of https://codereview.chromium.org/1133543004/)
Reason for revert:
breaks many qualcomm gms

Original issue's description:
> Remove workaround to for lower glsl support for qualcomm
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/9770bdce776f45367c419b8dd82219eece26ca5c

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

Review URL: https://codereview.chromium.org/1135393003
2015-05-13 07:21:17 -07:00
scroggo
c7d9616b1a Remove documentation for missing SkiaExamples.
SkiaExamples were removed in February, so no need to instruct newbies
to try building them.
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1135303002

Review URL: https://codereview.chromium.org/1135303002
2015-05-13 06:45:43 -07:00
halcanary
47b6c8b41b Documentation: open GM in SampleApp
NOTRY=true
DOCS_PREVIEW= https://skia.org/dev/testing/tests?cl=1138353002

Review URL: https://codereview.chromium.org/1138353002
2015-05-13 06:45:31 -07:00
egdaniel
9770bdce77 Remove workaround to for lower glsl support for qualcomm
BUG=skia:

Review URL: https://codereview.chromium.org/1133543004
2015-05-13 06:39:38 -07:00
borenet
0c3f58773e Document NO_MERGE_BUILDS keyword
BUG=skia:3584
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1135313004

Review URL: https://codereview.chromium.org/1135313004
2015-05-13 06:14:57 -07:00
kkinnunen
8f827fe44a Fix SkStrokeRec == to report true for all fills
Fix SkStrokeRec == to report true for all fills, regardless
of the stale stroking data the object might contain.

Review URL: https://codereview.chromium.org/1130153002
2015-05-13 00:02:26 -07:00
mtklein
6cbf18c70b Plus xfermode using Sk4px.
Xfermode_Plus runs 4-5x faster.

We expect mixed_xfermodes to have a small diff.  This is because kFoldCoverageIntoSrcAlpha was incorrectly set to true.

This implementation handily beats the Sk4f impl, the portable impl, and the existing SSE2 impl.  Reading the SkXfermodes_opts_SSE2.cpp file, I'm pretty confident that we'll be able to beat all SSE2 impls.

I believe this impl will beat or match the existing NEON impl too, but that may not be true for more complicated xfermodes.  They can take advantage of transposing ARGBARGB... to AAAARRRR.... cheaply and I haven't figured out an abstraction for that yet that doesn't screw SSE.

Adds:
  - MapDstSrc() to Sk4px
  - saturatedAdd() to SkNi (only implemented as far as it's used).
  - div255Narrow()

BUG=skia:

Review URL: https://codereview.chromium.org/1138893002
2015-05-12 15:48:09 -07:00
egdaniel
8c9b6f1d71 Add check in GrGpu createTexture to make sure we don't create multisampled textures.
BUG=skia:

Review URL: https://codereview.chromium.org/1138223003
2015-05-12 13:36:30 -07:00
jshin
dd4e56849e Make Noto Sans Mono CJK JP an alias to MS Gothic
This CL works together with the following CrOS CL:

https://chromium-review.googlesource.com/#/c/269899/

BUG=chromium:486164
TEST=With the above CrOS CL, 'MS Gothic' in CSS is replaced by 'Noto Sans Mono CJK JP'.

Review URL: https://codereview.chromium.org/1134853002
2015-05-12 12:08:36 -07:00