| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes blend32_16_row neon implementation
for aarch32 and aarch64.
For performance,
blend32_16_row is called in following tests in nanobench.
- Xfermode_SrcOver
- tablebench
- rotated_rects_bw_alternating_transparent_and_opaque_srcover
- rotated_rects_bw_changing_transparent_srcover
- rotated_rects_bw_same_transparent_srcover
- luma_colorfilter_large
- luma_colorfilter_small
- chart_bw
I can see perf increase in following two tests, especially. For others, looks
similar.
For each, I tried to run two times.
1) Xfermode_SrcOver
<org>
- D/skia ( 2000): 3M 57 17.3µs 17.4µs 17.4µs 17.7µs 1%
█▃▂▃▂▂▂▁▃▂ 565 Xfermode_SrcOver
- D/skia ( 1915): 3M 70 13.5µs 16.9µs 16.7µs 18.8µs 9%
▆█▄▅█▁▅▅▆▄ 565 Xfermode_SrcOver
<new>
- D/skia ( 2000): 3M 8 11.6µs 11.8µs 12.1µs 14.4µs 7%
▃█▁▁▂▁▁▁▂▂ 565 Xfermode_SrcOver
- D/skia ( 2004): 3M 62 10.3µs 12.9µs 13µs 15.2µs 11%
█▅▅▆▁▅▅▅▇▃ 565 Xfermode_SrcOver
2)
luma_colorfilter_large
<org>
- D/skia ( 2000): 159M 8 136µs 136µs 136µs 139µs 1%
█▃▁▂▁▁▁▁▁▁ 565 luma_colorfilter_large
- D/skia ( 1915): 158M 2 135µs 177µs 182µs 269µs 22%
▆▃█▁▁▃▃▃▃▃ 565 luma_colorfilter_large
<new>
- D/skia ( 2000): 157M 5 84.2µs 85.3µs 87.5µs 110µs 9%
█▁▂▁▁▁▁▁▁▁ 565 luma_colorfilter_large
- D/skia ( 2004): 159M 6 84.7µs 110µs 112µs 144µs 18%
█▄▇▁▁▄▃▄▄▆ 565 luma_colorfilter_large
Review URL: https://codereview.chromium.org/847363002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/877473005/)
Reason for revert:
Chrome pixel test :(
Original issue's description:
> Add device space "nudge" to gpu draws
>
> This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
>
> BUG=423834
>
> Committed: https://skia.googlesource.com/skia/+/2d55d07501c56310f97d2092d789a2bc9fa01b78
TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=423834
Review URL: https://codereview.chromium.org/890433003
|
|
|
|
|
|
|
|
| |
This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too.
BUG=423834
Review URL: https://codereview.chromium.org/877473005
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/880383002
|
|
|
|
|
|
|
|
|
|
| |
Add dump() method to inspect glyphcache strikes.
Murmur addition improves hash efficient roughly 50%
BUG=skia:
Review URL: https://codereview.chromium.org/877113002
|
|
|
|
|
|
| |
BUG=448423
Review URL: https://codereview.chromium.org/881423002
|
|
|
|
|
|
|
|
|
|
| |
This is necessary for multisampling, so that each multisampled render
target resolves before Chrome's compositor attempts to draw the
texture.
BUG=skia:
Review URL: https://codereview.chromium.org/878653004
|
|
|
|
|
|
|
|
|
|
| |
Compute cheaper/more conservative text blob bounds based on the typeface
maximum glyph bbox.
BUG=chromium:451401
R=reed@google.com,bungeman@google.com
Review URL: https://codereview.chromium.org/886473002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(http://crrev.com/885453002#ps20001) (patchset #1 id:1 of https://codereview.chromium.org/881953002/)
Reason for revert:
==32435==ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs operator delete) on 0x621000d8cd00
Lots of info here:
http://build.chromium.org/p/client.skia/builders/Test-Ubuntu13.10-GCE-NoGPU-x86_64-Debug-ASAN/builds/1198/steps/dm/logs/stdio
Original issue's description:
> patch from issue 885453002 at patchset 20001 (http://crrev.com/885453002#ps20001)
>
> Make the char cache dynamic in SkGlyphCache
> because it is rarely used.
>
> Landing on behalf of Herb.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/95faa61d63a6f62916f6f7be58c4624da8357e3b
TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/881023003
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(http://crrev.com/885453002#ps20001)
Make the char cache dynamic in SkGlyphCache
because it is rarely used.
Landing on behalf of Herb.
BUG=skia:
Review URL: https://codereview.chromium.org/881953002
|
|
|
|
|
|
|
|
|
|
| |
The methods getLocalMatrixWithoutTextSize and
getSingleMatrixWithoutTextSize on SkScalerContext were added as a
temporary measure for CoreText issues. Now that the CoreText
SkScalerContext is using other means to fix these issues more completely,
remove these now unused methods.
Review URL: https://codereview.chromium.org/883833002
|
|
|
|
|
|
|
| |
SkTypeface already requires typeface streams to support SkStreamAsset
in practice, and in practice all users are already supplying them.
Review URL: https://codereview.chromium.org/869763002
|
|
|
|
|
|
|
|
|
|
|
| |
mipmap_build benchmark:
before: 3.36ms
after: 2.20ms
BUG=skia:
Review URL: https://codereview.chromium.org/873393002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL unifies the treatment of the dashed and concave paths.
Before:
TP 28 FP 15 TN 8 FN 3 IND 3
After:
TP 28 FP 18 TN 7 FN 2 IND 2
One of the TrueNegatives that became a FalsePositive was the motivation use case (the Chromium busy spinner).
Committed: https://skia.googlesource.com/skia/+/87a6a8e18c7d5bbc94f478b44c53dc0e0549f927
Review URL: https://codereview.chromium.org/875913002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/876743002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/875913002/)
Reason for revert:
Failing tests
Original issue's description:
> Alter gpu veto
>
> This CL unifies the treatment of the dashed and concave paths.
>
> Before:
> TP 28 FP 15 TN 8 FN 3 IND 3
>
> After:
> TP 28 FP 18 TN 7 FN 2 IND 2
>
> One of the TrueNegatives that became a FalsePositive was the motivation use case (the Chromium busy spinner).
>
> Committed: https://skia.googlesource.com/skia/+/87a6a8e18c7d5bbc94f478b44c53dc0e0549f927
TBR=egdaniel@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/879483003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL unifies the treatment of the dashed and concave paths.
Before:
TP 28 FP 15 TN 8 FN 3 IND 3
After:
TP 28 FP 18 TN 7 FN 2 IND 2
One of the TrueNegatives that became a FalsePositive was the motivation use case (the Chromium busy spinner).
Review URL: https://codereview.chromium.org/875913002
|
|
|
|
|
|
| |
TBR=bsalomon@google.com
Review URL: https://codereview.chromium.org/872043002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fold alpha to the inner savelayer in savelayer-savelayer-restore
patterns such as this:
SaveLayer (non-opaque)
Save
ClipRect
SaveLayer
Restore
Restore
Restore
Current blink generates these for example for SVG content such as this:
<path style="opacity:0.5 filter:url(#blur_filter)"/>
The outer save layer is due to the opacity and the inner one is due to
blur filter being implemented with picture image filter.
Reduces layers in desk_carsvg.skp testcase from 115 to 78.
BUG=skia:3119
Review URL: https://codereview.chromium.org/835973005
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/855473002
|
|
|
|
|
|
| |
BUG=446164
Review URL: https://codereview.chromium.org/871993003
|
|
|
|
|
|
|
| |
BUG=skia:3277
related bug: skbug.com/3276
Review URL: https://codereview.chromium.org/821083002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/864833002
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To compile SkCondVar, we already require either pthreads or Windows. This
simplifies that code to not need SK_USE_POSIX_THREADS to be explicitly defined.
We'll just look to see if we're targeting Windows, and if not, assume pthreads.
Both before and after this CL, that code will fail to compile if we're not on
Windows and don't have pthreads.
BUG=skia:
Review URL: https://codereview.chromium.org/869443003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SkStream is a stateful object, so it does not make sense for it to have
multiple owners. Make SkStream inherit directly from SkNoncopyable.
Update methods which previously called SkStream::ref() (e.g.
SkImageDecoder::buildTileIndex() and SkFrontBufferedStream::Create(),
which required the existing owners to call SkStream::unref()) to take
ownership of their SkStream parameters and delete when done (including
on failure).
Switch all SkAutoTUnref<SkStream>s to SkAutoTDelete<SkStream>s. In some
cases this means heap allocating streams that were previously stack
allocated.
Respect ownership rules of SkTypeface::CreateFromStream() and
SkImageDecoder::buildTileIndex().
Update the comments for exceptional methods which do not affect the
ownership of their SkStream parameters (e.g.
SkPicture::CreateFromStream() and SkTypeface::Deserialize()) to be
explicit about ownership.
Remove test_stream_life, which tested that buildTileIndex() behaved
correctly when SkStream was a ref counted object. The test does not
make sense now that it is not.
In SkPDFStream, remove the SkMemoryStream member. Instead of using it,
create a new SkMemoryStream to pass to fDataStream (which is now an
SkAutoTDelete).
Make other pdf rasterizers behave like SkPDFDocumentToBitmap.
SkPDFDocumentToBitmap delete the SkStream, so do the same in the
following pdf rasterizers:
SkPopplerRasterizePDF
SkNativeRasterizePDF
SkNoRasterizePDF
Requires a change to Android, which currently treats SkStreams as ref
counted objects.
Review URL: https://codereview.chromium.org/849103004
|
|
|
|
|
|
|
| |
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/864713002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
http://build.chromium.org/p/client.skia/builders/Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN/builds/1211/steps/dm/logs/stdio
I don't see any big perf hit locally:
desk_googlespreadsheetdashed.skp 1.68ms -> 1.74ms 1.04x
desk_mobilenews.skp 643us -> 665us 1.04x
desk_tigersvg.skp 51.1us -> 52.5us 1.03x
desk_jsfiddlehumperclip.skp 37us -> 37.9us 1.02x
desk_samoasvg.skp 373us -> 380us 1.02x
desk_wordpress.skp 697us -> 708us 1.02x
desk_mapsvg.skp 698us -> 708us 1.02x
tabl_googleblog.skp 553us -> 560us 1.01x
desk_wowwiki.skp 1.31ms -> 1.32ms 1.01x
tabl_mozilla.skp 1.44ms -> 1.45ms 1.01x
desk_sfgate.skp 156us -> 157us 1.01x
desk_chalkboard.skp 376us -> 378us 1x
desk_baidu.skp 101us -> 101us 1x
desk_gmailthread.skp 231us -> 231us 1x
desk_carsvg.skp 379us -> 379us 1x
desk_googlehome.skp 38.1us -> 38.1us 1x
desk_css3gradients.skp 89.6us -> 89.2us 1x
desk_googlespreadsheet.skp 549us -> 546us 0.99x
desk_pokemonwiki.skp 8.67ms -> 8.62ms 0.99x
tabl_mlb.skp 294us -> 291us 0.99x
tabl_gamedeksiam.skp 700us -> 692us 0.99x
tabl_worldjournal.skp 143us -> 142us 0.99x
desk_blogger.skp 441us -> 436us 0.99x
desk_twitter.skp 452us -> 446us 0.99x
desk_gws.skp 152us -> 150us 0.99x
tabl_gmail.skp 24.2us -> 23.9us 0.99x
tabl_sahadan.skp 84.7us -> 83.5us 0.99x
tabl_cnn.skp 1.24ms -> 1.22ms 0.99x
tabl_ukwsj.skp 543us -> 535us 0.99x
desk_yahooanswers.skp 124us -> 123us 0.99x
desk_booking.skp 905us -> 891us 0.98x
tabl_androidpolice.skp 1.76ms -> 1.73ms 0.98x
desk_ugamsolutions.skp 281us -> 276us 0.98x
desk_nytimes.skp 209us -> 204us 0.98x
tabl_techmeme.skp 98.4us -> 96.1us 0.98x
tabl_nofolo.skp 59.2us -> 57.8us 0.98x
desk_weather.skp 244us -> 238us 0.98x
desk_facebook.skp 546us -> 531us 0.97x
desk_linkedin.skp 321us -> 311us 0.97x
tabl_digg.skp 801us -> 770us 0.96x
tabl_culturalsolutions.skp 332us -> 319us 0.96x
desk_amazon.skp 103us -> 99us 0.96x
tabl_engadget.skp 610us -> 579us 0.95x
tabl_cnet.skp 144us -> 136us 0.95x
desk_fontwipe.skp 36.6us -> 34.7us 0.95x
desk_ebay.skp 173us -> 164us 0.94x
tabl_hsfi.skp 5.95us -> 5.58us 0.94x
tabl_deviantart.skp 134us -> 126us 0.94x
desk_espn.skp 261us -> 243us 0.93x
BUG=skia:
Review URL: https://codereview.chromium.org/861853002
|
|
|
|
|
|
|
|
|
| |
SkFontMgr and SkFontStyle implementations are currently burried in the
old SkFontHost.cpp file. Move these implementations to their own file
so that the implementations are easier to find, and to make clearer that
SkFontHost.cpp needs to be removed.
Review URL: https://codereview.chromium.org/799533004
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/811903004
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/845303005
|
|
|
|
|
|
|
| |
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/857193003
|
|
|
|
|
|
|
|
|
|
| |
- Added new classes to contain YUV planes of memory, along with the associated data.
- Used these classes in load_yuv_texture() to enable YUV planes caching
- Added a unit test for the new cache
BUG=450021
Review URL: https://codereview.chromium.org/851273003
|
|
|
|
|
|
|
| |
BUG=skia:
NOTREECHECKS=True
Review URL: https://codereview.chromium.org/844913004
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
now w/ expanded suppressions
This reverts commit b50ced703030dfbda4fc3ef5e6ec9a52fc0405f8.
BUG=skia:
TBR=
NOTRY=True
NOTREECHECKS=True
Review URL: https://codereview.chromium.org/856723003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/849333002/)
Reason for revert:
need more suppressions
Original issue's description:
> use log2(scale) to compute mip level
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/15fd47f8a07615a7f5d78581aee4c80ff9f17fd9
TBR=robertphillips@google.com,jvanverth@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/856783004
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/849333002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/852203003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fold alpha of a save layer call to the subsequent draw call paint, even when
the draw call paint color is already non-opaque.
Comparing the difference of the unoptimized and the optimized call pattern
with all (layer alpha, draw alpha) combinations, this produces
off-by-one pixels ~50% of the time.
Reduces layers of current desk_carsvg.skp (recorded with cross-process
picture image filters allowed) from 122 to 115.
BUG=skia:3119
Review URL: https://codereview.chromium.org/840483005
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 09544fcf9611be6efc0c38ab9d9a3f82181341fb.
BUG=skia:
TBR=
NOTREECHECKS=True
Review URL: https://codereview.chromium.org/849173003
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/844913003
|
|
|
|
|
|
|
|
|
| |
Let's not choke on inverted tiles.
BUG=chromium:447707
R=robertphillips@google.com,reed@google.com
Review URL: https://codereview.chromium.org/852213002
|
|
|
|
|
|
|
|
|
| |
They're only hints. We can ignore them in this optimization.
My only hesitation is that this pattern doesn't seem to happen in our .skps.
BUG=skia:
Review URL: https://codereview.chromium.org/849243002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/845793005
|
|
|
|
|
|
|
|
|
|
| |
The stroke width needs to be CTM-adjusted when applied to device space
rects.
BUG=skia:3313
R=reed@google.com
Review URL: https://codereview.chromium.org/801353008
|
|
|
|
|
|
|
| |
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/796063007
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/853543003
|
|
|
|
|
|
| |
BUG=skia:3302
Review URL: https://codereview.chromium.org/847443003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This code requires fewer macros to use it (just one), has less code in macro
definitions, and has simpler synchronization code (just atomic ints, no SkOnce,
no SkMutex, etc.)
A minor downside, we lose indentation and reverse-ordering in the final report:
Leaked SkRefCntBase: 7
Leaked SkFontMgr: 1
Leaked SkWeakRefCnt: 1
Leaked SkTypeface: 1
Leaked SkFlattenable: 3
Leaked SkXfermode: 3
Leaked SkPathRef: 1
Leaked SkPixelRef: 1
Leaked SkMallocPixelRef: 1
becomes
Leaked SkXfermode: 3
Leaked SkMallocPixelRef: 1
Leaked SkPixelRef: 1
Leaked SkPathRef: 1
Leaked SkFlattenable: 3
Leaked SkTypeface: 1
Leaked SkWeakRefCnt: 1
Leaked SkFontMgr: 1
Leaked SkRefCntBase: 7
This is motivated by wanting to land https://codereview.chromium.org/806473006/,
which makes sure all static use of SkOnce are in global scope. The current
implementation of SkInstCnt uses them in function scope, which isn't safe.
BUG=skia:
No public API changes.
TBR=reed@google.com
Review URL: https://codereview.chromium.org/841263004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
id:20001 of https://codereview.chromium.org/839883003/)
Reason for revert:
This CL introduces rendering conflicts with hairlines (i.e., the hairlines get overwritten). These conflicts are particularly visible on the following GMs (for the Ubuntu and Android gpu configs):
coloremoji & complexclip2_rrect_bw
Original issue's description:
> Fix GPU clipped-AA vs. non-AA drawRect discrepancy
>
> In the clip stack we were manually rounding out non-AA clip rects but leaving the hardening of non-AA drawRects up to the GPU. In some border cases the GPU can truncate rather than round out resulting in visual discrepancies.
>
> BUG=423834
>
> Committed: https://skia.googlesource.com/skia/+/933a03fecb65c83f81cf65d5cf9870c69aa379ff
TBR=bsalomon@google.com,jvanverth@google.com
NOTREECHECKS=true
NOTRY=true
BUG=423834
Review URL: https://codereview.chromium.org/847033002
|
|
|
|
|
|
|
|
| |
In the clip stack we were manually rounding out non-AA clip rects but leaving the hardening of non-AA drawRects up to the GPU. In some border cases the GPU can truncate rather than round out resulting in visual discrepancies.
BUG=423834
Review URL: https://codereview.chromium.org/839883003
|