Commit Graph

15164 Commits

Author SHA1 Message Date
mtklein
08d1fccf6e Add SkNVRefCnt, prune down SkPicture's size
SkNVRefCnt is a variant of SkRefCnt that's Not Virtual, so weighs 4 bytes
instead of 8 or 16.  There's only benefit to doing this if the deriving class
does not otherwise need a vtable, e.g. SkPicture.

I've stripped out some cruft from SkPicture, rearranged fields to pack tightly,
and added compile asserts for the sizes of SkPicture, SkRecord, and
SkVarAlloc.

BUG=skia:3144

Review URL: https://codereview.chromium.org/741793002
2014-11-20 09:18:32 -08:00
mtklein
cdeeb095a6 SkRecord: Pack SkRegion::Op and AA bit together.
Saves 4 bytes per clip op.

BUG=skia:

Review URL: https://codereview.chromium.org/741093002
2014-11-20 09:14:28 -08:00
mtklein
378e70d8e5 SkCanvas::clear() should call down to devices even when the clip is empty.
SkDrawIter had a lovely, completely unused, option for this.  Oversight?

BUG=skia:

Review URL: https://codereview.chromium.org/735233003
2014-11-20 08:58:02 -08:00
bsalomon
072803144a Stop overloading internal_dispose in SkTextBlob and SkData
Review URL: https://codereview.chromium.org/737093002
2014-11-20 08:02:46 -08:00
mtklein
7cc1a34fbf Make sure pictures draw Clears even when the clip is empty.
We fix this by rewriting empty queries to very tiny queries, which will certainly
hit ops that span the entire picture (like Clear) and hopefully not much more.

(This doesn't quite work in the full cull rect world if [0,0,ε,ε] doesn't
overlap the picture.  Let's cross that bridge when we get there.)

BUG=432991

Review URL: https://codereview.chromium.org/732723004
2014-11-20 08:01:09 -08:00
joshualitt
9176e2c159 dstCopy on optdrawstate
BUG=skia:

Review URL: https://codereview.chromium.org/735363003
2014-11-20 07:28:52 -08:00
rosca
ace7f42769 Preventing division by 0 in non-separable blend mode shaders.
In the software path, the same issue has been fixed some time ago:
https://codereview.chromium.org/114173002

BUG=skia:

Review URL: https://codereview.chromium.org/666043003
2014-11-20 07:24:32 -08:00
kkinnunen
e097be50bd Implement conics for NVPR
Implement conics for NVPR. Verified with currently disabled conicpaths
gm, produces mostly same shapes with nvprmsaa4 and msaa4.

BUG=skia:2033

Review URL: https://codereview.chromium.org/694503003
2014-11-19 22:49:03 -08:00
Greg Humphreys
ac1383db67 even more stragglers -- hopefully this makes the gtx machine go green?
BUG=skia:

Review URL: https://codereview.chromium.org/716243005
2014-11-19 17:28:53 -05:00
Greg Humphreys
c58a33c95b more rebaseline stragglers
BUG=skia:

Review URL: https://codereview.chromium.org/726373004
2014-11-19 17:02:31 -05:00
mtklein
008f1ea581 Store DM failures in an array, not a single string.
This should fix the problem where a repeatedly failing test causes this assertion:
  ../../src/core/SkString.cpp:572: failed assertion "length >= 0 && length < SkToInt(kBufferSize)"

Example output:

0 GMs x 7 configs, 2 tests, 0 pictures
0 tasks left, 100 failed
Failures:
  test RTree: ../../tests/RTreeTest.cpp:77	0 != rtree.getCount()
  test RTree: ../../tests/RTreeTest.cpp:77	0 != rtree.getCount()
  test RTree: ../../tests/RTreeTest.cpp:77	0 != rtree.getCount()
  test RTree: ../../tests/RTreeTest.cpp:77	0 != rtree.getCount()
  < 95 lines elided >
  test RTree: ../../tests/RTreeTest.cpp:77	0 != rtree.getCount()
100 failures.

BUG=skia:

Review URL: https://codereview.chromium.org/741833002
2014-11-19 13:36:19 -08:00
Greg Humphreys
c66d813c18 a few straggling rebaselines
BUG=skia:

Review URL: https://codereview.chromium.org/742893002
2014-11-19 16:35:20 -05:00
bsalomon
04ddf89627 Small cleanups after GrDrawState/GrOptDrawState base class elimination.
Review URL: https://codereview.chromium.org/739133004
2014-11-19 12:36:22 -08:00
tomhudson
158fcaa031 Implement SkPicture::bytesUsed() for SkRecord backend
BUG=chromium:230419
R=mtklein@google.com,reed@google.com

Review URL: https://codereview.chromium.org/490253003
2014-11-19 10:41:14 -08:00
mtklein
72f92acd47 No need to short circuit the query rect here anymore.
Whatever assertion was triggering in SkRTree.cpp seems to be gone now.

BUG=432991

Review URL: https://codereview.chromium.org/725373003
2014-11-19 10:37:20 -08:00
mtklein
48b411af76 Remove debug-only fData from SKTDArray.
It makes the code harder to read, and makes Debug and Release SkTDArrays
different sizes.  Looks like fData is left over from when debuggers weren't
very good at inspecting data structures.

No API changes.
TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/739263002
2014-11-19 09:41:27 -08:00
joshualitt
54e0c12a5a scissor state on optstate
waiting

BUG=skia:

Review URL: https://codereview.chromium.org/742763002
2014-11-19 09:38:51 -08:00
fmalita
65d79cefe2 Add an image filter row to GM:lcdtextprops
We should be disabling LCD text when rendering image filters, but
currently don't. Add a GM to capture this behavior.

R=reed@google.com

Review URL: https://codereview.chromium.org/741433003
2014-11-19 09:23:22 -08:00
bsalomon
26bdfcb4e4 Remove /arch:SSE2 from Win 64 Release builds
Review URL: https://codereview.chromium.org/740733002
2014-11-19 08:59:58 -08:00
humper
ad5e9a5327 add runtime config option to retain stream for custom typefaces
BUG=skia:

Review URL: https://codereview.chromium.org/729973004
2014-11-19 08:32:19 -08:00
joshualitt
02bcd9db00 move GrGeometryProcessor to src
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/739943003
2014-11-19 08:24:09 -08:00
bsalomon
ae59b77612 Create GrOptDrawState before recording draw in GrInOrderDrawBuffer
Review URL: https://codereview.chromium.org/739673002
2014-11-19 08:23:49 -08:00
reed
78e2768897 Allow pictures to have a full bounds
This reverts commit 7c4cdd2c5b.

BUG=skia:

Review URL: https://codereview.chromium.org/738083002
2014-11-19 08:04:34 -08:00
reed
7c4cdd2c5b Revert of allow pictures to have a full bounds (patchset #3 id:40001 of https://codereview.chromium.org/736583004/)
Reason for revert:
needed to update legacy width() helpers

Original issue's description:
> allow pictures to have a full bounds
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/7e76bff26e7c74902841ca4f607eb0b24a833a4a

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

Review URL: https://codereview.chromium.org/722043005
2014-11-19 07:17:17 -08:00
reed
7e76bff26e allow pictures to have a full bounds
BUG=skia:

Review URL: https://codereview.chromium.org/736583004
2014-11-19 06:59:41 -08:00
egdaniel
ec03a46080 Add processor name to comment when printing out shaders.
BUG=skia:

Review URL: https://codereview.chromium.org/735153002
2014-11-19 06:22:39 -08:00
reed
b07a94f1cb add roundOut that returns its result
BUG=skia:

Review URL: https://codereview.chromium.org/742663002
2014-11-19 05:03:18 -08:00
skia.buildbots
b50612cbda Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/738003002
2014-11-18 23:06:53 -08:00
reed
d02cf2664d change roundOut() to take a dst, so we can use that signature to return IRect
BUG=skia:
TBR=robertphilips

Review URL: https://codereview.chromium.org/731373003
2014-11-18 18:06:45 -08:00
joshualitt
d31985ecc8 setting patch_primitive_nvprmsaa4 on K1 to ignore
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/743563003
2014-11-18 17:38:36 -08:00
joshualitt
7eb8c7b00a drawinfo carries bufferinfo
BUG=skia:

Review URL: https://codereview.chromium.org/737723003
2014-11-18 14:24:27 -08:00
Greg Humphreys
914dd53a42 ignore dashcubics test pending skia bug 2049
BUG=skia:2049

Review URL: https://codereview.chromium.org/741533002
2014-11-18 15:42:19 -05:00
Greg Humphreys
82e3552d68 a few straggling rebaselines
BUG=skia:

Review URL: https://codereview.chromium.org/738943003
2014-11-18 15:23:05 -05:00
Greg Humphreys
ccedeccdb7 more rebaselines for the perspective test server
BUG=skia:

Review URL: https://codereview.chromium.org/727063004
2014-11-18 15:19:45 -05:00
Greg Humphreys
174b2232d3 rebaseline new GTX images from drive update on linux
BUG=skia:
TBR=borenet
NOTRY=true

Review URL: https://codereview.chromium.org/735833002
2014-11-18 15:15:27 -05:00
robertphillips
8037653195 Add computation of saveLayer information to RecordingBench
In (Add flag to beginRecording to request saveLayer information - https://codereview.chromium.org/721883002/) I claimed the extra recording cost would be negligible. This CL attempts to put some numbers behind that.

Review URL: https://codereview.chromium.org/741523002
2014-11-18 11:53:02 -08:00
halcanary
6fd5e6e261 http://skbug.com/3130 step 4 (include/utils/SkWGL.h gone for good)
BUG=skia:3130

Review URL: https://codereview.chromium.org/729363003
2014-11-18 11:30:20 -08:00
reed
6be2aa9a25 wip for drawables
Idea:

1. in its mutable recording state, keep a table of drawables on the side, and store an index in the record list.

2. In "immediate-mode" draw, just call the clients drawable directly (need access to our private list to turn the stored index into a proc)

3. when we "snap", we replace the list of drawables with a list of (sub) pictures, and then during playback of the snapped picture, we invoke a private drawable which just calls "drawPicture" on the index'd subpicture.

Review URL: https://codereview.chromium.org/727363003
2014-11-18 11:08:05 -08:00
reed
ad3a8846f8 rebaseline after dont-normalize-matrix cl
BUG=skia:
TBR=
NOTRY=True

Review URL: https://codereview.chromium.org/738743003
2014-11-18 09:57:50 -08:00
joshualitt
780b11e4ec fix for use of uninit variable
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/740463002
2014-11-18 09:40:40 -08:00
mtklein
0bd57b2e1e SkVarAlloc::approxBytesAllocated()
This is what I was getting at on the other CL.

BUG=skia:

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

CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-Nexus5-Adreno330-Arm7-Release-Trybot

Review URL: https://codereview.chromium.org/730193003
2014-11-18 09:32:36 -08:00
mtklein
a06a953121 Prune SkRTree
- Propagate a bunch of constant parameters through.
  - Delete code that's not used when bulk loading.
  - Allocate all Nodes together.
  - Stay in SkRect.

Doing a single malloc for the nodes can't not have improved memory usage.

Looks like this might improve record performance ~5%, probably mostly from
staying in SkRects.  This finally dethrones building the BBH as the hot spot.
(Now it's mapping user bounds back to device bounds and adjusting for paints.)

Recording time changes from my MBP:
    desk_rectangletransition.skp	11.5us -> 11.7us	1x
             desk_forecastio.skp	 115us ->  114us	0.98x
                desk_booking.skp	 550us ->  541us	0.98x
            tabl_mercurynews.skp	 176us ->  173us	0.98x
                   tabl_hsfi.skp	 294us ->  287us	0.98x
              desk_wordpress.skp	 351us ->  343us	0.98x
           tabl_worldjournal.skp	 439us ->  426us	0.97x
                  tabl_gmail.skp	20.3us -> 19.7us	0.97x
         desk_youtubetvvideo.skp	10.8us -> 10.4us	0.97x
             desk_googleplus.skp	 1.1ms -> 1.07ms	0.97x
               tabl_slashdot.skp	 106us ->  103us	0.97x
         desk_jsfiddlebigcar.skp	26.7us -> 25.7us	0.96x
               tabl_techmeme.skp	95.4us -> 91.7us	0.96x
             tabl_deviantart.skp	 133us ->  127us	0.96x
              desk_pinterest.skp	40.6us -> 38.9us	0.96x
                 desk_carsvg.skp	 195us ->  187us	0.96x
               tabl_engadget.skp	 376us ->  359us	0.96x
                tabl_sahadan.skp	60.5us -> 57.5us	0.95x
      tabl_culturalsolutions.skp	 255us ->  242us	0.95x
                  tabl_gspro.skp	58.3us -> 55.5us	0.95x
               desk_linkedin.skp	 146us ->  138us	0.94x
                   desk_ebay.skp	 192us ->  181us	0.94x
                    tabl_cnn.skp	 467us ->  440us	0.94x
     desk_jsfiddlehumperclip.skp	29.9us -> 28.1us	0.94x
               desk_tigersvg.skp	43.2us -> 40.5us	0.94x
           desk_yahooanswers.skp	 131us ->  123us	0.94x
desk_googlespreadsheetdashed.skp	1.18ms -> 1.11ms	0.94x
                desk_blogger.skp	 193us ->  181us	0.94x
                tabl_mozilla.skp	1.82ms ->  1.7ms	0.94x
                    tabl_mlb.skp	 145us ->  136us	0.93x
              mobi_wikipedia.skp	 577us ->  539us	0.93x
               tabl_frantzen.skp	54.1us -> 50.4us	0.93x
                  desk_baidu.skp	87.9us -> 81.9us	0.93x
             desk_techcrunch.skp	 224us ->  209us	0.93x
                 desk_sfgate.skp	 206us ->  192us	0.93x
                  tabl_ukwsj.skp	 269us ->  250us	0.93x
               desk_facebook.skp	 316us ->  293us	0.93x
            desk_gmailthread.skp	 205us ->  190us	0.93x
         tabl_googlecalendar.skp	 158us ->  147us	0.93x
                   tabl_digg.skp	 382us ->  354us	0.93x
                 desk_amazon.skp	 106us -> 98.5us	0.93x
          tabl_androidpolice.skp	 693us ->  642us	0.93x
                tabl_nytimes.skp	 206us ->  191us	0.92x
                    desk_gws.skp	 124us ->  114us	0.92x
                desk_youtube.skp	 255us ->  235us	0.92x
           tabl_cuteoverload.skp	 583us ->  537us	0.92x
            desk_oldinboxapp.skp	  18us -> 16.6us	0.92x
             desk_mobilenews.skp	 297us ->  273us	0.92x
                 tabl_pravda.skp	 168us ->  154us	0.92x
              tabl_vnexpress.skp	 236us ->  217us	0.92x
          desk_css3gradients.skp	 202us ->  185us	0.92x
            tabl_gamedeksiam.skp	 508us ->  464us	0.91x
                desk_wowwiki.skp	1.02ms ->  929us	0.91x
                   desk_espn.skp	 209us ->  191us	0.91x
             desk_chalkboard.skp	 315us ->  284us	0.9x
                 desk_mapsvg.skp	 607us ->  543us	0.89x
            desk_pokemonwiki.skp	5.18ms -> 4.62ms	0.89x
               desk_samoasvg.skp	 335us ->  298us	0.89x
        desk_youtubetvbrowse.skp	10.1us -> 8.59us	0.85x
BUG=skia:3085, skia:2834

Review URL: https://codereview.chromium.org/734723002
2014-11-18 09:27:49 -08:00
mtklein
52b7822fa6 Revert of SkVarAlloc::approxBytesAllocated (patchset #5 id:80001 of https://codereview.chromium.org/730193003/)
Reason for revert:
Android needs dlmalloc_usable_size().

Original issue's description:
> SkVarAlloc::approxBytesAllocated()
>
> This is what I was getting at on the other CL.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/f27f1bcce50c8f95aea8469684a70b70c9baee09
>
> CQ_EXTRA_TRYBOTS=Test-Android-Nexus5-Adreno330-Arm7-Release-Trybot

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

Review URL: https://codereview.chromium.org/741443002
2014-11-18 08:15:23 -08:00
bsalomon
6d467ecb81 minor cleanup in GrGpu.h
Review URL: https://codereview.chromium.org/731073003
2014-11-18 07:36:19 -08:00
reed
611f3bb4cf rebaseline perspective gm after matrix dont-renormalize-cl
BUG=skia:
TBR=
NOTRY=True

Review URL: https://codereview.chromium.org/741433002
2014-11-18 07:32:26 -08:00
mtklein
f27f1bcce5 SkVarAlloc::approxBytesAllocated()
This is what I was getting at on the other CL.

BUG=skia:

Review URL: https://codereview.chromium.org/730193003
2014-11-18 07:24:14 -08:00
reed
9b1dd15d6d don't normalize after perspective concat
BUG=skia:

Review URL: https://codereview.chromium.org/734513004
2014-11-18 06:04:37 -08:00
kkinnunen
542ecbb2bd Remove unused NVPR related GL tokens
Remove unused NVPR related GL tokens.

Also replace GR_GL_PATH_INITIAL_END_CAP and GR_GL_PATH_TERMINAL_END_CAP
with a single call setting GR_GL_PATH_END_CAPS. Skia does not and
probably will not have different initial and terminal caps. This came up
in the review of command buffer implementation of the extension.

If more NVPR features will be used, the respective tokens can be added
back per implemented feature.

Review URL: https://codereview.chromium.org/723453002
2014-11-18 05:13:48 -08:00
kkinnunen
b33402bc87 Do not calculate many sierpinski fractals for each nanobench run unless needed
Removes work done by the constructors of picture_nesting benches,
and moves the work to the Benchmark::onPreDraw override.

This avoids PictureNesting::sierpinsky showing up in profile traces
when profiling other benches.

Review URL: https://codereview.chromium.org/725523002
2014-11-18 04:50:50 -08:00
skia.buildbots
a8f38238d6 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/733323002
2014-11-17 23:03:57 -08:00