Commit Graph

18049 Commits

Author SHA1 Message Date
mtklein
767d273ea0 Replace buggy_blend_modes GM with an exhaustive test.
The new test is disabled by default, as it's quite slow.
We can run it if we suspect problems by passing -x to DM.

This test would have been failing before the bug fix, and now is passing.

Assuming the Priv on the end means it's not considered public API...
TBR=reed@google.com

BUG=skia:4052

Review URL: https://codereview.chromium.org/1228333003
2015-07-16 07:01:40 -07:00
reed
6fb0b6779e guard to remove DrawBitmapRectFlags
BUG=skia:

Review URL: https://codereview.chromium.org/1235393003
2015-07-16 06:10:02 -07:00
caryclark
18a240d15c make *imagefilter morphology iamge bitmapsource gm portable
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1236403002
2015-07-15 14:23:50 -07:00
caryclark
e148ac5262 make strokefill gm portable
Convert the Mac-specific font text statically into
paths so that they draw the same on all platforms.

Add drawing portable text using the fake bold paint
setting so that the code path is tested everywhere
and but draws the same thing.

R=reed@google.com

Review URL: https://codereview.chromium.org/1234463006
2015-07-15 14:03:13 -07:00
reed
af51e04dc0 rename utility to see if a paint will overwrite its pixels
BUG=skia:

Review URL: https://codereview.chromium.org/1228853005
2015-07-15 13:42:32 -07:00
wangyix
891f0f35db Added GLVec4ScalarBench that doesn't use VAOs
BUG=skia:

Review URL: https://codereview.chromium.org/1235153008
2015-07-15 12:26:07 -07:00
caryclark
5df0575f04 make gradtext quadpaths gm portable
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1234233003
2015-07-15 11:57:00 -07:00
bungeman
91e51cbd64 Fix leak in Android FontMgr test.
FontMgrAndroidParserTest deos not free the font families it creates.
This issue was discovered by asan when enabling this test on Linux
platforms.
2015-07-15 14:29:25 -04:00
bungeman
786ece17c3 Allow Android font manager on *nix.
There is nothing left in the SkFontMgr_android.cpp which is specific
to Android, so allow it to be built and used on *nix platforms. This
allows for easier development and testing.

The only reason to limit to *nix platforms are the dependencies on
Expat and FreeType. This should be buildable and runnable on other
platforms when these dependencies are also available.

Review URL: https://codereview.chromium.org/1228833003
2015-07-15 10:58:47 -07:00
joshualitt
dcd56e2f0e Fix for android command line arguments to VisualBench
BUG=skia:

Review URL: https://codereview.chromium.org/1241923002
2015-07-15 10:17:21 -07:00
jvanverth
eeb8d99b4e Only run test_wrapped_resources() when GL is active
Review URL: https://codereview.chromium.org/1234233002
2015-07-15 10:16:56 -07:00
bsalomon
b4d40ef724 Don't upload texture smaller than the min texture size when stretching a bmp up to a POT
BUG=skia:3932

Review URL: https://codereview.chromium.org/1238913002
2015-07-15 10:12:16 -07:00
caryclark
3aaa0db1c4 make colorwheelnative displacement dropshadowimagefilter getposttextpath gm portable
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1237233004
2015-07-15 09:29:32 -07:00
caryclark
cae3ca65d2 make path-reverse gm portable
Put font glyph data in test as path
instead of getting data from the Mac
font. THe font may change, and is
not available on most platforms.

Also remove unreachable code.

R=reed@google.com

Review URL: https://codereview.chromium.org/1230703005
2015-07-15 08:58:13 -07:00
joshualitt
82874f8b28 Match works correctly on visualbench
BUG=skia:

Review URL: https://codereview.chromium.org/1234123004
2015-07-15 08:38:02 -07:00
halcanary
4524813cbc experimental: remove old PDF benchmarking tools
TBR=

Review URL: https://codereview.chromium.org/1233093004
2015-07-15 08:06:29 -07:00
borenet
f0c84407ae llvm-coverage script: respect SKIA_OUT
NOTRY=true
BUG=skia:2430

Review URL: https://codereview.chromium.org/1239803002
2015-07-15 07:43:06 -07:00
herb
fd9a6a227b Fix undefined behavior.
BUG=skia:4050

Review URL: https://codereview.chromium.org/1232003008
2015-07-15 07:40:37 -07:00
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