Commit Graph

20112 Commits

Author SHA1 Message Date
mtklein
78e0aef610 SSE 4.1 SrcOver blits: color32, blitmask.
This is mainly warmup for an AVX2 version.
The machine I'm typing this on just doesn't support AVX2.
This strategy should translate easily down to SSSE3 and SSE2.

Xfermode_SrcOver:    2.73ms -> 2.62ms  (0.96x)   (That's Color32.)
Xfermode_SrcOver_aa: 3.48ms -> 3.09ms  (0.89x)   (That's BlitMask_D32_A8.)

AA text blits (text_16_AA_{88,FF,WT,BK}) show speedups in the range of 5 to 20%.

Unlike previous versions of this code, all the div255() are exactly (x+127)/255.
This won't fix any major bugs, but it does correct our bias in the middle.
There will be many diffs, all minor.

I've punted for now on pmaddubsw for lerping. I do intend to try that,
but I want this (relatively simple) code as my basis for comparison.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1526883004
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review URL: https://codereview.chromium.org/1526883004
2015-12-16 11:15:57 -08:00
joshualitt
431dded51c Blacklist GLInstancedArraysBench on ipad
TBR=jvanverth@google.com
BUG=skia:4714

Review URL: https://codereview.chromium.org/1522273006
2015-12-16 10:38:35 -08:00
scroggo
789fd99659 Remove Subset*Benches
These were originally used to compare to the old implementation of
subset decoding in SkImageDecoder. The old implementation has been
removed, and they do not provide useful information that is not
covered by the BitmapRegionDecoderBenches.

This will greatly speed up some of our infra bots, which spend a lot of
time decoding interlaced PNGs repeatedly (thanks to
SubsetTranslateBench).

BUG=skia:4715
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1531833002

Review URL: https://codereview.chromium.org/1531833002
2015-12-16 10:21:44 -08:00
joshualitt
477815cb8b Revert of Blacklist GLInstancedArraysBench on the ipad (patchset #1 id:1 of https://codereview.chromium.org/1529973002/ )
Reason for revert:
Whoops, this is for nanobench

Original issue's description:
> Blacklist GLInstancedArraysBench on the ipad
>
> BUG=skia:4714
>
> Committed: https://skia.googlesource.com/skia/+/5d16fea9e22221be5fbe2866bbcfe8d6f4c6aeac

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

Review URL: https://codereview.chromium.org/1534513002
2015-12-16 10:20:11 -08:00
caryclark
1f17ab5992 This brings hairlines into agreement with thick strokes.
Add more testing and a pixel magnification to GM.

R=reed@google.com, fmalita@chromium.org
BUG=skia:4599
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1527083002

Review URL: https://codereview.chromium.org/1527083002
2015-12-16 08:53:41 -08:00
reed
da420b976e Reland of move drawSprite from canvas (patchset #1 id:1 of https://codereview.chromium.org/1529803004/ )
Reason for revert:
guard has landed in chrome

Original issue's description:
> Revert of remove drawSprite from canvas (patchset #4 id:60001 of https://codereview.chromium.org/1534443003/ )
>
> Reason for revert:
> need to remove an override in chrome
>
> Original issue's description:
> > remove drawSprite from canvas
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/4657ce2324ea197507c4ba728d81138f56da13b1
>
> TBR=fmalita@chromium.org,robertphillips@google.com,senorblanco@chromium.org,mtklein@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/32704674f64cb6a14356dfebe060cd3484c06cc7

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

Review URL: https://codereview.chromium.org/1530203002
2015-12-16 08:38:16 -08:00
reed
32704674f6 Revert of remove drawSprite from canvas (patchset #4 id:60001 of https://codereview.chromium.org/1534443003/ )
Reason for revert:
need to remove an override in chrome

Original issue's description:
> remove drawSprite from canvas
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4657ce2324ea197507c4ba728d81138f56da13b1

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

Review URL: https://codereview.chromium.org/1529803004
2015-12-16 08:27:10 -08:00
reed
4657ce2324 remove drawSprite from canvas
BUG=skia:

Review URL: https://codereview.chromium.org/1534443003
2015-12-16 07:52:47 -08:00
scroggo
ce5ac45d39 Use SK_BUILD_FOR_ANDROID_FRAMEWORK in compose
We are trying to support the behavior provided by the Android
framework. Other developers do not necessarily need this behavior.

BUG=skia:4296

Review URL: https://codereview.chromium.org/1518933002
2015-12-16 07:34:21 -08:00
robertphillips
7354a4b193 Avoid pixel GPU readback in saveLayerWithPickup
When the default framebuffer is wrapped in a device for rendering we don't get a GrTexture. This CL adds a copy to a temporary texture in this instance so the rest of the Ganesh pipeline can continue on as usual.

Review URL: https://codereview.chromium.org/1531493002
2015-12-16 05:08:27 -08:00
joshualitt
5d16fea9e2 Blacklist GLInstancedArraysBench on the ipad
BUG=skia:4714

Review URL: https://codereview.chromium.org/1529973002
2015-12-15 13:07:21 -08:00
bsalomon
f46a124ddd Set GL_PACK_ALIGNMENT before calling glReadPixels
Review URL: https://codereview.chromium.org/1525193002
2015-12-15 12:37:38 -08:00
joshualitt
66957946c0 Make draw* lines responsible for cache management
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1521613002
2015-12-15 11:33:19 -08:00
ethannicholas
c88cb8942e Fix for GrAALinearizingConvexPathRenderer incorrectly drawing non-convex paths
BUG=552080

Review URL: https://codereview.chromium.org/1522973002
2015-12-15 11:01:12 -08:00
smklein
db284c52e6 Porting Skia for newlib compatibility.
"locale_t" is not defined for Newlib.

BUG=https://github.com/domokit/mojo/issues/431

Review URL: https://codereview.chromium.org/1526703003
2015-12-15 10:52:51 -08:00
joshualitt
4541f6e2e3 Blacklist AndroidOne + WritePixelsTest
BUG=skia:4711

Review URL: https://codereview.chromium.org/1528033002
2015-12-15 10:46:21 -08:00
bsalomon
6176bc1df3 Add helper for determining whether to use sized internal format in GL
Fix case where texture format and data format are different.

Use helper when createing a testing "backend" texture.

BUG=skia:

Review URL: https://codereview.chromium.org/1527753002
2015-12-15 09:25:06 -08:00
halcanary
02faf31080 Tests: reduce verbosity
Review URL: https://codereview.chromium.org/1526943003
2015-12-15 09:20:19 -08:00
mseaborn
19b0420e87 SkPreConfig.h: Allow defined(__unix__) to imply SK_BUILD_FOR_UNIX
This is more general than checking for __linux, __FreeBSD__, etc.  (In
principle we could remove some of the existing checks such as
__FreeBSD__, but I have not tried that so far.)

In particular, it allows Skia to build with the NaCl or PNaCl
toolchains, which is something we would like for Mojo.

BUG=https://github.com/domokit/mojo/issues/431
TEST=none

Review URL: https://codereview.chromium.org/1523733003
2015-12-15 07:52:31 -08:00
mtklein
fce612ac32 Specialize Sk2d for SSE2
Given the autovectorization we've seen, I wouldn't expect big speedups
from this, but it does give us a point of control over what's going on.

BUG=skia:
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review URL: https://codereview.chromium.org/1526923003
2015-12-15 07:38:54 -08:00
benjaminwagner
6822c20705 Revert of In BUILD.public, enable SK_SUPPORT_LEGACY_HAIR_IGNORES_CAPS. (patchset #1 id:1 of https://codereview.chromium.org/1516863007/ )
Reason for revert:
The failing test has been blacklisted. The issue was not caused by this CL.

Original issue's description:
> In BUILD.public, enable SK_SUPPORT_LEGACY_HAIR_IGNORES_CAPS.
>
> Somehow https://codereview.chromium.org/1491843006 causes fills to change in one test.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b6c77f6d62a62db3aec483e0a995ca30b9c97f0b

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

Review URL: https://codereview.chromium.org/1530533003
2015-12-15 07:13:21 -08:00
fmalita
aed4d32de9 SkBitmapProcState rounding bias
Epsilon bias to keep bitmap sample rounding consistent with geometry
rounding.

Also update the GM to draw an outer border + drop uninteresting
scales in favor of negative scale variants.

BUG=skia:4680,skia:4649
R=reed@google.com,caryclark@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/1527633002
2015-12-15 06:48:48 -08:00
rmistry
11f457e162 Add link to Gold trybot runs in every uploaded Skia CL
BUG=skia:4433
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1521913005

Review URL: https://codereview.chromium.org/1521913005
2015-12-15 06:23:33 -08:00
borenet
f64be44667 adb_wait_for_device: More fixes
BUG=skia:4690

Review URL: https://codereview.chromium.org/1527713002
2015-12-15 04:25:39 -08:00
msarett
a35434aadc Fix valgrind suppressions for libjpeg-turbo warning
BUG=skia:

Review URL: https://codereview.chromium.org/1518393003
2015-12-14 14:14:06 -08:00
benjaminwagner
2796767eda Update sync_google3.sh to match autoroller.py.
BUG=skia:

Review URL: https://codereview.chromium.org/1526593003
2015-12-14 12:41:10 -08:00
bsalomon
489147c78b Add option to control maximum GrBatch lookback
Review URL: https://codereview.chromium.org/1498653002
2015-12-14 12:13:09 -08:00
ethannicholas
1cbb5ea0a0 Switch fragment coordinate to 'highp' to fix various broken GMs.
BUG=skia:4693

Review URL: https://codereview.chromium.org/1523793002
2015-12-14 11:37:55 -08:00
mtklein
6f37b4a475 Unify some SkNx code
- one base case and one N=1 case instead of two each (or three with doubles)
 - use SkNx_cast instead of FromBytes/toBytes
 - 4-at-a-time Sk4f::ToBytes becomes a special standalone Sk4f_ToBytes

If I did everything right, this'll be perf- and pixel- neutral.

https://gold.skia.org/search2?issue=1526523003&unt=true&query=source_type%3Dgm&master=false

BUG=skia:
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review URL: https://codereview.chromium.org/1526523003
2015-12-14 11:25:18 -08:00
mtklein
4e4155df10 Revert of SkTime updates (patchset #2 id:20001 of https://codereview.chromium.org/1521293002/ )
Reason for revert:
linux Canary builder has no std::steady_clock.  Weird...

Original issue's description:
> SkTime updates
>
> 1) Use steady_clock instead of high_resolution_clock. If we don't have a
> guarantee of monotonicity, it's pretty much useless for timing things.
>
> 2) Implement Mac/iOS with <chrono> too.  This was waiting on C++11 library support.
>
> Both high_resolution_clock and steady_clock are (still) busted on MSVC 2013,
> so no change there.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/6a20871e5aeaa7e61f3348694bf436af16f824b9

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

Review URL: https://codereview.chromium.org/1529603002
2015-12-14 10:54:24 -08:00
halcanary
023bda0d83 SkBitmap move
Running `Release/dm --gpu 0`, the number of times we call
	SkBitmap::operator=(const SkBitmap&)
(which refs the pixelref) is reduced from ~214929 to ~214626.

Review URL: https://codereview.chromium.org/1514503004
2015-12-14 10:19:17 -08:00
borenet
c9730831fc adb_wait_for_device: Add battery fallback, support no battery
BUG=skia:4690
TBR=rmistry

Review URL: https://codereview.chromium.org/1528563002
2015-12-14 10:07:37 -08:00
halcanary
7d1c3e6361 Documentation: HarfBuzz link
NOTRY=true
TBR=caryclark@google.com

Review URL: https://codereview.chromium.org/1526683002
2015-12-14 10:03:31 -08:00
halcanary
a58d67603b Documentation: text shaping
NOTRY=true
DOCS_PREVIEW= https://skia.org/user/tips?cl=1523023002#kerning

Review URL: https://codereview.chromium.org/1523023002
2015-12-14 09:50:15 -08:00
caryclark
364a0074c3 path ops: check for deleted ends
TBR=fmalita@chromium.org
BUG=569540

Review URL: https://codereview.chromium.org/1524803002
2015-12-14 08:43:21 -08:00
mtklein
6a20871e5a SkTime updates
1) Use steady_clock instead of high_resolution_clock. If we don't have a
guarantee of monotonicity, it's pretty much useless for timing things.

2) Implement Mac/iOS with <chrono> too.  This was waiting on C++11 library support.

Both high_resolution_clock and steady_clock are (still) busted on MSVC 2013,
so no change there.

BUG=skia:

Review URL: https://codereview.chromium.org/1521293002
2015-12-14 08:39:13 -08:00
caryclark
9aacd9029c If a point is on a path edge, it's in the path, at least for all cases where the path edge is not canceled with another edge through coincidence.
Add test cases for edges and conics, and make sure it all works.

R=reed@google.com
BUG=skia:4669,4265

Review URL: https://codereview.chromium.org/1517883002
2015-12-14 08:38:09 -08:00
borenet
b11c4ff668 adb_wait_for_device: If we can't get the battery level, just exit
BUG=skia:4606
TBR=rmistry
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/1529453002
2015-12-14 06:48:43 -08:00
reed
4ff653cab2 Revert of Add config options to run different GPU APIs to dm and nanobench (patchset #12 id:220001 of https://codereview.chromium.org/1490113005/ )
Reason for revert:
speculative revert to see if it unblocks the DEPS roll

https://codereview.chromium.org/1529443002

Original issue's description:
> Add config options to run different GPU APIs to dm and nanobench
>
> Add extended config specification form that can be used to run different
> gpu backend with different APIs.
>
> The configs can be specified with the form:
> gpu(api=string,dit=bool,nvpr=bool,samples=int)
>
> This replaces and removes the --gpuAPI flag.
>
> All existing configs should still work.
>
> Adds following documentation:
>
> out/Debug/dm --help config
>
> Flags:
>     --config:	type: string	default: 565 8888 gpu nonrendering
>         Options: 565 8888 debug gpu gpudebug gpudft gpunull msaa16 msaa4
>         nonrendering null nullgpu nvprmsaa16 nvprmsaa4 pdf pdf_poppler skp svg
>         xps or use extended form 'backend(option=value,...)'.
>
>         Extended form: 'backend(option=value,...)'
>
>         Possible backends and options:
>
>         gpu(api=string,dit=bool,nvpr=bool,samples=int)	GPU backend
>         	api	type: string	default: native.
>         	    Select graphics API to use with gpu backend.
>         	    Options:
>         		native			Use platform default OpenGL or OpenGL ES backend.
>         		gl    			Use OpenGL.
>         		gles  			Use OpenGL ES.
>         		debug 			Use debug OpenGL.
>         		null  			Use null OpenGL.
>         	dit	type: bool	default: false.
>         	    Use device independent text.
>         	nvpr	type: bool	default: false.
>         	    Use NV_path_rendering OpenGL and OpenGL ES extension.
>         	samples	type: int	default: 0.
>         	    Use multisampling with N samples.
>
>         Predefined configs:
>
>         	gpu      	= gpu()
>         	msaa4    	= gpu(samples=4)
>         	msaa16   	= gpu(samples=16)
>         	nvprmsaa4	= gpu(nvpr=true,samples=4)
>         	nvprmsaa16	= gpu(nvpr=true,samples=16)
>         	gpudft    	= gpu(dit=true)
>         	gpudebug  	= gpu(api=debug)
>         	gpunull   	= gpu(api=null)
>         	debug     	= gpu(api=debug)
>         	nullgpu   	= gpu(api=null)
>
> BUG=skia:2992
>
> Committed: https://skia.googlesource.com/skia/+/e13ca329fca4c28cf4e078561f591ab27b743d23

TBR=bsalomon@google.com,scroggo@google.com,joshualitt@google.com,kkinnunen@nvidia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:2992

Review URL: https://codereview.chromium.org/1528473002
2015-12-14 05:58:25 -08:00
borenet
0b29b728ca Add minimum battery level to adb_wait_for_device
This should prevent the Android bots running out of battery at the
expense of extra time spent waiting at the end of the build.

BUG=skia:4606

Review URL: https://codereview.chromium.org/1522013002
2015-12-14 05:56:46 -08:00
kkinnunen
e13ca329fc Add config options to run different GPU APIs to dm and nanobench
Add extended config specification form that can be used to run different
gpu backend with different APIs.

The configs can be specified with the form:
gpu(api=string,dit=bool,nvpr=bool,samples=int)

This replaces and removes the --gpuAPI flag.

All existing configs should still work.

Adds following documentation:

out/Debug/dm --help config

Flags:
    --config:	type: string	default: 565 8888 gpu nonrendering
        Options: 565 8888 debug gpu gpudebug gpudft gpunull msaa16 msaa4
        nonrendering null nullgpu nvprmsaa16 nvprmsaa4 pdf pdf_poppler skp svg
        xps or use extended form 'backend(option=value,...)'.

        Extended form: 'backend(option=value,...)'

        Possible backends and options:

        gpu(api=string,dit=bool,nvpr=bool,samples=int)	GPU backend
        	api	type: string	default: native.
        	    Select graphics API to use with gpu backend.
        	    Options:
        		native			Use platform default OpenGL or OpenGL ES backend.
        		gl    			Use OpenGL.
        		gles  			Use OpenGL ES.
        		debug 			Use debug OpenGL.
        		null  			Use null OpenGL.
        	dit	type: bool	default: false.
        	    Use device independent text.
        	nvpr	type: bool	default: false.
        	    Use NV_path_rendering OpenGL and OpenGL ES extension.
        	samples	type: int	default: 0.
        	    Use multisampling with N samples.

        Predefined configs:

        	gpu      	= gpu()
        	msaa4    	= gpu(samples=4)
        	msaa16   	= gpu(samples=16)
        	nvprmsaa4	= gpu(nvpr=true,samples=4)
        	nvprmsaa16	= gpu(nvpr=true,samples=16)
        	gpudft    	= gpu(dit=true)
        	gpudebug  	= gpu(api=debug)
        	gpunull   	= gpu(api=null)
        	debug     	= gpu(api=debug)
        	nullgpu   	= gpu(api=null)

BUG=skia:2992

Review URL: https://codereview.chromium.org/1490113005
2015-12-14 04:49:17 -08:00
kkinnunen
aab16e54cb Try to fix intermittent GrAutoLocaleSetter crashes on Windows
Try to fix intermittent GrAutoLocaleSetter crashes on Windows.
The string returned by setlocale() is only valid up to
next setlocale(), so it can not be fed to setlocale().

Also, libraries such as ANGLE might call setlocale when
inside a callstack containing GrAutoLocaleSetter. This
would render the old locale pointer invalid.

Review URL: https://codereview.chromium.org/1514083002
2015-12-13 23:12:31 -08:00
update-skps
4837392191 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

Review URL: https://codereview.chromium.org/1522753002
2015-12-13 00:31:51 -08:00
benjaminwagner
a1bb8e02fe In SkPixmap.cpp, change SkAlphaMul to SkMulDiv255.
Add a test that we get the same color back after calling SkBitmap::eraseColor, modulo rounding.

Also update some incorrect docs.

BUG=skia:4297

Review URL: https://codereview.chromium.org/1521673002
2015-12-11 14:08:59 -08:00
mtklein
52e2581700 archive skpx... currently dead code
BUG=skia:
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review URL: https://codereview.chromium.org/1521623003
2015-12-11 12:04:48 -08:00
benjaminwagner
0ff46c06b7 Change google3 sync scripts to sync latest rather than LKGR.
This matches the behavior of the autoroller and is generally more useful.

BUG=skia:

Review URL: https://codereview.chromium.org/1508313004
2015-12-11 11:26:44 -08:00
joshualitt
5425a9a180 A change to cleanup some organization around df text
BUG=skia:

Review URL: https://codereview.chromium.org/1519083002
2015-12-11 11:05:43 -08:00
fmalita
cad54b5366 New GM: image_scale_aligned
To verify alignment for various image scaling modes.

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

Review URL: https://codereview.chromium.org/1514923002
2015-12-11 11:03:27 -08:00
msarett
457f54df1e Change computeOutputColorType() to mimic old behavior
This will prevent behavior changes in BitmapFactory when
switching from SkImageDecoder to SkAndroidCodec.

We will only choose kGray8 if it is explicitly requested (and
also supported).

Additionally, we will always decode GIFS and WBMPS to
kIndex8.

BUG=skia:

Review URL: https://codereview.chromium.org/1519843002
2015-12-11 10:37:39 -08:00
scroggo
061aaa79f7 Add test for previously unflattenables
BUG=skia:4613

Review URL: https://codereview.chromium.org/1514373003
2015-12-11 10:29:02 -08:00