Commit Graph

2613 Commits

Author SHA1 Message Date
mtklein
33bce0a68b Clean up old custom tools now subsumed by nanobench.
BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/551263003
2014-09-10 12:11:23 -07:00
reed
cc0e3110bd make set3DMask virtual, so we can safely notify the shadercontext
also boost preallocated storage to account for this combo of bitmapshader + emboss + colorfilter

BUG=skia:
R=djsollen@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/563563002
2014-09-10 10:20:24 -07:00
bungeman
f548444684 Detect presence of dwrite_1.h.
This introduces the SK_HAS_DWRITE_1_H define which may be set at
build time or will be true when WINVER_MAXVER >= 0x0602 .

The dwrite_1.h header is available starting in Windows SDK 8.0.
This change supports users who must still use Windows SDK 7.0.
It also allows for easier local testing of the older interfaces
on newer versions of Windows.

See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1053652

R=george@mozilla.com, mtklein@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/552383002
2014-09-10 07:49:05 -07:00
george
b3eba478d5 Outset the stroke width when computing the bounds for drawing a stroked rect, or 1 if it's a hairline
Adds a testcase for stroke rect bug

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

Author: george@mozilla.com

Review URL: https://codereview.chromium.org/552743004
2014-09-09 11:33:57 -07:00
mtklein
c54056c839 Back to hashing source content, not .png.
BUG=skia:
R=jcgregorio@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/560453002
2014-09-09 08:42:04 -07:00
mtklein
197ceda929 Remove expectations / -r from DM entirely.
It's getting tricky to coordinate changes to output for bots with -r,
and -r is not widely used.  The suggested alternative is to run skdiff.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/553583004
2014-09-09 07:36:57 -07:00
mtklein
e2d4eb7072 Hash .pngs instead of SkBitmaps.
This has the nice property of being able to double-check hashes after the fact.

mtklein@mtklein ~/skia (hash-png)> md5sum bad/8888/3x3bitmaprect.png
deede70ab2f34067d461fb4a93332d4c  bad/8888/3x3bitmaprect.png

mtklein@mtklein ~/skia (hash-png)> grep 3x3bitmaprect_8888 bad/dm.json
   "3x3bitmaprect_8888" : "deede70ab2f34067d461fb4a93332d4c",

I have checked that no two premultiplied colors map to the same unpremultiplied
color (math nerds: unpremultiplication is injective), so a change in
premultiplied SkBitmap will always imply a change in the encoded
unpremultiplied .png.  This means, it's safe to hash .pngs; we won't miss
subtle changes.

BUG=skia:
R=jcgregorio@google.com, stephana@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/549203003
2014-09-08 12:42:23 -07:00
bsalomon
a1ae66d252 Add pop_back() to GrAllocator and add unit test.
BUG=skia:2889
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/538183002
2014-09-05 06:13:43 -07:00
bsalomon
95740981c3 Add GrProgramElement base class for GrEffect with deferred exec ref.
BUG=skia:2889
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/537773004
2014-09-04 13:12:37 -07:00
robertphillips
c5ba71d2e5 Change SkPicture::draw to playback
R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/540963002
2014-09-04 08:42:50 -07:00
robertphillips
274b4ba6bd Switch Layer Hoisting over to SkRecord backend
R=bsalomon@google.com
TBR=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/540543002
2014-09-04 07:24:18 -07:00
mtklein
406654be7a SkThreadPool ~~> SkTaskGroup
SkTaskGroup is like SkThreadPool except the threads stay in
one global pool.  Each SkTaskGroup itself is tiny (4 bytes)
and its wait() method applies only to tasks add()ed to that
instance, not the whole thread pool.

This means we don't need to bring up new thread pools when
tests themselves want to use multithreading (e.g. pathops,
quilt).  We just create a new SkTaskGroup and wait for that
to complete.  This should be more efficient, and allow us
to expand where we use threads to really latency sensitive
places.  E.g. we can probably now use these in nanobench
for CPU .skp rendering.

Now that all threads are sharing the same pool, I think we
can remove most of the custom mechanism pathops tests use
to control threading.  They'll just ride on the global pool
with all other tests now.

This (temporarily?) removes the GPU multithreading feature
from DM, which we don't use.

On my desktop, DM runs a little faster (57s -> 55s) in
Debug, and a lot faster in Release (36s -> 24s).  The bots
show speedups of similar proportions, cutting more than a
minute off the N4/Release and Win7/Debug runtimes.

BUG=skia:

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

R=caryclark@google.com, bsalomon@google.com, bungeman@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/531653002
2014-09-03 15:34:37 -07:00
mtklein
2460bbdfbb Revert of SkThreadPool ~~> SkTaskGroup (patchset #4 id:60001 of https://codereview.chromium.org/531653002/)
Reason for revert:
Leaks, leaks, leaks.

Original issue's description:
> SkThreadPool ~~> SkTaskGroup
>
> SkTaskGroup is like SkThreadPool except the threads stay in
> one global pool.  Each SkTaskGroup itself is tiny (4 bytes)
> and its wait() method applies only to tasks add()ed to that
> instance, not the whole thread pool.
>
> This means we don't need to bring up new thread pools when
> tests themselves want to use multithreading (e.g. pathops,
> quilt).  We just create a new SkTaskGroup and wait for that
> to complete.  This should be more efficient, and allow us
> to expand where we use threads to really latency sensitive
> places.  E.g. we can probably now use these in nanobench
> for CPU .skp rendering.
>
> Now that all threads are sharing the same pool, I think we
> can remove most of the custom mechanism pathops tests use
> to control threading.  They'll just ride on the global pool
> with all other tests now.
>
> This (temporarily?) removes the GPU multithreading feature
> from DM, which we don't use.
>
> On my desktop, DM runs a little faster (57s -> 55s) in
> Debug, and a lot faster in Release (36s -> 24s).  The bots
> show speedups of similar proportions, cutting more than a
> minute off the N4/Release and Win7/Debug runtimes.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/9c7207b5dc71dc5a96a2eb107d401133333d5b6f

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

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/533393002
2014-09-03 14:17:48 -07:00
mtklein
9c7207b5dc SkThreadPool ~~> SkTaskGroup
SkTaskGroup is like SkThreadPool except the threads stay in
one global pool.  Each SkTaskGroup itself is tiny (4 bytes)
and its wait() method applies only to tasks add()ed to that
instance, not the whole thread pool.

This means we don't need to bring up new thread pools when
tests themselves want to use multithreading (e.g. pathops,
quilt).  We just create a new SkTaskGroup and wait for that
to complete.  This should be more efficient, and allow us
to expand where we use threads to really latency sensitive
places.  E.g. we can probably now use these in nanobench
for CPU .skp rendering.

Now that all threads are sharing the same pool, I think we
can remove most of the custom mechanism pathops tests use
to control threading.  They'll just ride on the global pool
with all other tests now.

This (temporarily?) removes the GPU multithreading feature
from DM, which we don't use.

On my desktop, DM runs a little faster (57s -> 55s) in
Debug, and a lot faster in Release (36s -> 24s).  The bots
show speedups of similar proportions, cutting more than a
minute off the N4/Release and Win7/Debug runtimes.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/531653002
2014-09-03 14:06:48 -07:00
djsollen
6233c7b2d3 Revert to enabling all of -O2 as it exposes a bug in the toolchain.
Instead as a workaround we will temporarily disable tiling the
few GMs that produce errors with the existing 64-bit ARM toolchain.

BUG=skia:2908
R=mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/537713002
2014-09-03 13:38:32 -07:00
reed
e5ea500d47 Hide fields in SkImageInfo
R=rmistry@google.com
TBR=bsalomon

Author: reed@google.com

Review URL: https://codereview.chromium.org/536003002
2014-09-03 11:54:58 -07:00
robertphillips
d982eb22d7 Replace SkPictureReplacementPlayback with GrRecordReplaceDraw
I think this is sufficiently specialized to keep it in Ganesh for the time being.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/535953002
2014-09-03 11:04:31 -07:00
djsollen
74364c9774 Disable -fexpensive-optimizations on 64-bit ARM.
BUG=skia:2908
R=mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/535113004
2014-09-03 10:44:00 -07:00
reed
1cf15b4735 remove flags that are already mirrored in chrome's SkUserConfig.h
NOTRY=True
TBR=fmalita@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/537563002
2014-09-03 06:31:06 -07:00
reed
2bdf1f56c3 Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/527073003/)
Reason for revert:
virtual gpu failures in layouttests

http://build.chromium.org/p/tryserver.blink/builders/linux_blink_dbg/builds/23717

[6:6:0903/041147:1700960503:INFO:SkBitmap.cpp(1003)] ../../third_party/skia/src/core/SkBitmap.cpp:1003: failed assertion "fPixelRef->info() == pixelRef->info()"

[6:6:0903/041147:1700961002:FATAL:SkBitmap.cpp(1003)] SK_CRASH
#0 0x7f9867df2c1e base::debug::StackTrace::StackTrace()
#1 0x7f9867e89e05 logging::LogMessage::~LogMessage()
#2 0x7f98689c4970 SkDebugf_FileLine()
#3 0x7f986870ebc6 SkBitmap::deepCopyTo()
#4 0x7f98690a3b6d blink::deepSkBitmapCopy()
#5 0x7f98690a3abe blink::ImageBuffer::copyImage()
#6 0x7f985fd4479e blink::ImageBitmap::ImageBitmap()
#7 0x7f985fd45942 blink::ImageBitmap::create()
#8 0x7f985fd84fdc blink::ImageBitmapFactories::createImageBitmap()
#9 0x7f985fd84d11 blink::ImageBitmapFactories::createImageBitmap()
#10 0x7f985ec9a7f2 blink::LocalDOMWindowV8Internal::createImageBitmap13Method()
#11 0x7f985ec96b0c blink::LocalDOMWindowV8Internal::createImageBitmapMethod()
#12 0x7f985ec91954 blink::LocalDOMWindowV8Internal::createImageBitmapMethodCallback()
#13 0x7f9869955af0 v8::internal::FunctionCallbackArguments::Call()
#14 0x7f98699833bd v8::internal::Builtin_HandleApiCall()

Original issue's description:
> Add gamma/sRGB tag to SkImageInfo
>
> This reverts commit 1cbc68f965.
>
> requires this to land in blink https://codereview.chromium.org/531883002/
>
> Committed: https://skia.googlesource.com/skia/+/2f6abdecc5c2f21da13003c615903679abc73fc7

R=fmalita@google.com, reed@chromium.org
TBR=fmalita@google.com, reed@chromium.org
NOTREECHECKS=true
NOTRY=true

Author: reed@google.com

Review URL: https://codereview.chromium.org/535113002
2014-09-03 05:48:56 -07:00
reed
2f6abdecc5 Add gamma/sRGB tag to SkImageInfo
This reverts commit 1cbc68f965.

requires this to land in blink https://codereview.chromium.org/531883002/

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/527073003
2014-09-02 21:56:40 -07:00
reed
294739b848 add legacy guard for SK_SUPPORT_LEGACY_ALLOCPIXELS_BOOL to android
NOTRY=True

BUG=skia:
R=djsollen@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/530163002
2014-09-02 13:50:39 -07:00
djsollen
5ee785d9c7 Remove legacy (and also broken) SkPicture constructor.
R=robertphillips@google.com, reed@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/532703004
2014-09-02 13:34:49 -07:00
reed
848250415e make allocPixels throw on failure
BUG=skia:
R=mtklein@google.com, fmalita@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/510423005
2014-09-02 12:50:45 -07:00
piotaixr
aca21d6d2f Rename ScaledImageCache.cpp to SkResourceCacheTest.cpp
BUG=skia:
R=junov@chromium.org, reed@android.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/518213003
2014-09-02 11:51:00 -07:00
robertphillips
98d709bc8d Reorganize Layer Hoisting code
With the new MultiPictureDraw API the GrContext will be performing the layer hoisting (instead of the SkGpuDevice). This CL being moving the layer hoisting functionality to GrLayerHoister rather then dumping it straight into GrContext.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/531733003
2014-09-02 10:20:50 -07:00
reed
1cbc68f965 Revert of Revert of Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/532583002/)
Reason for revert:
linux_blink_rel

[ RUN      ] DeferredImageDecoderTest.drawIntoSkPicture
../../third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp:172: Failure
Value of: canvasBitmap.getColor(0, 0)
Actual: 0
Expected: static_cast<SkColor>( (static_cast<U8CPU>(255) << 24) | (static_cast<U8CPU>(255) << 16) | (static_cast<U8CPU>(255) << 8) | (static_cast<U8CPU>(255) << 0))
Which is: 4294967295
[  FAILED  ] DeferredImageDecoderTest.drawIntoSkPicture (0 ms)
[1457/1458] DeferredImageDecoderTest.drawIntoSkPicture (0 ms)
[ RUN      ] DeferredImageDecoderTest.decodeOnOtherThread
../../third_party/WebKit/Source/platform/graphics/DeferredImageDecoderTest.cpp:233: Failure
Value of: canvasBitmap.getColor(0, 0)
Actual: 0
Expected: static_cast<SkColor>( (static_cast<U8CPU>(255) << 24) | (static_cast<U8CPU>(255) << 16) | (static_cast<U8CPU>(255) << 8) | (static_cast<U8CPU>(255) << 0))
Which is: 4294967295
[  FAILED  ] DeferredImageDecoderTest.decodeOnOtherThread (1 ms)
[1458/1458] DeferredImageDecoderTest.decodeOnOtherThread (1 ms)
Retrying 2 tests (retry #2)

Original issue's description:
> Revert of Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/525113005/)
>
> Reason for revert:
> Experiment to see resulting failures
>
> Original issue's description:
> > Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/522813002/)
> >
> > Reason for revert:
> > seems to be breaking layout tests in roll
> >
> > Original issue's description:
> > > Add gamma/sRGB tag to SkImageInfo
> > >
> > > This reverts commit 64ba5fa1ff.
> > >
> > > BUG=skia:
> > >
> > > Committed: https://skia.googlesource.com/skia/+/c89aa509d6a094bc1b18d73135343819903a9cfb
> >
> > TBR=reed@google.com
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/b44c1895afae516cb851cd1a0cea83343c354ee4
>
> TBR=reed@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4581828014eb3d015e6ed55c9a5b6932b8751818

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

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/524593005
2014-09-02 04:14:37 -07:00
reed
4581828014 Revert of Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/525113005/)
Reason for revert:
Experiment to see resulting failures

Original issue's description:
> Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/522813002/)
>
> Reason for revert:
> seems to be breaking layout tests in roll
>
> Original issue's description:
> > Add gamma/sRGB tag to SkImageInfo
> >
> > This reverts commit 64ba5fa1ff.
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/c89aa509d6a094bc1b18d73135343819903a9cfb
>
> TBR=reed@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b44c1895afae516cb851cd1a0cea83343c354ee4

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

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/532583002
2014-09-01 18:36:24 -07:00
reed
b44c1895af Revert of Add gamma/sRGB tag to SkImageInfo (patchset #1 id:1 of https://codereview.chromium.org/522813002/)
Reason for revert:
seems to be breaking layout tests in roll

Original issue's description:
> Add gamma/sRGB tag to SkImageInfo
>
> This reverts commit 64ba5fa1ff.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c89aa509d6a094bc1b18d73135343819903a9cfb

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

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/525113005
2014-09-01 14:28:32 -07:00
reed
c89aa509d6 Add gamma/sRGB tag to SkImageInfo
This reverts commit 64ba5fa1ff.

BUG=skia:
R=reed@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/522813002
2014-09-01 12:14:29 -07:00
robertphillips
a8d7f0b13c Try out scalar picture sizes
This paves the way for removing the 'fTile' parameter from SkPictureShader (although that should be a different CL). If we like this we could also move to providing an entire cull SkRect.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/513983002
2014-08-29 08:03:56 -07:00
reed
64ba5fa1ff Revert of Add gamma/sRGB tags to SkImageInfo (patchset #1 of https://codereview.chromium.org/517123002/)
Reason for revert:
Seems to be triggering assert in blink

SSLUITest.TestRedirectHTTPToBadHTTPS (run #1):
[ RUN      ] SSLUITest.TestRedirectHTTPToBadHTTPS
HTTP server started on http://127.0.0.1:58000...
sending server_data: {"host": "127.0.0.1", "port": 58000} (36 bytes)
HTTPS server started on https://127.0.0.1:58009...
sending server_data: {"host": "127.0.0.1", "port": 58009} (36 bytes)
ASSERTION FAILED: info.fAlphaType == m_imageInfo.fAlphaType
../../third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp(78) : virtual bool blink::DecodingImageGenerator::onGetPixels(const SkImageInfo &, void *, size_t, SkPMColor *, int *)
1   0x77eb0d3 blink::DecodingImageGenerator::onGetPixels(SkImageInfo const&, void*, unsigned long, unsigned int*, int*)
2   0x92edddc SkImageGenerator::getPixels(SkImageInfo const&, void*, unsigned long, unsigned int*, int*)
3   0x92adf78 SkDiscardablePixelRef::onNewLockPixels(SkPixelRef::LockRec*)
4   0x9369283 SkPixelRef::lockPixels(SkPixelRef::LockRec*)
5   0x9369433 SkPixelRef::lockPixels()
6   0x9213344 SkBitmap::lockPixels() const
7   0x921ca57 SkAutoLockPixels::SkAutoLockPixels(SkBitmap const&, bool)
8   0x921ad80 SkAutoLockPixels::SkAutoLockPixels(SkBitmap const&, bool)
9   0x92b7125 SkDraw::drawBitmap(SkBitmap const&, SkMatrix const&, SkPaint const&) const
10  0x921f4fb SkBitmapDevice::drawBitmap(SkDraw const&, SkBitmap const&, SkMatrix const&, SkPaint const&)
11  0x921f8c7 SkBitmapDevice::drawBitmapRect(SkDraw const&, SkBitmap const&, SkRect const*, SkRect const&, SkPaint const&, SkCanvas::DrawBitmapRectFlags)
12  0x9288e12 SkCanvas::internalDrawBitmapRect(SkBitmap const&, SkRect const*, SkRect const&, SkPaint const*, SkCanvas::DrawBitmapRectFlags)
13  0x9288ee9 SkCanvas::drawBitmapRectToRect(SkBitmap const&, SkRect const*, SkRect const&, SkPaint const*, SkCanvas::DrawBitmapRectFlags)

Original issue's description:
> Add gamma/sRGB tags to SkImageInfo
>
> requires this CL to land in chrome
> https://codereview.chromium.org/517803002/
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/228b285ba14a6e9b6d1cc95ea1583caab30168a1

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/519583004
2014-08-29 07:50:28 -07:00
reed
228b285ba1 Add gamma/sRGB tags to SkImageInfo
requires this CL to land in chrome
https://codereview.chromium.org/517803002/

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/517123002
2014-08-29 04:08:43 -07:00
reed
088f4b8eb3 Revert of Revert of Revert of add gamma/sRGB to SkImageInfo (patchset #1 of https://codereview.chromium.org/511363002/)
Reason for revert:
android builder in chrome reveals the caller using { } initialization for SkImageInfo, which this CL now makes illegal. Will have to fix the call site before I can re-land this

Original issue's description:
> Revert of Revert of add gamma/sRGB to SkImageInfo (patchset #1 of https://codereview.chromium.org/512243002/)
>
> Reason for revert:
> this revert was premature -- the chrome canary I looked at is old, and newer ones were green. So trying again...
>
> Original issue's description:
> > Revert of add gamma/sRGB to SkImageInfo (patchset #4 of https://codereview.chromium.org/514753002/)
> >
> > Reason for revert:
> > breaks linker on chrome -- may need SK_API, but not sure.
> >
> > Original issue's description:
> > > add gamma/sRGB to SkImageInfo
> > >
> > > BUG=skia:
> > >
> > > Committed: https://skia.googlesource.com/skia/+/615c369777258231054840a88cdb74c68c382485
> >
> > TBR=bungeman@google.com,bsalomon@google.com
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/dc53701216c0e9f98eacf6c0cda769ebbd200b59
>
> TBR=bungeman@google.com,bsalomon@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/e759a2662273fdf52ebbb3822229945eda317e46

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/517113002
2014-08-28 14:46:19 -07:00
humper
d73c169637 Second attempt to land the integral image scaling change.
Scale all images to the nearest rounded integer, and if there's still
any scaling factor left over, pass it on to the subsequent bilerp code.
Should avoid artifacts when tiling scaled images.

Original CL received an LGTM from reed; new version disabled tiling
in the downsamplebitmap GM; I verified that this fixes the issue
we were seeing there on non-neon androids.

BUG=skia:2888
R=reed@android.com
TBR=reed

Author: humper@google.com

Review URL: https://codereview.chromium.org/514383003
2014-08-28 14:27:42 -07:00
reed
011f39aeb2 rename ScaledImageCache to ResourceCache
BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/511283002
2014-08-28 13:35:23 -07:00
reed
e759a26622 Revert of Revert of add gamma/sRGB to SkImageInfo (patchset #1 of https://codereview.chromium.org/512243002/)
Reason for revert:
this revert was premature -- the chrome canary I looked at is old, and newer ones were green. So trying again...

Original issue's description:
> Revert of add gamma/sRGB to SkImageInfo (patchset #4 of https://codereview.chromium.org/514753002/)
>
> Reason for revert:
> breaks linker on chrome -- may need SK_API, but not sure.
>
> Original issue's description:
> > add gamma/sRGB to SkImageInfo
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/615c369777258231054840a88cdb74c68c382485
>
> TBR=bungeman@google.com,bsalomon@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/dc53701216c0e9f98eacf6c0cda769ebbd200b59

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/511363002
2014-08-28 11:57:34 -07:00
humper
60cc7d353b manual revert of bitmap scale change while I investigate failures
on chromeos

TBR=reed
NOTREECHECKS=True

Author: humper@google.com

Review URL: https://codereview.chromium.org/516923003
2014-08-28 09:54:41 -07:00
bsalomon
744998e666 Make textures register with GrResourceCache2 as scratch.
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/510053003
2014-08-28 09:54:34 -07:00
reed
dc53701216 Revert of add gamma/sRGB to SkImageInfo (patchset #4 of https://codereview.chromium.org/514753002/)
Reason for revert:
breaks linker on chrome -- may need SK_API, but not sure.

Original issue's description:
> add gamma/sRGB to SkImageInfo
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/615c369777258231054840a88cdb74c68c382485

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/512243002
2014-08-28 06:53:19 -07:00
reed
615c369777 add gamma/sRGB to SkImageInfo
BUG=skia:
R=bungeman@google.com, bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/514753002
2014-08-28 05:56:37 -07:00
djsollen
38e44b06b2 Disable bitmap decoders for GPU specific formats on Android framework
R=reed@google.com, robertphillips@google.com, scroggo@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/510913003
2014-08-28 05:41:21 -07:00
halcanary
daefa5b340 JPEG(JFIF only) directly embedded into PDF
R=reed@google.com, djsollen@google.com, mtklein@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/515493003
2014-08-27 13:00:54 -07:00
humper
ce7b1d5fad always scale to an integer; compensate for fractional image sizes by leaving the fractional scale in the matrix
BUG=skia:
R=reed@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/470233002
2014-08-27 07:56:49 -07:00
mtklein
4473be874f Clean up some benches that answer questions we're no longer asking.
NOTREECHECKS=true

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/512503002
2014-08-27 06:34:16 -07:00
mtklein
2a65a238b0 Remove SkQuadTree.
We're not testing it to the same degree we do RTree and TileGrid.  Any changes
we'll make to BBH APIs become 33% easier without it.  If find we want it again,
we can always resurrect it.

BUG=skia:1021,skia:2834
R=robertphillips@google.com, mtklein@google.com
TBR=reed

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/500373005
2014-08-26 14:07:04 -07:00
egdaniel
21aed57023 Create Read-only Base class for GrDrawState that holds data members and getters
Base class will but used also in follow up cl that will create an OptDrawState class which will
share much of the same data/functions as DrawState. Thus the base class
BUG=skia:
R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/506803003
2014-08-26 12:24:06 -07:00
djsollen
5387c83f81 Revert of Benchmark designed to exercise fractional image scale/translation (patchset #2 of https://codereview.chromium.org/491793003/)
Reason for revert:
fires asserts on Linux Debug builds

http://108.170.220.120:10115/builders/Test-Ubuntu12-ShuttleA-GTX660-x86_64-Debug/builds/1910

Original issue's description:
> Benchmark designed to exercise fractional image scale/translation
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/5fc226641a0926dddbf70ba784f344881f4c05b9

R=reed@google.com, humper@google.com
TBR=humper@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/470063007
2014-08-25 12:03:11 -07:00
bungeman
a6785ccb54 Add a working SkFontMgr_fontconfig.
R=tomhudson@google.com, reed@google.com, mtklein@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/396143004
2014-08-25 12:00:49 -07:00
humper
5fc226641a Benchmark designed to exercise fractional image scale/translation
BUG=skia:
R=reed@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/491793003
2014-08-25 11:17:48 -07:00
joshualitt
30ba436f04 Initial refactor of shaderbuilder to prepare for geometry shaders
gitignore for eclipse

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

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/491673002
2014-08-21 20:18:45 -07:00
fmalita
c6765d69e3 Add some SkTextBlob builder tests.
R=reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/493443004
2014-08-21 15:03:04 -07:00
djsollen
d92c4c5c95 fix android framework build for nanobench
R=mtklein@google.com, tomhudson@chromium.org, tomhudson@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/495003004
2014-08-21 13:17:50 -07:00
robertphillips
7eacd77ce6 SkMultiPictureDraw API
This CL adds a new API to optimize across multiple SkPicture draw calls.

Note that multiple pictures rendered at once (i.e., picture piles) should be flattened into a single new picture that includes the required clipping on the different layers.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/491313003
2014-08-21 13:12:42 -07:00
mtklein
c92e550d36 Install a hook to swap between SkPicture backends with a single define.
BUG=skia:
R=robertphillips@google.com, reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/492023002
2014-08-21 13:07:27 -07:00
bsalomon
c8dc1f74b6 Add GrResourceCache2.
Currently it just replaces GrGpu as the owner of the linked list of resources.

Committed: https://skia.googlesource.com/skia/+/94ce9ac8624dbb45656b8f5c992fad9c9ff3ee5f

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

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/481443002
2014-08-21 13:02:13 -07:00
reed
a6cac4ce38 rename gradients private BitmapCache to GradientBitmapCache
R=caryclark@google.com
NOTREECHECKS=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/474983005
2014-08-21 10:50:25 -07:00
reed
04617139f7 expose generalized imagecache key
BUG=skia:
R=mtklein@google.com, halcanary@google.com, qiankun.miao@intel.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/483493003
2014-08-21 09:46:49 -07:00
fmalita
00d5c2c652 SkTextBlob
Initial implementation.

R=bungeman@google.com, jbroman@chromium.org, mtklein@google.com, reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/473633002
2014-08-21 08:53:26 -07:00
djsollen
a8d2c4adb8 Temporarily adjust Matrix.isSimilarity test tolerance on 64-bit ARM devices
BUG=skia:2405
R=halcanary@google.com, jvanverth@google.com, reed@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/494113002
2014-08-21 07:40:43 -07:00
mtklein
1915b62637 Add --properties for things like gitHash that describe the current nanobench run.
--key describes the type of run (describes the line on the chart), --properties
describes the run itself (describes the dot on the chart).

We'll pass --properties gitHash <git hash> build_number <build number>  --key
... to nanobench from the bots.

And... delete a whole lot of dead code.

Example: nanobench --properties gitHash foo build_number 1234 --key bar baz

{
   "build_number" : "1234",
   "gitHash" : "foo",
   "key" : {
      "bar" : "baz"
   },
   "results" : {
....

Friends with https://codereview.chromium.org/491943002
BUG=skia:
R=jcgregorio@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/488213002
2014-08-20 11:45:00 -07:00
mtklein
753b870c62 Define NDEBUG instead of SK_DEBUG/SK_RELEASE.
This makes our builds more like Chrome's, and will make our builds fail
if we accidentally use if SK_DEBUG instead of ifdef SK_DEBUG.

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/481513004
2014-08-20 07:38:46 -07:00
tomhudson
3a0f279167 Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702.
Also unifies that flag and this one into a struct so they and others can be computed together. The struct is stored const to enforce lifetime expectations. Adds a few new cases to the unit test.

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

Committed: https://skia.googlesource.com/skia/+/60c2a79cfa8ceebcbafc243407564dc71f5e3b4f

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/364823009
2014-08-20 05:29:41 -07:00
kkinnunen
ccdaa04225 Separate GL path rendering state from GrGpuGL to GrGLPathRendering
Separate GL path rendering state from GrGpuGL to GrGLPathRendering. This
makes GrGpuGL code simpler.

The intention is that while GrGpuGL represents the global environment for GL,
the GrGLPathRendering represents the global environment for path rendering
extension.

Add GrPathRendering, a base class for path rendering, and inherit
GrGLPathRendering from that. Move the path rendering virtual functions from
GrGpu to GrPathRendering.

R=bsalomon@google.com, cdalton@nvidia.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/452823002
2014-08-20 01:36:24 -07:00
mtklein
afb4379dbc Print max RSS in GM and nanobench too.
Everyone used MB, so update the API to just return that.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/483323002
2014-08-19 15:55:55 -07:00
piotaixr
d2a3522503 Add the method isOpaque() to SkImage
BUG=skia:2766
R=junov@chromium.org, halcanary@google.com, scroggo@google.com, reed@google.com, bsalomon@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/406673003
2014-08-19 14:29:02 -07:00
bsalomon
1d89ddc4a3 Revert of Add GrResourceCache2. (patchset #4 of https://codereview.chromium.org/481443002/)
Reason for revert:
Likely caused a leak detected in Chromium after last Skia roll.

Original issue's description:
> Add GrResourceCache2.
>
> Currently it just replaces GrGpu as the owner of the linked list of resources.
>
> Committed: https://skia.googlesource.com/skia/+/94ce9ac8624dbb45656b8f5c992fad9c9ff3ee5f

R=mtklein@google.com, robertphillips@google.com
TBR=mtklein@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/477323006
2014-08-19 14:20:58 -07:00
mtklein
a34633f358 Trim down OSX GYP rules. Same effect, shorter.
BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/486233003
2014-08-19 13:33:00 -07:00
bsalomon
94ce9ac862 Add GrResourceCache2.
Currently it just replaces GrGpu as the owner of the linked list of resources.

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

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/481443002
2014-08-19 08:21:25 -07:00
mtklein
3ba54fa0ad Roll jsoncpp, drop dependency on Chromium overrides.
This rolls jsoncpp to head, crucially past "Added missing includes for
std::istream." which has given us some grief in the past. And it's required to
build jsoncpp against libc++.

Vanilla jsoncpp works just fine for us, so no need for Chromium's overrides.
Like all DEPS, only tools depend on jsoncpp.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/481823003
2014-08-19 07:21:00 -07:00
halcanary
97d2c0a216 Move SkReadBuffer.h and SkReader32.h out of include.
Committed: https://skia.googlesource.com/skia/+/2a51d7c74cec217195f861677de8998b382b39e4

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

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/481053002
2014-08-19 06:27:53 -07:00
Mike Klein
27dc17c297 Revert "Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702."
This reverts commit 60c2a79cfa.

BUG=skia:

Review URL: https://codereview.chromium.org/481173003
2014-08-18 18:35:16 -04:00
tomhudson
60c2a79cfa Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702.
Also unifies that flag and this one into a struct so they and others can be computed together. The struct is stored const to enforce lifetime expectations. Adds a few new cases to the unit test.

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

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/364823009
2014-08-18 15:07:13 -07:00
halcanary
f128f53a5b Revert "Move SkReadBuffer.h and SkReader32.h out of include."
This reverts commit 2a51d7c74c.

Breaking Blink

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

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/472303006
2014-08-18 13:48:13 -07:00
halcanary
2a51d7c74c Move SkReadBuffer.h and SkReader32.h out of include.
R=mtklein@google.com, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/481053002
2014-08-18 13:04:59 -07:00
halcanary
ea4673fde6 SkImage::NewFromGenerator(SkImageGenerator*), and a unit test.
R=reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/465823003
2014-08-18 08:27:09 -07:00
dandov
7e5598a004 Added bench for grid of patches.
It is on top of my previous cl to fix the mem leaks of the regular patch bench.

NOTREECHECKS=true
BUG=skia:
R=egdaniel@google.com, bsalomon@google.com

Author: dandov@google.com

Review URL: https://codereview.chromium.org/470543004
2014-08-15 13:30:47 -07:00
reed
cccb3b44e4 remove SkBitmap::Config support from android
NOTREECHECKS=True
NOTRY=True
R=djsollen@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/470933003
2014-08-15 10:13:35 -07:00
djsollen
3b6255493e Remove SkPaintOptionsAndroid
Committed: https://skia.googlesource.com/skia/+/f32331ffdb5de0440bb337aa7cbdd6f33e9ff23b

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

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/447873003
2014-08-14 06:29:03 -07:00
bsalomon
c15e28a522 Revert of Remove SkPaintOptionsAndroid (patchset #5 of https://codereview.chromium.org/447873003/)
Reason for revert:
Breaks the Chromium build: http://108.170.220.120:10117/builders/Canary-Chrome-Ubuntu13.10-Ninja-x86_64-DRT/builds/2469/steps/BuildContentShell_1/logs/stdio

Original issue's description:
> Remove SkPaintOptionsAndroid
>
> Committed: https://skia.googlesource.com/skia/+/f32331ffdb5de0440bb337aa7cbdd6f33e9ff23b

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com
TBR=djsollen@google.com, mtklein@google.com, reed@google.com, tomhudson@google.com
NOTREECHECKS=true
NOTRY=true

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/473543004
2014-08-13 15:18:46 -07:00
djsollen
f32331ffdb Remove SkPaintOptionsAndroid
R=reed@google.com, mtklein@google.com, tomhudson@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/447873003
2014-08-13 13:09:49 -07:00
tomhudson
c773390eef Delete the old font management implementation based on SkFontConfigInterface, now that SkFontMgr_Android is live.
BUG=chromium:400801
R=djsollen@google.com, bungeman@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/445143002
2014-08-13 10:41:25 -07:00
stephana
21b342d19c This eliminates the need to copy the generated images from a temporary directory to the directory that is served by the rebaseline_server.
BUG=skia:2815, skia:2818
R=epoger@google.com

Author: stephana@google.com

Review URL: https://codereview.chromium.org/457203003
2014-08-13 10:36:06 -07:00
dandov
cc03adb909 Proposal for the mesh gradient interface. Implemented as a grid of
patches and uses 4 private arrays to store the values of the control points and
colors. When it needs a patch at a certain position of the grid it just
builds it using the corresponding values of the array and the
grid coordinates provided. Details on implementation are documented in the corresponding classes' comments.

Also added a gm for mesh gradients.

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

Author: dandov@google.com

Review URL: https://codereview.chromium.org/451723003
2014-08-12 17:14:57 -07:00
tomhudson
8e69676bf5 Turn on FontMgr for Android
Minimal change for activating the SkFontMgr on Android, broken out
of http://crrev.com/445143002/.

BUG=chromium:400801
R=bungeman@google.com, djsollen@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/462073002
2014-08-12 10:55:09 -07:00
halcanary
78ee93f545 Revert of SkImage::NewFromGenerator(SkImageGenerator*), and a unit test. (https://codereview.chromium.org/465823003/)
Reason for revert:
Mac bots are failing

Original issue's description:
> SkImage::NewFromGenerator(SkImageGenerator*), and a unit test.
>
> Committed: https://skia.googlesource.com/skia/+/186f7b04956a1742f185a4ca69b44b52bc50e7fc

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

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/453723003
2014-08-12 09:07:08 -07:00
dandov
b3c9d1c33c SkCanvas::drawPatch param SkPoint[12]
drawPatch now receives as parameter const SkPoint cubics[12]

Adjusted derived classes and serialization.

Ajusted GM's and benches that take into account combinations of optional
parameters, the scale of the patch and 4 different types of patches.

Planning on adding the extra functionality of SkPatch in another CL.

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

Author: dandov@google.com

Review URL: https://codereview.chromium.org/463493002
2014-08-12 08:34:29 -07:00
halcanary
186f7b0495 SkImage::NewFromGenerator(SkImageGenerator*), and a unit test.
R=reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/465823003
2014-08-12 08:04:58 -07:00
krajcevski
9c6d4d744a Change GR_COMPRESS_ALPHA_MASK from compile-time flag to run-time. We do this by introducing an Options struct to be passed to a GrContext on creation.
R=robertphillips@google.com, bsalomon@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/459033002
2014-08-12 07:26:26 -07:00
halcanary
b2edec2c39 Revert of SkImage_Codec is Lazy (https://codereview.chromium.org/460823002/)
Reason for revert:
breaks chromium - no SkDecodingImageGenerator::Create

Original issue's description:
> SkImage_Codec is Lazy
>
> Committed: https://skia.googlesource.com/skia/+/e36f499110da8c2e2aa05227bee6deb967309ead

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

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/461043002
2014-08-12 06:53:28 -07:00
reed
d7127e7b83 re-add samplerstress gm, but use blurmaskfilter instead (std filter)
BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/468483002
2014-08-12 06:53:09 -07:00
halcanary
e36f499110 SkImage_Codec is Lazy
R=reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/460823002
2014-08-12 06:37:21 -07:00
reed
5b1b2dbe76 remove SkStippleMaskFilter - no external clients
TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/462013002
2014-08-12 05:50:10 -07:00
cdalton
c7103a104f Wrap NV_path_rendering API with GrGLPathRendering
Adds a GrGLPathRendering class that wraps the NV_path_rendering
extension and manages its various API versions. It also provides
backup implementations when certain NVpr methods from later API
versions are not present on the current system.

BUG=skia:
R=bungeman@google.com, bsalomon@google.com, kkinnunen@nvidia.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/444223002
2014-08-11 14:05:05 -07:00
joshualitt
5acfea789d 2D kernel initial wiring for Guassian
BUG=skia:
R=senorblanco@chromium.org, bsalomon@chromium.org, bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/418223009
2014-08-11 13:55:34 -07:00
halcanary
8b2cb3391d clean up render_pdfs:
Remove unused headers
     replace dynamic memory wstream with null wstream.
     Use SkAutoTDelete when appropriate.
     Replace PdfRenderer class with short function: pdf_to_stream.
     Collapse render_pdf, process_input, tool_main_core functions
     Split out process_input_files function.
     Don't crash when no arguments given.
     print out max rss on each skp.
     prettier output

R=mtklein@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/463603002
2014-08-11 13:08:27 -07:00
halcanary
0d154eeaeb Process Statistics header, add max RSS to render_pdfs
Committed: https://skia.googlesource.com/skia/+/6274baae7fe82ce6481da367687aa6168356e1e1

R=mtklein@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/448993003
2014-08-11 11:33:51 -07:00
robertphillips
6b143b0808 Remove Matrix/Clip State collapse code
Given recent & upcoming changes (e.g., removal of save flags & SkRecord picture backend) this will have to be reimplemented.

R=fmalita@google.com, fmalita@chromium.org

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/453133003
2014-08-11 06:03:42 -07:00
reed
d5fa1a455a add drawPicture variant that takes a matrix and paint
will need some staging strategy, since chrome and blink have overrides of onDrawPicture

R=robertphillips@google.com, fmalita@google.com, bsalomon@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/448793004
2014-08-09 11:08:05 -07:00
humper
d1d3baeb98 add an animated test to verify that high-quality identity scaling doesn't change the image
BUG=skia:
R=reed@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/454913002
2014-08-08 12:11:33 -07:00
hendrikw
afdada2eab Moved SkPictureContentInfo into its own file. It now tracks the number of skia
operations (maybe, I'm not 100% sure I'm doing this right yet)  and the number
of text draws.  I also moved some of the gpu logic out of SkPictureRecord and
into SkPictureContentInfo,

http://code.google.com/p/chromium/issues/detail?id=396908
http://code.google.com/p/chromium/issues/detail?id=397198
http://code.google.com/p/chromium/issues/detail?id=399728

BUG=396908
R=nduca@chromium.org, mtklein@chromium.org, robertphillips@google.com, mtklein@google.com

Author: hendrikw@chromium.org

Review URL: https://codereview.chromium.org/435093003
2014-08-08 10:44:33 -07:00
joshualitt
bab82ed05b Pretty print of shaders
BUG=skia:
R=bsalomon@chromium.org, senorblanco@chromium.org, bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/437593004
2014-08-08 09:41:42 -07:00
mtklein
72ebb9f1dc DM: conserve memory when using --skps
- limit to maximum 1000x1000 viewport like in bench_pictures and nanobench
 - use lazy bitmap decoding when reading the pictures from disk

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/448263002
2014-08-07 14:27:03 -07:00
bungeman
619e07656d Revert of Process Statistics header, add max RSS to render_pdfs (https://codereview.chromium.org/448993003/)
Reason for revert:
Reverting due to breaking iOS bots.

Original issue's description:
> Process Statistics header, add max RSS to render_pdfs
>
> Committed: https://skia.googlesource.com/skia/+/6274baae7fe82ce6481da367687aa6168356e1e1

R=mtklein@google.com, halcanary@google.com
TBR=halcanary@google.com, mtklein@google.com
NOTREECHECKS=true
NOTRY=true

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/448243003
2014-08-07 13:27:18 -07:00
halcanary
6274baae7f Process Statistics header, add max RSS to render_pdfs
R=mtklein@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/448993003
2014-08-07 13:13:54 -07:00
krajcevski
95b1b3d82d Add astcbitmap to gm slides.
Add additional ASTC formats.
Add astc image decoder files.

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

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/444093002
2014-08-07 12:58:38 -07:00
krajcevski
7b62448065 Revert of - Add astcbitmap to gm slides (https://codereview.chromium.org/444093002/)
Reason for revert:
Breaking DM

Original issue's description:
> - Add astcbitmap to gm slides
> - Add additional ASTC formats
> - Add astc image decoder files
>
> Committed: https://skia.googlesource.com/skia/+/2fc05823fed4b9649338f3029cd1ba05ef49a02f

R=reed@google.com, robertphillips@google.com, halcanary@google.com
TBR=halcanary@google.com, reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/447343002
2014-08-07 11:33:59 -07:00
krajcevski
2fc05823fe - Add astcbitmap to gm slides
- Add additional ASTC formats
- Add astc image decoder files

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

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/444093002
2014-08-07 11:18:09 -07:00
krajcevski
b8ccc2f6d2 Pass compressed blitters to our mask drawing algorithm
R=robertphillips@google.com, reed@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/446103002
2014-08-07 08:15:14 -07:00
halcanary
0bef17a678 render_pdfs implements --match
BUG=skia:2743
NOTRY=true
R=djsollen@google.com, mtklein@google.com, borenet@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/441423002
2014-08-07 07:24:48 -07:00
Derek Sollenberger
da7a944e29 Revert "Remove SkPaintOptionsAndroid"
This reverts commit 27fb94999b.

Review URL: https://codereview.chromium.org/450513002
2014-08-06 16:34:40 -04:00
Derek Sollenberger
27fb94999b Remove SkPaintOptionsAndroid
Review URL: https://codereview.chromium.org/447873003
2014-08-06 16:30:51 -04:00
fmalita
b5f7826c51 Explicit tile bounds for SkPictureShader
The integer picture size is not granular enough to allow precise tiling
in arbitrary coordinate systems. This CL adds an optional tile bounds
float rect param to control the tile size and location.

(this also allows tile spacing emulation for picture
shaders).

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

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/437393003
2014-08-06 13:07:15 -07:00
mtklein
a7e930f640 On the bots, there's no need to link GMs into SampleApp.
We build SampleApp on the bots to make sure it's not broken, but we don't run it.  So, there's no need to link in all the GMs as samples.

This reduces the number of copies of our GMs from 4 to 3 (gm, dm, and nanobench remain).

NOTREECHECKS=true

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/447803002
2014-08-06 10:08:42 -07:00
mtklein
be21e3432e Bye bye bench.
NOTREECHECKS=true

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/442343004
2014-08-06 08:39:38 -07:00
bungeman
760ba8d392 Revert "Adds a GrGLPathRendering class that wraps the NV_path_rendering"
This reverts commit 5672da0fa5.

This appears to be blocking the Skia roll by causing failures in the blink layout tests on the canvas-lost-gpu-context.html test.

The bisect for this can be seen at:

https://codereview.chromium.org/449473002/

Original issue's description:
> Adds a GrGLPathRendering class that wraps the NV_path_rendering
> extension and manages its various API versions. It also provides
> backup implementations when certain NVpr methods from later API
> versions are not present on the current system.
>
> Committed: https://skia.googlesource.com/skia/+/5672da0fa54f31c9727568e9dd5fe82c6e1585bc
2014-08-06 11:15:50 -04:00
djsollen
1b27704eba Remove ALL font fallback logic from Skia.
R=reed@google.com, bungeman@google.com, caryclark@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/434623002
2014-08-06 06:58:06 -07:00
mtklein
847092c88b SkThreadPool and co. are not public.
BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/444583006
2014-08-06 06:55:12 -07:00
krajcevski
40a1e11ebe Add support for all compressed formats in KTX file format
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/440783004
2014-08-05 14:13:36 -07:00
tomhudson
816b4fb97c Fix bad gypi
Must not depend directly on ports; depend on skialib!

R=bungeman@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/442883002
2014-08-05 12:01:09 -07:00
krajcevski
e90c900ed7 Add ETC1 format to SkTextureCompressor
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/432143002
2014-08-05 07:37:27 -07:00
tomhudson
f79673bbae Test and generalize font configuration parser
Add a basic unit test for the Android font configuration parser.
Add a check for the new LMP file format; on detection, switch to a new
(as-yet unwritten) parser.

R=bungeman@google.com, djsollen@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/439813002
2014-08-05 06:36:14 -07:00
mtklein
8f394d4791 disable all warnings from nanomsg
They're annoying.

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/437323002
2014-08-04 13:11:19 -07:00
mtklein
ad82ed67df Force linking as C++ library.
BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/420183004
2014-08-04 12:51:20 -07:00
cdalton
5672da0fa5 Adds a GrGLPathRendering class that wraps the NV_path_rendering
extension and manages its various API versions. It also provides
backup implementations when certain NVpr methods from later API
versions are not present on the current system.

R=bsalomon@google.com, kkinnunen@nvidia.com, markkilgard@gmail.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/437473002
2014-08-04 11:19:11 -07:00
mtklein
bce540ca8f Don't call out -lstdc++ -lm explicitly.
BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/440643004
2014-08-04 11:10:16 -07:00
dandov
ecfff21bde SkCanvas interface for drawing a patch.
Added function SkCanvas::drawPatch to the API. This function
receives the patch to draw and the paint.

Added function SkBaseDevice::drawPatch to the API. This function also receives the patch to draw and the paint.

Currently SkGpuDevice and SkBitmapDevice generate the mesh taking into
account the scale factor and call the corresponding device's drawVertices.

BUG=skia:
R=jvanverth@google.com, egdaniel@google.com, bsalomon@google.com

Author: dandov@google.com

Review URL: https://codereview.chromium.org/424663006
2014-08-04 10:02:00 -07:00
krajcevski
50495571df Revert of Add ETC1 format to SkTextureCompressor (https://codereview.chromium.org/432143002/)
Reason for revert:
Breaking Chrome.

Original issue's description:
> Add ETC1 format to SkTextureCompressor
>
> Committed: https://skia.googlesource.com/skia/+/5d8b1b44ea7636fc8e98247cb311568f277ce3a5

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

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/438443004
2014-08-04 09:47:32 -07:00
mtklein
80bddedbb1 small skia_shared_lib=1 build fix for cross-process picture demo
BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/439333002
2014-08-04 09:36:45 -07:00
mtklein
e7ce26d360 Stop building tests.
BUG=skia:
R=borenet@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/423073011
2014-08-04 09:36:16 -07:00
krajcevski
5d8b1b44ea Add ETC1 format to SkTextureCompressor
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/432143002
2014-08-04 09:08:29 -07:00
halcanary
f91b47ff9e Revert of Memory improvements to render_pdfs; better DM pool size defaults (https://codereview.chromium.org/433063002/)
Reason for revert:
breaking android tests

Original issue's description:
> Memory improvements to render_pdfs; better DM pool size defaults
>
> Make SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE equal to
> skia_resource_cache_mb_limit, if that value is >0 (true for some
> low-memory Android devices).
>
> render_pdfs test program uses lazy decoding (and the discardable
> memory pool).
>
> BUG=skia:2743
>
> Committed: https://skia.googlesource.com/skia/+/66058b614d9c8cb63c24b1c779dd1a9a80752217

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

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/418173012
2014-08-01 11:54:48 -07:00
halcanary
66058b614d Memory improvements to render_pdfs; better DM pool size defaults
Make SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE equal to
skia_resource_cache_mb_limit, if that value is >0 (true for some
low-memory Android devices).

render_pdfs test program uses lazy decoding (and the discardable
memory pool).

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

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/433063002
2014-08-01 09:25:11 -07:00
mtklein
92007583e4 SKPs-as-benches in nanobench
This is meant to replace bench_pictures.

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

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/425393004
2014-08-01 07:46:53 -07:00
djsollen
21769c5249 Update NEON compiler defines to use SK_ prefix
BUG=skia:2785
R=mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/433513004
2014-08-01 05:32:32 -07:00
mtklein
2f4a69d377 Clean up skia_directwrite GYP variable.
BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/435553004
2014-07-31 15:31:08 -07:00
mtklein
e30b52ac7a Add missing source file for iOSShell.
CQ_EXTRA_TRYBOTS=tryserver.skia:Build-Mac10.7-Clang-Arm7-Release-iOS-Trybot

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/430273003
2014-07-31 12:47:40 -07:00
mtklein
e714e75c72 nanobench: support GMs-as-benches
BUG=skia:
R=jcgregorio@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/438683002
2014-07-31 12:13:48 -07:00
mtklein
e681c2a506 DM: only depend on GpuTest when it's a GPU build.
This seems to fix DM dynamic linking errors on IntelRHB.

Not clear why this device is the only one with this problem.  It does set
skia_gpu=0, but I can't reproduce the same failure on my desktop (skia_gpu=0,
skia_shared_lib=1, skia_arch_width=32).

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/435673002
2014-07-31 11:26:59 -07:00
mtklein
ada972df35 sk_tool_utils_flags.cpp depends on GetResourcePath
BUG=skia:
R=caryclark@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/432033002
2014-07-31 08:31:56 -07:00
Cary Clark
992c7b03ef Add standard fonts to all GMs.
Allow GM results to be compared across machines and platforms by
standardizing the fonts used by all tests.

This adds runtime flags to DM to use either the system font context (the
default), the fonts in the resources directory ( --resourceFonts ) or a set
of canonical paths generated from the fonts ( --portableFonts ).

This CL should leave the current DM results unchanged by default.

If the portable font data or resource font is missing when DM is run, it
falls back to using the system font context.

The create_test_font tool generates the paths and metrics read by DM
with the --portableFonts flag set, and generates the font substitution
tables read by DM with the --resourceFonts flag set.

If DM is run in SkDebug mode with the --reportUsedChars flag set, it
generates the corresponding data compiled into the create_test_font tool.

All GM tests set their typeface information by calling either

  sk_tool_utils::set_portable_typeface or
  sk_tool_utils::portable_typeface .

(The former takes the paint, the latter returns a SkTypeface.) These calls
can be removed in the future when the Font Manager can be superceded.

BUG=skia:2687
R=mtklein@google.com

Review URL: https://codereview.chromium.org/407183003
2014-07-31 08:58:44 -04:00
bsalomon
3342ed55e1 Add rotated rects benchmarks
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/425263003
2014-07-30 08:58:20 -07:00
kkinnunen
7510b224e5 Rename GrGLUniformManager to GrGLProgramDataManager
Rename GrGLUniformManager to GrGLProgramDataManager in anticipation that the
class would be used to manage shader resources that are not uniforms.

This is needed in order to implement NVPR on GLES.

R=bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/365853002
2014-07-30 00:04:16 -07:00
robertphillips
8ab8cc07cf Finish removing GrTHashTable
This class is no longer used in Ganesh (in favor of SkTDynamicHash)

R=jvanverth@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/421253003
2014-07-29 06:17:49 -07:00
krajcevski
d5e46c7893 Generalize compressed blitter into its own templated class
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/421593004
2014-07-28 14:14:16 -07:00
bsalomon
4beef91ec0 Revert of Remove relative path to GrColor.h in SkShader.h (https://codereview.chromium.org/422023005/)
Reason for revert:
As Ben suspected, this breaks the chrome build.

Original issue's description:
> Remove relative path to GrColor.h in SkShader.h
>
> Committed: https://skia.googlesource.com/skia/+/939f430f660d26e46116a38d2a8436afbd55dfb9

R=bungeman@google.com, george@mozilla.com
TBR=bungeman@google.com, george@mozilla.com
NOTREECHECKS=true
NOTRY=true

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/423943005
2014-07-28 13:43:04 -07:00
bsalomon
939f430f66 Remove relative path to GrColor.h in SkShader.h
R=bungeman@google.com, george@mozilla.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/422023005
2014-07-28 13:27:35 -07:00
cdalton
b2808cd041 Send less transform data when drawing text with nvpr
Before this change, GrStencilAndCoverTextContext would send 6-float
affine transforms to drawPaths for every glyph. This updates it to
concat the text scale onto the context matrix, and then only send
2-float translates (or 1-float x-translates when possible).

Also adds a glyph_pos_align test to gm that exercises the newly added
codepaths, and starts ignoring a few gm tests with benign pixel diffs
until we can rebaseline.

BUG=skia:
R=bsalomon@google.com, kkinnunen@nvidia.com, jvanverth@google.com, bungeman@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/406523003
2014-07-25 14:13:57 -07:00
dandov
50d715476b Added classes SkPatch and SkPatchMesh which help encapsulate and generalize this new primitive. The functionality and responsability of each class is better explained in the comments of the files.
Each patch defines a method genMesh that produces the geometry to draw. To do this they receive a SkPatchMesh object which they need to initialize in order to set up how the data is going to be formatted. Later they call function like setColor or pointAt to set the values at a specific index, the SkMeshPatch object handles the indices based on the format and makes it transparent to the client.

Added a slide to sample app to show how to set up this classes and how they interact.

BUG=skia:
R=jvanverth@google.com, egdaniel@google.com, bsalomon@google.com

Author: dandov@google.com

Review URL: https://codereview.chromium.org/405163003
2014-07-25 10:44:54 -07:00
bsalomon
6d3fe022d6 Rename GrGpuObject to GrGpuResource
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/418143004
2014-07-25 08:35:45 -07:00
krajcevski
b2ef181ed6 Add preliminary ASTC encoder
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/417933005
2014-07-25 07:33:01 -07:00
bsalomon
c44be0e9e4 Merge GrGpuObject and GrCacheable.
We want to create a new base class for "meta" gr resources as part of the GrResourceCache rewrite and this is an iterim step towards that goal.s

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/414013005
2014-07-25 07:32:33 -07:00
djsollen
bc89329fb5 Enable the SSSE3 compile time check on all platforms (4th attempt)
BUG=skia:2746
R=bungeman@google.com, robertphillips@google.com, mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/414033002
2014-07-24 13:53:56 -07:00
bungeman
8d84c99531 SkFontMgr for Android.
Committed: https://skia.googlesource.com/skia/+/4f9a01e03ef3bbe7dd8f9bebdcb3555226087e06

R=djsollen@google.com, tomhudson@google.com, robertphillips@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/414483002
2014-07-24 08:05:10 -07:00
bungeman
2da0f85488 Revert of Enable the SSSE3 compile time check on all platforms. (https://codereview.chromium.org/403583002/)
Reason for revert:
This is blocking the roll. Chromium Windows trybots (like win_chromium_x64_rel) are crashing in the SSSE3 code (for example SkCanvasVideoRenderTest.CroppedFrame).

Original issue's description:
> Enable the SSSE3 compile time check on all platforms (3rd attempt)
>
> BUG=skia:2746
>
> Committed: https://skia.googlesource.com/skia/+/933834851f9d48fbd85b728cc92e1f0134bfaa4e

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

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/418523002
2014-07-23 11:28:18 -07:00
robertphillips
7b82d0f8e6 Revert of SkFontMgr for Android. (https://codereview.chromium.org/414483002/)
Reason for revert:
Reverting to unblock DEPS roll.

Original issue's description:
> SkFontMgr for Android.
>
> Committed: https://skia.googlesource.com/skia/+/4f9a01e03ef3bbe7dd8f9bebdcb3555226087e06

R=djsollen@google.com, tomhudson@google.com, bungeman@google.com
TBR=bungeman@google.com, djsollen@google.com, tomhudson@google.com
NOTREECHECKS=true
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/408143010
2014-07-22 16:36:13 -07:00
djsollen
85d36525c6 fix android_framework build do to missing library at link time
R=scroggo@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/407073006
2014-07-22 13:56:34 -07:00
scroggo
24519371cb Run CanvasState test across a library boundary.
Refactor CanvasStateTest to pull out functions which can
either be called directly or from a shared library. Add a
command line flag to pass in the path to a library to open
to call those functions from.

Separate different CanvasTest tests into separate DEF_TEST
tests. This allows them to be run in parallel.

Move the ifdefs outside of function declarations to skip
running CanvasTest tests which do nothing.

Add the canvas_state_lib target. It is a shared library that
exports some functions to be called by another version of
Skia.

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/400043003
2014-07-22 12:38:55 -07:00
scroggo
c0bc913451 Introduce skia_pic gyp variable.
skia_pic tells ninja to use -fPIC when building for position
independent code.

Set skia_pic to true when building our existing targets that
require position independent code.

Also use skia_pic when building for Android.

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/406613003
2014-07-22 12:09:30 -07:00
bungeman
4f9a01e03e SkFontMgr for Android.
R=djsollen@google.com, tomhudson@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/414483002
2014-07-22 12:07:14 -07:00
caryclark
17f0b6df72 share dm and command flags
Share command flags between dm and unit tests.
Also, allow dm's core to be included by itself and iOSShell.

Command line flags that are the same (or nearly the same) in DM
and in skia_tests have been moved to common_flags. Authors,
please check to see that the shared common flag is correct for
the tool.

For iOS, the 'tool_main' entry point has a wrapper to allow multiple
tools to be statically linked in the iOSShell.
Since SkCommandLineFlags::Parse can only be called once, these calls
are disabled in the IOS build.

Since the iOS app directory is dynamically assigned a name, use '@' to
select it. (This is the same convention chosen by the Mobile Harness
iOS file system utilities.)

Move the heart of dm.gyp into dm.gypi so that it can be included by
itself and iOSShell.gyp.

Add tools/flags/SkCommonFlags.* to define and declare common
command line flags.

Add support for dm to iOSShell.

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

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/389653004
2014-07-22 10:15:35 -07:00
joshualitt
ac9779234e Initial change to move 2D kernel to its own file.
BUG=skia:
R=bsalomon@chromium.org, senorblanco@chromium.org, bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/379253003
2014-07-22 09:52:12 -07:00
krajcevski
6c354881b6 Refactor texture compressors into separate files
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/403383003
2014-07-22 07:44:01 -07:00
djsollen
933834851f Enable the SSSE3 compile time check on all platforms (3rd attempt)
BUG=skia:2746
R=halcanary@google.com, mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/403583002
2014-07-22 07:20:18 -07:00
cdalton
b85a0aab69 Add a GrPathRange class
Adds a GrPathRange object that represents a range of paths on the gpu.
Updates GrDrawTarget::drawPaths and supporting code to use GrPathRange
instead of an array of GrPath objects.

Change-Id: I67845f3893cd4d955db947d699aa3733cbb081e0

BUG=skia:
R=bsalomon@google.com, jvanverth@google.com, kkinnunen@nvidia.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/400713003
2014-07-21 15:32:44 -07:00
sugoi
518d83dbc1 Skia side RGB to YUV gpu conversion
This code is the one that's currently working in my local chromium build. A few things still need to be addressed and I'll highlight these directly in the code.

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

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/374743003
2014-07-21 11:37:39 -07:00
egdaniel
02cafcc1bf 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:

Committed: https://skia.googlesource.com/skia/+/5f78d2251a440443c9eaa321dad058d7a32bfef7

R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/375823005
2014-07-21 11:37:28 -07:00
caryclark
f568f6a557 git sample app working on iOS
R=jvanverth@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/405653002
2014-07-18 10:58:56 -07:00
caryclark
19eb3b2f0a update pathops core and tests
split out skpclip (the test of 1M pictures) into its own project

TBR=reed

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/400033002
2014-07-18 05:08:14 -07:00
scroggo
3eb258d3f6 Generate makefile for bench_pictures.
When generating Android framework makefiles, create one for
bench_pictures.

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/391423002
2014-07-17 06:58:29 -07:00
halcanary
805ef159d1 Set maximum output size for scaled-image-cache images
Accessable via:
  SkScaledImageCache::{G,S}etMaximumOutputSizeForHighQualityFilter

Also, a unit test.

BUG=389439
R=humper@google.com, tomhudson@google.com, reveman@chromium.org, vangelis@chromium.org, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/394003003
2014-07-17 06:58:01 -07:00
mtklein
103ae71cdd Remove benches from DM.
This idea turned out to be more redundant than useful.

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/399463003
2014-07-16 14:29:53 -07:00
joshualitt
ee5da55477 32 bpp floating point textures
This is VERY preliminary, but it was sufficient for me to get 32 bit floating point textures in a sample app

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

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/359803003
2014-07-16 13:32:56 -07:00
robertphillips
b6638bddcd Chromium no longer needs the SkPicture default constructor
With the landing of the Chromium CL (Remove use of default SkPicture constructor - https://codereview.chromium.org/387343003/) Chromium should no longer require the SK_SUPPORT_LEGACY_DEFAULT_PICTURE_CTOR flag.

R=halcanary@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/398463002
2014-07-16 13:21:21 -07:00
Derek Sollenberger
eccbfec18a Fix broken android framework builds where 32-bit MIPS compilers lack 64-bit __sync operators.
R=mtklein@google.com, reed@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/398153002
2014-07-16 15:51:39 -04:00
Derek Sollenberger
122f9ecef8 Remove outdated compiler restrictions.
R=scroggo@google.com

Review URL: https://codereview.chromium.org/394263002
2014-07-16 15:20:01 -04:00
Mike Klein
720c66b818 Reexport skia_gdi.
BUG=skia:

Review URL: https://codereview.chromium.org/398043004
2014-07-16 13:26:19 -04:00
Mike Klein
20f340379c Put skia_directwrite back for now.
BUG=skia:

Review URL: https://codereview.chromium.org/397073002
2014-07-16 13:11:50 -04:00
Mike Klein
9358706750 skia_directwrite -> skia_gdi
This will require lots of rebaselines and a bot CL to swap our lone direct write bot to a lone GDI bot.

BUG=skia:
R=bungeman@google.com

Review URL: https://codereview.chromium.org/394223003
2014-07-16 13:06:04 -04:00
bungeman
c7af812b42 Revert of Reopened: Caching the result of readPixelsSupported (https://codereview.chromium.org/364193004/)
Reason for revert:
This appears to be causing failures on Android when running tests.

Original issue's description:
> 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

R=junov@chromium.org, reed@chromium.org, bsalomon@chromium.org, mtklein@google.com, bsalomon@google.com, piotaixr@chromium.org
TBR=bsalomon@chromium.org, bsalomon@google.com, junov@chromium.org, mtklein@google.com, piotaixr@chromium.org, reed@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:2681

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/395203002
2014-07-16 09:10:41 -07:00
piotaixr
8339371f1e 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

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

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/364193004
2014-07-15 19:41:08 -07:00
Mike Klein
7edaeb515c nanobench on Windows: try compiler barriers around timer instead.
BUG=skia:

Review URL: https://codereview.chromium.org/391193003
2014-07-15 19:04:14 -04:00
Mike Klein
f7e51ea79e Disable LTCG for nanobench.
NOTREECHECKS=true

BUG=skia:
R=mtklein@google.com

Review URL: https://codereview.chromium.org/393953006
2014-07-15 18:39:49 -04:00
tfarina
6599258a99 Cleanup: Remove unused/unimplemented SkTextLayout.h.
Nobody uses it in Skia, Chromium and Blink. And it does not have any
implementation either.

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

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/385323002
2014-07-14 12:32:47 -07:00
krajcevski
630598cbb8 Add support for NEON intrinsics to speed up texture compression. We can
now convert the time that we would have spent uploading the texture to
compressing it giving a net 50% memory savings for these things.

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

R=robertphillips@google.com, mtklein@google.com, kevin.petit@arm.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/390453002
2014-07-14 12:00:04 -07:00
mtklein
60317d0ffb nanobench: support --outResultsFile
BUG=skia:
R=kelvinly@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/390933002
2014-07-14 11:30:37 -07:00
halcanary
9c6878be37 Revert of Enable the SSSE3 compile time check on all platforms. (https://codereview.chromium.org/391693004/)
Reason for revert:
windows fail

Original issue's description:
> Enable the SSSE3 compile time check on all platforms.
>
> BUG=skia:2746
>
> Committed: https://skia.googlesource.com/skia/+/ee349531446ae2a8336b0903e05d0b2150d2131f

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

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/390063002
2014-07-14 08:32:18 -07:00
djsollen
ee34953144 Enable the SSSE3 compile time check on all platforms.
BUG=skia:2746
R=mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/391693004
2014-07-14 07:58:42 -07:00
scroggo
55d316eaba Remove last SK_SUPPORT_LEGACY_SHADER_LOCALMATRIX.
Should have been included in https://codereview.chromium.org/379323002
but it was overlooked. As of that CL, the flag does not do anything.

BUG=skia:1976
R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/390033002
2014-07-14 07:58:34 -07:00
djordje.pesut
6336f7c225 MIPS: added optimization for SkRGB16_Opaque_Blitter::blitMask
gaint is ~30%

R=djsollen@google.com

Author: djordje.pesut@imgtec.com

Review URL: https://codereview.chromium.org/357693002
2014-07-14 07:48:11 -07:00
piotaixr
cef04f8188 Deleted SkImage::newShaderClamp: not used, not implemented.
Implemented SkImage::newShader.

BUG=skia:2701, 344804
R=junov@chromium.org, reed@chromium.org, bsalomon@chromium.org, reed@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/345463009
2014-07-14 07:48:04 -07:00
Robert Phillips
4fdba1cec4 Reallow default SkPicture constructor for Chromium
This is breaking the Chromium build in:
external/chromium_org/android_webview/browser/browser_view_renderer.cc

TBR=reed@google.com

Review URL: https://codereview.chromium.org/392593002
2014-07-14 09:28:15 -04:00
Robert Phillips
cfaeec446d Remove Skia's use of the default SkPicture constructor and multi-clone
This cannot be landed until (Chrome: Switch to one-at-a-time SkPicture::clone interface - https://codereview.chromium.org/380323002/) has landed.

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

Review URL: https://codereview.chromium.org/388833003
2014-07-13 12:00:50 -04:00
jvanverth
733f5f5dbc Refactor SkGrFontScaler and SkGrFontKey into non-virtual versions.
This is a pre-cleanup for another change, but has the side benefit of making
the code simpler in general.

No perf increase, despite removing virtual functions.

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

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/385263002
2014-07-11 19:45:16 -07:00
krajcevski
d41dab43e6 Revert of Add support for NEON intrinsics to speed up texture compression. We can (https://codereview.chromium.org/390453002/)
Reason for revert:
Breaking chrome.

Original issue's description:
> Add support for NEON intrinsics to speed up texture compression. We can
> now convert the time that we would have spent uploading the texture to
> compressing it giving a net 50% memory savings for these things.
>
> Committed: https://skia.googlesource.com/skia/+/bc9205be0a1094e312da098348601398c210dc5a

R=robertphillips@google.com, mtklein@google.com, kevin.petit@arm.com
TBR=kevin.petit@arm.com, mtklein@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/384053003
2014-07-11 13:15:15 -07:00
caryclark
936b73424f ios fixes
skia_ios.mm
Get the app's Documents directory and pass use it to set the resource path.
This is a quick hack which will be replaced by a new application that is
a tiny shim around a command line tool.

SkImageEncoder.h
SkForceLinking.cpp
SkImageDecoder_CG.cpp
Add support for FORCE_LINKING so iOS sees the PNG encoder and others.

SkFloatBits.cpp
SkPoint.cpp
Handle denormalized numbers that are floored by the iOS ARM processor.

SkImageDecoder_iOS.mm
Remove empty encoder factory.

SkTouchGesture.cpp
Return early on empty state on touch rather than aborting (crashing)

JpegTest.cpp
Hal via stackoverflow.com says partial jpegs can be gray as well.

skia_test.cpp
Remove crash handler call for now to avoid link failure.

OverwriteLine.h
Remove fancy line overwrite for iOS.

Resources.cpp
Add interface to set resource directory based on runtime query.

BUG=skia:2736 skia:2737 skia:2738
R=reed@google.com, halcanary@google.com, mtklein@google.com, tfarina@chromium.org

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/373383003
2014-07-11 12:14:51 -07:00
krajcevski
bc9205be0a Add support for NEON intrinsics to speed up texture compression. We can
now convert the time that we would have spent uploading the texture to
compressing it giving a net 50% memory savings for these things.

R=robertphillips@google.com, mtklein@google.com, kevin.petit@arm.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/390453002
2014-07-11 12:12:27 -07:00
scroggo
ef0fd61dc2 Remove SK_SUPPORT_LEGACY_SHADER_LOCALMATRIX.
This is no longer needed by Android.

BUG=skia:1976
R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/379323002
2014-07-11 11:33:52 -07:00
egdaniel
c855ca0c94 Revert of Remove gpu shader optimatization for solid white or trans black colors (https://codereview.chromium.org/375823005/)
Reason for revert:
possible test and gm failures

Original issue's description:
> 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:
>
> Committed: https://skia.googlesource.com/skia/+/5f78d2251a440443c9eaa321dad058d7a32bfef7

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

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/385163004
2014-07-11 09:13:37 -07:00
scroggo
c9af44add0 Revert of Remove public_headers.gypi, unneeded by Skia. (https://codereview.chromium.org/381633003/)
Reason for revert:
Breaking canary: http://108.170.220.120:10117/builders/Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT/builds/1207/steps/Update/logs/stdio

Original issue's description:
> 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
>
> Committed: https://skia.googlesource.com/skia/+/a3fce46f7c85eb3eb5c5373c1eaa0336d9756252

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/382153007
2014-07-11 09:05:32 -07:00
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
robertphillips
5713352a64 Chromium should no longer need the legacy SkCanvas::drawPicture interface
With:
Switch Blink to using new Skia SkCanvas::drawPicture method - https://codereview.chromium.org/316863003/
Switch Chromium to new Skia SkCanvas::drawPicture method - https://codereview.chromium.org/315963003/

Chromium/Blink should no longer need this flag.

Note: this patch cannot be landed until the Blink change rolls into Chromium.

R=jvanverth@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/317193002
2014-06-08 13:17:54 -07:00
djordje.pesut
aaf1df632d MIPS: modified gypi files to support build
R=teodora.petrovic@gmail.com, djsollen@google.com

Author: djordje.pesut@imgtec.com

Review URL: https://codereview.chromium.org/304903003
2014-06-06 14:09:12 -07:00
reed
d71be5d78b remove SK_SUPPORT_LEGACY_SETCONFIG_INFO and SK_SUPPORT_LEGACY_INSTALLPIXELSPARAMS from chrome
TBR=
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/320583003
2014-06-06 09:02:22 -07:00
krajcevski
c250d2e4ab Initial KTX encoder
The encoder comes with tests to check that the encoding/decoding
operations between ETC encoded bitmaps and ARGB bitmaps are sane.

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

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/312353003
2014-06-06 06:16:28 -07:00
Ben Wagner
98875e1abd Rename SkFontHost_win_dw.cpp SkScalerContext.
This is a continuation of https://codereview.chromium.org/314193002/ .

TBR=reed@google.com

Review URL: https://codereview.chromium.org/315173004
2014-06-05 16:55:58 -04:00
bungeman
51daa25a2b Split SkFontHost_win_dw.
Split SkFontHost_win_dw into FontMgr, Typeface, and ScalerContext.
This makes working on these files easier, and moves away from the legacy
FontHost naming.

R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/314193002
2014-06-05 13:38:45 -07:00
reed
6dd061f138 add SK_SUPPORT_LEGACY_COMPUTE_CONFIG_SIZE
TBR=scroggo
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/315263002
2014-06-05 10:00:04 -07:00
jvanverth
71804cc303 Revert of Add SSE4 optimization of S32A_Opaque_Blitrow (https://codereview.chromium.org/289473009/)
Reason for revert:
Buildbot failures on Mac 10.6 and Mac 10.7.

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com, henrik.smiding@intel.com
TBR=reed@google.com
NOTRY=True

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

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/311053009
2014-06-05 08:19:23 -07:00
halcanary
5ec3d21714 remove ashmem from skia
R=scroggo@google.com, djsollen@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/319533004
2014-06-05 08:16:34 -07:00
henrik.smiding
e2527b1476 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>

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-05 07:50:54 -07:00
robertphillips
c2fce56522 Add bench for rectanizers
R=bsalomon@google.com, jvanverth@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/319523003
2014-06-05 07:18:03 -07:00
krajcevski
9a3cdbb3d0 Two new benches for ETC1 bitmaps.
First bench: Simply render from a compressed ETC1 bitmap. This is roughly
equal between compressed and uncompressed data.

Second bench: Notify the bitmap that the pixels have changed (that's right,
like a liar) to force a re-upload to the GPU. On this bench, decompressed
textures seem to inexplicably do an order of magnitude better than
compressed textures when it should be the other way around, but that
investigation is reserved for a future CL.

R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/317023002
2014-06-05 07:03:39 -07:00
robertphillips
1a0a86f072 Remove Android flag for legacy SkCanvas::drawPicture API
Android should no longer need this flag

R=scroggo@google.com, djsollen@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/316933005
2014-06-04 11:43:42 -07:00
Hal Canary
479bb60622 Remove SkImageRef and related functionality.
From here on out, use SkDecodingImageGenerator+SkDiscardablePixelRef.

R=scroggo@google.com

Review URL: https://codereview.chromium.org/100183002
2014-06-04 14:38:48 -04:00
egdaniel
ea902d9150 Add utils gypi file
BUG=skia:
R=bsalomon@google.com, robertphillips@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/317733003
2014-06-04 10:37:06 -07:00
fmalita
fe68617ec1 Relocate SK_IGNORE_CORRECT_HIGH_QUALITY_IMAGE_SCALE
Temporarily move the flag into Chromium's repo, to facilitate
atomic remove-and-suppress-failures changes.

BUG=380686
R=humper@google.com
TBR=humper@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/319533002
2014-06-04 10:27:36 -07:00
egdaniel
90b8cafb6a Revert of Move Dashing filterPath to a dashing utils file (https://codereview.chromium.org/314623004/)
Reason for revert:
Need to create utils.gypi file and update chrome

Original issue's description:
> 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

R=bsalomon@google.com, reed@google.com, rmistry@google.com
TBR=bsalomon@google.com, reed@google.com, rmistry@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/317663003
2014-06-04 09:59:08 -07:00
krajcevski
2dc337c3ae Add non power of two gm for ETC1 bitmap
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/316813005
2014-06-04 09:57:48 -07:00
egdaniel
576dcdc793 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:
R=bsalomon@google.com, reed@google.com, rmistry@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/314623004
2014-06-04 08:15:53 -07:00
robertphillips
9b14f26d0f Alter SkCanvas::drawPicture (devirtualize, take const SkPicture, take pointer)
R=reed@google.com, bsalomon@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/313613004
2014-06-04 05:40:44 -07:00
reed
abc0733760 readd SK_SUPPORT_LEGACY_SETCONFIG_INFO -- missed a place in a blink test
R=jvanverth@google.com
TBR=jvanverth
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/316753002
2014-06-03 16:51:10 -07:00
reed
9307073a7e remove unneeded flags SK_SUPPORT_LEGACY_SETCONFIG_INFO and SK_SUPPORT_LEGACY_DEVICE_CONFIG
TBR=scroggo

Author: reed@google.com

Review URL: https://codereview.chromium.org/315733002
2014-06-03 15:39:06 -07:00
mtklein
bec3634a4a Android: remove -lcutils dependency
I believe we no longer depend on this after we ported our atomics to __sync.

Tested by running android_ninja.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/318493002
2014-06-03 15:38:18 -07:00
mtklein
30bf3e2ffc DM: add pdf
BUG=skia:2598
R=halcanary@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/312873002
2014-06-03 13:57:14 -07:00
robertphillips
795883e15b Fix neglected cleanup of SkTileGridPicture.h
R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/312803003
2014-06-03 13:34:06 -07:00
krajcevski
99ffe24200 Initial KTX file decoder
R=bsalomon@google.com, robertphillips@google.com, halcanary@google.com, reed@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/302333002
2014-06-03 13:04:35 -07:00
reed
868074b50b remove SkBounder -- unused and unloved
BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/312553006
2014-06-03 10:54:00 -07:00
kevin.petit
866b95d65d ARM Skia NEON patches - 38 - arm64 8888 blitters
Enable NEON on arm64 for most 8888 blitters

This patch enables NEON optimisation for the Color32, S32_Blend,
S32A_Opaque blitters on arm64.

Here are the perf improvements vs the existing code:

Color32:
========

+-------+------------+------------+
| count | Cortex-A53 | Cortex-A57 |
+-------+------------+------------+
|     1 |     -2.39% |     23.78% |
+-------+------------+------------+
|     2 |     -5.46% |      8.88% |
+-------+------------+------------+
|     4 |     -4.74% |      4.89% |
+-------+------------+------------+
|     8 |     67.74% |    107.12% |
+-------+------------+------------+
|    16 |     40.03% |    101.20% |
+-------+------------+------------+
|    64 |     11.09% |     98.40% |
+-------+------------+------------+
|   256 |     -2.20% |     74.81% |
+-------+------------+------------+
|  1024 |     -4.28% |     78.90% |
+-------+------------+------------+

S32_Blend:
==========

+-------+------------+------------+
| count | Cortex-A53 | Cortex-A57 |
+-------+------------+------------+
|     1 |      7.84% |     -6.75% |
+-------+------------+------------+
|     2 |     28.95% |     39.77% |
+-------+------------+------------+
|     4 |      5.80% |      8.26% |
+-------+------------+------------+
|     8 |      1.35% |     33.80% |
+-------+------------+------------+
|    16 |     -2.13% |     41.13% |
+-------+------------+------------+
|    64 |     -4.91% |     42.84% |
+-------+------------+------------+
|   256 |     -6.53% |     48.72% |
+-------+------------+------------+
|  1024 |     -6.65% |     46.66% |
+-------+------------+------------+

S32A_Opaque:
============

+-------+------------+------------+
| count | Cortex-A53 | Cortex-A57 |
+-------+------------+------------+
|     1 |     -7.51% |    -19.06% |
+-------+------------+------------+
|     2 |     -5.02% |    -27.70% |
+-------+------------+------------+
|     4 |     15.38% |    -21.66% |
+-------+------------+------------+
|     8 |     -0.98% |      1.05% |
+-------+------------+------------+
|    16 |     -7.35% |      3.34% |
+-------+------------+------------+
|    64 |     50.53% |     94.63% |
+-------+------------+------------+
|   256 |     71.17% |    164.10% |
+-------+------------+------------+
|  1024 |     79.58% |    197.60% |
+-------+------------+------------+

Signed-off-by: Kevin PETIT <kevin.petit@arm.com>

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

Author: kevin.petit@arm.com

Review URL: https://codereview.chromium.org/302283003
2014-06-03 10:08:07 -07:00
robertphillips
dcf9ab14a1 Remove legacy picture recording
This is unblocked now that Android no longer uses the old interface.

This is just the first step in cleaning this up. Future CLs will constify SkPicture access in SkCanvas and split up the SkPicture/SkPicturePlayback/SkPictureRecord trio.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/313613002
2014-06-03 10:04:47 -07:00
scroggo
14052a0b5a Allow chrome to use old version of installPixels.
R=jvanverth@google.com, reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/312703003
2014-06-03 07:57:51 -07:00
reed
9b4353c845 remove unneeded flags
TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/316463002
2014-06-03 05:31:01 -07:00
mtklein
59ef7704f1 Revert of Try TSAN blacklist for SkGLContextHelper::init. (https://codereview.chromium.org/309823004/)
Reason for revert:
the bot's clang doesn't know -fsanitize-blacklist

Original issue's description:
> Try TSAN blacklist for SkGLContextHelper::init.
>
> Submitting to test this; this particular problem only happens on the bot.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/ab2ec19b975a898d4ee2278ddad7d4268f134478

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

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/314543002
2014-06-02 19:34:20 -07:00
mtklein
ab2ec19b97 Try TSAN blacklist for SkGLContextHelper::init.
Submitting to test this; this particular problem only happens on the bot.

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/309823004
2014-06-02 19:11:06 -07:00
krajcevski
8c111f783f Change #def to be opt-out
R=jvanverth@google.com, robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/308143008
2014-06-02 13:51:34 -07:00
jvanverth
1940df968d Allow access to device config for Moz2d.
BUG=skia:2633
R=robertphillips@google.com, borenet@google.com, george@mozilla.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/304273009
2014-06-02 12:27:26 -07:00
robertphillips
a2551ffbc7 Remove legacy Picture-recording flags from Android build
R=scroggo@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/304333002
2014-06-02 12:09:30 -07:00
robertphillips
d537341e16 Move GrIPoint16 to SkIPoint16 (and remove GrPoint.h)
R=bsalomon@google.com, reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/309683002
2014-06-02 10:20:15 -07:00
krajcevski
9c0e629c64 Initial work to get ETC1 data up to the GPU
Committed: http://code.google.com/p/skia/source/detail?r=15001

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

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/302783002
2014-06-02 07:38:15 -07:00
robertphillips
901e96df69 Add Sample slide for Rectanizers
R=jvanverth@google.com, bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/303263005
2014-06-02 07:15:18 -07:00
reed
a6a8f00a39 hide SkDevice::config()
TBR=robertphilips

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/302253002
2014-06-02 05:45:32 -07:00
commit-bot@chromium.org
ed4dc2afaa remove SK_SUPPORT_LEGACY_BLURMASKFILTER_STYLE
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/308953002

git-svn-id: http://skia.googlecode.com/svn/trunk@15016 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-31 21:47:03 +00:00
commit-bot@chromium.org
22a1d96ca3 New file for simpler updating of Android defines.
When building Skia for the Android framework, we will now read a
file which only includes defines. This will make it easier for
people deprecating APIs to add the guard to Android.

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/305193002

git-svn-id: http://skia.googlecode.com/svn/trunk@15013 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-30 21:53:01 +00:00
commit-bot@chromium.org
b4587957f7 Revert of remove SK_SUPPORT_LEGACY_ASIMAGEINFO and SK_SUPPORT_LEGACY_INSTALLPIXELSPARAMS (https://codereview.chromium.org/308083010/)
Reason for revert:
broke skia/ext/bitmap_platform_device_cairo.cc:44:56: error: no matching function for call to ‘SkBitmap::installPixels

Original issue's description:
> remove SK_SUPPORT_LEGACY_ASIMAGEINFO and SK_SUPPORT_LEGACY_INSTALLPIXELSPARAMS
> 
> TBR=
> NOTRY=
> 
> Committed: http://code.google.com/p/skia/source/detail?r=15007

TBR=
NOTREECHECKS=true
NOTRY=true

Author: reed@google.com

Review URL: https://codereview.chromium.org/301353006

git-svn-id: http://skia.googlecode.com/svn/trunk@15010 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-30 21:03:38 +00:00
commit-bot@chromium.org
1fd263edb3 remove SK_SUPPORT_LEGACY_ASIMAGEINFO and SK_SUPPORT_LEGACY_INSTALLPIXELSPARAMS
TBR=
NOTRY=

Author: reed@google.com

Review URL: https://codereview.chromium.org/308083010

git-svn-id: http://skia.googlecode.com/svn/trunk@15007 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-30 20:47:13 +00:00
commit-bot@chromium.org
999cfd1076 Revert of Initial work to get ETC1 data up to the GPU (https://codereview.chromium.org/302783002/)
Reason for revert:
ETC1 linking problems with chrome.

Original issue's description:
> Initial work to get ETC1 data up to the GPU
>
> Committed: http://code.google.com/p/skia/source/detail?r=15001

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

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/303273008

git-svn-id: http://skia.googlecode.com/svn/trunk@15004 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-30 20:36:21 +00:00
commit-bot@chromium.org
af091a176d Initial work to get ETC1 data up to the GPU
R=bsalomon@google.com, robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/302783002

git-svn-id: http://skia.googlecode.com/svn/trunk@15001 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-30 18:41:39 +00:00
commit-bot@chromium.org
7ae034d651 Test font created from paint
This is meant to allow clients to migrate over to a SkFont api on canvas (e.g. drawText(text, font, paint)) while still permitting the current setters in paint (e.g. setTextSize, setFlags).

R=bungeman@google.com, eae@chromium.org, fmalita@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/245953003

git-svn-id: http://skia.googlecode.com/svn/trunk@14997 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-30 16:46:10 +00:00
commit-bot@chromium.org
a3264e53ee Revert "Revert of setConfig -> setInfo (https://codereview.chromium.org/308683005/)"
This reverts commit eecaea4148805834f223681f70b6488ceba12d09.

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/301283003

git-svn-id: http://skia.googlecode.com/svn/trunk@14989 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-30 13:26:10 +00:00
commit-bot@chromium.org
559a8833f0 Fix the rendering error of SkDraw::drawVertices in gpu path for solid color.
If both textures and vertex-colors are NULL, drawVertices should stroke hairlines with the paint's color.
This behavior is a useful debugging mode to visualize the mesh.

BUG=skia:2266
R=bsalomon@google.com, reed@google.com

Author: yunchao.he@intel.com

Review URL: https://codereview.chromium.org/189963004

git-svn-id: http://skia.googlecode.com/svn/trunk@14985 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-30 10:08:22 +00:00
commit-bot@chromium.org
1803f4eb34 new animated sample to show subpixel translate bug with high quality scaling
BUG=1445
R=reed@google.com, robertphillips@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/303123003

git-svn-id: http://skia.googlecode.com/svn/trunk@14981 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 22:01:08 +00:00
commit-bot@chromium.org
d0f824cfbd Revert of setConfig -> setInfo (https://codereview.chromium.org/308683005/)
Reason for revert:
broke all Windows bots

Original issue's description:
> setConfig -> setInfo
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14978

R=robertphillips@google.com, reed@google.com
TBR=reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: epoger@google.com

Review URL: https://codereview.chromium.org/302053002

git-svn-id: http://skia.googlecode.com/svn/trunk@14979 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 21:10:32 +00:00
commit-bot@chromium.org
986d681f3e setConfig -> setInfo
BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/308683005

git-svn-id: http://skia.googlecode.com/svn/trunk@14978 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 20:47:53 +00:00
reed@google.com
5744bbee6f move SkImageGenerator.cpp from src/images to src/core
git-svn-id: http://skia.googlecode.com/svn/trunk@14973 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 18:47:06 +00:00
commit-bot@chromium.org
ad854bf9c0 Add testing for Rectanizer-derived classes
This in preparation for expanding the Rectanizer API for removing rects and adding a new derived class

R=jvanverth@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/304313002

git-svn-id: http://skia.googlecode.com/svn/trunk@14972 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 18:46:38 +00:00
commit-bot@chromium.org
ff33677ea4 add SK_SUPPORT_LEGACY_INSTALLPIXELSPARAMS
TBR=
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/309543002

git-svn-id: http://skia.googlecode.com/svn/trunk@14968 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 17:28:11 +00:00
commit-bot@chromium.org
37c772ae2d Reland https://codereview.chromium.org/286903025
BUG=skia:
R=bensong@google.com, epoger@google.com

Author: kelvinly@google.com

Review URL: https://codereview.chromium.org/304613002

git-svn-id: http://skia.googlecode.com/svn/trunk@14966 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 17:10:24 +00:00
djsollen@google.com
6ee7a0903f cleanup gyp common_variables
R=bungeman@google.com

Review URL: https://codereview.chromium.org/301173002

git-svn-id: http://skia.googlecode.com/svn/trunk@14965 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 17:00:28 +00:00
commit-bot@chromium.org
00f8d6c75d Revert "Revert of add colortable support to imagegenerator (https://codereview.chromium.org/304443003/)"
Fix is to add colortable param to installPixels()

This reverts commit 924205aaf2.

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/300263005

git-svn-id: http://skia.googlecode.com/svn/trunk@14958 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 15:57:20 +00:00
commit-bot@chromium.org
e3c400f1bd Set the default discardable pool size for Android framework.
BUG=skia:2389
R=halcanary@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/303893002

git-svn-id: http://skia.googlecode.com/svn/trunk@14939 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-28 21:44:05 +00:00
commit-bot@chromium.org
a32260db15 add flag to disable changes to image scaling to avoid breaking every single
layout test on blink all at once.

BUG=
R=epoger@google.com
TBR=epoger
NOTRY=True
NOTREECHECKS=True

Author: humper@google.com

Review URL: https://codereview.chromium.org/298133008

git-svn-id: http://skia.googlecode.com/svn/trunk@14931 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-28 19:52:54 +00:00
commit-bot@chromium.org
f449156bd0 Make image scaling have floating point scales. Third attempt to land this
due to some struggles with the CQ.  Original CL here:

https://codereview.chromium.org/298243003/

BUG=
R=bsalomon@google.com, epoger@google.com
TBR=bsalomon, epoger

Author: humper@google.com

Review URL: https://codereview.chromium.org/300113008

git-svn-id: http://skia.googlecode.com/svn/trunk@14920 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-28 17:30:02 +00:00
commit-bot@chromium.org
924205aaf2 Revert of add colortable support to imagegenerator (https://codereview.chromium.org/304443003/)
Reason for revert:
failing tests

Original issue's description:
> add colortable support to imagegenerator
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14916

R=halcanary@google.com, scroggo@google.com
TBR=halcanary@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/300873007

git-svn-id: http://skia.googlecode.com/svn/trunk@14917 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-28 16:16:08 +00:00
commit-bot@chromium.org
b263985850 add colortable support to imagegenerator
BUG=skia:
R=halcanary@google.com, scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/304443003

git-svn-id: http://skia.googlecode.com/svn/trunk@14916 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-28 16:01:55 +00:00
commit-bot@chromium.org
293a4b367a Revert of PictureBenchmark JSON logging (https://codereview.chromium.org/286903025/)
Reason for revert:
Broke some Windows builds; see http://skbug.com/2609 ('certain Windows Build-* bots failing since r14905').

Before re-landing with a fix, please send to some of the trybots that failed the first time.

Original issue's description:
> Add JSON logging support to bench_pictures by adding a PictureResultsWriter class (in tools/PictureResultsWriter.h) to process logging information, using a very similar style as bench/ResultsWriter.h
>
> JSON format described in code, above PictureJSONResultsWriter class
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14906

R=bensong@google.com, jcgregorio@google.com, kelvinly@google.com
TBR=bensong@google.com, jcgregorio@google.com, kelvinly@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2609

Author: epoger@google.com

Review URL: https://codereview.chromium.org/306483010

git-svn-id: http://skia.googlecode.com/svn/trunk@14910 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 21:51:38 +00:00
commit-bot@chromium.org
466f5f3e44 remove SkBitmap::asImageInfo
BUG=skia:
R=scroggo@google.com, halcanary@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/305483005

git-svn-id: http://skia.googlecode.com/svn/trunk@14909 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 21:30:37 +00:00
epoger@google.com
f3b1eb4ea2 Manual SVN revert of https://code.google.com/p/skia/source/detail?r=14905
git-svn-id: http://skia.googlecode.com/svn/trunk@14907 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 21:12:42 +00:00
commit-bot@chromium.org
3089004cc8 Add JSON logging support to bench_pictures by adding a PictureResultsWriter class (in tools/PictureResultsWriter.h) to process logging information, using a very similar style as bench/ResultsWriter.h
JSON format described in code, above PictureJSONResultsWriter class

BUG=skia:
R=bensong@google.com, jcgregorio@google.com

Author: kelvinly@google.com

Review URL: https://codereview.chromium.org/286903025

git-svn-id: http://skia.googlecode.com/svn/trunk@14906 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 20:57:44 +00:00
commit-bot@chromium.org
44f41293ac floating point scale factors for images
New version of https://codereview.chromium.org/298243003/ made to deal with binary file being lost.

BUG=
TBR=bsalomon
NOTRY=true

Author: humper@google.com

Review URL: https://codereview.chromium.org/307553005

git-svn-id: http://skia.googlecode.com/svn/trunk@14905 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 20:54:04 +00:00
commit-bot@chromium.org
64f6d15451 Use SkAtomics_sync on Android
Every doc I've found about using Android's atomics says, "stop".

"* A handful of basic atomic operations.  The appropriate pthread
 * functions should be used instead of these whenever possible."

"... we recommend stopping from using these functions entirely. Very fortunately, GCC provides handy intrinsics functions that work with very reasonable performance and always provide a full barrier."

As far as I can tell, there's no code generation change here: both the __sync atomics and the android_ atomics use full memory barriers.  (And now with this all unified, it'll be easier to get the real wins by switching everything to __atomic atomics, which are like __sync atomics but allow control over memory barriers.)

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/305593002

git-svn-id: http://skia.googlecode.com/svn/trunk@14896 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 15:55:35 +00:00
commit-bot@chromium.org
abf4189f34 Drop support for non-atomic non-mutex platforms.
(Clients can still provide these themselves if they really want.)

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/295373005

git-svn-id: http://skia.googlecode.com/svn/trunk@14894 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 15:16:37 +00:00
commit-bot@chromium.org
29239a0f4b Move SkDecodingImageGenerator.h to include/
This will allow Android to access it and remove SkImageRef.

Depends on https://codereview.chromium.org/293283002/

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/228613003

git-svn-id: http://skia.googlecode.com/svn/trunk@14891 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 14:59:47 +00:00
commit-bot@chromium.org
53c63a5136 remove SK_SUPPORT_LEGACY_BUILDMIPMAP
TBR=scroggo

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/293393007

git-svn-id: http://skia.googlecode.com/svn/trunk@14885 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 00:23:36 +00:00
commit-bot@chromium.org
55e8f3baee remove bit rotted gyp from most
BUG=skia:2597
R=epoger@google.com
TBR=epoger
NOTRY=true

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/297823004

git-svn-id: http://skia.googlecode.com/svn/trunk@14857 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 20:09:05 +00:00
commit-bot@chromium.org
9e34473d73 remove bit rot test gyp
BUG=skia:2597
R=epoger@google.com
TBR=epoger
NOTRY=true

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/296053016

git-svn-id: http://skia.googlecode.com/svn/trunk@14856 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 19:58:22 +00:00
robertphillips@google.com
8cf81e0f4f Simple PKM image decoder.
https://codereview.chromium.org/292663011/



git-svn-id: http://skia.googlecode.com/svn/trunk@14852 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 18:40:29 +00:00
commit-bot@chromium.org
ab08437e39 Revert "Temporarily disable NEON on Android framework builds."
R=scroggo@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/294183002

git-svn-id: http://skia.googlecode.com/svn/trunk@14844 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 13:42:34 +00:00
commit-bot@chromium.org
83f23d87f1 Remove unused (by clients) SkUnitMapper
This reverts commit 874423a81b5bc2541c7397e6ab00d5e7c9fdaf98.

TBR=scroggo

Author: reed@google.com

Review URL: https://codereview.chromium.org/288313009

git-svn-id: http://skia.googlecode.com/svn/trunk@14842 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 12:27:41 +00:00
commit-bot@chromium.org
3339ac54a5 Revert of Remove unused (by clients) SkUnitMapper (https://codereview.chromium.org/283273002/) (https://codereview.chromium.org/288343009/)
Reason for revert:
required blink change failed to land

Original issue's description:
> Remove unused (by clients) SkUnitMapper (https://codereview.chromium.org/283273002/)
>
> This reverts commit dd50c83b5b34dab3a077741861b50ed1f2bc6b8f.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14830

R=scroggo@google.com, reed@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/296823008

git-svn-id: http://skia.googlecode.com/svn/trunk@14838 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-22 02:55:59 +00:00
commit-bot@chromium.org
4b8f802255 Remove unused (by clients) SkUnitMapper (https://codereview.chromium.org/283273002/)
This reverts commit dd50c83b5b34dab3a077741861b50ed1f2bc6b8f.

BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/288343009

git-svn-id: http://skia.googlecode.com/svn/trunk@14830 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-21 19:56:46 +00:00
commit-bot@chromium.org
815d3600e9 Remove -mfpmath=sse for clang, which does it automatically and sometimes is annoyed by it.
BUG=skia:

NOTREECHECKS=true
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/296793003

git-svn-id: http://skia.googlecode.com/svn/trunk@14812 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 19:42:03 +00:00
commit-bot@chromium.org
6a106ce251 SSE2 everywhere.
As of M35, Chrome will require SSE2 on Linux (it already did on Windows, and
requires SSSE3 on Macs).  Android already requires SSE2 for x86 chips.

This effectively just forces it on for 32-bit Linux builds; everyone else already had it.

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=14800

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/294963002

git-svn-id: http://skia.googlecode.com/svn/trunk@14811 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 19:02:55 +00:00
commit-bot@chromium.org
6379129229 Revert of SSE2 everywhere. (https://codereview.chromium.org/294963002/)
Reason for revert:
Making GM run fewer tests than expected?

Original issue's description:
> SSE2 everywhere.
>
> As of M35, Chrome will require SSE2 on Linux (it already did on Windows, and
> requires SSSE3 on Macs).  Android already requires SSE2 for x86 chips.
>
> This effectively just forces it on for 32-bit Linux builds; everyone else already had it.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14800

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

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/282093015

git-svn-id: http://skia.googlecode.com/svn/trunk@14803 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 15:27:35 +00:00
commit-bot@chromium.org
3056bdd236 Since we're only using it on Linux now, just require poppler as a system dependency.
The Ubuntu package needed is libpoppler-cpp-dev.

iconv and fontconfig were only used as Poppler dependencies.  bson_c is also unused.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/294683003

git-svn-id: http://skia.googlecode.com/svn/trunk@14802 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 15:07:53 +00:00
commit-bot@chromium.org
28f070d2a4 SSE2 everywhere.
As of M35, Chrome will require SSE2 on Linux (it already did on Windows, and
requires SSSE3 on Macs).  Android already requires SSE2 for x86 chips.

This effectively just forces it on for 32-bit Linux builds; everyone else already had it.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/294963002

git-svn-id: http://skia.googlecode.com/svn/trunk@14800 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 14:54:09 +00:00
commit-bot@chromium.org
c4e416ce49 Add Memcpy32 bench.
This compares 32-bit copies using memcpy, autovectorization, and when SSE2 is
available, aligned and unaligned SSE2.

Running this on my desktop (Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz), I see
all four perform essentially the same, except Clang's autovectorization looks
 a little better than GCC's.  memcpy is calling libc 2.19's __memcpy_sse2_unaligned.


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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/290533002

git-svn-id: http://skia.googlecode.com/svn/trunk@14799 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 14:54:04 +00:00
commit-bot@chromium.org
941ff78d79 Remove legacy constructor for blur draw looper.
Now that Android no longer uses the constructor, remove it, along
with the flag.

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/299683002

git-svn-id: http://skia.googlecode.com/svn/trunk@14797 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 14:53:32 +00:00
commit-bot@chromium.org
628ed0b220 Add Dashing gpu effect for simple dashed lines
BUG=skia:
R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/274673004

git-svn-id: http://skia.googlecode.com/svn/trunk@14775 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-19 14:32:49 +00:00
commit-bot@chromium.org
120c99993e Generate Android.mk for DM.
ifdef out code that won't build where we don't have jsoncpp.

Include ctype instead of string.h for tolower.

Depends on https://codereview.chromium.org/282053002/

BUG=skia:2447
R=mtklein@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/290603002

git-svn-id: http://skia.googlecode.com/svn/trunk@14768 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-16 18:11:51 +00:00
commit-bot@chromium.org
25c1066e4d Generate gm/Android.mk, minus JSON.
When running gyp_to_android.py, generate the makefile for gm.

For now, remove json functionality and do not depend on json. This
allows us to build and run until solving skbug.com/2448.

gm/gm_expectations.cpp:
gm/gm_expectations.h:
gm/gmmain.cpp:
Remove all json functionality when SK_BUILD_JSON_WRITER is not defined.
This flag is not defined when SK_BUILD_FOR_ANDROID is defined.

gyp/gm.gyp:
Depend on skia and cutils.

platform_tools/android/bin/gyp_to_android.py:
Generate gm/Android.mk.

platform_tools/android/gyp_gen/makefile_writer.py:
Build gm/Android.mk when building external/skia.

Depends on https://codereview.chromium.org/282053002/

BUG=skia:2447
BUG=skia:2448
R=epoger@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/281303003

git-svn-id: http://skia.googlecode.com/svn/trunk@14767 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-16 17:56:43 +00:00
commit-bot@chromium.org
684b3d0e3c Disable poppler on Windows since it no longer compiles in VS2013
R=borenet@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/285293008

git-svn-id: http://skia.googlecode.com/svn/trunk@14764 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-16 16:35:48 +00:00
commit-bot@chromium.org
e2b193ca5c Revert of remove unused (by clients) SkUnitMapper (https://codereview.chromium.org/283273002/)
Reason for revert:
does not address all legacy callsites in chrome.

e.g.

[13:45:32.091872] ../../ui/native_theme/native_theme_base.cc:608:76: error: no matching function for call to ‘SkGradientShader::CreateLinear(SkPoint [3], SkColor [3], NULL, int, SkShader::TileMode, NULL)’
[13:45:32.091919]            gradient_bounds, colors, NULL, 3, SkShader::kClamp_TileMode, NULL));


Original issue's description:
> remove unused (by clients) SkUnitMapper
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14761

R=robertphillips@google.com, scroggo@google.com, george@mozilla.com
TBR=george@mozilla.com, robertphillips@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/287063009

git-svn-id: http://skia.googlecode.com/svn/trunk@14763 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-16 13:49:08 +00:00
commit-bot@chromium.org
ee0cac336c remove unused (by clients) SkUnitMapper
BUG=skia:
R=robertphillips@google.com, scroggo@google.com, george@mozilla.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/283273002

git-svn-id: http://skia.googlecode.com/svn/trunk@14761 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-16 13:35:01 +00:00
commit-bot@chromium.org
61744ec1d2 Generate bench/Android.mk from gyp.
For now, remove json functionality and do not depend on json. This
allows us to build and run until solving skbug.com/2448.

bench/DeferredSurfaceCopyBench.cpp:
Include GrRenderTarget last, so SK_SUPPORT_GPU will be set properly.

bench/ResultsWriter.h:
bench/benchmain.cpp:
Remove JSONResultsWriter when SK_BUILD_JSON_WRITER is not defined,
which is the case for the Android framework build.

gyp/bench.gyp:
Depend on skia and cutils (for android_atomic_inc etc).

gyp/common_conditions.gypi:
Define SK_BUILD_JSON_WRITER when skia_build_json_writer is set.

gyp/common_variables.gypi:
Add a flag for skia_build_json_writer, and set it only when
skia_android_framework is not set.

gyp/jsoncpp.gyp:
Do not build jsoncpp when skia_build_json_writer is not defined.
include/utils/SkJSONCPP.h:
Do not include json headers when SK_BUILD_JSON_WRITER is not defined.

platform_tools/android/bin/gyp_to_android.py:
Generate bench/Android.mk.

platform_tools/android/gyp_gen/gypd_parser.py:
Skip dest_dir when checking for include_dirs.

platform_tools/android/gyp_gen/makefile_writer.py:
Build bench/Android.mk when building external/skia.

platform_tools/android/gyp_gen/tool_makefile_writer.py:
Add a parameter for putting the binary into /data/local/tmp.

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/282053002

git-svn-id: http://skia.googlecode.com/svn/trunk@14760 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-16 13:15:41 +00:00
commit-bot@chromium.org
85fd193223 Factor out DumpRecord method from dump_record tool for later use
R=mtklein@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/282233003

git-svn-id: http://skia.googlecode.com/svn/trunk@14751 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-15 16:10:37 +00:00
commit-bot@chromium.org
90b5a2a653 DM: Add --skps.
This does render_pictures, plus checks SkRecord optimizations.

Disable an SkRecord optimization that draws several bot SKPs wrong.  (To be investigated.)

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/270543004

git-svn-id: http://skia.googlecode.com/svn/trunk@14739 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-14 17:55:32 +00:00
commit-bot@chromium.org
ddb9331443 remove reference to (deleted) SkKernel33MaskFilter
BUG=skia:
R=caryclark@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/281163002

git-svn-id: http://skia.googlecode.com/svn/trunk@14738 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-14 17:42:42 +00:00
commit-bot@chromium.org
92cea277d7 Remove legacy SkLayerRasterizer flag for Android.
Android's uses of SkLayerRasterizer have been cleaned up and no longer require
the legacy API. Remove the flag for Android.
We still have to keep the legacy API around until Mozilla have cleaned up their
uses.

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

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/279383006

git-svn-id: http://skia.googlecode.com/svn/trunk@14710 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-13 14:47:17 +00:00
djsollen@google.com
7e9fedade8 Fix the android framework build as it still uses mutable local matrices.
R=reed@google.com

Review URL: https://codereview.chromium.org/284663004

git-svn-id: http://skia.googlecode.com/svn/trunk@14706 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-13 13:35:04 +00:00
commit-bot@chromium.org
b3c836b787 add SK_SUPPORT_LEGACY_SHADER_LOCALMATRIX for chrome
TBR=borenet@google.com
NOTRY=True

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/286563004

git-svn-id: http://skia.googlecode.com/svn/trunk@14704 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-13 00:43:44 +00:00
commit-bot@chromium.org
5b8d047252 Remove SK_SUPPORT_LEGACY_PUBLICEFFECTCONSTRUCTORS flag from chromium_defines.
Chrome/Blink doesn't use any of the legacy methods behind this flag any more.

BUG=skia:2187

Committed: http://code.google.com/p/skia/source/detail?r=14651

R=reed@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/265973002

git-svn-id: http://skia.googlecode.com/svn/trunk@14692 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-12 14:12:38 +00:00
commit-bot@chromium.org
e003aecb30 remove unused Kernel33MaskFilter
R=robertphillips@google.com
TBR=robertphilips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/280233002

git-svn-id: http://skia.googlecode.com/svn/trunk@14691 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-12 13:35:55 +00:00
reed@google.com
68867b3db2 Revert "remove SK_SUPPORT_LEGACY_BUILDMIPMAP"
This reverts commit 9acd04797101990af23f5c374b7dfcbaac12fd2b.

git-svn-id: http://skia.googlecode.com/svn/trunk@14685 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 20:06:57 +00:00
commit-bot@chromium.org
259ea9a073 remove SK_SUPPORT_LEGACY_BUILDMIPMAP
TBR=djsollen@google.com
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/271253002

git-svn-id: http://skia.googlecode.com/svn/trunk@14684 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 19:54:42 +00:00
commit-bot@chromium.org
27f6b0d013 Add timing to dump_record.
Prints microsecond timing for each command in the left-hand column:

optimized flat/http___mobile_news_sandbox_google_com_news_pt0_scroll_layer_7.skp
   4.0   1 Save
2075.0   2      DrawRect
 104.0   3      BoundedDrawPosTextH
 135.4   4      DrawRect
   9.4   5      DrawRect
   5.6   6      DrawRect
   8.2   7      DrawRect
   6.8   8      DrawRect
...

(I'm sure Rietveld will just mangle the crap out of that.  It's helpfully right-aligned.)

To do this, I made Draw from SkRecordDraw Skia-public as SkRecords::Draw,
and time it command-by-command.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/272723007

git-svn-id: http://skia.googlecode.com/svn/trunk@14672 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 14:59:29 +00:00
bungeman@google.com
4d868b0285 Add missing sfnt header files to gyp.
This makes finding these files easier in IDEs.


git-svn-id: http://skia.googlecode.com/svn/trunk@14666 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 14:08:28 +00:00
commit-bot@chromium.org
90c0fbd349 reland "extract some common code from PictureRenderer"
re-lands https://codereview.chromium.org/273703006/

NOTRY=True
R=bungeman@google.com, djsollen@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/278633002

git-svn-id: http://skia.googlecode.com/svn/trunk@14662 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 03:18:41 +00:00
commit-bot@chromium.org
5e674b2313 Revert of Remove SK_SUPPORT_LEGACY_PUBLICEFFECTCONSTRUCTORS flag from chromium_defines. (https://codereview.chromium.org/265973002/)
Reason for revert:
This is breaking compilation of cc_unittests in Chrome

Original issue's description:
> Remove SK_SUPPORT_LEGACY_PUBLICEFFECTCONSTRUCTORS flag from chromium_defines.
>
> Chrome/Blink doesn't use any of the legacy methods behind this flag any more.
>
> BUG=skia:2187
>
> Committed: http://code.google.com/p/skia/source/detail?r=14651

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/275713002

git-svn-id: http://skia.googlecode.com/svn/trunk@14660 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 00:05:52 +00:00
bungeman@google.com
daeec365ff Remove non-existent header file from Android opts.
R=djsollen@google.com

Review URL: https://codereview.chromium.org/274793004

git-svn-id: http://skia.googlecode.com/svn/trunk@14657 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 19:41:48 +00:00
commit-bot@chromium.org
54f98fc215 Remove SK_SUPPORT_LEGACY_PUBLICEFFECTCONSTRUCTORS flag from chromium_defines.
Chrome/Blink doesn't use any of the legacy methods behind this flag any more.

BUG=skia:2187
R=reed@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/265973002

git-svn-id: http://skia.googlecode.com/svn/trunk@14651 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 18:13:15 +00:00
commit-bot@chromium.org
de3ad9e220 Revert of extract some common code from PictureRenderer (https://codereview.chromium.org/273703006/)
Reason for revert:
breaking the android debug builds.  It seems to be the result of android using shared libs and not lumping everything into one big static lib or executable. So we have more than one copy of SkString which is the root of the issue.

Original issue's description:
> extract some common code from PictureRenderer
>
> Committed: http://code.google.com/p/skia/source/detail?r=14638

R=borenet@google.com, epoger@google.com
TBR=borenet@google.com, epoger@google.com
NOTREECHECKS=true
NOTRY=true

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/274463004

git-svn-id: http://skia.googlecode.com/svn/trunk@14649 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 16:23:56 +00:00
commit-bot@chromium.org
199cf69575 Fix Moz2D build
BUG=skia:2221
R=george@mozilla.com, reed@google.com

Author: borenet@google.com

Review URL: https://codereview.chromium.org/277593003

git-svn-id: http://skia.googlecode.com/svn/trunk@14647 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 15:29:57 +00:00
commit-bot@chromium.org
ee18f2a3c9 extract some common code from PictureRenderer
R=borenet@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/273703006

git-svn-id: http://skia.googlecode.com/svn/trunk@14638 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 14:48:44 +00:00
commit-bot@chromium.org
8fae213590 add localmatrix-shader
BUG=skia:
R=scroggo@google.com, dominikg@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/272593002

git-svn-id: http://skia.googlecode.com/svn/trunk@14633 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 22:26:37 +00:00
reed@google.com
a8e52df6f3 remove SK_SUPPORT_LEGACY_BLURMASKFILTER_STYLE
git-svn-id: http://skia.googlecode.com/svn/trunk@14629 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 20:54:58 +00:00
commit-bot@chromium.org
50ca12be56 Statically initialize those zero-size singletons.
This way GCC/Clang don't generate the magic static code to call the
pointless T::T() once in a threadsafe way.  = {} is plenty initialized.

BUG=skia:2378

Committed: http://code.google.com/p/skia/source/detail?r=14623

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/270353003

git-svn-id: http://skia.googlecode.com/svn/trunk@14626 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 19:56:27 +00:00
commit-bot@chromium.org
d53b22754d New GM for testing circle blur optimization
BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/276453002

git-svn-id: http://skia.googlecode.com/svn/trunk@14621 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 17:50:03 +00:00
commit-bot@chromium.org
2db7fe7d3b When solving the cubic line intersection directly fails, use binary search as a fallback.
The cubic line intersection math empirically works 99.99% of the time (fails 3100 out of 1B random tests) but when it fails, an intersection may be missed altogether.

The binary search is may not find a solution if the cubic line failed to find any solutions at all, but so far that case hasn't arisen.

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

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/266063003

git-svn-id: http://skia.googlecode.com/svn/trunk@14614 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 15:31:40 +00:00
commit-bot@chromium.org
6e8f64cc91 Disallow Android from calling getTotalClip.
Remove the define that lets the function live on.

R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/268333002

git-svn-id: http://skia.googlecode.com/svn/trunk@14612 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 15:08:48 +00:00
commit-bot@chromium.org
eaca36b657 remove dead mipmap code from SkBitmap
BUG=skia:
R=fmalita@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/271693002

git-svn-id: http://skia.googlecode.com/svn/trunk@14611 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 15:05:34 +00:00
commit-bot@chromium.org
e9d8ef5cfd Revert "remove unneeded SK_SUPPORT_LEGACY_BLURMASKFILTER_STYLE"
This reverts commit 95b03ce599.

NOTRY=True
TBR=fmalita@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/274513002

git-svn-id: http://skia.googlecode.com/svn/trunk@14606 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 03:57:56 +00:00
reed@google.com
95b03ce599 remove unneeded SK_SUPPORT_LEGACY_BLURMASKFILTER_STYLE
git-svn-id: http://skia.googlecode.com/svn/trunk@14601 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-06 21:00:01 +00:00
djsollen@google.com
901c43c26f Temporarily disable NEON on Android framework builds.
The GCC 4.8 compiler has an AARCH64 bug that generated non-PIC output
that fails to link.

R=scroggo@google.com

Review URL: https://codereview.chromium.org/266883011

git-svn-id: http://skia.googlecode.com/svn/trunk@14597 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-06 19:47:07 +00:00
commit-bot@chromium.org
545a21a714 Add dump_record to make inspecting before/after SkRecordOptimize easy.
E.g.
dump_record -r http___groupcloned_com_test_plain_list_animation_simple_html_layer_109.skp

 0 Save
 1 	DrawRect
 2 	DrawRect
 3 	DrawRect
 4 	DrawRect
 5 	Save
 6 		ClipRect
 7 	Restore
 8 	Save
 9 		ClipRect
10 	Restore
11 Restore

dump_record -O -r http___groupcloned_com_test_plain_list_animation_simple_html_layer_109.skp
 0 Save
 1 	DrawRect
 2 	DrawRect
 3 	DrawRect
 4 	DrawRect
 5 	NoOp
 6 	NoOp
 7 	NoOp
 8 	NoOp
 9 	NoOp
10 	NoOp
11 Restore

(Reitveld sadly eats my kickass indentation.)

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/265983007

git-svn-id: http://skia.googlecode.com/svn/trunk@14596 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-06 19:45:18 +00:00
commit-bot@chromium.org
73fffeb83a Add pattern matchers for SkRecord
This is a mid-level library for finding patterns of commands in an SkRecord.  At the API level, it's a bit regex inspired.  Some examples:
 - Pattern1<Is<DrawRect>> matches a single DrawRect

 - Pattern1<Star<Is<DrawRect>>> matches 0 or more DrawRects

 - Pattern2<Is<ClipRect>, Is<DrawRect>> matches a single clip rect followed by a single draw rect

  - Pattern3<Is<Save>, Star<IsDraw>, Is<Restore>> matches a single Save, followed by any number of Draws, followed by Restore

 - Pattern1<Or<Is<DrawRect>, Is<ClipRect>>> matches a DrawRect or a ClipRect

 - Pattern1<Not<Is<ClipRect>>> matches a command that's notClipRect.

Once you have a pattern, you can call .search() on it to step through ranges of matching commands.  This means patterns can replace most of the custom iteration logic for optimization passes: the generic pattern searching steps through all the optimization candidates, which optimization-specific code further inspects and mutates.

SkRecordTraits is now unused.  Bye bye!

Generated code and performance of SkRecordOpts is very similar to what it was before.  (I had to use SK_ALWAYS_INLINE in a few places to make this so.)

BUG=skia:2378
R=fmalita@chromium.org, bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/263063002

git-svn-id: http://skia.googlecode.com/svn/trunk@14582 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-05 21:59:52 +00:00
commit-bot@chromium.org
089a780c33 Split GrResource into GrCacheable/GrGpuObject
Before this change, an object needed to inherit from GrResource (and
thus be a GPU object) in order to live in the GrResourceCache. That
was a problem for caching items that weren't GPU objects themselves,
but owned GPU objects.

This change splits GrResource into two classes:

  1. GrCacheable: The base class for objects that can live in the
     GrResourceCache.

  2. GrGpuObject, which inherits from GrCacheable: The base class for
     objects that get tracked by GrGpu.

This change is purely a refactor; there is no change in functionality.

Change-Id: I3e8daeb1f123041f414aa306c1366e959ae9e39e

BUG=skia:
R=bsalomon@google.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/251013002

git-svn-id: http://skia.googlecode.com/svn/trunk@14553 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-02 21:38:22 +00:00
commit-bot@chromium.org
020636350b Remove dead code.
No files reference this file.

R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/255243002

git-svn-id: http://skia.googlecode.com/svn/trunk@14520 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-01 21:03:53 +00:00
commit-bot@chromium.org
1d146d431a Revert of Roll ANGLE. (https://codereview.chromium.org/237173002/)
Reason for revert:
breaking the buildbots (see http://108.170.220.76:10117/builders/Build-Win7-VS2010-x86-Release-ANGLE/builds/3198).

NOTRY=true

Original issue's description:
> Roll ANGLE.
>
> BUG=skia:2272
>
> Committed: http://code.google.com/p/skia/source/detail?r=14243
>
> Committed: http://code.google.com/p/skia/source/detail?r=14509

R=bsalomon@chromium.org, bsalomon@google.com, geofflang@chromium.org, djsollen@google.com, mtklein@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/264733006

git-svn-id: http://skia.googlecode.com/svn/trunk@14517 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-01 20:20:50 +00:00
commit-bot@chromium.org
05b1b53b12 gyp rules for ubsan
BUG=skia:2481
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/258393004

git-svn-id: http://skia.googlecode.com/svn/trunk@14511 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-01 19:29:46 +00:00
commit-bot@chromium.org
1267219c53 Roll ANGLE.
BUG=skia:2272

Committed: http://code.google.com/p/skia/source/detail?r=14243

R=bsalomon@chromium.org, bsalomon@google.com

Author: geofflang@chromium.org

Review URL: https://codereview.chromium.org/237173002

git-svn-id: http://skia.googlecode.com/svn/trunk@14509 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-01 19:22:22 +00:00
commit-bot@chromium.org
725b0822be remove unneeded SK_SUPPORT_LEGACY_PROCXFERMODE
BUG=skia:
R=fmalita@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/267573003

git-svn-id: http://skia.googlecode.com/svn/trunk@14489 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-30 21:34:14 +00:00
commit-bot@chromium.org
4521add17d try /LARGEADDRESSAWARE to give Windows 32-bit builds access to more RAM.
BUG=skia:2478
R=borenet@google.com, robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/258403006

git-svn-id: http://skia.googlecode.com/svn/trunk@14485 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-30 20:47:22 +00:00
commit-bot@chromium.org
6988588cde Eliminate SkPicture-related flags Chromium no longer requires
This was originally reverted in r14349 (Restore SkPicture-related guard flags for Chrome - https://codereview.chromium.org/255543004/) due to Android WebView compile failures. These failures should be fixed in Chromium r267210 (Fixing Chromium Android build's reliance on old SkPicture recording API - https://codereview.chromium.org/251843005/)

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/254333003

git-svn-id: http://skia.googlecode.com/svn/trunk@14471 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-30 15:55:14 +00:00
commit-bot@chromium.org
8c4953c6f1 Cleanup of SSE optimization files.
General cleanup of optimization files for x86/SSEx.
Renamed the opts_check_SSE2.cpp file to _x86, since it's not specific
to SSE2. Commented out the ColorRect32 optimization, since it's
disabled anyway, to make it more visible.
Also fixed a lot of indentation, inclusion guards, spelling,
copyright headers, braces, whitespace, and sorting of includes.

Author: henrik.smiding@intel.com

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

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/264603002

git-svn-id: http://skia.googlecode.com/svn/trunk@14464 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-30 14:58:46 +00:00
commit-bot@chromium.org
a90c680386 Turn on quilt mode in DM.
- Rename TileGrid -> Quilt to avoid the name overload.
  - Tag all failing GMs with kSkipTiled_Flag.

You may be wondering, do any GMs pass?  Yes, some do!  And that trends towards all of them as we increase --quiltTile.

Two GMs only fail in --quilt mode in 565.  Otherwise all GMs which fail are skipped, and those which don't fail aren't. (The 8888 variants of those two GMs are skipped even though they pass.)

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/256373002

git-svn-id: http://skia.googlecode.com/svn/trunk@14457 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-30 13:20:45 +00:00
commit-bot@chromium.org
8dac8b18ee Backfill unit tests for SkRecord
BUG=skia:2378
R=fmalita@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/251133008

git-svn-id: http://skia.googlecode.com/svn/trunk@14455 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-30 13:18:12 +00:00
commit-bot@chromium.org
9add5dc33f Move GrGLInterface function ptr setup into a common function for all OpenGL GrGLInterface factories (but not GLES yet).
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/254713006

git-svn-id: http://skia.googlecode.com/svn/trunk@14444 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-29 20:06:22 +00:00
commit-bot@chromium.org
16348bb421 Remove dependency of views on angle
Just like with http://code.google.com/p/skia/source/detail?r=13618,
listing angle.gyp as a dependency when in the Android tree (i.e.
w/o third_party/externals) causes gyp_to_android.py to fail.

(See http://108.170.220.27:10115/builders/Housekeeper-PerCommit-AndroidRoll/builds/229/steps/Merge/logs/stdio
for example failure.)

Fortunately, views (and views_animated) has no need to depend directly
on angle.

R=bungeman@google.com, bsalomon@google.com, robertphillips@google.com
TBR=bsalomon@google.com

BUG=skia:2447

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/253773004

git-svn-id: http://skia.googlecode.com/svn/trunk@14426 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-29 00:38:39 +00:00
commit-bot@chromium.org
a31eacb22e Refactor SkPictureStateTree::Iterator to avoid use of kClip_SaveFlag.
The current implementation relies on soon-to-be-deprecated
kClip_SaveFlag behavior. Updated to use default save flags
(kMatrixClip_SaveFlag) and stop assuming that the matrix survives
restore() calls.

R=junov@chromium.org, reed@google.com, robertphillips@chromium.org, robertphillips@google.com

Committed: http://code.google.com/p/skia/source/detail?r=14319

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/246893005

git-svn-id: http://skia.googlecode.com/svn/trunk@14421 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 20:17:48 +00:00
commit-bot@chromium.org
e396455d2d move common blur types into central header
BUG=skia:
R=scroggo@google.com, djsollen@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/253833002

git-svn-id: http://skia.googlecode.com/svn/trunk@14411 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 16:25:35 +00:00
commit-bot@chromium.org
2e0c32af05 Start using type traits in src/record instead of macros.
Simplified skip logic by always running clip commands.  No performance difference on bot or silk SKPs.

BUG=skia:2378
R=bungeman@google.com, fmalita@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/258693006

git-svn-id: http://skia.googlecode.com/svn/trunk@14410 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 16:19:45 +00:00
commit-bot@chromium.org
d665685469 Generate tests/Android.mk from gyp
gyp/apptype_console.gypi:
Don't include console app dependencies when building for Android framework.

gyp/tests.gyp:
Add/remove libraries for framework build.

platform_tools/android/bin/android_framework_gyp.py:
Moved to gyp_gen.
clean_up_gypd_files moved to this script.

platform_tools/android/bin/gyp_to_android.py:
Call new function for generating tool makefile.
Set LOCAL_MODULE.

platform_tools/android/gyp_gen/gypd_parser.py:
Support relative paths.

platform_tools/android/gyp_gen/makefile_writer.py:
Factor out helper functions to be used by tool writer.
LOCAL_MODULE is set elsewhere.

platform_tools/android/gyp_gen/tool_makefile_writer.py:
Multipurpose file for writing makefiles for tools. Should be able to use
it mostly unchanged for bench, gm, etc.

platform_tools/android/gyp_gen/vars_dict_lib.py:
Make the comments follow the style guide.
Add set().
Rename __li to __ordered_set

More/update tests:
platform_tools/android/tests/android_framework_gyp_tests.py
platform_tools/android/tests/expectations/Android.mk
platform_tools/android/tests/expectations/tool/Android.mk
platform_tools/android/tests/expectations/write_local_vars_append_arm
platform_tools/android/tests/expectations/write_local_vars_append_foo
platform_tools/android/tests/expectations/write_local_vars_append_no_name
platform_tools/android/tests/expectations/write_local_vars_no_append_arm
platform_tools/android/tests/expectations/write_local_vars_no_append_foo
platform_tools/android/tests/expectations/write_local_vars_no_append_no_name
platform_tools/android/tests/gyp_to_android_tests.py
platform_tools/android/tests/makefile_writer_tests.py
platform_tools/android/tests/ordered_set_tests.py
platform_tools/android/tests/test_variables.py

BUG=skia:2447

May require an update to the bot to remove pyc files.

R=halcanary@google.com, djsollen@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/235883015

git-svn-id: http://skia.googlecode.com/svn/trunk@14408 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 16:00:30 +00:00
commit-bot@chromium.org
8400b23ce6 use BenchTimer, print in µs
BUG=skia:2378
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/257563006

git-svn-id: http://skia.googlecode.com/svn/trunk@14405 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 15:30:02 +00:00
commit-bot@chromium.org
15b29811ca Add pathops and capture stderr so we can get SkDebugf output.
BUG=skia:
R=mtklein@google.com

Author: jcgregorio@google.com

Review URL: https://codereview.chromium.org/252863002

git-svn-id: http://skia.googlecode.com/svn/trunk@14402 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 14:56:32 +00:00
commit-bot@chromium.org
fe78847f12 gpuveto tool
This CL adds a command line tool to report the suitableForGpuRasterization status of a single skp file.

R=bsalomon@google.com, rmistry@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/259663004

git-svn-id: http://skia.googlecode.com/svn/trunk@14393 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 13:19:34 +00:00
commit-bot@chromium.org
8cb1daaa1e fix minor skp-found bugs
remove globals from pathops_unittest

BUG=skia:2460
TBR=mtklein

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/239563004

git-svn-id: http://skia.googlecode.com/svn/trunk@14378 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-25 12:59:11 +00:00
commit-bot@chromium.org
d70fa2013a Deprecate SaveFlags use in the public SkCanvas API.
Because we still have internal users for now (to support the deprecated
mode), this CL introduces an external-only variant of deprecation.

Chromium is no longer using the deprecated methods, but Android may need
to suppress SK_ATTR_EXTERNALLY_DEPRECATED warnings.

R=reed@google.com, robertphillips@google.com, scroggo@google.com, bungeman@google.com, mtklein@google.com

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/246023008

git-svn-id: http://skia.googlecode.com/svn/trunk@14367 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 21:51:58 +00:00
commit-bot@chromium.org
04f03d1fad Add GM that exercises SkCanvas::discard()
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/252443007

git-svn-id: http://skia.googlecode.com/svn/trunk@14365 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 21:03:00 +00:00
robertphillips@google.com
94e2872d48 Restore SkPicture-related guard flags for Chrome
https://codereview.chromium.org/255543004/



git-svn-id: http://skia.googlecode.com/svn/trunk@14349 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 13:59:18 +00:00
commit-bot@chromium.org
e107edb31a Remove 2 SkPicture-related flags Chrome should be able to live without
R=bsalomon@google.com
TBR=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/252403003

git-svn-id: http://skia.googlecode.com/svn/trunk@14347 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 12:51:19 +00:00
commit-bot@chromium.org
40afe0e5f5 Remove guards Chromium no longer needs
Note: Android still needs these guards.

Committed: http://code.google.com/p/skia/source/detail?r=14299

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/246403004

git-svn-id: http://skia.googlecode.com/svn/trunk@14329 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 19:18:03 +00:00
commit-bot@chromium.org
c8379d7f1b Add gpu fast path for two point conical gradients.
Also shader changes should help numerical issues on certain android gpus

BUG=179264
R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/238443006

git-svn-id: http://skia.googlecode.com/svn/trunk@14316 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 20:56:37 +00:00
commit-bot@chromium.org
945ec3a2be Revert of make drawText calls non-virtual, to ease SkFont and TextBlob (https://codereview.chromium.org/243853006/)
Reason for revert:
need to test more the code-path where we don't opt into the new virtuals

Original issue's description:
> make drawText calls non-virtual, to ease SkFont and TextBlob
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14307

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/247983003

git-svn-id: http://skia.googlecode.com/svn/trunk@14314 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 20:07:30 +00:00
commit-bot@chromium.org
d10ec40031 gyp: only include windows *_x64 targets if GYP_GENERATORS includes ninja
BUG=skia:2442
R=caryclark@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/247143003

git-svn-id: http://skia.googlecode.com/svn/trunk@14313 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 20:05:35 +00:00
robertphillips@google.com
6fa0e32705 Reverting Skia r14299 ( Remove guards Chromium no longer needs - https://codereview.chromium.org/246403004)
git-svn-id: http://skia.googlecode.com/svn/trunk@14311 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 19:53:25 +00:00
commit-bot@chromium.org
4325d114a5 make drawText calls non-virtual, to ease SkFont and TextBlob
BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/243853006

git-svn-id: http://skia.googlecode.com/svn/trunk@14307 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 19:03:02 +00:00
commit-bot@chromium.org
e221a7f5c7 Remove guards Chromium no longer needs
Note: Android still needs these guards.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/246403004

git-svn-id: http://skia.googlecode.com/svn/trunk@14299 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 16:26:29 +00:00
commit-bot@chromium.org
aec143824c Add asADash entry point into SkPathEffect to allow extracting Dash info from PathEffects
BUG=skia:
R=bsalomon@google.com, reed@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/212103010

git-svn-id: http://skia.googlecode.com/svn/trunk@14297 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 15:21:18 +00:00
commit-bot@chromium.org
855e88edfa Fixes for SkPictureShader.
Update comment in header to make it more clear that the picture
should be unaltered after creating the shader. We want our shaders
to be immutable, and this supports that.

Make the factory return NULL if the shader would have never drawn
anyway i.e. for a null picture or picture with no width/height.

Addresses comments I brought up in
https://codereview.chromium.org/221923007/#msg16.

BUG=skia:1976
R=reed@google.com, fmalita@chromium.org, robertphillips@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/238253005

git-svn-id: http://skia.googlecode.com/svn/trunk@14288 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 19:33:12 +00:00
commit-bot@chromium.org
4333751843 Add a .gypi to insulate Chrome from refactorings in src/record.
Rather than listing out sources explicitly in skia_library.gypi, I'll add this new .gypi to its includes.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/242733005

git-svn-id: http://skia.googlecode.com/svn/trunk@14282 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 17:08:19 +00:00
commit-bot@chromium.org
ad8ce572f6 anticipate more optimizations by renaming some files and methods
also, call the new SkRecordOptimize in bench_playback

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/243243003

git-svn-id: http://skia.googlecode.com/svn/trunk@14277 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 15:03:36 +00:00
commit-bot@chromium.org
1d0b68c495 Support clip to layer flag on Android framework.
This flag is being transitioned out, but the Android framework
still needs it.

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/243843002

git-svn-id: http://skia.googlecode.com/svn/trunk@14272 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 14:42:38 +00:00
robertphillips@google.com
770963f23f Staging for cleanup of SkPicture-related headers
https://codereview.chromium.org/243173002



git-svn-id: http://skia.googlecode.com/svn/trunk@14258 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-18 18:04:41 +00:00
reed@google.com
8d4dc714da rename SkPaintParts.* to SkPaintPart.*
BUG=skia:
R=caryclark@google.com

Review URL: https://codereview.chromium.org/242943004

git-svn-id: http://skia.googlecode.com/svn/trunk@14255 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-18 15:14:25 +00:00
commit-bot@chromium.org
5fb2ce38b3 Staged removal of SkPicture-derived classes
This CL removes the SkPicture-derived classes (with a flag to keeps clients working). In the process it also lightens the recording factory function so it is no longer ref counted).

The only interesting bits are in SkPicture* and Sk*Picture.*

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/238273012

git-svn-id: http://skia.googlecode.com/svn/trunk@14251 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 23:35:06 +00:00
commit-bot@chromium.org
d24a130c12 add SK_SUPPORT_LEGACY_PROCXFERMODE to skia_for_chromium_defines.gypi
R=reed@google.com
TBR=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/242053002

git-svn-id: http://skia.googlecode.com/svn/trunk@14250 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 23:25:50 +00:00
commit-bot@chromium.org
0b17feaa64 Revert of Roll ANGLE. (https://codereview.chromium.org/237173002/)
Reason for revert:
http://skbug.com/2437

Original issue's description:
> Roll ANGLE.
>
> BUG=skia:2272
>
> Committed: http://code.google.com/p/skia/source/detail?r=14243

R=bsalomon@chromium.org, geofflang@chromium.org
TBR=bsalomon@chromium.org, geofflang@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:2272

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/238863006

git-svn-id: http://skia.googlecode.com/svn/trunk@14248 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 21:31:32 +00:00
commit-bot@chromium.org
cd66af0ae0 Roll ANGLE.
BUG=skia:2272
R=bsalomon@chromium.org, bsalomon@google.com

Author: geofflang@chromium.org

Review URL: https://codereview.chromium.org/237173002

git-svn-id: http://skia.googlecode.com/svn/trunk@14243 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 18:29:06 +00:00
commit-bot@chromium.org
03f2f81054 More flags needed to build Android framework.
R=djsollen@google.com
TBR=djsollen@google.com
NOTREECHECKS=true
NOTRY=true

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/240563005

git-svn-id: http://skia.googlecode.com/svn/trunk@14233 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 23:06:29 +00:00
commit-bot@chromium.org
04f6c4c657 Support picture recording in Android framework.
Fixes master-skia build.

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/240093007

git-svn-id: http://skia.googlecode.com/svn/trunk@14230 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 22:08:32 +00:00
commit-bot@chromium.org
d393b17cf3 Retract SkPicture::kOptimizeForClippedPlayback_RecordingFlag from public API
This CL sets the stage for retracting the SkPicture::kOptimizeForClippedPlayback_RecordingFlag flag
from the public API (more work needs to be done in Blink & Chrome). In the new world the only way
to set this flag (and thus instantiate an SkPicture-derived
class) is by passing a factory to the SkPictureRecorder class. This is to get all clients always using
factories so that we can then change the factory call used (i.e., so the factory just creates a BBH) and
do away with the SkPicture-derived classes.

BUG=skia:2315
R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/239703006

git-svn-id: http://skia.googlecode.com/svn/trunk@14221 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 16:02:10 +00:00
bungeman@google.com
d3fbd34099 Fix size of rotated text with FreeType.
This generalizes and shares the solution found for a similar issue with
GDI. The issue is that the text size is applied early, and the rest of
the transformation late. This allows us to isolate and independently
control the text size from the rest of the transformation.

R=reed@google.com

Review URL: https://codereview.chromium.org/213153006

git-svn-id: http://skia.googlecode.com/svn/trunk@14201 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 15:52:07 +00:00
commit-bot@chromium.org
b17a24fedb SkRecord: turn on cull annotation pass in public API.
Also, switch Skia internal tools over to use the public headers where
possible.  Where it's not, the tools -Isrc/record explicitly now, and
if it's not obvious, note why they don't use SkRecording.h.

BUG=skia:2378
R=reed@google.com, mtklein@google.com, fmalita@chromium.org

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/231853006

git-svn-id: http://skia.googlecode.com/svn/trunk@14191 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 20:33:05 +00:00
commit-bot@chromium.org
4431e7757c Mike R: please sanity check SkPostConfig.h
Mike K: please sanity check Test.cpp and skia_test.cpp

Feel free to look at the rest, but I don't expect any in depth review of path ops innards.

Path Ops first iteration used QuickSort to order segments radiating from an intersection to compute the winding rule.

This revision uses a circular sort instead. Breaking out the circular sort into its own long-lived structure (SkOpAngle) allows doing less work and provides a home for caching additional sorting data.

The circle sort is more stable than the former sort, has a robust ordering and fewer exceptions. It finds unsortable ordering less often. It is less reliant on the initial curve  tangent, using convex hulls instead whenever it can.

Additional debug validation makes sure that the computed structures are self-consistent. A new visualization tool helps verify that the angle ordering is correct.

The 70+M tests pass with this change on Windows, Mac, Linux 32 and Linux 64 in debug and release.

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

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/131103009

git-svn-id: http://skia.googlecode.com/svn/trunk@14183 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 17:08:59 +00:00
commit-bot@chromium.org
f6a5afb66b Remove currently unused code
This code is currently unused and is contrary to the way in which we seem to be moving towards accomplishing this (i.e., device-specific optimization passes).

This is a partial revert of r13704 (First version of bitmap use tracking in SkPictureRecord - https://codereview.chromium.org/187833003/)

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/237013002

git-svn-id: http://skia.googlecode.com/svn/trunk@14179 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 15:02:50 +00:00
commit-bot@chromium.org
94cf9fad38 More removal of duplicate framework defines.
BUG=skia:1975
R=djsollen@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/228343003

git-svn-id: http://skia.googlecode.com/svn/trunk@14174 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 14:53:58 +00:00
commit-bot@chromium.org
8f3cc773c4 Remove duplicate skia_android_framework defines.
BUG=skia:1975
R=djsollen@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/225283022

git-svn-id: http://skia.googlecode.com/svn/trunk@14173 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 14:53:53 +00:00
robertphillips@google.com
84b18c7e3e split SkPictureRecorder out of SkPicture
https://codereview.chromium.org/214953003/



git-svn-id: http://skia.googlecode.com/svn/trunk@14171 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-13 19:09:42 +00:00
commit-bot@chromium.org
cae54f1f21 remove picture-backed surfaces
BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/233943002

git-svn-id: http://skia.googlecode.com/svn/trunk@14159 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 18:34:35 +00:00
commit-bot@chromium.org
28fcae2ec7 Revert of Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/234243002/)
Reason for revert:
Want to reland the original CL.

Original issue's description:
> Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
>
> Reason for revert:
> breaking the Chrome deps roll.
> http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio
>
> Original issue's description:
> > Rename kPMColor_SkColorType to kN32_SkColorType.
> >
> > The new name better represents what this flag means.
> >
> > BUG=skia:2384
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14117
>
> TBR=reed@google.com,scroggo@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14144

R=reed@google.com, bensong@google.com
TBR=bensong@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/235523003

git-svn-id: http://skia.googlecode.com/svn/trunk@14156 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 17:15:40 +00:00
commit-bot@chromium.org
0bd03cf38c remove guard for getTotalClip
TBR=robertphilips@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/235093002

git-svn-id: http://skia.googlecode.com/svn/trunk@14153 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 15:54:06 +00:00
commit-bot@chromium.org
ba73d28bef Add bench_playback, for quick profiling of SKR playback.
It is not completely fair to compare --skr and --noskr numbers.  SKR looks
unfairly good because some optimizations are baked into our SKPs at record
time.  But, at least, by using a kWriteOnly_Mode SkRecorder, we prevent
SkPicturePlayback from compounding that unfairness.  SkRecordDraw must handle
its own playback-time optimizations (quickrejects) on its own.

This code should look suspiciously similar to bench_record.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/233833002

git-svn-id: http://skia.googlecode.com/svn/trunk@14151 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 15:53:39 +00:00
commit-bot@chromium.org
96edc24598 Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
Reason for revert:
Chrome's side of define changes not easy to figure out quickly. Reverting this for DEPS roll for now.

Original issue's description:
> Rename kPMColor_SkColorType to kN32_SkColorType.
>
> The new name better represents what this flag means.
>
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14117

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

Review URL: https://codereview.chromium.org/234833003

git-svn-id: http://skia.googlecode.com/svn/trunk@14149 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 13:47:30 +00:00
djsollen@google.com
968757e17d Disable SK_GAMMA_SRGB on android builds.
R=bungeman@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/229133003

git-svn-id: http://skia.googlecode.com/svn/trunk@14148 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 13:09:21 +00:00
commit-bot@chromium.org
18fd2b923a Add a focused public API for src/record.
BUG=skia:2378
R=reed@google.com, robertphillips@google.com, mtklein@google.com, fmalita@chromium.org

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/233053005

git-svn-id: http://skia.googlecode.com/svn/trunk@14146 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 23:30:59 +00:00
commit-bot@chromium.org
d923288e50 Revert of Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/234243002/)
Reason for revert:
fixes on the chrome side are landing (brettw), keep fingers crossed.

Original issue's description:
> Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
>
> Reason for revert:
> breaking the Chrome deps roll.
> http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio
>
> Original issue's description:
> > Rename kPMColor_SkColorType to kN32_SkColorType.
> >
> > The new name better represents what this flag means.
> >
> > BUG=skia:2384
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14117
>
> TBR=reed@google.com,scroggo@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14144

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

Review URL: https://codereview.chromium.org/233813004

git-svn-id: http://skia.googlecode.com/svn/trunk@14145 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 22:49:20 +00:00
commit-bot@chromium.org
757ebd20ef Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
Reason for revert:
breaking the Chrome deps roll.
http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio

Original issue's description:
> Rename kPMColor_SkColorType to kN32_SkColorType.
>
> The new name better represents what this flag means.
>
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14117

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

Review URL: https://codereview.chromium.org/234243002

git-svn-id: http://skia.googlecode.com/svn/trunk@14144 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 22:36:34 +00:00
commit-bot@chromium.org
6573ce70e6 Create SkLayerRasterizer w/o destroying Builder.
Add a new method to SkLayerRasterizer::Builder that creates a new
SkLayerRasterizer without destroying the Builder. Necessary to
continue to support Android's API.

Also fix a bug where creating a Builder and never calling
detachRasterizer results in not calling the destructor for any SkPaints
in the Builder.

Add tests.

BUG=b/13729784
R=reed@google.com, dominikg@chromium.org

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/233673002

git-svn-id: http://skia.googlecode.com/svn/trunk@14139 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 20:42:53 +00:00
senorblanco@chromium.org
0d64356efd Add a new bench that tests a simple image filter DAG.
This bench exercises a blur filter connected to 5 inputs of the same
merge filter.

R=junov@chromium.org

Review URL: https://codereview.chromium.org/233383002

git-svn-id: http://skia.googlecode.com/svn/trunk@14135 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 16:16:13 +00:00
bensong@google.com
729296f7db revert of 14111 to fix build
git-svn-id: http://skia.googlecode.com/svn/trunk@14128 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 12:46:36 +00:00
commit-bot@chromium.org
d9ce2be6b2 SkRecordDraw: skip draw ops when the clip is empty
- Adds tests for SkRecordDraw's two main features: cull- and clip- based skipping.
   - Adds full SkCanvas semantic mode to SkRecorder, so it can be used as a target for SkRecordDraw.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/231653002

git-svn-id: http://skia.googlecode.com/svn/trunk@14124 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 23:30:28 +00:00
commit-bot@chromium.org
149e9a107c Rename kPMColor_SkColorType to kN32_SkColorType.
The new name better represents what this flag means.

BUG=skia:2384
R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/227433009

git-svn-id: http://skia.googlecode.com/svn/trunk@14117 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 20:45:29 +00:00
commit-bot@chromium.org
6d036c2e47 Initial code for webtry, a web application for allowing users to try out Skia.
Currently running at http://108.170.220.126:8000/

BUG=skia:
R=mtklein@google.com

Author: jcgregorio@google.com

Review URL: https://codereview.chromium.org/228693002

git-svn-id: http://skia.googlecode.com/svn/trunk@14114 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 18:59:44 +00:00
reed@google.com
a2cbced5f7 no more callers of getTotalClip -- except in android
git-svn-id: http://skia.googlecode.com/svn/trunk@14111 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 18:47:28 +00:00
commit-bot@chromium.org
c524e98f1e Xfermode: SSE2 implementation of multiply_modeproc
This patch implements basics for Xfermode SSE optimization. Based on
these basics, SSE2 implementation of multiply_modeproc is provided. SSE2
implementation for other modes will come in future. With this patch
performance of Xfermode_Multiply will improve about 45%. Here are the
data on desktop i7-3770.
before:
Xfermode_Multiply   8888:  cmsecs =     33.30   565:  cmsecs =     45.65
after:
Xfermode_Multiply   8888:  cmsecs =     17.18   565:  cmsecs =     24.87

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=14006

Committed: http://code.google.com/p/skia/source/detail?r=14050

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

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/202903004

git-svn-id: http://skia.googlecode.com/svn/trunk@14107 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 15:43:46 +00:00
commit-bot@chromium.org
479d1ae9b6 Fixes to Android.mk generation for arm64.
Remove warning about no optimizations for arm64 and rebaseline the
associated test.

Exclude _opts_none.cpps when building arm64, to avoid double definitions.

BUG=skia:1975
R=halcanary@google.com, djsollen@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/229393002

git-svn-id: http://skia.googlecode.com/svn/trunk@14104 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 13:34:26 +00:00
commit-bot@chromium.org
506db0b7d2 SkRecord: make culling work if SkRecordAnnotateCullingPairs is called.
- Allow stateful functors; allow visit()/mutate() at a given index; add count().
  - Annotate cull push/pop pairs on the PushCull records.  (tested)
  - Use those annotations to skip ahead in SkRecordDraw.   (not yet tested beyond dm --skr)
  - Make SkRecordDraw a function, move its implementation to a .cpp.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/229523002

git-svn-id: http://skia.googlecode.com/svn/trunk@14101 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 23:31:35 +00:00
commit-bot@chromium.org
b73696262c More SkRecord TODOs:
- add basic test for SkRecorder
  - rejigger GYPs so that the include dir comes along with the dependency

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/227673011

git-svn-id: http://skia.googlecode.com/svn/trunk@14099 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 20:17:26 +00:00
commit-bot@chromium.org
066a28d2c1 Start on some unwritten SkRecord TODOs:
- add SK_OVERRIDE for SkCanvas methods in SkRecorder
  - start on unit tests, here just for SkRecord itself

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/228723003

git-svn-id: http://skia.googlecode.com/svn/trunk@14097 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 17:31:08 +00:00
commit-bot@chromium.org
c5d9bb0f67 Initial picture shader implementation
This CL adds an SkPictureShader class to support SkPicture-based
patterns.

The implementation renders the picture into an SkBitmap tile and then
delegates to SkBitmapProcShader for the actual operation.

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

Committed: http://code.google.com/p/skia/source/detail?r=14085

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/221923007

git-svn-id: http://skia.googlecode.com/svn/trunk@14092 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 15:19:34 +00:00
reed@google.com
43c27586e8 WIP -- SkFont
BUG=skia:
R=bungeman@google.com, fmalita@chromium.org

Review URL: https://codereview.chromium.org/185293018

git-svn-id: http://skia.googlecode.com/svn/trunk@14090 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 15:04:29 +00:00
commit-bot@chromium.org
e6d8be080d Removes deleted files SkBitmapShader* from gyp/core.gypi.
BUG=skia:
NOTRY=true
R=robertphillips@google.com
TBR=robertphillips@google.com

Author: bensong@google.com

Review URL: https://codereview.chromium.org/228513003

git-svn-id: http://skia.googlecode.com/svn/trunk@14088 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 12:24:01 +00:00
commit-bot@chromium.org
8865d09cf8 Revert of Initial picture shader implementation (https://codereview.chromium.org/221923007/)
Reason for revert:
breaking the buildbots. Subsequent CL only addressed CompareGMs but GenerateGMs are also failing.

Original issue's description:
> Initial picture shader implementation
>
> This CL adds an SkPictureShader class to support SkPicture-based
> patterns.
>
> The implementation renders the picture into an SkBitmap tile and then
> delegates to SkBitmapProcShader for the actual operation.
>
> R=reed@google.com,robertphillips@google.com,bsalomon@google.com
>
> Committed: http://code.google.com/p/skia/source/detail?r=14085

R=bsalomon@google.com, reed@google.com, robertphillips@google.com, fmalita@chromium.org
TBR=bsalomon@google.com, fmalita@chromium.org, reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: bensong@google.com

Review URL: https://codereview.chromium.org/227553010

git-svn-id: http://skia.googlecode.com/svn/trunk@14087 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 23:45:31 +00:00
commit-bot@chromium.org
592b2d13c9 Initial picture shader implementation
This CL adds an SkPictureShader class to support SkPicture-based
patterns.

The implementation renders the picture into an SkBitmap tile and then
delegates to SkBitmapProcShader for the actual operation.

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

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/221923007

git-svn-id: http://skia.googlecode.com/svn/trunk@14085 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 23:11:45 +00:00
commit-bot@chromium.org
0d0d620bfd remove SK_SUPPORT_LEGACY_GETCLIPTYPE
after this lands and sticks, we can remove the assocated code from skia

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/216703004

git-svn-id: http://skia.googlecode.com/svn/trunk@14074 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 15:17:37 +00:00
commit-bot@chromium.org
b554440543 Remove SkResizeImageFilter.
Its functionality has been subsumed by SkMatrixImageFilter, and it's no longer
used in Blink.

BUG=skia:
R=bsalomon@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/222923005

git-svn-id: http://skia.googlecode.com/svn/trunk@14073 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 15:11:08 +00:00
commit-bot@chromium.org
ae0054e48a get iOS building again
1) Disable SampleApp.  Seems like it's totally horked?  SkOSFile_iOS.mm is missing about half the functions needed, and SkOSFile_stdio.cpp is double-providing the others.

2) Drop armv6.

3) Switch from putting headers in sources to putting the corresponding directories in includes.

4)  Force cast the type of glShaderSource.  Something to do with GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE?

After all this,
    env CC=clang CXX=clang++ GYP_DEFINES=skia_os=ios make
builds for me.
BUG=skia:2363
R=bsalomon@google.com, epoger@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/226413005

git-svn-id: http://skia.googlecode.com/svn/trunk@14069 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-05 01:13:43 +00:00
commit-bot@chromium.org
848fdb06d4 Updates to Android.mk generation.
These defines were manually added to the last merge.

BUG=skia:1975
R=djsollen@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/226663002

git-svn-id: http://skia.googlecode.com/svn/trunk@14067 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-04 21:19:53 +00:00
commit-bot@chromium.org
25595ed6e9 fix nacl build using ninja
BUG=skia:2366
NOTREECHECKS=True
NOTRY=True
R=robertphillips@google.com
TBR=robertphillips

Author: epoger@google.com

Review URL: https://codereview.chromium.org/225683005

git-svn-id: http://skia.googlecode.com/svn/trunk@14065 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-04 18:16:04 +00:00
commit-bot@chromium.org
77815fd74d Revert of Xfermode: SSE2 implementation of multiply_modeproc (https://codereview.chromium.org/202903004/)
Reason for revert:
It looks like serialization is broken. The serialize and pipe-cross-process tests are failing and turning (at least the Ubuntu12 and Win7) bots red

Original issue's description:
> Xfermode: SSE2 implementation of multiply_modeproc
>
> This patch implements basics for Xfermode SSE optimization. Based on
> these basics, SSE2 implementation of multiply_modeproc is provided. SSE2
> implementation for other modes will come in future. With this patch
> performance of Xfermode_Multiply will improve about 45%. Here are the
> data on desktop i7-3770.
> before:
> Xfermode_Multiply   8888:  cmsecs =     33.30   565:  cmsecs =     45.65
> after:
> Xfermode_Multiply   8888:  cmsecs =     17.18   565:  cmsecs =     24.87
>
> BUG=
>
> Committed: http://code.google.com/p/skia/source/detail?r=14006
>
> Committed: http://code.google.com/p/skia/source/detail?r=14050

R=mtklein@google.com, qiankun.miao@intel.com
TBR=mtklein@google.com, qiankun.miao@intel.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/224253003

git-svn-id: http://skia.googlecode.com/svn/trunk@14053 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 18:53:33 +00:00
commit-bot@chromium.org
c311873927 Xfermode: SSE2 implementation of multiply_modeproc
This patch implements basics for Xfermode SSE optimization. Based on
these basics, SSE2 implementation of multiply_modeproc is provided. SSE2
implementation for other modes will come in future. With this patch
performance of Xfermode_Multiply will improve about 45%. Here are the
data on desktop i7-3770.
before:
Xfermode_Multiply   8888:  cmsecs =     33.30   565:  cmsecs =     45.65
after:
Xfermode_Multiply   8888:  cmsecs =     17.18   565:  cmsecs =     24.87

BUG=

Committed: http://code.google.com/p/skia/source/detail?r=14006

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

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/202903004

git-svn-id: http://skia.googlecode.com/svn/trunk@14050 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 18:26:40 +00:00
commit-bot@chromium.org
aa64fbfd34 Pull Gpu shader out of SkTwoPointConicalGradient into own file
BUG=skia:
R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/222943002

git-svn-id: http://skia.googlecode.com/svn/trunk@14044 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 14:59:19 +00:00
robertphillips@google.com
e930a07562 Add a GrLayerCache to GrContext
https://codereview.chromium.org/217343006/



git-svn-id: http://skia.googlecode.com/svn/trunk@14038 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 00:34:27 +00:00
commit-bot@chromium.org
6f2d4d4679 ARM Skia NEON patches - 35 - First AArch64 support
Aarch64 support

This change contains the necessary modifications to have Skia build and
run properly on an ARMv8 processor in aarch64 execution state.

Here's a list of the changes:

 - add an arm64 target to the build system + SK_CPU_ARM64 flag

 - MatrixTest was failing when built in Release mode. Fused MAC
   instructions were generated which made some intermediate results
   more accurate. As the test relies on result comparison, the more
   precise results when compared to others led to a gap bigger than
   what was tolerated. As I don't know if some actual skia code relies
   on results being comparable, I've disabled fused MAC instruction
   with -ffp-contract=off for arm64.

 - Modify include/core/SkOnce.h to have barriers work.

 - SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS.

 - use existing Xfermode optimisations with modifications that can be
   removed in the future when toolchains are ready. Also save a few
   instructions is two Xfermodes (will apply to ARM too).

 - use existing SkBoxBlur and SkMorphology optimisations.

 - use existing SkBlitMask optimisations

 - use existing BitmapProcState and Convolution optimisations.

Future changes will include:

 - Blitters (only partialy merged upstream)

 - SkUtils (there's little value in sending asm optimisations without
   having them benchmarked on real hardware).

Signed-off-by: Kevin PETIT <kevin.petit@arm.com>

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=13980

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

Author: kevin.petit@arm.com

Review URL: https://codereview.chromium.org/143423004

git-svn-id: http://skia.googlecode.com/svn/trunk@14025 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 15:03:56 +00:00
commit-bot@chromium.org
37eb4e4ed1 Purge SkPurgeableMemoryBlock.
It was an experiment that is no longer used.

R=mtklein@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/219133004

git-svn-id: http://skia.googlecode.com/svn/trunk@14020 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 23:50:53 +00:00
commit-bot@chromium.org
e3ff558a4b SkRecord strawman
Record performance as measured by bench_record (out/Release/bench_record --skr) improves by at least 1.9x, at most 6.7x, arithmetic mean 2.6x, geometric mean 3.0x.  So, good.

Correctness as measured by DM (out/Debug/dm --skr) is ~ok.  One GM (shadertext2) fails because we're assuming all paint effects are immutable, but SkShaders are still mutable.

To do after this CL:
  - measure playback speed
  - catch up feature-wise to SkPicture
  - match today's playback speed


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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/206313003

git-svn-id: http://skia.googlecode.com/svn/trunk@14010 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 16:24:06 +00:00
commit-bot@chromium.org
079d298600 Revert of Xfermode: SSE2 implementation of multiply_modeproc (https://codereview.chromium.org/202903004/)
Reason for revert:
Breaking builds

Original issue's description:
> Xfermode: SSE2 implementation of multiply_modeproc
>
> This patch implements basics for Xfermode SSE optimization. Based on
> these basics, SSE2 implementation of multiply_modeproc is provided. SSE2
> implementation for other modes will come in future. With this patch
> performance of Xfermode_Multiply will improve about 45%. Here are the
> data on desktop i7-3770.
> before:
> Xfermode_Multiply   8888:  cmsecs =     33.30   565:  cmsecs =     45.65
> after:
> Xfermode_Multiply   8888:  cmsecs =     17.18   565:  cmsecs =     24.87
>
> BUG=
>
> Committed: http://code.google.com/p/skia/source/detail?r=14006

R=mtklein@google.com, qiankun.miao@intel.com
TBR=mtklein@google.com, qiankun.miao@intel.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/219243009

git-svn-id: http://skia.googlecode.com/svn/trunk@14007 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 14:17:44 +00:00
commit-bot@chromium.org
25f7455f3a Xfermode: SSE2 implementation of multiply_modeproc
This patch implements basics for Xfermode SSE optimization. Based on
these basics, SSE2 implementation of multiply_modeproc is provided. SSE2
implementation for other modes will come in future. With this patch
performance of Xfermode_Multiply will improve about 45%. Here are the
data on desktop i7-3770.
before:
Xfermode_Multiply   8888:  cmsecs =     33.30   565:  cmsecs =     45.65
after:
Xfermode_Multiply   8888:  cmsecs =     17.18   565:  cmsecs =     24.87

BUG=
R=mtklein@google.com

Author: qiankun.miao@intel.com

Review URL: https://codereview.chromium.org/202903004

git-svn-id: http://skia.googlecode.com/svn/trunk@14006 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 14:01:32 +00:00
epoger@google.com
58d69d8460 change default build (in "make" wrapper) to ninja on all platforms
force-landed from https://codereview.chromium.org/206463007/ ;
the CommitQueue couldn't handle the diff properly for some reason



git-svn-id: http://skia.googlecode.com/svn/trunk@14003 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 07:02:41 +00:00
commit-bot@chromium.org
8ddc26b68c Actually identify required saveLayers in SkGpuDevice::EXPERIMENTAL_drawPicture
NOTRY=true
R=bsalomon@google.com, rmistry@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/212933002

git-svn-id: http://skia.googlecode.com/svn/trunk@13993 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-31 17:55:12 +00:00
commit-bot@chromium.org
d643a90ee2 Revert of ARM Skia NEON patches - 35 - First AArch64 support (https://codereview.chromium.org/143423004/)
Reason for revert:
GYP's failing on most (all?) bots.

Original issue's description:
> ARM Skia NEON patches - 35 - First AArch64 support
>
> Aarch64 support
>
> This change contains the necessary modifications to have Skia build and
> run properly on an ARMv8 processor in aarch64 execution state.
>
> Here's a list of the changes:
>
>  - add an arm64 target to the build system + SK_CPU_ARM64 flag
>
>  - MatrixTest was failing when built in Release mode. Fused MAC
>    instructions were generated which made some intermediate results
>    more accurate. As the test relies on result comparison, the more
>    precise results when compared to others led to a gap bigger than
>    what was tolerated. As I don't know if some actual skia code relies
>    on results being comparable, I've disabled fused MAC instruction
>    with -ffp-contract=off for arm64.
>
>  - Modify include/core/SkOnce.h to have barriers work.
>
>  - SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS.
>
>  - use existing Xfermode optimisations with modifications that can be
>    removed in the future when toolchains are ready. Also save a few
>    instructions is two Xfermodes (will apply to ARM too).
>
>  - use existing SkBoxBlur and SkMorphology optimisations.
>
>  - use existing SkBlitMask optimisations
>
>  - use existing BitmapProcState and Convolution optimisations.
>
> Future changes will include:
>
>  - Blitters (only partialy merged upstream)
>
>  - SkUtils (there's little value in sending asm optimisations without
>    having them benchmarked on real hardware).
>
> Signed-off-by: Kevin PETIT <kevin.petit@arm.com>
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=13980

R=djsollen@google.com, reed@google.com, halcanary@google.com, kevin.petit@arm.com
TBR=djsollen@google.com, halcanary@google.com, kevin.petit@arm.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/216113005

git-svn-id: http://skia.googlecode.com/svn/trunk@13983 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 18:05:29 +00:00
commit-bot@chromium.org
7a0e27577d ARM Skia NEON patches - 35 - First AArch64 support
Aarch64 support

This change contains the necessary modifications to have Skia build and
run properly on an ARMv8 processor in aarch64 execution state.

Here's a list of the changes:

 - add an arm64 target to the build system + SK_CPU_ARM64 flag

 - MatrixTest was failing when built in Release mode. Fused MAC
   instructions were generated which made some intermediate results
   more accurate. As the test relies on result comparison, the more
   precise results when compared to others led to a gap bigger than
   what was tolerated. As I don't know if some actual skia code relies
   on results being comparable, I've disabled fused MAC instruction
   with -ffp-contract=off for arm64.

 - Modify include/core/SkOnce.h to have barriers work.

 - SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS.

 - use existing Xfermode optimisations with modifications that can be
   removed in the future when toolchains are ready. Also save a few
   instructions is two Xfermodes (will apply to ARM too).

 - use existing SkBoxBlur and SkMorphology optimisations.

 - use existing SkBlitMask optimisations

 - use existing BitmapProcState and Convolution optimisations.

Future changes will include:

 - Blitters (only partialy merged upstream)

 - SkUtils (there's little value in sending asm optimisations without
   having them benchmarked on real hardware).

Signed-off-by: Kevin PETIT <kevin.petit@arm.com>

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

Author: kevin.petit@arm.com

Review URL: https://codereview.chromium.org/143423004

git-svn-id: http://skia.googlecode.com/svn/trunk@13980 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 17:56:14 +00:00
commit-bot@chromium.org
16182f74c6 Lazy image decoding to reduce bench_record overhead.
We want bench_record to time recording only, and are willing to accept
some time spent playing back the source pictures only out of necessity.

This lets us skip the JPEG and PNG decoding, which are a pretty fair
chunk of time.  Should mean better record numbers at the same --loops.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/212563009

git-svn-id: http://skia.googlecode.com/svn/trunk@13977 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 16:08:18 +00:00
commit-bot@chromium.org
28361fad10 Add discard API to SkCanvas, plumb it to glDiscardFramebuffer()
BUG=skia:2349
R=robertphillips@google.com, reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/211683002

git-svn-id: http://skia.googlecode.com/svn/trunk@13976 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 16:08:05 +00:00
commit-bot@chromium.org
ba0c5ea90d Updates to Android.mk generation.
Generate SkUserConfig.
Include arm64 as another build flavor.
Add tests.

gyp/common_conditions.gypi:
Add conditions for Android framework. These will get written into the generated SkUserConfig.

include/core/SkUserConfig.h:
Generated version that will ultimately be checked into Android (but not here).

platform_tools/android/bin/gyp_to_android.py:
Generate SkUserConfig.
Add arm64 (note that arm64 is not currently respected by our gyp files, so it results in use _none.cpp for the various opts).
Reset the common defines, which are now passed to the generated SkUserConfig.

platform_tools/android/gyp_gen/generate_user_config.py:
New script to generate SkUserConfig.h.

platform_tools/android/gyp_gen/gypd_parser.py:
Fix a lint error (unused import).

platform_tools/android/gyp_gen/makefile_writer.py:
Append any remaining DEFINES to LOCAL_CFLAGS (previously this was done during parsing).
Add a warning for arm64 (corresponds to downstream Android.mk).

platform_tools/android/gyp_gen/vars_dict_lib.py:
Add OrderedSet.reset().
Add DEFINES to VarsDict.

platform_tools/android/tests/expectations/:
Add and update expectations files.

platform_tools/android/tests/generate_user_config_tests.py:
New test for generate_user_config.py

platform_tools/android/tests/inputs/SkUserConfig.h:
Input to the new test, so we don't have to update the expectations each time the real SkUserConfig.h changes.

platform_tools/android/tests/makefile_writer_tests.py:
Add a way to rebaseline test_write_local_vars, which has changed.
Refactor EXPECTATIONS_DIR and compare_files into a separate file for sharing with generate_user_config_tests.py.

platform_tools/android/tests/utils.py:
Common code for tests.

platform_tools/android/tests/var_dict_tests.py:
Use a for loop to test the new key (DEFINES) and future proof this test to test any new keys in the future.

BUG=skia:1975
R=djsollen@google.com, halcanary@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/198063002

git-svn-id: http://skia.googlecode.com/svn/trunk@13975 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 15:59:04 +00:00
commit-bot@chromium.org
3eedb801e3 Add clip effect for circles
BUG=skia:2181
R=jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/214153002

git-svn-id: http://skia.googlecode.com/svn/trunk@13974 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 15:58:31 +00:00
commit-bot@chromium.org
4784182993 Revert of Implement text rendering with NVPR (https://codereview.chromium.org/196133014/)
Reason for revert:
This probably caused Win8 test bot fail during gm run:

http://108.170.217.252:10117/builders/Test-Win8-ShuttleA-GTX660-x86-Debug/builds/574

I can not identify any errors from the logs, so maybe it hung or something?

Original issue's description:
> 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 large
> chunks of code from GrBitmapTextContext (drawText) and
> GrDistanceFieldTextContext (drawPosText).
>
> 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.
>
> Committed: http://code.google.com/p/skia/source/detail?r=13962

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

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/213123014

git-svn-id: http://skia.googlecode.com/svn/trunk@13963 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-27 14:19:17 +00:00
commit-bot@chromium.org
dcb8ef9e86 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 large
chunks of code from GrBitmapTextContext (drawText) and
GrDistanceFieldTextContext (drawPosText).

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.

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

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/196133014

git-svn-id: http://skia.googlecode.com/svn/trunk@13962 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-27 11:26:10 +00:00
commit-bot@chromium.org
787227d356 Let DM work without a GPU.
Testing:

/m/s/skia (dm) $ d dm; and env GYP_DEFINES=skia_gpu=0 d dm
ninja: Entering directory `out/Debug'
ninja: no work to do.
(294 GMs, 620 benches) x 4 configs, 245 tests
4507 tasks leftUnsupported vertex-color/texture xfer mode.
Unsupported vertex-color/texture xfer mode.
0 tasks left
416.53user 9.86system 0:47.43elapsed 898%CPU (0avgtext+0avgdata
13353376maxresident)k
0inputs+0outputs (0major+3579906minor)pagefaults 0swaps
ninja: Entering directory `out/Debug'
[909/909] LINK dm
(287 GMs, 612 benches) x 4 configs, 227 tests
0 tasks left
365.24user 7.71system 0:14.55elapsed 2562%CPU (0avgtext+0avgdata
14718912maxresident)k
0inputs+0outputs (0major+3328269minor)pagefaults 0swaps

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/213093004

git-svn-id: http://skia.googlecode.com/svn/trunk@13960 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-26 21:26:15 +00:00
commit-bot@chromium.org
3fcab54c7f remove SK_SUPPORT_LEGACY_COMPATIBLEDEVICE_CONFIG
NOTRY=True
TBR=bsalomon

Author: reed@google.com

Review URL: https://codereview.chromium.org/212623003

git-svn-id: http://skia.googlecode.com/svn/trunk@13954 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-26 15:55:50 +00:00
senorblanco@chromium.org
fd0ec2c76a Implement a generic matrix transform image filter.
This will be used in Blink to accommodate matrices that contain
rotation or shearing. This is a generalization of SkResizeImageFilter,
so I've replaced all uses of SkResizeImageFilter in Skia. (It might be
easier to review by diffing it with SkResizeImageFilter, too.)

R=reed@google.com

Review URL: https://codereview.chromium.org/211103006

git-svn-id: http://skia.googlecode.com/svn/trunk@13941 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 17:35:10 +00:00
commit-bot@chromium.org
2a05de0c04 Add Gpu Tracing to Ganesh
BUG=skia:2316
R=bsalomon@google.com, tomhudson@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/184443003

git-svn-id: http://skia.googlecode.com/svn/trunk@13936 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 15:17:32 +00:00
commit-bot@chromium.org
2fe641b9f0 Remove more flags not needed by android framework.
R=djsollen@google.com, reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/184753003

git-svn-id: http://skia.googlecode.com/svn/trunk@13934 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 15:14:18 +00:00
commit-bot@chromium.org
26632630fd Add GM that tests GrTextureDomain and fix bug where kDecal_Mode gets incorrectly ignored.
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/208313017

git-svn-id: http://skia.googlecode.com/svn/trunk@13933 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 15:13:18 +00:00
commit-bot@chromium.org
7b78981b4c gather GM tests which are disabled on Android
BUG=skia:2326
R=borenet@google.com, djsollen@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/208313014

git-svn-id: http://skia.googlecode.com/svn/trunk@13922 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-24 20:07:44 +00:00
reed@google.com
46ee398e3e remove SK_SUPPORT_LEGACY_READPIXELSCONFIG
BUG=skia:

Review URL: https://codereview.chromium.org/209333011

git-svn-id: http://skia.googlecode.com/svn/trunk@13914 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-24 18:07:24 +00:00
commit-bot@chromium.org
7209f939c3 disable imagefilterscropexpand GM test on Android
BUG=skia:2313
NOTREECHECKS=True
NOTRY=True
R=borenet@google.com, senorblanco@google.com, senorblanco@chromium.org

Author: epoger@google.com

Review URL: https://codereview.chromium.org/208813004

git-svn-id: http://skia.googlecode.com/svn/trunk@13903 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-23 23:08:18 +00:00
bungeman@google.com
04c32a857e Fix r13897.
git-svn-id: http://skia.googlecode.com/svn/trunk@13900 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 23:19:10 +00:00
bungeman@google.com
72cf4fcafa A remotable font management interface and DirectWrite implementation.
The introduced SkRemotableFontMgr is a font management interface designed for simple and fast proxy support. SkFontMgr_Indirect bridges a SkRemotableFontMgr and a local SkFontMgr to present a SkFontMgr interface.

This change is to be followed by https://codereview.chromium.org/132113015/ and  https://codereview.chromium.org/206693003 .

R=reed@google.com

Review URL: https://codereview.chromium.org/206683002

git-svn-id: http://skia.googlecode.com/svn/trunk@13897 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 22:48:32 +00:00
bungeman@google.com
95ebd17cf4 Add removeShuffle to SkTArray and add SkTArray tests.
R=reed@google.com

Review URL: https://codereview.chromium.org/208153008

git-svn-id: http://skia.googlecode.com/svn/trunk@13895 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 19:39:02 +00:00
commit-bot@chromium.org
933e65d914 replace old SK_TRACE_EVENT macros with new TRACE_EVENT ones, and then remove them entirely!
BUG=skia:353
R=tomhudson@google.com, epoger@google.com, reed@google.com, egdaniel@google.com, bsalomon@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/196133033

git-svn-id: http://skia.googlecode.com/svn/trunk@13884 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-20 20:00:24 +00:00
commit-bot@chromium.org
af5346a39c Add reg test for http://crbug.com/348821
BUG=348821
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/189373008

git-svn-id: http://skia.googlecode.com/svn/trunk@13852 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-18 17:38:34 +00:00
senorblanco@chromium.org
d9cdff67a4 Fix GPU displacement with expanding crop rects.
Fix GPU displacement with expanding crop rects, and re-enable the
imagefilterscropexpand GM. There were two bugs: the result texture was
being created at input color bitmap size, not the cropped bounds size,
and the matrix in GrContext was not being set to identity before draw.

R=junov@chromium.org

Review URL: https://codereview.chromium.org/195973007

git-svn-id: http://skia.googlecode.com/svn/trunk@13844 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 23:41:40 +00:00
commit-bot@chromium.org
a713f9c6f6 add new readPixels with direct memory parameters
BUG=skia:
R=scroggo@google.com, bsalomon@google.com, robertphillips@google.com, fmalita@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/199413013

git-svn-id: http://skia.googlecode.com/svn/trunk@13840 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 21:31:26 +00:00
commit-bot@chromium.org
949b9986de Fast implementation of QuadTree
Rewritten to avoid memory allocations.

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

Author: iancottrell@google.com

Review URL: https://codereview.chromium.org/187233002

git-svn-id: http://skia.googlecode.com/svn/trunk@13826 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 10:38:34 +00:00
robertphillips@google.com
0f03f43e44 Move SkNoSaveLayerCanvas.h to include/utils
https://codereview.chromium.org/197243005



git-svn-id: http://skia.googlecode.com/svn/trunk@13823 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-16 21:59:11 +00:00
commit-bot@chromium.org
2ff20aba21 Suppress imagefilterscropexpand GM temporarily to fix Win Debug failures.
NOTREECHECKS=true
NOTRY=true
R=halcanary@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/200703002

git-svn-id: http://skia.googlecode.com/svn/trunk@13812 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 19:02:15 +00:00
senorblanco@chromium.org
118252962f Implement support for expanding crop rects in image filters
NOTE: this patch set is based on https://codereview.chromium.org/189913021/,
and needs that patch to land first.

Until now, crop rects in Skia have only been able to reduce
the size of the destination bounds, but not expand them.
SVG semantics require the latter as well. The heart of
the change is in applyCropRect(), which now assigns each
edge, instead of doing an intersection with the crop rect.

In order to support this (and still work well with tiled
drawing) we need to clip the resulting crop rect to the
clipping region of the filters. This uses the Context struct
previously landed from https://codereview.chromium.org/189913021/.

Many of the pixel loops are not yet ready to handle a
destination rect larger than the source rect. So we provide
a convenience version of applyCropRect() which creates an
offscreen and pads it out with transparent black. Once the
pixel loops and shaders have been fixed to support larger
destination bounds, they should be switched back to the
non-drawing version of applyCropRect().

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

Committed: https://code.google.com/p/skia/source/detail?r=13805

Review URL: https://codereview.chromium.org/198003008

git-svn-id: http://skia.googlecode.com/svn/trunk@13809 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 17:44:41 +00:00
reed@google.com
18d6753bd0 remove SK_SUPPORT_LEGACY_WRITEPIXELSCONFIG
BUG=skia:

Review URL: https://codereview.chromium.org/200533002

git-svn-id: http://skia.googlecode.com/svn/trunk@13808 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 17:26:15 +00:00
reed@google.com
b3890cbcdb remove SK_SUPPORT_LEGACY_GETDEVICECAPABILITIES
BUG=skia:

Review URL: https://codereview.chromium.org/195763023

git-svn-id: http://skia.googlecode.com/svn/trunk@13807 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 17:24:05 +00:00
senorblanco@chromium.org
29089179a6 Revert "Implement support for expanding crop rects in image filters"
Breaking ImageFilterTests unit test.

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/196353021

git-svn-id: http://skia.googlecode.com/svn/trunk@13806 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 16:48:39 +00:00
senorblanco@chromium.org
0ef0501baf Implement support for expanding crop rects in image filters
NOTE: this patch set is based on https://codereview.chromium.org/189913021/,
and needs that patch to land first.

Until now, crop rects in Skia have only been able to reduce
the size of the destination bounds, but not expand them.
SVG semantics require the latter as well. The heart of
the change is in applyCropRect(), which now assigns each
edge, instead of doing an intersection with the crop rect.

In order to support this (and still work well with tiled
drawing) we need to clip the resulting crop rect to the
clipping region of the filters. This uses the Context struct
previously landed from https://codereview.chromium.org/189913021/.

Many of the pixel loops are not yet ready to handle a
destination rect larger than the source rect. So we provide
a convenience version of applyCropRect() which creates an
offscreen and pads it out with transparent black. Once the
pixel loops and shaders have been fixed to support larger
destination bounds, they should be switched back to the
non-drawing version of applyCropRect().

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

Review URL: https://codereview.chromium.org/198003008

git-svn-id: http://skia.googlecode.com/svn/trunk@13805 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 16:35:08 +00:00
commit-bot@chromium.org
3da3b621c3 getDeviceCapabilities is no longer need, so remove it
BUG=skia:
R=bungeman@google.com, vandebo@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/198943003

git-svn-id: http://skia.googlecode.com/svn/trunk@13797 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 19:38:10 +00:00
commit-bot@chromium.org
641e33b3f6 add gm to show bug in stroked-text in drawPosText
BUG=skia:
R=fmalita@google.com, bungeman@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/198083003

git-svn-id: http://skia.googlecode.com/svn/trunk@13777 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 20:31:24 +00:00
reed@google.com
9c135db83d support direct writing to top layer, and hide getTopLayer()
this should remove many of the chrome callers that today call
accessBitmap on the toplayer, so they can read/write those pixels.

The ultimate fix will be to support custom allocation of raster layers
(via GDI/cairo/mac) so we can remove PlatformDevice subclassing in
skia/ext

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

Review URL: https://codereview.chromium.org/197433002

git-svn-id: http://skia.googlecode.com/svn/trunk@13774 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 18:28:35 +00:00
commit-bot@chromium.org
ae79612092 Add compile flag to force usage of distance fields for all SkPaints.
BUG=skia:2173
R=reed@google.com, robertphillips@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/195213003

git-svn-id: http://skia.googlecode.com/svn/trunk@13770 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 17:05:46 +00:00
commit-bot@chromium.org
ab373bd459 remove SK_SUPPORT_LEGACY_COPYTO_CONFIG
R=halcanary@google.com
TBR=halcanary@google.com
NOTRY=True
NOTREECHECK=True

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/196003003

git-svn-id: http://skia.googlecode.com/svn/trunk@13753 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 22:58:24 +00:00
commit-bot@chromium.org
6f458fc221 First pass at a web app that lets you run Skia code and see the results.
BUG=skia:
R=reed@google.com

Author: jcgregorio@google.com

Review URL: https://codereview.chromium.org/195143004

git-svn-id: http://skia.googlecode.com/svn/trunk@13751 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 22:57:50 +00:00
commit-bot@chromium.org
b97c3ffddf Enable use of distance fields via SkPaint flag.
Now that distance field generation is fast enough to make it practical, this makes distances field fonts easily available to anyone who wants to try them out (i.e Chromium).

BUG=skia:2173
R=reed@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/193163003

git-svn-id: http://skia.googlecode.com/svn/trunk@13741 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 17:07:15 +00:00
commit-bot@chromium.org
8065ec50f1 Add new module for distance field generation.
This improves the speed over the previous method by 10x+, and makes using distance fields practical.

BUG=skia:2173

Committed: http://code.google.com/p/skia/source/detail?r=13729

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

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/178543007

git-svn-id: http://skia.googlecode.com/svn/trunk@13740 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 15:57:40 +00:00
commit-bot@chromium.org
b5f3b35645 Revert of Add new module for distance field generation. (https://codereview.chromium.org/178543007/)
Reason for revert:
multiple compile errors

Original issue's description:
> Add new module for distance field generation.
>
> This improves the speed over the previous method by 10x+, and makes using distance fields practical.
>
> BUG=skia:2173
>
> Committed: http://code.google.com/p/skia/source/detail?r=13729

R=bsalomon@google.com, robertphillips@google.com, jvanverth@google.com
TBR=bsalomon@google.com, jvanverth@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2173

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/190753015

git-svn-id: http://skia.googlecode.com/svn/trunk@13732 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 20:37:54 +00:00
commit-bot@chromium.org
bf99824083 Add new module for distance field generation.
This improves the speed over the previous method by 10x+, and makes using distance fields practical.

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

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/178543007

git-svn-id: http://skia.googlecode.com/svn/trunk@13729 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 19:38:51 +00:00
reed@google.com
e8ead8e510 Revert "remove flag for legacy copyTo -- call sites have been updated"
This reverts commit 85586a92f50942ede4422aca7308b9d8a88469db.

git-svn-id: http://skia.googlecode.com/svn/trunk@13719 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 12:17:06 +00:00
skia.committer@gmail.com
a5cb214132 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13716 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-09 03:02:09 +00:00
commit-bot@chromium.org
5c70cdca5e hide getTotalClip, so we can eventually remove it
hide getClipType, so we can eventually remove it

patch from issue 189443007

TBR=robertphilips@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/189883010

git-svn-id: http://skia.googlecode.com/svn/trunk@13715 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-08 03:57:19 +00:00
reed@google.com
ce29b329e4 remove flag for legacy copyTo -- call sites have been updated
TBR=robertphilips@google.com

Review URL: https://codereview.chromium.org/189513005

git-svn-id: http://skia.googlecode.com/svn/trunk@13706 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 16:20:47 +00:00
commit-bot@chromium.org
8016f79cfc This is just the first version and shows how I intend to orchestrate this. Future enhancements will:
track the portion of the bitmap required
track any resizing that might be required
actually preload something

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/187833003

git-svn-id: http://skia.googlecode.com/svn/trunk@13704 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 15:53:01 +00:00
commit-bot@chromium.org
4cd9e2169e Add SkCanvas::writePixels that takes info+pixels directly
add corresponding methods to device (w/ diff name to avoid colliding with exising virtuals)

BUG=skia:
R=bsalomon@google.com, robertphillips@google.com, junov@google.com, junov@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/180113010

git-svn-id: http://skia.googlecode.com/svn/trunk@13697 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 03:25:16 +00:00
commit-bot@chromium.org
a5572e5bb2 Add a class to allocate small objects w/o extra calls to new.
Add SkSmallAllocator, a template for allocating small (as defined by the
instantiation) objects without extra calls to new. Add a helper macro to
make using it simple.

Remove SkTemplatesPriv.h, whose behavior is replaced by SkSmallAllocator.
The old SK_PLACEMENT_NEW had the following drawbacks:
- Easily confused with SkNEW_PLACEMENT.
- Requires passing around lots of void*s along with the storageSize.
- Requires using a separate class for deleting it.
- We had multiple ways Auto objects for deleting in different places.
- It always did a straight heap allocation on Windows, meaning Windows
  did not get any advantages from the confusing code.
The new SkSmallAllocator simplifies things:
- It is clear about what it does.
- It takes care of the deletion in one place that is automatically
  handled.

Further, the new class can be used to create more than one object. This
is in preparation for BUG=skia:1976, for which we would like to create
a new object without extra heap allocations. The plan is to create both
the blitter and the new object on the stack using the SkSmallAllocator.

Add a new test for SkSmallAllocator.

SkShader.h:
Move the private version of CreateBitmapShader to SkBitmapProcShader
(which already has the implementation) and remove the friend class
(which was only used to call this private function). This allows
SkSmallAllocator to reside in the private src/ directory.

SkBitmapProcShader:
Move CreateBitmapShader and the macro for the storage size here. With
the macro in a (private) header, the (private) headers with function
declarations (which now depend on the storage size used) can see the
macro.
Use SkSmallAllocator in CreateBitmapShader.
Change the macro to kBlitterStorageByteCount, since SkSmallAllocator
takes a byte count as its template parameter.

SkBlitter:
Use the SkSmallAllocator.
Remove Sk3DShader::fKillProc and SkAutoCallProc. Both of their
behaviors have been moved into SkSmallAllocator (SkAutoCallProc was
unnecessary anyway, because the only time we ever used it we also
called detach(), so its auto behavior never happened).
Create the Sk3DShader on the stack, if there's room.
Remove the helper version of Choose, which was unused.

SmallAllocatorTest:
Test for the new class.

The rest:
Use SkSmallAllocator.

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/179343005

git-svn-id: http://skia.googlecode.com/svn/trunk@13696 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 03:24:41 +00:00
commit-bot@chromium.org
fab349c0bf remove SK_SUPPORT_DEEPCOPYTO_CONFIG code -- no longer used
R=reed@google.com
TBR=bsalomon@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/183763035

git-svn-id: http://skia.googlecode.com/svn/trunk@13664 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 02:34:58 +00:00
commit-bot@chromium.org
24e0496e8d Factor out a BaseContext from JsContext.
BUG=skia:
R=robertphillips@google.com

Author: jcgregorio@google.com

Review URL: https://codereview.chromium.org/186783004

git-svn-id: http://skia.googlecode.com/svn/trunk@13660 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 20:44:32 +00:00
senorblanco@chromium.org
6aa6fec0e3 Cleanup patch to move all of SkImageFilterUtils into SkImageFilter.
This was a utility class that dates from before GPU code was allowed
in core. Now that it is, there's no reason not to have this
functionality in SkImageFilter.

Covered by existing tests.

R=reed@google.com

Review URL: https://codereview.chromium.org/185973003

git-svn-id: http://skia.googlecode.com/svn/trunk@13646 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 22:13:56 +00:00
commit-bot@chromium.org
085a6e476b Rename test files to end with Test.cpp.
DM builds all of {bench,gm,test}/*.cpp.  A Windows build warned us that we were
trying to link typeface.obj twice.  This must have something to do with there
existing gm/typeface.cpp and tests/Typeface.cpp.  To be safe, make sure tests
have a Test.cpp suffix to disambiguate.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/185923002

git-svn-id: http://skia.googlecode.com/svn/trunk@13644 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 19:23:28 +00:00
commit-bot@chromium.org
6f4fb0f129 Generating the 1M skps frequently yields truncated skps. This tool is intended to help automate weeding these out.
Please see skbug:1057

rmistry for tools, gyp
mtklein for src\core & include\core

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/176863004

git-svn-id: http://skia.googlecode.com/svn/trunk@13643 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 19:18:39 +00:00
commit-bot@chromium.org
ef57b7e653 DM: make GPU tasks multithreaded again. Big refactor.
The main meat of things is in SkThreadPool.  We can now give SkThreadPool a
type for each thread to create and destroy on its local stack.  It's TLS
without going through SkTLS.

I've split the DM tasks into CpuTasks that run on threads with no TLS, and
GpuTasks that run on threads with a thread local GrContextFactory.

The old CpuTask and GpuTask have been renamed to CpuGMTask and GpuGMTask.

Upshot: default run of out/Debug/dm goes from ~45 seconds to ~20 seconds.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/179233005

git-svn-id: http://skia.googlecode.com/svn/trunk@13632 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 20:31:31 +00:00
reed@google.com
6c50cd31ed remove SK_SUPPORT_DEEPCOPYTO_CONFIG
git-svn-id: http://skia.googlecode.com/svn/trunk@13625 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 16:30:45 +00:00
commit-bot@chromium.org
e72a408359 Updates to gyp files for building Android.mk
R=djsollen@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/180873012

git-svn-id: http://skia.googlecode.com/svn/trunk@13624 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 16:07:39 +00:00
commit-bot@chromium.org
9d0ecf48c4 Modify how gpu.gyp includes angle.gyp.
Instead of including dependencies on angle.gyp and then removing
them if skia_angle is not true, only include angle.gyp to begin
with skia_angle is true.

This allows gyp_to_android.py to work when run in the Android tree,
where we don't have third_party/externals (since we do only a git
merge, and no gclient sync.

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/178223015

git-svn-id: http://skia.googlecode.com/svn/trunk@13618 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-27 20:40:31 +00:00
commit-bot@chromium.org
4fcc3ca411 Add GrSet class built on top of RedBlackTree
BUG=skia:
R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/176903003

git-svn-id: http://skia.googlecode.com/svn/trunk@13616 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-27 20:23:22 +00:00
commit-bot@chromium.org
f679d1bf38 Rename Path to Path2D
BUG=skia:
R=robertphillips@google.com

Author: jcgregorio@google.com

Review URL: https://codereview.chromium.org/177963005

git-svn-id: http://skia.googlecode.com/svn/trunk@13615 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-27 20:20:21 +00:00
commit-bot@chromium.org
38aeb0fd7a DM: also run benches once.
Also:
  - make GrMemoryPoolBenches threadsafe
  - some tweaks to various DM code
  - rename GM::shortName() to getName() to match benches and tests

On my desktop, (289 GMs, 617 benches) x 4 configs, 227 tests takes 46s in Debug, 14s in Release.  (Still minutes faster than running tests && bench && gm.)  GPU singlethreading is definitely the limiting factor again; going to reexamine whether that's helpful to thread it again.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/178473006

git-svn-id: http://skia.googlecode.com/svn/trunk@13603 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 23:01:57 +00:00
bsalomon@google.com
4ebe382188 Revert "Revert of Add getReducedClipStack to lua canvas (https://codereview.chromium.org/180283004/)"
This reverts commit efded03a38d6147caaf2d951638d27fdd47eed64.

Fixes builds

Review URL: https://codereview.chromium.org/181903002

git-svn-id: http://skia.googlecode.com/svn/trunk@13599 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 20:22:32 +00:00
commit-bot@chromium.org
1caedbb216 Revert of Add getReducedClipStack to lua canvas (https://codereview.chromium.org/180283004/)
Reason for revert:
breaking a bunch of builds

Original issue's description:
> Add getReducedClipStack to lua canvas
>
> Committed: http://code.google.com/p/skia/source/detail?r=13594

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

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/181653004

git-svn-id: http://skia.googlecode.com/svn/trunk@13597 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 18:32:44 +00:00
bsalomon@google.com
b805fe5884 Fix SampleApp build
TBR=reed@google.com

Review URL: https://codereview.chromium.org/181833002

git-svn-id: http://skia.googlecode.com/svn/trunk@13596 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 18:12:11 +00:00
commit-bot@chromium.org
a47ac2bcc2 Add getReducedClipStack to lua canvas
R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/180283004

git-svn-id: http://skia.googlecode.com/svn/trunk@13594 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 17:50:08 +00:00
commit-bot@chromium.org
0dc5bd149a Let DM run unit tests.
- refactor GYPs and a few flags
  - make GPU tests grab a thread-local GrContextFactory when needed as we do in DM for GMs
  - add a few more UI features to make DM more like tests

I believe this makes the program 'tests' obsolete.

It should be somewhat faster to run the two sets together than running the old binaries serially:
  - serial: tests 20s (3m18s CPU), dm 21s (3m01s CPU)
  - together: 27s (6m21s CPU)

Next up is to incorporate benches.  I'm only planning there on a single-pass sanity check, so that won't obsolete the program 'bench' just yet.

Tested: out/Debug/tests && out/Debug/dm && echo ok
BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=13586

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/178273002

git-svn-id: http://skia.googlecode.com/svn/trunk@13592 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 16:31:22 +00:00
commit-bot@chromium.org
7f428a941b Check in today's exhaustive blend experiments.
BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/179733005

git-svn-id: http://skia.googlecode.com/svn/trunk@13588 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 21:31:03 +00:00
commit-bot@chromium.org
79e13260cf Revert of Let DM run unit tests. (https://codereview.chromium.org/178273002/)
Reason for revert:
broke tests

Original issue's description:
> Let DM run unit tests.
>   - refactor GYPs and a few flags
>   - make GPU tests grab a thread-local GrContextFactory when needed as we do in DM for GMs
>   - add a few more UI features to make DM more like tests
>
> I believe this makes the program 'tests' obsolete.
>
> It should be somewhat faster to run the two sets together than running the old binaries serially:
>   - serial: tests 20s (3m18s CPU), dm 21s (3m01s CPU)
>   - together: 27s (6m21s CPU)
>
> Next up is to incorporate benches.  I'm only planning there on a single-pass sanity check, so that won't obsolete the program 'bench' just yet.
>
> Tested: out/Debug/tests && out/Debug/dm && echo ok
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=13586

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

Author: reed@google.com

Review URL: https://codereview.chromium.org/179403010

git-svn-id: http://skia.googlecode.com/svn/trunk@13587 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 20:02:09 +00:00
commit-bot@chromium.org
6bd250a2a3 Let DM run unit tests.
- refactor GYPs and a few flags
  - make GPU tests grab a thread-local GrContextFactory when needed as we do in DM for GMs
  - add a few more UI features to make DM more like tests

I believe this makes the program 'tests' obsolete.

It should be somewhat faster to run the two sets together than running the old binaries serially:
  - serial: tests 20s (3m18s CPU), dm 21s (3m01s CPU)
  - together: 27s (6m21s CPU)

Next up is to incorporate benches.  I'm only planning there on a single-pass sanity check, so that won't obsolete the program 'bench' just yet.

Tested: out/Debug/tests && out/Debug/dm && echo ok
BUG=skia:
R=reed@google.com, bsalomon@google.com, mtklein@google.com, tfarina@chromium.org

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/178273002

git-svn-id: http://skia.googlecode.com/svn/trunk@13586 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 19:32:15 +00:00
reed@google.com
b4c5f06c03 allow skia flags to be specified in a skia file, but reference by chrome's skia_common.gypi
in support of https://codereview.chromium.org/180083002/ which will land after this CL is visible in Chrome

R=bungeman@google.com

Review URL: https://codereview.chromium.org/180063003

git-svn-id: http://skia.googlecode.com/svn/trunk@13582 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 18:13:22 +00:00
commit-bot@chromium.org
076ce35529 Fix valgrind bot errors introduced in f84722e477.
NOTREECHECKS=true
NOTRY=true
R=robertphillips@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/179843003

git-svn-id: http://skia.googlecode.com/svn/trunk@13580 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 18:01:37 +00:00
skia.committer@gmail.com
90667ba5eb Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13576 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 03:05:18 +00:00
commit-bot@chromium.org
2ea14c68c3 Fix ChromeOS build broken in f84722e477
NOTREECHECKS=true
NOTRY=true
R=scroggo@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/178413003

git-svn-id: http://skia.googlecode.com/svn/trunk@13571 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 21:39:01 +00:00
commit-bot@chromium.org
f84722e477 Build Skia for a bare-bones embedded Linux system.
Motivation:

    I have downloaded a barebones Linux system built for 64-bit ARM
    from linaro.org and a ARMv8 Foundation Model from arm.com to run
    it on.  This will let us build and test Skia on ARM64 before we
    aquire hardware to allow that.  This CL introduces the changes to
    the build files necessary to build Skia on a barebones embedded
    Linux system.  I tested it with the aarch64 GCC compiler provided
    by linaro.org.

Changes:

    Add a "barelinux" target_os for the DEPS file.  Add an optional
    git download of zlib.

    Changes to gyp files: these changes abstract out libpng, libz, and
    giflib so that images.gyp doesn't know whether they are static or
    dynamically linked.  I also add the variables skia_giflib_static,
    skia_libpng_static, skia_zlib_static, and skia_freetype_static,
    all of which default to false but when set to true will override
    the behavior of the giflib, libpng, zlib, and freetype build
    targets to require them to build statically.  Also, the
    skia_no_fontconfig variable turns off use of the fontconfig service.

	Scripts in platform_tools/barelinux/bin:

    arm64_download - this script downloads the Linaro's ARMv8 Aarch64
	toolchain and minimal embedded Linux system as well as ARM's
	foundation model.  The required files are mirrored on Google
	Cloud.  The script then starts a emulated Arm64 Linux system in
	the background.  After the boot is complete, you can SSH into the
	system at port 8022 via user@localhost.  The SSH key will be
	downloaded into the working directery as well.

	download_deps - Uses gclient to download Skia's dependencies for a
    bare Linux system (the normal dependecies plus giflib, libpng, and
    zlib.)

	barelinux_make - this script builds a version of skia that does
    not depend on external libraries, perfect for putting in an
    embedded system running Linux.  Assumes you have run download_deps
    first.

To test:
    To build a barelinux target, use the barelinux_make script.

    To build for a armv8 system: skia_arch_type=arm arm_neon=0 armv7=1
    armv8=1 arm_thumb=0 skia_arch_width=64 and set the CC and CXX
    variables to point at the cross-compiler downloaded by
    arm64_download.

R=djsollen@google.com, scroggo@google.com, borenet@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/152513007

git-svn-id: http://skia.googlecode.com/svn/trunk@13570 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 20:22:34 +00:00
commit-bot@chromium.org
4324c3ba70 Fix warnings on Ubuntu13
Turn off warnings when building libwebp.
Turn off warnings when building libjpeg.
Initialize some variables immediately.

NOTRY=True
NOTREECHECKS=True

BUG=skia:2213
BUG=skia:2214
R=bsalomon@google.com, halcanary@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/175383002

git-svn-id: http://skia.googlecode.com/svn/trunk@13545 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 20:11:42 +00:00
commit-bot@chromium.org
ed9806f5c9 add SkCanvas::drawDRRect
BUG=skia:
R=bsalomon@google.com, robertphillips@google.com, humper@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/174243003

git-svn-id: http://skia.googlecode.com/svn/trunk@13524 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 02:32:36 +00:00
commit-bot@chromium.org
fe42410103 Fix NaCl build for pepper_32
BUG=skia:
R=rmistry@google.com, djsollen@google.com

Author: borenet@google.com

Review URL: https://codereview.chromium.org/171233015

git-svn-id: http://skia.googlecode.com/svn/trunk@13523 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 00:40:16 +00:00
senorblanco@chromium.org
d4d44f08d7 Re-enable imageresizetiled, but skip it in tilegrid and rtree.
This change makes kSkipTiled_Flag also skip --tileGrid and --rtree.
All GMs which were passing kSkipTiled_Flag before were also passing
kSkipPicture_Flag, which also skips tilegrid and rtree, so this should
have no effect on them, but provides a smaller hammer for GMs which
still want to test picture playback, but not tiling.

The exception is magnifier, which was passing only kSkipTiled_Flag,
but magnifier is an odd beast and not web-exposed, so I'm not worried
about reducing its coverage slightly.

R=scroggo@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/165723009

git-svn-id: http://skia.googlecode.com/svn/trunk@13514 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-20 17:17:57 +00:00
senorblanco@chromium.org
32ffe9c402 Disable imageresizetiled GM for now due to rtree and tilegrid failures.
TBR=scroggo@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/172793006

git-svn-id: http://skia.googlecode.com/svn/trunk@13507 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-19 22:36:32 +00:00
senorblanco@chromium.org
897b73f62c Fix CTM application in SkResizeImagefilter; implement bounds traversals.
SkResizeImageFilter resizes all the pixels from its input (subject to
the input's crop rect), but the offset to be applied was incorrect.
It should take the CTM into account, so that the origin of the resize is
the world space origin, unaffected by whatever clipping is applied.

New GM imageresizetiled exercises the behaviour under
impl-side-painting-like conditions, and existing GMs now have resize
cases added.

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

Review URL: https://codereview.chromium.org/168283006

git-svn-id: http://skia.googlecode.com/svn/trunk@13506 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-19 22:10:12 +00:00
commit-bot@chromium.org
c2f7824436 Analytic rrect clip for cicular corners, radius >= 0.5
BUG=skia:2181
R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/171413004

git-svn-id: http://skia.googlecode.com/svn/trunk@13498 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-19 15:18:05 +00:00