| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
| |
BUG=skia:
R=bsalomon@google.com
Author: joshualitt@chromium.org
Review URL: https://codereview.chromium.org/571163002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The OptDrawState is now used for creating the actual gl shader. Current
optimizations dones in GrOptDrawState include:
All blend optimizations
Constant color/coverage stage optimizations
BUG=skia:
R=bsalomon@google.com, joshualitt@google.com
Author: egdaniel@google.com
Review URL: https://codereview.chromium.org/504203004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It seems most (all?) implementations of BlitFrameBuffer actually
obey the scissor test, so just always disable the scissor before
calling BlitFrameBuffer.
Original Author: Henry Song <henrysong@samsung.com>
R=bsalomon@google.com, hcm@google.com
Author: derekf@osg.samsung.com
Review URL: https://codereview.chromium.org/574543002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For future reference, the rec 601 matrix can be defined by the concatenation of these 2 matrices:
[1.164 0.0 1.596 0.0]
[1.164 -0.391 -0.813 0.0]
[1.164 2.018 0.0 0.0]
[1.164 0.0 0.0 1.0]
See: http://www.fourcc.org/fccyvrgb.php
and
[1.0 0.0 0.0 -0.0625]
[0.0 1.0 0.0 -0.5 ]
[0.0 0.0 1.0 -0.5 ]
[0.0 0.0 0.0 1.0 ]
Which transforms Y by -0.0625 (-16/256) and U and V by
-0.5 (-128/256) each.
Giving us the final matrix:
[1.164 0.0 1.596 -0.87075]
[1.164 -0.391 -0.813 0.52925]
[1.164 2.018 0.0 -1.08175]
[0.0 0.0 0.0 1.0 ]
Which produces our output [R,G,B,A], when multiplied
with an input [Y,U,V,A].
R=bsalomon@google.com
Author: rileya@chromium.org
Review URL: https://codereview.chromium.org/545983006
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Picks the correct distance field size based on both the text size and
the max matrix scale. Adjusts the matrix scale if non-unity. Also adds
GM for verifying proper distance field scaling.
BUG=skia:2928
R=bsalomon@google.com, joshualitt@google.com
Author: jvanverth@google.com
Review URL: https://codereview.chromium.org/568843002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SkDeferredCanvas::isFullFrame
blink skips all pending commands during picture recording if it is drawing an opaque full-frame
geometry or image. This may improve performance for some edge cases. To recognize an opaque
full-frame drawing should be cheap enough. Otherwise, the overhead will offset the improvement.
Unfortunately, data from perf for content_shell on Nexus7 shows that SkDeferredCanvas::isFullFrame
is far from cheap. Table below shows that how much isFullFrame() costs in the whole render process.
benchmark percentage
my local benchmark(draw 1000 sprites) 4.1%
speedReading 2.8%
FishIETank(1000 fishes) 1.5%
GUIMark3 Bitmap 2.0%
By contrast, real recording (SkGPipeCanvas::drawBitmapRectToRect) and real rasterization
(GrDrawTarget::drawRect) cost ~4% and ~6% in the whole render process respectively. Apparently,
SkDeferredCanvas::isFullFrame() is nontrivial.
getDeviceSize() is the main contributor to this hotspot. The change simply save the canvasSize and
reuse it among drawings if it is not a fresh frame. This change cut off ~65% (or improved ~2 times)
of isFullFrame().
telemetry smoothness canvas_tough_test didn't show obvious improvement or regression.
BUG=411166
Committed: https://skia.googlesource.com/skia/+/8e45c3777d886ba3fe239bb549d06b0693692152
R=junov@chromium.org, tomhudson@google.com, reed@google.com
Author: yunchao.he@intel.com
Review URL: https://codereview.chromium.org/545813002
|
|
|
|
|
|
|
|
|
|
| |
Automatic commit by the RecreateSKPs bot.
TBR=
Author: borenet@google.com
Review URL: https://codereview.chromium.org/571293002
|
|
|
|
|
|
|
|
|
| |
R=mtklein@google.com
TBR=mtklein@google.com
Author: fmalita@chromium.org
Review URL: https://codereview.chromium.org/569313004
|
|
|
|
|
|
|
|
|
|
| |
Measure picture overhead for recording & playback using a Sierpinski fractal (http://skfiddle.com/c/a2b6e60d775543b7c29a5d45d0371c02) with various picture nesting levels.
R=mtklein@google.com, reed@google.com
Author: fmalita@chromium.org
Review URL: https://codereview.chromium.org/566393002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Just happened to notice these while skimming through. The comments are a
little out of date; now that we have visit/mutate, we do need O(1) random
access.
The constructor arguments are flexibility we're not using.
BUG=skia:
R=fmalita@google.com
Author: mtklein@skia.org
Review URL: https://codereview.chromium.org/569373002
|
|
|
|
|
|
|
|
|
| |
NOTRY=True
R=bungeman@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/574493002
|
|
|
|
|
|
|
|
|
|
|
| |
We've already done the analysis for child pictures. Don't do it again.
BUG=skia:
R=fmalita@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/573833002
|
|
|
|
|
|
|
|
| |
R=bsalomon@google.com, egdaniel@google.com, jvanverth@google.com, robertphillips@google.com
Author: joshualitt@chromium.org
Review URL: https://codereview.chromium.org/543623004
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 595aa05efcb504e85358b8d328ac4a9fa1c46e2e.
BUG=skia:
R=mtklein@google.com, danakj@chromium.org
Author: reed@google.com
Review URL: https://codereview.chromium.org/569353002
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the root cause of a Chrome rendering bug when it tiles
layers with masks.
BUG=skia:1291,chromium:401593
R=reed@google.com, mtklein@google.com, junov@chromium.org
Author: dneto@chromium.org
Review URL: https://codereview.chromium.org/568073004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(patchset #2 id:20001 of https://codereview.chromium.org/567393002/)
Reason for revert:
crashes on android bots, haven't diagnosed yet
Original issue's description:
> Change SkResourceCache to take a Visitor inside its find().
>
> This simplifies the API/contract, in that there are not any exposed
> lock/unlock scopes.
>
>
> patch from issue 572573002
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/dee6a8e67db39fcbde2b3bb09be1d088ebb9db8a
R=mtklein@google.com, danakj@chromium.org
TBR=danakj@chromium.org, mtklein@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: reed@google.com
Review URL: https://codereview.chromium.org/569303002
|
|
|
|
|
|
|
|
|
|
|
| |
As usual it's enabled by default in the Skia tree. Will flip in Chrome after this rolls.
BUG=skia:
R=robertphillips@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/573773002
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This provides exact precision
to help debugging when the float
representation of a SkScalar may
introduce error.
R=reed@google.com
Author: caryclark@google.com
Review URL: https://codereview.chromium.org/571973003
|
|
|
|
|
|
| |
BUG=skia:2937
Review URL: https://codereview.chromium.org/571963002
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
R=bsalomon@google.com
Author: egdaniel@google.com
Review URL: https://codereview.chromium.org/508663002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This simplifies the API/contract, in that there are not any exposed
lock/unlock scopes.
patch from issue 572573002
BUG=skia:
R=mtklein@google.com, danakj@chromium.org
Author: reed@google.com
Review URL: https://codereview.chromium.org/567393002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SkDeferredCanvas::isFullFrame (patchset #7 id:140001 of https://codereview.chromium.org/545813002/)
Reason for revert:
This is leaking memory:
http://108.170.220.120:10117/builders/Test-Ubuntu13.10-GCE-NoGPU-x86_64-Debug-ASAN/builds/2516/steps/RunDM/logs/stdio
Original issue's description:
> Picture Recording: fix the performance bottleneck in SkDeferredCanvas::isFullFrame
>
> blink skips all pending commands during picture recording if it is drawing an opaque full-frame
> geometry or image. This may improve performance for some edge cases. To recognize an opaque
> full-frame drawing should be cheap enough. Otherwise, the overhead will offset the improvement.
> Unfortunately, data from perf for content_shell on Nexus7 shows that SkDeferredCanvas::isFullFrame
> is far from cheap. Table below shows that how much isFullFrame() costs in the whole render process.
>
> benchmark percentage
> my local benchmark(draw 1000 sprites) 4.1%
> speedReading 2.8%
> FishIETank(1000 fishes) 1.5%
> GUIMark3 Bitmap 2.0%
>
> By contrast, real recording (SkGPipeCanvas::drawBitmapRectToRect) and real rasterization
> (GrDrawTarget::drawRect) cost ~4% and ~6% in the whole render process respectively. Apparently,
> SkDeferredCanvas::isFullFrame() is nontrivial.
>
> getDeviceSize() is the main contributor to this hotspot. The change simply save the canvasSize and
> reuse it among drawings if it is not a fresh frame. This change cut off ~65% (or improved ~2 times)
> of isFullFrame().
>
> telemetry smoothness canvas_tough_test didn't show obvious improvement or regression.
>
> BUG=411166
>
> Committed: https://skia.googlesource.com/skia/+/8e45c3777d886ba3fe239bb549d06b0693692152
R=junov@chromium.org, tomhudson@google.com, reed@google.com, yunchao.he@intel.com
TBR=junov@chromium.org, reed@google.com, tomhudson@google.com, yunchao.he@intel.com
NOTREECHECKS=true
NOTRY=true
BUG=411166
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/571053002
|
|
|
|
|
|
|
|
| |
TBR=
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/567303002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SkDeferredCanvas::isFullFrame
blink skips all pending commands during picture recording if it is drawing an opaque full-frame
geometry or image. This may improve performance for some edge cases. To recognize an opaque
full-frame drawing should be cheap enough. Otherwise, the overhead will offset the improvement.
Unfortunately, data from perf for content_shell on Nexus7 shows that SkDeferredCanvas::isFullFrame
is far from cheap. Table below shows that how much isFullFrame() costs in the whole render process.
benchmark percentage
my local benchmark(draw 1000 sprites) 4.1%
speedReading 2.8%
FishIETank(1000 fishes) 1.5%
GUIMark3 Bitmap 2.0%
By contrast, real recording (SkGPipeCanvas::drawBitmapRectToRect) and real rasterization
(GrDrawTarget::drawRect) cost ~4% and ~6% in the whole render process respectively. Apparently,
SkDeferredCanvas::isFullFrame() is nontrivial.
getDeviceSize() is the main contributor to this hotspot. The change simply save the canvasSize and
reuse it among drawings if it is not a fresh frame. This change cut off ~65% (or improved ~2 times)
of isFullFrame().
telemetry smoothness canvas_tough_test didn't show obvious improvement or regression.
BUG=411166
R=junov@chromium.org, tomhudson@google.com, reed@google.com
Author: yunchao.he@intel.com
Review URL: https://codereview.chromium.org/545813002
|
|
|
|
|
|
|
|
| |
R=bsalomon@google.com, senorblanco@chromium.org, sugoi@chromium.org, reed@google.com
Author: rileya@chromium.org
Review URL: https://codereview.chromium.org/516463005
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(patchset #2 id:20001 of https://codereview.chromium.org/568913002/)
Reason for revert:
nope, nacl and ubuntu local bots (at least) broken
Original issue's description:
> Add a test that uses C++11 features as a compiler canary.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/86e01df8d1d8848044c3fcc31c1a2008b70fe08c
R=bungeman@google.com, mtklein@chromium.org
TBR=bungeman@google.com, mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/565213008
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
R=bungeman@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/568913002
|
|
|
|
|
|
|
|
|
|
|
|
| |
clang-cl defines __cplusplus to 201103L, but it uses the runtime library
provided by MSVC, so the copysign function will not be available there.
BUG=skia:
R=reed@google.com
Author: ehsan.akhgari@gmail.com
Review URL: https://codereview.chromium.org/526813002
|
|
|
|
|
|
|
|
|
|
| |
SampleApp does this, and it needs to be handled properly.
R=mtklein@google.com
Author: bungeman@google.com
Review URL: https://codereview.chromium.org/563263003
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
R=bungeman@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/565803005
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
R=hcm@google.com, reed@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/565293002
|
|
|
|
|
|
|
|
|
|
|
| |
Tested by running DM with its SkTaskGroup::Enabler commented out. Slow, but completed correctly.
BUG=skia:
R=reed@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/556223003
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/568823002
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
R=bungeman@google.com, djsollen@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/563273003
|
|
|
|
|
|
|
|
|
|
| |
Automatic commit by the RecreateSKPs bot.
TBR=
Author: borenet@google.com
Review URL: https://codereview.chromium.org/571443002
|
|
|
|
|
|
|
|
|
|
|
|
| |
Looks like something's setting an error before ErrorTest runs on our new
Venue8 bots.
BUG=skia:
R=humper@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/551973004
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
R=reed@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/563723005
|
|
|
|
|
|
|
|
| |
TBR=halcananry
Author: reed@google.com
Review URL: https://codereview.chromium.org/554263005
|
|
|
|
|
|
|
|
|
| |
BUG=skia:2926
R=reed@google.com
Author: danakj@chromium.org
Review URL: https://codereview.chromium.org/568493002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds SkResourceCache::Remove() which will remove a resource from
its cache. The resource is required to be unlocked at the time Remove()
is called.
Then SkBitmapCache::Find() makes use of this to Remove() bitmaps from
the cache whose pixels have been evicted. This allows the bitmap to be
re-added to the cache with pixels again.
After this change, background a tab (and discarding all the bitmaps'
contents) no longer disables image caching for those discarded images
once the tab is visible again.
BUG=skia:2926
NOTRY=true
R=reed@android.com, tomhudson@google.com, reed@google.com
Author: danakj@chromium.org
Review URL: https://codereview.chromium.org/561953002
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
R=bungeman@google.com, mtklein@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/560653004
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
R=reed@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/563633003
|
|
|
|
|
|
|
|
|
|
| |
Automatic commit by the RecreateSKPs bot.
TBR=
Author: borenet@google.com
Review URL: https://codereview.chromium.org/559283002
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
R=robertphillips@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/561993002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We optimize
Save
SaveLayer
Restore
Restore
into
NoOp
NoOp
NoOp
Restore
I'm considering skipping the call to SkRecordOptimize again just to eliminate
this extra variable from landing SkRecord. Thoughts?
BUG=skia:
R=robertphillips@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/560163002
|
|
|
|
|
|
|
|
| |
R=mtklein@google.com, tomhudson@google.com, djsollen@google.com
Author: bungeman@google.com
Review URL: https://codereview.chromium.org/105223006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/564493002/)
Reason for revert:
This is causing dm and gm to crash on the Win8 7770 bots, for example
http://108.170.220.120:10117/builders/Test-Win8-ShuttleA-HD7770-x86-Debug/builds/2128
An example stack trace looks like
[13:46:16.260000] -1M drawing... extractbitmap [600 600]
[13:46:16.760000] -1M drawing... etc1bitmap_npot [124 124]
[13:46:16.760000] -1M drawing... etc1bitmap_r11.ktx [128 128]
[13:46:16.760000] -1M drawing... etc1bitmap_ktx [128 128]
[13:46:16.760000] -1M drawing... etc1bitmap_pkm_volatile [128 128]
[13:46:16.760000]
[13:46:16.760000] Caught exception 3221225477 EXCEPTION_ACCESS_VIOLATION
[13:46:16.760000] sk_gr_allocate_texture +c9
[13:46:16.760000] load_etc1_texture +1dd
[13:46:16.760000] sk_gr_create_bitmap_texture +199
[13:46:16.760000] GrLockAndRefCachedBitmapTexture +ad
[13:46:16.760000] SkGpuDevice::SkAutoCachedTexture::set +5d
[13:46:16.760000] SkGpuDevice::SkAutoCachedTexture::SkAutoCachedTexture +65
[13:46:16.760000] SkGpuDevice::internalDrawBitmap +8e
[13:46:16.760000] SkGpuDevice::drawBitmapCommon +608
[13:46:16.760000] SkGpuDevice::drawBitmap +79
[13:46:16.760000] SkCanvas::internalDrawBitmap +11b
[13:46:16.760000] SkCanvas::drawBitmap +d3
[13:46:16.760000] skiagm::ETC1BitmapGM::onDraw +140
[13:46:16.760000] skiagm::GM::drawContent +3c
[13:46:16.760000] skiagm::GM::draw +24
[13:46:16.760000] GMMain::invokeGM +63
[13:46:16.760000] GMMain::generate_image +186
[13:46:16.760000] GMMain::test_drawing +5b
[13:46:16.760000] run_multiple_configs +2f9
[13:46:16.760000] tool_main +75d
[13:46:16.760000] main +16
[13:46:16.760000] __tmainCRTStartup +199
[13:46:16.760000] mainCRTStartup +d
[13:46:16.760000] BaseThreadInitThunk +e
[13:46:16.760000] RtlInitializeExceptionChain +84
[13:46:16.760000] RtlInitializeExceptionChain +5a
Original issue's description:
> Added test for non cached ETC1
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/d9ec549071581d9d1dc2e5fac3163305ae935a39
R=bsalomon@chromium.org, robertphillips@chromium.org, robertphillips@google.com, sugoi@chromium.org
TBR=bsalomon@chromium.org, robertphillips@chromium.org, robertphillips@google.com, sugoi@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: bungeman@google.com
Review URL: https://codereview.chromium.org/559093003
|
|
|
|
|
|
|
|
|
|
|
|
| |
On win64, long is 32-bit. Found by GCC (mingw-w64) build, where this causes an error.
This is the Skia version of https://codereview.chromium.org/374043002 .
R=bungeman@google.com, humper@google.com
Author: cjacek@gmail.com
Review URL: https://codereview.chromium.org/510923002
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
R=bsalomon@chromium.org, robertphillips@chromium.org, robertphillips@google.com
Author: sugoi@chromium.org
Review URL: https://codereview.chromium.org/564493002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Today we measure SkPicture playback speed, but not the time it takes to record
the SkPicture. This fixes that by reading SKPs from disk and re-recording them.
On the console, recording shows up first as the nonrendering skp benches,
followed later by the usual playback benches:
maxrss loops min median mean max stddev samples config bench
51M 2 165µs 168µs 169µs 178µs 3% ▆▄▃█▂▄▁▂▁▁ nonrendering tabl_slashdot.skp
57M 1 9.72ms 9.77ms 9.79ms 9.97ms 1% █▂▂▅▃▂▁▄▂▁ nonrendering desk_pokemonwiki.skp
57M 32 2.92µs 2.96µs 3.03µs 3.46µs 6% ▅▁▁▁▁▁▁█▂▁ nonrendering desk_yahoosports.skp
...
147M 1 3.86ms 3.87ms 3.97ms 4.81ms 7% █▁▁▁▁▁▁▁▁▁ 8888 tabl_slashdot.skp_1
147M 1 4.54ms 4.56ms 4.55ms 4.56ms 0% █▅▇▅█▅▂▁▅▁ 565 tabl_slashdot.skp_1
147M 2 3.08ms 3.24ms 4.17ms 8.18ms 50% █▁▁█▁▁▁▁▁▁ gpu tabl_slashdot.skp_1
147M 1 1.61ms 1.62ms 1.69ms 2.33ms 13% █▁▁▁▁▁▁▁▁▁ 8888 desk_pokemonwiki.skp_1
147M 1 1.44ms 1.44ms 1.45ms 1.47ms 1% ▅▂█▂▂▅▁▁▂▁ 565 desk_pokemonwiki.skp_1
...
On skiaperf.com, they'll also be separated out from playback benches by bench_type.
BUG=skia:
R=reed@google.com, mtklein@google.com, jcgregorio@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/559153002
|