reed
37c5a815d8
Speculative revert to diagnose crash in chrome. Revert "Add SkCachedData and use it for SkMipMap"
...
This reverts commit 92561a0b99
.
crasher in question:
https://code.google.com/p/chromium/issues/detail?id=420178
Review URL: https://codereview.chromium.org/617613003
2014-10-03 13:23:31 -07:00
reed
92561a0b99
Add SkCachedData and use it for SkMipMap
...
Review URL: https://codereview.chromium.org/592843003
2014-10-02 13:47:08 -07:00
piotaixr
e4b231428e
Caching the result of readPixelsSupported
...
The call was calling GR_GL_GetIntegerv 2 times for each readPixels
and thus was causing a loss of performance
(resubmit of issue 344793008)
Benchmark url: http://packages.gkny.fr/tst/index.html
BUG=skia:2681
Committed: https://skia.googlesource.com/skia/+/753a2964afe5661ce9b2a8ca77ca9d0aabd3173c
Committed: https://skia.googlesource.com/skia/+/8339371f1ec3c57a0741932fd96bff32c53d4e54
Review URL: https://codereview.chromium.org/364193004
2014-10-02 10:57:53 -07:00
mtklein
ed48ebe39e
Archive more dead code.
...
These classes were used by QuadTree, which has been archived (with prejudice).
BUG=skia:
Review URL: https://codereview.chromium.org/616963006
2014-10-02 09:06:02 -07:00
mtklein
6bd41969a0
BBHs: void* data -> unsigned data
...
Now that the old backend's not using BBHs, we can specialize them for
SkRecord's needs. The only thing we really want to store is op index, which
should always be small enough to fit into an unsigned (unsigned also helps keep
it straight from other ints floating around).
This means we'll need half (32-bit) or a quarter (64-bit) the bytes in SkTileGrid,
because we don't have to store an extra int for ordering.
BUG=skia:2834
Review URL: https://codereview.chromium.org/617393004
2014-10-02 07:41:56 -07:00
derekf
29dda80c01
Add support for EGL on linux
...
Allow setting skia_egl=1 to build skia against EGL instead of GLX on unix
Review URL: https://codereview.chromium.org/604853003
2014-10-01 10:52:52 -07:00
mtklein
f6fde175b8
Archive more dead code.
...
BUG=skia:
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/617003004
2014-09-30 15:22:06 -07:00
mtklein
46616af01b
Strip old backend recording down to essentials
...
Feature-wise, this removes:
1) BBH support;
2) peephole optimizations;
3) record-time text op specializations;
4) the guarantee that SkPaints are flattened.
This deletes the optimizations GM, which only exists to test the peepholes of
the old backend. SkRecord optimizations are unit tested, and if that ever fails we
can think about adding another GM like this, but they're different enough we'd
want to start from scratch anyway.
We need to keep the code that plays back the specialized text ops around for
a while for compatibility with existing .SKPs that have those ops recorded.
BUG=skia:
CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot
R=robertphillips@google.com , reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/617953002
2014-09-30 14:47:10 -07:00
bsalomon
afbf2d6273
Make "priv" classes for GrTexure and GrSurface.
...
R=robertphillips@google.com , egdaniel@google.com , joshualitt@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/596053002
2014-09-30 12:18:44 -07:00
mtklein
8de02f4bf3
Clean up SK_PICTURE_USE_SK_RECORD and SK_PICTURE_OPTIMIZE_SK_RECORD.
...
This folds the code through as if they were defined, which is the explicit
state in both our build and Chrome's.
This leaves the EXPERIMENTAL_ and DEPRECATED_ hooks in to be cleaned up or
privatized later.
CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot
BUG=skia:
R=reed@google.com , robertphillips@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/616033002
2014-09-30 11:43:53 -07:00
mtklein
1b466f7e21
Archive SkFloat
...
https://crrev.com/610153002/ reminded me that it existed, but it's entirely
unused and made moot by hardware FP. Might as well trim a few K off libskia.
BUG=skia:
R=reed@google.com , mtklein@google.com , tfarina@chromium.org
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/619563003
2014-09-30 08:08:59 -07:00
robertphillips
b06e5a2f55
Revert of Make "priv" classes for GrTexure and GrSurface. (patchset #9 id:260001 of https://codereview.chromium.org/596053002/ )
...
Reason for revert:
Breaking the Chrome builds with:
lib/libcc.so: error: undefined reference to 'GrAutoScratchTexture::detach()'
(http://108.170.220.120:10117/builders/Canary-Chrome-Ubuntu13.10-Ninja-x86_64-DRT/builds/2990/steps/Retry_BuildContentShell_1/logs/stdio )
Original issue's description:
> Make "priv" classes for GrTexure and GrSurface.
R=egdaniel@google.com , joshualitt@google.com , bsalomon@google.com
TBR=bsalomon@google.com , egdaniel@google.com , joshualitt@google.com
NOTREECHECKS=true
NOTRY=true
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/618733002
2014-09-30 06:58:20 -07:00
bsalomon
c0eb9b9818
Make "priv" classes for GrTexure and GrSurface.
...
R=robertphillips@google.com , egdaniel@google.com , joshualitt@google.com , joshualitt@chromium.org
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/596053002
2014-09-29 14:20:11 -07:00
egdaniel
89af44a0f1
Split GrDrawState and GrOptDrawState into separate classes and remove base class.
...
Besides splitting the two classes, there are no logical changes here and mostly moving code around.
BUG=skia:
R=bsalomon@google.com
Author: egdaniel@google.com
Review URL: https://codereview.chromium.org/597323002
2014-09-26 06:15:04 -07:00
borenet
e33985a56d
Revert "Add support for EGL on linux"
...
This reverts commit 1cea736c32
.
Caused segfaults on all Android devices
R=bsalomon@google.com , djsollen@google.com
TBR=bsalomon, djsollen
NOTRY=true
BUG=skia:
Author: borenet@google.com
Review URL: https://codereview.chromium.org/599493003
2014-09-24 05:31:07 -07:00
derekf
1cea736c32
Add support for EGL on linux
...
Allow setting skia_egl=1 to build skia against EGL instead of GLX on unix
R=bsalomon@google.com , djsollen@google.com
Author: derekf@osg.samsung.com
Review URL: https://codereview.chromium.org/543363004
2014-09-23 15:17:36 -07:00
joshualitt
b0a8a377f8
Patch to create a distinct geometry processor. The vast majority of this patch
...
is just a rename. The meat is in GrGeometryProcessor, GrProcessor,
GrGL*Processor, GrProcessorStage, Gr*BackendProcessorFactory,
GrProcessUnitTestFactory, and the builders
BUG=skia:
R=bsalomon@google.com
Author: joshualitt@chromium.org
Review URL: https://codereview.chromium.org/582963002
2014-09-23 09:50:21 -07:00
reed
baae2f1aa2
remove flags that now live in chrome's SkUserConfig.h
...
NOTRY=True
TBR=robertphilips@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/591133003
2014-09-22 10:34:41 -07:00
reed
4a8126e7f8
Introduce Props to surface (patchset #27 id:520001 of https://codereview.chromium.org/551463004/ )"
...
This reverts commit 29c857d0f3
.
TBR=
Author: reed@google.com
Review URL: https://codereview.chromium.org/588143004
2014-09-22 07:29:03 -07:00
reed
29c857d0f3
Revert of introduce Props to surface (patchset #27 id:520001 of https://codereview.chromium.org/551463004/ )
...
Reason for revert:
Broke call site in WebKit
Original issue's description:
> introduce Props to surface (work in progress)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3716fd067a5621bb94a6cb08d72afec8bf3aceda
R=robertphillips@google.com , bsalomon@google.com , jvanverth@google.com , bungeman@google.com , fmalita@google.com , vangelis@chromium.org , reed@google.com
TBR=bsalomon@google.com , bungeman@google.com , fmalita@google.com , jvanverth@google.com , reed@google.com , robertphillips@google.com , vangelis@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/583773004
2014-09-21 10:25:07 -07:00
reed
3716fd067a
introduce Props to surface (work in progress)
...
BUG=skia:
R=robertphillips@google.com , bsalomon@google.com , jvanverth@google.com , bungeman@google.com , fmalita@google.com , vangelis@chromium.org , reed@chromium.org
Author: reed@google.com
Review URL: https://codereview.chromium.org/551463004
2014-09-21 09:39:55 -07:00
piotaixr
d49226cff3
Get rid of SkImage_Codec
...
Use SkImage_Raster with an ImageGenerator instead.
BUG=skia:2948
R=junov@chromium.org , reed@google.com , bsalomon@chromium.org
Author: piotaixr@chromium.org
Review URL: https://codereview.chromium.org/589713002
2014-09-19 13:30:06 -07:00
fmalita
8483326704
SkTextBlob shader space workaround.
...
Blink would like drawTextBlob(x,y) to behave the same as drawText(x,y)
WRT shader space. Due to the current generic device base impl, that is
not the case.
This is a transitional workaround, pending proper drawTextBlob impls
in SkDevice classes.
R=reed@google.com , robertphillips@google.com
Author: fmalita@chromium.org
Review URL: https://codereview.chromium.org/586743002
2014-09-19 11:40:51 -07:00
cdalton
855d83ff79
Uses a single pre-baked set of paths for drawing nvpr text of a given
...
typeface. Loads the paths using the driver's glyph loading routines.
Refactors GrPathRange to accept a PathGenerator class that it uses to
lazily initialize its paths. The client code is no longer expected to
initialize the paths in a GrPathRange; instead it must provide a
PathGenerator* instance to createPathRange().
Adds a new createGlyphs() method to GrPathRendering that creates a
range of glyph paths, indexed by glyph id. GrPathRendering implements
createGlyphs() with a PathGenerator that loads glyph paths using the
skia frameworks. GrGLPathRendering uses glMemoryGlyphIndexArrayNV()
instead, when possible, to load the glyph paths.
Removes all GlyphPathRange logic from GrStencilAndCoverTextContext.
It instead uses createGlyphs().
BUG=skia:2939
R=bsalomon@google.com , jvanverth@google.com
Author: cdalton@nvidia.com
Review URL: https://codereview.chromium.org/563283004
2014-09-18 13:51:53 -07:00
caryclark
65b427cff9
fix battlefield website by disallowing very small coordinates
...
also add and remove comments to document other attempts to fix this that had drawbacks
R=fmalita@chromium.org
BUG=414409
Author: caryclark@google.com
Review URL: https://codereview.chromium.org/575553003
2014-09-18 10:32:57 -07:00
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
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
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
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
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
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
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
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
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
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
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
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
egdaniel
3658f382cc
Create an optimized draw state but not hooked in yet to gpu pipeline
...
BUG=skia:
R=bsalomon@google.com
Author: egdaniel@google.com
Review URL: https://codereview.chromium.org/508663002
2014-09-15 07:01:59 -07:00
mtklein
94c415170b
Revert of Add a test that uses C++11 features as a compiler canary. (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
2014-09-12 17:07:34 -07:00
mtklein
86e01df8d1
Add a test that uses C++11 features as a compiler canary.
...
BUG=skia:
R=bungeman@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/568913002
2014-09-12 17:02:52 -07:00
danakj
f58a562d56
Disable discardable memory for the resource cache until tests pass.
...
BUG=skia:2926
R=reed@google.com
Author: danakj@chromium.org
Review URL: https://codereview.chromium.org/568493002
2014-09-11 11:08:50 -07:00
danakj
790ffe3feb
Make SkBitmapCache remove invalid bitmaps from the SkResourceCache.
...
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
2014-09-11 10:49:52 -07:00
mtklein
fd731ce804
Measure picture recording speed in nanobench.
...
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
2014-09-10 12:19:30 -07:00
mtklein
33bce0a68b
Clean up old custom tools now subsumed by nanobench.
...
BUG=skia:
R=mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/551263003
2014-09-10 12:11:23 -07:00
reed
cc0e3110bd
make set3DMask virtual, so we can safely notify the shadercontext
...
also boost preallocated storage to account for this combo of bitmapshader + emboss + colorfilter
BUG=skia:
R=djsollen@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/563563002
2014-09-10 10:20:24 -07:00
bungeman
f548444684
Detect presence of dwrite_1.h.
...
This introduces the SK_HAS_DWRITE_1_H define which may be set at
build time or will be true when WINVER_MAXVER >= 0x0602 .
The dwrite_1.h header is available starting in Windows SDK 8.0.
This change supports users who must still use Windows SDK 7.0.
It also allows for easier local testing of the older interfaces
on newer versions of Windows.
See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1053652
R=george@mozilla.com , mtklein@google.com
Author: bungeman@google.com
Review URL: https://codereview.chromium.org/552383002
2014-09-10 07:49:05 -07:00
george
b3eba478d5
Outset the stroke width when computing the bounds for drawing a stroked rect, or 1 if it's a hairline
...
Adds a testcase for stroke rect bug
R=reed@google.com , reed1
BUG=skia:
Author: george@mozilla.com
Review URL: https://codereview.chromium.org/552743004
2014-09-09 11:33:57 -07:00