History log of /external/skia/dm/DMSrcSink.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e44b5084d86772727826e65b8e95e17dc53ee977 07-May-2015 mtklein <mtklein@chromium.org> DM: use SkFunction to make required argument type clearer.

Previously it was hard to tell that DrawFn took an SkCanvas* and returned an Error. Now it's clear from the type.

BUG=skia:

Review URL: https://codereview.chromium.org/1125233002
/external/skia/dm/DMSrcSink.cpp
6fbf4b3a7f0a3304649c482ab0a911dc147a6825 06-May-2015 mtklein <mtklein@chromium.org> Do we still need this DOUBLE_LOOP feature?

If so, let's do it this way so it works for all source types and doesn't need
to be chosen at compile time.

BUG=skia:

Review URL: https://codereview.chromium.org/1129693003
/external/skia/dm/DMSrcSink.cpp
7882924c10fadaed427b6aa65dc7aa6577b94f32 06-May-2015 mtklein <mtklein@chromium.org> DM: add Via abstract class

BUG=skia:

Review URL: https://codereview.chromium.org/1117183007
/external/skia/dm/DMSrcSink.cpp
d31c13d0441aecc8b2a4fa4f45fd5e59584cb3ea 05-May-2015 mtklein <mtklein@chromium.org> DM: add a Via to simulate SP pictures.

Will use this to test the other CL that adds small SkPicture implementations.

Not quite sure why patch_primitive doesn't draw the same in 8888 and sp-8888, but everything else does, so I'm not going to let that hold me back for now.

BUG=skia:

Review URL: https://codereview.chromium.org/1126613005
/external/skia/dm/DMSrcSink.cpp
a16e69ec6ccbaf81671f66ee77ca3b0c07100041 05-May-2015 mtklein <mtklein@chromium.org> DM: add draw_to_canvas() to trim some boilerplate for Vias.

BUG=skia:

Review URL: https://codereview.chromium.org/1123743007
/external/skia/dm/DMSrcSink.cpp
06a22f618cd2adbbd33634a701b5cf8353886d63 05-May-2015 reed <reed@google.com> add deferred config to DM

BUG=skia:

Review URL: https://codereview.chromium.org/1113273006
/external/skia/dm/DMSrcSink.cpp
9e43cabaa1ff26167e990f0bcb9a5c20d662d52c 29-Apr-2015 msarett <msarett@google.com> Requires a minor API change to pass the color table to getScanlineDecoder, as we do with getPixels().

BUG=skia:3722

Review URL: https://codereview.chromium.org/1061713007
/external/skia/dm/DMSrcSink.cpp
e16b04aa6041efb6507546547737e9603fa1606e 15-Apr-2015 msarett <msarett@google.com> SkJpegCodec

Enables basic decoding for jpegs

Includes rewinding

565, YUV, and Jpeg encoding are not yet implemented

BUG=skia:3257

Review URL: https://codereview.chromium.org/1076923002
/external/skia/dm/DMSrcSink.cpp
7e79818137f2173302d6476a6127525b11684ec2 14-Apr-2015 halcanary <halcanary@google.com> DM: add --multiPage option

Motivation: I want to switch back to single-page output by default for
direct comparison to raster backends in Gold.

I can still test the multi-page option via a command-line switch.

BUG=skia:3721

Review URL: https://codereview.chromium.org/1063873004
/external/skia/dm/DMSrcSink.cpp
438b2adefb9e9213e0ddaf0609405d3087a1cf0a 09-Apr-2015 msarett <msarett@google.com> ***Disables swizzles to 565.
We may want to enable swizzles to 565
for images that are encoded in a format
similar to 565, however, we do not want
to take images that decode naturally to
kN32 and then convert them to 565.

***Enable swizzles to kIndex_8. For images
encoded in a color table format, we suggest
that they be decoded to kIndex_8. When we
decode, we only allow conversion to kIndex_8
if it matches the suggested color type (except
wbmp which seems good as is).

***Modify dm to test images that decode to
kIndex_8.

BUG=skia:3257
BUG=skia:3440

Review URL: https://codereview.chromium.org/1055743003
/external/skia/dm/DMSrcSink.cpp
b7e8d69fc21a3043348fd9b76876471e0a6ae7fe 07-Apr-2015 mtklein <mtklein@chromium.org> Add a Via to DM that records into two pictures and draws using the second.

I'm going to start hacking on SkCanvas a bit to allow a fast reset method,
and I want to have some testing checking me.

BUG=skia:

Review URL: https://codereview.chromium.org/1062043004
/external/skia/dm/DMSrcSink.cpp
2ab9000b3fa1a61ec9213408af9c800f70eb0657 03-Apr-2015 djsollen <djsollen@google.com> Prevent DM crash in the PDF sink when src width/height are zero.

Review URL: https://codereview.chromium.org/1061493002
/external/skia/dm/DMSrcSink.cpp
7c3a2f834e0ba3f11a3129d5348b393efcc9b0e1 31-Mar-2015 joshualitt <joshualitt@chromium.org> BitmapTextBatch and BitmapTextBlob

BUG=skia:

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

Review URL: https://codereview.chromium.org/1011403004
/external/skia/dm/DMSrcSink.cpp
c03391e792a55219ddcb033475dc6b80e6a3e2f9 31-Mar-2015 joshualitt <joshualitt@google.com> Revert of BitmapTextBatch and BitmapTextBlob (patchset #18 id:360001 of https://codereview.chromium.org/1011403004/)

Reason for revert:
Breaks a unit test on mac

Original issue's description:
> BitmapTextBatch and BitmapTextBlob
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/eed1dae04932483579b02c10f0706127d3f5d984

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

Review URL: https://codereview.chromium.org/1050633002
/external/skia/dm/DMSrcSink.cpp
eed1dae04932483579b02c10f0706127d3f5d984 31-Mar-2015 joshualitt <joshualitt@chromium.org> BitmapTextBatch and BitmapTextBlob

BUG=skia:

Review URL: https://codereview.chromium.org/1011403004
/external/skia/dm/DMSrcSink.cpp
36352bf5e38f45a70ee4f4fc132a38048d38206d 26-Mar-2015 mtklein <mtklein@chromium.org> C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}

NOPRESUBMIT=true

BUG=skia:
DOCS_PREVIEW= https://skia.org/?cl=1037793002

Review URL: https://codereview.chromium.org/1037793002
/external/skia/dm/DMSrcSink.cpp
9c59ebc0db7cade1537591813430f7be47123e76 25-Mar-2015 scroggo <scroggo@google.com> Test scanline decoding in DM.

BUG=skia:3475

Review URL: https://codereview.chromium.org/999173010
/external/skia/dm/DMSrcSink.cpp
b3e5e4d314301617d2d48b7589dfd426bd68a671 25-Mar-2015 mtklein <mtklein@chromium.org> Lazy SKP image decoding in DM.

@sugoi:
Early out to avoid some segfaults in SkImageDecoder_libjpeg.cpp.
I am just flailing here... things seem to work, but I have no idea why.
This prints out a lot:
libjpeg error 85 <End Of Image> from output_raw_data [0 0]

@halcanary:
I'm skipping on ImageSrc for now. Leon's refactoring that quite a lot.

This causes minor diffs for the GPU backend, given that we're now
going through the YUV path. It also reduced peak RAM usage on
my desktop from 1.26GB to 1.08GB.

BUG=skia:

Review URL: https://codereview.chromium.org/1010983004
/external/skia/dm/DMSrcSink.cpp
478652e918d73a4c0330e27e03eaa9564138c0f7 25-Mar-2015 scroggo <scroggo@google.com> Add copyright headers DM.

Review URL: https://codereview.chromium.org/1037713003
/external/skia/dm/DMSrcSink.cpp
9bde918754bc292469d801f156f3b626eb3db780 25-Mar-2015 msarett <msarett@google.com> Enabling ico decoding with use of png and bmp decoders

BUG=skia:3257

NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/1011343003
/external/skia/dm/DMSrcSink.cpp
7aa846c6837f527067e7ab5fdeacdbd502696382 24-Mar-2015 tomhudson <tomhudson@google.com> Revert of Enabling ico decoding with use of png and bmp decoders (patchset #10 id:280001 of https://codereview.chromium.org/1011343003/)

Reason for revert:
Reverting on suspicion of massive bot failures - possible command line too long?

Original issue's description:
> Enabling ico decoding with use of png and bmp decoders
>
> BUG=skia:3257
>
> Committed: https://skia.googlesource.com/skia/+/15bfd075d38e4422a477e22940d06a137f66cc97

TBR=scroggo@google.com,reed@google.com,djsollen@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3257

Review URL: https://codereview.chromium.org/1022843005
/external/skia/dm/DMSrcSink.cpp
15bfd075d38e4422a477e22940d06a137f66cc97 24-Mar-2015 msarett <msarett@google.com> Enabling ico decoding with use of png and bmp decoders

BUG=skia:3257

Review URL: https://codereview.chromium.org/1011343003
/external/skia/dm/DMSrcSink.cpp
3ef71e343bf075888fb50892350390b4dd47de24 19-Mar-2015 reed <reed@google.com> guarded change to SkImageGenerator to make getInfo() const

BUG=skia:

Review URL: https://codereview.chromium.org/1017293002
/external/skia/dm/DMSrcSink.cpp
9b77ddde08efe702256355a333cf31ade8f15bb0 19-Mar-2015 scroggo <scroggo@google.com> Run CodecSrc DM.

Rather than making SkCodec an option instead of SkImageDecoder,
create a separate CodecSrc. This allows us to compare the two.

For both CodecSrc and ImageSrc, do not decode to a gpu backend.

BUG=skia:3475

Review URL: https://codereview.chromium.org/978823002
/external/skia/dm/DMSrcSink.cpp
741143878b23d22cd9cb7b9cba8055179115ce17 16-Mar-2015 msarett <msarett@google.com> Revert "Revert of fix for invalid for loop syntax broke build (patchset #1 id:1 of https://codereview.chromium.org/1007373003/)"

This reverts commit d18475854ce232de71c5463e0654f459d4abfd43.

Revert "Revert "Implementation of image decoding for bmp files, in accordance with the new API.""

This reverts commit dfdec78a5d02e8690998741a9fe5b71a08ca3232.

BUG=skia:

TBR=

Review URL: https://codereview.chromium.org/1016443003
/external/skia/dm/DMSrcSink.cpp
dfdec78a5d02e8690998741a9fe5b71a08ca3232 16-Mar-2015 msarett <msarett@google.com> Revert "Implementation of image decoding for bmp files, in accordance with the new API."

This reverts commit 3675874468de7228944ce21922e6ec863f5f2310.

BUG=skia:
NOTREECHECKS=true
NOTRY=true
TBR=

Review URL: https://codereview.chromium.org/1012873002
/external/skia/dm/DMSrcSink.cpp
ffa901aa7e360ed5115a0955221f4c2d2632d418 16-Mar-2015 mtklein <mtklein@chromium.org> DM: allow SKPs to be smaller than 1000x1000

This sniffs the .skp dimensions and intersects them with our 1000x1000 viewport.

This fixes things like desk_carsvg.skp, which is only 902 pixels tall. In 565 now,
the remaining 98 pixels draw as black, which looks funny and is confusing to triage.

No apparent affect on DM memory usage. (We're about to map the file anyway.)

BUG=skia:

Review URL: https://codereview.chromium.org/986103002
/external/skia/dm/DMSrcSink.cpp
3675874468de7228944ce21922e6ec863f5f2310 16-Mar-2015 msarett <msarett@google.com> Implementation of image decoding for bmp files, in accordance with the new API.

Currently decodes to opaque and unpremul.

Tested on local test suite.

BUG=skia:3257

Review URL: https://codereview.chromium.org/947283002
/external/skia/dm/DMSrcSink.cpp
56e25ddf6e2c1f85c5addbe498a082268ebee6ea 05-Mar-2015 scroggo <scroggo@google.com> DM: Use the new non-fatal errors for invalid color conversions.

Also allow incomplete to be considered successful.

Do not attempt to draw transparent images on 565.

BUG=skia:3475

Review URL: https://codereview.chromium.org/978413002
/external/skia/dm/DMSrcSink.cpp
4089ef7c982592fadeec441438c551ffb4c746be 05-Mar-2015 mtklein <mtklein@chromium.org> DM: support non-fatal errors

Tasks that produce a non-fatal error will bail out before writing their output to
disk and hash to dm.json, but not count as failures.

This also makes true failures bail out before writing their results. If the DM
program failed, we probably don't want to triage that image result.

We use this new feature first to skip image subset decoding when we detect it's
not supported. Here's a snippet of an example run, where in this case only
.webp are subset decodable:

...
( 15MB 12) 172µs 8888 subset color_wheel.jpg (skipped: Subset decoding not supported.)
( 15MB 11) 9.05ms 8888 subset randPixels.webp
( 16MB 10) 863µs 8888 subset baby_tux.png (skipped: Subset decoding not supported.)
...

Only outputs corresponding to the .webp show up, both on disk and in the .json.

BUG=skia:

Review URL: https://codereview.chromium.org/980333002
/external/skia/dm/DMSrcSink.cpp
47ef4d5d934bba86848aa238efab21f54a160c1a 03-Mar-2015 halcanary <halcanary@google.com> XPS, DM: add SkDocument::CreateXPS

- SkDocument::CreateXPS() function added, returns NULL on non-Windows OS.

- DM: (Windows only) an XPSSink is added, fails on non-Windows OS

- DM: Common code for PDFSink::draw and XPSSink::draw are factored into
draw_skdocument static function.

- SkDocument_XPS (Windows only) implementation of SkDocument via
SkXPSDevice.

- SkDocument_XPS_None (non-Windows) returns NULL for
SkDocument::CreateXPS().

- gyp/xps.gyp refactored.

- SkXPSDevice::drawTextOnPath removed (see http://crrev.com/925343003 )

- SkXPSDevice::drawPath supports conics via SkAutoConicToQuads.

Review URL: https://codereview.chromium.org/963953002
/external/skia/dm/DMSrcSink.cpp
f24f2247c25b842327e12c70e44efe4cc1b28dfa 03-Mar-2015 scroggo <scroggo@google.com> Add SkCodec, including PNG implementation.

DM:
Add a flag to use SkCodec instead of SkImageDecoder.

SkCodec:
Base class for codecs, allowing creation from an SkStream or an SkData.
An SkCodec, on creation, knows properties of the data like its width and height. Further calls can be used to generate the image.
TODO: Add scanline iterator

SkPngCodec:
New decoder for png. Wraps libpng. The code has been repurposed from SkImageDecoder_libpng.
TODO: Handle other destination colortypes
TODO: Substitute the transpose color
TODO: Allow silencing warnings
TODO: Use RGB instead of filler?
TODO: sRGB

SkSwizzler:
Simplified version of SkScaledSampler. Unlike the sampler, this object does no sampling.
TODO: Implement other swizzles.

Requires a gclient sync to pull down libpng.

BUG=skia:3257

Committed: https://skia.googlesource.com/skia/+/ca358852b4fed656d11107b2aaf28318a4518b49
(and then reverted)

Review URL: https://codereview.chromium.org/930283002
/external/skia/dm/DMSrcSink.cpp
c2574f3657b1359496a4eba5b191961974b3a64f 03-Mar-2015 halcanary <halcanary@google.com> Revert of XPS, DM: add SkDocument::CreateXPS (patchset #8 id:310001 of https://codereview.chromium.org/963953002/)

Reason for revert:
breaking iOS build.

Original issue's description:
> XPS, DM: add SkDocument::CreateXPS
>
> - SkDocument::CreateXPS() function added, returns NULL on non-Windows OS.
>
> - DM: (Windows only) an XPSSink is added, fails on non-Windows OS
>
> - DM: Common code for PDFSink::draw and XPSSink::draw are factored into
> draw_skdocument static function.
>
> - SkDocument_XPS (Windows only) implementation of SkDocument via
> SkXPSDevice.
>
> - SkDocument_XPS_None (non-Windows) returns NULL for
> SkDocument::CreateXPS().
>
> - gyp/xps.gyp refactored.
>
> - SkXPSDevice::drawTextOnPath removed (see http://crrev.com/925343003 )
>
> - SkXPSDevice::drawPath supports conics via SkAutoConicToQuads.
>
> NOPRESUBMIT=true
>
> Committed: https://skia.googlesource.com/skia/+/00d39bcbfc8394a9b48b86b04ab06ec19091fa43

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

Review URL: https://codereview.chromium.org/978443002
/external/skia/dm/DMSrcSink.cpp
00d39bcbfc8394a9b48b86b04ab06ec19091fa43 03-Mar-2015 halcanary <halcanary@google.com> XPS, DM: add SkDocument::CreateXPS

- SkDocument::CreateXPS() function added, returns NULL on non-Windows OS.

- DM: (Windows only) an XPSSink is added, fails on non-Windows OS

- DM: Common code for PDFSink::draw and XPSSink::draw are factored into
draw_skdocument static function.

- SkDocument_XPS (Windows only) implementation of SkDocument via
SkXPSDevice.

- SkDocument_XPS_None (non-Windows) returns NULL for
SkDocument::CreateXPS().

- gyp/xps.gyp refactored.

- SkXPSDevice::drawTextOnPath removed (see http://crrev.com/925343003 )

- SkXPSDevice::drawPath supports conics via SkAutoConicToQuads.

NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/963953002
/external/skia/dm/DMSrcSink.cpp
ee1a726aed980016a9371ffa4768e0844c360eb2 02-Mar-2015 scroggo <scroggo@google.com> Revert of Add SkCodec, including PNG implementation. (patchset #24 id:460001 of https://codereview.chromium.org/930283002/)

Reason for revert:
Breaking windows bots all over the place :(

Original issue's description:
> Add SkCodec, including PNG implementation.
>
> DM:
> Add a flag to use SkCodec instead of SkImageDecoder.
>
> SkCodec:
> Base class for codecs, allowing creation from an SkStream or an SkData.
> An SkCodec, on creation, knows properties of the data like its width and height. Further calls can be used to generate the image.
> TODO: Add scanline iterator
>
> SkPngCodec:
> New decoder for png. Wraps libpng. The code has been repurposed from SkImageDecoder_libpng.
> TODO: Handle other destination colortypes
> TODO: Substitute the transpose color
> TODO: Allow silencing warnings
> TODO: Use RGB instead of filler?
> TODO: sRGB
>
> SkSwizzler:
> Simplified version of SkScaledSampler. Unlike the sampler, this object does no sampling.
> TODO: Implement other swizzles.
>
> BUG=skia:3257
>
> Committed: https://skia.googlesource.com/skia/+/ca358852b4fed656d11107b2aaf28318a4518b49

TBR=reed@google.com,djsollen@google.com,msarett@google.com,mtklein@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3257

Review URL: https://codereview.chromium.org/972743003
/external/skia/dm/DMSrcSink.cpp
ca358852b4fed656d11107b2aaf28318a4518b49 02-Mar-2015 scroggo <scroggo@google.com> Add SkCodec, including PNG implementation.

DM:
Add a flag to use SkCodec instead of SkImageDecoder.

SkCodec:
Base class for codecs, allowing creation from an SkStream or an SkData.
An SkCodec, on creation, knows properties of the data like its width and height. Further calls can be used to generate the image.
TODO: Add scanline iterator

SkPngCodec:
New decoder for png. Wraps libpng. The code has been repurposed from SkImageDecoder_libpng.
TODO: Handle other destination colortypes
TODO: Substitute the transpose color
TODO: Allow silencing warnings
TODO: Use RGB instead of filler?
TODO: sRGB

SkSwizzler:
Simplified version of SkScaledSampler. Unlike the sampler, this object does no sampling.
TODO: Implement other swizzles.

BUG=skia:3257

Review URL: https://codereview.chromium.org/930283002
/external/skia/dm/DMSrcSink.cpp
5f5a8d7599b8e248633ac122294b7a01401fedcb 25-Feb-2015 joshualitt <joshualitt@chromium.org> adding preabandon flag to DM

BUG=skia:

Review URL: https://codereview.chromium.org/929243004
/external/skia/dm/DMSrcSink.cpp
44906c66285b81d641e692bde6ec5c8f010e30b6 23-Feb-2015 halcanary <halcanary@google.com> Revert of DM: lazy decoding on SKP playback (patchset #4 id:60001 of https://codereview.chromium.org/943383002/)

Reason for revert:
crashing dm

Test-Mac10.9-MacMini6.2-HD4000-x86_64-Debug

u gm addarc
(1431MB 932) 169ms gpu gm aarectmodes
(1431MB 931) 38.6ms gpu gm aaclip
(1431MB 930) 474ms gpu skp desk_amazon.skp
(1431MB 929) 615ms gpu skp desk_baidu.skp
(1431MB 928) 600ms gpu skp desk_blogger.skp
Signal 11:
_sigtramp (+0x1a)
compute_yuv_size(jpeg_decompress_struct const&, int, SizeType) (+0x30)
update_components_sizes(jpeg_decompress_struct const&, SkTSize<int>*, SizeType) (+0x46)
SkJPEGImageDecoder::onDecodeYUV8Planes(SkStream*, SkTSize<int>*, void**, unsigned long*, SkYUVColorSpace*) (+0x239)
SkImageDecoder::decodeYUV8Planes(SkStream*, SkTSize<int>*, void**, unsigned long*, SkYUVColorSpace*) (+0x64)
SkImageDecoderGenerator::onGetYUV8Planes(SkTSize<int>*, void**, unsigned long*, SkYUVColorSpace*) (+0x9f)
SkImageGenerator::getYUV8Planes(SkTSize<int>*, void**, unsigned long*, SkYUVColorSpace*) (+0x3b7)
SkDiscardablePixelRef::onGetYUV8Planes(SkTSize<int>*, void**, unsigned long*, SkYUVColorSpace*) (+0x3c)
SkPixelRef::getYUV8Planes(SkTSize<int>*, void**, unsigned long*, SkYUVColorSpace*) (+0x55)
load_yuv_texture(GrContext*, GrUniqueKey const&, SkBitmap const&, GrSurfaceDesc const&) (+0x24b)
create_unstretched_bitmap_texture(GrContext*, SkBitmap const&, GrUniqueKey const&) (+0x3df)
create_bitmap_texture(GrContext*, SkBitmap const&, Stretch, GrUniqueKey const&, GrUniqueKey const&) (+0x1ca)
GrRefCachedBitmapTexture(GrContext*, SkBitmap const&, GrTextureParams const*) (+0x368)
AutoBitmapTexture::set(GrContext*, SkBitmap const&, GrTextureParams const*) (+0x87)
AutoBitmapTexture::AutoBitmapTexture(GrContext*, SkBitmap const&, GrTextureParams const*, GrTexture**) (+0xe0)
AutoBitmapTexture::AutoBitmapTexture(GrContext*, SkBitmap const&, GrTextureParams const*, GrTexture**) (+0x35)
SkGpuDevice::internalDrawBitmap(SkBitmap const&, SkMatrix const&, SkRect const&, GrTextureParams const&, SkPaint const&, SkCanvas::DrawBitmapRectFlags, bool, bool) (+0x118)
SkGpuDevice::drawBitmapCommon(SkDraw const&, SkBitmap const&, SkRect const*, SkSize const*, SkPaint const&, SkCanvas::DrawBitmapRectFlags) (+0xa84)
SkGpuDevice::drawBitmapRect(SkDraw const&, SkBitmap const&, SkRect const*, SkRect const&, SkPaint const&, SkCanvas::DrawBitmapRectFlags) (+0x2bb)
SkCanvas::internalDrawBitmapRect(SkBitmap const&, SkRect const*, SkRect const&, SkPaint const*, SkCanvas::DrawBitmapRectFlags) (+0x2a9)
SkCanvas::onDrawBitmapRect(SkBitmap const&, SkRect const*, SkRect const&, SkPaint const*, SkCanvas::DrawBitmapRectFlags) (+0x118)
SkCanvas::drawBitmapRectToRect(SkBitmap const&, SkRect const*, SkRect const&, SkPaint const*, SkCanvas::DrawBitmapRectFlags) (+0x60)
void SkRecords::Draw::draw<SkRecords::DrawBitmapRectToRect>(SkRecords::DrawBitmapRectToRect const&) (+0x8a)
void SkRecords::Draw::operator()<SkRecords::DrawBitmapRectToRect>(SkRecords::DrawBitmapRectToRect const&) (+0x1d)
void SkRecord::Record::visit<void, SkRecords::Draw>(SkRecord::Type8, SkRecords::Draw&) const (+0x298)
void SkRecord::visit<void, SkRecords::Draw>(unsigned int, SkRecords::Draw&) const (+0xbc)
SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*) (+0x2eb)
SkPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const (+0x186)
SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*) (+0xe0)
SkCanvas::drawPicture(SkPicture const*) (+0x11b)
DM::SKPSrc::draw(SkCanvas*) const (+0x25b)
DM::GPUSink::draw(DM::Src const&, SkBitmap*, SkWStream*, SkString*) const (+0x21d)
Task::Run(Task*) (+0x1de)
run_enclave(SkTArray<Task, false>*) (+0x49)
run_enclave_and_gpu_tests(SkTArray<Task, false>*) (+0x15)
(anonymous namespace)::ThreadPool::Wait(int*) (+0x14b)
SkTaskGroup::wait() (+0x15)
dm_main() (+0x624)
main (+0x27)

Original issue's description:
> DM: lazy decoding on SKP playback
>
> Command `out/Release/dm --config pdf --src gm skp`, uses 27% less RAM.
>
> Committed: https://skia.googlesource.com/skia/+/77d366d72a6ae83fb0abcb2ec7e2d692fef2e923

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

Review URL: https://codereview.chromium.org/947103005
/external/skia/dm/DMSrcSink.cpp
77d366d72a6ae83fb0abcb2ec7e2d692fef2e923 23-Feb-2015 halcanary <halcanary@google.com> DM: lazy decoding on SKP playback

Command `out/Release/dm --config pdf --src gm skp`, uses 27% less RAM.

Review URL: https://codereview.chromium.org/943383002
/external/skia/dm/DMSrcSink.cpp
d603b22903bf7c023226bf52bd7c1f49a9bee1bf 17-Feb-2015 mtklein <mtklein@chromium.org> Suggested version with 'undo'.

BUG=skia:

Review URL: https://codereview.chromium.org/931483002
/external/skia/dm/DMSrcSink.cpp
ad66f9b15fd44468b5f013534ee333dc68d6bed6 14-Feb-2015 mtklein <mtklein@chromium.org> DM: don't leak the null canvas in NullSink.

Also make NullSink a real boy: declared among the other Sinks, impl in .cpp.

BUG=skia:

Review URL: https://codereview.chromium.org/922293003
/external/skia/dm/DMSrcSink.cpp
2aafe6f427f6d98aa4d173efc6195fe245add91d 06-Feb-2015 fmalita <fmalita@chromium.org> Add SkSVGCanvas

Add a public SVG canvas factory + move the SVG files from
experimental -> src/svg/.

Update current clients to the new API.

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

Review URL: https://codereview.chromium.org/902583006
/external/skia/dm/DMSrcSink.cpp
b9eb4ac0f1c29d6fe10ad7ff81ed8326ac1ea043 03-Feb-2015 mtklein <mtklein@chromium.org> patch from issue 886233004 at patchset 40001 (http://crrev.com/886233004#ps40001)

... with changes proposed in the review.

BUG=skia:

Review URL: https://codereview.chromium.org/894013002
/external/skia/dm/DMSrcSink.cpp
8a4527e98a57b1d2dd248a635f0c4fa227be2089 01-Feb-2015 mtklein <mtklein@chromium.org> SVG backend in DM

Not enabled by default, but this should get you SKPs, GMs etc for free to play with.

$ out/Debug/dm -w svgs --src gm skp --config svg

BUG=skia:

Review URL: https://codereview.chromium.org/892693002
/external/skia/dm/DMSrcSink.cpp
edc93bc74003e2c19219ba0b30383868b5371a96 30-Jan-2015 mtklein <mtklein@chromium.org> Suggestions and merge in the other CL.

I had some suggestions on the subset CL, and took the opportunity to rebase it
against head and merge in the other color type CL.

BUG=skia:

Review URL: https://codereview.chromium.org/893703002
/external/skia/dm/DMSrcSink.cpp
8d17a13a71edb0d8412e4354c428582b74587b79 30-Jan-2015 mtklein <mtklein@chromium.org> DM: paths as implict strings too.

BUG=skia:

Review URL: https://codereview.chromium.org/891823002
/external/skia/dm/DMSrcSink.cpp
f4ba3219c2d46f41f26876a14c484c4fc581286a 29-Jan-2015 mtklein <mtklein@google.com> Revert of DM::SKPSrc::size() reports correct size. (patchset #3 id:40001 of https://codereview.chromium.org/863243005/)

Reason for revert:
Still no good on Chrome OS bot:

http://build.chromium.org/p/client.skia/builders/Test-ChromeOS-Alex-GMA3150-x86-Release/builds/628/steps/dm/logs/stdio

Original issue's description:
> DM::SKPSrc::size() reports correct size.
>
> Also, DM::GPUSink and DM::RasterSink crop DM::Src::size() to 2048x2048.
>
> Motivation:
> Improve PDF testing by printing the entire SKP.
>
> Source: http://crrev.com/863243004
>
> BUG=skia:3365
>
> Committed: https://skia.googlesource.com/skia/+/441b10eac09a1f44983e35da827a6b438a409e63
>
> CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu12-ShuttleA-GTX660-x86-Release-Trybot,Test-ChromeOS-Alex-GMA3150-x86-Release-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/d4dd58e43ca4551531ad6a9f54bfc5632ea45a80

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

Review URL: https://codereview.chromium.org/886543005
/external/skia/dm/DMSrcSink.cpp
d4dd58e43ca4551531ad6a9f54bfc5632ea45a80 28-Jan-2015 mtklein <mtklein@chromium.org> DM::SKPSrc::size() reports correct size.

Also, DM::GPUSink and DM::RasterSink crop DM::Src::size() to 2048x2048.

Motivation:
Improve PDF testing by printing the entire SKP.

Source: http://crrev.com/863243004

BUG=skia:3365

Committed: https://skia.googlesource.com/skia/+/441b10eac09a1f44983e35da827a6b438a409e63

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

Review URL: https://codereview.chromium.org/863243005
/external/skia/dm/DMSrcSink.cpp
52f401ee7bdb39f7c9ba6cca4ee1db9b93d5cb45 28-Jan-2015 mtklein <mtklein@google.com> Revert of DM::SKPSrc::size() reports correct size. (patchset #1 id:1 of https://codereview.chromium.org/863243005/)

Reason for revert:
OOM on 32-bit machines.

Original issue's description:
> DM::SKPSrc::size() reports correct size.
>
> Also, DM::GPUSink and DM::RasterSink crop DM::Src::size() to 2048x2048.
>
> Motivation:
> Improve PDF testing by printing the entire SKP.
>
> Source: http://crrev.com/863243004
>
> BUG=skia:3365
>
> Committed: https://skia.googlesource.com/skia/+/441b10eac09a1f44983e35da827a6b438a409e63

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

Review URL: https://codereview.chromium.org/884743003
/external/skia/dm/DMSrcSink.cpp
fd4a993f8b162f6ca541514234a81759b67dc64d 28-Jan-2015 halcanary <halcanary@google.com> DM::PDFSink::draw excercises multi-page pdf

BUG=skia:3365

Review URL: https://codereview.chromium.org/881343002
/external/skia/dm/DMSrcSink.cpp
9c3f17d6e859a11535f40497cb9f6e777d15f62e 28-Jan-2015 mtklein <mtklein@chromium.org> Fold gmtoskp into DM, as --src gm --config skp.

BUG=skia:

Review URL: https://codereview.chromium.org/885733002
/external/skia/dm/DMSrcSink.cpp
441b10eac09a1f44983e35da827a6b438a409e63 28-Jan-2015 mtklein <mtklein@chromium.org> DM::SKPSrc::size() reports correct size.

Also, DM::GPUSink and DM::RasterSink crop DM::Src::size() to 2048x2048.

Motivation:
Improve PDF testing by printing the entire SKP.

Source: http://crrev.com/863243004

BUG=skia:3365

Review URL: https://codereview.chromium.org/863243005
/external/skia/dm/DMSrcSink.cpp
55e88b226ccb85d2c712a9e3e9e1f5bdcaac05ac 22-Jan-2015 mtklein <mtklein@chromium.org> More natural way to serialize GPU tasks and tests.

This basically takes out the Windows-only hacks and promotes them to
cross-platform behavior driven by --gpu_threading.
- When --gpu_threading is false (the default), this puts GPU tasks and tests
together in the same GPU enclave. They all run serially.
- When --gpu_threading is true, both the tests and the tasks run totally
independently, just like the thread-safe CPU-bound work.

BUG=skia:3255

Review URL: https://codereview.chromium.org/847273005
/external/skia/dm/DMSrcSink.cpp
968f18cba539301b912ad1481784dc0216b7bbe1 21-Jan-2015 mtklein <mtklein@chromium.org> Easy DM TODO: LazyDecodeBitmap does not help (or hinder).

BUG=skia:3255

Review URL: https://codereview.chromium.org/859303003
/external/skia/dm/DMSrcSink.cpp
7edca21226017e6b87a0c95fa571d34c36ceca04 21-Jan-2015 mtklein <mtklein@chromium.org> Don't test pipe modes nobody uses.

SkDeferredCanvas uses a simple pipe: no cross-process, no shared-address, etc.
(see src/utils/SkDeferredCanvas.cpp:306).

We could just remove these modes from the bot configs, but I'd like to take the
opportunity to simplify the DM code too. I'll happily volunteer to put things
back should we decide we want to test these modes.

BUG=skia:

Review URL: https://codereview.chromium.org/861303003
/external/skia/dm/DMSrcSink.cpp
a1193e4b0e34a7e4e1bd33e9708d7341679f8321 21-Jan-2015 scroggo <scroggo@google.com> Make SkStream *not* ref counted.

SkStream is a stateful object, so it does not make sense for it to have
multiple owners. Make SkStream inherit directly from SkNoncopyable.

Update methods which previously called SkStream::ref() (e.g.
SkImageDecoder::buildTileIndex() and SkFrontBufferedStream::Create(),
which required the existing owners to call SkStream::unref()) to take
ownership of their SkStream parameters and delete when done (including
on failure).

Switch all SkAutoTUnref<SkStream>s to SkAutoTDelete<SkStream>s. In some
cases this means heap allocating streams that were previously stack
allocated.

Respect ownership rules of SkTypeface::CreateFromStream() and
SkImageDecoder::buildTileIndex().

Update the comments for exceptional methods which do not affect the
ownership of their SkStream parameters (e.g.
SkPicture::CreateFromStream() and SkTypeface::Deserialize()) to be
explicit about ownership.

Remove test_stream_life, which tested that buildTileIndex() behaved
correctly when SkStream was a ref counted object. The test does not
make sense now that it is not.

In SkPDFStream, remove the SkMemoryStream member. Instead of using it,
create a new SkMemoryStream to pass to fDataStream (which is now an
SkAutoTDelete).

Make other pdf rasterizers behave like SkPDFDocumentToBitmap.

SkPDFDocumentToBitmap delete the SkStream, so do the same in the
following pdf rasterizers:

SkPopplerRasterizePDF
SkNativeRasterizePDF
SkNoRasterizePDF

Requires a change to Android, which currently treats SkStreams as ref
counted objects.

Review URL: https://codereview.chromium.org/849103004
/external/skia/dm/DMSrcSink.cpp
9264a95608c08623f2955823703e5c77558cafa8 20-Jan-2015 mtklein <mtklein@chromium.org> Image subsets as part of the name instead of a separate source type.

This will hold us closer to the principle that the test name (and only the test
name) should correspond to expected output. By the same reasoning, mix in the
number of subsets: if that changes, the expected output also changes.

BUG=skia:3255

Review URL: https://codereview.chromium.org/863723002
/external/skia/dm/DMSrcSink.cpp
75d98fd6f23fc73aad3ce87d6c4b6c41c2d1536e 18-Jan-2015 mtklein <mtklein@chromium.org> DM: Don't hold onto data longer than needed.

On my laptop, this cuts peak memory usage by more than half.

BUG=skia:3255

Review URL: https://codereview.chromium.org/859623002
/external/skia/dm/DMSrcSink.cpp
82d2843cc59dc048b7d8d1d928dab743d8e85a3b 15-Jan-2015 mtklein <mtklein@chromium.org> turn back on gpu tests

NOTREECHECKS=true

BUG=skia:3255

Review URL: https://codereview.chromium.org/817573004
/external/skia/dm/DMSrcSink.cpp
748ca3bf2d170708f263693e8579e6722389d0ef 15-Jan-2015 mtklein <mtklein@chromium.org> Sketch DM refactor.

BUG=skia:3255

I think this supports everything DM used to, but has completely refactored how
it works to fit the design in the bug.

Configs like "tiles-gpu" are automatically wired up.

I wouldn't suggest looking at this as a diff. There's just a bunch of deleted
files, a few new files, and one new file that shares a name with a deleted file
(DM.cpp).

NOTREECHECKS=true

Committed: https://skia.googlesource.com/skia/+/709d2c3e5062c5b57f91273bfc11a751f5b2bb88

Review URL: https://codereview.chromium.org/788243008
/external/skia/dm/DMSrcSink.cpp
114c3cd0543d77aa0ac08d8af436ac7f9d32714d 15-Jan-2015 mtklein <mtklein@google.com> Revert of Sketch DM refactor. (patchset #45 id:850001 of https://codereview.chromium.org/788243008/)

Reason for revert:
plenty of data

Original issue's description:
> Sketch DM refactor.
>
> BUG=skia:3255
>
>
> I think this supports everything DM used to, but has completely refactored how
> it works to fit the design in the bug.
>
> Configs like "tiles-gpu" are automatically wired up.
>
> I wouldn't suggest looking at this as a diff. There's just a bunch of deleted
> files, a few new files, and one new file that shares a name with a deleted file
> (DM.cpp).
>
> NOTREECHECKS=true
>
> Committed: https://skia.googlesource.com/skia/+/709d2c3e5062c5b57f91273bfc11a751f5b2bb88

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

Review URL: https://codereview.chromium.org/853883004
/external/skia/dm/DMSrcSink.cpp
709d2c3e5062c5b57f91273bfc11a751f5b2bb88 15-Jan-2015 mtklein <mtklein@chromium.org> Sketch DM refactor.

BUG=skia:3255

I think this supports everything DM used to, but has completely refactored how
it works to fit the design in the bug.

Configs like "tiles-gpu" are automatically wired up.

I wouldn't suggest looking at this as a diff. There's just a bunch of deleted
files, a few new files, and one new file that shares a name with a deleted file
(DM.cpp).

NOTREECHECKS=true

Review URL: https://codereview.chromium.org/788243008
/external/skia/dm/DMSrcSink.cpp