Commit Graph

15777 Commits

Author SHA1 Message Date
mtklein
55e88b226c More natural way to serialize GPU tasks and tests.
This basically takes out the Windows-only hacks and promotes them to
cross-platform behavior driven by --gpu_threading.
    - When --gpu_threading is false (the default), this puts GPU tasks and tests
      together in the same GPU enclave.  They all run serially.
    - When --gpu_threading is true, both the tests and the tasks run totally
      independently, just like the thread-safe CPU-bound work.

BUG=skia:3255

Review URL: https://codereview.chromium.org/847273005
2015-01-21 15:50:13 -08:00
bungeman
aa7079b4a1 Revert of Muck with the right cinfo. (patchset #2 id:20001 of https://codereview.chromium.org/858333002/)
Reason for revert:
Appears to cause Android dm to segfault.

Original issue's description:
> Muck with the right cinfo.
>
> In SkImageDecoder_libjpeg, modify cinfo *after* destroying it and
> creating a new one in its place.
>
> Should fix build breakage.
>
> Committed: https://skia.googlesource.com/skia/+/3629865bac20ae8092177f519594f79f89d09fb0

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

Review URL: https://codereview.chromium.org/858323003
2015-01-21 15:08:10 -08:00
scroggo
3629865bac Muck with the right cinfo.
In SkImageDecoder_libjpeg, modify cinfo *after* destroying it and
creating a new one in its place.

Should fix build breakage.

Review URL: https://codereview.chromium.org/858333002
2015-01-21 14:04:57 -08:00
mtklein
968f18cba5 Easy DM TODO: LazyDecodeBitmap does not help (or hinder).
BUG=skia:3255

Review URL: https://codereview.chromium.org/859303003
2015-01-21 13:48:57 -08:00
mtklein
7edca21226 Don't test pipe modes nobody uses.
SkDeferredCanvas uses a simple pipe: no cross-process, no shared-address, etc.
(see src/utils/SkDeferredCanvas.cpp:306).

We could just remove these modes from the bot configs, but I'd like to take the
opportunity to simplify the DM code too.  I'll happily volunteer to put things
back should we decide we want to test these modes.

BUG=skia:

Review URL: https://codereview.chromium.org/861303003
2015-01-21 13:18:51 -08:00
mtklein
a64c48f4f9 Move sync code to include/, switch from using platform define to a proxy header in core/
This fixes two problems:
  1)  #include SK_SOME_DEFINE doesn't work well for all our clients.
  2)  Things in include/ are #including things in src/, which we don't like.

TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/862983002
2015-01-21 13:13:31 -08:00
halcanary
e6ea244717 Use SkLazyPtr in SkPDFGraphicState.cpp
Motivation: currently we rely on mutexes for guarding static
initialization.  These mutexes will go away.

Review URL: https://codereview.chromium.org/815223005
2015-01-21 13:13:22 -08:00
scroggo
28b44e8f27 And change SkAutoTUnref<const SkStream to SkAutoTDelete.
Should have been included with https://codereview.chromium.org/860353005/

TBR=bungeman@google.com
NOTRY=true
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/844193007
2015-01-21 12:33:29 -08:00
scroggo
e58898ee3a Remove another caller of SkRef(SkStream)
TBR=bungeman@google.com
NOTRY=true
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/860353005
2015-01-21 12:23:20 -08:00
djsollen
eae7fc09c6 Update the version of cpu-features that we use for testing.
Review URL: https://codereview.chromium.org/858233003
2015-01-21 12:11:00 -08:00
scroggo
a1193e4b0e Make SkStream *not* ref counted.
SkStream is a stateful object, so it does not make sense for it to have
multiple owners. Make SkStream inherit directly from SkNoncopyable.

Update methods which previously called SkStream::ref() (e.g.
SkImageDecoder::buildTileIndex() and SkFrontBufferedStream::Create(),
which required the existing owners to call SkStream::unref()) to take
ownership of their SkStream parameters and delete when done (including
on failure).

Switch all SkAutoTUnref<SkStream>s to SkAutoTDelete<SkStream>s. In some
cases this means heap allocating streams that were previously stack
allocated.

Respect ownership rules of SkTypeface::CreateFromStream() and
SkImageDecoder::buildTileIndex().

Update the comments for exceptional methods which do not affect the
ownership of their SkStream parameters (e.g.
SkPicture::CreateFromStream() and SkTypeface::Deserialize()) to be
explicit about ownership.

Remove test_stream_life, which tested that buildTileIndex() behaved
correctly when SkStream was a ref counted object. The test does not
make sense now that it is not.

In SkPDFStream, remove the SkMemoryStream member. Instead of using it,
create a new SkMemoryStream to pass to fDataStream (which is now an
SkAutoTDelete).

Make other pdf rasterizers behave like SkPDFDocumentToBitmap.

SkPDFDocumentToBitmap delete the SkStream, so do the same in the
following pdf rasterizers:

SkPopplerRasterizePDF
SkNativeRasterizePDF
SkNoRasterizePDF

Requires a change to Android, which currently treats SkStreams as ref
counted objects.

Review URL: https://codereview.chromium.org/849103004
2015-01-21 12:09:53 -08:00
hcm
fd1ad48d4d Add Contributing to Skia section of docs
BUG=skia:

Review URL: https://codereview.chromium.org/844433004
2015-01-21 12:05:47 -08:00
bungeman
ec7e12f3cf Lcd request early check in SkFontHost_FreeType::onFilterRec.
If the user didn't request lcd, don't spend any time checking if the
FT_Library supports it.

Review URL: https://codereview.chromium.org/864903002
2015-01-21 11:55:16 -08:00
joshualitt
17e7314e0e remove drawtype
BUG=skia:

Review URL: https://codereview.chromium.org/862933005
2015-01-21 11:52:36 -08:00
bungeman
d4742fa550 Reduce overhead of SkFontHost_FreeType::onFilterRec.
The current code is using AutoFTAccess just to access the FT_Library.
However, it does not need to resolve the FT_Face, just the FT_Library.
This unecessary overhead and is removed by this change.
The longer term solution is for SkFontMgr to initialize FreeType.

Review URL: https://codereview.chromium.org/835583003
2015-01-21 11:19:22 -08:00
joshualitt
b77e4b6bf0 remove drawType from optState
BUG=skia:

Review URL: https://codereview.chromium.org/864853002
2015-01-21 10:16:18 -08:00
halcanary
fb62b3d423 SkPDFCanon
SkPDFCanon's fields and methods will eventually become part of
SkPDFDocument/SkDocument_PDF.  For now, it exists as a singleton to
preflight that transition.  This replaces three global arrays in
SkPDFFont, SkPDFShader, and SkPDFGraphicsContext.  This code is still
thread-unsafe (http://skbug.com/2683), but moving this functionality
into SkPDFDocument will fix that.

This CL does not change pdf output from either GMs or SKPs.

This change also simplifies some code around the SkPDFCanon methods.

BUG=skia:2683

Review URL: https://codereview.chromium.org/842253003
2015-01-21 09:59:14 -08:00
bsalomon
1c60dfe7ca Reland https://codereview.chromium.org/860333002 with fix for test failures.
Revert "Revert of Make GrScratchKey memory buffer correct size on copy (patchset #1 id:1 of https://codereview.chromium.org/860333002/)"

This reverts commit 988018c817.

BUG=skia:

Review URL: https://codereview.chromium.org/863983003
2015-01-21 09:32:40 -08:00
mtklein
a092d2eaf8 Remove another GM reference.
This should make the android self-tests start passing again.
Rebaselined with:
  $ python makefile_writer_tests.py --rebaseline

BUG=skia:

Review URL: https://codereview.chromium.org/860333004
2015-01-21 08:48:03 -08:00
mtklein
988018c817 Revert of Make GrScratchKey memory buffer correct size on copy (patchset #1 id:1 of https://codereview.chromium.org/860333002/)
Reason for revert:
Our Valgrind bot just spewed out a weird error.  I don't know if it's related, but it looks at least like one of the stacks was in the right area, so I'm going to revert this precautionarily.  Sorry if this is a false positive.

http://build.chromium.org/p/client.skia/builders/Test-Ubuntu12-ShuttleA-GTX550Ti-x86_64-Release-Valgrind/builds/266/steps/dm/logs/stdio

Original issue's description:
> Make GrScratchKey memory buffer correct size on copy
>
> Scratch key memory buffer of a copy of a key was too big. The (new) copy
> was N times uint32_t bytes instead of N bytes.
>
> Adds few tests to resource cache. These tests would not catch the too
> big buffer. This is just a precaution for too small buffers. The main
> idea of the test change is that the scratch key should contain some
> information, so that lookup with a scratch key can also return no
> match. Otherwise testing of scratch lookup result is not indicative of
> correct code (eg. no-information scratch key will always match).
>
> Committed: https://skia.googlesource.com/skia/+/711ef4831363fb8cbdf061dc2c36c65b13c0ccf2

TBR=bsalomon@google.com,kkinnunen@nvidia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/864833003
2015-01-21 08:05:55 -08:00
jcgregorio
0f2e055580 Add docs for prettify.
Preview here: http://skia.org/dev/tools/markdown?cl=862933002

BUG=skia:

Review URL: https://codereview.chromium.org/862933002
2015-01-21 08:02:45 -08:00
Mike Klein
6a04c8c917 Remove tools/tests.
BUG=skia:
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/796813004
2015-01-21 10:56:40 -05:00
kkinnunen
711ef48313 Make GrScratchKey memory buffer correct size on copy
Scratch key memory buffer of a copy of a key was too big. The (new) copy
was N times uint32_t bytes instead of N bytes.

Adds few tests to resource cache. These tests would not catch the too
big buffer. This is just a precaution for too small buffers. The main
idea of the test change is that the scratch key should contain some
information, so that lookup with a scratch key can also return no
match. Otherwise testing of scratch lookup result is not indicative of
correct code (eg. no-information scratch key will always match).

Review URL: https://codereview.chromium.org/860333002
2015-01-21 06:39:14 -08:00
skia.buildbots
034e94877b Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/859193002
2015-01-20 23:04:12 -08:00
reed
3f43f8ab9c remove dead SkPersp macros
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/864713002
2015-01-20 19:58:36 -08:00
robertphillips
3e3b58d57a Add perspective divide when we're mapping down to a 2D varying
This fixes a few of the perspective errors in SampleApp but not all.

BUG=skia:3326

Review URL: https://codereview.chromium.org/861553008
2015-01-20 14:37:15 -08:00
mtklein
6c5fed2d5c DM: --tests -> --src tests
BUG=skia:3255

Review URL: https://codereview.chromium.org/856173002
2015-01-20 13:47:23 -08:00
mtklein
14ed0fd498 Pre-cache fDirection and fConvexity for recorded SkPaths too.
http://build.chromium.org/p/client.skia/builders/Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN/builds/1211/steps/dm/logs/stdio

I don't see any big perf hit locally:

desk_googlespreadsheetdashed.skp	1.68ms -> 1.74ms	1.04x
             desk_mobilenews.skp	 643us ->  665us	1.04x
               desk_tigersvg.skp	51.1us -> 52.5us	1.03x
     desk_jsfiddlehumperclip.skp	  37us -> 37.9us	1.02x
               desk_samoasvg.skp	 373us ->  380us	1.02x
              desk_wordpress.skp	 697us ->  708us	1.02x
                 desk_mapsvg.skp	 698us ->  708us	1.02x
             tabl_googleblog.skp	 553us ->  560us	1.01x
                desk_wowwiki.skp	1.31ms -> 1.32ms	1.01x
                tabl_mozilla.skp	1.44ms -> 1.45ms	1.01x
                 desk_sfgate.skp	 156us ->  157us	1.01x
             desk_chalkboard.skp	 376us ->  378us	1x
                  desk_baidu.skp	 101us ->  101us	1x
            desk_gmailthread.skp	 231us ->  231us	1x
                 desk_carsvg.skp	 379us ->  379us	1x
             desk_googlehome.skp	38.1us -> 38.1us	1x
          desk_css3gradients.skp	89.6us -> 89.2us	1x
      desk_googlespreadsheet.skp	 549us ->  546us	0.99x
            desk_pokemonwiki.skp	8.67ms -> 8.62ms	0.99x
                    tabl_mlb.skp	 294us ->  291us	0.99x
            tabl_gamedeksiam.skp	 700us ->  692us	0.99x
           tabl_worldjournal.skp	 143us ->  142us	0.99x
                desk_blogger.skp	 441us ->  436us	0.99x
                desk_twitter.skp	 452us ->  446us	0.99x
                    desk_gws.skp	 152us ->  150us	0.99x
                  tabl_gmail.skp	24.2us -> 23.9us	0.99x
                tabl_sahadan.skp	84.7us -> 83.5us	0.99x
                    tabl_cnn.skp	1.24ms -> 1.22ms	0.99x
                  tabl_ukwsj.skp	 543us ->  535us	0.99x
           desk_yahooanswers.skp	 124us ->  123us	0.99x
                desk_booking.skp	 905us ->  891us	0.98x
          tabl_androidpolice.skp	1.76ms -> 1.73ms	0.98x
          desk_ugamsolutions.skp	 281us ->  276us	0.98x
                desk_nytimes.skp	 209us ->  204us	0.98x
               tabl_techmeme.skp	98.4us -> 96.1us	0.98x
                 tabl_nofolo.skp	59.2us -> 57.8us	0.98x
                desk_weather.skp	 244us ->  238us	0.98x
               desk_facebook.skp	 546us ->  531us	0.97x
               desk_linkedin.skp	 321us ->  311us	0.97x
                   tabl_digg.skp	 801us ->  770us	0.96x
      tabl_culturalsolutions.skp	 332us ->  319us	0.96x
                 desk_amazon.skp	 103us ->   99us	0.96x
               tabl_engadget.skp	 610us ->  579us	0.95x
                   tabl_cnet.skp	 144us ->  136us	0.95x
               desk_fontwipe.skp	36.6us -> 34.7us	0.95x
                   desk_ebay.skp	 173us ->  164us	0.94x
                   tabl_hsfi.skp	5.95us -> 5.58us	0.94x
             tabl_deviantart.skp	 134us ->  126us	0.94x
                   desk_espn.skp	 261us ->  243us	0.93x

BUG=skia:

Review URL: https://codereview.chromium.org/861853002
2015-01-20 13:47:19 -08:00
mtklein
19f306013e Allow pdf as a --config.
We just can't run this on the bots yet.  It's fine locally.

BUG=skia:3255

Review URL: https://codereview.chromium.org/857373002
2015-01-20 13:34:39 -08:00
mtklein
59c69479d4 Upstream support for giflib >= 5.1.
DGifCloseFile now takes two arugments.  The second argument appears to be an
optional out-param with more information on failures.

( c.f. http://giflib.sourceforge.net/gif_lib.html )

PS 1 is the original patch we received from google3.  I've updated it a bit to
be pedantically legal C++98.

BUG=skia:

Review URL: https://codereview.chromium.org/860853003
2015-01-20 12:38:06 -08:00
bungeman
e1a828c555 Move SkFontMgr and SkFontStyle impls to own cpp.
SkFontMgr and SkFontStyle implementations are currently burried in the
old SkFontHost.cpp file. Move these implementations to their own file
so that the implementations are easier to find, and to make clearer that
SkFontHost.cpp needs to be removed.

Review URL: https://codereview.chromium.org/799533004
2015-01-20 11:15:37 -08:00
scroggo
8fd8d38626 Add ability to specify gyp dir to gyp_to_android.
When running gyp_to_android inside a Skia tree, it uses the gyp program
in third_party/externals. Inside an Android tree, we need to use a
different location for gyp (the Android copy of Skia, in external/skia,
does not contain third_party/externals).

The bot handles this by importing gyp_to_android and running its main
function directly.

Add command line arguments so a human can directly run gyp_to_android.

Review URL: https://codereview.chromium.org/864503002
2015-01-20 10:39:25 -08:00
halcanary
211fcc6831 convert pdf design document to markdown
Review URL: https://codereview.chromium.org/849133002
2015-01-20 10:39:06 -08:00
bsalomon
3886046f00 Revert "Revert "delete old things!""
This reverts commit 8b4489b6e6.
Delete gm and other unused files

TBR=mtklien@google.com

Review URL: https://codereview.chromium.org/856103002
2015-01-20 10:23:02 -08:00
egdaniel
58136167fc Do more cleanup from xp changes
BUG=skia:

Review URL: https://codereview.chromium.org/811903004
2015-01-20 10:19:22 -08:00
mtklein
9264a95608 Image subsets as part of the name instead of a separate source type.
This will hold us closer to the principle that the test name (and only the test
name) should correspond to expected output.  By the same reasoning, mix in the
number of subsets: if that changes, the expected output also changes.

BUG=skia:3255

Review URL: https://codereview.chromium.org/863723002
2015-01-20 10:11:53 -08:00
halcanary
87f3ba4847 Simplify skiatest framework.
skiatest::Test class is now a simple struct.  Some
functionalty, such as counting errors or timing is now
handled elsewhere.

skiatest:Reporter is now a simpler abstract class.  The two
implementations handle test errors.

DM and pathops_unittest updated.

Review URL: https://codereview.chromium.org/830513004
2015-01-20 09:30:20 -08:00
joshualitt
873ad0e0b4 BUG=skia:
Review URL: https://codereview.chromium.org/815643005
2015-01-20 09:08:52 -08:00
reed
94443b8718 remove dead code after HQ change
BUG=skia:

Review URL: https://codereview.chromium.org/845303005
2015-01-20 08:50:37 -08:00
scroggo
c7bfd5b441 Stop building gm in Android framework build.
Allows us to delete gm.

Review URL: https://codereview.chromium.org/860803004
2015-01-20 08:25:36 -08:00
reed
83c8dec46a remove legacy flags for old image filtering
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/857193003
2015-01-20 07:41:24 -08:00
Mike Klein
2babfd96ae force a build with new --config flags
BUG=skia:

Review URL: https://codereview.chromium.org/798463005
2015-01-20 10:24:19 -05:00
egdaniel
71e236c03e Remove willReadDst from GrFragmentProcessor.
Since only XP's can read dst now, there is no reason to have this query on GrFP.
This also triggered a chain reaction of cleaning up/removing unnecessary code
elsewhere.

BUG=skia:

Review URL: https://codereview.chromium.org/851143003
2015-01-20 06:34:51 -08:00
scroggo
b2b416d384 Revert of remove unused SkAvoidXfermode (patchset #2 id:20001 of https://codereview.chromium.org/860583002/)
Reason for revert:
Breaking Android framework build, which still uses AvoidXfermode. (failure shown here: 565b76b4bd/logs/build_error.log)

Here is the Java class that uses it: https://cs.corp.google.com/#android/frameworks/base/graphics/java/android/graphics/AvoidXfermode.java&sq=package:android

It has been deprecated. The glue code (which actually references the Skia file) is here: https://cs.corp.google.com/#android/frameworks/base/core/jni/android/graphics/Xfermode.cpp&q=Xfermode.cpp&sq=package:android

Mike suggested we move the implementation into Android, which is fine with me.

Original issue's description:
> remove unused SkAvoidXfermode
>
> BUG=skia:
> TBR=
> NOTRY=True
>
> Committed: https://skia.googlesource.com/skia/+/2d02df7a9a50217dac8c1d11681832a927ed79ce

TBR=bsalomon@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/822953003
2015-01-20 06:33:14 -08:00
weiliangc
07f26976f7 Remove unused TileGridInfo
Chromium no longer uses TileGridInfo as of CL 856853003 and remove this
from skia.

BUG=chromium:447662

Review URL: https://codereview.chromium.org/828503004
2015-01-20 05:57:06 -08:00
rmistry
6a93900f06 Remove roll_deps and trybots_to_run.
BUG=skia:

Review URL: https://codereview.chromium.org/859963003
2015-01-20 05:44:46 -08:00
skia.buildbots
58b27523ce Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/786403004
2015-01-19 23:14:06 -08:00
cwallez
2467d71346 Remove a few unused statements.
BUG=

Review URL: https://codereview.chromium.org/837643003
2015-01-19 13:57:17 -08:00
sugoi
4043d17c63 Broken dm fix
BUG=skia:

Review URL: https://codereview.chromium.org/855953005
2015-01-19 10:31:35 -08:00
sugoi
692135f968 YUV planes cache
- Added new classes to contain YUV planes of memory, along with the associated data.
- Used these classes in load_yuv_texture() to enable YUV planes caching
- Added a unit test for the new cache

BUG=450021

Review URL: https://codereview.chromium.org/851273003
2015-01-19 10:10:27 -08:00