Commit Graph

12742 Commits

Author SHA1 Message Date
robertphillips
952841bf41 Begin atlasing
This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):

1) the atlased layers cannot be purged nor aged out
2) the texture backing the atlas is not pulled from (or returned to) the resource cache

#1 is on hold until we have a recycling rectanizer

A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.

Committed: https://skia.googlesource.com/skia/+/55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354533004
2014-06-30 08:26:50 -07:00
mtklein
a75b0fadbd Re-enable SSE4.
I will roll this into Chrome with https://codereview.chromium.org/332393003.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/357593003
2014-06-30 08:13:53 -07:00
kevin.petit
4dc94d9dfc ARM Skia NEON patches - 41 - arm64: SkXfermode::xfer32
Currently the NEON code for Xfermodes performs well on arm64
targets except for dstout and dstin which are significantly
slower than the C code. This patch fixes this and gives
further improvements on other modes.

Here are some perf results:

+------------+------------+------------+
| mode       | Cortex-A53 | Cortex-A57 |
+------------+------------+------------+
| multiply   |    +24.58% |    +23.71% |
+------------+------------+------------+
| exclusion  |    +22.72% |    +22.05% |
+------------+------------+------------+
| difference |    +34.67% |    +36.82% |
+------------+------------+------------+
| hardlight  |    +17.07% |    +14.74% |
+------------+------------+------------+
| lighten    |    +38.21% |    +32.87% |
+------------+------------+------------+
| darken     |    +37.59% |    +32.99% |
+------------+------------+------------+
| overlay    |    +17.36% |    +16.88% |
+------------+------------+------------+
| screen     |    +52.56% |    +54.43% |
+------------+------------+------------+
| modulate   |    +62.85% |    +61.32% |
+------------+------------+------------+
| plus       |    +91.52% |   +117.41% |
+------------+------------+------------+
| xor        |    +42.86% |    +43.38% |
+------------+------------+------------+
| dstatop    |    +48.46% |    +48.99% |
+------------+------------+------------+
| srcatop    |    +50.50% |    +48.51% |
+------------+------------+------------+
| dstout     |    +67.83% |    +78.09% |
+------------+------------+------------+
| srcout     |    +69.02% |    +78.26% |
+------------+------------+------------+
| dstin      |    +70.92% |    +79.24% |
+------------+------------+------------+
| srcin      |    +68.90% |    +78.23% |
+------------+------------+------------+
| dstover    |    +73.80% |    +68.10% |
+------------+------------+------------+

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=skia
R=mtklein@google.com, djsollen@google.com

Author: kevin.petit@arm.com

Review URL: https://codereview.chromium.org/350343002
2014-06-30 07:32:19 -07:00
Florin Malita
5f6102d079 SaveFlags be-gone
Remove the deprecated save(SaveFlags), willSave(SaveFlags) and all
traces of kMatrix_SaveFlags/kClip_SaveFlag.

BUG=skia:2297
R=mtklein@google.com, reed@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/340403003
2014-06-30 10:13:28 -04:00
rmistry
fdecca8440 Whitespace change to test CQ
TBR=
CQ_EXCLUDE_TRYBOTS=tryserver.skia:Build-Win7-VS2010-x86-Debug-Trybot,Test-Ubuntu13.10-ShuttleA-NoGPU-x86_64-Debug-Trybot,Build-Ubuntu13.10-GCC4.8-x86_64-Release-Trybot,Build-Ubuntu13.10-Clang-x86_64-Debug-Trybot,Build-Mac10.8-Clang-x86_64-Release-Trybot

(SkipBuildbotRuns)

BUG=skia:

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/358393002
2014-06-30 06:46:58 -07:00
kkinnunen
80549fcdd5 Support using OpenGL ES context on desktop
Support using OpenGL ES context on desktop for unix and Android platforms. This
is mainly useful in development.

Add --gpuAPI flag to gm, dm, bench, bench_pictures and render_pictures. The
possible parameters for the flag are "gl" and "gles".

R=bsalomon@google.com, mtklein@google.com, robertphillips@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/319043005
2014-06-30 06:36:31 -07:00
rmistry
b8562be655 Whitespace change to test CQ
TBR=
CQ_TRYBOTS=tryserver.skia:Build-Ubuntu13.10-GCC4.8-Arm7-Debug-Android-Trybot,Build-Ubuntu13.10-Clang-x86_64-Debug-Trybot

(SkipBuildbotRuns)

BUG=skia:

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/357313002
2014-06-30 06:31:46 -07:00
qiankun.miao
b2e1fa5b76 Push resources to Android device
The resources directory is required by some benchmarks. Push it to
device's /data/local/tmp. Add "-i /data/local/tmp/resources" to command
line when using these resources.

BUG=skia:
R=djsollen@google.com, mtklein@google.com, borenet@google.com

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/352303003
2014-06-29 22:38:54 -07:00
robertphillips
e462f2bed3 Revert of Begin atlasing (https://codereview.chromium.org/354533004/)
Reason for revert:
Sigh

Original issue's description:
> Begin atlasing
>
> This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):
>
> 1) the atlased layers cannot be purged nor aged out
> 2) the texture backing the atlas is not pulled from (or returned to) the resource cache
>
> #1 is on hold until we have a recycling rectanizer
>
> A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.
>
> Committed: https://skia.googlesource.com/skia/+/55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b

R=bsalomon@google.com
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/359953002
2014-06-29 17:16:27 -07:00
robertphillips
d9cf38aeaf Revert of Fix memory leak in "Begin atlasing" (https://codereview.chromium.org/361663002/)
Reason for revert:
Sigh

Original issue's description:
> Fix memory leak in (Begin atlasing  https://codereview.chromium.org/354533004/)
>
> TBR=bsalomon@google.com
>
> Committed: https://skia.googlesource.com/skia/+/40d9c0e331fe2b76b4e13ca6cdf1ea50451ba6cc

R=bsalomon@google.com
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/360663002
2014-06-29 17:04:24 -07:00
robertphillips
40d9c0e331 Fix memory leak in (Begin atlasing https://codereview.chromium.org/354533004/)
R=bsalomon@google.com
TBR=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/361663002
2014-06-29 16:38:58 -07:00
robertphillips
55e61f0ef4 Begin atlasing
This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):

1) the atlased layers cannot be purged nor aged out
2) the texture backing the atlas is not pulled from (or returned to) the resource cache

#1 is on hold until we have a recycling rectanizer

A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354533004
2014-06-29 15:08:31 -07:00
humper
d92f5b814d add a second interface to the resizer to exactly match what Chrome expects. Will make the migration much cleaner
BUG=skia:
R=mtklein@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/353163005
2014-06-28 20:12:45 -07:00
senorblanco
1e2772ff92 Remove now-nonexistent SkCountdown.h from public_headers.
Seems to be breaking Chrome's GN build.

R=rmistry@google.com
TBR=rmistry
BUG=skia:

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/359183002
2014-06-28 17:42:55 -07:00
reed
bae704b050 add rowbytes option to allocPixels
TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/345263005
2014-06-28 14:26:36 -07:00
reed
ce41ad1b33 remove SK_SUPPORT_LEGACY_INSTALLPIXELSPARAMS code
TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/359143002
2014-06-28 13:25:31 -07:00
reed
4af35f348b writepixels needs to bump genID
TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/352573005
2014-06-27 17:47:49 -07:00
senorblanco
d4fa483504 Some straggler rebaselines for imagefiltersclipped.
NOTRY=true
NOTREECHECKS=true
R=rmistry@google.com
TBR=rmistry
BUG=skia:

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/348313006
2014-06-27 16:20:03 -07:00
senorblanco
d297d0f2c2 New baselines for imagefiltersclipped GM after perlin noise change.
R=rmistry@google.com
TBR=rmistry
NOTRY=true
NOTREECHECKS=true
BUG=skia:

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/361523003
2014-06-27 14:45:30 -07:00
Mike Klein
a40239ca1e Drop --clone from commands in skia repo.
--clone, and SkPicture::clone(), are no longer.

CQ_EXTRA_TRYBOTS=tryserver.skia:Housekeeper-PerCommit-Trybot

BUG=skia:
R=rmistry@google.com

Review URL: https://codereview.chromium.org/343813006
2014-06-27 17:09:39 -04:00
senorblanco
ca6a7c2945 Make perlin noise do CTM-correct scaling.
When drawing perlin noise, generate noise at the resolution determined
by CTM, not by the resolution at construction time. This required moving
the generation of PaintingData to getContext() and asNewEffect() for the
raster and GPU paths, respectively.

It also required adjusting the matrices used during rendering
to be translate-only.

R=sugoi@chromium.org, bsalomon@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/358903002
2014-06-27 13:35:52 -07:00
mtklein
d3e474e20c Deprecate SkPicture::clone().
Chrome will need -DSK_SUPPORT_LEGACY_PICTURE_CLONE.

This removes the modes from our tools that use clone().  No
bots run these.  DM used clone() in a way that we can just
share the picture now.

I plan to bring back the ability to test multithreaded
picture rendering soon.

BUG=skia:2378
R=robertphillips@google.com, mtklein@google.com, bsalomon@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/338633011
2014-06-27 12:34:44 -07:00
halcanary
67ec1f8eec Switch SkPDFStream's internal storage from SkStream to SkData
Motivation: This makes SkPDFStream thread-safe for two threads
serializing it at once, since a SkStream has an internal position.

Updated SkPDFFont, SkPDFGraphicState, and SkPDFPage's use of
SkPDFStream to use the SkData constructor rather than the SkStream
constructor (saving a memcpy).

BUG=skia:2683

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

R=mtklein@google.com, djsollen@google.com, rmistry@google.com, robertphillips@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/340783013
2014-06-27 11:36:20 -07:00
reed
89443aba5b change gpudevice and pdfdevice to inherit from basedevice
BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/354133002
2014-06-27 11:34:19 -07:00
mtklein
479fbaf3bd Disable SSE4 code.
Chrome canary failing to link chrome:
http://108.170.220.120:10115/builders/Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT/builds/1009/steps/BuildChrome/logs/stdio

BUG=skia:
NOTRY=true
R=mtklein@google.com, rmistry@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/361493002
2014-06-27 11:28:06 -07:00
humper
4f96ab3618 Refactor bitmap scaler to make it easier to migrate rest of chrome to use it
Previously, the set of platform-specific function pointers to do fast convolution (e.g., neon, SSE) were passed in a structure to the scaler.

I refactored this so that the scaler fills in these function pointers after it's called, so the caller doesn't have to worry about it.

R=mtklein@google.com
TBR=mtklein
NOTRY=True

Author: humper@google.com

Review URL: https://codereview.chromium.org/354193002
2014-06-27 11:27:03 -07:00
halcanary
1f8ed02222 Add lock to SkPDFDict
Add mutex lock to all functions. Remove dictionary iterator, and
replace with new thread-safe functions.

BUG=skia:2683
R=mtklein@google.com, djsollen@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/360473005
2014-06-27 10:37:27 -07:00
robertphillips
e5c1e3cd63 Fix RRect tranform bug
When a RRect is an oval transforming the rectangle and the radii separately can result in a non-oval result (i.e., due to numerical issues some tiny straight edges may creep in). This CL remedies the situation by computing the new radii directly from the transformed rect.

BUG=skia:2696
R=caryclark@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354913004
2014-06-27 08:59:26 -07:00
tomhudson
a8377402ee Mark SkBBoxHierarchyRecord destructor as virtual
Immediate parent classes have empty virtual destructors, but farther
up the inheritance tree there is complicated destruction going on.
This change may be unnecessary but makes the polymorphism explicit.

BUG=skia:1734
R=mtklein@google.com, tomhudson@google.com, mtklein

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/359773002
2014-06-27 08:19:35 -07:00
henrik.smiding
3bb195ef0d Add SSE4 optimization of S32A_Opaque_Blitrow
Adds optimization of Skia S32A_Opaque_Blitrow blitter using SSE4.2 SIMD
instruction set. Special case for when alpha is zero or opaque.

Performance increase of 10%-400% compared to the existing SSE2
optimization (measured on Silvermont architecture).
Noticeable in ~25 different skia bench subtests, especially in
bitmap_8888_*, repeatTile_*, and morph_*.

bitmap_8888_A - 100% faster
bitmap_8888_A_source_transparent - 250% faster
bitmap_8888_A_source_opaque - 25% faster
bitmap_8888_A_scale_bicubic - 75% faster

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

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

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

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com

Author: henrik.smiding@intel.com

Review URL: https://codereview.chromium.org/289473009
2014-06-27 08:03:17 -07:00
reed
982542dce8 add SkSurface::NewRasterDirectReleaseProc
allows for lifetime control of pixel memory on raster surface

BUG=skia:
R=fmalita@google.com, bsalomon@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/351373005
2014-06-27 06:48:14 -07:00
reed
8c0c7b0bcd remove unnecessary bitmapdevice references
TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/354143004
2014-06-27 05:49:54 -07:00
reed
0766931dc4 delete code for SK_SUPPORT_LEGACY_GETTOTALCLIP
TBR=
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/354953008
2014-06-27 04:49:12 -07:00
borenet
0808c82e83 Update SKP version to 34
Automatic commit by the RecreateSKPs bot.

TBR=

Author: borenet@google.com

Review URL: https://codereview.chromium.org/347303003
2014-06-27 01:02:30 -07:00
reed
2a8ca93171 don't create explicit bitmapdevice when not needed
TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/349213006
2014-06-26 22:12:09 -07:00
reed
98e34ba892 remove SK_SUPPORT_LEGACY_DEVICE_VIRTUAL_ISOPAQUE for chrome
BUG=skia:
R=robertphillips@google.com, fmalita@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/355083006
2014-06-26 18:47:09 -07:00
kelvinly
f8364155c6 Fix scale type in JSON format
BUG=skia:
R=bensong@google.com, jcgregorio@google.com

Author: kelvinly@google.com

Review URL: https://codereview.chromium.org/354953007
2014-06-26 15:39:31 -07:00
rmistry
e1c55869f3 Revert of Switch SkPDFStream's internal storage from SkStream to SkData (https://codereview.chromium.org/340783013/)
Reason for revert:
Causes canary failures

Original issue's description:
> Switch SkPDFStream's internal storage from SkStream to SkData
>
> Motivation: This makes SkPDFStream thread-safe for two threads
> serializing it at once, since a SkStream has an internal position.
>
> Updated SkPDFFont, SkPDFGraphicState, and SkPDFPage's use of
> SkPDFStream to use the SkData constructor rather than the SkStream
> constructor (saving a memcpy).
>
> BUG=skia:2683
>
> Committed: https://skia.googlesource.com/skia/+/c1dfa14b645ae274780f026dd86c9b633fbdad06

R=mtklein@google.com, djsollen@google.com, halcanary@google.com
TBR=djsollen@google.com, halcanary@google.com, mtklein@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2683

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/354043005
2014-06-26 14:31:06 -07:00
halcanary
c1dfa14b64 Switch SkPDFStream's internal storage from SkStream to SkData
Motivation: This makes SkPDFStream thread-safe for two threads
serializing it at once, since a SkStream has an internal position.

Updated SkPDFFont, SkPDFGraphicState, and SkPDFPage's use of
SkPDFStream to use the SkData constructor rather than the SkStream
constructor (saving a memcpy).

BUG=skia:2683
R=mtklein@google.com, djsollen@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/340783013
2014-06-26 14:00:31 -07:00
tfarina
11a005ee01 Promote SkInterpolator unit test to our tests driver.
BUG=None
TEST=make tests && out/Debug/tests -m Interpolator
R=mtklein@google.com, bsalomon@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/351713005
2014-06-26 13:07:05 -07:00
bsalomon
da07a08367 Make LTCG optional on windows builds.
R=mtklein@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/335123010
2014-06-26 12:56:28 -07:00
bsalomon
3512eda332 Add trace event when GrBufferAllocPool unmaps a buffer indicating what % of the buffer was unwritten.
R=egdaniel@google.com
TBR=egdaniel@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/339433009
2014-06-26 12:56:22 -07:00
rmistry
8ba8d923da Rebaseline Test-Android-Logan-Nvidia-Arm7-*
Reviewed both by mtklein and bsalomon in skia:2695.

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

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/352353004
2014-06-26 11:35:33 -07:00
kelvinly
4d1a364e39 Make SKP bench JSON ouput better
BUG=skia:
NOTREECHECKS=true
R=bensong@google.com, jcgregorio@google.com, bsalomon@google.com, robertphillips@google.com, rmistry@google.com

Author: kelvinly@google.com

Review URL: https://codereview.chromium.org/329993008
2014-06-26 11:26:41 -07:00
Mike Klein
93fabf4847 Don't set SK_MALLOC_TEMP in SkAutoTMalloc.
Unlike SkAutoSTMalloc, it doesn't make sense for SkAutoTMalloc to set
SK_MALLOC_TEMP.  See SkAutoMalloc/SkAutoSMalloc for similar in the void*
world.(This change is a documentation-only no-op.  No code pays any
attention to SK_MALLOC_TEMP.)

BUG=skia:
R=halcanary@google.com

Review URL: https://codereview.chromium.org/356913003
2014-06-26 11:04:28 -04:00
bsalomon
3f547cb6a7 Add SK_API to SkWriter32
R=mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/356053002
2014-06-26 08:01:14 -07:00
kevin.petit
0d44830309 ARM Skia NEON patches - 40 - arm64: S32A_D565_Opaque
Here are some perf results:

+-------+------------+------------+
| count | Cortex-A53 | Cortex-A57 |
+-------+------------+------------+
|     1 |     -2.54% |     -5.39% |
+-------+------------+------------+
|     2 |     -0.66% |     -2.08% |
+-------+------------+------------+
|     4 |    -11.13% |      0.00% |
+-------+------------+------------+
|     8 |     -5.79% |     -1.30% |
+-------+------------+------------+
|    16 |     71.60% |     93.27% |
+-------+------------+------------+
|    64 |     30.99% |     57.35% |
+-------+------------+------------+
|   256 |     25.41% |     52.59% |
+-------+------------+------------+
|  1024 |     25.56% |     53.76% |
+-------+------------+------------+

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=skia:
R=mtklein@google.com, djsollen@google.com

Author: kevin.petit@arm.com

Review URL: https://codereview.chromium.org/346843003
2014-06-26 02:51:29 -07:00
borenet
1ea04a0a4d Update SKP version to 33
Automatic commit by the RecreateSKPs bot.

TBR=

Author: borenet@google.com

Review URL: https://codereview.chromium.org/336613005
2014-06-25 23:53:02 -07:00
senorblanco
7bf1068473 Remove SkBicubicImageFilter, and all related tests.
Now that we have SkResizeImageFilter, and the bicubic
resizing is part of skia proper, there's no need for a
specialized image filter.

BUG=skia:
R=bsalomon@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/357793002
2014-06-25 14:39:06 -07:00
mtklein
f372321de3 Add nanobench, a fresh look at our microbenchmark harness.
out/Release/nanobench runs 4-5x faster on my Z620 and ~2x faster on my N5 than out/Release/bench with the same configs.

(Debug isn't really comparable.  I haven't added the Debug -> single loop check.)

BUG=skia:
R=djsollen@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/347443002
2014-06-25 14:08:00 -07:00