Commit Graph

2323 Commits

Author SHA1 Message Date
reed
afa278e250 more c
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/736133006
2014-11-24 19:11:48 -08:00
mtklein
f98862c39b SkRecord: outline methods that are not called O(N) times.
Looks like a noop-to-minor-win:
                tabl_sahadan.skp	94.9us -> 98.6us	1x
         desk_jsfiddlebigcar.skp	38.9us -> 39.7us	1x
            desk_silkfinance.skp	  78us -> 78.9us	1x
     desk_jsfiddlehumperclip.skp	43.8us -> 44.3us	1x
                 desk_sfgate.skp	 547us ->  548us	1x
                  tabl_gmail.skp	19.9us -> 19.8us	1x
           tabl_worldjournal.skp	 230us ->  229us	1x
          desk_css3gradients.skp	 248us ->  247us	1x
                    tabl_cnn.skp	 205us ->  203us	0.99x
               desk_linkedin.skp	 342us ->  340us	0.99x
                desk_wowwiki.skp	1.63ms -> 1.62ms	0.99x
                   tabl_cnet.skp	 142us ->  141us	0.99x
            desk_pokemonwiki.skp	9.76ms -> 9.67ms	0.99x
                   desk_espn.skp	 267us ->  264us	0.99x
                desk_youtube.skp	 576us ->  570us	0.99x
                 tabl_pravda.skp	 238us ->  235us	0.99x
                  tabl_ukwsj.skp	 566us ->  560us	0.99x
               tabl_engadget.skp	 630us ->  622us	0.99x
desk_googlespreadsheetdashed.skp	1.66ms -> 1.64ms	0.99x
             desk_mobilenews.skp	 486us ->  480us	0.99x
         tabl_googlecalendar.skp	 211us ->  208us	0.99x
               desk_samoasvg.skp	 740us ->  730us	0.99x
                    desk_gws.skp	 187us ->  184us	0.99x
                   desk_ebay.skp	 234us ->  230us	0.99x
                 desk_mapsvg.skp	 1.6ms -> 1.58ms	0.98x
                tabl_nytimes.skp	 130us ->  128us	0.98x
             tabl_googleblog.skp	 305us ->  300us	0.98x
               desk_fontwipe.skp	40.3us -> 39.6us	0.98x
               desk_tigersvg.skp	 189us ->  186us	0.98x
          tabl_androidpolice.skp	 662us ->  650us	0.98x
              desk_wordpress.skp	 824us ->  809us	0.98x
                    tabl_mlb.skp	 338us ->  331us	0.98x
      tabl_culturalsolutions.skp	 390us ->  382us	0.98x
                  desk_baidu.skp	 213us ->  208us	0.98x
                  tabl_gspro.skp	72.9us -> 71.1us	0.97x
                 tabl_nofolo.skp	  74us -> 71.9us	0.97x
           desk_yahooanswers.skp	 173us ->  168us	0.97x
               tabl_frantzen.skp	57.3us -> 55.6us	0.97x
             desk_chalkboard.skp	 891us ->  865us	0.97x
              desk_pinterest.skp	 154us ->  149us	0.97x
                desk_blogger.skp	 537us ->  519us	0.97x
                   tabl_hsfi.skp	10.1us -> 9.69us	0.96x
            desk_gmailthread.skp	 333us ->  318us	0.96x
                   tabl_digg.skp	 926us ->  883us	0.95x
      desk_googlespreadsheet.skp	 586us ->  558us	0.95x
             desk_forecastio.skp	 101us -> 95.7us	0.95x
                desk_booking.skp	 1.1ms -> 1.04ms	0.95x
             tabl_deviantart.skp	 144us ->  136us	0.95x
               desk_facebook.skp	 584us ->  553us	0.95x
                desk_weather.skp	 289us ->  272us	0.94x
             desk_googlehome.skp	61.1us -> 57.5us	0.94x
             desk_googleplus.skp	 914us ->  849us	0.93x
                desk_twitter.skp	 499us ->  463us	0.93x

BUG=skia:

Review URL: https://codereview.chromium.org/756783002
2014-11-24 14:45:47 -08:00
mtklein
c0591ca026 Revert of Add -ftrapv to debug builds. (patchset #1 id:1 of https://codereview.chromium.org/702893003/)
Reason for revert:
Not clean yet.

Original issue's description:
> Add -ftrapv to debug builds.
>
> This adds instrumentation to check that signed integers never under- or
> overflow, which is undefined behavior.
>
> BUG=skia:3096
>
> Committed: https://skia.googlesource.com/skia/+/ebacb6127a952910f43a59460af43427d93df46c

TBR=bungeman@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:3096

Review URL: https://codereview.chromium.org/751713002
2014-11-21 14:42:35 -08:00
mtklein
ebacb6127a Add -ftrapv to debug builds.
This adds instrumentation to check that signed integers never under- or
overflow, which is undefined behavior.

BUG=skia:3096

Review URL: https://codereview.chromium.org/702893003
2014-11-21 14:24:04 -08:00
bungeman
5ec443c506 Clean up FreeType code for 2.3.8.
We already require FreeType 2.3.8 in order to compile and run.
Make this requirement explicit and take advantage of it.

Review URL: https://codereview.chromium.org/748063003
2014-11-21 13:18:34 -08:00
joshualitt
947556f658 remove GrAllocPool
BUG=skia:

Review URL: https://codereview.chromium.org/742253002
2014-11-21 09:03:45 -08:00
mtklein
19996eda62 Small changes to get things building and running on Linux/ARM.
ninja -C out/Debug works, and I tested out/Debug/dm --nogpu (no X yet).

The only problems encountered were:
  - Like CrOS, I also needed to use the default float ABI (presumably hard).
  - The strings in GrBinHashKeyTest weren't necessarily 4-byte aligned.

BUG=skia:

Review URL: https://codereview.chromium.org/746043002
2014-11-21 06:48:43 -08:00
tfarina
60b24d0df7 Cleanup: Delete webtry.gyp
Looks like this was left over when we moved it into buildbot.

Also remove a few other, now unnecessary, references to webtry.

BUG=None
R=humper@google.com

Review URL: https://codereview.chromium.org/726833004
2014-11-20 18:20:06 -08:00
joshualitt
c07379d6b1 Adding GeometryData object
BUG=skia:

Review URL: https://codereview.chromium.org/745663002
2014-11-20 14:50:39 -08:00
bsalomon
26bdfcb4e4 Remove /arch:SSE2 from Win 64 Release builds
Review URL: https://codereview.chromium.org/740733002
2014-11-19 08:59:58 -08:00
joshualitt
02bcd9db00 move GrGeometryProcessor to src
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/739943003
2014-11-19 08:24:09 -08:00
bsalomon
ae59b77612 Create GrOptDrawState before recording draw in GrInOrderDrawBuffer
Review URL: https://codereview.chromium.org/739673002
2014-11-19 08:23:49 -08:00
halcanary
6fd5e6e261 http://skbug.com/3130 step 4 (include/utils/SkWGL.h gone for good)
BUG=skia:3130

Review URL: https://codereview.chromium.org/729363003
2014-11-18 11:30:20 -08:00
mtklein
0bd57b2e1e SkVarAlloc::approxBytesAllocated()
This is what I was getting at on the other CL.

BUG=skia:

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

CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-Nexus5-Adreno330-Arm7-Release-Trybot

Review URL: https://codereview.chromium.org/730193003
2014-11-18 09:32:36 -08:00
mtklein
52b7822fa6 Revert of SkVarAlloc::approxBytesAllocated (patchset #5 id:80001 of https://codereview.chromium.org/730193003/)
Reason for revert:
Android needs dlmalloc_usable_size().

Original issue's description:
> SkVarAlloc::approxBytesAllocated()
>
> This is what I was getting at on the other CL.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/f27f1bcce50c8f95aea8469684a70b70c9baee09
>
> CQ_EXTRA_TRYBOTS=Test-Android-Nexus5-Adreno330-Arm7-Release-Trybot

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

Review URL: https://codereview.chromium.org/741443002
2014-11-18 08:15:23 -08:00
mtklein
f27f1bcce5 SkVarAlloc::approxBytesAllocated()
This is what I was getting at on the other CL.

BUG=skia:

Review URL: https://codereview.chromium.org/730193003
2014-11-18 07:24:14 -08:00
scroggo
a18cc77c33 Really enable deprecation warnings for Android framework.
Left out of a previous CL to reenable.

(We had the define added in two places for some reason...)

Review URL: https://codereview.chromium.org/728503002
2014-11-17 10:29:18 -08:00
Greg Humphreys
21c771b3fc Revert "move SkPDFD*.h from include to src"
This reverts commit 693024300f.

was breaking canary build

BUG=skia:

Review URL: https://codereview.chromium.org/731173002
2014-11-17 09:42:09 -05:00
halcanary
693024300f move SkPDFD*.h from include to src
BUG=278148

Review URL: https://codereview.chromium.org/727343002
2014-11-17 06:26:21 -08:00
halcanary
a27ef58a50 Move SkDocument_PDF.cpp into pdf.gypi - now standard PDF API
TBR=reed@google.com

Review URL: https://codereview.chromium.org/714223002
2014-11-16 08:26:54 -08:00
halcanary
21041e0cc4 http://skbug.com/3130 step 1 (to fix chromium roll)
BUG=skia:3130
TBR=djsollen@google.com, bsalomon@google.com

Review URL: https://codereview.chromium.org/729173002
2014-11-15 06:11:18 -08:00
bsalomon
71cb0c241e Replace GrResourceCache with GrResourceCache2.
BUG=skia:2889

Committed: https://skia.googlesource.com/skia/+/66a450f21a3da174b7eed89a1d5fc8591e8b6ee6

Committed: https://skia.googlesource.com/skia/+/407aa584d183c1bf314f5defd1cf0202e8a96c89

Review URL: https://codereview.chromium.org/716143004
2014-11-14 12:10:15 -08:00
djsollen
c87dd2ce96 Enable unused param checking for public includes.
This CL cleans up the existing violations and enables the
build time check to ensure that we don't regress.

The motiviation behind this change is to allow clients who include
our headers to be able to build with this warning enabled.

Review URL: https://codereview.chromium.org/726923002
2014-11-14 11:11:46 -08:00
djsollen
082a4620fd Move WGL header from include to src
NOTRY=true

Review URL: https://codereview.chromium.org/728823002
2014-11-14 07:21:29 -08:00
bsalomon
ac49acda52 Revert of Replace GrResourceCache with GrResourceCache2. (patchset #7 id:120001 of https://codereview.chromium.org/716143004/)
Reason for revert:
broken again

Original issue's description:
> Replace GrResourceCache with GrResourceCache2.
>
> BUG=skia:2889
>
> Committed: https://skia.googlesource.com/skia/+/66a450f21a3da174b7eed89a1d5fc8591e8b6ee6
>
> Committed: https://skia.googlesource.com/skia/+/407aa584d183c1bf314f5defd1cf0202e8a96c89

TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2889

Review URL: https://codereview.chromium.org/726913002
2014-11-14 06:47:39 -08:00
bsalomon
407aa584d1 Replace GrResourceCache with GrResourceCache2.
BUG=skia:2889

Committed: https://skia.googlesource.com/skia/+/66a450f21a3da174b7eed89a1d5fc8591e8b6ee6

Review URL: https://codereview.chromium.org/716143004
2014-11-14 06:29:40 -08:00
djsollen
5ae776504f Cleanup the XML directory in public includes.
Review URL: https://codereview.chromium.org/722343002
2014-11-14 05:52:50 -08:00
bsalomon
6740feb093 Don't use /ZI on 64 bit windows
Review URL: https://codereview.chromium.org/728633002
2014-11-13 13:47:06 -08:00
bsalomon
f21dab9540 Revert of Replace GrResourceCache with GrResourceCache2. (patchset #6 id:100001 of https://codereview.chromium.org/716143004/)
Reason for revert:
Breaking stuff

Original issue's description:
> Replace GrResourceCache with GrResourceCache2.
>
> BUG=skia:2889
>
> Committed: https://skia.googlesource.com/skia/+/66a450f21a3da174b7eed89a1d5fc8591e8b6ee6

TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2889

Review URL: https://codereview.chromium.org/715333003
2014-11-13 13:33:28 -08:00
bsalomon
66a450f21a Replace GrResourceCache with GrResourceCache2.
BUG=skia:2889

Review URL: https://codereview.chromium.org/716143004
2014-11-13 13:19:10 -08:00
djsollen
0b17d6cb34 Cleanup public includes directory.
This CL updates various files in the includes directory to ensure that (1) they do
not depend on headers in /src and (2) that they minimize their dependence on external
headers.

To ensure that we don't regress this behavior a new build target has been added to
build a single cpp file that contains all* public includes and is compiled with
only those directories in the include path.

* The exception is those includes that depend on OS specific headers

BUG=skia:2941
NOTRY=true

Review URL: https://codereview.chromium.org/721903002
2014-11-13 12:52:35 -08:00
djsollen
e4545210c9 Cleanup GrContextFactory and make it's subclasses private
Review URL: https://codereview.chromium.org/723183002
2014-11-13 11:12:41 -08:00
egdaniel
b6cbc38702 Add GrProcOptInfo class to track various output information for color and coverage stages.
BUG=skia:

Review URL: https://codereview.chromium.org/719203002
2014-11-13 11:00:34 -08:00
jcgregorio
3b27adef0a Revert of Make nanobench and dm be usable from Chromium build (patchset #5 id:80001 of https://codereview.chromium.org/657373002/)
Reason for revert:
Causing breakages on Mac build.

Original issue's description:
> Make nanobench and dm be usable from Chromium build
>
> Move the app logic for each app as follows:
>
> <app>.cpp -- the file which contains main(). Embedders that compile
> their own apps, such as ios shell, upcoming Chromium dm etc, do not use this.
>
> <app>_main.cpp -- the main logic of the Skia test application. This will be
> used by Skia -compiled apps as well as embedder -compiled apps.
>
> <app>_main.h -- the API for the main logic. This will be
> used by Skia -compiled apps as well as embedder -compiled apps.
>
> This way (the upcoming) Chromium dm can setup its Chromium-specific setup
> in custom main(), and then call dm_main(), without the need of any
> SK_BUILD_FOR_XXXX defines controlling whether the tool defines main or not.
>
> BUG=skia:2992
>
> Committed: https://skia.googlesource.com/skia/+/c092d3bdab5f723576cc0346cea3ee282a9cb444

TBR=mtklein@chromium.org,mtklein@google.com,borenet@google.com,kkinnunen@nvidia.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2992

Review URL: https://codereview.chromium.org/724073002
2014-11-13 08:06:40 -08:00
jcgregorio
1c6e7571d4 Revert of Fix build for iOS after "Make nanobench and dm be usable from Chromium build" (patchset #1 id:1 of https://codereview.chromium.org/716413003/)
Reason for revert:
Causes breakages on Mac.

Original issue's description:
> Fix build for iOS after "Make nanobench and dm be usable from Chromium build"
>
> Fix build for iOS after "Make nanobench and dm be usable from Chromium
> build"
>
> BUG=skia:2992
>
> Committed: https://skia.googlesource.com/skia/+/0935aed2787eb79629125bdfef9aba2a6a283ef7

TBR=robertphillips@google.com,kkinnunen@nvidia.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2992

Review URL: https://codereview.chromium.org/724813002
2014-11-13 07:58:01 -08:00
caryclark
65f553182a These tests stress pathops by describing the union of circle-like paths that have tiny line segments embedded and double back to create near-coincident conditions.
The fixes include
- detect when finding the active top loops between two possible answers
- preflight chasing winding to ensure answer is consistent
- binary search more often when quadratic intersection fails
- add more failure paths when an intersect is missed

While this fixes the chrome bug, reenabling path ops in svg should be deferred until additional fixes are landed.

TBR=
BUG=421132

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

Review URL: https://codereview.chromium.org/633393002
2014-11-13 06:58:52 -08:00
kkinnunen
0935aed278 Fix build for iOS after "Make nanobench and dm be usable from Chromium build"
Fix build for iOS after "Make nanobench and dm be usable from Chromium
build"

BUG=skia:2992

Review URL: https://codereview.chromium.org/716413003
2014-11-13 06:00:45 -08:00
kkinnunen
c092d3bdab Make nanobench and dm be usable from Chromium build
Move the app logic for each app as follows:

<app>.cpp -- the file which contains main(). Embedders that compile
their own apps, such as ios shell, upcoming Chromium dm etc, do not use this.

<app>_main.cpp -- the main logic of the Skia test application. This will be
used by Skia -compiled apps as well as embedder -compiled apps.

<app>_main.h -- the API for the main logic. This will be
used by Skia -compiled apps as well as embedder -compiled apps.

This way (the upcoming) Chromium dm can setup its Chromium-specific setup
in custom main(), and then call dm_main(), without the need of any
SK_BUILD_FOR_XXXX defines controlling whether the tool defines main or not.

BUG=skia:2992

Review URL: https://codereview.chromium.org/657373002
2014-11-13 05:00:57 -08:00
mtklein
8113dd1369 SkVarAlloc
Like SkChunkAlloc, but
  - does its allocation with better sympathy for malloc granularity;
  - the fast path inlines entirely;
  - smaller per-block overhead;
  - smaller per-SkVarAlloc overhead;
  - growth parameters are a little more tunable.

Its main downside is less flexibility; it supports fewer methods than SkChunkAlloc.

These current parameters bring the first allocation down from 4K to 1K,
without affecting recording time on my desktop.  skiaperf.com will tell the
whole story.

BUG=skia:

Review URL: https://codereview.chromium.org/674263002
2014-11-12 15:15:28 -08:00
mtklein
71a2363707 More cleanup: streamline paths and bitmaps.
SkBitmapHeap is still used---now exclusively---by pipe.

BUG=skia:

Review URL: https://codereview.chromium.org/715413002
2014-11-12 10:24:55 -08:00
robertphillips
8236591547 Rename GrAccelData to SkLayerInfo and move it to src/core
Review URL: https://codereview.chromium.org/719133002
2014-11-12 09:32:34 -08:00
mtklein
a74ce853c8 Start stripping out complicated parts of SkPicture{Record,Data}.
First step: no more paint flattening or deduplication.

BUG=skia:

Review URL: https://codereview.chromium.org/723593002
2014-11-12 09:19:02 -08:00
egdaniel
605dd0fbce Move GrInvariantOutput out of GrProcessor and into its own class.
This will help with the ability to subclass, add to, etc. GrInvariantOutput. Also it was simply
getting a little too big to be a "supporting" subclass
BUG=skia:

Review URL: https://codereview.chromium.org/699943003
2014-11-12 08:35:25 -08:00
bsalomon
453cf40ac7 Add GrGpuResource::CacheAccess
Internal only helper class for manipulating and accessing cache keys.

BUG=skia:2889

Review URL: https://codereview.chromium.org/703303003
2014-11-11 14:15:57 -08:00
scroggo
a99f9eeed6 Reenable deprecation warnings on Android framework.
Most recently introduced here: https://codereview.chromium.org/304333002

It appears these are not currently needed (I just disabled it and
successfully built).

Since we appear to be out of the transitional period, I propose we
remove them so we can know if we deprecate something Android uses
(and fix the call site).

Review URL: https://codereview.chromium.org/696063006
2014-11-11 07:04:33 -08:00
mtklein
5da116f920 start again on Sk4x with portable version and unit tests
work on tests

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu13.10-GCE-NoGPU-x86_64-Debug-ASAN-Trybot,Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot,Test-Win7-ShuttleA-HD2000-x86_64-Debug-Trybot,Test-Win7-ShuttleA-HD2000-x86-Debug-Trybot
BUG=skia:

Review URL: https://codereview.chromium.org/704923003
2014-11-11 06:16:42 -08:00
reed
c536942dc9 initial checkin for experimenting
BUG=skia:

Review URL: https://codereview.chromium.org/696063005
2014-11-11 04:56:05 -08:00
scroggo
b61e206138 Add tests (and fix!) for known bad ICO files.
We previously saw crashes decoding bad ICO files. Add tests for
known bad files.

While testing, I learned that one of them still crashes. Check for
large offset and size separately to fix the crash.

BUG=skia:2878

Review URL: https://codereview.chromium.org/712123002
2014-11-10 13:12:25 -08:00
halcanary
8e74b1565c Fix SkTime::GetDateTime Posix implementation, add unit test.
The year was off by 1900

Review URL: https://codereview.chromium.org/714633002
2014-11-10 09:20:22 -08:00
joshualitt
4973d9da4a Default geometry processor
BUG=skia:

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

Review URL: https://codereview.chromium.org/678953002
2014-11-08 09:24:25 -08:00
joshualitt
ee0ea3f0dd Revert of Default geometry processor (patchset #9 id:160001 of https://codereview.chromium.org/678953002/)
Reason for revert:
breaks nexus 5

Original issue's description:
> Default geometry processor
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/ff343074b2a3fdaa5f120600e28717e366bceadd

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

Review URL: https://codereview.chromium.org/691313003
2014-11-07 12:08:03 -08:00
joshualitt
ff343074b2 Default geometry processor
BUG=skia:

Review URL: https://codereview.chromium.org/678953002
2014-11-07 11:47:10 -08:00
jvanverth
4736e1434a Get gpudft support working in dm, gm, nanobench and bench_pictures
Adds a new config to test distance field text.
Clean up some flags and #defines to read "distance field text",
not "distance field fonts" to be consistent with Chromium

NOTREECHECKS=true

Committed: https://skia.googlesource.com/skia/+/06ba179838ba4fe187cf290750aeeb4a02a2960b

Review URL: https://codereview.chromium.org/699453005
2014-11-07 07:12:46 -08:00
jvanverth
aa30ab3079 Revert of Get gpudft support working in dm, gm, nanobench and bench_pictures (patchset #2 id:20001 of https://codereview.chromium.org/699453005/)
Reason for revert:
Not compiling in ANGLE build

Original issue's description:
> Get gpudft support working in dm, gm, nanobench and bench_pictures
>
> Adds a new config to test distance field text.
> Clean up some flags and #defines to read "distance field text",
> not "distance field fonts" to be consistent with Chromium
>
> NOTREECHECKS=true
>
> Committed: https://skia.googlesource.com/skia/+/06ba179838ba4fe187cf290750aeeb4a02a2960b

TBR=bsalomon@google.com,mtklein@google.com,reed@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/707723005
2014-11-06 13:52:45 -08:00
jvanverth
06ba179838 Get gpudft support working in dm, gm, nanobench and bench_pictures
Adds a new config to test distance field text.
Clean up some flags and #defines to read "distance field text",
not "distance field fonts" to be consistent with Chromium

NOTREECHECKS=true

Review URL: https://codereview.chromium.org/699453005
2014-11-06 13:38:52 -08:00
mtklein
a30b2ee0da PictureRecordBench's benchmarks are no longer relevant with SkRecord.
BUG=skia:

Review URL: https://codereview.chromium.org/698163004
2014-11-04 11:14:48 -08:00
jvanverth
f7007b023d Enable distance field path rendering in Chrome.
- Add stat tracking for df-renderable paths
- Modify GPU rasterization veto to account for df-renderable paths
- Remove #define hiding df paths from Chromium and Android

BUG=skia:2935

Review URL: https://codereview.chromium.org/685113003
2014-11-04 07:59:01 -08:00
scroggo
7a10fb6bea Separate JSON functions from DMWriteTask.
Add JsonWriter, which handles Json output from DM, in preparation for
adding json output for tests. This change should not affect behavior.

BUG=skia:2454

Review URL: https://codereview.chromium.org/702513003
2014-11-04 07:21:10 -08:00
mtklein
ecf987559b Turn SkTaskGroups back on.
Revert "Disable SkTaskGroup in SkMultiPictureDraw temporarily."
Revert "Revert harder, removing SkTaskGroup.cpp from core temporarily."

NOTREECHECKS=true

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/2100c5ed7a5e5470a04e7af7309d8bd3fc4249f7

Review URL: https://codereview.chromium.org/687263007
2014-11-03 17:41:08 -08:00
reed
615c593780 move SkTextBox into utils
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/696293005
2014-11-03 14:55:40 -08:00
bsalomon
37dd331b20 Add class GrGLTextureRenderTarget for GL texture/rendertarget objects
BUG=skia:2889

Review URL: https://codereview.chromium.org/695813003
2014-11-03 08:47:23 -08:00
robertphillips
66cad7669b Always enable layer hoisting in Skia
This will prevent bit rot of the layer hoisting code and position us better for turning this on in Chromium.

Review URL: https://codereview.chromium.org/698493002
2014-11-03 07:19:30 -08:00
mtklein
e9f7fbfaee Revert of Turn SkTaskGroups back on. (patchset #1 id:1 of https://codereview.chromium.org/687263007/)
Reason for revert:
precautionary revert.  may have caused WinXP crashes on Chrome tree: https://code.google.com/p/chromium/issues/detail?id=429207

Original issue's description:
> Turn SkTaskGroups back on.
>
> Revert "Disable SkTaskGroup in SkMultiPictureDraw temporarily."
> Revert "Revert harder, removing SkTaskGroup.cpp from core temporarily."
>
> NOTREECHECKS=true
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/2100c5ed7a5e5470a04e7af7309d8bd3fc4249f7

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

Review URL: https://codereview.chromium.org/693993002
2014-10-31 11:30:22 -07:00
egdaniel
ed3af6648f Use Color Processor for color bitmap text draws on gpu.
This change is here since previously color bitmap text was rendered using a
geometry processor in the coverage stage. The problem with this is that we
cannot correctly do xfer modes with this method. So I now make color bitmap text
draw using a color stage in the same was as a draw bitmap call.

One issue that arrises from this fix is that we end up adding this final color
processor after any previous color processors. Thus if we have a custom blend
implemented as a color processor it will be before this text one and we won't
blend correctly. This issue will get fixed once an xfer processor is fully
implemented. I have hacked a test locally to show that if we can add the text
color processor to the begining of the color stages we do blend correctly in all
cases (so the xfer processor will be a fix).

BUG=skia:

Review URL: https://codereview.chromium.org/689923004
2014-10-31 06:55:45 -07:00
mtklein
2100c5ed7a Turn SkTaskGroups back on.
Revert "Disable SkTaskGroup in SkMultiPictureDraw temporarily."
Revert "Revert harder, removing SkTaskGroup.cpp from core temporarily."

NOTREECHECKS=true

BUG=skia:

Review URL: https://codereview.chromium.org/687263007
2014-10-31 06:38:25 -07:00
junov
a41d3c33bc Make RTree handle the case where the playback canvas has empty clip bounds
BUG=skia:3074

Review URL: https://codereview.chromium.org/678303004
2014-10-30 11:44:20 -07:00
djsollen
a3a706fcd4 Cleanup android to ensure it can compile with clang
Review URL: https://codereview.chromium.org/694533002
2014-10-30 11:39:13 -07:00
mtklein
13a8de0b51 Revert harder, removing SkTaskGroup.cpp from core temporarily.
Not all linkers are seeing the SkThread code is not needed.

BUG=skia:
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/673903007
2014-10-30 08:19:19 -07:00
reed
89889b6939 MultiPictureDraw is taskgroup aware.
SampleApp is multipicturedraw aware.

BUG=skia:

Review URL: https://codereview.chromium.org/684923002
2014-10-29 12:36:45 -07:00
jcgregorio
e001da2558 SkV8Sample: Now with Path2D and Path2DBuilder.
BUG=skia:

Review URL: https://codereview.chromium.org/661033005
2014-10-29 05:33:28 -07:00
joshualitt
79f8faeea2 OptState owns program descriptor
BUG=skia:

Review URL: https://codereview.chromium.org/674543004
2014-10-28 17:59:26 -07:00
scroggo
8f0d69e48e Remove unneeded file.
public_headers.gypi was never needed by Skia proper, and was almost
always out of date. Its actual user no longer needs it, so stop
updating it with every other change to public headers.

BUG=skia:2350

Review URL: https://codereview.chromium.org/683123003
2014-10-28 10:27:50 -07:00
humper
535e3b2025 Fix the way we patch up the matrix for scaled images that aren't
clamp/clamp

BUG=skia:2904
TBR=reed

Review URL: https://codereview.chromium.org/675823002
2014-10-27 10:32:07 -07:00
jcgregorio
5e44b00392 Start moving to the new canvas structure.
Adds DrawingMethods with some of the methods it defines. Context is now
an implementation of DrawingMethods.

The sample.js file now shows how the context is used.

Not much new code here, that's mostly in DrawingMethods::DrawPath, most everything else is a code move.

BUG=skia:

Review URL: https://codereview.chromium.org/676423002
2014-10-27 10:27:01 -07:00
halcanary
30b83d45a3 add gm: colorwheel
BUG=skia:3061

Review URL: https://codereview.chromium.org/680533002
2014-10-26 05:23:53 -07:00
jcgregorio
e22f45fd89 Doing the "using namespace" penance by adding in v8:: everywhere, like I should have to begin with.
Also:
  - SkWindow now has createSurface, not createCanvas.
  - Add the platform init code v8 now seems to require.
  - Fix library linkage.
  - Call isolate->Enter(); because it doesn't look
    like v8 starts with a default isolate to begin with.

BUG=skia:

Review URL: https://codereview.chromium.org/673223002
2014-10-24 12:49:17 -07:00
reed
e332396d2f move c api into include
BUG=skia:

Review URL: https://codereview.chromium.org/665203004
2014-10-24 11:16:19 -07:00
pavel
47eedcc848 Add utils to better quantize grayscale values to three bit indices while
compressing coverage masks.

Signed-off-by: Pavel Krajcevski <pavel@cs.unc.edu>

BUG=skia:

Review URL: https://codereview.chromium.org/669243003
2014-10-23 13:18:50 -07:00
qiankun.miao
d9aac34ece Add SkMaskCache
BUG=skia:

Review URL: https://codereview.chromium.org/670063004
2014-10-23 07:58:17 -07:00
mtklein
e9e0dea15b SkLazyPtr follow ups
- moves test to LazyPtrTest.cpp
 - adds the ability to use a Create() method with an argument

BUG=skia:

Review URL: https://codereview.chromium.org/669783002
2014-10-21 12:20:04 -07:00
mtklein
1d932663e1 SkLazyPtr suitable as a local or class member.
BUG=skia:

Review URL: https://codereview.chromium.org/653183006
2014-10-20 13:46:11 -07:00
bungeman
a4c4a2d8cd Replace SkTypeface::Style with SkFontStyle.
Committed: https://skia.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20

Review URL: https://codereview.chromium.org/488143002
2014-10-20 13:33:19 -07:00
mtklein
802ad83dca Revert of Replace SkTypeface::Style with SkFontStyle. (patchset #9 id:160001 of https://codereview.chromium.org/488143002/)
Reason for revert:
CrOS GM failures:

[*] 2 ExpectationsMismatch: fontmgr_iter_565.png fontmgr_iter_8888.png

Original issue's description:
> Replace SkTypeface::Style with SkFontStyle.
>
> Committed: https://skia.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20

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

Review URL: https://codereview.chromium.org/667023002
2014-10-20 12:54:31 -07:00
bungeman
43b8b36b20 Replace SkTypeface::Style with SkFontStyle.
Review URL: https://codereview.chromium.org/488143002
2014-10-20 12:33:59 -07:00
mtklein
dba3e64ab9 Revert of Start to vectorize SkTileGrid. (patchset #48 id:1670001 of https://codereview.chromium.org/634543004/)
Reason for revert:
breaks chrome GPU debug bots

Original issue's description:
> Start to vectorize SkTileGrid.
>
> This adds Sk4x.h to help.
>
> BUG=skia:3041
>
> Committed: https://skia.googlesource.com/skia/+/90c7992bfc6330f070f7704d63372a0ec8410170
>
> CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/958e9628d5f9a81aeafa78572cb4afc4b19a455a

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

Review URL: https://codereview.chromium.org/637863005
2014-10-20 10:43:55 -07:00
scroggo
84c14ee107 Remove content from public_headers.
The file is unused, but we cannot safely delete it until we remove
the reference in a chromium gyp file.

BUG=skia:2350

Review URL: https://codereview.chromium.org/663913003
2014-10-20 09:55:28 -07:00
mtklein
958e9628d5 Start to vectorize SkTileGrid.
This adds Sk4x.h to help.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/90c7992bfc6330f070f7704d63372a0ec8410170

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot

Review URL: https://codereview.chromium.org/634543004
2014-10-20 07:12:34 -07:00
mtklein
a71aee6afd Remove obsolete SkRecording.
Can land after https://codereview.chromium.org/664583002/ does.

BUG=skia:

Only API removed.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/660903002
2014-10-20 06:44:58 -07:00
mtklein
2348199907 Revert of Start to vectorize SkTileGrid. (patchset #45 id:1430002 of https://codereview.chromium.org/634543004/)
Reason for revert:
Many GCC bots missing __builtin_shuffle, e.g. Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot.

Original issue's description:
> Start to vectorize SkTileGrid.
>
> This adds Sk4x.h to help.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/90c7992bfc6330f070f7704d63372a0ec8410170

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

Review URL: https://codereview.chromium.org/663663002
2014-10-16 15:27:47 -07:00
mtklein
90c7992bfc Start to vectorize SkTileGrid.
This adds Sk4x.h to help.

BUG=skia:

Review URL: https://codereview.chromium.org/634543004
2014-10-16 15:21:43 -07:00
cdalton
6819df3644 Adds a GrTRecorder class that GrInOrderDrawBuffer uses to allocate
all its commands interleaved in contiguous memory. GrTRecorder also
supports extra data associated with objects, so we can store arrays
inline without having to call malloc().

Committed: https://skia.googlesource.com/skia/+/360b6801cfd90485891d709e44cf395d527ba69e

Review URL: https://codereview.chromium.org/628453002
2014-10-15 13:43:48 -07:00
bsalomon
6251d17dfa Split GrFragmentProcessor into its own header
Review URL: https://codereview.chromium.org/660573002
2014-10-15 10:50:36 -07:00
mtklein
f439c77e9c Revert of Create a single command buffer for GrInOrderDrawBuffer (patchset #17 id:1240001 of https://codereview.chromium.org/628453002/)
Reason for revert:
Leaking memory:
http://build.chromium.org/p/client.skia/builders/Test-Ubuntu12-ShuttleA-GTX550Ti-x86_64-Release-Valgrind/builds/9/steps/gm/logs/stdio

Original issue's description:
> Adds a GrTRecorder class that GrInOrderDrawBuffer uses to allocate
> all its commands interleaved in contiguous memory. GrTRecorder also
> supports extra data associated with objects, so we can store arrays
> inline without having to call malloc().
>
> Committed: https://skia.googlesource.com/skia/+/360b6801cfd90485891d709e44cf395d527ba69e

TBR=bsalomon@google.com,reed@google.com,cdalton@nvidia.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/654863003
2014-10-14 14:29:30 -07:00
cdalton
360b6801cf Adds a GrTRecorder class that GrInOrderDrawBuffer uses to allocate
all its commands interleaved in contiguous memory. GrTRecorder also
supports extra data associated with objects, so we can store arrays
inline without having to call malloc().

Review URL: https://codereview.chromium.org/628453002
2014-10-14 11:53:05 -07:00
mtklein
380d7d7339 Revert of No threadsafe statics. (patchset #1 id:1 of https://codereview.chromium.org/654663002/)
Reason for revert:
Want to think about how to do this only to skialib and not to tools (gms, tests, etc.)

Original issue's description:
> No threadsafe statics.
>
> Chrome disables these for speed and code size, so we need
> to disable them to make sure our code is safe when used
> this way.
>
>     int foo() {
>         static int32_t atomic_thing;
>         return sk_atomic_inc(&atomic_thing);
>     }
>
> is not safe in Chrome.  Making the static global is:
>
>     static int32_t atomic_thing;
>     int foo() {
>         return sk_atomic_inc(&atomic_thing);
>     }
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/cad5d3e264535c919b80e1e2a85407307961f221

TBR=bungeman@google.com,mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/649343003
2014-10-13 14:50:41 -07:00
mtklein
07894c4d7d Revert of Create a single command buffer for GrInOrderDrawBuffer (patchset #14 id:1050001 of https://codereview.chromium.org/628453002/)
Reason for revert:
New test failing on Android: http://build.chromium.org/p/client.skia.android/builders/Test-Android-Nexus7-Tegra3-Arm7-Release/builds/89/steps/dm/logs/stdio

Original issue's description:
> Adds a GrTBaseList class that GrInOrderDrawBuffer uses to allocate
> all its commands interleaved in contiguous memory. GrTBaseList also
> supports extra data associated with objects, so we can store arrays
> inline without having to call malloc().
>
> Committed: https://skia.googlesource.com/skia/+/47c844aaba81e5a29c773b660e1d6062c766d253

TBR=bsalomon@google.com,reed@google.com,cdalton@nvidia.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/652843002
2014-10-13 14:00:42 -07:00
mtklein
cad5d3e264 No threadsafe statics.
Chrome disables these for speed and code size, so we need
to disable them to make sure our code is safe when used
this way.

    int foo() {
        static int32_t atomic_thing;
        return sk_atomic_inc(&atomic_thing);
    }

is not safe in Chrome.  Making the static global is:

    static int32_t atomic_thing;
    int foo() {
        return sk_atomic_inc(&atomic_thing);
    }

BUG=skia:

Review URL: https://codereview.chromium.org/654663002
2014-10-13 12:53:28 -07:00
jvanverth
0880686d95 Enable color emoji GM on Android
BUG=skia:2887

Review URL: https://codereview.chromium.org/656433002
2014-10-13 12:48:10 -07:00
cdalton
47c844aaba Adds a GrTBaseList class that GrInOrderDrawBuffer uses to allocate
all its commands interleaved in contiguous memory. GrTBaseList also
supports extra data associated with objects, so we can store arrays
inline without having to call malloc().

Review URL: https://codereview.chromium.org/628453002
2014-10-13 12:43:10 -07:00
mtklein
335a0ae19c Allow GCC to build Skia on Mac.
GCC doesn't understand -fasm-blocks or -mpascal-strings, but we don't care
about them.

While looking around in Gyp, I noticed a better way to disable warnings about
offsetof so that it doesn't tell us "disabling this warning makes no sense in C"
for every C source file we compile.

BUG=skia:

Review URL: https://codereview.chromium.org/650553002
2014-10-13 12:32:34 -07:00
tfarina
93bee71a41 Remove empty recordy.gypi file.
Fixes the TODO in that file.

BUG=None
TEST=None
R=mtklein@google.com

Review URL: https://codereview.chromium.org/643543002
2014-10-10 13:34:25 -07:00
reed
1119c87065 cleanup and optimize rect intersect routines
BUG=skia:

Review URL: https://codereview.chromium.org/640723004
2014-10-09 14:29:01 -07:00
caryclark
feff7d2d77 Draw more accurate thick-stroked Beziers (disabled)
Draw thick-stroked Beziers by computing the outset quadratic, measuring the error, and subdividing until the error is within a predetermined limit.

To try this CL out, change src/core/SkStroke.h:18 to

  #define QUAD_STROKE_APPROXIMATION 1

or from the command line: CPPFLAGS="-D QUAD_STROKE_APPROXIMATION=1" ./gyp_skia

Here's what's in this CL:

bench/BezierBench.cpp : a microbench for examining where the time is going
gm/beziers.cpp        : random Beziers with various thicknesses
gm/smallarc.cpp       : a distillation of bug skia:2769
samplecode/SampleRotateCircles.cpp : controls added for error, limit, width
src/core/SkStroke.cpp : the new stroke implementation (disabled)
tests/StrokerTest.cpp : a stroke torture test that checks normal and extreme values

The new stroke algorithm has a tweakable parameter:

  stroker.setError(1);  (SkStrokeRec.cpp:112)

The stroke error is the allowable gap between the midpoint of the stroke quadratic and the center Bezier. As the projection from the quadratic approaches the endpoints, the error is decreased proportionally so that it is always inside the quadratic curve.

An overview of how this works:
- For a given T range of a Bezier, compute the perpendiculars and find the points outset and inset for some radius.
- Construct tangents for the quadratic stroke.
- If the tangent don't intersect between them (may happen with cubics), subdivide.
- If the quadratic stroke end points are close (again, may happen with cubics), draw a line between them.
- Compute the quadratic formed by the intersecting tangents.
- If the midpoint of the quadratic is close to the midpoint of the Bezier perpendicular, return the quadratic.
- If the end of the stroke at the Bezier midpoint doesn't intersect the quad's bounds, subdivide.
- Find where the Bezier midpoint ray intersects the quadratic.
- If the intersection is too close to the quad's endpoints, subdivide.
- If the error is large proportional to the intersection's distance to the quad's endpoints, subdivide.

BUG=skia:723,skia:2769

Review URL: https://codereview.chromium.org/558163005
2014-10-09 05:36:04 -07:00
sugoi
ce686270f5 Adding 3D lut color filter
Included in this cl is support for 3D textures.

BUG=skia:

Review URL: https://codereview.chromium.org/580863004
2014-10-09 05:27:23 -07:00
kkinnunen
9e61bb7815 Make the Sk GL context class an abstract base class
Make the Sk GL context class, SkGLNativeContext, an abstract base class. Before,
it depended on ifdefs to implement the platform dependent polymorphism.  Move
the logic to subclasses of the various platform implementations.

This a step to enable Skia embedders to compile dm and bench_pictures. The
concrete goal is to support running these test apps with Chromium command buffer.

With this change, Chromium can implement its own version of SkGLNativeContext
that uses command buffer, and host the implementation in its own repository.

Implements the above by renaming the SkGLContextHelper to SkGLContext and
removing the unneeded SkGLNativeContext. Also removes
SkGLNativeContext::AutoRestoreContext functionality, it appeared to be unused:
no use in Skia code, and no tests.

BUG=skia:2992

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

Review URL: https://codereview.chromium.org/630843002
2014-10-09 05:24:15 -07:00
robertphillips
a624e87e8e Implement C path functions
Mainly just to familiarize myself with this code.

Review URL: https://codereview.chromium.org/633183002
2014-10-08 06:04:35 -07:00
reed
9d93c2ebb3 Add SkCachedData and use it for SkMipMap
This reverts commit 37c5a815d8.

TBR=mtklein

Review URL: https://codereview.chromium.org/635333002
2014-10-08 05:17:12 -07:00
bsalomon
10805961ce Revert of Make the Sk GL context class an abstract base class (patchset #4 id:60001 of https://codereview.chromium.org/630843002/)
Reason for revert:
nanobech failing on Android

Original issue's description:
> Make the Sk GL context class an abstract base class
>
> Make the Sk GL context class, SkGLNativeContext, an abstract base class. Before,
> it depended on ifdefs to implement the platform dependent polymorphism.  Move
> the logic to subclasses of the various platform implementations.
>
> This a step to enable Skia embedders to compile dm and bench_pictures. The
> concrete goal is to support running these test apps with Chromium command buffer.
>
> With this change, Chromium can implement its own version of SkGLNativeContext
> that uses command buffer, and host the implementation in its own repository.
>
> Implements the above by renaming the SkGLContextHelper to SkGLContext and
> removing the unneeded SkGLNativeContext. Also removes
> SkGLNativeContext::AutoRestoreContext functionality, it appeared to be unused:
> no use in Skia code, and no tests.
>
> BUG=skia:2992
>
> Committed: https://skia.googlesource.com/skia/+/a90ed4e83897b45d6331ee4c54e1edd4054de9a8

TBR=kkinnunen@nvidia.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2992

Review URL: https://codereview.chromium.org/639793002
2014-10-08 04:45:10 -07:00
kkinnunen
a90ed4e838 Make the Sk GL context class an abstract base class
Make the Sk GL context class, SkGLNativeContext, an abstract base class. Before,
it depended on ifdefs to implement the platform dependent polymorphism.  Move
the logic to subclasses of the various platform implementations.

This a step to enable Skia embedders to compile dm and bench_pictures. The
concrete goal is to support running these test apps with Chromium command buffer.

With this change, Chromium can implement its own version of SkGLNativeContext
that uses command buffer, and host the implementation in its own repository.

Implements the above by renaming the SkGLContextHelper to SkGLContext and
removing the unneeded SkGLNativeContext. Also removes
SkGLNativeContext::AutoRestoreContext functionality, it appeared to be unused:
no use in Skia code, and no tests.

BUG=skia:2992

Review URL: https://codereview.chromium.org/630843002
2014-10-08 04:14:24 -07:00
joshualitt
47bb382830 Cleanup of shader building system
this is a huge refactor and cleanup of the gl shader building system in
Skia.  The entire shader building pipeline is now part of
GrGLProgramCreator, which takes a gp, and some fps, and creates a
program.  I added some subclasses of GrGLProgram to handle the
eccentricities of Nvpr/Nvpres.  Outside of the builders folder
and GrGLPrograms, this change is basically just a rename

solo gp

BUG=skia:

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

Review URL: https://codereview.chromium.org/611653002
2014-10-07 16:43:25 -07:00
joshualitt
db0d3ca070 Revert of Cleanup of shader building system (patchset #25 id:470001 of https://codereview.chromium.org/611653002/)
Reason for revert:
Seems to have messed up windows 7 gms

Original issue's description:
> Cleanup of shader building system
>
> this is a huge refactor and cleanup of the gl shader building system in
> Skia.  The entire shader building pipeline is now part of
> GrGLProgramCreator, which takes a gp, and some fps, and creates a
> program.  I added some subclasses of GrGLProgram to handle the
> eccentricities of Nvpr/Nvpres.  Outside of the builders folder
> and GrGLPrograms, this change is basically just a rename
>
>
> solo gp
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/fe1233c3f12f81bb675718516bbb32f72af726ec

TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/635533005
2014-10-07 12:42:26 -07:00
joshualitt
fe1233c3f1 Cleanup of shader building system
this is a huge refactor and cleanup of the gl shader building system in
Skia.  The entire shader building pipeline is now part of
GrGLProgramCreator, which takes a gp, and some fps, and creates a
program.  I added some subclasses of GrGLProgram to handle the
eccentricities of Nvpr/Nvpres.  Outside of the builders folder
and GrGLPrograms, this change is basically just a rename

solo gp

BUG=skia:

Review URL: https://codereview.chromium.org/611653002
2014-10-07 12:16:36 -07:00
mtklein
38ba4e0588 Add -Wno-invalid-offsetof to Mac and iOS builds too.
We use this on Linux already, but for whatever reason wasn't a problem on iOS
until using it in SkPaint.  Mac 10.7 and 10.8 are showing this warning too,
but seems -Werror is not enabled.

CQ_EXTRA_TRYBOTS=tryserver.skia:Build-Mac10.7-Clang-Arm7-Release-iOS-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/637593002
2014-10-07 09:54:18 -07:00
jvanverth
fa38a30897 Add GrAASmallPathRenderer.
Uses cached signed distance fields to render scaled and rotated versions
of small paths.

BUG=skia:2935

Review URL: https://codereview.chromium.org/589103004
2014-10-06 05:59:05 -07:00
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