Commit Graph

16573 Commits

Author SHA1 Message Date
reed
8e14d660b2 Revert of Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1006923002/)
Reason for revert:
platform_canvas tests failures

skia_unittests (with patch) skia_unittests (with patch) PlatformCanvas.TranslateLayer failed 2
Flakiness dashboard

failures:
PlatformCanvas.TranslateLayer
PlatformCanvas.FillLayer

Original issue's description:
> Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1008863002/)
>
> Reason for revert:
> guard in chrome has landed
>
> Original issue's description:
> > Revert of Change device creation to see the (optional) layer-paint (patchset #9 id:160001 of https://codereview.chromium.org/988413003/)
> >
> > Reason for revert:
> > need to have chrome opt-in for the older API before this can land (in chrome)
> >
> > Original issue's description:
> > > Change device creation to see the (optional) layer-paint
> > >
> > > Motivation:
> > >
> > > PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice.
> > >
> > > This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands.
> > >
> > > Committed: https://skia.googlesource.com/skia/+/1182d9a96b80bd12183ee7c81325a979a51ee0c0
> >
> > TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> >
> > Committed: https://skia.googlesource.com/skia/+/0e040f7da2fdfeb49aa60d24117306e3b1e6ea90
>
> TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/f7076a13e2d4269903b34ef2780e1c84723e4477

TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1001423002
2015-03-13 12:34:32 -07:00
joshualitt
5bf99f1ca8 Creation of GrBatchAtlas and Distancefieldpathrenderer batch
BUG=skia:

Review URL: https://codereview.chromium.org/975303005
2015-03-13 11:47:42 -07:00
robertphillips
2a679ae8f5 Fix bug with very large round rects with large radii
BUG=463920

Review URL: https://codereview.chromium.org/998903003
2015-03-13 09:53:01 -07:00
reed
c1b11f1db6 Handle paths that do not report empty, but have no edges.
patch from issue 999963005 at patchset 1 (http://crrev.com/999963005#ps1)

BUG=skia:3527

Review URL: https://codereview.chromium.org/1008883002
2015-03-13 08:48:27 -07:00
reed
f7076a13e2 Revert of Revert of Change device creation to see the (optional) layer-paint (patchset #1 id:1 of https://codereview.chromium.org/1008863002/)
Reason for revert:
guard in chrome has landed

Original issue's description:
> Revert of Change device creation to see the (optional) layer-paint (patchset #9 id:160001 of https://codereview.chromium.org/988413003/)
>
> Reason for revert:
> need to have chrome opt-in for the older API before this can land (in chrome)
>
> Original issue's description:
> > Change device creation to see the (optional) layer-paint
> >
> > Motivation:
> >
> > PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice.
> >
> > This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands.
> >
> > Committed: https://skia.googlesource.com/skia/+/1182d9a96b80bd12183ee7c81325a979a51ee0c0
>
> TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/0e040f7da2fdfeb49aa60d24117306e3b1e6ea90

TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1006923002
2015-03-13 08:46:12 -07:00
joshualitt
fd45079314 Call to retrieve SkDescriptor for SkScalarContext from SkPaint.
Review URL: https://codereview.chromium.org/1005103003
2015-03-13 08:38:43 -07:00
msarett
6e8f9033bb Ico security issues fix
BUG=skia:3401
BUG=skia:3426
BUG=skia:3441

Review URL: https://codereview.chromium.org/996173005
2015-03-13 08:07:01 -07:00
reed
0e040f7da2 Revert of Change device creation to see the (optional) layer-paint (patchset #9 id:160001 of https://codereview.chromium.org/988413003/)
Reason for revert:
need to have chrome opt-in for the older API before this can land (in chrome)

Original issue's description:
> Change device creation to see the (optional) layer-paint
>
> Motivation:
>
> PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice.
>
> This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands.
>
> Committed: https://skia.googlesource.com/skia/+/1182d9a96b80bd12183ee7c81325a979a51ee0c0

TBR=halcanary@google.com,senorblanco@google.com,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1008863002
2015-03-13 07:28:29 -07:00
reed
1182d9a96b Change device creation to see the (optional) layer-paint
Motivation:

PDFDevice currently relies on 1) being told that the layer's paint has an imagefilter, and in the case, it creates a rasterdevice. It then relies on (2) canvas itself sniffing the layer's paint and offering to apply-the-imagefilter to call drawSprite instead of drawDevice.

This subtle interchange is fragile, and also does not support other unsupported PDF features like colorfilters. This CL is a step toward making this use-raster-instead-of-native approach to layers more completely in the subclass' hands.

Review URL: https://codereview.chromium.org/988413003
2015-03-13 07:16:09 -07:00
fmalita
511005b2cc Lower SkPictureShader tile size limits
Let's drop this to 4M pixels - maybe it will help relieve DM pressure on
mobile devices.

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

Review URL: https://codereview.chromium.org/998423004
2015-03-13 06:50:44 -07:00
reed
11fa2247b7 some utils for rect and matrix
BUG=skia:

Review URL: https://codereview.chromium.org/1003813003
2015-03-13 06:08:28 -07:00
mtklein
d1f7f990a1 Have DM and nanobench display times in minutes when they're above 60 seconds.
Getting tired of trying to divide in my head when reading Valgrind logs.

BUG=skia:

Review URL: https://codereview.chromium.org/1004703002
2015-03-12 10:29:32 -07:00
rmistry
f91b717a99 Ignore public API checks if COMMIT=false is in the description
BUG=skia:
NOTRY=true

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

Review URL: https://codereview.chromium.org/1006473002
2015-03-12 09:48:10 -07:00
mtklein
a10ea431cf Revert of Ignore public API checks if COMMIT=false is in the description (patchset #4 id:80001 of https://codereview.chromium.org/1006473002/)
Reason for revert:
I cannot upload patches:

~/skia (skskp) $ git clu --bypass-hooks
++ git log -1 --pretty=%B
+ git cl upload -t update
Using 50% similarity for rename/copy detection. Override with --similarity.
Loaded authentication cookies from /Users/mtklein/.codereview_upload_cookies
Running presubmit upload checks ...

** Presubmit ERRORS **
Since the CL is editing public API, you must have an LGTM from one of: ('reed@chromium.org', 'reed@google.com', 'bsalomon@chromium.org', 'bsalomon@google.com', 'djsollen@chromium.org', 'djsollen@google.com')

Original issue's description:
> Ignore public API checks if COMMIT=false is in the description
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/d1783aefcc0da86c5ff1d124c54704252d817621

TBR=borenet@google.com,rmistry@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1005583002
2015-03-12 09:33:46 -07:00
rmistry
d1783aefcc Ignore public API checks if COMMIT=false is in the description
BUG=skia:

Review URL: https://codereview.chromium.org/1006473002
2015-03-12 08:43:22 -07:00
mtklein
95553d917c DM: display current memory usage (instead of peak) when available.
Seems strictly more useful.

This implements Mac and Windows, which seemed easy.  Don't know how to do this on Linux yet.

BUG=skia:

CQ_EXTRA_TRYBOTS=client.skia:Test-Mac10.9-MacMini6.2-HD4000-x86_64-Debug-Trybot

NOTREECHECKS=true
TBR=halcanary@google.com

Review URL: https://codereview.chromium.org/990723002
2015-03-12 08:24:21 -07:00
rmistry
01cbf6c467 Make presubmit check that #if or #ifdef does not come before includes.
BUG=skia:3362

Review URL: https://codereview.chromium.org/998273002
2015-03-12 07:48:40 -07:00
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