platform/upstream/libSkiaSharp.git
9 years agodebugger: Abandon context when Qt changes it without notice
kkinnunen [Wed, 11 Feb 2015 06:27:48 +0000 (22:27 -0800)]
debugger: Abandon context when Qt changes it without notice

Qt changes the context on many conditions. Abandon GrContext
in these cases.

Also call GrContext::resetContext during Qt GL paint callback,
the GL state may be touched by Qt.

Fixes the bug where changing between gpu and msaa would start
erroring in framebuffer binds, if the .skp had many layers.

Review URL: https://codereview.chromium.org/915573002

9 years agoAdd tests for STArray swap
bsalomon [Wed, 11 Feb 2015 03:46:58 +0000 (19:46 -0800)]
Add tests for STArray swap

Review URL: https://codereview.chromium.org/909583003

9 years agoRevert of GYP groudwork for half-float opts support. (patchset #1 id:1 of https:...
mtklein [Wed, 11 Feb 2015 02:18:18 +0000 (18:18 -0800)]
Revert of GYP groudwork for half-float opts support. (patchset #1 id:1 of https://codereview.chromium.org/915693002/)

Reason for revert:
Going to punt on 16-bit float support for now.  Can't figure out ARM 64.

Original issue's description:
> GYP groudwork for half-float opts support.
>
> This sets us up two new opts targets with the immediate goal of adding half-float (SkHalf.h) opts:
>   - opts_neon_fp16: uses hardware support on most ARM chips with NEON to do 4 conversions at a time;
>   - opts_avx: uses hardware support on Intel chips with AVX to do 8 conversions at a time.
>
> opts_avx will be a handy thing to have around later too, especially if we want to work with floats.
>
> This doesn't actually add any new source files to these libraries yet, so they're no-ops for now.
> I'll need to write a parallel change to Chrome's GN and GYPs before we can start adding sources.
>
> This also rolls GYP up to head, to get suppport for EnableEnhancedInstructionSet: '3' on Windows,
> which is how we turn on AVX there.  There's no Mac-specific flag, so we use OTHER_CPLUSPLUSFLAGS.
>
> BUG=skia:
>
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/46b80833394d7919cadf2abf2b93802141dd21c5

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

Review URL: https://codereview.chromium.org/912223002

9 years agoRevert of add dummy avx file so xcode will build (patchset #1 id:1 of https://coderev...
mtklein [Wed, 11 Feb 2015 02:17:17 +0000 (18:17 -0800)]
Revert of add dummy avx file so xcode will build (patchset #1 id:1 of https://codereview.chromium.org/916563002/)

Reason for revert:
Going to punt on 16-bit float support for now.  Can't figure out ARM 64.

Original issue's description:
> add dummy avx file so xcode will build
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/a0921f2563701d54e4e022de99f2705f4ada8a6e

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

Review URL: https://codereview.chromium.org/912213002

9 years agoadd gm for stroked circles that are zoomed
reed [Wed, 11 Feb 2015 01:44:26 +0000 (17:44 -0800)]
add gm for stroked circles that are zoomed

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/912203002

9 years agocheck for inverted rects before we quick-reject
reed [Tue, 10 Feb 2015 22:18:09 +0000 (14:18 -0800)]
check for inverted rects before we quick-reject

BUG=skia:

Review URL: https://codereview.chromium.org/908353002

9 years agoSimplify SkBBH::insert API
mtklein [Tue, 10 Feb 2015 21:44:27 +0000 (13:44 -0800)]
Simplify SkBBH::insert API

No one's exploiting the ability to take ownership of the array anymore.

BUG=skia:

Review URL: https://codereview.chromium.org/913833002

9 years agoadd dummy avx file so xcode will build
reed [Tue, 10 Feb 2015 21:39:15 +0000 (13:39 -0800)]
add dummy avx file so xcode will build

BUG=skia:

Review URL: https://codereview.chromium.org/916563002

9 years agoSimplify reference management in SkPDF
halcanary [Tue, 10 Feb 2015 21:32:09 +0000 (13:32 -0800)]
Simplify reference management in SkPDF

Prior to this change, SkPDFObject subclasses were required
to track their resources separately from the document
structure.  (An object has a resource if it depends, via an
indirect reference, on another object).  This led to a lot
of extra code to duplicate effort.  I replace the
getResources() function with the much simpler addResources()
function.  I only define a non-trivial addResources() method
on arrays, dictionaries, and indirect object references.
All other specialized classes simply rely on their parent
class's implementation.

SkPDFObject::addResources() works by recursively walking the
directed graph of object (direct and indirect) references
and adding resources to a set.  It doesn't matter that there
are closed loops in the graph, since we check the set before
walking down a branch.

-  Add SkPDFObject::addResources() virtual function, with
   four implementations
-  Remove SkPDFObject::getResources() virtual function and
   all implementations.
-  Remove SkPDFObject::GetResourcesHelper()
-  Remove SkPDFObject::AddResourceHelper()
-  In SkPDFCatalog::findObjectIndex(), add an object to the
   catalog if it doesn't exist yet.
-  SkPDFCatalog::setSubstitute() no longer sets up resources
-  SkPDFDocument.cpp no longer needs the Streamer object
-  SkPDFDocument.cpp calls fDocCatalog->addResources to build
   the resource list.
-  SkPDFFont::addResource() removed
-  All SkPDF-::fResource sets removed (they are redundant).
-  removed SkPDFImage::addSMask() function
-  SkPDFResourceDict::getReferencedResources() removed.

Motivation: this removes quite a bit of code and makes the
objects slightly slimmer in memory.  Most importantly, this
will lead the way towards removing SkPDFObject's inheritance
from SkRefCnt, which will greatly simplify everything.

Testing: I usually test changes to the PDF backend by
comparing checksums of PDF files rendered from GMs and SKPs
before and after the change.  This change both re-orders and
re-numbers the indirect PDF objects.  I used the qpdf
program to normalize the PDFs and then compared the
normalized outputs from before and after the change; they
matched.

Review URL: https://codereview.chromium.org/870333002

9 years agoUpdate docs with instructions for debugging Android SampleApp.
djsollen [Tue, 10 Feb 2015 21:17:07 +0000 (13:17 -0800)]
Update docs with instructions for debugging Android SampleApp.

Review URL: https://codereview.chromium.org/910173002

9 years agoSwitch font embedding to a compile-time flag, with a todo for runtime.
mtklein [Tue, 10 Feb 2015 19:48:55 +0000 (11:48 -0800)]
Switch font embedding to a compile-time flag, with a todo for runtime.

BUG=skia:3417

Review URL: https://codereview.chromium.org/910283002

9 years agodiscard when coverage is <= 0 in XP dst copy.
joshualitt [Tue, 10 Feb 2015 18:06:15 +0000 (10:06 -0800)]
discard when coverage is <= 0 in XP dst copy.

Darken was 5-20% slower with this CL, though it might improve things a bit to only look at one component of the vector.

BUG=skia:

Review URL: https://codereview.chromium.org/915633002

9 years agoAdd SSE optimization of Color32A_D565
henrik.smiding [Tue, 10 Feb 2015 17:42:33 +0000 (09:42 -0800)]
Add SSE optimization of Color32A_D565

Adds an SSE4.1 version of the Color32A_D565 function.

Performance improvement in the following benchmarks:
  Xfermode_SrcOver       - ~100%
  luma_colorfilter_large - ~150%
  luma_colorfilter_small - ~60%
  tablebench             - ~10%
  chart_bw               - ~10%
(Measured on a Atom Silvermont core)

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>
Review URL: https://codereview.chromium.org/892623002

9 years agoGYP groudwork for half-float opts support.
mtklein [Tue, 10 Feb 2015 17:17:05 +0000 (09:17 -0800)]
GYP groudwork for half-float opts support.

This sets us up two new opts targets with the immediate goal of adding half-float (SkHalf.h) opts:
  - opts_neon_fp16: uses hardware support on most ARM chips with NEON to do 4 conversions at a time;
  - opts_avx: uses hardware support on Intel chips with AVX to do 8 conversions at a time.

opts_avx will be a handy thing to have around later too, especially if we want to work with floats.

This doesn't actually add any new source files to these libraries yet, so they're no-ops for now.
I'll need to write a parallel change to Chrome's GN and GYPs before we can start adding sources.

This also rolls GYP up to head, to get suppport for EnableEnhancedInstructionSet: '3' on Windows,
which is how we turn on AVX there.  There's no Mac-specific flag, so we use OTHER_CPLUSPLUSFLAGS.

BUG=skia:

TBR=reed@google.com

Review URL: https://codereview.chromium.org/915693002

9 years agocheck for nonfinites in rrects
reed [Tue, 10 Feb 2015 16:46:22 +0000 (08:46 -0800)]
check for nonfinites in rrects

BUG=457128

Review URL: https://codereview.chromium.org/913743002

9 years agoUse conics for round joins and caps
reed [Tue, 10 Feb 2015 16:45:06 +0000 (08:45 -0800)]
Use conics for round joins and caps

patch from issue 909013004 at patchset 20001 (http://crrev.com/909013004#ps20001)

BUG=skia:
TBR=caryclark

Review URL: https://codereview.chromium.org/910213002

9 years agoClean up clipping code a bit
robertphillips [Tue, 10 Feb 2015 16:16:55 +0000 (08:16 -0800)]
Clean up clipping code a bit

Review URL: https://codereview.chromium.org/913693002

9 years agoOnly define SK_CRASH_HANDLER in crash_handler.
scroggo [Tue, 10 Feb 2015 16:13:26 +0000 (08:13 -0800)]
Only define SK_CRASH_HANDLER in crash_handler.

The macro is only used in CrashHandler.*

Removes SK_CRASH_HANDLER from Android's SkUserConfig, where it is not
needed.

Review URL: https://codereview.chromium.org/915663002

9 years agoAdditional cleanups to Android config parsing.
bungeman [Tue, 10 Feb 2015 15:51:12 +0000 (07:51 -0800)]
Additional cleanups to Android config parsing.

Properly labels several methods as static.
Use XML_GetBuffer to avoid an extra copy.
Set the memory allocators to Skia's.
Set define in 'defines' instead of cflags.
Update debug dumper.

Review URL: https://codereview.chromium.org/915443002

9 years agorewrite ambiguous comment
mtklein [Tue, 10 Feb 2015 15:47:31 +0000 (07:47 -0800)]
rewrite ambiguous comment

It took me a few reads, but it eventually swapped from bunny to duck.

BUG=skia:

Review URL: https://codereview.chromium.org/913733002

9 years agoOnly instance-count in SK_DEVELOPER builds (our debug builds, not Chrome's)
mtklein [Tue, 10 Feb 2015 14:14:05 +0000 (06:14 -0800)]
Only instance-count in SK_DEVELOPER builds (our debug builds, not Chrome's)

BUG=skia:

Review URL: https://codereview.chromium.org/910973003

9 years agoUpdate SKP version
skia.buildbots [Tue, 10 Feb 2015 07:04:25 +0000 (23:04 -0800)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/890863004

9 years agoPort SkLazyPtr to new SkAtomics.h
mtklein [Mon, 9 Feb 2015 22:47:06 +0000 (14:47 -0800)]
Port SkLazyPtr to new SkAtomics.h

No algorithmic changes.  The new APIs let us avoid a few ugly trips through void*,
and I've made the consume/acquire/release decision explicitly conditioned on TSAN.

This should fix the attached bug, which is TSAN seeing us implementing the
sk_consume_load() with a relaxed load, where we used to pass __ATOMIC_CONSUME
to TSAN.  This restores us to the status quo of a couple weeks ago, where we
use relaxed loads (to avoid an extra dmb on ARM) for all setups except TSAN,
who gets the logically correct memory order, consume.

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

BUG=chromium:455606

Review URL: https://codereview.chromium.org/908943002

9 years agoSkAtomics: add asserts for valid memory orders.
mtklein [Mon, 9 Feb 2015 22:13:44 +0000 (14:13 -0800)]
SkAtomics: add asserts for valid memory orders.

Taken from http://en.cppreference.com/w/cpp/atomic/atomic and https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html, which agree.

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

BUG=skia:

Review URL: https://codereview.chromium.org/868843003

9 years agouse conics for arcTo
reed [Mon, 9 Feb 2015 21:54:43 +0000 (13:54 -0800)]
use conics for arcTo

guarded by SK_SUPPORT_LEGACY_ARCTO_QUADS

BUG=skia:

Review URL: https://codereview.chromium.org/892703002

9 years agoFixed array read error
sugoi [Mon, 9 Feb 2015 21:17:21 +0000 (13:17 -0800)]
Fixed array read error

In 32 bits, if the "element count" was under 32 bits, but "element count" * "element size" was over the 32 bit limit, the overflow was causing the read operation to appear as if it had succeded, even though it should have failed.

BUG=456828

Review URL: https://codereview.chromium.org/904833003

9 years agomore gms for conics
reed [Mon, 9 Feb 2015 21:01:05 +0000 (13:01 -0800)]
more gms for conics

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/869843006

9 years agoRevert of nanobench: lazily decode bitmaps in .skps. (patchset #1 id:1 of https:...
mtklein [Mon, 9 Feb 2015 19:58:41 +0000 (11:58 -0800)]
Revert of nanobench: lazily decode bitmaps in .skps. (patchset #1 id:1 of https://codereview.chromium.org/743613005/)

Reason for revert:
Well, it still crashes.

Original issue's description:
> nanobench: lazily decode bitmaps in .skps.
>
> This cuts down on tool overhead when running something like recording only,
>     $ out/Release/nanobench --match skp --config nonrendering
> which doesn't usually ever need to decode the images.
>
> The actual measurements for recording don't change, as the decode is not in the timed section.  It just skips irrelevant code, removing it from the profile and making the tool run faster.
>
> This does, however, make a significant difference for playback speed.  Most skps draw faster with this patch, some slower.  I don't really have a good intuition for what's going on here.  There is a fixed clip acting as a viewport, so there are probably lots of images that don't ever need to be decoded.  Ideas?  Is this perhaps because we're now blitting from smaller, partially decoded source images?
>
> ~/skia (clean) $ compare clean.log lazy-decode-bitmaps.log
>                    tabl_slashdot.skp_1 2.76ms -> 4.33ms 1.57x
>                tabl_slashdot.skp_1_mpd 2.79ms -> 4.07ms 1.46x
>                     tabl_sahadan.skp_1 3.41ms -> 4.87ms 1.43x
>                  tabl_googleblog.skp_1 1.52ms -> 2.05ms 1.35x
>                tabl_techmeme.skp_1_mpd 1.14ms -> 1.51ms 1.32x
>                tabl_transformice.skp_1 2.61ms -> 3.43ms 1.31x
>                 tabl_sahadan.skp_1_mpd 3.54ms -> 4.48ms 1.26x
>                    tabl_techmeme.skp_1 1.01ms -> 1.27ms 1.26x
>                 tabl_nytimes.skp_1_mpd    1ms -> 1.23ms 1.23x
>            tabl_worldjournal.skp_1_mpd 1.98ms -> 2.43ms 1.23x
>                  tabl_pravda.skp_1_mpd 2.05ms -> 2.51ms 1.22x
>            tabl_transformice.skp_1_mpd 2.75ms -> 3.19ms 1.16x
>                     tabl_nytimes.skp_1  874us -> 1.01ms 1.15x
>                      tabl_pravda.skp_1 1.83ms -> 1.99ms 1.09x
>                tabl_worldjournal.skp_1 1.76ms -> 1.91ms 1.09x
>                 desk_wowwiki.skp_1_mpd  3.7ms ->  3.9ms 1.05x
>                        tabl_digg.skp_1 3.99ms -> 4.16ms 1.04x
>                   tabl_ukwsj.skp_1_mpd    3ms -> 3.12ms 1.04x
>                     desk_booking.skp_1 3.74ms -> 3.81ms 1.02x
>     desk_googlespreadsheetdashed.skp_1 10.6ms -> 10.6ms 1x
>                       tabl_ukwsj.skp_1 2.88ms -> 2.89ms 1x
> desk_googlespreadsheetdashed.skp_1_mpd 11.8ms -> 11.8ms 1x
>      desk_jsfiddlehumperclip.skp_1_mpd  891us ->  888us 1x
>           desk_googlespreadsheet.skp_1 4.65ms -> 4.62ms 0.99x
>                   tabl_gspro.skp_1_mpd 1.97ms -> 1.94ms 0.99x
>                 desk_booking.skp_1_mpd  4.1ms ->    4ms 0.98x
>                      desk_carsvg.skp_1 18.2ms -> 17.7ms 0.97x
>             desk_gmailthread.skp_1_mpd 2.81ms -> 2.73ms 0.97x
>                desk_tigersvg.skp_1_mpd 19.5ms -> 18.9ms 0.97x
>                      desk_mapsvg.skp_1 88.4ms -> 85.6ms 0.97x
>                    tabl_cnet.skp_1_mpd 1.43ms -> 1.38ms 0.97x
>              desk_jsfiddlebigcar.skp_1 1.26ms -> 1.22ms 0.96x
>                         desk_gws.skp_1 1.87ms ->  1.8ms 0.96x
>                    desk_linkedin.skp_1 2.07ms -> 1.98ms 0.96x
>              tabl_deviantart.skp_1_mpd  118ms ->  113ms 0.96x
>                        tabl_cnet.skp_1  1.2ms -> 1.14ms 0.95x
>           tabl_androidpolice.skp_1_mpd 5.95ms -> 5.63ms 0.95x
>                      desk_sfgate.skp_1 1.75ms -> 1.64ms 0.94x
>                     desk_twitter.skp_1   74ms -> 69.6ms 0.94x
>                 desk_youtube.skp_1_mpd 3.17ms -> 2.96ms 0.93x
>                 desk_gmailthread.skp_1 2.73ms -> 2.54ms 0.93x
>             desk_silkfinance.skp_1_mpd 1.71ms -> 1.59ms 0.93x
>          desk_jsfiddlebigcar.skp_1_mpd 1.45ms -> 1.35ms 0.93x
>             desk_pokemonwiki.skp_1_mpd 2.72ms -> 2.51ms 0.92x
>                     desk_gws.skp_1_mpd 2.14ms -> 1.98ms 0.92x
>                  desk_googlehome.skp_1  563us ->  517us 0.92x
>                        desk_espn.skp_1 4.24ms -> 3.89ms 0.92x
>           tabl_culturalsolutions.skp_1 12.7ms -> 11.6ms 0.91x
>                  desk_sfgate.skp_1_mpd 1.91ms -> 1.74ms 0.91x
>                        tabl_hsfi.skp_1 1.06ms ->  966us 0.91x
>                desk_samoasvg.skp_1_mpd 10.5ms -> 9.47ms 0.91x
>                desk_facebook.skp_1_mpd  3.8ms -> 3.43ms 0.9x
>                     desk_youtube.skp_1 3.52ms -> 3.14ms 0.89x
>                    desk_ebay.skp_1_mpd 2.95ms -> 2.62ms 0.89x
>                    desk_samoasvg.skp_1 10.9ms -> 9.66ms 0.89x
>       desk_googlespreadsheet.skp_1_mpd 5.59ms -> 4.94ms 0.88x
>                  desk_mapsvg.skp_1_mpd  100ms -> 87.9ms 0.88x
>                    desk_espn.skp_1_mpd  4.7ms -> 4.12ms 0.88x
>               desk_wordpress.skp_1_mpd 1.92ms -> 1.68ms 0.87x
>                  tabl_deviantart.skp_1  140ms ->  122ms 0.87x
>            tabl_cuteoverload.skp_1_mpd 4.41ms -> 3.83ms 0.87x
>                    desk_tigersvg.skp_1 19.6ms ->   17ms 0.87x
>              tabl_googlecalendar.skp_1 4.01ms -> 3.44ms 0.86x
>                     desk_blogger.skp_1 2.49ms -> 2.14ms 0.86x
>              desk_chalkboard.skp_1_mpd 52.7ms ->   45ms 0.85x
>                     desk_weather.skp_1 2.88ms -> 2.46ms 0.85x
>                  desk_chalkboard.skp_1   51ms -> 43.4ms 0.85x
>                desk_yahooanswers.skp_1 2.74ms -> 2.32ms 0.85x
>              desk_forecastio.skp_1_mpd 1.26ms -> 1.07ms 0.85x
>               tabl_androidpolice.skp_1 5.18ms -> 4.34ms 0.84x
>            desk_yahooanswers.skp_1_mpd 3.44ms -> 2.85ms 0.83x
>                     tabl_cnn.skp_1_mpd 2.59ms -> 2.15ms 0.83x
>                   desk_pinterest.skp_1 2.69ms -> 2.22ms 0.83x
>                    tabl_hsfi.skp_1_mpd  1.6ms -> 1.32ms 0.82x
>       tabl_culturalsolutions.skp_1_mpd 13.8ms -> 11.3ms 0.82x
>                 desk_twitter.skp_1_mpd 76.6ms ->   63ms 0.82x
>                        desk_ebay.skp_1 3.11ms -> 2.51ms 0.81x
>                     tabl_mlb.skp_1_mpd 3.17ms -> 2.53ms 0.8x
>                     tabl_mozilla.skp_1 2.42ms -> 1.91ms 0.79x
>                 desk_pokemonwiki.skp_1 2.84ms -> 2.22ms 0.78x
>                  desk_carsvg.skp_1_mpd 23.3ms -> 17.8ms 0.77x
>                     desk_wowwiki.skp_1 4.21ms -> 3.21ms 0.76x
>                      desk_amazon.skp_1  963us ->  728us 0.76x
>               desk_css3gradients.skp_1 2.58ms -> 1.92ms 0.74x
>                tabl_cuteoverload.skp_1 4.55ms -> 3.38ms 0.74x
>                         tabl_cnn.skp_1 3.13ms -> 2.29ms 0.73x
>              tabl_googleblog.skp_1_mpd 2.32ms ->  1.7ms 0.73x
>                  desk_mobilenews.skp_1 3.65ms -> 2.61ms 0.71x
>                  desk_googleplus.skp_1 3.76ms -> 2.66ms 0.71x
>                 tabl_mozilla.skp_1_mpd 2.88ms -> 2.03ms 0.71x
>               desk_pinterest.skp_1_mpd 3.17ms -> 2.21ms 0.7x
>           desk_css3gradients.skp_1_mpd 2.98ms -> 2.07ms 0.69x
>                 desk_silkfinance.skp_1 2.06ms -> 1.42ms 0.69x
>                    desk_facebook.skp_1  4.5ms -> 3.07ms 0.68x
>              desk_mobilenews.skp_1_mpd 4.05ms -> 2.73ms 0.68x
>                   desk_baidu.skp_1_mpd 2.73ms -> 1.81ms 0.66x
>                 desk_weather.skp_1_mpd 3.93ms ->  2.5ms 0.64x
>                   desk_wordpress.skp_1 2.15ms -> 1.36ms 0.63x
>              desk_googlehome.skp_1_mpd 1.02ms ->  605us 0.59x
>                    desk_fontwipe.skp_1  722us ->  402us 0.56x
>                desk_fontwipe.skp_1_mpd  897us ->  486us 0.54x
>                       desk_baidu.skp_1 3.02ms ->  1.6ms 0.53x
>                  desk_forecastio.skp_1 2.01ms ->  999us 0.5x
>                  desk_amazon.skp_1_mpd 1.77ms ->  860us 0.49x
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/7e225bdb1f00ae4aed524ff8d0a61df3d3abb109
>
> Committed: https://skia.googlesource.com/skia/+/1b6b626f9bc0deebe4fe2e63f422d6b122419205

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

Review URL: https://codereview.chromium.org/902783005

9 years agonanobench: lazily decode bitmaps in .skps.
mtklein [Mon, 9 Feb 2015 19:44:23 +0000 (11:44 -0800)]
nanobench: lazily decode bitmaps in .skps.

This cuts down on tool overhead when running something like recording only,
    $ out/Release/nanobench --match skp --config nonrendering
which doesn't usually ever need to decode the images.

The actual measurements for recording don't change, as the decode is not in the timed section.  It just skips irrelevant code, removing it from the profile and making the tool run faster.

This does, however, make a significant difference for playback speed.  Most skps draw faster with this patch, some slower.  I don't really have a good intuition for what's going on here.  There is a fixed clip acting as a viewport, so there are probably lots of images that don't ever need to be decoded.  Ideas?  Is this perhaps because we're now blitting from smaller, partially decoded source images?

~/skia (clean) $ compare clean.log lazy-decode-bitmaps.log
                   tabl_slashdot.skp_1 2.76ms -> 4.33ms 1.57x
               tabl_slashdot.skp_1_mpd 2.79ms -> 4.07ms 1.46x
                    tabl_sahadan.skp_1 3.41ms -> 4.87ms 1.43x
                 tabl_googleblog.skp_1 1.52ms -> 2.05ms 1.35x
               tabl_techmeme.skp_1_mpd 1.14ms -> 1.51ms 1.32x
               tabl_transformice.skp_1 2.61ms -> 3.43ms 1.31x
                tabl_sahadan.skp_1_mpd 3.54ms -> 4.48ms 1.26x
                   tabl_techmeme.skp_1 1.01ms -> 1.27ms 1.26x
                tabl_nytimes.skp_1_mpd    1ms -> 1.23ms 1.23x
           tabl_worldjournal.skp_1_mpd 1.98ms -> 2.43ms 1.23x
                 tabl_pravda.skp_1_mpd 2.05ms -> 2.51ms 1.22x
           tabl_transformice.skp_1_mpd 2.75ms -> 3.19ms 1.16x
                    tabl_nytimes.skp_1  874us -> 1.01ms 1.15x
                     tabl_pravda.skp_1 1.83ms -> 1.99ms 1.09x
               tabl_worldjournal.skp_1 1.76ms -> 1.91ms 1.09x
                desk_wowwiki.skp_1_mpd  3.7ms ->  3.9ms 1.05x
                       tabl_digg.skp_1 3.99ms -> 4.16ms 1.04x
                  tabl_ukwsj.skp_1_mpd    3ms -> 3.12ms 1.04x
                    desk_booking.skp_1 3.74ms -> 3.81ms 1.02x
    desk_googlespreadsheetdashed.skp_1 10.6ms -> 10.6ms 1x
                      tabl_ukwsj.skp_1 2.88ms -> 2.89ms 1x
desk_googlespreadsheetdashed.skp_1_mpd 11.8ms -> 11.8ms 1x
     desk_jsfiddlehumperclip.skp_1_mpd  891us ->  888us 1x
          desk_googlespreadsheet.skp_1 4.65ms -> 4.62ms 0.99x
                  tabl_gspro.skp_1_mpd 1.97ms -> 1.94ms 0.99x
                desk_booking.skp_1_mpd  4.1ms ->    4ms 0.98x
                     desk_carsvg.skp_1 18.2ms -> 17.7ms 0.97x
            desk_gmailthread.skp_1_mpd 2.81ms -> 2.73ms 0.97x
               desk_tigersvg.skp_1_mpd 19.5ms -> 18.9ms 0.97x
                     desk_mapsvg.skp_1 88.4ms -> 85.6ms 0.97x
                   tabl_cnet.skp_1_mpd 1.43ms -> 1.38ms 0.97x
             desk_jsfiddlebigcar.skp_1 1.26ms -> 1.22ms 0.96x
                        desk_gws.skp_1 1.87ms ->  1.8ms 0.96x
                   desk_linkedin.skp_1 2.07ms -> 1.98ms 0.96x
             tabl_deviantart.skp_1_mpd  118ms ->  113ms 0.96x
                       tabl_cnet.skp_1  1.2ms -> 1.14ms 0.95x
          tabl_androidpolice.skp_1_mpd 5.95ms -> 5.63ms 0.95x
                     desk_sfgate.skp_1 1.75ms -> 1.64ms 0.94x
                    desk_twitter.skp_1   74ms -> 69.6ms 0.94x
                desk_youtube.skp_1_mpd 3.17ms -> 2.96ms 0.93x
                desk_gmailthread.skp_1 2.73ms -> 2.54ms 0.93x
            desk_silkfinance.skp_1_mpd 1.71ms -> 1.59ms 0.93x
         desk_jsfiddlebigcar.skp_1_mpd 1.45ms -> 1.35ms 0.93x
            desk_pokemonwiki.skp_1_mpd 2.72ms -> 2.51ms 0.92x
                    desk_gws.skp_1_mpd 2.14ms -> 1.98ms 0.92x
                 desk_googlehome.skp_1  563us ->  517us 0.92x
                       desk_espn.skp_1 4.24ms -> 3.89ms 0.92x
          tabl_culturalsolutions.skp_1 12.7ms -> 11.6ms 0.91x
                 desk_sfgate.skp_1_mpd 1.91ms -> 1.74ms 0.91x
                       tabl_hsfi.skp_1 1.06ms ->  966us 0.91x
               desk_samoasvg.skp_1_mpd 10.5ms -> 9.47ms 0.91x
               desk_facebook.skp_1_mpd  3.8ms -> 3.43ms 0.9x
                    desk_youtube.skp_1 3.52ms -> 3.14ms 0.89x
                   desk_ebay.skp_1_mpd 2.95ms -> 2.62ms 0.89x
                   desk_samoasvg.skp_1 10.9ms -> 9.66ms 0.89x
      desk_googlespreadsheet.skp_1_mpd 5.59ms -> 4.94ms 0.88x
                 desk_mapsvg.skp_1_mpd  100ms -> 87.9ms 0.88x
                   desk_espn.skp_1_mpd  4.7ms -> 4.12ms 0.88x
              desk_wordpress.skp_1_mpd 1.92ms -> 1.68ms 0.87x
                 tabl_deviantart.skp_1  140ms ->  122ms 0.87x
           tabl_cuteoverload.skp_1_mpd 4.41ms -> 3.83ms 0.87x
                   desk_tigersvg.skp_1 19.6ms ->   17ms 0.87x
             tabl_googlecalendar.skp_1 4.01ms -> 3.44ms 0.86x
                    desk_blogger.skp_1 2.49ms -> 2.14ms 0.86x
             desk_chalkboard.skp_1_mpd 52.7ms ->   45ms 0.85x
                    desk_weather.skp_1 2.88ms -> 2.46ms 0.85x
                 desk_chalkboard.skp_1   51ms -> 43.4ms 0.85x
               desk_yahooanswers.skp_1 2.74ms -> 2.32ms 0.85x
             desk_forecastio.skp_1_mpd 1.26ms -> 1.07ms 0.85x
              tabl_androidpolice.skp_1 5.18ms -> 4.34ms 0.84x
           desk_yahooanswers.skp_1_mpd 3.44ms -> 2.85ms 0.83x
                    tabl_cnn.skp_1_mpd 2.59ms -> 2.15ms 0.83x
                  desk_pinterest.skp_1 2.69ms -> 2.22ms 0.83x
                   tabl_hsfi.skp_1_mpd  1.6ms -> 1.32ms 0.82x
      tabl_culturalsolutions.skp_1_mpd 13.8ms -> 11.3ms 0.82x
                desk_twitter.skp_1_mpd 76.6ms ->   63ms 0.82x
                       desk_ebay.skp_1 3.11ms -> 2.51ms 0.81x
                    tabl_mlb.skp_1_mpd 3.17ms -> 2.53ms 0.8x
                    tabl_mozilla.skp_1 2.42ms -> 1.91ms 0.79x
                desk_pokemonwiki.skp_1 2.84ms -> 2.22ms 0.78x
                 desk_carsvg.skp_1_mpd 23.3ms -> 17.8ms 0.77x
                    desk_wowwiki.skp_1 4.21ms -> 3.21ms 0.76x
                     desk_amazon.skp_1  963us ->  728us 0.76x
              desk_css3gradients.skp_1 2.58ms -> 1.92ms 0.74x
               tabl_cuteoverload.skp_1 4.55ms -> 3.38ms 0.74x
                        tabl_cnn.skp_1 3.13ms -> 2.29ms 0.73x
             tabl_googleblog.skp_1_mpd 2.32ms ->  1.7ms 0.73x
                 desk_mobilenews.skp_1 3.65ms -> 2.61ms 0.71x
                 desk_googleplus.skp_1 3.76ms -> 2.66ms 0.71x
                tabl_mozilla.skp_1_mpd 2.88ms -> 2.03ms 0.71x
              desk_pinterest.skp_1_mpd 3.17ms -> 2.21ms 0.7x
          desk_css3gradients.skp_1_mpd 2.98ms -> 2.07ms 0.69x
                desk_silkfinance.skp_1 2.06ms -> 1.42ms 0.69x
                   desk_facebook.skp_1  4.5ms -> 3.07ms 0.68x
             desk_mobilenews.skp_1_mpd 4.05ms -> 2.73ms 0.68x
                  desk_baidu.skp_1_mpd 2.73ms -> 1.81ms 0.66x
                desk_weather.skp_1_mpd 3.93ms ->  2.5ms 0.64x
                  desk_wordpress.skp_1 2.15ms -> 1.36ms 0.63x
             desk_googlehome.skp_1_mpd 1.02ms ->  605us 0.59x
                   desk_fontwipe.skp_1  722us ->  402us 0.56x
               desk_fontwipe.skp_1_mpd  897us ->  486us 0.54x
                      desk_baidu.skp_1 3.02ms ->  1.6ms 0.53x
                 desk_forecastio.skp_1 2.01ms ->  999us 0.5x
                 desk_amazon.skp_1_mpd 1.77ms ->  860us 0.49x

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/7e225bdb1f00ae4aed524ff8d0a61df3d3abb109

Review URL: https://codereview.chromium.org/743613005

9 years agocull edges that are to the right of the clip
reed [Mon, 9 Feb 2015 16:33:07 +0000 (08:33 -0800)]
cull edges that are to the right of the clip

BUG=skia:

Review URL: https://codereview.chromium.org/913503002

9 years agoadd rounded-join option to bigpath bench
reed [Mon, 9 Feb 2015 16:05:52 +0000 (08:05 -0800)]
add rounded-join option to bigpath bench

BUG=skia:
TBR=
NOTRY=True
... win bot offline

Review URL: https://codereview.chromium.org/909893002

9 years agoRevert of Make the glyph array entries inline. (patchset #11 id:190001 of https:...
mtklein [Mon, 9 Feb 2015 15:52:51 +0000 (07:52 -0800)]
Revert of Make the glyph array entries inline. (patchset #11 id:190001 of https://codereview.chromium.org/885903002/)

Reason for revert:
Still broken.

Original issue's description:
> Make the glyph array entries inline.
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1
>
> Committed: https://skia.googlesource.com/skia/+/b4c29ac173e6f8844327338687248b98bc94132d

TBR=reed@google.com,herb@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/911513003

9 years agoMove GrXferProcessor subclasses into cpp files
egdaniel [Mon, 9 Feb 2015 15:51:00 +0000 (07:51 -0800)]
Move GrXferProcessor subclasses into cpp files

BUG=skia:

Review URL: https://codereview.chromium.org/860383007

9 years agoSalvage the SampleApp portion of the ill-fated "nudge" CL
robertphillips [Mon, 9 Feb 2015 15:47:17 +0000 (07:47 -0800)]
Salvage the SampleApp portion of the ill-fated "nudge" CL

Trying a different approach than nudging but this will still be useful.

Review URL: https://codereview.chromium.org/907453004

9 years agoskoodle1
jcgregorio [Mon, 9 Feb 2015 15:26:56 +0000 (07:26 -0800)]
skoodle1

Preview: https://skia.org/?cl=864643007

BUG=skia:

Review URL: https://codereview.chromium.org/864643007

9 years agoRemove unnecessary assignment
qiankun.miao [Mon, 9 Feb 2015 15:08:05 +0000 (07:08 -0800)]
Remove unnecessary assignment

BUG=skia:

Review URL: https://codereview.chromium.org/892423005

9 years agoMake the glyph array entries inline.
herb [Mon, 9 Feb 2015 14:38:28 +0000 (06:38 -0800)]
Make the glyph array entries inline.
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/4c08f16b252a55e438a61f26e5581394ed177da1

Review URL: https://codereview.chromium.org/885903002

9 years agoUpdate SKP version
skia.buildbots [Mon, 9 Feb 2015 06:35:14 +0000 (22:35 -0800)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/889693004

9 years agoRemove opaque versions of Color32_D565
henrik.smiding [Mon, 9 Feb 2015 00:03:27 +0000 (16:03 -0800)]
Remove opaque versions of Color32_D565

Removes the opaque-only versions of this function from the factory since
they will never be used. Opaque source colors are handled in
SkRGB16_Opaque_Blitter instead, which doesn't use the factory function.

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>
Review URL: https://codereview.chromium.org/901593002

9 years agoturns out the newlines matter
Mike Klein [Sun, 8 Feb 2015 23:48:55 +0000 (18:48 -0500)]
turns out the newlines matter

BUG=skia:

Review URL: https://codereview.chromium.org/886913004

9 years agoone day i will bother to look at the markdown rendering
Mike Klein [Sun, 8 Feb 2015 23:36:19 +0000 (18:36 -0500)]
one day i will bother to look at the markdown rendering

BUG=skia:

Review URL: https://codereview.chromium.org/908783002

9 years agodocumentation: formatting site/dev/contrib/c++11
halcanary [Sun, 8 Feb 2015 15:09:22 +0000 (07:09 -0800)]
documentation: formatting site/dev/contrib/c++11

TBR=mtklein@chromium.org

NOTRY=true

Review URL: https://codereview.chromium.org/891603003

9 years agoUpdate SKP version
skia.buildbots [Sun, 8 Feb 2015 06:39:11 +0000 (22:39 -0800)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/906033002

9 years agoFaster edge re-sort
reed [Sat, 7 Feb 2015 20:18:41 +0000 (12:18 -0800)]
Faster edge re-sort

For now, disable dropping trailing edges

This reverts commit 0692c5f2c1df7d1b66c62025200dd666f9ecd311.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/882733004

9 years agoUpdate SKP version
skia.buildbots [Sat, 7 Feb 2015 07:03:26 +0000 (23:03 -0800)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/898303004

9 years agoRevert of Faster edge re-sort, drop trailing edges (patchset #2 id:20001 of https...
reed [Sat, 7 Feb 2015 05:08:33 +0000 (21:08 -0800)]
Revert of Faster edge re-sort, drop trailing edges (patchset #2 id:20001 of https://codereview.chromium.org/907623002/)

Reason for revert:
still layout failures

Original issue's description:
> Faster edge re-sort, drop trailing edges
>
> (patchset #4 id:60001 of https://codereview.chromium.org/891613003/)"
>
> This reverts commit c319d075eab86cacfd7aba27859b72bbf8fc0a64.
>
> BUG=skia:
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/2322115952c15c72a623837879cac1f85894b1b6

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

Review URL: https://codereview.chromium.org/886503010

9 years agoFaster edge re-sort, drop trailing edges
reed [Sat, 7 Feb 2015 03:29:15 +0000 (19:29 -0800)]
Faster edge re-sort, drop trailing edges

(patchset #4 id:60001 of https://codereview.chromium.org/891613003/)"

This reverts commit c319d075eab86cacfd7aba27859b72bbf8fc0a64.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/907623002

9 years agoRevert of faster edge re-sort, drop trailing edges (patchset #4 id:60001 of https...
reed [Sat, 7 Feb 2015 02:07:39 +0000 (18:07 -0800)]
Revert of faster edge re-sort, drop trailing edges (patchset #4 id:60001 of https://codereview.chromium.org/891613003/)

Reason for revert:
may be breaking layouttests...

Original issue's description:
> faster edge re-sort, drop trailing edges
>
> 1. drop edges that are wholly on the right (in the non-convex walker)
> 2. scan and swap once, instead of swapping as we go during re-sort
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/38f1c00772539dcbeccbfa3c45d94bdc4acf3518

TBR=caryclark@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/910493002

9 years agosimple fix to close batches on anything push to the GrIODB recorder
joshualitt [Fri, 6 Feb 2015 23:53:59 +0000 (15:53 -0800)]
simple fix to close batches on anything push to the GrIODB recorder

BUG=skia:

Review URL: https://codereview.chromium.org/865153005

9 years agofaster edge re-sort, drop trailing edges
reed [Fri, 6 Feb 2015 22:18:46 +0000 (14:18 -0800)]
faster edge re-sort, drop trailing edges

1. drop edges that are wholly on the right (in the non-convex walker)
2. scan and swap once, instead of swapping as we go during re-sort

BUG=skia:

Review URL: https://codereview.chromium.org/891613003

9 years agoadd bench for very big paths
reed [Fri, 6 Feb 2015 21:04:16 +0000 (13:04 -0800)]
add bench for very big paths

BUG= 455429
TBR=

Review URL: https://codereview.chromium.org/909563002

9 years agoAdd SkSVGCanvas
fmalita [Fri, 6 Feb 2015 20:51:10 +0000 (12:51 -0800)]
Add SkSVGCanvas

Add a public SVG canvas factory + move the SVG files from
experimental -> src/svg/.

Update current clients to the new API.

R=reed@google.com, mtklein@google.com, halcanary@google.com

Review URL: https://codereview.chromium.org/902583006

9 years agoReimplement gpu message bus for invalidated bitmap gen IDs
bsalomon [Fri, 6 Feb 2015 19:54:28 +0000 (11:54 -0800)]
Reimplement gpu message bus for invalidated bitmap gen IDs

Review URL: https://codereview.chromium.org/902873002

9 years agoOne createTexture function, attempt to recycle scratch in createTexture.
bsalomon [Fri, 6 Feb 2015 16:49:24 +0000 (08:49 -0800)]
One createTexture function, attempt to recycle scratch in createTexture.

Review URL: https://codereview.chromium.org/864383003

9 years agoMove SVG parser files under {include,src}/svg/parser/
fmalita [Fri, 6 Feb 2015 16:43:51 +0000 (08:43 -0800)]
Move SVG parser files under {include,src}/svg/parser/

R=reed@google.com

Review URL: https://codereview.chromium.org/884713007

9 years agoRename SkCanvasDrawable to SkDrawable, and make public
reed [Fri, 6 Feb 2015 16:36:15 +0000 (08:36 -0800)]
Rename SkCanvasDrawable to SkDrawable, and make public

 (patchset #2 id:20001 of https://codereview.chromium.org/903993002/)"

This reverts commit c4e87724920222a218f31b22612efc5b1ec0ed6c.

BUG=skia:
TBR=
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/898343004

9 years agoRevert of rename SkCanvasDrawable to SkDrawable, and make public (patchset #2 id...
reed [Fri, 6 Feb 2015 16:20:07 +0000 (08:20 -0800)]
Revert of rename SkCanvasDrawable to SkDrawable, and make public (patchset #2 id:20001 of https://codereview.chromium.org/903993002/)

Reason for revert:
bug in gyp

Original issue's description:
> rename SkCanvasDrawable to SkDrawable, and make public
>
> BUG=skia:
> NOTRY=True
> ... winbuilder flake
>
> Committed: https://skia.googlesource.com/skia/+/4ae9eb7463cf2160723407359608f221c0d5e2a6

TBR=robertphillips@google.com,djsollen@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/882853006

9 years agorename SkCanvasDrawable to SkDrawable, and make public
reed [Fri, 6 Feb 2015 16:02:57 +0000 (08:02 -0800)]
rename SkCanvasDrawable to SkDrawable, and make public

BUG=skia:
NOTRY=True
... winbuilder flake

Review URL: https://codereview.chromium.org/903993002

9 years agoAdd factory for Android font manager.
bungeman [Fri, 6 Feb 2015 15:59:19 +0000 (07:59 -0800)]
Add factory for Android font manager.

This allows users to create an Android font manager with their own set
of fonts, or augment the system set. This will allow for removal of
the current globals which are used for a similar, but more constained,
purpose.

BUG=skia:2817,skia:3314,chromium:407340

Review URL: https://codereview.chromium.org/887113002

9 years agoRevert of Revert of Move DstCopy on gpu into the GrXferProcessor. (patchset #1 id...
bsalomon [Fri, 6 Feb 2015 15:02:37 +0000 (07:02 -0800)]
Revert of Revert of Move DstCopy on gpu into the GrXferProcessor. (patchset #1 id:1 of https://codereview.chromium.org/901663007/)

Reason for revert:
The revert didn't help the 10.9 bot. Unreverting by reverting the revert (which is basically relanding the original patch which itself was a revert of a revert). Revert.

Original issue's description:
> Revert of Move DstCopy on gpu into the GrXferProcessor. (patchset #11 id:200001 of https://codereview.chromium.org/885923002/)
>
> Reason for revert:
> Testing to see if reverting fixes 10.9 bots.
>
> Original issue's description:
> > Move DstCopy on gpu into the GrXferProcessor.
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/74a11753604768bf461b80cabb66060e8564d82c
> >
> > Committed: https://skia.googlesource.com/skia/+/5e1378d0e075a323144ba14e0a4cbcca35eccc69
>
> TBR=joshualitt@google.com,egdaniel@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/21b2c53218ab25f4268e3992e51d916076a2a7ee

TBR=joshualitt@google.com,egdaniel@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/873723009

9 years agoUpdate SKP version
skia.buildbots [Fri, 6 Feb 2015 07:00:16 +0000 (23:00 -0800)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/901403002

9 years agomigrate more samples over to SkAnimTImer
reed [Fri, 6 Feb 2015 06:02:37 +0000 (22:02 -0800)]
migrate more samples over to SkAnimTImer

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/901933004

9 years agoConvex batch
joshualitt [Thu, 5 Feb 2015 22:39:01 +0000 (14:39 -0800)]
Convex batch

BUG=skia:

Review URL: https://codereview.chromium.org/880643002

9 years agoRevert of Move DstCopy on gpu into the GrXferProcessor. (patchset #11 id:200001 of...
bsalomon [Thu, 5 Feb 2015 22:18:05 +0000 (14:18 -0800)]
Revert of Move DstCopy on gpu into the GrXferProcessor. (patchset #11 id:200001 of https://codereview.chromium.org/885923002/)

Reason for revert:
Testing to see if reverting fixes 10.9 bots.

Original issue's description:
> Move DstCopy on gpu into the GrXferProcessor.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/74a11753604768bf461b80cabb66060e8564d82c
>
> Committed: https://skia.googlesource.com/skia/+/5e1378d0e075a323144ba14e0a4cbcca35eccc69

TBR=joshualitt@google.com,egdaniel@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/901663007

9 years agowhitespace
joshualitt [Thu, 5 Feb 2015 21:55:34 +0000 (13:55 -0800)]
whitespace

NOTRY=True
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/881413006

9 years agoMove DstCopy on gpu into the GrXferProcessor.
egdaniel [Thu, 5 Feb 2015 19:11:13 +0000 (11:11 -0800)]
Move DstCopy on gpu into the GrXferProcessor.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/74a11753604768bf461b80cabb66060e8564d82c

Review URL: https://codereview.chromium.org/885923002

9 years agoDocument my current understanding of C++11 in Skia.
mtklein [Thu, 5 Feb 2015 18:58:48 +0000 (10:58 -0800)]
Document my current understanding of C++11 in Skia.

BUG=skia:

Review URL: https://codereview.chromium.org/901053007

9 years agoGM for http://skbug.com/3398
halcanary [Thu, 5 Feb 2015 18:26:27 +0000 (10:26 -0800)]
GM for http://skbug.com/3398

BUG=skia:3398

Review URL: https://codereview.chromium.org/896093005

9 years agoTry again to use a C++11 feature in DM as a canary.
mtklein [Thu, 5 Feb 2015 17:53:44 +0000 (09:53 -0800)]
Try again to use a C++11 feature in DM as a canary.

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu13.10-GCC4.8-NaCl-Release-Trybot,Build-Mac10.7-Clang-Arm7-Debug-iOS-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/898863003

9 years agoBuild in C++11 mode on Unix-like bots.
mtklein [Thu, 5 Feb 2015 17:23:56 +0000 (09:23 -0800)]
Build in C++11 mode on Unix-like bots.

Mac and Windows bots are already building in C++11 mode.
This turns on the rest, mostly to see what work remains.

This will probably break a few bots.  It'd be nice if we could let those
all come in as red before reverting this so I can see the full list to fix.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/779e49602a9c8f4d2799504822e01bcafbcaa534

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu13.10-GCC4.8-NaCl-Release-Trybot,Build-Mac10.7-Clang-Arm7-Debug-iOS-Trybot

Review URL: https://codereview.chromium.org/868233008

9 years agoSuppress another FontConfig 'leak'.
bungeman [Thu, 5 Feb 2015 17:11:46 +0000 (09:11 -0800)]
Suppress another FontConfig 'leak'.

FontConfig uses offsets for elements instead of pointers, so any value
held by an element goes missing from memory checkers. Previous
suppressions took care of rule copies and adds to elements, but value
lists may be copied as well. When they are, values are copied, including
the content of strings and matricies. Since value lists are effectively
like Fc*Add functions (even calling the same underlying helpers), treat
them as such and suppress any 'leaks' they may cause.

Review URL: https://codereview.chromium.org/894863003

9 years agoBUG=skia:
joshualitt [Thu, 5 Feb 2015 16:19:35 +0000 (08:19 -0800)]
BUG=skia:

Review URL: https://codereview.chromium.org/894693003

9 years agoUpdate SKP version
skia.buildbots [Thu, 5 Feb 2015 06:55:44 +0000 (22:55 -0800)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/901153002

9 years agoFix GIF transparency.
jei.mayol [Thu, 5 Feb 2015 05:31:23 +0000 (21:31 -0800)]
Fix GIF transparency.

The GIF decoder, in the onDecode() function, tries to obtain the
transparency info from the temporary SavedImage object, temp_save,
but the decoder had been changed to save extension block data to
the GifFileType object instead. As a result, find_transpIndex() can't
find the correct transaprency index and returns -1.

This had been reported in Android 4.4. AOSP pulled skia changes
related to giflib 5.x changes after Android 4.3, which is why
the problem is not reproducible in versions before KitKat.

AOSP Issue 62016:
https://code.google.com/p/android/issues/detail?id=62016

BUG=skia:

Review URL: https://codereview.chromium.org/429053004

9 years agoforce a build
mtklein [Thu, 5 Feb 2015 03:52:16 +0000 (19:52 -0800)]
force a build

BUG=skia:
NOTRY=true
TBR=

Review URL: https://codereview.chromium.org/899503002

9 years agoadd length parameter to addText, to match attr values
reed [Thu, 5 Feb 2015 02:29:27 +0000 (18:29 -0800)]
add length parameter to addText, to match attr values

BUG=skia:3392

Review URL: https://codereview.chromium.org/896363002

9 years ago[SkSVGDevice] drawTextOnPath() support
fmalita [Thu, 5 Feb 2015 01:54:46 +0000 (17:54 -0800)]
[SkSVGDevice] drawTextOnPath() support

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

Review URL: https://codereview.chromium.org/874853003

9 years ago[SkSVGDevice] Add support for more stroke params
fmalita [Wed, 4 Feb 2015 22:56:35 +0000 (14:56 -0800)]
[SkSVGDevice] Add support for more stroke params

stroke-linecap, stroke-linejoin, stroke-miterlimit, non-scaling-stroke.

R=mtklein@google.com

Review URL: https://codereview.chromium.org/897953004

9 years agoMore cleanup around GrContext, textures, and SkGr.cpp
bsalomon [Wed, 4 Feb 2015 18:55:54 +0000 (10:55 -0800)]
More cleanup around GrContext, textures, and SkGr.cpp

Review URL: https://codereview.chromium.org/880983008

9 years agoNo more caching volatile bitmaps
sugoi [Wed, 4 Feb 2015 18:53:03 +0000 (10:53 -0800)]
No more caching volatile bitmaps

VideoFrames are always marked as volatile and load_yuv_texture() was caching everything, even volatile bitmaps. To solve this issue, we no longer cache volatile bitmaps' YUV planes in load_yuv_texture().

There is another issue which cause this to happen, related to how VideoImageGenerator::onGetYUV8Planes() is implemented, which is logged here: crbug.com/455235

BUG=450706, 450699

Review URL: https://codereview.chromium.org/900943002

9 years agoFix casting bug in GrArithmeticXP
egdaniel [Wed, 4 Feb 2015 17:22:33 +0000 (09:22 -0800)]
Fix casting bug in GrArithmeticXP

BUG=skia:

Review URL: https://codereview.chromium.org/858373006

9 years agoMake npot resizing work properly for bmps that are explicitly texture backed.
bsalomon [Wed, 4 Feb 2015 17:12:46 +0000 (09:12 -0800)]
Make npot resizing work properly for bmps that are explicitly texture backed.

Review URL: https://codereview.chromium.org/890223003

9 years agoreturn reference to cache instead of copying the mask
reed [Wed, 4 Feb 2015 17:07:17 +0000 (09:07 -0800)]
return reference to cache instead of copying the mask

BUG=437128

Review URL: https://codereview.chromium.org/889303005

9 years ago[SkSVGDevice] Initial clipping support
fmalita [Wed, 4 Feb 2015 15:39:34 +0000 (07:39 -0800)]
[SkSVGDevice] Initial clipping support

Implement SVG clips based on clip stack flattening -
which is now exposed in SkClipStack::asPath() and shared
with SkCanvas's simplify-clip code.

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

Review URL: https://codereview.chromium.org/876923003

9 years agoRevert of Build in C++11 mode on Unix-like bots. (patchset #4 id:60001 of https:...
mtklein [Wed, 4 Feb 2015 15:06:26 +0000 (07:06 -0800)]
Revert of Build in C++11 mode on Unix-like bots. (patchset #4 id:60001 of https://codereview.chromium.org/868233008/)

Reason for revert:
Perf-Ubuntu12, and Test-Ubuntu12, Build-Nacl  all too old.

Android and Chrome OS builders look ok.
Android testers look ok.  Chrome OS testers haven't run yet.

Original issue's description:
> Build in C++11 mode on Unix-like bots.
>
> Mac and Windows bots are already building in C++11 mode.
> This turns on the rest, mostly to see what work remains.
>
> This will probably break a few bots.  It'd be nice if we could let those
> all come in as red before reverting this so I can see the full list to fix.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/779e49602a9c8f4d2799504822e01bcafbcaa534

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

Review URL: https://codereview.chromium.org/879803003

9 years agoBuild in C++11 mode on Unix-like bots.
mtklein [Wed, 4 Feb 2015 14:55:36 +0000 (06:55 -0800)]
Build in C++11 mode on Unix-like bots.

Mac and Windows bots are already building in C++11 mode.
This turns on the rest, mostly to see what work remains.

This will probably break a few bots.  It'd be nice if we could let those
all come in as red before reverting this so I can see the full list to fix.

BUG=skia:

Review URL: https://codereview.chromium.org/868233008

9 years agoRevert "Move DstCopy on gpu into the GrXferProcessor."
egdaniel [Wed, 4 Feb 2015 14:25:28 +0000 (06:25 -0800)]
Revert "Move DstCopy on gpu into the GrXferProcessor."

This reverts commit 74a11753604768bf461b80cabb66060e8564d82c.

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

Committed: https://skia.googlesource.com/skia/+/3e9dfdb3784c0cbfecf7589a74aa9aff7ef40abd

Review URL: https://codereview.chromium.org/896163003

9 years agoRevert of Revert "Move DstCopy on gpu into the GrXferProcessor." (patchset #1 id...
egdaniel [Wed, 4 Feb 2015 14:20:25 +0000 (06:20 -0800)]
Revert of Revert "Move DstCopy on gpu into the GrXferProcessor." (patchset #1 id:1 of https://codereview.chromium.org/896163003/)

Reason for revert:
failed on my manual revert

Original issue's description:
> Revert "Move DstCopy on gpu into the GrXferProcessor."
>
> This reverts commit 74a11753604768bf461b80cabb66060e8564d82c.
>
> TBR=joshualitt@google.com,bsalomon@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3e9dfdb3784c0cbfecf7589a74aa9aff7ef40abd

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

Review URL: https://codereview.chromium.org/900913002

9 years agoRevert "Move DstCopy on gpu into the GrXferProcessor."
egdaniel [Wed, 4 Feb 2015 14:14:22 +0000 (06:14 -0800)]
Revert "Move DstCopy on gpu into the GrXferProcessor."

This reverts commit 74a11753604768bf461b80cabb66060e8564d82c.

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

Review URL: https://codereview.chromium.org/896163003

9 years agoFix the URL for previewing Markdown changes.
tfarina [Wed, 4 Feb 2015 14:05:58 +0000 (06:05 -0800)]
Fix the URL for previewing Markdown changes.

BUG=None
R=jcgregorio@google.com
NOTRY=true

Review URL: https://codereview.chromium.org/883003004

9 years agoUpdate SKP version
skia.buildbots [Wed, 4 Feb 2015 07:27:08 +0000 (23:27 -0800)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/876313006

9 years agoRemove unused and unimplemented abstract functions from GrRenderTarget
kkinnunen [Wed, 4 Feb 2015 06:20:19 +0000 (22:20 -0800)]
Remove unused and unimplemented abstract functions from GrRenderTarget

Remove unused and unimplemented abstract functions from GrRenderTarget.
The functions might cause confusion later.

BUG=skia:3388

Review URL: https://codereview.chromium.org/865603007

9 years ago[SkSVGDevice] Initial text support
fmalita [Wed, 4 Feb 2015 01:47:12 +0000 (17:47 -0800)]
[SkSVGDevice] Initial text support

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

Review URL: https://codereview.chromium.org/899683002

9 years agofixing GrBatch leak
joshualitt [Wed, 4 Feb 2015 01:40:16 +0000 (17:40 -0800)]
fixing GrBatch leak

TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/886393008

9 years agoHairline batch
joshualitt [Wed, 4 Feb 2015 00:41:41 +0000 (16:41 -0800)]
Hairline batch

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/6eff8701f027016fbb3147412ec2292dcec2b7f5

Committed: https://skia.googlesource.com/skia/+/658d55cd6121c67488aaf5d0832c9712737f26a5

Review URL: https://codereview.chromium.org/876673002

9 years agoDash using vertex attributes for interval and stroke width
joshualitt [Tue, 3 Feb 2015 23:07:51 +0000 (15:07 -0800)]
Dash using vertex attributes for interval and stroke width

BUG=skia:

Review URL: https://codereview.chromium.org/892203003

9 years agoCleanup the android scripts.
djsollen [Tue, 3 Feb 2015 23:07:30 +0000 (15:07 -0800)]
Cleanup the android scripts.

Rename a few files to make their function clearer.
Update other files to remove dead code or improve function.

Review URL: https://codereview.chromium.org/865943007

9 years agoMove DstCopy on gpu into the GrXferProcessor.
egdaniel [Tue, 3 Feb 2015 23:02:43 +0000 (15:02 -0800)]
Move DstCopy on gpu into the GrXferProcessor.

BUG=skia:

Review URL: https://codereview.chromium.org/885923002

9 years agoadd textual overview
reed [Tue, 3 Feb 2015 23:02:24 +0000 (15:02 -0800)]
add textual overview

BUG=skia:

Review URL: https://codereview.chromium.org/898573002

9 years agoPort SkRefCnt.h to new SkAtomics.h
mtklein [Tue, 3 Feb 2015 21:38:58 +0000 (13:38 -0800)]
Port SkRefCnt.h to new SkAtomics.h

This adds sk_memory_barrier(), implemented using sk_atomic_fetch_add() on an uninitialized variable.  If that becomes a problem we can drop this to the porting layer, using std::atomic_thread_fence() / __atomic_thread_fence() / __sync_synchronize().

The big win is that ref() doesn't generate a memory barrier any more on ARM.
This is an instance of SkSafeRef() in SkPaint(const SkPaint&) after this CL:
     4d0:       684a            ldr     r2, [r1, #4]
     4d2:       6018            str     r0, [r3, #0]
     4d4:       b13a            cbz     r2, 4e6 <_ZN7SkPaintC1ERKS_+0x2e>
     4d6:       1d10            adds    r0, r2, #4
     4d8:       e850 4f00       ldrex   r4, [r0]
     4dc:       3401            adds    r4, #1
     4de:       e840 4500       strex   r5, r4, [r0]
     4e2:       2d00            cmp     r5, #0
     4e4:       d1f8            bne.n   4d8 <_ZN7SkPaintC1ERKS_+0x20>

Here's the before,  pretty much the same with two memory barriers surrounding the ref():
     4d8:       684a            ldr     r2, [r1, #4]
     4da:       6018            str     r0, [r3, #0]
     4dc:       b15a            cbz     r2, 4f6 <_ZN7SkPaintC1ERKS_+0x3e>
     4de:       1d10            adds    r0, r2, #4
     4e0:       f3bf 8f5f       dmb     sy
     4e4:       e850 4f00       ldrex   r4, [r0]
     4e8:       3401            adds    r4, #1
     4ea:       e840 4500       strex   r5, r4, [r0]
     4ee:       2d00            cmp     r5, #0
     4f0:       d1f8            bne.n   4e4 <_ZN7SkPaintC1ERKS_+0x2c>
     4f2:       f3bf 8f5f       dmb     sy

The miscellaneous files in here are just fixups to explicitly include SkMutex.h,
instead of leeching it off SkRefCnt.h.

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

Build trybots seem hosed.
NOTRY=true

BUG=skia:

Review URL: https://codereview.chromium.org/896803002