Commit Graph

18031 Commits

Author SHA1 Message Date
yang.zhang
dc77b35918 Optimize RGB16 blitV functions with NEON for ARM platform.
Here are some performance resultsi on Nexus 9:
SkRGB16BlitterBlitV_neon:
+--------+-----------+
|height  |  C/NEON   |
+--------+-----------+
|1       | 0.765230  |
+--------+-----------+
|8       | 1.273330  |
+--------+-----------+
|18      | 1.441462  |
+--------+-----------+
|32      | 1.627798  |
+--------+-----------+
|76      | 1.683131  |
+--------+-----------+
|85      | 1.679456  |
+--------+-----------+
|120     | 1.721311  |
+--------+-----------+
|128     | 1.725482  |
+--------+-----------+
|512     | 1.784117  |
+--------+-----------+

BUG=skia:

Review URL: https://codereview.chromium.org/1213723002
2015-07-15 07:07:30 -07:00
scroggo
004aebd42c Revert of Added a GLBench for testing performance of vec4 vs scalar for coverage in generated shaders. (patchset #6 id:90001 of https://codereview.chromium.org/1225383002/)
Reason for revert:
Still failing on Windows. e.g. https://uberchromegw.corp.google.com/i/client.skia/builders/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-ANGLE/builds/231/steps/nanobench/logs/stdio

skbug.com/4053

Original issue's description:
> Added a glBench for testing performance of vec4 vs scalar coverage in generated shaders.
>
> Added bench for timing vec4 vs scalar type for coverage in shaders
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/6104ced165f17eb2f765ace354d5895c0bc890c5
>
> Committed: https://skia.googlesource.com/skia/+/c734e69e8cf94bacaf68d3d8ee3310d1ad1fe8b8

TBR=joshualitt@google.com,tomhudson@google.com,wangyix@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1239503003
2015-07-15 06:36:42 -07:00
joshualitt
d4fa90feea Fix VisualBench to hold onto a surface
BUG=skia:

Review URL: https://codereview.chromium.org/1236723003
2015-07-15 06:18:57 -07:00
caryclark
108b5b2c23 make linepaths gm portable
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1225303010
2015-07-15 06:18:47 -07:00
caryclark
001ceb7e1b remove funkster from dcshader gm
The multicolored font that funster enables
only draws and measures on some platforms.

Removing it from the dcshader gm allows
the layout to be uniform on all devices,
making it easier to compare the output
in gold.

TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1231853004
2015-07-15 05:43:38 -07:00
rmistry
7e797dff24 Document new CQ keyword
BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1237693005
TBR=jcgregorio

Review URL: https://codereview.chromium.org/1237693005
2015-07-15 04:40:54 -07:00
msarett
02b5aa3cac Fixed valgrind issues with libjpeg-turbo
The fixes are in the updated libjpeg-turbo repository
pulled in by DEPS.  The fixes are detailed in the linked
skia bug.  To summarize briefly, we now use calloc()
instead of malloc().

BUG=skia:4030

Review URL: https://codereview.chromium.org/1237213004
2015-07-14 14:39:59 -07:00
fmalita
be4229b58f Updated PDFViewer drawImageRect() overrides
R=reed@google.com

Review URL: https://codereview.chromium.org/1240573008
2015-07-14 14:15:08 -07:00
scroggo
b3d54d7c07 Let Android use old version of onDrawBitmapRect.
Define SK_SUPPORT_LEGACY_ONDRAWIMAGERECT when building for the
Android framework, since SkiaCanvasProxy overrides the old version
of the method.

Fixes master-skia build.

NOTRY=True

Review URL: https://codereview.chromium.org/1237903002
2015-07-14 13:59:10 -07:00
mtklein
44cf62c79e Fix buggy blend modes.
The problem turns out to be not over- or underflow like I thought, but that I used different math for x*y/255 for alphas and colors, sometimes resulting in colors where alpha was one less than the maximum color component, which is not a valid SkPMColor.

To be safe, I've switched over all four of these similar complex modes to use exact math everywhere.  They now match the byte-by-byte code in SkXfermode.cpp exactly.

This will slow down Darken and Lighten by about 2x.  I plan to follow up with a CL to see if I can eek out some speed there, and another CL to add asserts that Sk4px code always writes valid SkPMColors.

BUG=skia:4052

Review URL: https://codereview.chromium.org/1241683003
2015-07-14 13:38:28 -07:00
fmalita
2ecc000536 Preserve SKP cullrects on deserialization
Let's not ignore the offset.

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

Review URL: https://codereview.chromium.org/1235953004
2015-07-14 13:12:25 -07:00
caryclark
e8c5666e03 Very tiny paths are subsumed by the Convexicator
and are treated as convex when they are not.

Allow the SkPath::Iter to leave degenerate path
segments unmolested by passing an additional exact
bool to next().

Treat any non-zero length as significant in addPt().

R=reed@google.com,robertphillips@google.com
BUG=493450

Review URL: https://codereview.chromium.org/1228383002
2015-07-14 11:19:26 -07:00
joshualitt
5ca41c1647 Remove GrRedBlackTree
BUG=skia:

Review URL: https://codereview.chromium.org/1226203013
2015-07-14 11:07:53 -07:00
jvanverth
8895792877 Rename backing texture testing routines
Review URL: https://codereview.chromium.org/1230193006
2015-07-14 11:02:52 -07:00
joshualitt
3df1e2163f Another trivial cleanup
TBR=bsalomon@google.com
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/52e7657cd850f95e66eb23c6d138ee45149a1039

Review URL: https://codereview.chromium.org/1229303003
2015-07-14 11:02:46 -07:00
djsollen
ab51cbd9b6 Disable optimization as HWUI does not yet support color shaders.
Review URL: https://codereview.chromium.org/1235913005
2015-07-14 10:59:28 -07:00
kkinnunen
6bb6d4075b Implement support for CHROMIUM_path_rendering pseudo extension
Implement support for path rendering in Chromium through
CHROMIUM_path_rendering pseudo extension.

The extension defines a new pseudo-gl function,
BindFragmentInputLocation. This behaves similarly to the
BindUniformLocation pseudo-gl function. The idea is to assign fragment
input location to a fragment input before linking the program.

BUG=chromium:344330

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

Review URL: https://codereview.chromium.org/1192663002
2015-07-14 10:59:23 -07:00
mtklein
4be181e304 3-15% speedup to HardLight / Overlay xfermodes.
While investigating my bug (skia:4052) I saw this TODO and figured
it'd make me feel better about an otherwise unsuccessful investigation.

This speeds up HardLight and Overlay (same code) by about 15% with SSE, mostly
by rewriting the logic from 1 cheap comparison and 2 expensive div255() calls
to 2 cheap comparisons and 1 expensive div255().

NEON speeds up by a more modest ~3%.

BUG=skia:

Review URL: https://codereview.chromium.org/1230663005
2015-07-14 10:54:19 -07:00
reed
a5517e2b19 add src-rect-constraint to drawImageRect
Follow-on work
- unify around SrcRectConstraint (i.e. drawBitmapRect)
- remove silly drawBitmapRectToRect alias
- clean-up (possibly remove) alias problems around drawBitmapRect + IRect parameter

BUG=skia:

Review URL: https://codereview.chromium.org/1228083004
2015-07-14 10:54:12 -07:00
mtklein
4abc186d02 Add a GYP flag to define SKNX_NO_SIMD when set.
Will use this with a new -SKNX_NO_SIMD bot.

BUG=skia:

Review URL: https://codereview.chromium.org/1227163016
2015-07-14 05:52:52 -07:00
mtklein
bfd9ee67ef Fix typo in non-SIMD Sk4f::thenElse().
This was causing the 3 xfermodes that use floats and conditionals
to draw wrong when SKNX_NO_SIMD was defined.

BUG=skia:4051

Review URL: https://codereview.chromium.org/1229013003
2015-07-14 05:23:50 -07:00
joshualitt
6968428f44 Revert of Another trivial cleanup (patchset #6 id:100001 of https://codereview.chromium.org/1229303003/)
Reason for revert:
breaking things

Original issue's description:
> Another trivial cleanup
>
> TBR=bsalomon@google.com
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/52e7657cd850f95e66eb23c6d138ee45149a1039

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

Review URL: https://codereview.chromium.org/1233853004
2015-07-13 13:29:13 -07:00
robertphillips
3d32d768cd Add new SkPoint3 class
The existing Light filter and the upcoming Lighting Shader both need a Point3 class

Review URL: https://codereview.chromium.org/1229693009
2015-07-13 13:16:44 -07:00
joshualitt
52e7657cd8 Another trivial cleanup
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1229303003
2015-07-13 13:11:40 -07:00
wangyix
c734e69e8c Added a glBench for testing performance of vec4 vs scalar coverage in generated shaders.
Added bench for timing vec4 vs scalar type for coverage in shaders

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/6104ced165f17eb2f765ace354d5895c0bc890c5

Review URL: https://codereview.chromium.org/1225383002
2015-07-13 13:09:17 -07:00
joshualitt
690fc75b29 Get rid of GrMurmur3Hash
BUG=skia:

Review URL: https://codereview.chromium.org/1233933002
2015-07-13 12:49:13 -07:00
caryclark
7aa1899c03 use portable typeface
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1235873004
2015-07-13 12:08:45 -07:00
mtklein
e20633ed26 Add a GM that reproduces layout test failures with my new xfermode code.
Inspired by https://storage.googleapis.com/chromium-layout-test-archives/linux_blink_rel/69169/layout-test-results/results.html

I think the root cause is overflow.

Also, adds tests for Sk16b::operator<().  It wasn't wrong, but it was suspect
(used in all three of these xfermode implementations) and so it's best to have
tests.

BUG=skia:

Review URL: https://codereview.chromium.org/1228393006
2015-07-13 12:06:33 -07:00
scroggo
cd8c499f2e Revert of Added a GLBench for testing performance of vec4 vs scalar for coverage in generated shaders. (patchset #4 id:40002 of https://codereview.chromium.org/1225383002/)
Reason for revert:
This is breaking a buildbot. See https://chromegw.corp.google.com/i/client.skia/builders/Test-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Debug-ANGLE/builds/172/steps/nanobench/logs/stdio

We get the following error: ERROR::SHADER::COMPLIATION_FAILED: ERROR: 0:8: '0.f' : Floating-point suffix unsupported prior to GLSL ES 3.00
ERROR: 0:8: '0.f' : syntax error

Original issue's description:
> Added a glBench for testing performance of vec4 vs scalar coverage in generated shaders.
>
> Added bench for timing vec4 vs scalar type for coverage in shaders
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/6104ced165f17eb2f765ace354d5895c0bc890c5

TBR=joshualitt@google.com,tomhudson@google.com,wangyix@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1235533004
2015-07-13 12:03:39 -07:00
wangyix
6104ced165 Added a glBench for testing performance of vec4 vs scalar coverage in generated shaders.
Added bench for timing vec4 vs scalar type for coverage in shaders

BUG=skia:

Review URL: https://codereview.chromium.org/1225383002
2015-07-13 10:46:34 -07:00
senorblanco
24d2a7b463 Fix for partially-specified crop rects.
When only the left or top edge of a crop rect is given, the
right and bottom should be computed based on the incoming width
and height, not based on the crop rect's width & height. This
complies more accurately with SVG semantics.

BUG=240827

Review URL: https://codereview.chromium.org/1232873002
2015-07-13 10:27:05 -07:00
joshualitt
4421a4c90d small cleanups after fixing const of GrPipelineBuilder on DrawTarget
Fuse AutoRestoreFragmentProcessors and AutoRestoreProcessorDataManager into new AutoRestoreFragmentProcessorState class

BUG=skia:

Review URL: https://codereview.chromium.org/1228763005
2015-07-13 09:36:41 -07:00
joshualitt
2419b360ea Add GrNonAtomicRef
BUG=skia:

Review URL: https://codereview.chromium.org/1238523002
2015-07-13 09:29:42 -07:00
ethannicholas
b031fcf1c5 reenabled GrAALinearizingConvexPathRenderer, but only for stroked paths
Review URL: https://codereview.chromium.org/1237693002
2015-07-13 08:51:36 -07:00
joshualitt
ae3d63ad90 ovals now take a const GrPipelineBuilder
BUG=skia:

Review URL: https://codereview.chromium.org/1232163002
2015-07-13 08:44:06 -07:00
caryclark
1e545b6915 make gm text and colors portable
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1236893002
2015-07-13 08:19:58 -07:00
scroggo
6f818b39af Do not attempt to scale webp.
Scaling webp ends triggers warnings on our valgrind bot. It also results in
generating many images in Skia Gold that look mostly the same except
for a few pixels along the right edge.

BUG=skia:4038

Review URL: https://codereview.chromium.org/1227843005
2015-07-13 08:17:00 -07:00
mtklein
24d8249638 Tweak GYP to also link with XCode 7.
Using the XCode 7 beta, the file in the GYP doesn't exist, instead we get

/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib/libz.tbd

which is a text file describing libz and pointing to /usr/lib/libz.1.dylib.

There's a weird easy fix, which is that GYP looks for things in libraries like 'libz.dylib' and pattern match translates that to '-lz' on the command line.  (Infuriatingly, a literal '-lz' is interpreted as a file path...)

BUG=skia:

Review URL: https://codereview.chromium.org/1234493002
2015-07-13 08:13:03 -07:00
joshualitt
1c735488cb Start to propagate constness of GrPipelineBuilder up the stack
BUG=skia:

Review URL: https://codereview.chromium.org/1229143007
2015-07-13 08:08:25 -07:00
joshualitt
5e6ba21f07 Modify GrClipMaskManager to reflect logical constness
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1230023003
2015-07-13 07:35:05 -07:00
jvanverth
672bb7fc66 Remove GL-specific code from GMs and tests
TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1232173002
2015-07-13 07:19:57 -07:00
rmistry
ab9cb427f4 Revert of Whitespace change to test Skia's new bugdroid configuration (patchset #1 id:1 of https://codereview.chromium.org/1237653002/)
Reason for revert:
More testing of bugdroid

Original issue's description:
> Whitespace change to test Skia's new bugdroid configuration
>
> BUG=chromium:509664
> NOTRY=true
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/17708398145a8ef9a7d905e2ec14017ee688f4ae

TBR=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:509664

Review URL: https://codereview.chromium.org/1234873004
2015-07-13 07:09:26 -07:00
scroggo
39a24f2994 Revert of Bilinear optimization for 1D convolution. (patchset #5 id:200001 of https://codereview.chromium.org/1216623003/)
Reason for revert:
Breaks MSAA

Original issue's description:
> Bilinear optimization for 1D convolution.
>
> Splits GrGLConvolutionEffect into GrGLBilerpConvolutionEffect and
> GrGLBoundedConvolutionEffect. When doing a non-bounded convolution we now
> always use the GrGLBilerpConvolutionEffect which uses bilinear filtering to
> perform half as many samples in the texture.
>
> BUG=skia:3986
>
> Committed: https://skia.googlesource.com/skia/+/91abe10af417148939548551e210c001022d3bda

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

Review URL: https://codereview.chromium.org/1231383005
2015-07-13 07:06:45 -07:00
rmistry
1770839814 Whitespace change to test Skia's new bugdroid configuration
BUG=chromium:509664
NOTRY=true
TBR=

Review URL: https://codereview.chromium.org/1237653002
2015-07-13 06:35:15 -07:00
nodir
db8e4382a4 Skia project metadata
Added project.cfg metadata file for chrome-infra

R=borenet@google.com, rmistry@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=507723

Review URL: https://codereview.chromium.org/1231383004
2015-07-13 06:23:24 -07:00
mtklein
f059900f75 Fix up -Winconsistent-missing-override
(and a couple presubmit fixes)

This allows us to turn back on -Werror for LLVM coverage builds,
and more generally supports building with Clang 3.7.

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

BUG=skia:

Review URL: https://codereview.chromium.org/1232463006
2015-07-13 06:18:39 -07:00
mtklein
4598fc3c12 Use SK_DECLARE_STATIC_MUTEX for global mutex.
This initializes the mutex at link time on non-Windows platforms,
rather than at pre-main-runtime like `static SkMutex gFoo;`

BUG=skia:

Review URL: https://codereview.chromium.org/1226403007
2015-07-13 06:15:36 -07:00
Derek Sollenberger
bd3e8cb42c Cleanup skia test harness due to changes to DisplayListCanvas
Review URL: https://codereview.chromium.org/1235823003 .
2015-07-13 08:47:21 -04:00
caryclark
2e096609b2 make convex poly clip portable
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1238483002
2015-07-13 05:39:47 -07:00
skia.buildbots
0c606f493f Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

Review URL: https://codereview.chromium.org/1231323002
2015-07-12 00:19:05 -07:00