Commit Graph

16506 Commits

Author SHA1 Message Date
mtklein
2e1c47e135 Rejigger keep-alive thread so TSAN and LSAN don't complain.
BUG=skia:

Review URL: https://codereview.chromium.org/1006443002
2015-03-12 07:16:56 -07:00
rmistry
f93dd488d5 Add #include first in Sk4x_* files
BUG=skia:3362

Review URL: https://codereview.chromium.org/1004693002
2015-03-12 07:09:25 -07:00
mtklein
de6fc2bf46 DM: add keepalive for Valgrind bot.
BUG=skia:

Review URL: https://codereview.chromium.org/998263003
2015-03-12 06:28:54 -07:00
mtklein
172b45518a Clean up SkDynamicAnnotations.
Unprotected reads -> relaxed reads.
    Unprotected write -> relaxed write.

The only unprotected write we had was in SkTraceEvent, which it looks like we nabbed from Chrome at some point and changed only to silence TSAN.  Chrome's version uses AtomicWord / NoBarrier_Load / NoBarrier_Store, which boils down to the same as here, intptr_t / relaxed load / relaxed store.

This leaves one place where we're lying a bit to TSAN, in include/core/SkLazyPtr.h where we're doing a data-dependent consume load.  We're telling TSAN it's consume, but telling any other compiler to compile it as relaxed, given how they all upgrade consume to acquire.  This eliminates a barrier for us on ARM.  How do you guys deal with this?  Just use a consume memory order, take the hit, and hope compilers get smarter one day?

BUG=chromium:465721

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

Review URL: https://codereview.chromium.org/996763002
2015-03-12 05:27:46 -07:00
Derek Sollenberger
97f43946fc Fix HWUI Sink for DM
Review URL: https://codereview.chromium.org/996413002
2015-03-12 07:52:22 -04:00
bsalomon
084340bb9b Add terrible workaround to fix stencil clear crash on S3.
BUG=skia:3525

Review URL: https://codereview.chromium.org/1001693003
2015-03-11 15:49:55 -07:00
bungeman
79738cc7bf Glyph positions maintain 32 bit integer part.
A glyph position when mapped from canvas space to device space may land
outside the bounds of the current 16 bit integer part of device space.
Device space is already limited to 32 bits for the integer part,
but for a short space in drawText and drawPosText it is currently
limited to 16 bits (SkFixed). Raise this limit by moving to 48.16.
This matches the current similar fix for measureText.

BUG=chromium:375322

Review URL: https://codereview.chromium.org/977623002
2015-03-11 14:05:29 -07:00
scroggo
dd8c637bc7 Fix Windows build.
SK_BUILD_FOR_WIN is no longer a valid way to check for building on
Windows (go figure). Build everywhere.

Remove the REPORTER_ASSERT, which was the failing part. It also isn't
necessary for the test, which is just that we are not leaking an
SkColorTable.

Also fix indentation.

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

BUG=skia:3457

Review URL: https://codereview.chromium.org/1002583002
2015-03-11 13:58:17 -07:00
tomhudson
97cd070442 Since SkDrawFilter has serious architectural issues and may be
deprecated, use a proxy SkCanvas for the same end: in every draw
call, inspect the paint, changing it to fit within the capabilities
of the Android Java (HWUI) drawing API.

Verified that this allows us to reenable all our ColorFilter tests.

R=djsollen@google.com

Review URL: https://codereview.chromium.org/997183003
2015-03-11 12:21:08 -07:00
mtklein
a0d7b7bf62 delete dead code
BUG=skia:

Review URL: https://codereview.chromium.org/1003493002
2015-03-11 12:17:00 -07:00
mtklein
de9e7a71ad For safety include SkTypes.h in SkFontHost_mac.cpp
BUG=skia:3362

Review URL: https://codereview.chromium.org/996113003
2015-03-11 12:01:25 -07:00
mtklein
22712569a5 Clean up poppler code.
We're not actually using it.

BUG=skia:3362
DOCS_PREVIEW= https://skia.org/?cl=1002493002

Review URL: https://codereview.chromium.org/1002493002
2015-03-11 11:55:14 -07:00
jvanverth
cb251f1d0a Adjust atlas sizes to fix Mali400 precision issues
The previous change to atlas sizes introduced an issue where texture
coordinates for glyphs stored on the right side of the atlas were being
computed in an imprecise manner on Mali400 chips.

The only reasonable fix appears to be to use power-of-two texture sizes.
This widens the glyph atlas to the next power of 2 (or 2048) for A8 glyphs
only, and widens each GrPlot by 2x as well. By doing this, we can fit 3-4 large
distance field glyphs into a single GrPlot, which gives us 100-128 total large
glyphs at one time.

The 565 and 8888 glyph atlases are kept in their original size to preserve
space.

BUG=skia:3523

Review URL: https://codereview.chromium.org/994303003
2015-03-11 11:18:11 -07:00
robertphillips
6ba791f661 Fix debugger's overdraw color filter
The colors seen in the overdraw color filter are not guaranteed to remain the colors from its own table. Looping through the table to find the old overdraw level is error prone and expensive.

Review URL: https://codereview.chromium.org/997913002
2015-03-11 11:18:00 -07:00
qiankun.miao
1c762161d8 Use proper SkFDot6 instead of int
BUG=skia:

Review URL: https://codereview.chromium.org/960353005
2015-03-11 11:12:59 -07:00
dml
f45796ee0e Fix a memory leak when decoding corrupted indexed PNGs.
Commit to branch refs/heads/png-leak

BUG=skia:3457

Committed: https://skia.googlesource.com/skia/+/561a1ca9559a1ea7589ab93350124284fcef3315

Review URL: https://codereview.chromium.org/951663002
2015-03-11 11:12:54 -07:00
reed
180aec4345 Simplify clip inside a layer -- will be applied in restore
This reverts commit 4412465089.

NOTREECHECKS=True
BUG=skia:

Review URL: https://codereview.chromium.org/996233002
2015-03-11 10:39:05 -07:00
joshualitt
d5b98404ec fix for valgrind preAbandonGpuContext
NOTREECHECKS=true

BUG=skia:

Review URL: https://codereview.chromium.org/997923002
2015-03-11 09:11:19 -07:00
reed
9b3aa54bc9 optimization/fix: dirty the clip-bounds when we mod the clip in savelayer
Before the fix, we could use a stale cache of the clipbounds in quickReject. Often this could return false negatives, meaning we would try to draw more than we should (it would eventually be really clipped). Occasionally this could also report false positives (if the layer were outside of the normal canvas bounds, e.g. a layer with an offset imagefilter).

BUG=skia:
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/983243003
2015-03-11 08:47:12 -07:00
mtklein
cc99dbc57b Skip WritePixels on GalaxyS3
TBR=bsalomon@google.com

NOTREECHECKS=true

BUG=skia:

Review URL: https://codereview.chromium.org/994343003
2015-03-11 08:43:43 -07:00
mtklein
a6def476e9 DM: show skipped and --blacklist notes only in verbose mode.
In non-verbose mode, these notes will spin away too fast to read anyway,
unless they're so long they end up leaving junk on the terminal.

NOTREECHECKS=true

BUG=skia:

Review URL: https://codereview.chromium.org/989083002
2015-03-11 07:19:15 -07:00
reed
4412465089 Revert of simplify clip inside a layer -- will be applied in restore (patchset #2 id:20001 of https://codereview.chromium.org/997763002/)
Reason for revert:
slight rebaselines needed in layouttests

http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/51755

Original issue's description:
> simplify clip inside a layer -- will be applied in restore
>
> BUG=skia:
> TBR=
> NOTREECHECKS=True
>
> speculative land to measure performance
>
> Committed: https://skia.googlesource.com/skia/+/c275493d4247a2c5ae845d340c4297258f4684bc

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

Review URL: https://codereview.chromium.org/997103002
2015-03-11 04:02:20 -07:00
reed
c275493d42 simplify clip inside a layer -- will be applied in restore
BUG=skia:
TBR=
NOTREECHECKS=True

speculative land to measure performance

Review URL: https://codereview.chromium.org/997763002
2015-03-10 19:57:10 -07:00
reed
96e657d0e1 remove unused params to DeviceCM constructor
BUG=skia:
TBR=
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/999593002
2015-03-10 17:30:07 -07:00
mtklein
4e2d3be035 Don't run ResourceCache unit test on NexusPlayer.
TBR=bsalomon@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/992203005
2015-03-10 11:55:18 -07:00
jvanverth
be03bb6cef Adjust distance field glyph and font atlas sizes to maximize storage.
Because of high DPI devices, we need more room in the glyph
atlas for the larger glyphs. These settings will allow 4 of
the distance field glyphs to fit in one Plot (increasing
the storage from 32 large glyphs to 128), and still permit
us to handle glyphs up to a 312 point size.

BUG=chromium:458791

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

Committed: https://skia.googlesource.com/skia/+/07e245ffe1ca7f781590fcff904c2922c2269781

Review URL: https://codereview.chromium.org/986343002
2015-03-10 11:53:39 -07:00
jvanverth
c41df8d92d Revert of Adjust distance field glyph and font atlas sizes to maximize storage. (patchset #8 id:140001 of https://codereview.chromium.org/986343002/)
Reason for revert:
Still seeing bad text rendering in GMs with Nexus 2 and Nexus 3.

Original issue's description:
> Adjust distance field glyph and font atlas sizes to maximize storage.
>
> Because of high DPI devices, we need more room in the glyph
> atlas for the larger glyphs. These settings will allow 4 of
> the distance field glyphs to fit in one Plot (increasing
> the storage from 32 large glyphs to 128), and still permit
> us to handle glyphs up to a 312 point size.
>
> BUG=chromium:458791
>
> Committed: https://skia.googlesource.com/skia/+/d2737ad7dd8f4ea94a74034027014fd3d78923cb
>
> Committed: https://skia.googlesource.com/skia/+/07e245ffe1ca7f781590fcff904c2922c2269781

TBR=joshualitt@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:458791

Review URL: https://codereview.chromium.org/995863002
2015-03-10 08:23:07 -07:00
mtklein
7e78f3d0e7 Fix bug in Valgrind flags config.
'GPU' is in 'Test-Ubuntu14-GCE-NoGPU-x86_64-Release-Valgrind_CPU' too.

This means we're building it in no-GPU mode, and running it in no-CPU mode.
At least it finishes quite quickly this way (~10 seconds).

BUG=skia:

Review URL: https://codereview.chromium.org/992203004
2015-03-10 08:03:26 -07:00
jvanverth
07e245ffe1 Adjust distance field glyph and font atlas sizes to maximize storage.
Because of high DPI devices, we need more room in the glyph
atlas for the larger glyphs. These settings will allow 4 of
the distance field glyphs to fit in one Plot (increasing
the storage from 32 large glyphs to 128), and still permit
us to handle glyphs up to a 312 point size.

BUG=chromium:458791

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

Review URL: https://codereview.chromium.org/986343002
2015-03-10 06:53:28 -07:00
skia.buildbots
eb1514154d Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/991263002
2015-03-10 06:20:37 -07:00
rmistry
ba98761320 Add pageset for theverge
BUG=skia:3234

TBR=robertphillips
NOTRY=true
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/994923002
2015-03-10 05:00:08 -07:00
kkinnunen
732a92db49 Increase maximum gpu resources from 1024 to 4096
Pictures with many drawn paths benefit from the increase of the
count. As an example, chalkboard testcase has ~2500 paths, tiger
has ~300.

Bigger objects, like textures, tend to be limited by the cache
byte limit, not item count.

Review URL: https://codereview.chromium.org/991783003
2015-03-09 22:12:29 -07:00
bungeman
167eb17cd6 Use SkTMin and SkTMax for clamp/pin.
This changes SkScalarClampMax and SkScalarPin to use SkTMin and SkTMax.
This change allows compilers to more easily transform these operations
into fast max/min operarations as opposed to conditional branches.

Review URL: https://codereview.chromium.org/993593002
2015-03-09 13:40:15 -07:00
jvanverth
a548593a65 Revert of Adjust distance field glyph and font atlas sizes to maximize storage. (patchset #5 id:80001 of https://codereview.chromium.org/986343002/)
Reason for revert:
There's some weirdness with Tegra2 and Tegra3 GMs (Xoom and Nexus7) that may be related to this.

Original issue's description:
> Adjust distance field glyph and font atlas sizes to maximize storage.
>
> Because of high DPI devices, we need more room in the glyph
> atlas for the larger glyphs. These settings will allow 4 of
> the distance field glyphs to fit in one Plot (increasing
> the storage from 32 large glyphs to 128), and still permit
> us to handle glyphs up to a 312 point size.
>
> BUG=chromium:458791
>
> Committed: https://skia.googlesource.com/skia/+/d2737ad7dd8f4ea94a74034027014fd3d78923cb

TBR=joshualitt@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:458791

Review URL: https://codereview.chromium.org/986333005
2015-03-09 12:17:07 -07:00
bsalomon
5baedd6378 Use global GrMemoryPools protected by mutex for GrProcessor/GrBatch
BUG=chromium:464892

Review URL: https://codereview.chromium.org/991943002
2015-03-09 12:15:53 -07:00
jvanverth
d2737ad7dd Adjust distance field glyph and font atlas sizes to maximize storage.
Because of high DPI devices, we need more room in the glyph
atlas for the larger glyphs. These settings will allow 4 of
the distance field glyphs to fit in one Plot (increasing
the storage from 32 large glyphs to 128), and still permit
us to handle glyphs up to a 312 point size.

BUG=chromium:458791

Review URL: https://codereview.chromium.org/986343002
2015-03-09 09:45:40 -07:00
egdaniel
86e31a1980 Allow user to pass in a path for extra dependencies for gpu
BUG=skia:

Review URL: https://codereview.chromium.org/986363002
2015-03-09 09:40:42 -07:00
fmalita
33a4582a25 Remove SK_SUPPORT_LEGACY_ADDOVAL
The flad has been retired from Chromium.

BUG=chromium:458898
R=reed@google.com

Review URL: https://codereview.chromium.org/994533002
2015-03-09 09:40:37 -07:00
borenet
13e51f91ef Run Valgrind bots with --nogpu and --nocpu as appropriate
BUG=skia:3506
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/986583004
2015-03-09 06:59:16 -07:00
reed
1b110d6bf4 Revert of use colorfilter instead of imagefilter when possible (patchset #6 id:100001 of https://codereview.chromium.org/966233002/)
Reason for revert:
Lots of PDF failures -- need to investigate

Original issue's description:
> use colorfilter instead of imagefilter when possible
>
> big speed win w/ nanobench --match colorfilter_
>
> BUG=skia:
> TBR=
>
> Will require rebaselining, so landing temporarily to trigger layouttests.
>
> Committed: https://skia.googlesource.com/skia/+/f641bd076d29666a5d2a10d5384e4924b0a0e524

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

Review URL: https://codereview.chromium.org/991693002
2015-03-08 18:47:13 -07:00
reed
f641bd076d use colorfilter instead of imagefilter when possible
big speed win w/ nanobench --match colorfilter_

BUG=skia:
TBR=

Will require rebaselining, so landing temporarily to trigger layouttests.

Review URL: https://codereview.chromium.org/966233002
2015-03-08 18:34:37 -07:00
reed
cedc36f18b Use ComposColorFilter to collaps hierarchy (when possible).
Clarify asColorFilter ...
1. Rename to isColorFilterNode for DAG reduction
2. Add asAColorFilter for removing the imagefilter entirely (future use-case)

Need layouttest rebaseline suppression before this can land in chrome...
https://codereview.chromium.org/984023004/

BUG=skia:

Review URL: https://codereview.chromium.org/982933002
2015-03-08 04:42:52 -07:00
mtklein
82966b5eed Revert of For consistency, use our homebrew zlib everywhere possible. (patchset #6 id:100001 of https://codereview.chromium.org/971673005/)
Reason for revert:
Reverting in case this is the cause of the non-Windows failures.

Original issue's description:
> For consistency, use our homebrew zlib everywhere possible.
>
> This switches when we build our own zlib from "just Windows" to "everyone, but
> not Android framework of course".
>
> I tested this by building DM for my Mac and for an Android bot config.
> It took minor tweaks to the GYP to get ARM builds working.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/5a8f2257b0b0f954fb74f65e7ea3ada772ed9240

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

Review URL: https://codereview.chromium.org/989873002
2015-03-07 07:47:51 -08:00
reed
8371b7e8ef Revert of Fix a memory leak when decoding corrupted indexed PNGs. (patchset #2 id:20001 of https://codereview.chromium.org/951663002/)
Reason for revert:
speculative revert due to many failures in tree

Original issue's description:
> Fix a memory leak when decoding corrupted indexed PNGs.
> Commit to branch refs/heads/png-leak
>
> BUG=skia:3457
>
> Committed: https://skia.googlesource.com/skia/+/561a1ca9559a1ea7589ab93350124284fcef3315

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

Review URL: https://codereview.chromium.org/980203005
2015-03-07 06:05:51 -08:00
dml
561a1ca955 Fix a memory leak when decoding corrupted indexed PNGs.
Commit to branch refs/heads/png-leak

BUG=skia:3457

Review URL: https://codereview.chromium.org/951663002
2015-03-06 16:25:28 -08:00
schenney
23d8593f81 Update SkPicture cull rects with RTree information
When computed, the RTree for an SkPicture will have a root
bounds that reflects the best bounding information available,
rather than the best estimate at the time the picture recorder
is created. Given that creators frequently don't know ahead of
time what will be drawn, the RTree bound is often tighter.

Perf testing on Chrome indicates a small raster performance
advantage. For upcoming painting changes in Chrome the
performance advantage is much larger.

BUG=

Committed: https://skia.googlesource.com/skia/+/2dd3b6647dc726f36fd8774b3d0d2e83b493aeac

Review URL: https://codereview.chromium.org/971803002
2015-03-06 16:20:28 -08:00
mtklein
a27cdefae1 Make Sk4f(float) constructor explicit.
BUG=skia:

Review URL: https://codereview.chromium.org/985003003
2015-03-06 16:20:22 -08:00
herb
c2ff52920b Fix bit rot in SkGlyphCache validate code.
TESTED
CFLAGS=-DSK_DEBUG_GLYPH_CACHE CPPFLAGS=-DSK_DEBUG_GLYPH_CACHE ./gyp_skia

ninja -C out/Debug dm
out/Debug/dm

Review URL: https://codereview.chromium.org/989683002
2015-03-06 16:15:23 -08:00
mtklein
5a8f2257b0 For consistency, use our homebrew zlib everywhere possible.
This switches when we build our own zlib from "just Windows" to "everyone, but
not Android framework of course".

I tested this by building DM for my Mac and for an Android bot config.
It took minor tweaks to the GYP to get ARM builds working.

BUG=skia:

Review URL: https://codereview.chromium.org/971673005
2015-03-06 16:15:16 -08:00
bsalomon
9ce30e1cd1 Clip scissor to RT bounds
R=joshualitt@google.com

NOTREECHECKS=true

Review URL: https://codereview.chromium.org/985783002
2015-03-06 08:42:34 -08:00