Commit Graph

17455 Commits

Author SHA1 Message Date
cdalton
9a70920db2 Implement Porter Duff XP with a blend table
Removes the runtime logic used by PorterDuffXferProcessor to decide
blend coeffs and shader outputs, and instead uses a compile-time
constant table of pre-selected blend formulas.

Introduces a new blend strategy for srcCoeff=0 that can apply coverage
with a reverse subtract blend equation instead of dual source
blending.

Adds new macros in GrBlend.h to analyze blend formulas both runtime.

Removes kSetCoverageDrawing_OptFlag and GrSimplifyBlend as they are no
longer used.

Adds a GM that verifies all xfermodes, including arithmetic, with the
color/coverage invariants used by Porter Duff.

Adds a unit test that verifies each Porter Duff formula with every
color/coverage invariant.

Major changes:

 * Uses a reverse subtract blend equation for coverage when srcCoeff=0
   (clear, dst-out [Sa=1], dst-in, modulate). Platforms that don't
   support dual source blending no longer require a dst copy for
   dst-in and modulate.

 * Sets BlendInfo::fWriteColor to false when the blend does not modify
   the dst. GrGLGpu will now use glColorMask instead of blending for
   these modes (dst, dst-in [Sa=1], modulate ignored for [Sc=1]).

 * Converts all SA blend coeffs to One for opaque inputs, and ISA to
   Zero if there is also no coverage. (We keep ISA around when there
   is coverage because we use it to tweak alpha for coverage.)

 * Abandons solid white optimizations for the sake of simplicity
   (screen was the only mode that previous had solid white opts).

Minor differences:

 * Inconsequential differences in opt flags (e.g. we now return
   kCanTweakAlphaForCoverage_OptFlag even when there is no coverage).

 * Src coeffs when the shader outputs 0.

 * IS2C vs IS2A when the secondary output is scalar.

BUG=skia:

Review URL: https://codereview.chromium.org/1124373002
2015-05-22 11:36:57 -07:00
joshualitt
2a97c55ae3 Trivial patch to set a max lookback on reordering
BUG=skia:

Review URL: https://codereview.chromium.org/1150253003
2015-05-22 11:19:44 -07:00
stephana
c9b8276bc9 BUG=skia:
NOTRY=true
TBR=borenet

Review URL: https://codereview.chromium.org/1153783003
2015-05-22 10:55:33 -07:00
mtklein
27c2b09374 Move Sk4px Xfermode code to a header so we can use it twice.
- Once in SkXfermode as usual to pick up compile-time SSE and NEON
  - Once in SkXfermode_arm_neon to pick up run-time NEON

This allows us to start cleaning up SkXfermode_arm_neon as we've done
for SkXfermode_SSE2.  I'm saving this catharsis for a day when I need it.

The Sk4px xfermodes are generally faster than the existing NEON procs,
so this should also have the side effect of a perf win there.

This means our new Plus-AA code works for runtime NEON too.
BUG=skia:3852

Review URL: https://codereview.chromium.org/1150313003
2015-05-22 10:54:39 -07:00
jcgregorio
92c9743d2d Add more detail on how DM checksums are done.
This will be linked to from Gold for image diffs that have
different digests but no pixel differences.

BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1151153005

Review URL: https://codereview.chromium.org/1151153005
2015-05-22 10:42:13 -07:00
bsalomon
424cc26add Remove init from GrGLContextInfo and caps classes
Make Gr*Caps, GrGLContext* noncopyable

Review URL: https://codereview.chromium.org/1153813002
2015-05-22 10:37:30 -07:00
reed
92fc2ae583 add SkPixmap and external locking to bitmaps
BUG=skia:

Review URL: https://codereview.chromium.org/1074983003
2015-05-22 08:06:22 -07:00
bsalomon
eb1cb5c5b5 rename GrDrawTargetCaps.h to GrCaps.h and move to include
Review URL: https://codereview.chromium.org/1135113005
2015-05-22 08:01:09 -07:00
bsalomon
706f08fbcb Move GrPath(Range) creation to ResourceProvider.
Review URL: https://codereview.chromium.org/1155593002
2015-05-22 07:35:58 -07:00
caryclark
a76b7a3b04 remove SK_LEGACY_STROKE_CURVES
The change in Chrome has been landed so this guard is no longer needed.

R=reed@google.com,fmalita@chromium.org
BUG=102411

Review URL: https://codereview.chromium.org/1157623003
2015-05-22 06:26:52 -07:00
mtklein
051a51ec32 Re-proc SkBlitRow::Color32 for ARM.
This is a spiritual revert of http://crrev.com/1104183004.

BUG=skia:

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

Review URL: https://codereview.chromium.org/1145283003
2015-05-22 06:08:29 -07:00
jvanverth
99babf2848 Further work on sRGB support.
Fix some caps.
Add framebuffer enum.

BUG=skia:3856

Review URL: https://codereview.chromium.org/1152563003
2015-05-22 06:06:40 -07:00
mtklein
3b8d9f776e Revert of Re-proc SkBlitRow::Color32 for ARM. (patchset #3 id:40001 of https://codereview.chromium.org/1145283003/)
Reason for revert:
http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_rel_device_ninja/builds/70016/steps/compile%20%28with%20patch%29/logs/stdio

Original issue's description:
> Re-proc SkBlitRow::Color32 for ARM.
>
> This is a spiritual revert of http://crrev.com/1104183004.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4e13a23d8f720e17660f26657b45b89fe4339004

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

Review URL: https://codereview.chromium.org/1157633003
2015-05-22 05:51:37 -07:00
kkinnunen
806236e797 Mark SkPaths created by GrContext fallback draw logic as volatile
GrContext draw functions (drawRect, drawRRect,...) fall back to
GrContext::drawPath for complex cases. Mark the argument SkPath
as volatile, since it is.

Progressions for nvprmsaa:
          tabl_androidpolice.skp_1	11.6ms -> 10.3ms	0.89x
                desk_twitter.skp_1	9.21ms -> 8.08ms	0.88x
                tabl_sahadan.skp_1	8.97ms -> 7.65ms	0.85x
              desk_wikipedia.skp_1	5.63ms ->  4.5ms	0.8x
                desk_booking.skp_1	11.5ms -> 8.87ms	0.77x
                   desk_ebay.skp_1	   7ms -> 5.37ms	0.77x

Makes rrects and rects go to "simple path" path cache (cached by contents).

No change for msaa, gpu.

BUG=skia:

Review URL: https://codereview.chromium.org/1150993002
2015-05-21 22:45:56 -07:00
mtklein
4e13a23d8f Re-proc SkBlitRow::Color32 for ARM.
This is a spiritual revert of http://crrev.com/1104183004.

BUG=skia:

Review URL: https://codereview.chromium.org/1145283003
2015-05-21 17:14:51 -07:00
joshualitt
5559ca2a18 Remove uniform view matrix from GrGLPrimitiveProcessor base class
BUG=skia:

Review URL: https://codereview.chromium.org/1151693005
2015-05-21 15:50:36 -07:00
mtklein
160d08cb01 Fix Plus
This makes Plus with AA ~3% slower.  Seems like a good deal.

GMs affected: mixed_xfermodes, the new one.

Based on https://codereview.chromium.org/1150833003/

Still TODO: NEON.  The new GM should show this.

BUG=skia:3852

Review URL: https://codereview.chromium.org/1156453002
2015-05-21 15:47:40 -07:00
reed
5a72c42952 remove unused SkBitmap::scrollRect API
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1154623002
2015-05-21 15:46:20 -07:00
ochang
3ece53ed30 Add mode validation to PtProcRec::init.
BUG=486946

Review URL: https://codereview.chromium.org/1142563003
2015-05-21 15:44:53 -07:00
mtklein
5a7cd87bd2 Clean up Sk4f xfermodes and covered _SSE2 xfermodes.
Before I get going on fixing Plus, it's nice to clear out the dead cruft.

BUG=skia:3852

Review URL: https://codereview.chromium.org/1150833003
2015-05-21 14:08:14 -07:00
stephana
18b72db6aa Temporarily disable nanobench to see what else is in the way of the bots going green.
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1147333002
2015-05-21 13:59:36 -07:00
Eric Boren
e59e1b22a3 Whitespace change to trigger builds
Two major things have happened:
1. Android bots split between more machines. This caused lots of
   congestion-related failures, leading to...
2. All buildslaves now use a single checkout for all of the builders
   that they run. This should give us far fewer problems when we have
   to re-download SKPs, toolchains, etc.

TBR=rmistry
BUG=skia:3835,3774

Review URL: https://codereview.chromium.org/1154603002
2015-05-21 16:19:22 -04:00
mtklein
7005a57c54 Add PlusMergesAA GM
C.f. https://crrev.com/1156453002/

BUG=skia:

Review URL: https://codereview.chromium.org/1149103003
2015-05-21 10:33:09 -07:00
cdalton
0edea2c8e7 Make mixed samples contingent on auxiliary extensions
Moves the cap for mixed samples into GrShaderCaps and does not enable
it unless we have support for both dual source blending and
multisample disable.

Creates a dedicated cap for multisample disable.

Reconfigures the mixed samples cap to indicate the collective
capability of three different extensions:

  GL_NV_framebuffer_mixed_samples
  GL_NV_sample_mask_override_coverage
  GL_EXT_raster_multisample

Imports tokens and procedures for GL_EXT_raster_multisample.

BUG=skia:

Review URL: https://codereview.chromium.org/1151793002
2015-05-21 08:27:44 -07:00
halcanary
e797d0de67 SkBlockMemoryStream implements peek()
Review URL: https://codereview.chromium.org/1146903004
2015-05-21 08:13:27 -07:00
jvanverth
fb5df43af8 Add RGBA half float texture format.
BUG=skia:3829

Review URL: https://codereview.chromium.org/1148243002
2015-05-21 08:12:27 -07:00
reed
ab8657722c add assert that the lock-count on pixelref is balanced
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1147153004
2015-05-21 06:29:05 -07:00
kkinnunen
b4a797f3aa Move font loading in gm tests and benches out of constructors
Constructing the gm tests and benches causes many calls to font loads.
This is visible as profiling samples in fontconfig and freetype on Linux
for all profiling runs of nanobench. This complicates analysis of
test-cases that are suspected of being slow due to font-related issues.

Move the font loading to GM::onOnceBeforeDraw and Benchmark::onPreDraw.
This way the code is not executed if the testcase does not match the
nanobench --match filter. This way the samples in font-related code are
more easy to identify as legitimate occurances caused by the testcase.

This should not cause differences in timings, because:
* Benchmark::preDraw / onPreDraw is defined to be run outside the timer
* GM::runAsBench is not enabled for any of the modified testcases. Also
  nanobench untimed warmup round should run the onOnceBeforeDraw.
  (and there are other GM::runAsBench gms already doing loading in
   onOnceBeforeDraw).

Changes the behavior:
In TextBench:
Before, the test would report two different gms with the same name if
the color emoji font was not loaded successfully.
After, the test always reports all tests as individual names.

Generally:
The errors from loading fonts now print inbetween each testcase, as
opposed to printing during construction phase. Sample output:
( 143/145 MB  1872) 14.7ms	8888 gm  quadclosepathResource /fonts/Funkster.ttf not a valid font.
( 160/160 MB  1831) 575µs	8888 gm  surfacenewResource /fonts/Funkster.ttf not a valid font.
( 163/165 MB  1816) 12.5ms	8888 gm  linepathResource /fonts/Funkster.ttf not a valid font.
( 263/411 MB  1493) 118ms	8888 gm  typefacestyles_kerningResource /fonts/Funkster.ttf not a valid font.
( 374/411 MB  1231) 7.16ms	565 gm  getpostextpathResource /fonts/Funkster.ttf not a valid font.
( 323/411 MB  1179) 4.92ms	565 gm  stringartResource /fonts/Funkster.ttf not a valid font.
( 347/493 MB   917) 191ms	565 gm  patch_gridResource /fonts/Funkster.ttf not a valid font.
( 375/493 MB   857) 23.9ms	gpu gm  clipdrawdrawCannot render path (0)
( 393/493 MB   706) 2.91ms	unit test  ParsePath------ png error IEND: CRC error
( 394/493 MB   584) 166ms	gpu gm  hairmodesResource /fonts/Funkster.ttf not a valid font.
Resource /fonts/Funkster.ttf not a valid font.
Resource /fonts/Funkster.ttf not a valid font.
...

Review URL: https://codereview.chromium.org/1144023002
2015-05-21 06:15:28 -07:00
kkinnunen
070e01056a Improve caching of special case paths in GrStencilAndCoverPathRenderer
Cache lines and oval paths in their own cache domains. Skia has many
hard-to-replace codepaths that create volatile paths out of lines or
ovals.

Results for amd64:
               desk_tigersvg.skp_1	3.06ms -> 3.07ms	1x
                   tabl_cnet.skp_1	 2.3ms ->  2.3ms	1x
                  desk_baidu.skp_1	8.99ms -> 8.98ms	1x
                desk_weather.skp_1	4.58ms -> 4.57ms	1x
               desk_samoasvg.skp_1	12.3ms -> 12.3ms	1x
            tabl_gamedeksiam.skp_1	15.8ms -> 15.7ms	1x
             desk_chalkboard.skp_1	14.9ms -> 14.9ms	1x
                 desk_mapsvg.skp_1	6.57ms -> 6.54ms	1x
              desk_wordpress.skp_1	 2.2ms -> 2.19ms	1x
               tabl_slashdot.skp_1	6.91ms -> 6.84ms	0.99x
               desk_linkedin.skp_1	 7.7ms -> 7.58ms	0.98x
      desk_googlespreadsheet.skp_1	58.7ms -> 57.7ms	0.98x
                  tabl_ukwsj.skp_1	7.67ms -> 7.53ms	0.98x
               tabl_engadget.skp_1	4.71ms -> 4.61ms	0.98x
                 desk_carsvg.skp_1	 116ms ->  114ms	0.98x
                tabl_nytimes.skp_1	3.71ms -> 3.61ms	0.97x
desk_googlespreadsheetdashed.skp_1	25.8ms -> 24.9ms	0.97x
                   tabl_hsfi.skp_1	 5.3ms ->  5.1ms	0.96x
               tabl_techmeme.skp_1	 2.9ms ->  2.8ms	0.96x
                    tabl_cnn.skp_1	6.88ms -> 6.62ms	0.96x
                   desk_espn.skp_1	9.12ms -> 8.64ms	0.95x
                    desk_gws.skp_1	5.15ms -> 4.88ms	0.95x
                  tabl_gspro.skp_1	4.48ms ->  4.2ms	0.94x
           desk_yahooanswers.skp_1	6.84ms ->  6.3ms	0.92x
                 tabl_pravda.skp_1	11.1ms -> 10.1ms	0.91x
                tabl_sahadan.skp_1	11.8ms -> 10.7ms	0.91x
                desk_wowwiki.skp_1	8.48ms -> 7.58ms	0.89x
             tabl_googleblog.skp_1	   6ms -> 5.34ms	0.89x
           tabl_worldjournal.skp_1	6.08ms -> 5.35ms	0.88x
                desk_booking.skp_1	15.3ms -> 13.4ms	0.88x
          tabl_androidpolice.skp_1	15.5ms -> 13.5ms	0.87x
                desk_twitter.skp_1	12.2ms -> 10.6ms	0.87x
                 tabl_nofolo.skp_1	5.49ms -> 4.76ms	0.87x
             desk_mobilenews.skp_1	  22ms -> 18.9ms	0.86x
             desk_forecastio.skp_1	9.47ms -> 8.05ms	0.85x
      tabl_culturalsolutions.skp_1	6.21ms -> 5.28ms	0.85x
                desk_youtube.skp_1	16.1ms -> 13.5ms	0.84x
                    tabl_mlb.skp_1	9.75ms -> 8.01ms	0.82x
                   tabl_digg.skp_1	 5.2ms -> 4.22ms	0.81x
                desk_blogger.skp_1	10.2ms -> 8.24ms	0.81x
            desk_gmailthread.skp_1	26.8ms -> 21.6ms	0.81x
             desk_googleplus.skp_1	10.5ms -> 8.39ms	0.8x
               tabl_frantzen.skp_1	4.55ms -> 3.58ms	0.79x
              desk_pinterest.skp_1	8.85ms -> 6.88ms	0.78x
                   desk_ebay.skp_1	10.5ms -> 8.15ms	0.77x
           tabl_transformice.skp_1	4.93ms ->  3.5ms	0.71x

Results for arm_v7_neon:
               desk_samoasvg.skp_1	13.9ms -> 14.6ms	1.05x
                 desk_mapsvg.skp_1	8.31ms -> 8.75ms	1.05x
             tabl_deviantart.skp_1	1.41ms -> 1.45ms	1.02x
                desk_weather.skp_1	 3.8ms -> 3.88ms	1.02x
                 desk_sfgate.skp_1	3.06ms ->  3.1ms	1.01x
          desk_css3gradients.skp_1	2.78ms -> 2.79ms	1x
                   desk_espn.skp_1	6.52ms -> 6.43ms	0.99x
                    desk_gws.skp_1	4.16ms -> 4.09ms	0.98x
                    tabl_cnn.skp_1	4.66ms -> 4.58ms	0.98x
                   tabl_hsfi.skp_1	3.49ms -> 3.42ms	0.98x
           tabl_cuteoverload.skp_1	2.41ms -> 2.35ms	0.98x
           desk_yahooanswers.skp_1	5.28ms -> 5.14ms	0.97x
                 desk_carsvg.skp_1	90.8ms -> 87.9ms	0.97x
                  tabl_gspro.skp_1	2.81ms -> 2.71ms	0.96x
                desk_wowwiki.skp_1	5.85ms -> 5.63ms	0.96x
                 tabl_pravda.skp_1	 7.8ms ->  7.5ms	0.96x
                desk_twitter.skp_1	8.14ms ->  7.8ms	0.96x
          tabl_androidpolice.skp_1	10.4ms -> 9.96ms	0.96x
             tabl_googleblog.skp_1	4.06ms -> 3.83ms	0.95x
             desk_mobilenews.skp_1	15.2ms ->   14ms	0.93x
                desk_booking.skp_1	9.89ms -> 9.08ms	0.92x
             desk_forecastio.skp_1	6.16ms -> 5.65ms	0.92x
                desk_blogger.skp_1	6.17ms -> 5.66ms	0.92x
                   tabl_digg.skp_1	3.73ms -> 3.41ms	0.91x
                 tabl_nofolo.skp_1	3.82ms -> 3.47ms	0.91x
           tabl_worldjournal.skp_1	4.24ms -> 3.84ms	0.9x
                desk_youtube.skp_1	10.5ms -> 9.39ms	0.9x
             desk_googleplus.skp_1	7.01ms -> 6.19ms	0.88x
                    tabl_mlb.skp_1	5.91ms -> 5.22ms	0.88x
         tabl_googlecalendar.skp_1	10.7ms -> 9.44ms	0.88x
            desk_gmailthread.skp_1	19.2ms -> 16.8ms	0.88x
                   desk_ebay.skp_1	5.68ms -> 4.93ms	0.87x
              desk_pinterest.skp_1	5.99ms -> 5.08ms	0.85x
             desk_googlehome.skp_1	3.31ms -> 2.71ms	0.82x
           tabl_transformice.skp_1	3.03ms -> 2.44ms	0.81x
                 desk_amazon.skp_1	6.05ms -> 4.84ms	0.8x
               desk_facebook.skp_1	12.6ms -> 9.62ms	0.76x

Review URL: https://codereview.chromium.org/1120023005
2015-05-21 00:37:30 -07:00
senorblanco
f2539d50f9 Use high precision vertex attributes.
Specifying vertex attributes and the view matrix as mediump causes bad artifacts on Mali T6XX.

Covered by the bigmatrix GM in msaa4 mode.

BUG:skia=3545,3771

Review URL: https://codereview.chromium.org/1145273002
2015-05-20 14:03:42 -07:00
reed
67ca2a93f9 purge imagefilter cache so we can better track leaks
BUG=skia:

Review URL: https://codereview.chromium.org/1148973002
2015-05-20 13:22:58 -07:00
reed
e12fcd5fff check for big sizes in NewData
BUG=486977

Review URL: https://codereview.chromium.org/1148873004
2015-05-20 13:06:00 -07:00
mtklein
76be9c8dc0 Don't serialize SkPictures in SkPictureShaders when in untrusted mode.
This requires we "first" add a has-picture bool to SkPictureShader serialized format.

BUG=chromium:486947, billions and billions of others.

Review URL: https://codereview.chromium.org/1151663002
2015-05-20 12:05:15 -07:00
robertphillips
364ad00446 Fix for bisector computation bug in GrAAConvexTessellator
Review URL: https://codereview.chromium.org/1151623002
2015-05-20 11:49:55 -07:00
mtklein
fd6a07b1e8 Have SkPicture inherit from SkRefCnt.
This re-enables adoption tracking for SkPictures in Blink,
which should be green now that crrev.com/1136123011 has landed.

BUG=skia:3847

Review URL: https://codereview.chromium.org/1145153002
2015-05-20 10:55:49 -07:00
mtklein
2e172ecd3b Make SkEmptyPicture a singleton.
In my confusion yesterday I accidentally left this as a non-singleton.
The issue in Blink was not related to this being a singleton,
and it should be safe to make it one.

This means recording an empty picture properly costs zero mallocs.

BUG=skia:

Review URL: https://codereview.chromium.org/1147053002
2015-05-20 10:32:22 -07:00
mtklein
d41ea1d1cf More efficient SkRecorder::flushMiniRecorder()
This should involve no mallocs, frees, or memcpys, and less refcounting.

BUG=skia:

Review URL: https://codereview.chromium.org/1144173002
2015-05-20 10:16:49 -07:00
bungeman
22483d9ca6 Sort build files for consistent link order.
Prior to the introduction of find.py, GMs were liked in the order they
were listed in the gypi file, which was generally alphabetically. This
made it fairly easy to predict where slides would show up in SampleApp
and the order was consistent. This simply sorts the list of files in
find.py to restore the expectation that files should be listed in the
build in alphabetical order.

Review URL: https://codereview.chromium.org/1144973003
2015-05-20 09:26:47 -07:00
bungeman
41868fe562 Font variations.
Multiple Master and TrueType fonts support variation axes.
This implements back-end support for axes on platforms which
support it.

Committed: https://skia.googlesource.com/skia/+/05773ed30920c0214d1433c07cf6360a05476c97

Committed: https://skia.googlesource.com/skia/+/3489ee0f4fa34f124f9de090d12bdc2107d52aa9

Review URL: https://codereview.chromium.org/1027373002
2015-05-20 09:21:04 -07:00
caryclark
d223eb36a0 fix win 8 bot
Comment out assert (runtime documentation)
It fails on Win 8 because the result isn't bit identical.

TBR=bungeman@google.com

Review URL: https://codereview.chromium.org/1148053003
2015-05-20 08:22:45 -07:00
stephana
c13a7738fb Unmount before app-install
TBR=borenet

NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1145093005
2015-05-20 07:31:32 -07:00
fs
d8b5771779 Don't fail SkMergeImageFilter if one of the inputs are empty
If one of the inputs to a SkMergeImageFilter was clipped away or
otherwise caused the filterImage(...) invocation for it to return
false, the entire effect would be "failed" and return false --
regardless of if it had produced a result or not.
Instead of returning false directly if filterImage(...) for a source
returned false, consider all the inputs, and then only return false if
all of them do.

BUG=chromium:489046

Review URL: https://codereview.chromium.org/1133523006
2015-05-20 00:52:17 -07:00
joshualitt
8debd89f63 small cleanup of GrAtlas
BUG=skia:

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

Review URL: https://codereview.chromium.org/1142263002
2015-05-19 15:05:24 -07:00
bungeman
a65358c04d Revert of small cleanup of GrAtlas (patchset #2 id:20001 of https://codereview.chromium.org/1142263002/)
Reason for revert:
Broke compile on Linux

Original issue's description:
> small cleanup of GrAtlas
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/d706f11b6e3f4398ab93b23458a7599ee324be2c

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

Review URL: https://codereview.chromium.org/1142273002
2015-05-19 14:45:11 -07:00
joshualitt
d706f11b6e small cleanup of GrAtlas
BUG=skia:

Review URL: https://codereview.chromium.org/1142263002
2015-05-19 14:41:41 -07:00
joshualitt
bb87b2104b Adding immediate mode draw target for debug
BUG=skia:

Review URL: https://codereview.chromium.org/1126043007
2015-05-19 14:28:04 -07:00
reed
50bc051007 implement --quiet for DM
BUG=skia:

Review URL: https://codereview.chromium.org/1139413003
2015-05-19 14:13:31 -07:00
kkinnunen
503bd77b89 Add a newline to the font load debug message
Add a newline to the font load debug message. Helps reading nanobench
results. Otherwise the message "Resource /fonts/Funkster.ttf not a valid
font." causes first result be hard to read or missing.

Review URL: https://codereview.chromium.org/1142183002
2015-05-19 13:50:50 -07:00
mtklein
9db912c2ac Sketch splitting SkPicture into an interface and SkBigPicture.
Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
These cover about 89% of draw calls from Blink SKPs,
and about 25% of draw calls from our GMs.

SkPicture handles:
  - serialization and deserialization
  - unique IDs

Everything else is left to the subclasses:
  - playback(), cullRect()
  - hasBitmap(), hasText(), suitableForGPU(), etc.
  - LayerInfo / AccelData if applicable.

The time to record a 1-op picture improves a good chunk
(2 mallocs to 1), and the time to record a 0-op picture
greatly improves (2 mallocs to none):

    picture_overhead_draw:   450ns -> 350ns
    picture_overhead_nodraw: 300ns -> 90ns

BUG=skia:

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

Latest blink_linux_rel:

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

Committed: https://skia.googlesource.com/skia/+/15877b6eae33a9282458bdb904a6d00440eca0ec

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

Review URL: https://codereview.chromium.org/1112523006
2015-05-19 11:11:26 -07:00
caryclark
612f70d5fa handle large conic strokes better
A stroked conic computes the outset quad's control point by
computing the intersection of the quad's endpoints. If the
the denominator used to compute the scale factor for the
control point is small, check to see if the numerator is also
small so that the division stays bounded.

Also clean up error returns and internal function calls to
simplify the code.

Additionally, remove comic max curvature (unimplemented) and call
extrema functions instead to handle cases where the conic is degenerate
or is a line.

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

Review URL: https://codereview.chromium.org/1144883003
2015-05-19 11:05:37 -07:00