Commit Graph

17121 Commits

Author SHA1 Message Date
reed
793a6ddd44 add blitter api for aa-hairlines
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1088143002
2015-04-15 07:51:15 -07:00
senorblanco
6bd5137e11 Change tessellator sweep direction to depend on path aspect ratio.
The tessellating path renderer uses several sweep-line algorithms,
whose sweep direction can be either in X or Y.

It is currently set to in-X at compile time, but a better approach is to
make it runtime-configurable, and use the path aspect ratio as
a heuristic to determine the optimal sweep direction.

BUG=skia:3725

Review URL: https://codereview.chromium.org/1089073002
2015-04-15 07:32:27 -07:00
msarett
e16b04aa60 SkJpegCodec
Enables basic decoding for jpegs

Includes rewinding

565, YUV, and Jpeg encoding are not yet implemented

BUG=skia:3257

Review URL: https://codereview.chromium.org/1076923002
2015-04-15 07:32:20 -07:00
jcgregorio
f91e676f94 Revert of add new blit2 methods in support of antialiased hairlines guard flag SK_SUPPORT_LEGACY_BLITANTIH2V2 (patchset #2 id:20001 of https://codereview.chromium.org/1060153003/)
Reason for revert:
DEPS roll is failing, one such example:

http://build.chromium.org/p/tryserver.chromium.win/builders/win8_chromium_rel/builds/73847/steps/ash_unittests%20%28with%20patch%29/logs/stdio

More here:

   https://codereview.chromium.org/1091483003

This CL was the only CL in the roll when things started to fail.

Original issue's description:
> add new blit2 methods in support of antialiased hairlines
>
> before:
>    9M	1	528µs	530µs	539µs	607µs	5%	▁▁▁▁▁▁▁▁█▂	8888	path_hairline_small_AA_quad
>
> after:
>    9M	1	355µs	356µs	358µs	375µs	2%	▂▁▁▁▁▁▁▁▁█	8888	path_hairline_small_AA_quad
>
> BUG=skia:
>
> does require new baselines (bug chrome is guarded)
>
> Committed: https://skia.googlesource.com/skia/+/dd83031b98db4c6d3d0de2353bf115152a7d1464

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

Review URL: https://codereview.chromium.org/1085013003
2015-04-15 06:17:10 -07:00
zoran.jovanovic
7f00acbda6 Return cropBitmap
cropBitmap returns 'true' on success and 'false' on failure.
Propagate its return value so that cascading failures can be avoided.

Signed-off-by: Mykola Kondratenko <mykola.kondratenko@sonymobile.com>

BUG=skia:

Review URL: https://codereview.chromium.org/1088093003
2015-04-15 05:48:54 -07:00
joshualitt
ad802c66c9 Convert BitmapTextBatch from STArray to AutoSTMalloc
BUG=skia:

Review URL: https://codereview.chromium.org/1088533002
2015-04-15 05:31:57 -07:00
borenet
a49a742f76 Roll common DEPS: fix string concat error in gs_utils upload
TBR=jcgregorio
BUG=skia:3723

Review URL: https://codereview.chromium.org/1057653006
2015-04-15 04:49:32 -07:00
reed
dd83031b98 add new blit2 methods in support of antialiased hairlines
before:
   9M	1	528µs	530µs	539µs	607µs	5%	▁▁▁▁▁▁▁▁█▂	8888	path_hairline_small_AA_quad

after:
   9M	1	355µs	356µs	358µs	375µs	2%	▂▁▁▁▁▁▁▁▁█	8888	path_hairline_small_AA_quad

BUG=skia:

does require new baselines (bug chrome is guarded)

Review URL: https://codereview.chromium.org/1060153003
2015-04-14 18:39:57 -07:00
joshualitt
c3c5990ac0 Convert BitmapTextBlob from using STArray to AutoSTMalloc
BUG=skia:

Review URL: https://codereview.chromium.org/1083703002
2015-04-14 14:33:37 -07:00
halcanary
7e79818137 DM: add --multiPage option
Motivation: I want to switch back to single-page output by default for
direct comparison to raster backends in Gold.

I can still test the multi-page option via a command-line switch.

BUG=skia:3721

Review URL: https://codereview.chromium.org/1063873004
2015-04-14 14:06:18 -07:00
mtklein
115acee938 Sk4h and Sk8h for SSE
These will underly the SkPMFloat-like class for uint16_t components.

Sk4h will back a single-pixel version, and Sk8h any larger number than that.

BUG=skia:

Review URL: https://codereview.chromium.org/1088883005
2015-04-14 14:02:52 -07:00
djsollen
a669bc37c6 cleanup codec names being produced by dm and uploaded to gold
Review URL: https://codereview.chromium.org/1072933004
2015-04-14 13:47:51 -07:00
joshualitt
9e36c1a930 Start canonicalizing color for all A8 textblobs
BUG=skia:

Review URL: https://codereview.chromium.org/1076593002
2015-04-14 12:17:27 -07:00
mtklein
8fe8fffdfa Rename SkNi to SkNb.
As used today, SkNi is used in bool-y contexts.  This keeps that, but under a
new name, SkNb.  This makes room for a new SkNi that's focused on integer-y
things like loads, stores, arithmetic, etc.

The main reason to split these is that we want different specializations for
each use case: for bools, it's important for us to specialize 32- and 64-bit to
support efficient float- and double- comparisons, but for integer work we're
more likely to be looking at 8- and 16- bit lanes.  Keeping these use cases
siloed helps me manage the compexity of the backend NEON and SSE code.

BUG=skia:

Review URL: https://codereview.chromium.org/1083123002
2015-04-14 11:49:14 -07:00
reed
5dc6b7d1a8 change hairline procs to take array of points
BUG=skia:

Review URL: https://codereview.chromium.org/1085883002
2015-04-14 10:40:44 -07:00
borenet
b5de630d10 Update common DEPS: adding retries to GS upload
BUG=skia:3723

Review URL: https://codereview.chromium.org/1083663006
2015-04-14 10:37:33 -07:00
robertphillips
f5ac972207 Add GM to exercise high quality anisotropic scaling
High quality anisotropic is an interesting edge case for the gpu backend. For scales that are both minimizing and maximizing Ganesh falls back to MipMaps which can turn out too blurry.

BUG=472864

Review URL: https://codereview.chromium.org/1058133003
2015-04-14 08:19:01 -07:00
halcanary
86e5ab6338 GM: add fadefilter gm
BUG=470083

Review URL: https://codereview.chromium.org/1081173002
2015-04-14 06:25:19 -07:00
caryclark
30ac464d48 early return from stream peek
Don't assert if resources are missing

R=scroggo@google.com
BUG=skia:3719

Review URL: https://codereview.chromium.org/1080073002
2015-04-14 06:08:04 -07:00
msarett
164d5b09b7 Fixing use of initialized memory.
Disabling scanline decoding to kIndex8 until it can be implemented.

BUG=skia:3715

Review URL: https://codereview.chromium.org/1082923002
2015-04-14 05:37:36 -07:00
senorblanco
7ef63c85c5 Enable tessellating GPU path renderer.
This also contains a fix to remove recursion from the sorted_merge()
step. This was essentially tail-recursion, and was causing stack
exhaustion on some platforms. Making it iterative fixes the issue.

Note: this CL will affect a large number of GPU GM results.

R=bsalomon@google.com
BUG=

Review URL: https://codereview.chromium.org/1080113004
2015-04-13 14:27:37 -07:00
borenet
22ecae88ee Blacklist desk_wikipedia pdf on Valgrind bots
BUG=skia:3506

Review URL: https://codereview.chromium.org/1056763004
2015-04-13 13:29:26 -07:00
egdaniel
f103cd8539 Set resScale on stroker when stroking path on gpu.
BUG=skia:3686

Review URL: https://codereview.chromium.org/1048333003
2015-04-13 13:06:46 -07:00
mtklein
1dda2194e0 Fix minor undercounting in SkRecord::bytesUsed().
When an SkRecord has more than kInlineRecords ops in it (today, 5 or more), the
current logic undercounts the bytes used by the SkRecord by sizeof(Record) *
kInlineRecords, i.e. 32 bytes.  This isn't a huge deal... by the time you've
recorded 5 ops, we're typically up around 1KB anyway, and it's only ever off by
that constant 32 bytes, so somewhere between 3% to 0% error as the picture grows.

But now that I've noticed, we might as well fix it.  Basically, this is a
reminder that the inline space used to store those first kInlineRecords ops
goes to waste once we pass that threshold.  In contrast, fInlineAlloc, the
space we preallocate for the SkVarAlloc, never goes to waste.  It always holds
the first few ops' data even when we grow past it.

BUG=skia:

Review URL: https://codereview.chromium.org/1081433002
2015-04-13 12:17:02 -07:00
reed
9645ce17cd crank up innerloop to make hairlinebench more usable/reliable
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1087583002
2015-04-13 11:12:06 -07:00
bsalomon
3033b9faac Make GrContext::freeGpuResources() purge the resource cache
BUG=skia:

Review URL: https://codereview.chromium.org/1082783002
2015-04-13 11:09:56 -07:00
caryclark
697ac1c138 fix valgrind uninitialized issue
R=mtklein@google.com
BUG=skia:3654

Review URL: https://codereview.chromium.org/1082753002
2015-04-13 09:36:01 -07:00
Stephen White
056c424de8 Revert "Enable tessellating GPU path renderer."
This reverts commit c185019d00.

Reason for revert: Causing errors in DM runs.

BUG=skia:
TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1087563002
2015-04-13 11:36:45 -04:00
senorblanco
c185019d00 Enable tessellating GPU path renderer.
Note: this will affect a large number of GPU GM results.

R=bsalomon@google.com
BUG=

Review URL: https://codereview.chromium.org/1084573003
2015-04-13 07:50:26 -07:00
robertphillips
e80a122d95 Update rebaselining process to be less Florin intensive
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1084583002

Review URL: https://codereview.chromium.org/1084583002
2015-04-13 07:28:59 -07:00
joshualitt
53b5f4488b Start caching masks / stroke fills for textblobs
BUG=skia:

Review URL: https://codereview.chromium.org/1065293003
2015-04-13 06:33:59 -07:00
joshualitt
2a0e9f36c6 Avoid regenerating cached textblobs on integer scrolls
BUG=skia:

Review URL: https://codereview.chromium.org/1062863002
2015-04-13 06:12:21 -07:00
reed
64b309c35b use fast/inline SkRect::set(p0, p1) for 2 points
10% speedup for clipped haircubics

BUG=skia:
TBR=
NOTRY=True

Review URL: https://codereview.chromium.org/1079343002
2015-04-12 19:07:08 -07:00
reed
9aeb2a1068 always layout w/ same bounds
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1085453002
2015-04-11 19:29:51 -07:00
reed
ffab15f60e use anon namespace to avoid (silent) collisions between local test classes
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1079813002
2015-04-11 19:29:31 -07:00
reed
51985e3f5e setDrawFilter needs to trigger any deferred saves
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1077353002
2015-04-11 08:04:56 -07:00
reed
054eef2b5c change hairline procs to take SkPoint by value, more efficient on SSE and NEON
precursor for https://codereview.chromium.org/1074313002/

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1084433002
2015-04-10 20:39:19 -07:00
bungeman
94164944f8 Ammend font table data experiment on Mac.
Calling CGFontCopyTableForTag did not affect the runtime results,
so try to actually access the data to see if that makes a
difference.

TBR=reed1
This is a test change, allow data to be collected.

Review URL: https://codereview.chromium.org/1076183004
2015-04-10 15:35:22 -07:00
msarett
3c309db75b Implementing filling for SkBmpCodec
The bmp codec currently returns kIncompleteInput
when the stream is truncated, which we treat as a
partial success.  However, we neglect the fill the
remaining pixels in the image, leaving these
uninitialized.

This CL addresses this problem by initializing the
remaining pixels in the image to default values.

BUG=skia:3257

Review URL: https://codereview.chromium.org/1075243003
2015-04-10 14:36:49 -07:00
robertphillips
25c40d25d7 Add serialization of SkBitmapSource's new filterQuality member variable
Missed this in https://codereview.chromium.org/1072603002/ (Add GM to repro crbug.com/472795)

Review URL: https://codereview.chromium.org/1078113002
2015-04-10 08:39:58 -07:00
joshualitt
f6e97e6f62 trivial fix for TextBlobCache
BUG=skia:

Review URL: https://codereview.chromium.org/1076193003
2015-04-10 07:23:30 -07:00
joshualitt
0db6dfaeb2 The TextBlobCache needs the ability to trigger a flush because otherwise its entire budget can be used up, but it will not be able to free up any space due to blobs being stuck in the GrInOrderDrawBuffer. This was causing a segfault. After this CL the cache will try to purge, and then flush if it cannot purge enough. It will not purge the most recent addition to the cache.
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1071333002
2015-04-10 07:01:30 -07:00
mtklein
c5e0891029 Replace NEON assembly memset16 and memset32 with intrinsic versions.
According to bench/MemsetBench.cpp, I've got them somewhere between 10% slower
and a percent or two faster than the old assembly.

BUG=skia:

CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Debug-Trybot

Review URL: https://codereview.chromium.org/1075003002
2015-04-10 06:24:58 -07:00
joshualitt
d0b5c33fda Adding draw looper gm for textblobs
BUG=skia:

Review URL: https://codereview.chromium.org/1067853002
2015-04-10 06:17:26 -07:00
mtklein
9ff378b01b Rewrite memset benches, then use results to add a small-N optimization.
The benches for N <= 10 get around 2x faster on my N7 and N9.  I believe this
is because of the reduced function-call-then-function-pointer-call overhead on
the N7, and additionally because it seems autovectorization beats our NEON code
for small N on the N9.

My desktop is unchanged, though that's probably because N=10 lies well within a
region where memset's performance is essentially constant: N=100 takes only
about 2x as long as N=1 and N=10, which perform nearly identically.

BUG=skia:

Review URL: https://codereview.chromium.org/1073863002
2015-04-09 14:05:17 -07:00
reed
a1e41c6d9a default to 8888 for ganesh in sampleapp on iOS
BUG=skia:

Review URL: https://codereview.chromium.org/1078843002
2015-04-09 13:43:22 -07:00
halcanary
2b86155b42 SkPDF: ResourceDict replaced by factory function
Motivation: Having a class here was unnecessary, since the only thing
that set this class apart was how it is created, not how it behaves.

BUG=skia:3585

Review URL: https://codereview.chromium.org/1068343003
2015-04-09 13:27:40 -07:00
msarett
29be7958de Fix ASAN error
BUG=skia:

TBR=

Review URL: https://codereview.chromium.org/1072183002
2015-04-09 13:14:40 -07:00
msarett
438b2adefb ***Disables swizzles to 565.
We may want to enable swizzles to 565
for images that are encoded in a format
similar to 565, however, we do not want
to take images that decode naturally to
kN32 and then convert them to 565.

***Enable swizzles to kIndex_8.  For images
encoded in a color table format, we suggest
that they be decoded to kIndex_8.  When we
decode, we only allow conversion to kIndex_8
if it matches the suggested color type (except
wbmp which seems good as is).

***Modify dm to test images that decode to
kIndex_8.

BUG=skia:3257
BUG=skia:3440

Review URL: https://codereview.chromium.org/1055743003
2015-04-09 12:43:10 -07:00
senorblanco
16b254a200 Change some more GMs to clear to opaque black, not transparent black.
N.B.: this will change results on the bots for all the tests modified.

BUG=skia:3319

Review URL: https://codereview.chromium.org/1077763002
2015-04-09 11:13:24 -07:00