platform/upstream/libSkiaSharp.git
9 years agoRespect declared font style on Android.
bungeman [Fri, 17 Apr 2015 20:51:08 +0000 (13:51 -0700)]
Respect declared font style on Android.

Previously the normal/italic style bit was obtained from scanning the
font file. With the new format the style may be stated explicitly, and
this explicit value in the configuration file should override any
information obtained from the font data itself.

This change allows the font element's style attribute to override the
font's style, but retains the default 'auto' setting for backwards
compatibility. Repecting the style bit may become more important with
variation fonts, because it will be up to the configuration writer to
determine what values of the 'slnt' variation should be considered
'normal' or 'italic'.

DOCS_PREVIEW= https://skia.org/?cl=1092093002

Committed: https://skia.googlesource.com/skia/+/673e902c9b9982a167f54f1cc175d8d9cab8bcaf

Review URL: https://codereview.chromium.org/1092093002

9 years agoRevert of Respect declared font style on Android. (patchset #6 id:100001 of https...
jcgregorio [Fri, 17 Apr 2015 20:30:35 +0000 (13:30 -0700)]
Revert of Respect declared font style on Android. (patchset #6 id:100001 of https://codereview.chromium.org/1092093002/)

Reason for revert:
Failed on the compile bots.

Original issue's description:
> Respect declared font style on Android.
>
> Previously the normal/italic style bit was obtained from scanning the
> font file. With the new format the style may be stated explicitly, and
> this explicit value in the configuration file should override any
> information obtained from the font data itself.
>
> This change allows the font element's style attribute to override the
> font's style, but retains the default 'auto' setting for backwards
> compatibility. Repecting the style bit may become more important with
> variation fonts, because it will be up to the configuration writer to
> determine what values of the 'slnt' variation should be considered
> 'normal' or 'italic'.
>
> DOCS_PREVIEW= https://skia.org/?cl=1092093002
>
> Committed: https://skia.googlesource.com/skia/+/673e902c9b9982a167f54f1cc175d8d9cab8bcaf

TBR=mtklein@google.com,tomhudson@google.com,scroggo@google.com,bungeman@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1082173004

9 years agoPDF: Correctly embed JPEG images directly into PDF output.
halcanary [Fri, 17 Apr 2015 20:27:24 +0000 (13:27 -0700)]
PDF: Correctly embed JPEG images directly into PDF output.

We only embed images with YUV planes.  That should only grab the
subset of color JPEGs supported by PDF.

BUG=skia:3180

Review URL: https://codereview.chromium.org/1025773002

9 years agoRespect declared font style on Android.
bungeman [Fri, 17 Apr 2015 20:25:03 +0000 (13:25 -0700)]
Respect declared font style on Android.

Previously the normal/italic style bit was obtained from scanning the
font file. With the new format the style may be stated explicitly, and
this explicit value in the configuration file should override any
information obtained from the font data itself.

This change allows the font element's style attribute to override the
font's style, but retains the default 'auto' setting for backwards
compatibility. Repecting the style bit may become more important with
variation fonts, because it will be up to the configuration writer to
determine what values of the 'slnt' variation should be considered
'normal' or 'italic'.

DOCS_PREVIEW= https://skia.org/?cl=1092093002

Review URL: https://codereview.chromium.org/1092093002

9 years agoTrace contention for lockPixels mutex
enne [Fri, 17 Apr 2015 19:42:49 +0000 (12:42 -0700)]
Trace contention for lockPixels mutex

Review URL: https://codereview.chromium.org/1090103002

9 years agoRework SSE and NEON Color32 algorithms to be more correct and faster.
mtklein [Fri, 17 Apr 2015 18:00:54 +0000 (11:00 -0700)]
Rework SSE and NEON Color32 algorithms to be more correct and faster.

This algorithm changes the blend math, guarded by SK_LEGACY_COLOR32_MATH.  The new math is more correct: it's never off by more than 1, and correct in all the interesting 0x00 and 0xFF edge cases, where the old math was never off by more than 2, and not always correct on the edges.

If you look at tests/BlendTest.cpp, the old code was using the `blend_256_plus1_trunc` algorithm, while the new code uses `blend_256_round_alt`.  Neither uses `blend_perfect`, which is about ~35% slower than `blend_256_round_alt`.

This will require an unfathomable number of rebaselines, first to Skia, then to Blink when I remove the guard.

I plan to follow up with some integer SIMD abstractions that can unify these two implementations into a single algorithm.  This was originally what I was working on here, but the correctness gains seem to be quite compelling.  The only places these two algorithms really differ greatly now is the kernel function, and even there they can really both be expressed abstractly as:
  - multiply 8-bits and 8-bits producing 16-bits
  - add 16-bits to 16-bits, returning the top 8 bits.
All the constants are the same, except SSE is a little faster to keep 8 16-bit inverse alphas, NEON's a little faster to keep 8 8-bit inverse alphas.  I may need to take this small speed win back to unify the two.

We should expect a ~25% speedup on Intel (mostly from unrolling to 8 pixels) and a ~20% speedup on ARM (mostly from using vaddhn to add `color`, round, and narrow back down to 8-bit all into one instruction.

(I am probably missing several more related bugs here.)
BUG=skia:3738,skia:420,chromium:111470

Review URL: https://codereview.chromium.org/1092433002

9 years agoRemove filename from SkFontDescriptor.
bungeman [Fri, 17 Apr 2015 18:00:06 +0000 (11:00 -0700)]
Remove filename from SkFontDescriptor.

No one actually uses it, so remove it. Keep the string id for backward
compatibility.

TBR=reed@google.com
This doesn't change any public API.

Review URL: https://codereview.chromium.org/1057413005

9 years agoSmall change to allow DistanceField and BMP text to coexist in a blob
joshualitt [Fri, 17 Apr 2015 17:32:32 +0000 (10:32 -0700)]
Small change to allow DistanceField and BMP text to coexist in a blob

BUG=skia:

Review URL: https://codereview.chromium.org/1096753002

9 years agoCorrect SkFixedToDouble.
bungeman [Fri, 17 Apr 2015 17:05:43 +0000 (10:05 -0700)]
Correct SkFixedToDouble.

SkFixedToDouble uses the decimal floating point string representation
of 1/(2^16) to provide a constant value. This value is exactly
representable by a double but the decimal constant currently used
does not map to this value.

This change modifies this constant to more decimal digits so that
the actual double value desired is created.

Review URL: https://codereview.chromium.org/1097473002

9 years agoInitial CL to add distance field support to GrAtlasTextContext
joshualitt [Fri, 17 Apr 2015 16:30:06 +0000 (09:30 -0700)]
Initial CL to add distance field support to GrAtlasTextContext

BUG=skia:

Review URL: https://codereview.chromium.org/1082843002

9 years agoadding new gm to rotate, translate, and scale textblobs
joshualitt [Fri, 17 Apr 2015 16:01:05 +0000 (09:01 -0700)]
adding new gm to rotate, translate, and scale textblobs

this is to test distance field caching and regen of texture blobs on scale.

BUG=skia:

Review URL: https://codereview.chromium.org/1097563002

9 years agoAllow NEON on iOS.
mtklein [Fri, 17 Apr 2015 13:36:53 +0000 (06:36 -0700)]
Allow NEON on iOS.

I have nanobench building and running (Color32_arm_neon) on my iPad.

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

BUG=skia:

Review URL: https://codereview.chromium.org/1091823002

9 years agoadd a GM to demo the blend bug
mtklein [Fri, 17 Apr 2015 13:32:13 +0000 (06:32 -0700)]
add a GM to demo the blend bug

BUG=skia:3739

Review URL: https://codereview.chromium.org/1094863003

9 years agoRevert of Revert of remove unused (by clients) SkPathUtils (patchset #1 id:1 of https...
reed [Fri, 17 Apr 2015 03:10:55 +0000 (20:10 -0700)]
Revert of Revert of remove unused (by clients) SkPathUtils (patchset #1 id:1 of https://codereview.chromium.org/1060703003/)

Reason for revert:
fix (removal from gypi/gn files) has landed in chrome.

Original issue's description:
> Revert of remove unused (by clients) SkPathUtils (patchset #1 id:1 of https://codereview.chromium.org/1088383003/)
>
> Reason for revert:
> This change is causing the DEPS roll to fail:
>
>
> http://build.chromium.org/p/tryserver.chromium.linux/builders/android_chromium_gn_compile_rel/builds/78771/steps/gn/logs/stdio
>
> Original issue's description:
> > remove unused (by clients) SkPathUtils
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/aab35d91b8b80acd1902594bbf542083fdfa4bb7
>
> TBR=scroggo@google.com,reed@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/bdb0bf5f8858043878d8a4fa8130c6c87bef3fd4

TBR=scroggo@google.com,jcgregorio@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1091963002

9 years agoAdd PS 'all' weight name to scanFont.
bungeman [Thu, 16 Apr 2015 21:22:46 +0000 (14:22 -0700)]
Add PS 'all' weight name to scanFont.

Multiple Master fonts often list their weight as 'all'. However, they
usually default to normal weight. State explicitly that we know about
this weight string.

Review URL: https://codereview.chromium.org/1092793002

9 years agoDefault iOS builds to our code signing identity.
mtklein [Thu, 16 Apr 2015 20:29:58 +0000 (13:29 -0700)]
Default iOS builds to our code signing identity.

It's super tedious to keep setting it every time I rerun ./gyp_skia.
Doesn't look like it'll bother the bots.

BUG=skia:

Review URL: https://codereview.chromium.org/1053493005

9 years agocontrib: Simplify the command to create a feature branch.
tfarina [Thu, 16 Apr 2015 20:28:06 +0000 (13:28 -0700)]
contrib: Simplify the command to create a feature branch.

You can create a work branch off origin/master by simply running:

$ git checkout -b my-feature origin/master

BUG=None
R=borenet@google.com
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1057513004

Review URL: https://codereview.chromium.org/1057513004

9 years agoThis section is moot: we divert ios to opts_none above.
mtklein [Thu, 16 Apr 2015 19:45:38 +0000 (12:45 -0700)]
This section is moot: we divert ios to opts_none above.

(We never set arm_version = 7 for iOS...)

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.7-Clang-Arm7-Debug-iOS-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/1092753002

9 years agoAdd SkTPin.
bungeman [Thu, 16 Apr 2015 19:18:28 +0000 (12:18 -0700)]
Add SkTPin.

Currently there exist SkScalarPin and SkPin32, and in a future change
another version is desired. This change introduces SkTPin and changes
SkScalarPin and SkPin32 to use it.

Review URL: https://codereview.chromium.org/1090003002

9 years agoImprove tessellating path rasterizer performance on dashed paths.
senorblanco [Thu, 16 Apr 2015 18:47:18 +0000 (11:47 -0700)]
Improve tessellating path rasterizer performance on dashed paths.

With dashed paths, we get a lot of geometry on the same sort line.
Since the vertices are sorted, it makes more sense to insert edges
from the end (in sort order) than the beginning. This requires
maintaining both the head and tail of the active edge list.

This gives a ~20% perf improvement on tabl_digg.skp.

BUG=skia:3733

Review URL: https://codereview.chromium.org/1089903002

9 years agoadd textblob cache freeall
joshualitt [Thu, 16 Apr 2015 18:24:04 +0000 (11:24 -0700)]
add textblob cache freeall

BUG=skia:

Review URL: https://codereview.chromium.org/1088683004

9 years agoRename GrStencilBuffer to GrStencilAttachment
egdaniel [Thu, 16 Apr 2015 18:22:42 +0000 (11:22 -0700)]
Rename GrStencilBuffer to GrStencilAttachment

BUG=skia:

Review URL: https://codereview.chromium.org/1083133002

9 years agoSkScaledBitmapSampler: fix memory overwritten
zoran.jovanovic [Thu, 16 Apr 2015 18:03:16 +0000 (11:03 -0700)]
SkScaledBitmapSampler: fix memory overwritten

Memory will be overwritten while downsampling some
interlaced gif images, most commonly with odd sizes,
when index of destination row stores in the current
line computed from GifInterlaceIter meets:

 X is an integer in [0..height-1]
   and
 (X < height)
 && ((X - sampleSize/2) % sampleSize == 0)
 && ((X - sampleSize/2)/sampleSize >= height/sampleSize)

Signed-off-by: Lu Tong <lu.x.tong@sonymobile.com>
BUG=skia:

Review URL: https://codereview.chromium.org/1085253002

9 years agoAdd ReverseIter to GrTRecorder
cdalton [Thu, 16 Apr 2015 17:42:49 +0000 (10:42 -0700)]
Add ReverseIter to GrTRecorder

BUG=skia:

Review URL: https://codereview.chromium.org/1035083004

9 years agoRevert of remove unused (by clients) SkPathUtils (patchset #1 id:1 of https://coderev...
jcgregorio [Thu, 16 Apr 2015 16:47:36 +0000 (09:47 -0700)]
Revert of remove unused (by clients) SkPathUtils (patchset #1 id:1 of https://codereview.chromium.org/1088383003/)

Reason for revert:
This change is causing the DEPS roll to fail:

http://build.chromium.org/p/tryserver.chromium.linux/builders/android_chromium_gn_compile_rel/builds/78771/steps/gn/logs/stdio

Original issue's description:
> remove unused (by clients) SkPathUtils
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/aab35d91b8b80acd1902594bbf542083fdfa4bb7

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

Review URL: https://codereview.chromium.org/1060703003

9 years agoDon't serialize anything for SkEmptyShader.
mtklein [Thu, 16 Apr 2015 14:59:12 +0000 (07:59 -0700)]
Don't serialize anything for SkEmptyShader.

BUG=skia:3735

Review URL: https://codereview.chromium.org/1097433002

9 years agowiden output png size of bmp_filter_quality_repeat
Brian Salomon [Thu, 16 Apr 2015 14:46:18 +0000 (10:46 -0400)]
widen output png size of bmp_filter_quality_repeat

BUG=skia:

Review URL: https://codereview.chromium.org/1097443002

9 years agoAdd GM that tests bmp filter qualities with repeat mode
bsalomon [Thu, 16 Apr 2015 13:54:28 +0000 (06:54 -0700)]
Add GM that tests bmp filter qualities with repeat mode

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1086203002

9 years agoremove unused (by clients) SkPathUtils
reed [Thu, 16 Apr 2015 13:16:38 +0000 (06:16 -0700)]
remove unused (by clients) SkPathUtils

BUG=skia:

Review URL: https://codereview.chromium.org/1088383003

9 years agoZero jpeg_decompress_struct before calling jpeg_calc_output_dimensions().
mtklein [Thu, 16 Apr 2015 13:09:27 +0000 (06:09 -0700)]
Zero jpeg_decompress_struct before calling jpeg_calc_output_dimensions().

https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Valgrind/builds/38/steps/dm/logs/stdio

(Must have been https://codereview.chromium.org/1076923002 ?)

BUG=skia:

Review URL: https://codereview.chromium.org/1094603002

9 years agoremove older version of cubic->coeff
reed [Thu, 16 Apr 2015 02:57:54 +0000 (19:57 -0700)]
remove older version of cubic->coeff

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1084623004

9 years agoSpeeup hairline curves (quads and cubics) (patchset #7 id:120001 of https://coderevie...
reed [Thu, 16 Apr 2015 01:23:03 +0000 (18:23 -0700)]
Speeup hairline curves (quads and cubics) (patchset #7 id:120001 of https://codereview.chromium.org/1078413003/)"

ah ha! Check for the define *after* we pull in SkUserConfig.h (indirectly)

This reverts commit 639a82855b94b93c4fa45560e67df8ec4a8bbb3a.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1084283003

9 years agoRevert of make blitAntiH2 virtual, to prep for larger change (patchset #1 id:1 of...
reed [Thu, 16 Apr 2015 01:05:47 +0000 (18:05 -0700)]
Revert of make blitAntiH2 virtual, to prep for larger change (patchset #1 id:1 of https://codereview.chromium.org/1048323005/)

Reason for revert:
end of test

Original issue's description:
> make blitAntiH2 virtual, to prep for larger change
>
> testing...
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/33afdaa5213cf118b3ca290bb343253c8593756d

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

Review URL: https://codereview.chromium.org/1086293002

9 years agomake blitAntiH2 virtual, to prep for larger change
reed [Thu, 16 Apr 2015 00:34:26 +0000 (17:34 -0700)]
make blitAntiH2 virtual, to prep for larger change

testing...

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1048323005

9 years agoRevert of Speeup hairline curves (quads and cubics) (patchset #7 id:120001 of https...
reed [Wed, 15 Apr 2015 21:38:09 +0000 (14:38 -0700)]
Revert of Speeup hairline curves (quads and cubics) (patchset #7 id:120001 of https://codereview.chromium.org/1078413003/)

Reason for revert:
Crazy failings in chrome tests
http://build.chromium.org/p/client.skia/builders/Linux%20Tests/builds/1862

Original issue's description:
> Speeup hairline curves (quads and cubics)
>
> /skia/trunk> cat ../old.txt
> maxrss loops min median mean max stddev samples    config bench
>    9M 1 4.28ms 4.32ms 4.36ms 4.67ms 3% ▄▁▁▃▂▂▁▁▂█ 8888 path_hairline_small_AA_cubic
>    9M 1 743µs 767µs 770µs 825µs 4% ▃▃▇▃▁▁▅▁█▁ 8888 path_hairline_small_AA_conic
>    9M 1 533µs 606µs 598µs 680µs 9% ▁▂▂█▆▇▇▄▂▂ 8888 path_hairline_small_AA_quad
>    9M 1 451µs 452µs 456µs 495µs 3% ▁▁▁▁█▁▁▁▁▁ 8888 path_hairline_small_AA_line
>
> /skia/trunk> cat ../new.txt
> maxrss loops min median mean max stddev samples    config bench
>    9M 1 827µs 827µs 831µs 869µs 2% ▁▁▁▁▁▁▁█▁▁ 8888 path_hairline_small_AA_cubic
>    9M 1 515µs 517µs 517µs 518µs 0% ▇█▆▅▃▃▁▁▁▅ 8888 path_hairline_small_AA_conic
>    9M 1 310µs 311µs 315µs 332µs 2% ▂▁█▆▁▁▁▁▁▁ 8888 path_hairline_small_AA_quad
>    9M 1 254µs 254µs 258µs 276µs 3% ▁▁▁▁▁▁▁█▇▂ 8888 path_hairline_small_AA_line
>
> Edited revert of https://codereview.chromium.org/1085013003
>
> TBR=
>
> Expectations:
> - no effect on chrome, as it is guarded
> - lots of tiny rebaselines for skia

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1092483003

9 years agoDon't draw if SkShader::asNewFragmentProcessor fails.
bsalomon [Wed, 15 Apr 2015 21:18:34 +0000 (14:18 -0700)]
Don't draw if SkShader::asNewFragmentProcessor fails.

BUG=chromium:473156

Review URL: https://codereview.chromium.org/1089063002

9 years agoFix LCD text and add path fix for Mali.
jvanverth [Wed, 15 Apr 2015 20:41:31 +0000 (13:41 -0700)]
Fix LCD text and add path fix for Mali.

dFdy(st.y) produces negative values, so we need to take
abs() to get the right inverse scale.

BUG=skia:3528

Review URL: https://codereview.chromium.org/1086183002

9 years agoSpeeup hairline curves (quads and cubics)
reed [Wed, 15 Apr 2015 20:13:48 +0000 (13:13 -0700)]
Speeup hairline curves (quads and cubics)

/skia/trunk> cat ../old.txt
maxrss loops min median mean max stddev samples    config bench
   9M 1 4.28ms 4.32ms 4.36ms 4.67ms 3% ▄▁▁▃▂▂▁▁▂█ 8888 path_hairline_small_AA_cubic
   9M 1 743µs 767µs 770µs 825µs 4% ▃▃▇▃▁▁▅▁█▁ 8888 path_hairline_small_AA_conic
   9M 1 533µs 606µs 598µs 680µs 9% ▁▂▂█▆▇▇▄▂▂ 8888 path_hairline_small_AA_quad
   9M 1 451µs 452µs 456µs 495µs 3% ▁▁▁▁█▁▁▁▁▁ 8888 path_hairline_small_AA_line

/skia/trunk> cat ../new.txt
maxrss loops min median mean max stddev samples    config bench
   9M 1 827µs 827µs 831µs 869µs 2% ▁▁▁▁▁▁▁█▁▁ 8888 path_hairline_small_AA_cubic
   9M 1 515µs 517µs 517µs 518µs 0% ▇█▆▅▃▃▁▁▁▅ 8888 path_hairline_small_AA_conic
   9M 1 310µs 311µs 315µs 332µs 2% ▂▁█▆▁▁▁▁▁▁ 8888 path_hairline_small_AA_quad
   9M 1 254µs 254µs 258µs 276µs 3% ▁▁▁▁▁▁▁█▇▂ 8888 path_hairline_small_AA_line

Edited revert of https://codereview.chromium.org/1085013003

TBR=

Review URL: https://codereview.chromium.org/1078413003

9 years agoSkPDF/Device/ImageFilter: Fix ImageFilter fallback code
halcanary [Wed, 15 Apr 2015 20:05:18 +0000 (13:05 -0700)]
SkPDF/Device/ImageFilter: Fix ImageFilter fallback code

Broken in https://chromium.googlesource.com/skia/+/76033be

I have confirmed that this fixes 470083.

BUG=470083

Review URL: https://codereview.chromium.org/1080923004

9 years agoReal fix for the Mali bug.
jvanverth [Wed, 15 Apr 2015 19:31:22 +0000 (12:31 -0700)]
Real fix for the Mali bug.

The dFdy(st.y) computation seems to be better than the dFdx(st.x) computation
on the Mali, so using that. The end result should be about the same.

BUG=skia:3528

Review URL: https://codereview.chromium.org/1082913006

9 years agoremove randomness in dstreadshuffle
joshualitt [Wed, 15 Apr 2015 15:08:28 +0000 (08:08 -0700)]
remove randomness in dstreadshuffle

BUG=skia:

Review URL: https://codereview.chromium.org/1085443005

9 years agoadd blitter api for aa-hairlines
reed [Wed, 15 Apr 2015 14:51:15 +0000 (07:51 -0700)]
add blitter api for aa-hairlines

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1088143002

9 years agoChange tessellator sweep direction to depend on path aspect ratio.
senorblanco [Wed, 15 Apr 2015 14:32:27 +0000 (07:32 -0700)]
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

9 years agoSkJpegCodec
msarett [Wed, 15 Apr 2015 14:32:19 +0000 (07:32 -0700)]
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

9 years agoRevert of add new blit2 methods in support of antialiased hairlines guard flag SK_SUP...
jcgregorio [Wed, 15 Apr 2015 13:17:10 +0000 (06:17 -0700)]
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

9 years agoReturn cropBitmap
zoran.jovanovic [Wed, 15 Apr 2015 12:48:54 +0000 (05:48 -0700)]
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

9 years agoConvert BitmapTextBatch from STArray to AutoSTMalloc
joshualitt [Wed, 15 Apr 2015 12:31:57 +0000 (05:31 -0700)]
Convert BitmapTextBatch from STArray to AutoSTMalloc

BUG=skia:

Review URL: https://codereview.chromium.org/1088533002

9 years agoRoll common DEPS: fix string concat error in gs_utils upload
borenet [Wed, 15 Apr 2015 11:49:32 +0000 (04:49 -0700)]
Roll common DEPS: fix string concat error in gs_utils upload

TBR=jcgregorio
BUG=skia:3723

Review URL: https://codereview.chromium.org/1057653006

9 years agoadd new blit2 methods in support of antialiased hairlines
reed [Wed, 15 Apr 2015 01:39:57 +0000 (18:39 -0700)]
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

9 years agoConvert BitmapTextBlob from using STArray to AutoSTMalloc
joshualitt [Tue, 14 Apr 2015 21:33:37 +0000 (14:33 -0700)]
Convert BitmapTextBlob from using STArray to AutoSTMalloc

BUG=skia:

Review URL: https://codereview.chromium.org/1083703002

9 years agoDM: add --multiPage option
halcanary [Tue, 14 Apr 2015 21:06:18 +0000 (14:06 -0700)]
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

9 years agoSk4h and Sk8h for SSE
mtklein [Tue, 14 Apr 2015 21:02:52 +0000 (14:02 -0700)]
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

9 years agocleanup codec names being produced by dm and uploaded to gold
djsollen [Tue, 14 Apr 2015 20:47:51 +0000 (13:47 -0700)]
cleanup codec names being produced by dm and uploaded to gold

Review URL: https://codereview.chromium.org/1072933004

9 years agoStart canonicalizing color for all A8 textblobs
joshualitt [Tue, 14 Apr 2015 19:17:27 +0000 (12:17 -0700)]
Start canonicalizing color for all A8 textblobs

BUG=skia:

Review URL: https://codereview.chromium.org/1076593002

9 years agoRename SkNi to SkNb.
mtklein [Tue, 14 Apr 2015 18:49:14 +0000 (11:49 -0700)]
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

9 years agochange hairline procs to take array of points
reed [Tue, 14 Apr 2015 17:40:44 +0000 (10:40 -0700)]
change hairline procs to take array of points

BUG=skia:

Review URL: https://codereview.chromium.org/1085883002

9 years agoUpdate common DEPS: adding retries to GS upload
borenet [Tue, 14 Apr 2015 17:37:33 +0000 (10:37 -0700)]
Update common DEPS: adding retries to GS upload

BUG=skia:3723

Review URL: https://codereview.chromium.org/1083663006

9 years agoAdd GM to exercise high quality anisotropic scaling
robertphillips [Tue, 14 Apr 2015 15:19:01 +0000 (08:19 -0700)]
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

9 years agoGM: add fadefilter gm
halcanary [Tue, 14 Apr 2015 13:25:19 +0000 (06:25 -0700)]
GM: add fadefilter gm

BUG=470083

Review URL: https://codereview.chromium.org/1081173002

9 years agoearly return from stream peek
caryclark [Tue, 14 Apr 2015 13:08:04 +0000 (06:08 -0700)]
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

9 years agoFixing use of initialized memory.
msarett [Tue, 14 Apr 2015 12:37:36 +0000 (05:37 -0700)]
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

9 years agoEnable tessellating GPU path renderer.
senorblanco [Mon, 13 Apr 2015 21:27:37 +0000 (14:27 -0700)]
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

9 years agoBlacklist desk_wikipedia pdf on Valgrind bots
borenet [Mon, 13 Apr 2015 20:29:26 +0000 (13:29 -0700)]
Blacklist desk_wikipedia pdf on Valgrind bots

BUG=skia:3506

Review URL: https://codereview.chromium.org/1056763004

9 years agoSet resScale on stroker when stroking path on gpu.
egdaniel [Mon, 13 Apr 2015 20:06:46 +0000 (13:06 -0700)]
Set resScale on stroker when stroking path on gpu.

BUG=skia:3686

Review URL: https://codereview.chromium.org/1048333003

9 years agoFix minor undercounting in SkRecord::bytesUsed().
mtklein [Mon, 13 Apr 2015 19:17:02 +0000 (12:17 -0700)]
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

9 years agocrank up innerloop to make hairlinebench more usable/reliable
reed [Mon, 13 Apr 2015 18:12:06 +0000 (11:12 -0700)]
crank up innerloop to make hairlinebench more usable/reliable

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1087583002

9 years agoMake GrContext::freeGpuResources() purge the resource cache
bsalomon [Mon, 13 Apr 2015 18:09:56 +0000 (11:09 -0700)]
Make GrContext::freeGpuResources() purge the resource cache

BUG=skia:

Review URL: https://codereview.chromium.org/1082783002

9 years agofix valgrind uninitialized issue
caryclark [Mon, 13 Apr 2015 16:36:01 +0000 (09:36 -0700)]
fix valgrind uninitialized issue

R=mtklein@google.com
BUG=skia:3654

Review URL: https://codereview.chromium.org/1082753002

9 years agoRevert "Enable tessellating GPU path renderer."
Stephen White [Mon, 13 Apr 2015 15:36:45 +0000 (11:36 -0400)]
Revert "Enable tessellating GPU path renderer."

This reverts commit c185019d009dbfcc8d07f267b0fd72ba1ce673d9.

Reason for revert: Causing errors in DM runs.

BUG=skia:
TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1087563002

9 years agoEnable tessellating GPU path renderer.
senorblanco [Mon, 13 Apr 2015 14:50:26 +0000 (07:50 -0700)]
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

9 years agoUpdate rebaselining process to be less Florin intensive
robertphillips [Mon, 13 Apr 2015 14:28:59 +0000 (07:28 -0700)]
Update rebaselining process to be less Florin intensive

NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1084583002

Review URL: https://codereview.chromium.org/1084583002

9 years agoStart caching masks / stroke fills for textblobs
joshualitt [Mon, 13 Apr 2015 13:33:59 +0000 (06:33 -0700)]
Start caching masks / stroke fills for textblobs

BUG=skia:

Review URL: https://codereview.chromium.org/1065293003

9 years agoAvoid regenerating cached textblobs on integer scrolls
joshualitt [Mon, 13 Apr 2015 13:12:21 +0000 (06:12 -0700)]
Avoid regenerating cached textblobs on integer scrolls

BUG=skia:

Review URL: https://codereview.chromium.org/1062863002

9 years agouse fast/inline SkRect::set(p0, p1) for 2 points
reed [Mon, 13 Apr 2015 02:07:08 +0000 (19:07 -0700)]
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

9 years agoalways layout w/ same bounds
reed [Sun, 12 Apr 2015 02:29:50 +0000 (19:29 -0700)]
always layout w/ same bounds

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1085453002

9 years agouse anon namespace to avoid (silent) collisions between local test classes
reed [Sun, 12 Apr 2015 02:29:31 +0000 (19:29 -0700)]
use anon namespace to avoid (silent) collisions between local test classes

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1079813002

9 years agosetDrawFilter needs to trigger any deferred saves
reed [Sat, 11 Apr 2015 15:04:56 +0000 (08:04 -0700)]
setDrawFilter needs to trigger any deferred saves

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1077353002

9 years agochange hairline procs to take SkPoint by value, more efficient on SSE and NEON
reed [Sat, 11 Apr 2015 03:39:19 +0000 (20:39 -0700)]
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

9 years agoAmmend font table data experiment on Mac.
bungeman [Fri, 10 Apr 2015 22:35:22 +0000 (15:35 -0700)]
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

9 years agoImplementing filling for SkBmpCodec
msarett [Fri, 10 Apr 2015 21:36:48 +0000 (14:36 -0700)]
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

9 years agoAdd serialization of SkBitmapSource's new filterQuality member variable
robertphillips [Fri, 10 Apr 2015 15:39:58 +0000 (08:39 -0700)]
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

9 years agotrivial fix for TextBlobCache
joshualitt [Fri, 10 Apr 2015 14:23:29 +0000 (07:23 -0700)]
trivial fix for TextBlobCache

BUG=skia:

Review URL: https://codereview.chromium.org/1076193003

9 years agoThe TextBlobCache needs the ability to trigger a flush because otherwise its entire...
joshualitt [Fri, 10 Apr 2015 14:01:30 +0000 (07:01 -0700)]
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

9 years agoReplace NEON assembly memset16 and memset32 with intrinsic versions.
mtklein [Fri, 10 Apr 2015 13:24:58 +0000 (06:24 -0700)]
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

9 years agoAdding draw looper gm for textblobs
joshualitt [Fri, 10 Apr 2015 13:17:26 +0000 (06:17 -0700)]
Adding draw looper gm for textblobs

BUG=skia:

Review URL: https://codereview.chromium.org/1067853002

9 years agoRewrite memset benches, then use results to add a small-N optimization.
mtklein [Thu, 9 Apr 2015 21:05:17 +0000 (14:05 -0700)]
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

9 years agodefault to 8888 for ganesh in sampleapp on iOS
reed [Thu, 9 Apr 2015 20:43:22 +0000 (13:43 -0700)]
default to 8888 for ganesh in sampleapp on iOS

BUG=skia:

Review URL: https://codereview.chromium.org/1078843002

9 years agoSkPDF: ResourceDict replaced by factory function
halcanary [Thu, 9 Apr 2015 20:27:40 +0000 (13:27 -0700)]
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

9 years agoFix ASAN error
msarett [Thu, 9 Apr 2015 20:14:40 +0000 (13:14 -0700)]
Fix ASAN error

BUG=skia:

TBR=

Review URL: https://codereview.chromium.org/1072183002

9 years ago***Disables swizzles to 565.
msarett [Thu, 9 Apr 2015 19:43:10 +0000 (12:43 -0700)]
***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

9 years agoChange some more GMs to clear to opaque black, not transparent black.
senorblanco [Thu, 9 Apr 2015 18:13:24 +0000 (11:13 -0700)]
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

9 years agoAvoid sending empty bitmaps through proxy canvas
tomhudson [Thu, 9 Apr 2015 16:20:19 +0000 (09:20 -0700)]
Avoid sending empty bitmaps through proxy canvas

Some back ends may crash when asked to draw an empty bitmap, so we
filter it out here.

BUG=skia:3692
R=djsollen@google.com,reed@google.com

Review URL: https://codereview.chromium.org/1072033002

9 years agoRemove ARM assembly memsets.
mtklein [Thu, 9 Apr 2015 16:16:28 +0000 (09:16 -0700)]
Remove ARM assembly memsets.

Step 1 of a zillion in the quest for NEON on iOS,
and step 1 of a different zillion in the Great Assembly Purge.

ios, arm, arm64, arm_v7, arm_v7_neon all build.

BUG=skia:

Review URL: https://codereview.chromium.org/1072063002

9 years ago[SkTextBlob] Custom run font record
fmalita [Thu, 9 Apr 2015 15:49:32 +0000 (08:49 -0700)]
[SkTextBlob] Custom run font record

Instead of using a full-blown SkPaint to store run font info, use a
custom structure.

This saves 96 bytes / run on 64bit platforms.

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

Review URL: https://codereview.chromium.org/1070943002

9 years agoadd test for opaque-preserving colormatrixfilters
reed [Thu, 9 Apr 2015 15:27:27 +0000 (08:27 -0700)]
add test for opaque-preserving colormatrixfilters

BUG=skia:

Review URL: https://codereview.chromium.org/1069463002

9 years agofix for perf regression on ugamsolutions / msaa16
joshualitt [Thu, 9 Apr 2015 15:22:37 +0000 (08:22 -0700)]
fix for perf regression on ugamsolutions / msaa16

BUG=skia:

Review URL: https://codereview.chromium.org/1076853002

9 years agoRename DistanceFieldTextureEffect.{cpp,h}
jvanverth [Thu, 9 Apr 2015 15:00:49 +0000 (08:00 -0700)]
Rename DistanceFieldTextureEffect.{cpp,h}

BUG=skia:

Review URL: https://codereview.chromium.org/1073473005

9 years agoBUG=skia:
stephana [Thu, 9 Apr 2015 14:57:54 +0000 (07:57 -0700)]
BUG=skia:

Review URL: https://codereview.chromium.org/1054073003

9 years agoRearrange SkRecord with small N in mind
mtklein [Thu, 9 Apr 2015 14:46:41 +0000 (07:46 -0700)]
Rearrange SkRecord with small N in mind

This rearranges the record pointers and types so they can go in a single array, then preallocates some space for them and for the SkVarAlloc.

picture_overhead_draw bench drops from ~1000ns to 500-600ns, with no effect on picture_overhead_nodraw.

I don't see any significant effect on large picture recording times from our .skps.

BUG=chromium:470553

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

Review URL: https://codereview.chromium.org/1061783002

9 years agoUpdate DEPS to use a cloned copy of libpng
djsollen [Thu, 9 Apr 2015 14:33:23 +0000 (07:33 -0700)]
Update DEPS to use a cloned copy of libpng

BUG=skia:3689

Review URL: https://codereview.chromium.org/1077673002