Commit Graph

1913 Commits

Author SHA1 Message Date
egdaniel
5f78d2251a Remove gpu shader optimatization for solid white or trans black colors
Running test on the added bench which draws a grid of all white paths, all blue paths, or alternating checkered white/blue paths.

With optimization in (ms):
         White       Blue        Checkered
Linux    ~80         ~80         ~160
N7       ~800        ~1100       ~1500
Moto-e   ~830        ~1100       ~2500

Without optimization in (ms):
         White       Blue        Checkered
Linux    ~80         ~80         ~80
N7       ~1100       ~1100       ~1100
Moto-e   ~1100       ~1100       ~1500

BUG=skia:
R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/375823005
2014-07-11 08:57:40 -07:00
scroggo
a3fce46f7c Remove public_headers.gypi, unneeded by Skia.
This file not needed by Skia, and is almost always out of date.
We recommend generating this inside Android WebView, where it is
used. Generating it is relatively straightforward; here is one way:
https://codereview.chromium.org/198063002/diff/110001/platform_tools/android/gyp_gen/gen_public_headers.py

BUG=skia:2350
R=robertphillips@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/381633003
2014-07-11 08:47:16 -07:00
mtklein
4d1605a8d6 Enable tools/CrashHandler again.
- Defaults to on the bots, triggered off CHROME_HEADLESS=1 in the environment.
  - Defaults off otherwise.
  - Can be enabled by setting CHROME_HEADLESS=1 (weird) or GYP_DEFINES=skia_crash_handler=1.

BUG=skia:
R=borenet@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/383813002
2014-07-10 14:16:04 -07:00
Mike Klein
15840a2e84 Delete third_party/harfbuzz
BUG=skia:
R=bungeman@google.com, reed@google.com

Review URL: https://codereview.chromium.org/384503008
2014-07-10 11:32:44 -04:00
robertphillips
c26d991bf2 Split SkPictureReplacementPlayback out of SkPicturePlayback
R=mtklein@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/383733002
2014-07-10 07:21:27 -07:00
Derek Sollenberger
c7d29c86b2 update our build system to support the experimental L-Release NDK
This includes adding 64-bit support for arm, x86, and mips.

R=borenet@google.com

Review URL: https://codereview.chromium.org/377993002
2014-07-10 08:10:20 -04:00
mtklein
e4636aa173 Merge Replay and Quilt tasks, adding in all BBH implementations.
Replay isn't that helpful of a test any more now that we have the more
stringent Quilt tests.  Quilt was missing bounding box hierarchies, though,
while Replay was sort of testing RTree (pointlessly, as it was drawing without
any clip).  Now Quilt does everything, testing RTree, QuadTree, and TileGrid.

Quilt mode now falls back to drawing all at once (i.e. Replay) for GMs that
don't tile perfectly.  Still a TODO to make this check more flexible than exact
pixel matches.

Two GMs fail when using a BBH:
  - imageresizetiled
  - resizeimagefilter
We think we're not adjusting the bounds of save layers by their paint.
This is probably a bug, but one to be fixed separately from adding new tests.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/377373003
2014-07-09 13:10:58 -07:00
scroggo
ecce60bad6 Build Android with SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG.
This flag will be used on Android when built for the framework,
as well as when built for the WebView. Setting this flag for
Android means our tests can fully test CanvasStateTest.

Fix CanvasStateTest. It has bit-rotted since disabling
SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG.

Splitting off from https://codereview.chromium.org/372003002/ ,
as it seems self-contained.

BUG=b/15693384
R=djsollen@google.com, reed@google.com, mtklein@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/375943003
2014-07-09 07:26:40 -07:00
Mike Klein
874a62acef Revert "Remove ability for Release code to call getRefCnt() or getWeakRefCnt()."
This reverts commit 4ae94ffce5.

BUG=skia:

Review URL: https://codereview.chromium.org/382523002
2014-07-09 09:04:07 -04:00
mtklein
0b544ae222 Add SkRacy
SkRacy<T> is a zero-overhead wrapper for a T, except it also
silences race warnings when TSAN is running.

Here we apply in several classes.  In SkMatrix and SkPathRef,
we use it to opportunistically cache some idempotent work.

In SkPixelRef, we wrap the genIDs.  We think the worst that
can happen here is we'll increment the global next-genID a
few times instead of once when we go to get another ID.

BUG=skia:

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

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot,Canary-Chrome-Win7-Ninja-x86-SharedLib_ToT-Trybot,Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/371363004
2014-07-08 19:37:47 -07:00
tfarina
0a65e38560 Cleanup: Rename UnitTestTest.cpp to RTConfRegistryTest.cpp
BUG=None
TEST=make tests
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/374443002
2014-07-08 10:33:28 -07:00
robertphillips
1ad00e4b24 Split SkPictureRangePlayback out of SkPicturePlayback
This CL starts cleaning up SkPicturePlayback. Future CLs will:

split out the SkPictureReplacementPlayback
remove the preDraw/postDraw entry points & fix up SkPictureTimedPlayback

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/374833006
2014-07-08 08:28:08 -07:00
mtklein
4ae94ffce5 Remove ability for Release code to call getRefCnt() or getWeakRefCnt().
These getRefCnt() methods are not thread safe, so Skia code should not
be calling them.  unique() is fine.

SkDEBUG code (SkASSERTs) can still call getRefCnt() / getWeakRefCnt().

This adds tools/RefCntIs.{h,cpp}, which lets tests make their assertions in
both debug and release modes.

BUG=skia:2726
R=senorblanco@chromium.org, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/378643003
2014-07-08 06:48:17 -07:00
djordje.pesut
a26bbb95a6 MIPS: added optimizations for functions from SkBitmapProcState
gain is ~30%

following functions are optimized:
  SI8_D16_nofilter_DX
  SI8_opaque_D32_nofilter_DX

R=djsollen@google.com, teodora.petrovic@gmail.com

Author: djordje.pesut@imgtec.com

Review URL: https://codereview.chromium.org/336533003
2014-07-08 02:24:16 -07:00
reed
beaf62da36 remove unneeded flag for android
BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/372133003
2014-07-07 15:54:20 -07:00
sugoi
24dcac2140 YUV to RGB converter
This is a first piece of the GPU YUV decoder, which is the actual effect that performs the conversion. For now, it simply applies the conversion matrix, since it is all I need. I may add modes if different matrices need to be applied or if I add color profile support here.

I'll try to keep these cls short and easy to review, but there should be a few of them coming once this one is in.

BUG=skia:
R=senorblanco@chromium.org, senorblanco@google.com, reed@google.com, bsalomon@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/378503006
2014-07-07 15:09:49 -07:00
reed
58f1e925fd remove unneeded flags for android
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/369683004
2014-07-07 13:48:59 -07:00
robertphillips
ce4dd3de38 Split SkPicturePlayback out of SkPictureData
This splits the playback functionality out of SkPictureData. The old SkPictureData::draw method is pulled out along
with its supporting functions as verbatim as possible. Some follow on CLs will be required to:

   re-enable profiling in the debugger (and remove the vestiges of SkTimedPicture)
   re-enable display of command offsets in the picture (this should probably wait until we've switched to SkRecord though)
   Clean up CachedOperationList (maybe fuse with SkPicture::OperationList)
   Split SkPicturePlayback into a base class and two derived classes
   Implement parallel version of GatherGPUInfo for SkRecord

Landing this is blocked on removing Android's use of the abortPlayback entry point.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/377623002
2014-07-07 13:46:35 -07:00
mtklein
aca3d84940 Remove SK_DISABLE_PIXELREF_LOCKCOUNT_BALANCE_CHECK.
Skia no longer looks at this define.  It's as if it's always set now.

BUG=skia:
R=scroggo@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/368953005
2014-07-07 12:33:27 -07:00
qiankun.miao
d312a04ffa Enable 32/64-bit gyp switch on Android
Select 32/64-bit Skia build according skia_arch_width on Android.

BUG=skia:
R=djsollen@google.com, mtklein@google.com

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/369813003
2014-07-07 09:47:24 -07:00
reed
d8a5e8d6d5 remove unneeded flags for android
NOTRY=True
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/377443008
2014-07-07 08:38:13 -07:00
henrik.smiding
5f7f9d04dc Add SSE4 version of BlurImage optimizations.
Adds an SSE4.1 version of the existing BlurImage optimizations.
Performance of blur_image_filter_* benchmarks show a 10-50%
improvement on Linux/Ubuntu Core i7.

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

Committed: https://skia.googlesource.com/skia/+/2830632ce93c97ed7647b13348365ea92e4ea665

R=mtklein@google.com, reed@chromium.org

Author: henrik.smiding@intel.com

Review URL: https://codereview.chromium.org/366593004
2014-07-07 08:05:40 -07:00
reed
82cb86f613 Revert of Add SSE4 version of BlurImage optimizations. (https://codereview.chromium.org/366593004/)
Reason for revert:
breaks linker on chrome

[04:36:09.966000] [503/5965] LIB obj\chrome\installer_util.lib
[04:36:10.466000] FAILED: C:\Users\chrome-bot\buildbot\third_party\depot_tools\python276_bin\python.exe gyp-win-tool link-with-manifests environment.x86 True skia.dll "C:\Users\chrome-bot\buildbot\third_party\depot_tools\python276_bin\python.exe gyp-win-tool link-wrapper environment.x86 False link.exe /nologo /IMPLIB:skia.dll.lib /DLL /OUT:skia.dll @skia.dll.rsp" 2 mt.exe rc.exe "obj\skia\skia.skia.dll.intermediate.manifest" obj\skia\skia.skia.dll.generated.manifest
[04:36:10.466000] skia.opts_check_x86.obj : error LNK2019: unresolved external symbol "bool __cdecl SkBoxBlurGetPlatformProcs_SSE4(void (__cdecl**)(unsigned int const *,int,unsigned int *,int,int,int,int,int),void (__cdecl**)(unsigned int const *,int,unsigned int *,int,int,int,int,int),void (__cdecl**)(unsigned int const *,int,unsigned int *,int,int,int,int,int),void (__cdecl**)(unsigned int const *,int,unsigned int *,int,int,int,int,int))" (?SkBoxBlurGetPlatformProcs_SSE4@@YA_NPAP6AXPBIHPAIHHHHH@Z222@Z) referenced in function "bool __cdecl SkBoxBlurGetPlatformProcs(void (__cdecl**)(unsigned int const *,int,unsigned int *,int,int,int,int,int),void (__cdecl**)(unsigned int const *,int,unsigned int *,int,int,int,int,int),void (__cdecl**)(unsigned int const *,int,unsigned int *,int,int,int,int,int),void (__cdecl**)(unsigned int const *,int,unsigned int *,int,int,int,int,int))" (?SkBoxBlurGetPlatformProcs@@YA_NPAP6AXPBIHPAIHHHHH@Z222@Z)
[04:36:10.466000]
[04:36:10.466000] skia.dll : fatal error LNK1120: 1 unresolved externals

Original issue's description:
> Add SSE4 version of BlurImage optimizations.
>
> Adds an SSE4.1 version of the existing BlurImage optimizations.
> Performance of blur_image_filter_* benchmarks show a 10-50%
> improvement on Linux/Ubuntu Core i7.
>
> Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>
>
> Committed: https://skia.googlesource.com/skia/+/2830632ce93c97ed7647b13348365ea92e4ea665

R=mtklein@google.com, henrik.smiding@intel.com
TBR=henrik.smiding@intel.com, mtklein@google.com
NOTREECHECKS=true
NOTRY=true

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/375503003
2014-07-06 18:51:29 -07:00
tomhudson
d930511ee7 Linear-time implementation of willPlaybackBitmaps(), computed & cached
on construction in SkPicture. Unit test.

Template trickery thanks to mtklein@.

BUG=skia:2702
R=mtklein@google.com, reed@android.com, reed@google.com, tomhudson@google.com, mtklein, reed

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/366443002
2014-07-05 13:37:53 -07:00
henrik.smiding
2830632ce9 Add SSE4 version of BlurImage optimizations.
Adds an SSE4.1 version of the existing BlurImage optimizations.
Performance of blur_image_filter_* benchmarks show a 10-50%
improvement on Linux/Ubuntu Core i7.

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

R=mtklein@google.com

Author: henrik.smiding@intel.com

Review URL: https://codereview.chromium.org/366593004
2014-07-04 04:23:17 -07:00
reed
e1085e0381 move SkChecksum and SkEmptyShader to private
TBR=reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/366133002
2014-07-03 07:26:01 -07:00
robertphillips
db539905bb Rename SkPicturePlayback to SkPictureData
This is in preparation for splitting the playback portion of the new SkPictureData class into a new SkPicturePlayback class.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/362773002
2014-07-01 08:47:04 -07:00
reed
12ffdb31c9 remove flags that are now in chrome's SkUserConfig.h
R=reed@google.com
NOTRY=True

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/367483003
2014-07-01 02:51:26 -07:00
tfarina
10722184fd Cleanup: Delete SkJSON header.
It seems it does not have any implementation so it is unlikely it will
have any user, either internal or external.

BUG=None
TEST=make all
R=bsalomon@google.com, mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/353183006
2014-06-30 17:11:33 -07:00
mtklein
170e00d640 Have Clang builders build in C++11 mode.
This ought to get us a little ahead on the transition.  Only minor fixes
are needed.  The one in MemoryBench is the most interesting: what used
to unambiguously be interpreted as concatenating two string literals is
now also ambiguously a user-defined literal; adding a space
disambiguates.

BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/361723002
2014-06-30 12:33:11 -07:00
reed
52d9ac6c92 stop calling SkCanvas::getDevice
BUG=skia:
R=bsalomon@google.com, robertphillips@google.com, junov@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/355193006
2014-06-30 09:05:34 -07:00
robertphillips
952841bf41 Begin atlasing
This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):

1) the atlased layers cannot be purged nor aged out
2) the texture backing the atlas is not pulled from (or returned to) the resource cache

#1 is on hold until we have a recycling rectanizer

A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.

Committed: https://skia.googlesource.com/skia/+/55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354533004
2014-06-30 08:26:50 -07:00
Florin Malita
5f6102d079 SaveFlags be-gone
Remove the deprecated save(SaveFlags), willSave(SaveFlags) and all
traces of kMatrix_SaveFlags/kClip_SaveFlag.

BUG=skia:2297
R=mtklein@google.com, reed@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/340403003
2014-06-30 10:13:28 -04:00
robertphillips
e462f2bed3 Revert of Begin atlasing (https://codereview.chromium.org/354533004/)
Reason for revert:
Sigh

Original issue's description:
> Begin atlasing
>
> This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):
>
> 1) the atlased layers cannot be purged nor aged out
> 2) the texture backing the atlas is not pulled from (or returned to) the resource cache
>
> #1 is on hold until we have a recycling rectanizer
>
> A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.
>
> Committed: https://skia.googlesource.com/skia/+/55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b

R=bsalomon@google.com
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/359953002
2014-06-29 17:16:27 -07:00
robertphillips
55e61f0ef4 Begin atlasing
This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):

1) the atlased layers cannot be purged nor aged out
2) the texture backing the atlas is not pulled from (or returned to) the resource cache

#1 is on hold until we have a recycling rectanizer

A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354533004
2014-06-29 15:08:31 -07:00
senorblanco
1e2772ff92 Remove now-nonexistent SkCountdown.h from public_headers.
Seems to be breaking Chrome's GN build.

R=rmistry@google.com
TBR=rmistry
BUG=skia:

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/359183002
2014-06-28 17:42:55 -07:00
mtklein
d3e474e20c Deprecate SkPicture::clone().
Chrome will need -DSK_SUPPORT_LEGACY_PICTURE_CLONE.

This removes the modes from our tools that use clone().  No
bots run these.  DM used clone() in a way that we can just
share the picture now.

I plan to bring back the ability to test multithreaded
picture rendering soon.

BUG=skia:2378
R=robertphillips@google.com, mtklein@google.com, bsalomon@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/338633011
2014-06-27 12:34:44 -07:00
halcanary
67ec1f8eec Switch SkPDFStream's internal storage from SkStream to SkData
Motivation: This makes SkPDFStream thread-safe for two threads
serializing it at once, since a SkStream has an internal position.

Updated SkPDFFont, SkPDFGraphicState, and SkPDFPage's use of
SkPDFStream to use the SkData constructor rather than the SkStream
constructor (saving a memcpy).

BUG=skia:2683

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

R=mtklein@google.com, djsollen@google.com, rmistry@google.com, robertphillips@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/340783013
2014-06-27 11:36:20 -07:00
henrik.smiding
3bb195ef0d Add SSE4 optimization of S32A_Opaque_Blitrow
Adds optimization of Skia S32A_Opaque_Blitrow blitter using SSE4.2 SIMD
instruction set. Special case for when alpha is zero or opaque.

Performance increase of 10%-400% compared to the existing SSE2
optimization (measured on Silvermont architecture).
Noticeable in ~25 different skia bench subtests, especially in
bitmap_8888_*, repeatTile_*, and morph_*.

bitmap_8888_A - 100% faster
bitmap_8888_A_source_transparent - 250% faster
bitmap_8888_A_source_opaque - 25% faster
bitmap_8888_A_scale_bicubic - 75% faster

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

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

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

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com

Author: henrik.smiding@intel.com

Review URL: https://codereview.chromium.org/289473009
2014-06-27 08:03:17 -07:00
reed
98e34ba892 remove SK_SUPPORT_LEGACY_DEVICE_VIRTUAL_ISOPAQUE for chrome
BUG=skia:
R=robertphillips@google.com, fmalita@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/355083006
2014-06-26 18:47:09 -07:00
rmistry
e1c55869f3 Revert of Switch SkPDFStream's internal storage from SkStream to SkData (https://codereview.chromium.org/340783013/)
Reason for revert:
Causes canary failures

Original issue's description:
> Switch SkPDFStream's internal storage from SkStream to SkData
>
> Motivation: This makes SkPDFStream thread-safe for two threads
> serializing it at once, since a SkStream has an internal position.
>
> Updated SkPDFFont, SkPDFGraphicState, and SkPDFPage's use of
> SkPDFStream to use the SkData constructor rather than the SkStream
> constructor (saving a memcpy).
>
> BUG=skia:2683
>
> Committed: https://skia.googlesource.com/skia/+/c1dfa14b645ae274780f026dd86c9b633fbdad06

R=mtklein@google.com, djsollen@google.com, halcanary@google.com
TBR=djsollen@google.com, halcanary@google.com, mtklein@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2683

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/354043005
2014-06-26 14:31:06 -07:00
halcanary
c1dfa14b64 Switch SkPDFStream's internal storage from SkStream to SkData
Motivation: This makes SkPDFStream thread-safe for two threads
serializing it at once, since a SkStream has an internal position.

Updated SkPDFFont, SkPDFGraphicState, and SkPDFPage's use of
SkPDFStream to use the SkData constructor rather than the SkStream
constructor (saving a memcpy).

BUG=skia:2683
R=mtklein@google.com, djsollen@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/340783013
2014-06-26 14:00:31 -07:00
tfarina
11a005ee01 Promote SkInterpolator unit test to our tests driver.
BUG=None
TEST=make tests && out/Debug/tests -m Interpolator
R=mtklein@google.com, bsalomon@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/351713005
2014-06-26 13:07:05 -07:00
bsalomon
da07a08367 Make LTCG optional on windows builds.
R=mtklein@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/335123010
2014-06-26 12:56:28 -07:00
senorblanco
7bf1068473 Remove SkBicubicImageFilter, and all related tests.
Now that we have SkResizeImageFilter, and the bicubic
resizing is part of skia proper, there's no need for a
specialized image filter.

BUG=skia:
R=bsalomon@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/357793002
2014-06-25 14:39:06 -07:00
mtklein
f372321de3 Add nanobench, a fresh look at our microbenchmark harness.
out/Release/nanobench runs 4-5x faster on my Z620 and ~2x faster on my N5 than out/Release/bench with the same configs.

(Debug isn't really comparable.  I haven't added the Debug -> single loop check.)

BUG=skia:
R=djsollen@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/347443002
2014-06-25 14:08:00 -07:00
tfarina
12345aee12 Rename TestSize.cpp to SizeTest.cpp
It is the only file where Test is the prefix rather than the sufix.
 This patch fixes that so it matches with the rest of the files
 under tests/ directory.

And separate SkISize test into its own DEF_TEST().

BUG=None
TEST=make tests && out/Debug/tests
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/337783007
2014-06-25 10:39:02 -07:00
mtklein
2b8a3b8f26 Focus disabled optimizations on just BGRAConvolve2D, and only 32-bit.
Last CL accidentally disabled autovectorization on 64-bit builds too.
This fixes that.

BUG=skia:2575
R=rmistry@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/353823005
2014-06-25 09:14:28 -07:00
mtklein
ec368cf4d6 Temporarily disable autovectorization in core for 32-bit Linux builds.
BUG=skia:2575
R=rmistry@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/354833006
2014-06-25 08:27:09 -07:00
mtklein
32492e8204 delete disabled bench
BUG=skia:
R=tomhudson@google.com, mtklein@google.com, junov@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/354693003
2014-06-24 14:16:50 -07:00
mtklein
7373456679 Support serialization in SkRecord-backed SkPictures.
Update DM to test SkRecord through SkPictureRecorder API.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/345553003
2014-06-24 12:28:34 -07:00
caryclark
a8d2ffb1c2 add pathops tight bounds; conform path ops' gyp to unit tests
Implement path tight bounds using path ops machinery. This is not
as efficient as it could be; for instance, internally, it creates
a path ops structure more suited to intersection. If this shows
up as a performance bottleneck, it could be improved.

Fix path ops gyp files, which have fallen out of sync with other
tests.

R=mtklein@google.com, bsalomon@google.com
TBR=mtklein
BUG=skia:1712

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/348343002
2014-06-24 07:55:12 -07:00
kkinnunen
c6cb56f36c Implement text rendering with NVPR
Use path rendering to render the text from outlines if supported by the
GPU. Implement this in GrStencilAndCoverTextContext by copying chunks of code
from GrBitmapTextContext.

The drawing is implemented with "instanced" path drawing functions.

Moves the creation of the "main" text context from SkGpuDevice to the
GrContext::createTextContext. This is done because the decision of which text
renderer is optimal can be made only with the internal implementation-specific
information of the context.

Remove a windows assertion from SkScalerContext_GDI::getGDIGlyphPath.  The
GetGlyphOutlineW fails in fontmgr_match for the initial space char in the string
" [700] ...". According to MSDN, this is a known problem.  Just return that the
glyph has no path data in these cases.

R=jvanverth@google.com, bsalomon@google.com, mtklein@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/196133014
2014-06-24 00:12:27 -07:00
caryclark
5fb6bd4b7e use platform-independent font for gm
Create a custom typeface and scaler to render simple paths the
same on all platforms.

GM tests are modified to explicitly select the custom typeface.

R=reed@google.com, mtklein@google.com, bungeman@google.com
TBR=reed

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/348323003
2014-06-23 11:25:00 -07:00
bungeman
740c3f17f7 Better rendering detection with DirectWrite.
When requesting embedded bitmaps, all sizes in a gridfit gasp range with a
bitmap in that range should be gridfit to the fullest extent possible.

R=eae@chromium.org, reed@google.com, mtklein@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/341343002
2014-06-23 08:29:23 -07:00
rmistry
c4b84aef1a Revert of Revert of Fix SkPaint::measureText for stroked hairline text (https://codereview.chromium.org/354433002/)
Reason for revert:
Rebaseline CL is ready to be submitted

Original issue's description:
> Revert of Fix SkPaint::measureText for stroked hairline text (https://codereview.chromium.org/335603003/)
>
> Reason for revert:
> Caused many shadertext GM failures
>
> Original issue's description:
> > Fix SkPaint::measureText for stroked hairline text
> >
> > SkPaint::measureText and text drawing used different criteria for
> > determining whether text should be drawn as paths or not.
> >
> > Adds tests glyph_pos_(h/n)_(s/f/b) to test the text rendering and the glyph
> > positioning in the rendering. Mainly added in order to define what is the
> > expected text rendering when hairline stroke is used with various transform
> > options.
> >
> > The testcase also tries to note or highlight the fact that SkPaint::measureText
> > is not expected to produce intuitively matching results when compared to a
> > rendering, if the rendering is done so that the device ends up having a device
> > transform.
> >
> > This fixes the glyph_pos_h_s (hairline, stroked) test-case.
> >
> > Ignore shadertext2_pdf-poppler.png gm on
> > Test-Ubuntu13.10-ShuttleA-NoGPU-x86_64-Debug temporarily, as that fails.
> >
> > Committed: https://skia.googlesource.com/skia/+/196af738027c5e18c3eb792dbcaf90ef27821793
>
> TBR=jvanverth@google.com,reed@google.com,kkinnunen@nvidia.com
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/abc9bb55ddfeb4b1a7acc335a34841fddcd22d27

R=jvanverth@google.com, reed@google.com, kkinnunen@nvidia.com
TBR=jvanverth@google.com, kkinnunen@nvidia.com, reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/349153005
2014-06-23 06:59:15 -07:00
rmistry
abc9bb55dd Revert of Fix SkPaint::measureText for stroked hairline text (https://codereview.chromium.org/335603003/)
Reason for revert:
Caused many shadertext GM failures

Original issue's description:
> Fix SkPaint::measureText for stroked hairline text
>
> SkPaint::measureText and text drawing used different criteria for
> determining whether text should be drawn as paths or not.
>
> Adds tests glyph_pos_(h/n)_(s/f/b) to test the text rendering and the glyph
> positioning in the rendering. Mainly added in order to define what is the
> expected text rendering when hairline stroke is used with various transform
> options.
>
> The testcase also tries to note or highlight the fact that SkPaint::measureText
> is not expected to produce intuitively matching results when compared to a
> rendering, if the rendering is done so that the device ends up having a device
> transform.
>
> This fixes the glyph_pos_h_s (hairline, stroked) test-case.
>
> Ignore shadertext2_pdf-poppler.png gm on
> Test-Ubuntu13.10-ShuttleA-NoGPU-x86_64-Debug temporarily, as that fails.
>
> Committed: https://skia.googlesource.com/skia/+/196af738027c5e18c3eb792dbcaf90ef27821793

R=jvanverth@google.com, reed@google.com, kkinnunen@nvidia.com
TBR=jvanverth@google.com, kkinnunen@nvidia.com, reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: rmistry@google.com

Review URL: https://codereview.chromium.org/354433002
2014-06-23 05:39:26 -07:00
kkinnunen
196af73802 Fix SkPaint::measureText for stroked hairline text
SkPaint::measureText and text drawing used different criteria for
determining whether text should be drawn as paths or not.

Adds tests glyph_pos_(h/n)_(s/f/b) to test the text rendering and the glyph
positioning in the rendering. Mainly added in order to define what is the
expected text rendering when hairline stroke is used with various transform
options.

The testcase also tries to note or highlight the fact that SkPaint::measureText
is not expected to produce intuitively matching results when compared to a
rendering, if the rendering is done so that the device ends up having a device
transform.

This fixes the glyph_pos_h_s (hairline, stroked) test-case.

Ignore shadertext2_pdf-poppler.png gm on
Test-Ubuntu13.10-ShuttleA-NoGPU-x86_64-Debug temporarily, as that fails.

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

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/335603003
2014-06-22 22:18:14 -07:00
tfarina
1c4d5784f9 No need to include ../tools/flags in include_dirs when depending on flags target.
"flags" target does it by direct_dependent_settings which exports the
include_dirs to targets that depend on it.

Along the way fixed the indentation of experimental.gyp and v8.gyp.

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

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/343283002
2014-06-22 16:13:00 -07:00
tfarina
2010891425 Add GYP target for sk_tool_utils.* component.
This declares a static library target in gyp/sk_tool_utils.gyp, so other
targets can depend directly on it instead of including the source file
in their source lists.

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

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/348623006
2014-06-21 10:54:17 -07:00
mtklein
9ac68ee259 Move BenchTimer to tools as Timer
This breaks a bunch of circular dependencies between tools and gm and bench.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/4ed75287aed6371c6e4a41ffcc78c8a49c9810ed

CQ_EXTRA_TRYBOTS=tryserver.skia:Build-Mac10.7-Clang-Arm7-Debug-iOS-Trybot,Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot
R=tfarina@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/344213003
2014-06-20 11:29:21 -07:00
mtklein
9e64b78ff6 Revert of Move BenchTimer to tools as Timer (https://codereview.chromium.org/344213003/)
Reason for revert:
GpuTimer broken

Original issue's description:
> Move BenchTimer to tools as Timer
>
> This breaks a bunch of circular dependencies between tools and gm and bench.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4ed75287aed6371c6e4a41ffcc78c8a49c9810ed

R=tfarina@chromium.org, mtklein@chromium.org
TBR=mtklein@chromium.org, tfarina@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/346753003
2014-06-20 10:43:07 -07:00
mtklein
4ed75287ae Move BenchTimer to tools as Timer
This breaks a bunch of circular dependencies between tools and gm and bench.

BUG=skia:
R=tfarina@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/344213003
2014-06-20 10:31:49 -07:00
krajcevski
f461a8fdf6 Simple GPU based dithering:
If dithering is turned on, apply an effect that filters the pixel through
the following pipeline:

for each channel c:
  1. Compute quantized colors [low, high] that c is between
  2. Pick high by flipping a coin weighted by (c - low)

R=bsalomon@google.com, egdaniel@google.com, robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/321253002
2014-06-19 14:14:06 -07:00
bsalomon
8b2fac4b25 Cache the GrEffect used for text rendering in GrBitmapTextContext.
R=jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/338093005
2014-06-19 14:13:45 -07:00
tfarina
f168b86d7f Remove Sk prefix from some bench classes.
This idea came while commenting on
https://codereview.chromium.org/343583005/

Since SkBenchmark, SkBenchLogger and SkGMBench are not part of the Skia library,
they should not have the Sk prefix.

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

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/347823004
2014-06-19 12:32:29 -07:00
vandebo
0f9bad01b0 [PDF] Fix font embedding restrictions.
Stop using restricted font outlines and honor don't subset restriction.

Resubmit of r12600.

R=halcanary@google.com, bungeman@google.com, reed@google.com

Author: vandebo@chromium.org

Review URL: https://codereview.chromium.org/334443002
2014-06-19 11:05:39 -07:00
mtklein
3f73e8c8d5 CrashHandler for Windows.
Plus, print out assertion failures on Windows,
and some little tweaks to CrashHandler on other platforms for consistency.

BUG=skia:
R=bungeman@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/340523007
2014-06-19 07:41:59 -07:00
tfarina
bcbc1788b4 Refactor how we handle resources path in Tests.
This idea emerged while doing https://codereview.chromium.org/321723002/
(commit 880914c35c).

BUG=None
TEST=make tests && out/Debug/tests
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/346453002
2014-06-18 14:32:49 -07:00
reed
6518eaaefa remove legacy moz flags
NOTRY=True
R=george@mozilla.com, scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/342803002
2014-06-18 14:05:22 -07:00
mtklein
30e6e2af14 Add basic stacktrace handler using libunwind.
This means we will all have to apt-get install libunwind8-dev on Linux.  Mac comes with everything we need already.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/343583005
2014-06-18 11:44:18 -07:00
scroggo
f01a6c3663 In Android framework, make tools depend on jsoncpp
Always build the tools with JSON, but either build our own
or use the system's.

Rename skia_build_json_writer to skia_use_system_jsoncpp,
since we now always build with JSON.

Remove SK_BUILD_JSON_WRITER, which was only there so
we could build without JSON it in the framework.

BUG=skia:2448
R=djsollen@google.com, reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/303913002
2014-06-18 10:31:40 -07:00
mtklein
db6346a5b1 Revert of Add SSE4 optimization of S32A_Opaque_Blitrow (https://codereview.chromium.org/289473009/)
NOTREECHECKS=true
NOTRY=true

Reason for revert:
Valgrind bot's seeing this code use uninitialized memory, and it's somehow blocking our roll into Chrome too:

> ld: warning: could not create compact unwind for
S32A_Opaque_BlitRow32_SSE4_asm:
> stack subq instruction is too different from dwarf stack size
> [10339/10982 | 3247.792] PACKAGE FRAMEWORK "Chromium Framework.framework",
> POSTBUILDS
> FAILED: ./gyp-mac-tool package-framework "Chromium Framework.framework" A &&
> (export
> BUILT_PRODUCTS_DIR=/Volumes/data/b/build/slave/mac_gpu/build/src/out/Release;
> export CONFIGURATION=Release; export CONTENTS_FOLDER_PATH="Chromium
> Framework.framework/Versions/A"; export
> DYLIB_INSTALL_NAME_BASE=@executable_path/../Versions/37.0.2056.0; export
> EXECUTABLE_NAME="Chromium Framework"; export EXECUTABLE_PATH="Chromium
> Framework.framework/Versions/A/Chromium Framework"; export
> FULL_PRODUCT_NAME="Chromium Framework.framework"; export
> INFOPLIST_PATH="Chromium Framework.framework/Versions/A/Resources/Info.plist";
> export
LD_DYLIB_INSTALL_NAME="@executable_path/../Versions/37.0.2056.0/Chromium
> Framework.framework/Chromium Framework"; export MACH_O_TYPE=mh_dylib; export
> PRODUCT_NAME="Chromium Framework"; export
> PRODUCT_TYPE=com.apple.product-type.framework; export
>
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk;
> export
>
SRCROOT=/Volumes/data/b/build/slave/mac_gpu/build/src/out/Release/../../chrome;
> export SOURCE_ROOT="${SRCROOT}"; export
> TARGET_BUILD_DIR=/Volumes/data/b/build/slave/mac_gpu/build/src/out/Release;
> export TEMP_DIR="${TMPDIR}"; export
UNLOCALIZED_RESOURCES_FOLDER_PATH="Chromium
> Framework.framework/Versions/A/Resources"; export WRAPPER_NAME="Chromium
> Framework.framework"; (cd ../../chrome && ../build/mac/tweak_info_plist.py
> "--breakpad=1" "--breakpad_uploads=0" "--keystone=0" "--scm=1"
> "--branding=Chromium" && ln -fns Versions/Current/Libraries
> "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Libraries" &&
> tools/build/mac/verify_order _ChromeMain
> "${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}"); G=$?; ((exit $G) || rm -rf
> 'Chromium Framework.framework') && exit $G) && touch "Chromium
> Framework.framework"
> tools/build/mac/verify_order: unordered symbols in
> /Volumes/data/b/build/slave/mac_gpu/build/src/out/Release/Chromium
> Framework.framework/Versions/A/Chromium Framework:
> S32A_Opaque_BlitRow32_SSE4_asm
> _S32A_Opaque_BlitRow32_SSE4_asm
> ninja: build stopped: subcommand failed.

Original issue's description:
> Add SSE4 optimization of S32A_Opaque_Blitrow
>
> Adds optimization of Skia S32A_Opaque_Blitrow blitter using SSE4.2 SIMD
> instruction set. Special case for when alpha is zero or opaque.
>
> Performance increase of 10%-400% compared to the existing SSE2
> optimization (measured on Silvermont architecture).
> Noticeable in ~25 different skia bench subtests, especially in
> bitmap_8888_*, repeatTile_*, and morph_*.
>
> bitmap_8888_A - 100% faster
> bitmap_8888_A_source_transparent - 250% faster
> bitmap_8888_A_source_opaque - 25% faster
> bitmap_8888_A_scale_bicubic - 75% faster
>
> Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>
>
> Committed: https://skia.googlesource.com/skia/+/e2527b147679b0c43019fae7d59cc3777d2d097e
>
> Committed: https://skia.googlesource.com/skia/+/b5c281e1e06af3be804309877de1dac6145686b9

R=reed@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com, henrik.smiding@intel.com, mtklein@chromium.org

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/336413007
2014-06-17 17:37:05 -07:00
Brian Salomon
08fe01362d Try to roll angle again.
BUG=skia:2272

NOTRY=True
NOTREECHECKS=True
R=reed@google.com

Review URL: https://codereview.chromium.org/306483014
2014-06-17 17:28:17 -04:00
mtklein
887f3979f0 Add EXPERIMENTAL_beginRecording() for SkRecord-based recording.
The interesting stuff is in SkPictureRecorder.{h,cpp}.  The rest is mostly moving SkRecord from its own directories into core to avoid circular dependencies in GYP.

After plumbing SkRecord all the way through in Picture, I'll delete its old entry point include/record/SkRecording.h.  For now it and record.gypi need to stay where they are to keep Chrome building.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/331573004
2014-06-17 12:08:16 -07:00
mtklein
24ad096540 Silence warnings about using offsetof on near-POD structs.
This is coming up with SkMatrix, which is POD according to GCC >= 4.6
but not before (specifically, not at GCC 4.4).

BUG=skia:
R=reed@google.com, mtklein@google.com, bungeman@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/339193002
2014-06-17 11:47:40 -07:00
henrik.smiding
b5c281e1e0 Add SSE4 optimization of S32A_Opaque_Blitrow
Adds optimization of Skia S32A_Opaque_Blitrow blitter using SSE4.2 SIMD
instruction set. Special case for when alpha is zero or opaque.

Performance increase of 10%-400% compared to the existing SSE2
optimization (measured on Silvermont architecture).
Noticeable in ~25 different skia bench subtests, especially in
bitmap_8888_*, repeatTile_*, and morph_*.

bitmap_8888_A - 100% faster
bitmap_8888_A_source_transparent - 250% faster
bitmap_8888_A_source_opaque - 25% faster
bitmap_8888_A_scale_bicubic - 75% faster

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

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

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com

Author: henrik.smiding@intel.com

Review URL: https://codereview.chromium.org/289473009
2014-06-17 11:32:47 -07:00
reed
859b92448b move some headers out of public
patch from issue 338263003

BUG=skia:
R=mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/339183002
2014-06-17 09:04:45 -07:00
reed
c3b3266b7d hide SkBitmap::Config entirely (behind a flag)
patch from issue 339463002

TBR=

I think the NoGPU failure is unrelated, so ignoring
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/340533002
2014-06-17 08:38:31 -07:00
mtklein
a272d6d065 Move SkStringUtils.h to src/core.
Doesn't need to be in include/.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/335413004
2014-06-17 07:42:35 -07:00
mtklein
d6043b20b6 Add nanomsg to third_party, with some demos.
This isn't something I want to make part of Skia, but just a substrate to build cross-process demos on top of.  If I client were to use Skia cross-process, they'd drop their own IPC system in here.

If you're not familiar, nanomsg (nanomsg.org) is the next-gen zeromq (zeromq.org), from the same author, righting all his design wrongs from zeromq.

It's a lot like the lower half of mojo, dealing with making the connections and getting messages reliably from A to B.  Think, better sockets, and it spans nicely across in-process (with zero-copy), inter-process, and TCP.

BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/294873004
2014-06-16 20:21:06 -07:00
reed
0349864b75 remove SK_SUPPORT_LEGACY_BLURMASKFILTER_STYLE -- not needed
BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/332163005
2014-06-16 15:18:25 -07:00
tfarina
055cf91416 Delete unused path_utils.* component.
filter tool includes it but isn't using, and nobody else seems to
be using it either. So just remove it now.

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

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/324273002
2014-06-14 04:50:04 -07:00
reed
f252f64f17 hide virtuals on device for width/height/isopaque
R=bsalomon@google.com
NOTREECHECKS=True

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/334993002
2014-06-14 04:24:57 -07:00
kkinnunen
cb9a2c8934 Extract "text align proc" functions as reusable classes
Extract "text align proc" as reusable classes. These classes need to be used
when writing GrTextContext subclasses.

Moves "text align proc" code that is duplicated in SkDraw and
SkBitmapTextContext to SkDrawProcs.h and SkTextMapState.h. This functionality is
also used in the new GrStencilAndCoverTextContext.

Creates new functor classes SkTextAlignProc and SkTextAlignProcScalar which
represent the previous "text align procs".

Moves TextMapState from SkDraw to SkTextMapStateProc and make it similar functor.

The transform should be comparable in speed, as the compiler can and does avoid
the call and eliminate some of the branches.

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

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/335573002
2014-06-12 23:06:28 -07:00
reed
bfefc7c95f hide Config in SkImageDecoder -- use SkColorType instead
patch from issue 334613003

TBR=scroggo

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/334793002
2014-06-12 17:40:00 -07:00
robertphillips
02830f0448 Remove SkPicture SK_SUPPORT_LEGACY_RECORDING_FLAG flag
Chromium/Blink should no longer need this flag after:

Chromium: Remove use of kUsePathBoundsForClip_RecordingFlag https://codereview.chromium.org/322123002/

Blink: Remove use of kUsePathBoundsForClip_RecordingFlag https://codereview.chromium.org/326953002/

R=mtklein@google.com, scroggo@google.com, reed@google.com, bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/328343002
2014-06-12 12:56:58 -07:00
tfarina
da4ed3289e Cleanup: Delete sk_tools::make_filepath() in favor of SkOSPath::SkPathJoin().
BUG=None
TEST=make tools tests && out/Debug/tests
R=epoger@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/327403002
2014-06-12 08:50:56 -07:00
jvanverth
66c9582d1b Fix a number of issues with iOS build.
Set pointer to root view in window (for SampleApp)
Set up the correct function pointer for GL multisampling
Remove use of SkBitmap::setConfig()
Remove incomplete iOS implementation of SkFILE (use SkOSFile for now)

R=caryclark@google.com, reed@google.com, bsalomon@google.com, tfarina@chromium.org

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/322403007
2014-06-11 13:59:22 -07:00
krajcevski
2b310e46eb Texture compression unit tests along with a couple of bug fixes
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/330453005
2014-06-11 12:26:49 -07:00
egdaniel
d58a0ba9cf Push dash checks into GrContext.
Add class to hold stroke and dash info.

R=bsalomon@google.com, robertphillips@google.com, jvanverth@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/311183002
2014-06-11 10:30:05 -07:00
reed
4585144956 remove SK_SUPPORT_LEGACY_DEVICE_CONFIG code
BUG=skia:
R=djsollen@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/327263002
2014-06-11 07:17:11 -07:00
djordje.pesut
632a4546b0 MIPS: added optimization for functions from SkBlitRow.
gain is ~40%

following function are optimized:
  S32_D565_Blend
  S32A_D565_Opaque_Dither
  S32_D565_Opaque_Dither
  S32_D565_Blend_Dither
  S32A_D565_Opaque
  S32A_D565_Blend
  S32_Blend_BlitRow32

R=djsollen@google.com, teodora.petrovic@gmail.com

Author: djordje.pesut@imgtec.com

Review URL: https://codereview.chromium.org/326913004
2014-06-11 06:56:10 -07:00
egdaniel
a22ea18823 Move Dashing filterPath to a dashing utils file
From inside GrContext, we have a need to create an SkPath an original path and
some dashing info. We do not have access to the original path effect so we need
a way to make the FilterPath function accessible outside of the effect. So I moved
the core filterPath code (and all need helper functions) out of SkDashPathEffect
and created a SkDashPath in utils to store these helper functions.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/576dcdc793a762ec63fbecdbfd5768066b548fe5

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/314623004
2014-06-11 06:51:51 -07:00
krajcevski
5c2fca040e Add an LATC compressor to the A8 masks, and hide it behind an ifdef.
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/326223002
2014-06-10 17:25:28 -07:00
krajcevski
ae614409e4 Add texture compression utility
R=robertphillips@google.com, egdaniel@google.com, halcanary@google.com, scroggo@google.com, reed@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/325733004
2014-06-10 14:52:28 -07:00
reed
6c22573edb hide SkBitmap::setConfig
patch from issue 325733002

TBR=scroggo

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/322963002
2014-06-09 19:52:07 -07:00
bsalomon
7c5c9da436 GM/bench for text draws with various parameters and clip rects.
R=jvanverth@google.com, robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/319053002
2014-06-09 15:11:30 -07:00
cdalton
511923443f Generate path names on the client side
Pre-allocates a range of path names and manages allocations within
that range on the client side. This allows us to generate new path
objects in a feed-forward manner that doesn't require round trips to
the GL server.

BUG=skia:
R=bsalomon@google.com, markkilgard@gmail.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/304403003
2014-06-09 11:16:58 -07:00
robertphillips
e2b78a7131 Fix Chrome build after 9f1c241e (https://codereview.chromium.org/316143003/)
Remove SkPicture::kUsePathBoundsForClip_RecordingFlag (https://codereview.chromium.org/316143003/) removed an SkPicture flag on which Chromium still relies.

R=scroggo@google.com
TBR=scroggo@google.com
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/325723002
2014-06-09 07:05:05 -07:00