Commit Graph

17131 Commits

Author SHA1 Message Date
fmalita
a62d32d1e3 Decrement SkCanvas::fDeferredSaveCount in doSave()
We're currently decrementing early in checkForDeferredSave(), but that
means we break the getSaveCount() invariant during willSave() dispatch.

Instead, we can defer to doSave(), until after willSave() is called.
This allows overriders to call getSaveCount().

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

Review URL: https://codereview.chromium.org/1113603002
2015-04-28 08:08:57 -07:00
bsalomon
72e3ae486c Remove vertex/index buffer factilities from GrDrawTarget.
Review URL: https://codereview.chromium.org/1105263002
2015-04-28 08:08:46 -07:00
robertphillips
7272935744 Add new GM/bench for line-only convex paths
BUG=472723

Review URL: https://codereview.chromium.org/1112603002
2015-04-28 07:42:04 -07:00
joshualitt
8f94bb2b25 remove old text contexts and fontcache
BUG=skia:

Review URL: https://codereview.chromium.org/1104343003
2015-04-28 07:04:11 -07:00
halcanary
438de49857 SkPDF: clean up uses of deprecated calls in SkPDFDevice.
Clean up reference count handling to avoid churn and follow pattern used elsewhere in SkPDF.

BUG=skia:3585

Review URL: https://codereview.chromium.org/1103163002
2015-04-28 06:21:02 -07:00
tfarina
f4219ddf31 Update more directories under src/ to follow C++11 style rule for {virtual,override}.
The Google style guide states that only one of {virtual,override,final}
should be used for each declaration, since override implies virtual and
final implies both virtual and override.

The entries were found using the following command line:

$ find src/ -iname "*.h" -o -iname "*.cpp" | xargs pcregrep -M
"[^\n/]+virtual\ [^;{]+\ [a-zA-Z0-9_]+\([^;{]+\ override[ \n]*[;{]"

The regex was a courtesy of nick@chromium.org

BUG=None
R=mtklein@google.com

Review URL: https://codereview.chromium.org/1110013002
2015-04-27 17:18:28 -07:00
mtklein
95cc012cca De-proc Color32
Also strips SK_SUPPORT_LEGACY_COLOR32_MATH,
which is no longer needed.

Seems handy to have SkTypes include the relevant intrinsics when
we know we've got them, but I'm not married to it.

Locally this looks like a pointlessly small perf win, but I'm mostly
keen to get all the code together.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b

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

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Mips-Debug-Android-Trybot

Review URL: https://codereview.chromium.org/1104183004
2015-04-27 15:11:01 -07:00
mtklein
641c3ff7c6 Revert of De-proc Color32 (patchset #5 id:80001 of https://codereview.chromium.org/1104183004/)
Reason for revert:
duh

Original issue's description:
> De-proc Color32
>
> Also strips SK_SUPPORT_LEGACY_COLOR32_MATH,
> which is no longer needed.
>
> Seems handy to have SkTypes include the relevant intrinsics when
> we know we've got them, but I'm not married to it.
>
> Locally this looks like a pointlessly small perf win, but I'm mostly
> keen to get all the code together.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b
>
> Committed: https://skia.googlesource.com/skia/+/d65dc0cedd5b50dd407b6ff8fdc39123f11511cc

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

Review URL: https://codereview.chromium.org/1102363006
2015-04-27 14:51:16 -07:00
mtklein
d65dc0cedd De-proc Color32
Also strips SK_SUPPORT_LEGACY_COLOR32_MATH,
which is no longer needed.

Seems handy to have SkTypes include the relevant intrinsics when
we know we've got them, but I'm not married to it.

Locally this looks like a pointlessly small perf win, but I'm mostly
keen to get all the code together.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b

Review URL: https://codereview.chromium.org/1104183004
2015-04-27 14:47:23 -07:00
mtklein
d7c014ff03 Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision on ARM
This is a logical no-op.  Everything was using the equivalent of rsqrt1() before, and is now after.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/9de16283fdc8cc0d31a84f503578d0ecea4e8297

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Arm64-Debug-Android-Trybot

Review URL: https://codereview.chromium.org/1109913002
2015-04-27 14:22:32 -07:00
mtklein
498856ebc6 Revert of De-proc Color32 (patchset #4 id:60001 of https://codereview.chromium.org/1104183004/)
Reason for revert:
MIPS

Original issue's description:
> De-proc Color32
>
> Also strips SK_SUPPORT_LEGACY_COLOR32_MATH,
> which is no longer needed.
>
> Seems handy to have SkTypes include the relevant intrinsics when
> we know we've got them, but I'm not married to it.
>
> Locally this looks like a pointlessly small perf win, but I'm mostly
> keen to get all the code together.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/376e9bc206b69d9190f38dfebb132a8769bbd72b

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

Review URL: https://codereview.chromium.org/1108163002
2015-04-27 14:17:37 -07:00
mtklein
376e9bc206 De-proc Color32
Also strips SK_SUPPORT_LEGACY_COLOR32_MATH,
which is no longer needed.

Seems handy to have SkTypes include the relevant intrinsics when
we know we've got them, but I'm not married to it.

Locally this looks like a pointlessly small perf win, but I'm mostly
keen to get all the code together.

BUG=skia:

Review URL: https://codereview.chromium.org/1104183004
2015-04-27 14:14:17 -07:00
halcanary
a25b3371a7 SkPDF: clean up uses of deprecated calls in other SkPDF classes
BUG=skia:3585

Review URL: https://codereview.chromium.org/1107923002
2015-04-27 14:00:09 -07:00
mtklein
9a22f489e8 Revert of Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision on ARM (patchset #2 id:20001 of https://codereview.chromium.org/1109913002/)
Reason for revert:
arm64 typos

Original issue's description:
> Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision on ARM
>
> This is a logical no-op.  Everything was using the equivalent of rsqrt1() before, and is now after.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/9de16283fdc8cc0d31a84f503578d0ecea4e8297

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

Review URL: https://codereview.chromium.org/1105233003
2015-04-27 13:55:53 -07:00
mtklein
9de16283fd Split rsqrt into rsqrt{0,1,2}, with increasing cost and precision on ARM
This is a logical no-op.  Everything was using the equivalent of rsqrt1() before, and is now after.

BUG=skia:

Review URL: https://codereview.chromium.org/1109913002
2015-04-27 13:51:28 -07:00
hcm
a6f75070ba Add presentations section and pathops file for test
BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1111453002

Review URL: https://codereview.chromium.org/1111453002
2015-04-27 12:44:40 -07:00
mtklein
1113da72ec Mike's radial gradient CL with better float -> int.
patch from issue 1072303005 at patchset 40001 (http://crrev.com/1072303005#ps40001)

This looks quite launchable.  radial_gradient3, min of 100 samples:
  N5:  985µs -> 946µs
  MBP: 395µs -> 279µs

On my MBP, most of the meat looks like it's now in reading the cache and writing to dst one color at a time.  Is that something we could do in float math rather than with a lookup table?

BUG=skia:

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.8-Clang-Arm7-Debug-Android-Trybot,Build-Ubuntu-GCC-Arm7-Release-Android_NoNeon-Trybot

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

Review URL: https://codereview.chromium.org/1109643002
2015-04-27 12:08:01 -07:00
joshualitt
0dcb8e32dd In this CL we stop closing batches prematurely, and only close immediately before a flush.
BUG=skia:

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

Committed: https://skia.googlesource.com/skia/+/9e830ead85e544924344b01436c44cfb09fcf177

Review URL: https://codereview.chromium.org/1092403002
2015-04-27 12:03:05 -07:00
joshualitt
385e26ef36 Revert of Stop closing batch prematurely (patchset #4 id:60001 of https://codereview.chromium.org/1092403002/)
Reason for revert:
really does break windows bots

Original issue's description:
> In this CL we stop closing batches prematurely, and only close immediately before a flush.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/db3ce12c810ead7b76faa784e7293197aca0d9f1
>
> Committed: https://skia.googlesource.com/skia/+/9e830ead85e544924344b01436c44cfb09fcf177

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

Review URL: https://codereview.chromium.org/1105203002
2015-04-27 11:42:30 -07:00
joshualitt
9e830ead85 In this CL we stop closing batches prematurely, and only close immediately before a flush.
BUG=skia:

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

Review URL: https://codereview.chromium.org/1092403002
2015-04-27 11:29:09 -07:00
mtklein
8d3e9dff3f Revert of Mike's radial gradient CL with better float -> int. (patchset #7 id:120001 of https://codereview.chromium.org/1109643002/)
Reason for revert:
compile failures.

Original issue's description:
> Mike's radial gradient CL with better float -> int.
>
> patch from issue 1072303005 at patchset 40001 (http://crrev.com/1072303005#ps40001)
>
> This looks quite launchable.  radial_gradient3, min of 100 samples:
>   N5:  985µs -> 946µs
>   MBP: 395µs -> 279µs
>
> On my MBP, most of the meat looks like it's now in reading the cache and writing to dst one color at a time.  Is that something we could do in float math rather than with a lookup table?
>
> BUG=skia:
>
> CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Debug-Trybot,Test-Android-GCC-Nexus9-CPU-Denver-Arm64-Debug-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/abf6c5cf95e921fae59efb487480e5b5081cf0ec

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

Review URL: https://codereview.chromium.org/1109883003
2015-04-27 11:21:16 -07:00
joshualitt
8a0a16d0a5 Revert of Stop closing batch prematurely (patchset #4 id:60001 of https://codereview.chromium.org/1092403002/)
Reason for revert:
breaking windows bots

Original issue's description:
> In this CL we stop closing batches prematurely, and only close immediately before a flush.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/db3ce12c810ead7b76faa784e7293197aca0d9f1

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

Review URL: https://codereview.chromium.org/1109773003
2015-04-27 11:19:33 -07:00
mtklein
abf6c5cf95 Mike's radial gradient CL with better float -> int.
patch from issue 1072303005 at patchset 40001 (http://crrev.com/1072303005#ps40001)

This looks quite launchable.  radial_gradient3, min of 100 samples:
  N5:  985µs -> 946µs
  MBP: 395µs -> 279µs

On my MBP, most of the meat looks like it's now in reading the cache and writing to dst one color at a time.  Is that something we could do in float math rather than with a lookup table?

BUG=skia:

CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Debug-Trybot,Test-Android-GCC-Nexus9-CPU-Denver-Arm64-Debug-Trybot

Review URL: https://codereview.chromium.org/1109643002
2015-04-27 11:13:53 -07:00
msarett
a3a8eb6f63 Make Skia for Android libjpeg use ashmem
BUG=skia:1282

Review URL: https://codereview.chromium.org/1108013002
2015-04-27 10:57:22 -07:00
joshualitt
db3ce12c81 In this CL we stop closing batches prematurely, and only close immediately before a flush.
BUG=skia:

Review URL: https://codereview.chromium.org/1092403002
2015-04-27 10:43:19 -07:00
jvanverth
505306374d Remove legacy NVPR support
BUG=skia:

Review URL: https://codereview.chromium.org/1110553003
2015-04-27 10:36:27 -07:00
bsalomon
d79c549467 Make non-AA hairline stroke rects snap to pixels centers so they close.
BUG=skia:3717

Review URL: https://codereview.chromium.org/1101663007
2015-04-27 10:07:04 -07:00
joshualitt
f0c000df55 fix a bug in scrolling BitmapText gpu cached textblobs
BUG=skia:

Review URL: https://codereview.chromium.org/1103243002
2015-04-27 09:36:55 -07:00
joshualitt
261c3ad7fd Change to add zoom animations to nanobench
BUG=skia:

Review URL: https://codereview.chromium.org/1061323003
2015-04-27 09:16:57 -07:00
mtklein
00c2af8b73 Reduce ref counting in SkPictureRecorder.
This may be a small help to slimming paint:

  picture_overhead_draw 1.25us -> 1.22us    0.98x
  picture_overhead_nodraw    318ns ->  276ns    0.87x

It certainly cannot hurt performance.

BUG=chromium:470553

TBR=reed@google.com
No public API changes.

Review URL: https://codereview.chromium.org/1098183003
2015-04-27 08:54:23 -07:00
mtklein
6393c0653e Add source-data sharding to DM.
E.g.  out/Debug/dm --shards 4 --shard 1

This shards all inputs, GMs, SKPs, tests, etc.

BUG=skia:

Review URL: https://codereview.chromium.org/1109813002
2015-04-27 08:45:01 -07:00
jbroman
de8667b81f Reduce sizeof(SkPicture::Analysis) from 24 bytes to 2 bytes.
This saves "up to" 22 bytes per SkPicture.

Due to alignment, this reduces sizeof(SkPicture):
- from 88 to 72 bytes on Linux x64
- from 68 to 48 bytes on Android
(with Chrome's build settings)

It also somewhat simplifies the GPU veto logic.

BUG=skia:

[mtklein] No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1060863004
2015-04-27 07:55:34 -07:00
tfarina
7831a4bbb4 Update more directories under src/ to follow C++11 style rule for {virtual,override}.
The Google style guide states that only one of {virtual,override,final}
should be used for each declaration, since override implies virtual and
final implies both virtual and override.

The entries were found using the following command line:

$ find src/ -iname "*.h" -o -iname "*.cpp" | xargs pcregrep -M
"[^\n/]+virtual\ [^;{]+\ [a-zA-Z0-9_]+\([^;{]+\ override[ \n]*[;{]"

The regex was a courtesy of nick@chromium.org

BUG=None
R=mtklein@google.com
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/1086143003
2015-04-27 07:53:08 -07:00
tfarina
567ff2f614 Cleanup: Remove unnecessary double-semicolons.
The entries were found by the following command line:

$ find . -regex ".*\.[cChH]\(pp\)?" | xargs git grep -e ';;' --and --not
-e 'for *(.*;;'

Which is a combination of http://stackoverflow.com/a/3858879 and
http://gitster.livejournal.com/27674.html

BUG=None
R=mtklein@google.com

Review URL: https://codereview.chromium.org/1088763005
2015-04-27 07:01:45 -07:00
halcanary
2752314745 dm||nanobench --help looks nice when $COLUMNS == 80.
Also, add to --config help message

Review URL: https://codereview.chromium.org/1105593002
2015-04-27 06:41:36 -07:00
caryclark
6a307bacc8 fix valgrind
TBR=mtklein@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1102273003
2015-04-27 05:39:33 -07:00
kkinnunen
1899651ffc Extract gpu line dashing to GrDashLinePathRenderer
Move line dashing logic from GrContext::drawPath to
GrDashLinePathRenderer. This makes it possible to let path renderers render arbitrary dashed paths.

End goal is to implement dashing in GrStencilAndCoverPathRenderer.

Review URL: https://codereview.chromium.org/1100073003
2015-04-26 23:18:50 -07:00
skia.buildbots
5d23c3824f Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=

Review URL: https://codereview.chromium.org/1060063009
2015-04-26 01:10:31 -07:00
tfarina
283b5878e7 Update {virtual,override} to follow C++11 style in src/utils.
The Google style guide states that only one of {virtual,override,final}
should be used for each declaration, since override implies virtual
and final implies both virtual and override.

The entries were found using the following command line:

$ find src/utils -iname "*.h" -o -iname "*.cpp" | xargs pcregrep -M
"[^\n/]+virtual\ [^;{]+\ [a-zA-Z0-9_]+\([^;{]+\ override[ \n]*[;{]"

The regex was a courtesy of nick@chromium.org

BUG=None
R=mtklein@google.com

Review URL: https://codereview.chromium.org/1099333004
2015-04-25 12:59:45 -07:00
halcanary
130444fdaf SkPDF: Refactor SkPDFObject heiararchy.
Flatten and use a tagged union type

        Δmemory ~= -2.4% ± 0.5%
        Δtime   ~= -1.2% ± 0.2%

BUG=skia:3585

Review URL: https://codereview.chromium.org/1069103003
2015-04-25 06:45:07 -07:00
joshualitt
8e71d38126 fix for GrBatchAtlas valgrind error
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1056383005
2015-04-24 18:47:11 -07:00
halcanary
8440baa5d5 sync-and-gyp script: fix to work in MSYS shell
NOTRY=true
TBR=scroggo@google.com

Review URL: https://codereview.chromium.org/1104613003
2015-04-24 14:33:06 -07:00
tfarina
37a92b4437 Update {virtual,override} to follow C++11 style in src/fonts.
The Google style guide states that only one of {virtual,override,final}
should be used for each declaration, since override implies virtual and
final implies both virtual and override.

The entries were found using the following command line:

$ find src/fonts -iname "*.h" -o -iname "*.cpp" | xargs pcregrep -M
"[^\n/]+virtual\ [^;{]+\ [a-zA-Z0-9_]+\([^;{]+\ override[ \n]*[;{]"

The regex was a courtesy of nick@chromium.org

BUG=None
R=mtklein@google.com

Review URL: https://codereview.chromium.org/1101343002
2015-04-24 14:25:33 -07:00
tfarina
d96fd0c073 Update {virtual,override} to follow C++11 style in src/pipe.
The Google style guide states that only one of {virtual,override,final}
should be used for each declaration, since override implies virtual and
final implies both virtual and override.

The entries were found using the following command line:

$ find src/pipe -iname "*.h" -or -iname "*.cpp" | xargs pcregrep -M
"[^\n/]+virtual\ [^;{]+\ [a-zA-Z0-9_]+\([^;{]+\ override[ \n]*[;{]"

The regex was a courtesy of nick@chromium.org

BUG=None
R=mtklein@google.com

Review URL: https://codereview.chromium.org/1104863003
2015-04-24 13:12:44 -07:00
msarett
9d9725c892 Do not crash nanobench in debug mode
Instead print an error message

BUG=skia:

Review URL: https://codereview.chromium.org/1102083002
2015-04-24 11:41:55 -07:00
robertphillips
91df6c273a Fix some lingering typos
Review URL: https://codereview.chromium.org/1101293003
2015-04-24 11:10:51 -07:00
bsalomon
c9aec1ee9b Revert of Remove validation exceptions in GrGLInterface. These are all now set by Chromium. (patchset #1 id:1 of https://codereview.chromium.org/1100413003/)
Reason for revert:
Crashing bots

Original issue's description:
> Remove validation exceptions in GrGLInterface. These are all now set by Chromium.
>
> Committed: https://skia.googlesource.com/skia/+/42d9f35a8daf7f24ba542ba3783ec46fd965ef2f

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

Review URL: https://codereview.chromium.org/1093323005
2015-04-24 11:08:25 -07:00
joshualitt
9b8e79eca2 simple fix for preabandon valgrind error
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1106663003
2015-04-24 09:57:12 -07:00
caryclark
08bc8488fa fix multiple intersection logic
When three or more curves intersect at the same point, ensure that
each curve records the intersections of the others. This fixes a
number of cubic tests.

TBR=reed@google.com
BUG=skia:3588

Review URL: https://codereview.chromium.org/1105943002
2015-04-24 09:08:57 -07:00
joshualitt
e062db9cc6 fix for using too much memory in GrBatchAtlas
BUG=skia:

Review URL: https://codereview.chromium.org/1105913002
2015-04-24 08:33:21 -07:00