Commit Graph

18891 Commits

Author SHA1 Message Date
jvanverth
fb1e2fc8aa Update params to get better packing for DF path atlas
Gets about a 4x speedup on desk_chalkboard.skp.

Review URL: https://codereview.chromium.org/1345823002
2015-09-15 13:11:11 -07:00
halcanary
435657fd62 Forward declare SkStrokeRec in SkPathEffect
Review URL: https://codereview.chromium.org/1312163008
2015-09-15 12:53:07 -07:00
reed
98ed7b6d01 create SkBitmapProvider to abstract images and bitmaps
BUG=skia:

Review URL: https://codereview.chromium.org/1340223003
2015-09-15 12:38:12 -07:00
fmalita
5598b63cd2 Convert unit tests, GMs from SkBitmapSource to SkImagesource
This removes SkBitmapSource clients within Skia.

http://crrev.com/1334173004 does the same for Blink, so we should be
able to remove SkBitmapSource in a follow-up.

R=reed@google.com,robertphillips@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/1343123002
2015-09-15 11:26:14 -07:00
robertphillips
30c4cae7d3 Add special case circle blur for Ganesh
This makes the blurcircles bench go from ~33us to ~8us on Windows desktop.

It will require layout test suppressions

Review URL: https://codereview.chromium.org/1311583005
2015-09-15 10:20:55 -07:00
mtklein
de5973b05b small tweaks to cmake_build
- streamline how we define $here
  - only make `cmake` when bootstrapping; it's a little less to build

BUG=skia:4269
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot

Review URL: https://codereview.chromium.org/1345663004
2015-09-15 10:17:08 -07:00
egdaniel
723b0501e2 Add support for blending of LCD for all blend modes.
BUG=skia:

Review URL: https://codereview.chromium.org/1313623002
2015-09-15 09:31:40 -07:00
egdaniel
79bd2aee8c Minor fix to attaching stencils
BUG=skia:

Review URL: https://codereview.chromium.org/1344033002
2015-09-15 08:46:14 -07:00
jvanverth
f5d1b2de03 Add viewer mode to VisualBench.
Displays each benchmark/skp with a graph showing a series of frame times.
Use the space bar to skip to the next benchmark.

Adds an option to hit ESC to quit VisualBench. Useful in fullscreen mode.

Review URL: https://codereview.chromium.org/1336043003
2015-09-15 07:40:56 -07:00
herb
014ffdb01e Parallel cache.
TBR=reed@google.com

BUG=skia:1330,528560

Committed: https://skia.googlesource.com/skia/+/6f2a486040cb25465990196c229feb47e668e87f

Committed: https://skia.googlesource.com/skia/+/bf2988833e5a36c6b430da6fdd2cfebd0015adec

Review URL: https://codereview.chromium.org/1264103003
2015-09-15 07:03:03 -07:00
benjaminwagner
474df7fc03 Add documentation of cs.skia.org.
BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1332303005

Review URL: https://codereview.chromium.org/1332303005
2015-09-15 07:02:02 -07:00
fmalita
23cb88c52c Speculative fix for uninitialized bitmap mem in ImageFilterTest
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1341923003
2015-09-15 06:56:23 -07:00
mtklein
935121bd41 Let's try building the example app on the bots too.
BUG=skia:4269

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/1344843002
2015-09-15 06:07:47 -07:00
Mike Klein
5d2be0df43 cmake_build is a bash script.
BUG=skia:4269

Review URL: https://codereview.chromium.org/1334203003 .
2015-09-15 08:29:02 -04:00
fmalita
5dd918bb6f Suppress test_imagegenerator_factory
Temporarily disable the test while we figure what (if anything) to do
about the SkImageGenerator gFactory race.

BUG=skia:4339
TBR=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/1344693002
2015-09-14 14:51:04 -07:00
reed
2bcab82787 remove code from SK_SUPPORT_LEGACY_NEWFROMGENERATOR, eliminates caller of deprecated SkInstallDiscardablePixelRef
BUG=skia:

Review URL: https://codereview.chromium.org/1344663002
2015-09-14 13:54:39 -07:00
reed
48392b7c63 fix leaked generator
BUG=skia:4335

Review URL: https://codereview.chromium.org/1336353003
2015-09-14 13:41:23 -07:00
fmalita
cd56f812e0 SkImageSource
Blink is migrating away from SkBitmaps, so we need an SkImage-based
SkImageFilter source.  This is pretty much a 1-1 equivalent of
SkBitmapSource.

To avoid duplication, relocate the SkImage deserialization logic
from SkPictureData to SkReadBuffer.

R=reed@google.com,robertphillips@google.com,senorblanco@chromium.org

Review URL: https://codereview.chromium.org/1343703005
2015-09-14 13:31:18 -07:00
bsalomon
506c802a3d Add helper for creating leaf FPs inside GrFP::TestCreate functions
Review URL: https://codereview.chromium.org/1334273003
2015-09-14 13:16:26 -07:00
mtklein
07344a5386 Revert of SkPx: new approach to fixed-point SIMD (patchset #9 id:160001 of https://codereview.chromium.org/1317233005/ )
Reason for revert:
http://build.chromium.org/p/client.skia.compile/builders/Build-Mac10.8-Clang-Arm7-Debug-Android/builds/4627

Original issue's description:
> SkPx: new approach to fixed-point SIMD
>
> SkPx is like Sk4px, except each platform implementation of SkPx can declare
> a different sweet spot of N pixels, with extra loads and stores to handle the
> ragged edge of 0<n<N pixels.
>
> In this case, _sse's sweet spot remains 4 pixels.   _neon jumps up to 8 so
> we can now use NEON's transposing loads and stores, and _none is just 1.
> This makes operations involving alpha considerably more efficient on NEON,
> as alpha is its own distinct 8x8 bit plane that's easy to toss around.
>
> This incorporates a few other improvements I've been wanting:
>   - no requirement that we're dealing with SkPMColor.  SkColor works too.
>   - no anonymous namespace hack to differentiate implementations.
>
> Codegen and perf look good on Clang/x86-64 and GCC/ARMv7.
> The NEON code looks very similar to the old NEON code, as intended.
> No .skp or GM diffs on my laptop.  Don't expect any.
>
> I intend this to replace Sk4px.  Plan after landing:
>   - port SkXfermode_opts.h
>   - port Color32 in SkBlitRow_D32.cpp (and move to SkBlitRow_opts.h like other
>     SkOpts code)
>   - delete all Sk4px-related code
>   - clean up evolutionary dead ends in SkNx (Sk16b, Sk16h, Sk4i, Sk4d, etc.)
>     leaving Sk2f, Sk4f (and Sk2s, Sk4s).
>   - find a machine with AVX2 to work on, write SkPx_avx2.h handling 8 pixels
>     at a time.
>
> In the end we'll have Sk4f for float pixels, SkPx for fixed-point pixels.
>
> BUG=skia:4117
>
> Committed: https://skia.googlesource.com/skia/+/82c93b45ed6ac0b628adb8375389c202d1f586f9

TBR=mtklein@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4117

Review URL: https://codereview.chromium.org/1336423002
2015-09-14 13:14:31 -07:00
egdaniel
ec00d94199 Move some of the adding stencil attachment logic of Gpu and into Render Target.
The new flow of calls for attaching a Stencil looks like:

Client
  rt->attachStencilAttachment()
    gpu->getStencilAttachment()
      glgpu->createStencilAttachment()
    glrt->completeStencilAttachment() //actually attaches

BUG=skia:

Review URL: https://codereview.chromium.org/1333383002
2015-09-14 12:56:10 -07:00
rmistry
37497dc9de Update SkWhitelistChecksums.cpp with the checksums of the fonts on the CT slave machines.
This file was generated using the whitelist_typefaces tool.
I tried out this file on 3 of the 100
CT slaves and './out/Debug/whitelist_typefaces --check' successfully returned 0.

BUG=skia:4336

Review URL: https://codereview.chromium.org/1344553004
2015-09-14 12:50:22 -07:00
mtklein
82c93b45ed SkPx: new approach to fixed-point SIMD
SkPx is like Sk4px, except each platform implementation of SkPx can declare
a different sweet spot of N pixels, with extra loads and stores to handle the
ragged edge of 0<n<N pixels.

In this case, _sse's sweet spot remains 4 pixels.   _neon jumps up to 8 so
we can now use NEON's transposing loads and stores, and _none is just 1.
This makes operations involving alpha considerably more efficient on NEON,
as alpha is its own distinct 8x8 bit plane that's easy to toss around.

This incorporates a few other improvements I've been wanting:
  - no requirement that we're dealing with SkPMColor.  SkColor works too.
  - no anonymous namespace hack to differentiate implementations.

Codegen and perf look good on Clang/x86-64 and GCC/ARMv7.
The NEON code looks very similar to the old NEON code, as intended.
No .skp or GM diffs on my laptop.  Don't expect any.

I intend this to replace Sk4px.  Plan after landing:
  - port SkXfermode_opts.h
  - port Color32 in SkBlitRow_D32.cpp (and move to SkBlitRow_opts.h like other
    SkOpts code)
  - delete all Sk4px-related code
  - clean up evolutionary dead ends in SkNx (Sk16b, Sk16h, Sk4i, Sk4d, etc.)
    leaving Sk2f, Sk4f (and Sk2s, Sk4s).
  - find a machine with AVX2 to work on, write SkPx_avx2.h handling 8 pixels
    at a time.

In the end we'll have Sk4f for float pixels, SkPx for fixed-point pixels.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1317233005
2015-09-14 12:43:20 -07:00
bsalomon
b5b603241a Test that GrFragmentProcessors work without input colors.
Committed: https://skia.googlesource.com/skia/+/72c58e7052af2a0855412ce4b249f977069db751

Review URL: https://codereview.chromium.org/1341853002
2015-09-14 12:26:34 -07:00
mtklein
0faed58bc7 cmake_build: support SKIA_OUT and BUILDTYPE
And, fix BUILDTYPE=Debug build.
EQUAL is for numbers, STREQUAL for strings.

BUG=skia:

Review URL: https://codereview.chromium.org/1341763003
2015-09-14 12:02:32 -07:00
bsalomon
59ce45fe79 Revert of Test that GrFragmentProcessors work without input colors. (patchset #2 id:20001 of https://codereview.chromium.org/1341853002/ )
Reason for revert:
Need to fix up more processor subclasses.

Original issue's description:
> Test that GrFragmentProcessors work without input colors.
>
> Committed: https://skia.googlesource.com/skia/+/72c58e7052af2a0855412ce4b249f977069db751

TBR=joshualitt@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1338403003
2015-09-14 12:01:42 -07:00
bsalomon
72c58e7052 Test that GrFragmentProcessors work without input colors.
Review URL: https://codereview.chromium.org/1341853002
2015-09-14 11:55:52 -07:00
robertphillips
3833daaa66 Fix GPU-only snapping bug in mask blur rendering
The existing mask effect code in Ganesh is subject to snapping issues (when the created mask is redrawn). This artifact can be seen by rendering the original geometry (w/o blurs) and comparing that result to a rendering of the unblurred masks. W/o this patch the results do not match up (they are arbitrarily shifted by a pixel).

This patch will require rebaselining and suppressions.

Chromium layout tests suppressions are here:
https://codereview.chromium.org/1342683003/ (Add layout test suppressions for upcoming Skia roll)

Review URL: https://codereview.chromium.org/1338183002
2015-09-14 11:18:13 -07:00
reed
efd50daa28 impl preroll for all image backends
BUG=skia:

Review URL: https://codereview.chromium.org/1341043002
2015-09-14 11:17:23 -07:00
mtklein
5a744b7801 Have SkVarAlloc::alloc() use sk_malloc_throw.
Very right, it's not prepared to handle return-NULL mallocs at all.

BUG=530759

Review URL: https://codereview.chromium.org/1339093002
2015-09-14 11:11:17 -07:00
mtklein
a46ada5635 SkValidatingReadBuffer: make sure we don't call readTypeface().
Add an assert to make sure we're not calling this unimplemented method.

BUG=skia:3978

Review URL: https://codereview.chromium.org/1341753003
2015-09-14 11:09:43 -07:00
reed
8725e5366b fix leak in test
BUG=skia:4335

Review URL: https://codereview.chromium.org/1336763007
2015-09-14 10:53:24 -07:00
reed
995b4bddd9 be sure to use cached bitmap when we need to upload something to make a texture
BUG=skia:4334

Review URL: https://codereview.chromium.org/1338373002
2015-09-14 10:27:57 -07:00
mtklein
a22eabedef CMake bot script
- Add CMake v3.3.1 (latest) to DEPS.
 - Add cmake/bot-cmake.sh to bootstrap CMake then build Skia using that.

Works on my Mac and Linux box, both with no system CMake installation.

CMake will be ~100M on disk.  The first bootstrap takes a couple minutes,
and a no-op re-run of bot-cmake.sh takes 15-20 seconds.  I thought about
having bot-cmake.sh fetch CMake instead of DEPS, but I'm not sure I can
handle updates, etc. as robustly as it can.

This will only work on Linux and Mac.  CMake requires an older CMake on
Windows.  It doesn't have an equivalent ./bootstrap there.  Will have to
think about how Windows bots will work!

BUG=skia:4269

Review URL: https://codereview.chromium.org/1339603003
2015-09-14 10:02:50 -07:00
reed
3a100d3e4d we must own/free the generator, even if we fail to return a cacherator
BUG=skia:4332

Review URL: https://codereview.chromium.org/1345523002
2015-09-14 09:59:28 -07:00
reed
56f38fb7a9 disable kIndex_8 gpu support for now -- seems to always be slower
BUG=skia:4333

Review URL: https://codereview.chromium.org/1339103002
2015-09-14 09:09:00 -07:00
reed
74bd953719 discardable pixelrefs are gone, update tests accordingly
BUG=skia:4328

Review URL: https://codereview.chromium.org/1340803002
2015-09-14 08:52:12 -07:00
mtklein
4c9281d103 remove dead code not mentioned in any GYP
BUG=skia:

Review URL: https://codereview.chromium.org/1340563003
2015-09-14 06:33:47 -07:00
update-skps
89bdca7532 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

Review URL: https://codereview.chromium.org/1338933002
2015-09-13 14:05:54 -07:00
reed
4d5b67637b formalize generate->bitmap
just move block of code to expose it

BUG=skia:4328
TBR=

Review URL: https://codereview.chromium.org/1334033004
2015-09-13 11:03:32 -07:00
reed
94cf37f425 remove obsolete samples
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1340793002
2015-09-12 09:55:30 -07:00
Hal Canary
94475cdbfb sync-and-gyp: Update shell script to correct the syntax of functions
R=halcanary@gmail.com

Review URL: https://codereview.chromium.org/1342543003 .
2015-09-11 20:49:00 -04:00
hendrikw
eddbefb4a5 skia: Add ANGLE with GL backend to nanobench/DM
This will allow us to test this without hacking it in, might be useful
for others too.

Review URL: https://codereview.chromium.org/1338003002
2015-09-11 13:07:29 -07:00
joshualitt
102081aba2 move GrGLPathProcessor back into GrPathProcessor
BUG=skia:

Review URL: https://codereview.chromium.org/1333423003
2015-09-11 11:52:17 -07:00
reed
c4a83e2652 support colortables in cacherator
BUG=skia:
TBR=scroggo

Review URL: https://codereview.chromium.org/1339753002
2015-09-11 11:47:27 -07:00
joshualitt
d8dd47b5fa remove path specific program building classes
BUG=skia:

Review URL: https://codereview.chromium.org/1336763003
2015-09-11 11:45:01 -07:00
benjaminwagner
212aab07d9 Provide link to worker logs.
BUG=skia:4063
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1338823002

Review URL: https://codereview.chromium.org/1338823002
2015-09-11 10:56:24 -07:00
joshualitt
e7afc2d85b Start trying to collapse path program stuff
BUG=skia:

Review URL: https://codereview.chromium.org/1333273003
2015-09-11 10:44:14 -07:00
msarett
6efbe05377 Remove jpegs with uninitialized memory from Gold
BitmapRegionSampler (uses SkImageDecoder) will often scale
to a power of 2 regardless of the sampleSize requested.
This is skbug.com/4319.

Consider a 60x60 image.
To decode a subset with sample size 3, we might ask for the
following.
[x, y, w, h] = [-15, -15, 30, 30]
sampleSize = 3

Since w = 30 and h = 30, this should give us a 10x10
result.  Only the bottom right 5x5 quadrant of this 10x10
subset will actually be in the image.  We should get a 5
pixel border on the top and left because we ask for 15
extra pixels on the top and left.

Unfortunately, SkImageDecoder will take our requested
sample size of 3, and then decide to use a sample size of
2.  Not only will it scale the image by 2, but it will also
scale the border by 2.  So while we are expecting pixel
data to begin at offset (5, 5) of the result bitmap, it
actually begins at offset (7, 7).  Making things worse,
the pixels between (5, 5) and (7, 7) are uninitialized,
causing problems on Gold.

Options for fixing this include:
(1) Not testing decodes with a border.
(2) Changing the test to check the size of the output
bitmap.
(3) Disable the tests.

I think it's best to just disable these tests.  We know
they don't work, so why do we need to see the results on
Gold?

BUG=skia:4319

Review URL: https://codereview.chromium.org/1313233007
2015-09-11 09:01:16 -07:00
joshualitt
465283cdf9 Remove batchtracker
BUG=skia:

Review URL: https://codereview.chromium.org/1332923003
2015-09-11 08:19:35 -07:00