mtklein
6a5c7085bc
Add SkMiniData.
...
This is a bit like a limited SkData, geared to store really tiny byte strings.
This is not hooked up anywhere beyond the new unit test. I did experimentally
plumb it into SkRecord for drawPosTextH: just over 40% of drawPosTextH calls in
our repo can fit into ShortData.
BUG=skia:
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/573323002
2014-09-17 12:21:59 -07:00
bungeman
ef59adba5b
Clarify build test for presense of 'float copysign(float, float)'.
...
Clang-cl reports __cplusplus based on the version of clang instead of
reporting the __cplusplus the vc++ version _MSC_VER would.
This is important as the _MSC_VER also indicates which vc++ runtime
library will be used. As a result, do not trust the __cplusplus version
reported by clang-cl.
This change clarifies the intent of
https://skia.googlesource.com/skia/+/c34b0d4e9ad5806c1f882a1f85191f2ea8ddcdba
R=reed@google.com
Author: bungeman@google.com
Review URL: https://codereview.chromium.org/576023003
2014-09-17 11:16:51 -07:00
reed
85265ffebe
declare to gypi where SkDeviceProperties.h moved to
...
NOTRY=True
NOTREECHECKS=True
TBR=
Author: reed@google.com
Review URL: https://codereview.chromium.org/574383002
2014-09-17 10:59:24 -07:00
reed
e010f1c2a0
hide deviceproperties, prepare the way for surfaceprops
...
BUG=skia:
NOTRY=True
R=bungeman@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/577023002
2014-09-17 10:49:38 -07:00
cdalton
4e205b1079
Remove createPath* from GrGpu and GrContext
...
Now that we have the GrPathRendering class, it doesn't make sense to
have a bunch of shims on on GrGpu. This updates the path rendering
clients to make calls directly on the GrPathRendering object.
BUG=skia:2939
R=bsalomon@google.com
Author: cdalton@nvidia.com
Review URL: https://codereview.chromium.org/578563002
2014-09-17 09:41:24 -07:00
cdalton
149b3ec2b1
Adds glMemoryGlyphIndexArrayNV to the GrGLInterface and begins
...
detecting support for this method in GrGLPathRendering.
BUG=skia:2939
R=bsalomon@google.com
Author: cdalton@nvidia.com
Review URL: https://codereview.chromium.org/570733002
2014-09-17 09:19:18 -07:00
humper
9a0267fa9a
gyp build of skfiddle apps, take 2
...
BUG=skia:
R=jcgregorio@google.com
Author: humper@google.com
Review URL: https://codereview.chromium.org/553333004
2014-09-17 08:42:46 -07:00
egdaniel
a7dc0a83f0
Calculate stage stats in GrOptDrawState
...
BUG=skia:
R=bsalomon@google.com
Author: egdaniel@google.com
Review URL: https://codereview.chromium.org/545693004
2014-09-17 08:25:05 -07:00
bsalomon
f96ba02513
Rename GrProgramResource to GrGpuResourceRef
...
BUG=skia:2889
R=robertphillips@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/574333003
2014-09-17 08:05:40 -07:00
robertphillips
4aa6dfc0b7
Separate replacement creation from layer discovery
...
This is a simple refactoring that sets the stage for eliminating GrReplacements::ReplacementInfo and splitting up EXPERIMENTAL_drawPicture to support multi picture draw.
R=bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/559603004
2014-09-17 07:50:47 -07:00
bungeman
b374d6a62c
Add onGetFamilyName to SkTypeface.
...
This speeds up and documents this particular feature of SkTypeface
and also frees up SkFontDescriptor to be used only in serialization.
R=reed@google.com
Author: bungeman@google.com
Review URL: https://codereview.chromium.org/574873002
2014-09-17 07:48:59 -07:00
bsalomon
3850971d54
Revert "Revert "Move SkGpuDevice.h to src/gpu""
...
This reverts commit b0a35f7c5d
.
R=borenet@google.com
TBR=borenet@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/575783003
2014-09-17 07:44:25 -07:00
Florin Malita
8bb9e1e412
Rebaseline textblob GM after acb882c
...
TBR=stephana@google.com
Review URL: https://codereview.chromium.org/575893003
2014-09-17 10:21:48 -04:00
joshualitt
408d6125b3
Breaking out full program and frag only
...
BUG=skia:
R=bsalomon@google.com
Author: joshualitt@chromium.org
Review URL: https://codereview.chromium.org/576543005
2014-09-17 07:00:35 -07:00
mtklein
963504bd0a
Revert of nanobench: lazily decode bitmaps from SKPs (patchset #1 id:1 of https://codereview.chromium.org/572933006/ )
...
Reason for revert:
skia:2944
Original issue's description:
> nanobench: lazily decode bitmaps from SKPs
>
> This makes it considerably cheaper to run SKP recording benchmarks, without
> affecting their measurements and without really affecting SKP playback
> benchmarks at all.
>
> On my machine, running out/Release/nanobench --match skp --config nondrendering
> drops in run time from 6.7s to 2.5s, and the peak RAM usage drops from 129M to 50M.
>
> I'm strongly considering making this lazy decoding the default.
>
> BUG=skia:2944
>
> Committed: https://skia.googlesource.com/skia/+/d664c21a38de98d8db210c46f7a8c4187f1534da
R=robertphillips@google.com , mtklein@chromium.org
TBR=mtklein@chromium.org , robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2944
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/554583004
2014-09-17 06:58:39 -07:00
borenet
b0a35f7c5d
Revert "Move SkGpuDevice.h to src/gpu"
...
This reverts commit d99bbb61e5
.
Causing Chrome canary failures as well as failures of Chrome trybots due to
not cleaning up properly after failed DEPS roll attempts.
BUG=skia:
R=bsalomon@google.com , reed@google.com
TBR=bsalomon, reed
Author: borenet@google.com
Review URL: https://codereview.chromium.org/579733003
2014-09-17 06:14:35 -07:00
robertphillips
e3371304b8
Fix typo
...
R=jvanverth@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/579753003
2014-09-17 06:01:07 -07:00
fmalita
acb882c239
Ensure blob typeface information survives SkGPipe serialization.
...
When flattening text blobs to the temp buffer, we need to collect
typeface info and ship it across the pipe explicitly.
R=mtklein@google.com , reed@google.com , robertphillips@google.com , bungeman@google.com
BUG=412445
Author: fmalita@chromium.org
Review URL: https://codereview.chromium.org/563783003
2014-09-16 17:58:34 -07:00
bsalomon
d99bbb61e5
Move SkGpuDevice.h to src/gpu
...
R=reed@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/545193006
2014-09-16 14:09:13 -07:00
bsalomon
c49233410e
Make templated GrProgramTResource subclass of GrProgramResource
...
R=robertphillips@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/563963004
2014-09-16 13:54:53 -07:00
mtklein
d664c21a38
nanobench: lazily decode bitmaps from SKPs
...
This makes it considerably cheaper to run SKP recording benchmarks, without
affecting their measurements and without really affecting SKP playback
benchmarks at all.
On my machine, running out/Release/nanobench --match skp --config nondrendering
drops in run time from 6.7s to 2.5s, and the peak RAM usage drops from 129M to 50M.
I'm strongly considering making this lazy decoding the default.
BUG=skia:
R=robertphillips@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/572933006
2014-09-16 13:36:12 -07:00
egdaniel
170f90b457
Attach GrOptDrawState into shader building pipeline
...
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:
Committed: https://skia.googlesource.com/skia/+/ee6206572b42fec11f83ad0c1e6d435903640518
R=bsalomon@google.com , joshualitt@google.com
Author: egdaniel@google.com
Review URL: https://codereview.chromium.org/504203004
2014-09-16 12:54:40 -07:00
reed
3375c8047e
when we disable lcd for impl reasons, add kGenA8 to document the original intent
...
BUG=skia:
R=bungeman@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/572933004
2014-09-16 12:27:55 -07:00
mtklein
1e78fc4ed2
Turn disable or delete optimizations that don't have any effect.
...
Recording gets a ~5% speedup.
BUG=skia:
R=robertphillips@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/577673003
2014-09-16 11:11:20 -07:00
joshualitt
e3b051cf8b
Adding myself to comitters
...
BUG=skia:
R=rmistry@google.com
Author: joshualitt@chromium.org
Review URL: https://codereview.chromium.org/579453002
2014-09-16 11:03:39 -07:00
reed
30ad5306be
allow SkBitmapCache to operate on a local instance, for testability
...
BUG=skia:
R=mtklein@google.com , danakj@chromium.org , piotaixr@chromium.org , junov@chromium.org
Author: reed@google.com
Review URL: https://codereview.chromium.org/576763002
2014-09-16 10:39:55 -07:00
robertphillips
4815fe5a0a
Fix bug in layer hoisting transition to SkRecord backend
...
Care must be taken when setting up the initial CTM matrix for partial SkRecord playbacks b.c. all the setMatrix calls will concatenate with the initial matrix (which may be different then the CTM that is required to draw correctly).
R=mtklein@google.com , bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/549143003
2014-09-16 10:32:43 -07:00
mtklein
e1daac9b26
Tag recording picture nesting bench as nonrendering.
...
Doesn't hurt as is, but we're running it several times unneccesarily.
(I couldn't compile without removing an unused constant in that other GM...)
BUG=skia:
R=fmalita@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/570303002
2014-09-16 10:12:42 -07:00
robertphillips
c506e3007e
Fix convexicator bug
...
BUG=crbug.com/412640
R=caryclark@google.com , bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/573763002
2014-09-16 09:43:32 -07:00
tomhudson
a32f1758b7
Add helper SkMatrix44::hasPerspective()
...
BUG=skia:1017
R=danakj@chromium.org , reed@google.com
Author: tomhudson@google.com
Review URL: https://codereview.chromium.org/513343002
2014-09-16 08:29:29 -07:00
joshualitt
49586bec73
removing GrDrawEffect
...
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/8ddbe8b9366c8c59c4fb55f01f253de8a0b37d6e
R=bsalomon@google.com
Author: joshualitt@chromium.org
Review URL: https://codereview.chromium.org/571163002
2014-09-16 08:21:42 -07:00
egdaniel
8a4c1030ff
Revert of Attach GrOptDrawState into shader building pipeline (patchset #11 id:220001 of https://codereview.chromium.org/504203004/ )
...
Reason for revert:
Failing some msaa gm's
Original issue's description:
> Attach GrOptDrawState into shader building pipeline
>
> 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:
>
> Committed: https://skia.googlesource.com/skia/+/ee6206572b42fec11f83ad0c1e6d435903640518
R=bsalomon@google.com , joshualitt@google.com
TBR=bsalomon@google.com , joshualitt@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: egdaniel@google.com
Review URL: https://codereview.chromium.org/560443004
2014-09-16 07:18:54 -07:00
joshualitt
08da4f22d7
Revert of removing GrDrawEffect (patchset #4 id:60001 of https://codereview.chromium.org/571163002/ )
...
Reason for revert:
reverting to unblock another revert
Original issue's description:
> removing GrDrawEffect
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/8ddbe8b9366c8c59c4fb55f01f253de8a0b37d6e
R=bsalomon@google.com
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: joshualitt@chromium.org
Review URL: https://codereview.chromium.org/577593003
2014-09-16 07:17:28 -07:00
joshualitt
8ddbe8b936
removing GrDrawEffect
...
BUG=skia:
R=bsalomon@google.com
Author: joshualitt@chromium.org
Review URL: https://codereview.chromium.org/571163002
2014-09-16 06:46:30 -07:00
egdaniel
ee6206572b
Attach GrOptDrawState into shader building pipeline
...
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
2014-09-16 06:34:42 -07:00
derekf
8c8f71ac07
Always disable the scissor test before BlitFrameBuffer
...
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
2014-09-16 06:24:58 -07:00
rileya
223ba624b7
Fix incorrect Rec601 YUV conversion matrix coefficient.
...
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
2014-09-16 06:23:50 -07:00
jvanverth
9564ce60a6
Fix scaling issue with distance field text.
...
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
2014-09-16 05:45:19 -07:00
yunchao.he
49005bf892
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
Author: yunchao.he@intel.com
Review URL: https://codereview.chromium.org/545813002
2014-09-15 22:30:38 -07:00
borenet
ae232a20d7
Update SKP version to 103
...
Automatic commit by the RecreateSKPs bot.
TBR=
Author: borenet@google.com
Review URL: https://codereview.chromium.org/571293002
2014-09-15 21:12:37 -07:00
fmalita
df886ea06f
Fix leak in PictureNestingBench
...
R=mtklein@google.com
TBR=mtklein@google.com
Author: fmalita@chromium.org
Review URL: https://codereview.chromium.org/569313004
2014-09-15 18:20:11 -07:00
fmalita
44162675ca
Nested picture nanobench
...
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
2014-09-15 16:46:16 -07:00
mtklein
db26a1267d
SkRecord: clean up comments and 4 bytes per SkRecord.
...
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
2014-09-15 14:26:57 -07:00
reed
f0ddf33f19
add lua to histogram text lengths
...
NOTRY=True
R=bungeman@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/574493002
2014-09-15 12:44:14 -07:00
mtklein
4fc5b8811e
SkPicture::PathCounter is O(N^2) for pictures nested N deep. Fix that.
...
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
2014-09-15 12:31:34 -07:00
joshualitt
249af15fb8
BUG=skia:
...
R=bsalomon@google.com , egdaniel@google.com , jvanverth@google.com , robertphillips@google.com
Author: joshualitt@chromium.org
Review URL: https://codereview.chromium.org/543623004
2014-09-15 11:41:14 -07:00
reed
c90e0149ec
Change SkResourceCache to take a Visitor inside its find().
...
This reverts commit 595aa05efc
.
BUG=skia:
R=mtklein@google.com , danakj@chromium.org
Author: reed@google.com
Review URL: https://codereview.chromium.org/569353002
2014-09-15 11:39:45 -07:00
dneto
327f905d2c
Fix recording of saveLayout with unusual Xfermodes.
...
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
2014-09-15 10:53:16 -07:00
reed
595aa05efc
Revert of Change SkResourceCache to take a Visitor inside its find(). (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
2014-09-15 10:15:18 -07:00
mtklein
81940de688
Add flag to call SkRecordOptimize on new pictures.
...
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
2014-09-15 09:28:54 -07:00