Commit Graph

16668 Commits

Author SHA1 Message Date
caryclark
ccec0f958f pathops version two
R=reed@google.com

marked 'no commit' to attempt to get trybots to run

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1002693002
2015-03-24 07:28:17 -07:00
reed
62a320c8d4 Revert of Revert of remove colorfilter native-565 support. complicating w/ no real value. (patchset #1 id:1 of https://codereview.chromium.org/1022673007/)
Reason for revert:
fix for chrome has landed...

Original issue's description:
> Revert of remove colorfilter native-565 support. complicating w/ no real value. (patchset #2 id:20001 of https://codereview.chromium.org/1015533011/)
>
> Reason for revert:
> skia/ext/benchmarking_canvas.cc references HasFilter16 :(
>
> Original issue's description:
> > remove colorfilter native-565 support. complicating w/ no real value.
> >
> > BUG=skia:
> > TBR=
> >
> > Committed: https://skia.googlesource.com/skia/+/2151353d161fe389cdc0db62cfe1932c7680f710
>
> TBR=reed@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/92b47c49016749249ff8521e424c4373b4a74241

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

Review URL: https://codereview.chromium.org/1016103004
2015-03-24 06:35:23 -07:00
mtklein
470fa6f74b aacc + bbdd
SkMatrix::mapPts() using aacc/bbdd was always worse than using badc():
  - On Intel, it was faster than exisiting swizzle, but badc() is 10% faster still (one pshufd instead of two).
  - On ARM, existing swizzle < badc() < aacc()+bbdd(), even though aacc() then bbdd() is really a single vtrn instruction.

I will revert SkMatrix.cpp before submitting.  Just thought you might like to look.

Will think more and try to gear up Instruments on ARM.

BUG=skia:

Review URL: https://codereview.chromium.org/1012573003
2015-03-24 06:16:30 -07:00
reed
92b47c4901 Revert of remove colorfilter native-565 support. complicating w/ no real value. (patchset #2 id:20001 of https://codereview.chromium.org/1015533011/)
Reason for revert:
skia/ext/benchmarking_canvas.cc references HasFilter16 :(

Original issue's description:
> remove colorfilter native-565 support. complicating w/ no real value.
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/2151353d161fe389cdc0db62cfe1932c7680f710

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

Review URL: https://codereview.chromium.org/1022673007
2015-03-24 05:18:09 -07:00
reed
b67eb2f9b9 Revert "Revert of impl colormatrix w/ floats (patchset #7 id:120001 of https://codereview.chromium.org/967943002/)"
disabled for the momment -- need to understand arm64 glitches

This reverts commit 374a4c3b74.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1028403002
2015-03-24 04:13:45 -07:00
reed
2151353d16 remove colorfilter native-565 support. complicating w/ no real value.
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1015533011
2015-03-24 03:50:22 -07:00
reed
8d1a97e044 Revert of correct reporting of kAlphaUnchanged_Flag in ModeFilter (patchset #1 id:1 of https://codereview.chromium.org/1033583002/)
Reason for revert:
reverting experiment. need to rebaseilne layouttest

svg/css/text-gradient-shadow.svg

Original issue's description:
> correct reporting of kAlphaUnchanged_Flag in ModeFilter
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/afced66b508ac4cd3616e2f707db27b7d6f670e1

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1026313002
2015-03-24 03:48:27 -07:00
reed
afced66b50 correct reporting of kAlphaUnchanged_Flag in ModeFilter
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1033583002
2015-03-23 20:05:04 -07:00
reed
374a4c3b74 Revert of impl colormatrix w/ floats (patchset #7 id:120001 of https://codereview.chromium.org/967943002/)
Reason for revert:
Arm64 seems to be having glitches :(

See gm:colormatrix on Arm64/TegraK1/Nexus9

last square should be all white, but it has stripes

Original issue's description:
> impl colormatrix w/ floats
>
> this needs to land first https://codereview.chromium.org/1031713003
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/7971def11be91ed08eae7107b372322d24e67544

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

Review URL: https://codereview.chromium.org/1030743003
2015-03-23 18:52:57 -07:00
reed
7971def11b impl colormatrix w/ floats
this needs to land first https://codereview.chromium.org/1031713003

BUG=skia:

Review URL: https://codereview.chromium.org/967943002
2015-03-23 14:35:25 -07:00
mtklein
2e220fb9ec Start fresh on swizzles
This removes all the existing Sk4x swizzles and adds badc(), which is
both fast on all implementations and currently useful.

BUG=skia:

Review URL: https://codereview.chromium.org/997353005
2015-03-23 13:19:03 -07:00
tomhudson
f7edcdedb6 Both DM and nanobench need this, so moving the duplicated code to
one common spot. (It's incomplete, and has had bugs, so it's not
like we can confidently write once, copy-paste, and not maintain
again.)

Because SkPathEffect::exposedInAndroidJavaAPI() only builds in the
Android Framework, we might want to make all this code Framework-only?

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

Review URL: https://codereview.chromium.org/1021823003
2015-03-23 12:51:20 -07:00
mtklein
92d04da38f Replace _mm_cvtps_epi32(x) with _mm_cvttps_epi32(_mm_add_ps(0.5f), x).
We don't have control over which way _mm_cvtps_epi32 rounds.

  - This makes the SSE SkPMFloat rounding consistent with _neon and _none.
  - Sk4f::cast<Sk4i>() is closer to (int)float's behavior.  (Correct when >=0).

Add tests that would fail at head.

BUG=skia:

Review URL: https://codereview.chromium.org/1029163002
2015-03-23 12:01:46 -07:00
bungeman
b8a1d30a42 Add font "index" to lmp parser.
When ttc index support was added, it was added and tested on Android
with the jb parser. This adds it to the lmp parser.

Review URL: https://codereview.chromium.org/1023313002
2015-03-23 09:08:54 -07:00
reed
8010632f24 remove meaningless matrix benches, add mapPts() and add new benches
mapPts definitely faster than mapPoints (identity and perspective same speed). Up to 3x for large values of N.

cloned from https://codereview.chromium.org/1031443002/

BUG=skia:

Review URL: https://codereview.chromium.org/1030653002
2015-03-23 08:15:14 -07:00
joshualitt
9c328187d9 Initial change to move text blob to GrTextContext
BUG=skia:

Review URL: https://codereview.chromium.org/1019633002
2015-03-23 08:13:04 -07:00
tomhudson
c589f6c968 Get rid of excess cleverness in benchmark
RotatedRectBench was asking for its base layer size, which may
not be what it expects with odd canvas modes (particularly proxies).
Most benchmarks are not so sophisticated; they hard-wire their
size and just use that (expected) value.

R=mtklein@google.com,djsollen@google.com
BUG=skia:3566

Review URL: https://codereview.chromium.org/1015013004
2015-03-23 07:46:13 -07:00
tomhudson
68260fa1e9 Make SkCanvas::getBaseLayerSize() virtual
Subclasses of SkCanvas may need to override the behavior here - for
example, any proxy or deferred canvas may not know its own size and
need to delegate to another object.

We'll also work on reducing use of this function
(https://skbug.com/3569), but some of the current uses seem to be
semantically necessary.

R=reed@google.com
BUG=skia:3566

Review URL: https://codereview.chromium.org/1022423002
2015-03-23 07:22:40 -07:00
kkinnunen
dc3d96890f Fix two typos in coding style
Fix two typos in coding style:
- Memory Managemt
- if (NULL == x) equated to if (x)
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1032463002

Review URL: https://codereview.chromium.org/1032463002
2015-03-23 06:27:23 -07:00
robertphillips
3e5c2b1041 Preserve texture compression when saving a revised skp from debugger
Without this CL, saving a revised skp out the debugger can greatly expand the memory it requires.

Review URL: https://codereview.chromium.org/1020103005
2015-03-23 05:46:51 -07:00
kkinnunen
8dcb8b04f8 Do not playback pending commands for full deferred canvas writePixels
Do not playback pending commands for full deferred canvas writePixels.

Changes the test to catch cases where discard is done without
a snapshot.

Review URL: https://codereview.chromium.org/939103002
2015-03-23 02:18:02 -07:00
skia.buildbots
96017dc2b8 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/1030453002
2015-03-22 01:14:17 -07:00
reed
4a8562ba64 remove SK_SUPPORT_LEGACY_ARCTO_QUADS code
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1023103004
2015-03-20 19:41:10 -07:00
reed
2fcbcea3a4 change default impl to facilitate transition in blink/chrome
BUG=skia:
TBR=

need deps roll to see if this works... since skia can no longer build/test in this legacy mode.

Review URL: https://codereview.chromium.org/1026923002
2015-03-20 15:25:25 -07:00
reed
5fedef1c31 remove SK_SUPPORT_LEGACY_PIXELREF_UNFLATTENABLE code
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1020403002
2015-03-20 14:20:09 -07:00
mtklein
02f46cf878 Some usability ideas around SkTHash.
- By default, use new SkGoodHash to hash keys, which is:
    * for 4 byte values, use SkChecksum::Mix,
    * for SkStrings, use SkChecksum::Murmur3 on the data,
    * for other structs, shallow hash the struct with Murmur3.
  - Expand SkChecksum::Murmur3 to support non-4-byte-aligned data.
  - Add const foreach() methods.
  - Have foreach() take a functor, which allows lambdas.

BUG=skia:

Review URL: https://codereview.chromium.org/1021033002
2015-03-20 13:48:42 -07:00
reed
ce6acc9108 cleanup using constructors
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1024193002
2015-03-20 13:46:08 -07:00
reed
b640203cd5 use Sk2s for conics
BUG=skia:

Review URL: https://codereview.chromium.org/1025033002
2015-03-20 13:23:43 -07:00
mtklein
cea9f35fee Sk2x::invert() and Sk2x::approxInvert()
BUG=skia:

Review URL: https://codereview.chromium.org/1024993002
2015-03-20 13:17:42 -07:00
jvanverth
7b462a2b85 Return to old distance field glyph sizes.
Should fix some blurry or light glyphs on Windows.

Review URL: https://codereview.chromium.org/1026613003
2015-03-20 12:35:07 -07:00
halcanary
db0dcc7436 PDF: remove last use of SkPDFImage
Add a GM.

BUG=skia:255

Review URL: https://codereview.chromium.org/950633003
2015-03-20 12:31:52 -07:00
mtklein
bf0c56f82b Hack around skia:3570 for now.
BUG=skia:3570

Review URL: https://codereview.chromium.org/1021353002
2015-03-20 12:21:53 -07:00
scroggo
1dd3ea9d45 Add SkEncodedFormat, used by SkCodec.
Needed by Android to determine the format.

Review URL: https://codereview.chromium.org/1018953003
2015-03-20 11:55:55 -07:00
mtklein
01a78130dc Add divide to Sk2x, use native vdiv and vsqrt on ARM 64.
Tests pass on N7 + N9.

BUG=skia:

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.7-Clang-Arm7-Debug-iOS-Trybot,Build-Ubuntu-GCC-Arm64-Release-Android-Trybot

Review URL: https://codereview.chromium.org/1027753003
2015-03-20 11:28:52 -07:00
mtklein
f224f138da Allow negative error for Sk4f::sqrt() test.
BUG=skia:

Review URL: https://codereview.chromium.org/1028743002
2015-03-20 11:20:12 -07:00
scroggo
3614f123e8 Make android framework depend on SkCodec.
This results in exporting include/codec so the framework can use it.

Review URL: https://codereview.chromium.org/1020903002
2015-03-20 11:20:03 -07:00
joshualitt
6e8cd96719 Let text contexts fall back directly to paths
BUG=skia:

Review URL: https://codereview.chromium.org/1015173002
2015-03-20 10:30:14 -07:00
reed
1b600d3446 Revert of PDF: remove last use of SkPDFImage (patchset #5 id:120001 of https://codereview.chromium.org/950633003/)
Reason for revert:
static void draw(SkCanvas* canvas,
                 const SkPaint& p,
                 const SkBitmap& src,
                 SkColorType colorType,
                 const char text[]) {
    SkASSERT(src.colorType() == colorType);
    canvas->drawBitmap(src, 0.0f, 0.0f);
    canvas->drawText(text, strlen(text), 0.0f, 12.0f, p);
}

This assert is firing, at least on macs, where all images get decoded into 32bit at the moment.

Original issue's description:
> PDF: remove last use of SkPDFImage
>
> Add a GM.
>
> BUG=skia:255
>
> Committed: https://skia.googlesource.com/skia/+/86ad8d643624a55b02e529100bbe4e2940115fa1

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

Review URL: https://codereview.chromium.org/1024113002
2015-03-20 10:03:36 -07:00
mtklein
b79ff56de2 Specialize Sk2d for ARM64
The implementation is nearly identical to Sk2f, with these changes:
  - float32x2_t -> float64x2_t
  - vfoo -> vfooq
  - one extra Newton's method step in sqrt().

Also, generally fix NEON detection to be defined(SK_ARM_HAS_NEON).
SK_ARM_HAS_NEON is not being set on ARM64 bots right now (nor does the compiler
seem to set __ARM_NEON__), so this CL fixes everything up.

BUG=skia:

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

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.7-Clang-Arm7-Debug-iOS-Trybot,Build-Ubuntu-GCC-Arm64-Release-Android-Trybot

Review URL: https://codereview.chromium.org/1020963002
2015-03-20 09:25:26 -07:00
henrik.smiding
70840cbd89 Replace SSE optimization of Color32A_D565
Adds an SSE2 version of the Color32A_D565 function, to replace
the existing SSE4 version. Also does some minor cleanup.

Performance improvement in the following Skia benchmarks.
Measured on Atom Silvermont:
  Xfermode_SrcOver       - x3
  luma_colorfilter_large - x4.6
  luma_colorfilter_small - x2
  tablebench             - ~15%
  chart_bw               - ~10%

Measured on Corei7 Haswell:
luma_colorfilter_large running SSE2 - x2
luma_colorfilter_large running SSE4 - x2.3

Also improves performance in WPS Office application and 2D subtest of 0xbenchmark on Android.

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

Review URL: https://codereview.chromium.org/923523002
2015-03-20 09:20:46 -07:00
halcanary
86ad8d6436 PDF: remove last use of SkPDFImage
Add a GM.

BUG=skia:255

Review URL: https://codereview.chromium.org/950633003
2015-03-20 09:10:56 -07:00
senorblanco
d4bb991df8 Add a new GM to show problems with shear/rotate CTM w/ image filters.
Review URL: https://codereview.chromium.org/1028663002
2015-03-20 08:54:32 -07:00
mtklein
c3ce1d28a5 Revert of Specialize Sk2d for ARM64 (patchset #3 id:40001 of https://codereview.chromium.org/1020963002/)
Reason for revert:
https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Mac10.7-Clang-Arm7-Debug-iOS/builds/2441/steps/build%20most/logs/stdio

https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Mac10.7-Clang-Arm7-Release-iOS/builds/2424/steps/build%20most/logs/stdio

https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Ubuntu-GCC-Arm64-Release-Android/builds/8/steps/build%20most/logs/stdio

Original issue's description:
> Specialize Sk2d for ARM64
>
> The implementation is nearly identical to Sk2f, with these changes:
>   - float32x2_t -> float64x2_t
>   - vfoo -> vfooq
>   - one extra Newton's method step in sqrt().
>
> Also, generally fix NEON detection to be defined(SK_ARM_HAS_NEON).
> SK_ARM_HAS_NEON is not being set on ARM64 bots right now (nor does the compiler
> seem to set __ARM_NEON__), so this CL fixes everything up.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/e57b5cab261a243dcbefa74c91c896c28959bf09

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

Review URL: https://codereview.chromium.org/1028523003
2015-03-20 08:46:34 -07:00
mtklein
e57b5cab26 Specialize Sk2d for ARM64
The implementation is nearly identical to Sk2f, with these changes:
  - float32x2_t -> float64x2_t
  - vfoo -> vfooq
  - one extra Newton's method step in sqrt().

Also, generally fix NEON detection to be defined(SK_ARM_HAS_NEON).
SK_ARM_HAS_NEON is not being set on ARM64 bots right now (nor does the compiler
seem to set __ARM_NEON__), so this CL fixes everything up.

BUG=skia:

Review URL: https://codereview.chromium.org/1020963002
2015-03-20 08:32:35 -07:00
Mike Klein
b502ee3ace Fix ambiguity in negate()s.
BUG=skia:

Review URL: https://codereview.chromium.org/1027793002
2015-03-20 11:19:01 -04:00
mtklein
92de013c9f Sk2x/Sk4x: add negate(), operator -()
BUG=skia:

Review URL: https://codereview.chromium.org/1027783002
2015-03-20 08:12:06 -07:00
egdaniel
9a0f629973 Only use 256x256 tiles on hd2000 nanobench bots
Initial experiments did show that the 256 tile size fixed the hd2000 win7
nanobot failures. However it did not have any effect on other bots, so this
change is to move back to the larger tile size on all bots expect for the
hd2000.

BUG=skia:

Review URL: https://codereview.chromium.org/1022083002
2015-03-20 07:03:52 -07:00
robertphillips
ca75ea871e Disable sharing of stencil buffers across differently sized rendertargets
Due to revertapalooza, stencil buffers shared across differently sized rendertargets aren't getting cleared correctly. This CL disables the sharing until the clearing issues can be remedied. Note that stencil buffers should still be shared between identically sized render targets and should still be lazily allocated.

Review URL: https://codereview.chromium.org/1020203002
2015-03-20 06:43:11 -07:00
senorblanco
8c874eee94 Move SkMatrixImageFilter into core, and add a factory fn for it.
BUG=skia:

Review URL: https://codereview.chromium.org/1011273003
2015-03-20 06:38:17 -07:00
senorblanco
977b6f7e7b Remove deprecated flavour of SkDropShadowImageFilter::Create().
Review URL: https://codereview.chromium.org/1026603002
2015-03-20 06:38:00 -07:00