Commit Graph

18969 Commits

Author SHA1 Message Date
joshualitt
11edad9098 Fix for degenerate stroke rect
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/511684fb52f20862f8552f5009390ff3987b08d8

Review URL: https://codereview.chromium.org/1359453002
2015-09-22 10:32:28 -07:00
mdempsky
07ed41fa40 Fix possible integer overflow in SkTSearch's midpoint calculation
Probably unlikely to matter in practice, but SkTQSort calculates its
midpoint correctly, so we might as well do it here too.  For more
background, see Joshua Bloch's "Nearly All Binary Searches and
Mergesorts are Broken" post:
http://googleresearch.blogspot.ru/2006/06/extra-extra-read-all-about-it-nearly.html

This doesn't change any public API.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1362613002
2015-09-22 10:32:02 -07:00
egdaniel
e73f1f6dfa Prefer dual source/framebuffer fetch paths for GPU LCD.
This will allow us to batch over color changes for LCD text.

BUG=skia:

Review URL: https://codereview.chromium.org/1354423002
2015-09-22 10:10:55 -07:00
bungeman
7cbeaae8bb Avoid CTFontCreateCopyWithAttributes.
It appears that CTFontCreateCopyWithAttributes and
CTFontCreateCopyWithSymbolicTraits share similar issues with the default
font on OSX10.10. CTFontCreateWithFontDescriptor cannot be used as
it will not work with webfonts. Since this is all low-level use, create the
CTFonts from the underlying CGFonts directly.

BUG=chromium:524646

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

Review URL: https://codereview.chromium.org/1344213004
2015-09-22 09:54:57 -07:00
benjaminwagner
59ea019fa0 Blacklist bleed_image on GalaxyS4.
BUG=skia:4367

Review URL: https://codereview.chromium.org/1347143006
2015-09-22 09:49:47 -07:00
joshualitt
a204ceda21 Revert of Fix for degenerate stroke rect (patchset #7 id:110001 of https://codereview.chromium.org/1359453002/ )
Reason for revert:
breaking bots

Original issue's description:
> Fix for degenerate stroke rect
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/511684fb52f20862f8552f5009390ff3987b08d8

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

Review URL: https://codereview.chromium.org/1356223003
2015-09-22 09:48:03 -07:00
joshualitt
511684fb52 Fix for degenerate stroke rect
BUG=skia:

Review URL: https://codereview.chromium.org/1359453002
2015-09-22 09:27:05 -07:00
bsalomon
bf87730c7d Move GrFragmentProcessor implementation to its own cpp file
TBR=joshualitt@google.com

Review URL: https://codereview.chromium.org/1350523004
2015-09-22 09:06:13 -07:00
Brian Salomon
3905c379e8 fix factory count
TBR=egdaniel@google.com

Review URL: https://codereview.chromium.org/1357773003 .
2015-09-22 10:08:47 -04:00
bsalomon
87ba62e67c Replace GrExtractAlphaFragmentProcessor with DstIn compose processor
Review URL: https://codereview.chromium.org/1347943003
2015-09-22 06:42:00 -07:00
mdempsky
106b12427e Remove SkNEW and SkDELETE macros
This CL removes the uses of SkNEW that have resprouted since commit
385fe4d, and removes the macros entirely now that Android and Chromium
have been cleaned up to no longer depend on them.

A bunch of files implicitly depend on #include <new> from SkPostConfig.h
still though, so keep that for now.  To be fixed in a followup CL.

[mtklein mucking around]
Only public API removed.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1360653004
2015-09-22 06:10:35 -07:00
halcanary
55fb4f3fda SkTLList throw on sk_malloc fail
BUG=530758

Review URL: https://codereview.chromium.org/1345373006
2015-09-21 13:41:04 -07:00
halcanary
064488a411 whitespace change
NOTRY=true
TBR=

Review URL: https://codereview.chromium.org/1349933004
2015-09-21 13:35:13 -07:00
mtklein
b758bbd84e Revert of Combined approach. (patchset #2 id:20001 of https://codereview.chromium.org/1356133002/ )
Reason for revert:
whee

Original issue's description:
> Combined approach.
>
> This combines some ideas from these two CLs:
>     - try stosd/w
>     - update memset16/32 inlining heuristics
>
>
> BUG=skia:4316
>
> Blinking in and out for perf.skia.org.
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/46243a7c02a1d5116e55a27ff59218f9c320df97

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

Review URL: https://codereview.chromium.org/1353703006
2015-09-21 11:02:39 -07:00
mtklein
46243a7c02 Combined approach.
This combines some ideas from these two CLs:
    - try stosd/w
    - update memset16/32 inlining heuristics

BUG=skia:4316

Blinking in and out for perf.skia.org.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1356133002
2015-09-21 10:50:56 -07:00
halcanary
4ae26258ef CMake: Compile in OSMesa on Linux, if found.
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot,Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot

Review URL: https://codereview.chromium.org/1353383003
2015-09-21 09:42:23 -07:00
halcanary
0fc1dbe592 SK_API for include/gpu/gl/GrGLInterface.h
Review URL: https://codereview.chromium.org/1357823003
2015-09-21 08:22:19 -07:00
borenet
08d7747ffe Buildbot specs for Linux ANGLE bot
BUG=skia:4362

Review URL: https://codereview.chromium.org/1361453002
2015-09-21 08:20:24 -07:00
hcm
3e48aabbf1 update roadmap link to latest
BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1354413003

Review URL: https://codereview.chromium.org/1354413003
2015-09-21 07:32:55 -07:00
mtklein
b1cc9daa65 Revert of try simplest code: inline whenever vaguely sensible (patchset #1 id:1 of https://codereview.chromium.org/1351403005/ )
Reason for revert:
pingpong

Original issue's description:
> try simplest code: inline whenever vaguely sensible
>
> BUG=skia:4316
>
> Will land and revert.
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/527a0c8235b454f5d0475a9a3e34caa9520db3a2

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

Review URL: https://codereview.chromium.org/1355073002
2015-09-20 19:05:01 -07:00
mtklein
527a0c8235 try simplest code: inline whenever vaguely sensible
BUG=skia:4316

Will land and revert.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1351403005
2015-09-20 19:04:21 -07:00
mtklein
c566fddd37 Revert of try stosd/w (patchset #2 id:20001 of https://codereview.chromium.org/1355063002/ )
Reason for revert:
boink

Original issue's description:
> try stosd/w
>
> While we're trying things and reverting them, might as well try this too.
>
> BUG=skia:4316
>
> Blinking in and out for perf.skia.org.
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/3ca0f626a07e9b534d14a2d8213eedb93c5f7534

TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4316

Review URL: https://codereview.chromium.org/1356983004
2015-09-20 18:06:03 -07:00
mtklein
3ca0f626a0 try stosd/w
While we're trying things and reverting them, might as well try this too.

BUG=skia:4316

Blinking in and out for perf.skia.org.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1355063002
2015-09-20 18:05:23 -07:00
mtklein
b63d816683 Revert of update memset16/32 inlining heuristics (patchset #1 id:1 of https://codereview.chromium.org/1357193002/ )
Reason for revert:
Who wants to land forever?

Original issue's description:
> update memset16/32 inlining heuristics
>
> I spent some time looking at perf.skia.org and it looks like we can do better.
>
> It is weird, weird, weird that on x86, we see three completely different behaviors:
>   - x86 Android: inlining better for small N, custom better for large N;
>   - Windows:     inlining better for large N, custom better for small N;
>   - other x86:   inlining generally better
>
> BUG=skia:4316,chromium:516426
>
> (Temporary, plan to revert.)
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/b68fa409fc00ce2f38e2a0fd6f9dc2379b372481

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

Review URL: https://codereview.chromium.org/1358793002
2015-09-20 15:02:54 -07:00
mtklein
b68fa409fc update memset16/32 inlining heuristics
I spent some time looking at perf.skia.org and it looks like we can do better.

It is weird, weird, weird that on x86, we see three completely different behaviors:
  - x86 Android: inlining better for small N, custom better for large N;
  - Windows:     inlining better for large N, custom better for small N;
  - other x86:   inlining generally better

BUG=skia:4316,chromium:516426

(Temporary, plan to revert.)
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1357193002
2015-09-20 15:02:15 -07:00
update-skps
0e7ca50756 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

Review URL: https://codereview.chromium.org/1360503002
2015-09-20 00:14:36 -07:00
bungeman
4de8c3a401 Revert of Avoid CTFontCreateCopyWithAttributes. (patchset #4 id:60001 of https://codereview.chromium.org/1344213004/ )
Reason for revert:
Causes issues with synthetic bold italic on all versions of OSX, with OSX10.10 resulting in many measurement related changes (this is expected though).

fast/text/atsui-multiple-renderers.html
fast/css/font-face-synthetic-bold-italic.html

https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Mac10_9__retina_/6168/layout-test-results/results.html

https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Mac10_10/4525/layout-test-results/results.html

Original issue's description:
> Avoid CTFontCreateCopyWithAttributes.
>
> It appears that CTFontCreateCopyWithAttributes and
> CTFontCreateCopyWithSymbolicTraits share similar issues with the default
> font on OSX10.10. CTFontCreateWithFontDescriptor cannot be used as
> it will not work with webfonts. Since this is all low-level use, create the
> CTFonts from the underlying CGFonts directly.
>
> BUG=chromium:524646
>
> Committed: https://skia.googlesource.com/skia/+/d3296717b9d0930237be3502b82ab94d0b4d177f

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

Review URL: https://codereview.chromium.org/1354323002
2015-09-18 23:03:24 -07:00
bungeman
d3296717b9 Avoid CTFontCreateCopyWithAttributes.
It appears that CTFontCreateCopyWithAttributes and
CTFontCreateCopyWithSymbolicTraits share similar issues with the default
font on OSX10.10. CTFontCreateWithFontDescriptor cannot be used as
it will not work with webfonts. Since this is all low-level use, create the
CTFonts from the underlying CGFonts directly.

BUG=chromium:524646

Review URL: https://codereview.chromium.org/1344213004
2015-09-18 20:13:06 -07:00
jcgregorio
2440fcd941 skia.og: Update the home page to have a showcase of Skia capabilities.
BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1353473007

Review URL: https://codereview.chromium.org/1353473007
2015-09-18 14:05:41 -07:00
herb
0d39d37ddc Delete the typefaces.
BUG=skia:

Review URL: https://codereview.chromium.org/1353203002
2015-09-18 13:52:18 -07:00
joshualitt
aa37a96d55 Create append methods in batch namespaces
BUG=skia:

Review URL: https://codereview.chromium.org/1353553002
2015-09-18 13:03:25 -07:00
joshualitt
2120b6f2cc Fix for combining with perspective local rects
TBR=robertphillips@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1347913004
2015-09-18 12:56:41 -07:00
herb
1052f51a7d Font cache stress test.
BUG=skia:

Review URL: https://codereview.chromium.org/1348883002
2015-09-18 12:09:43 -07:00
msarett
8ff6ca6e73 Disable dithering in libjpeg-turbo for 565 decodes
libjpeg-turbo turns on dithering by default.  When we
decode to RGBA, it uses Floyd-Steinberg dithering -
consistent with the libjpeg6b gold standard,

When we decode to 565, it uses ordered dithering.  Ordered
dithering for 565 is not part of the 6b standard (libjpeg6b
doesn't even support 565) and is causing us a number of
issues:
(1) Ordered dithering + nearest neighbor sampling is
causing checkerboard visual artifacts in some outputs.
(2) The ordered dither function in libjpeg-turbo actually
behaves differently depending on the alignment of the
memory that it decodes into.  This means that two image
decodes that should be identical may look different just
because they decode into different memory blocks.  This
was causing some diffs on Gold with the scanline_subset
test that were causing me some confusion.
(3) Maybe not the best evidence, but visually I can't tell
a difference with and without dithering (except when
nearest neighbor scaling causes the checkerboard artifact).
(4) Turning off dithering should be a more significant
performance improvement than you might expect.
libjpeg-turbo has SIMD color conversions to 565, but when
dithering is on, it defaults to scalar code.

This CL should make every jpeg decode to 565 on Gold look
slightly different.  Yay!

BUG=skia:

Review URL: https://codereview.chromium.org/1349563007
2015-09-18 12:06:04 -07:00
joshualitt
496d29f6b2 add new gm to test overlapping lcd text
BUG=skia:

Review URL: https://codereview.chromium.org/1358563002
2015-09-18 12:03:13 -07:00
joshualitt
33e91f1673 Make Ben happy
TBR=
BUG=skia:

Review URL: https://codereview.chromium.org/1351193004
2015-09-18 11:28:59 -07:00
msarett
6c50a8f4ab Use rounding when converting desiredScale to a sampleSize
Right now we have a bug in Gold where some images are labeled
_0.167 and others are labeled _0.166.  They are all 1/6
scales and should be labeled the same way and compared.

The fix involves changing 0.166 to 0.167 in the list of
scales that we test on, but SkScaledCodec does not scale
to 0.167 as I expected.

SkScaledCodec converts 0.167 to sampleSize = 5.999 and then
casts to sampleSize = 5.  I would argue that we should do
a true round, so 0.167 represents a sampleSize of 6.

In general, this CL change onGetScaledDimensions so that
we now round desiredScale to the nearest sampleSize.

BUG=skia:

Review URL: https://codereview.chromium.org/1356923002
2015-09-18 11:24:44 -07:00
herb
d32087a613 Add shared mutex benchmark.
BUG=skia:

Review URL: https://codereview.chromium.org/1352863004
2015-09-18 10:50:35 -07:00
tomhudson
f260851362 Revert of add ImageShader, sharing code with its Bitmap cousin (patchset #10 id:180001 of https://codereview.chromium.org/1342113002/ )
Reason for revert:
Failing ImageNewShaderTest on both Android (Tegra3 GPU) and iOS bots.

e.g.

/Users/chrome-bot/buildbot/skiabot-ipad4-000/build/slave/workdir/build/skia/tests/
	ImageNewShaderTest.cpp:24	0 == memcmp(bm1.getPixels(), bm2.getPixels(), bm1.getSize())
	ImageNewShaderTest.cpp:95	0xFFFF0000 == bmt.getColor(0, y)
	ImageNewShaderTest.cpp:98	0xFFDEDEDE == bmt.getColor(x, y)
	ImageNewShaderTest.cpp:98	0xFFDEDEDE == bmt.getColor(x, y)
	ImageNewShaderTest.cpp:98	0xFFDEDEDE == bmt.getColor(x, y)
	ImageNewShaderTest.cpp:98	0xFFDEDEDE == bmt.getColor(x, y)
	ImageNewShaderTest.cpp:95	0xFFFF0000 == bmt.getColor(0, y)
...

Original issue's description:
> add ImageShader, sharing code with its Bitmap cousin
>
> This is done by having abstracted the BitmapShaderContext to take a BitmapProvider, instead of just a bitmap. This allows us to share all of that code between SkBitmap and SkImage, since both are valid providers.
>
> It also means that we can simplify SkImage_Base to not need a virtual for onNewShader, since ALL images can uniformly be turned into a shader now.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/0b93e3149d2cb30860c51f9f3204ae811d9a97ca

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

Review URL: https://codereview.chromium.org/1355863002
2015-09-18 09:36:12 -07:00
herb
bcfd511eb1 Benchmark all mutex implementations.
BUG=skia:

Review URL: https://codereview.chromium.org/1342283004
2015-09-18 09:24:18 -07:00
robertphillips
5ce341fcd7 Add slice tool
Don't know if we want to add this but I found it useful when tracking down blur circle bugs.

Review URL: https://codereview.chromium.org/1350323002
2015-09-18 09:04:43 -07:00
reed
0b93e3149d add ImageShader, sharing code with its Bitmap cousin
This is done by having abstracted the BitmapShaderContext to take a BitmapProvider, instead of just a bitmap. This allows us to share all of that code between SkBitmap and SkImage, since both are valid providers.

It also means that we can simplify SkImage_Base to not need a virtual for onNewShader, since ALL images can uniformly be turned into a shader now.

BUG=skia:

Review URL: https://codereview.chromium.org/1342113002
2015-09-18 08:26:26 -07:00
fmalita
3b0d532df7 Purge cached resources on SkImage destruction.
BUG=532981
R=reed@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/1352883004
2015-09-18 08:07:31 -07:00
joshualitt
3566d44d85 Move StrokeRectBatches into .cpp files
BUG=skia:

Review URL: https://codereview.chromium.org/1353683003
2015-09-18 07:12:56 -07:00
herb
966e3d30ba Add debug mode to shared mutex.
Review URL: https://codereview.chromium.org/1307863009
2015-09-18 07:00:48 -07:00
mtklein
b1c56ec01e unplumb sknx_no_simd
BUG=skia:

Review URL: https://codereview.chromium.org/1355833002
2015-09-18 06:50:38 -07:00
joshualitt
fb33ae15ce Not correctly initializing VisualBench commandline arguments
TBR=mtklein@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1340163004
2015-09-18 06:47:39 -07:00
borenet
9063e427d2 Buildbot spec and gyp defs for SK_USE_DISCARDABLE_SCALEDIMAGECACHE bot
BUG=skia:4354

Review URL: https://codereview.chromium.org/1350283003
2015-09-18 06:37:14 -07:00
mtklein
d0fff5b6d8 Test-...-Release-SK_FOO --> -DSK_FOO
When a bot ends with extra_config SK_LIKE_THIS,
we'll define SK_LIKE_THIS when compiling.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SK_USE_DISCARDABLE_SCALEDIMAGECACHE-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

BUG=skia:4354

Review URL: https://codereview.chromium.org/1346833004
2015-09-18 06:15:55 -07:00
wangxianzhu
ef6c50a80f Merge sub-device annotations in SkPDFDevice::drawDevice()
Previously annotations added between saveLayer/restore were lost.

Merge annotations in SkPDFDevice::drawDevice(). Also modified code to
apply correct transformation and clipping on annotations added between
saveLayer/restore:
- Apply the initial transform only when adding the annotations into the
  doc, otherwise we need to unapply sub-device's initial transform
  before merging the annotations into parent-device.
- Apply only device-local clipping. fClipStack is in global coordinates,
  which is not suitable to clip rects in sub-devices.

BUG=skia:4080
BUG=503515

Review URL: https://codereview.chromium.org/1257533004
2015-09-17 20:38:02 -07:00