| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SkLiteRecorder, a new SkCanvas, fills out SkLiteDL, a new SkDrawable.
This SkDrawable is a display list similar to SkRecord and SkBigPicture / SkRecordedDrawable, but with a few new design points inspired by Android and slimming paint:
1) SkLiteDL is structured as one big contiguous array rather than the two layer structure of SkRecord. This trades away flexibility and large-op-count performance for better data locality for small to medium size pictures.
2) We keep a global freelist of SkLiteDLs, both reusing the SkLiteDL struct itself and its contiguous byte array. This keeps the expected number of mallocs per display list allocation <1 (really, ~0) for cyclical use cases.
These two together mean recording is faster. Measuring against the code we use at head, SkLiteRecorder trends about ~3x faster across various size pictures, matching speed at 0 draws and beating the special-case 1-draw pictures we have today. (I.e. we won't need those special case implementations anymore, because they're slower than this new generic code.) This new strategy records 10 drawRects() in about the same time the old strategy took for 2.
This strategy stays the winner until at least 500 drawRect()s on my laptop, where I stopped checking.
A simpler alternative to freelisting is also possible (but not implemented here), where we allow the client to manually reset() an SkLiteDL for reuse when its refcnt is 1. That's essentially what we're doing with the freelist, except tracking what's available for reuse globally instead of making the client do it.
This code is not fully capable yet, but most of the key design points are there. The internal structure of SkLiteDL is the area I expect to be most volatile (anything involving Op), but its interface and the whole of SkLiteRecorder ought to be just about done.
You can run nanobench --match picture_overhead as a demo. Everything it exercises is fully fleshed out, so what it tests is an apples-to-apples comparison as far as recording costs go. I have not yet compared playback performance.
It should be simple to wrap this into an SkPicture subclass if we want.
I won't start proposing we replace anything old with anything new quite yet until I have more ducks in a row, but this does look pretty promising (similar to the SkRecord over old SkPicture change a couple years ago) and I'd like to land, experiment, iterate, especially with an eye toward Android.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2213333002
Review-Url: https://codereview.chromium.org/2213333002
|
|
|
|
|
|
|
|
| |
TBR=bsalomon@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2196393007
Review-Url: https://codereview.chromium.org/2196393007
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222593003
Review-Url: https://codereview.chromium.org/2222593003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SkPDFFont:
- never request kHAdvance_PerGlyphInfo from typeface.
- set_glyph_widths() fn uses a glyph cache to get advances.
- stop expecting vertical advances that are never requested.
- composeAdvanceData() now non-templated
- appendAdvance() one-line function removed
SkPDFDevice:
- use a glyph cache for getting repeated advances.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2219733004
Review-Url: https://codereview.chromium.org/2219733004
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2218223002
Review-Url: https://codereview.chromium.org/2218223002
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2204683005
Review-Url: https://codereview.chromium.org/2204683005
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2220603002
Review-Url: https://codereview.chromium.org/2220603002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SkAlphaMulQ(src, src_scale) + SkAlphaMulQ(dst, dst_scale), which boils down to ((src*src_scale)>>8) + ((dst*dst_scale)>>8). In particular, note that the intermediate precision is discarded before the two parts are added together, causing the final result to possibly inaccurate.
In Firefox, we use SkCanvas::saveLayer in combination with a backdrop that initializes the layer to the background. When this is blended back onto background using transparency, where the source and destination pixel colors are the same, the resulting color after the blend is not preserved due to the lost precision mentioned above. In cases where this operation is repeatedly performed, this causes substantially noticeable differences in color as evidenced in this downstream Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1200684
In the test-case in the downstream report, essentially it does blend(src=0xFF2E3338, dst=0xFF2E3338, scale=217), which gives the result 0xFF2E3237, while we would expect to get back 0xFF2E3338.
This problem goes away if the blend is instead reformulated to effectively do (src*src_scale + dst*dst_scale)>>8, which keeps the intermediate precision during the addition before shifting it off.
This modifies the blending operations thusly. The performance should remain mostly unchanged, or possibly improve slightly, so there should be no real downside to doing this, with the benefit of making the results more accurate. Without this, it is currently unsafe for Firefox to blend a layer back onto itself that was initialized with a copy of its background.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2097883002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
[mtklein adds...]
No public API changes.
TBR=reed@google.com
Review-Url: https://codereview.chromium.org/2097883002
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2216403002
Review-Url: https://codereview.chromium.org/2216403002
|
|
|
|
|
|
|
|
| |
This was violating our naming convention
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2216643002
Review-Url: https://codereview.chromium.org/2216643002
|
|
|
|
|
|
|
|
|
|
|
| |
No major new features... just good to keep up.
https://chromium.googlesource.com/chromium/buildtools.git/+log/60f7f9a..9c6ad6f
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2218063002
Review-Url: https://codereview.chromium.org/2218063002
|
|
|
|
|
|
|
|
|
|
|
| |
Merge branch 'shadow-gm' into shadow-sample
Added variable size shadow maps. Also fixed some bugs
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2198933002
Review-Url: https://codereview.chromium.org/2198933002
|
|
|
|
|
|
|
|
| |
This is the non-substantive portion of: https://codereview.chromium.org/2201133002/ (Implement GPU occluded blur mask filter)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2214163003
Review-Url: https://codereview.chromium.org/2214163003
|
|
|
|
|
|
|
|
| |
Change SkDataTable::NewXXX to SkDataTable::MakeXXX and return sk_sp.
This updates users of SkDataTable to sk_sp as well.
There do not appear to be any external users of these methods.
Review-Url: https://codereview.chromium.org/2211143002
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215353003
Review-Url: https://codereview.chromium.org/2215353003
|
|
|
|
|
|
|
|
|
| |
Remove a bunch of "pragma: no cover" by removing unused code or adding test bots to cover.
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215443003
Review-Url: https://codereview.chromium.org/2215443003
|
|
|
|
|
|
|
| |
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2205473002
Review-Url: https://codereview.chromium.org/2205473002
|
|
|
|
|
|
|
| |
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209423002
Review-Url: https://codereview.chromium.org/2209423002
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215113002
TBR=
Review-Url: https://codereview.chromium.org/2215113002
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212593002
Review-Url: https://codereview.chromium.org/2212593002
|
|
|
|
|
|
|
|
|
| |
First step to getting msaa running on vulkan
BUG=skia:5127
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2210383002
Review-Url: https://codereview.chromium.org/2210383002
|
|
|
|
|
|
|
|
| |
This splits out just the GM portion of https://codereview.chromium.org/2201993003/ (Add GM to test out blurmaskfilter occluders) which included some API changes
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2214033002
Review-Url: https://codereview.chromium.org/2214033002
|
|
|
|
|
|
|
|
|
| |
Also fixes SkiaSDLExample.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2210603003
Review-Url: https://codereview.chromium.org/2210603003
|
|
|
|
|
|
|
|
|
| |
exposure: https://codereview.chromium.org/2114993002/
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2151653002
Review-Url: https://codereview.chromium.org/2151653002
|
|
|
|
|
|
|
|
|
|
| |
This will allow me to run these tests in sRGB mode, while
leaving most of the image tests disabled.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2206953006
Review-Url: https://codereview.chromium.org/2206953006
|
|
|
|
|
|
|
| |
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2217523002
Review-Url: https://codereview.chromium.org/2217523002
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since we no longer have to call out to obtain the buildbot_spec, merge
the two functions in vars API. As a side effect, this applies
default_env to the sync steps as well, which shouldn't have an
appreciable effect on bot behavior.
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209343002
Review-Url: https://codereview.chromium.org/2209343002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- builder_name_schema becomes its own recipe module.
- builder_spec, dm, and nanobench flags move into vars module.
- recipe expectation diffs include:
- no more buildbot_spec.py step
- "real" dm and nanobench flags, instead of --dummy-flags
- some inconsequential stuff in visualbench, which is removed anyway.
BUG=skia:5578
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2215803002
Review-Url: https://codereview.chromium.org/2215803002
|
|
|
|
|
|
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212473002
DOCS_PREVIEW= https://skia.org/?cl=2212473002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
[mtklein]
TBR=reed@google.com
Only removing unused public API.
Review-Url: https://codereview.chromium.org/2212473002
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2211973002
Review-Url: https://codereview.chromium.org/2211973002
|
|
|
|
|
|
|
|
|
|
|
| |
This technically shouldn't cause us to draw differently, but sometimes
does on buggy GMs, and also has us go down slightly different code paths.
It's good to be consistent with GYP, Chromium, Google3, etc.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2214023002
Review-Url: https://codereview.chromium.org/2214023002
|
|
|
|
|
|
|
|
|
|
|
|
| |
If no one objects to my "GN bot plan" email, this unblocks us from removing
a bunch of non-GN bots.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2207073002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-GN-Trybot,Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Release-GN-Trybot
Review-Url: https://codereview.chromium.org/2207073002
|
|
|
|
|
|
|
|
|
|
|
|
| |
w/ occluders
44/44 MB 6 497us 500us 500us 502us 0% .oOOooooOO gpu bluroccludedrrect
w/o occluders
41/41 MB 5 1.08ms 1.09ms 1.12ms 1.47ms 11% .........O gpu bluroccludedrrect
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2203153002
Review-Url: https://codereview.chromium.org/2203153002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
split into:
https://codereview.chromium.org/2182543003/ (Move prepareForExternalIO from GrRenderTarget to GrDrawContext)
https://codereview.chromium.org/2187573002/ (Reduce usage of MakeRenderTargetDirect)
https://codereview.chromium.org/2186073002/ (Rename GrContext's newDrawContext & drawContext to makeDrawContext)
https://codereview.chromium.org/2178353005/ (Remove use of MakeRenderTargetDirect from view system)
https://codereview.chromium.org/2198433003/ (Remove some ancillary users of SkSurface::MakeRenderTargetDirect)
https://codereview.chromium.org/2208483004/ (Remove GrRenderTarget member variable from SkGpuDevice)
https://codereview.chromium.org/2211473002/ (Move GrContext::makeDrawContext to new GrContextPriv object)
TBR=bsalomon@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2176333002
Review-Url: https://codereview.chromium.org/2176333002
|
|
|
|
|
|
|
| |
R=robertphillips@google.com,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2217483002
Review-Url: https://codereview.chromium.org/2217483002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/2213973002/ )
Reason for revert:
Think this is going to break Windows again.
Original issue's description:
> Update skimage VERSION: attempt 2
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2213973002
>
> Committed: https://skia.googlesource.com/skia/+/d6dec3f4a1365d34e147234acf3c4a3629146457
TBR=borenet@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2216523003
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2213973002
Review-Url: https://codereview.chromium.org/2213973002
|
|
|
|
|
|
|
|
|
| |
Guard the DMSrcSink SkSVGDOM.h include.
TBR=dogben@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2210583003
Review-Url: https://codereview.chromium.org/2210583003
|
|
|
|
|
|
|
|
| |
Split out of: https://codereview.chromium.org/2176333002/ (Remove SkSurface::MakeRenderTargetDirect)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2208483004
Review-Url: https://codereview.chromium.org/2208483004
|
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209533004
No public API changes.
TBR=reed@google.com
Review-Url: https://codereview.chromium.org/2209533004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/2211633002/ )
Reason for revert:
The CIPD package is broken
Original issue's description:
> Update to new skimage VERSION
> TBR=borenet@google.com
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2211633002
>
> Committed: https://skia.googlesource.com/skia/+/52d1be5ca7b1ba8cc450be7dd6377ea5bb73386a
TBR=msarett@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2216613002
|
|
|
|
|
|
|
| |
R=mtklein@google.com,robertphillips@google.com,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2209593004
Review-Url: https://codereview.chromium.org/2209593004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(patchset #8 id:150001 of https://codereview.chromium.org/2212473002/ )
Reason for revert:
missed GrVkPipelineStateCache
Original issue's description:
> SkRTConf: reduce functionality to what we use, increase simplicity
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212473002
> DOCS_PREVIEW= https://skia.org/?cl=2212473002
> CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
>
> [mtklein]
> TBR=reed@google.com
> Only removing unused public API.
>
> Committed: https://skia.googlesource.com/skia/+/ef59974708dade6fa72fb0218d4f8a9590175c47
TBR=halcanary@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.chromium.org/2215433003
|
|
|
|
|
|
|
|
| |
TBR=borenet@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2211633002
Review-Url: https://codereview.chromium.org/2211633002
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2206143003
Review-Url: https://codereview.chromium.org/2206143003
|
|
|
|
|
|
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2212473002
DOCS_PREVIEW= https://skia.org/?cl=2212473002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
[mtklein]
TBR=reed@google.com
Only removing unused public API.
Review-Url: https://codereview.chromium.org/2212473002
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2200833010
Review-Url: https://codereview.chromium.org/2200833010
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't want external clients to be able to call the wrapping makeDrawContext. The "creating" makeDrawContext needs to be public for external image filters.
The 3 specialized drawContext creators on GrContextPriv (to wrap backend objects) are also to be kept from public use and will be used to remove SkSurface::MakeRenderTargetDirect.
Split out of: https://codereview.chromium.org/2176333002/ (Remove SkSurface::MakeRenderTargetDirect)
TBR=bsalomon@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2211473002
Review-Url: https://codereview.chromium.org/2211473002
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2203283003
Review-Url: https://codereview.chromium.org/2203283003
|
|
|
|
|
|
|
|
|
| |
also: hack a unit test
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2208743003
Review-Url: https://codereview.chromium.org/2208743003
|