aboutsummaryrefslogtreecommitdiff
path: root/bench/AndroidCodecBench.cpp
AgeCommit message (Collapse)Author
2019-10-03Reland "Reland "SkSurface asynchronous read APIs allow client to extend ↵Brian Salomon
pixel lifetime"" This is a reland of 6fc04f88a89ed2c9a1b4aa48bcd28602a69a457b Original change's description: > Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime" > > This is a reland of ce240cc6fd8ec95bd051c7df2173dad2ae8f6ad6 > > Original change's description: > > SkSurface asynchronous read APIs allow client to extend pixel lifetime > > > > Previously the pixel data passed to the client was only valid during > > the client's callback. This meant if the client wanted to defer > > processing of the data a copy was necessary. > > > > Now we pass an object to the callback and the pixel lifetime is tied > > to the lifetime of that object. > > > > The object may be holding a GPU transfer buffer mapped. We don't assume > > that the object will be released on the direct GrContext thread. So > > when the object is destroyed it posts a message to a new type, > > GrClientMappedBufferManager, hanging off the direct context. The direct > > context will periodically check for messages and unmap and then unref > > buffers so that they can be reused. Currently this is done in > > GrContext::performDeferredCleanup() and GrDrawingManager::flush(). > > > > The old API is kept around for backwards compatibility but it is > > reimplemented as a bridge on top of the new mechanism. > > > > Also a utility function to SkImageInfo is added to directly make a new > > info with a specified dimensions rather than passing the width and > > height separately to makeWH(). > > > > Bug: chromium:973403 > > Bug: skia:8962 > > > > Change-Id: Id5cf04235376170142a48e90d3ecd13fd021a2a6 > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245457 > > Reviewed-by: Brian Osman <brianosman@google.com> > > Commit-Queue: Brian Salomon <bsalomon@google.com> > > Bug: chromium:973403, skia:8962 > Change-Id: I5cecd36276c8b6dc942cf549c7095db2df88530c > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245678 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> Bug: chromium:973403, skia:8962 Change-Id: Ie584c1c3ef8021c976f71b708e53871c693cc450 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246057 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-03Revert "Reland "SkSurface asynchronous read APIs allow client to extend ↵Ravi Mistry
pixel lifetime"" This reverts commit 6fc04f88a89ed2c9a1b4aa48bcd28602a69a457b. Reason for revert: Chrome roll failure suspect because of: * https://chromium-review.googlesource.com/c/chromium/src/+/1837131 (22 commits) * https://chromium-review.googlesource.com/c/chromium/src/+/1837214 (24 commits) Original change's description: > Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime" > > This is a reland of ce240cc6fd8ec95bd051c7df2173dad2ae8f6ad6 > > Original change's description: > > SkSurface asynchronous read APIs allow client to extend pixel lifetime > > > > Previously the pixel data passed to the client was only valid during > > the client's callback. This meant if the client wanted to defer > > processing of the data a copy was necessary. > > > > Now we pass an object to the callback and the pixel lifetime is tied > > to the lifetime of that object. > > > > The object may be holding a GPU transfer buffer mapped. We don't assume > > that the object will be released on the direct GrContext thread. So > > when the object is destroyed it posts a message to a new type, > > GrClientMappedBufferManager, hanging off the direct context. The direct > > context will periodically check for messages and unmap and then unref > > buffers so that they can be reused. Currently this is done in > > GrContext::performDeferredCleanup() and GrDrawingManager::flush(). > > > > The old API is kept around for backwards compatibility but it is > > reimplemented as a bridge on top of the new mechanism. > > > > Also a utility function to SkImageInfo is added to directly make a new > > info with a specified dimensions rather than passing the width and > > height separately to makeWH(). > > > > Bug: chromium:973403 > > Bug: skia:8962 > > > > Change-Id: Id5cf04235376170142a48e90d3ecd13fd021a2a6 > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245457 > > Reviewed-by: Brian Osman <brianosman@google.com> > > Commit-Queue: Brian Salomon <bsalomon@google.com> > > Bug: chromium:973403, skia:8962 > Change-Id: I5cecd36276c8b6dc942cf549c7095db2df88530c > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245678 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,brianosman@google.com Change-Id: I9e01d1b82fb399b94292441d91da51176bb161d9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:973403, skia:8962 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245956 Reviewed-by: Ravi Mistry <rmistry@google.com> Commit-Queue: Ravi Mistry <rmistry@google.com>
2019-10-03Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime"Brian Salomon
This is a reland of ce240cc6fd8ec95bd051c7df2173dad2ae8f6ad6 Original change's description: > SkSurface asynchronous read APIs allow client to extend pixel lifetime > > Previously the pixel data passed to the client was only valid during > the client's callback. This meant if the client wanted to defer > processing of the data a copy was necessary. > > Now we pass an object to the callback and the pixel lifetime is tied > to the lifetime of that object. > > The object may be holding a GPU transfer buffer mapped. We don't assume > that the object will be released on the direct GrContext thread. So > when the object is destroyed it posts a message to a new type, > GrClientMappedBufferManager, hanging off the direct context. The direct > context will periodically check for messages and unmap and then unref > buffers so that they can be reused. Currently this is done in > GrContext::performDeferredCleanup() and GrDrawingManager::flush(). > > The old API is kept around for backwards compatibility but it is > reimplemented as a bridge on top of the new mechanism. > > Also a utility function to SkImageInfo is added to directly make a new > info with a specified dimensions rather than passing the width and > height separately to makeWH(). > > Bug: chromium:973403 > Bug: skia:8962 > > Change-Id: Id5cf04235376170142a48e90d3ecd13fd021a2a6 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245457 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> Bug: chromium:973403, skia:8962 Change-Id: I5cecd36276c8b6dc942cf549c7095db2df88530c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245678 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-02Revert "SkSurface asynchronous read APIs allow client to extend pixel lifetime"Brian Salomon
This reverts commit ce240cc6fd8ec95bd051c7df2173dad2ae8f6ad6. Reason for revert: crashing in chrome unit test, abandoned context related? Original change's description: > SkSurface asynchronous read APIs allow client to extend pixel lifetime > > Previously the pixel data passed to the client was only valid during > the client's callback. This meant if the client wanted to defer > processing of the data a copy was necessary. > > Now we pass an object to the callback and the pixel lifetime is tied > to the lifetime of that object. > > The object may be holding a GPU transfer buffer mapped. We don't assume > that the object will be released on the direct GrContext thread. So > when the object is destroyed it posts a message to a new type, > GrClientMappedBufferManager, hanging off the direct context. The direct > context will periodically check for messages and unmap and then unref > buffers so that they can be reused. Currently this is done in > GrContext::performDeferredCleanup() and GrDrawingManager::flush(). > > The old API is kept around for backwards compatibility but it is > reimplemented as a bridge on top of the new mechanism. > > Also a utility function to SkImageInfo is added to directly make a new > info with a specified dimensions rather than passing the width and > height separately to makeWH(). > > Bug: chromium:973403 > Bug: skia:8962 > > Change-Id: Id5cf04235376170142a48e90d3ecd13fd021a2a6 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245457 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,brianosman@google.com Change-Id: Ic14cf07a7629b167c9f34a651aa87a0326e74207 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:973403, skia:8962 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245721 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-02SkSurface asynchronous read APIs allow client to extend pixel lifetimeBrian Salomon
Previously the pixel data passed to the client was only valid during the client's callback. This meant if the client wanted to defer processing of the data a copy was necessary. Now we pass an object to the callback and the pixel lifetime is tied to the lifetime of that object. The object may be holding a GPU transfer buffer mapped. We don't assume that the object will be released on the direct GrContext thread. So when the object is destroyed it posts a message to a new type, GrClientMappedBufferManager, hanging off the direct context. The direct context will periodically check for messages and unmap and then unref buffers so that they can be reused. Currently this is done in GrContext::performDeferredCleanup() and GrDrawingManager::flush(). The old API is kept around for backwards compatibility but it is reimplemented as a bridge on top of the new mechanism. Also a utility function to SkImageInfo is added to directly make a new info with a specified dimensions rather than passing the width and height separately to makeWH(). Bug: chromium:973403 Bug: skia:8962 Change-Id: Id5cf04235376170142a48e90d3ecd13fd021a2a6 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245457 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-04-24rewrite includes to not need so much -IfooMike Klein
Current strategy: everything from the top Things to look at first are the manual changes: - added tools/rewrite_includes.py - removed -Idirectives from BUILD.gn - various compile.sh simplifications - tweak tools/embed_resources.py - update gn/find_headers.py to write paths from the top - update gn/gn_to_bp.py SkUserConfig.h layout so that #include "include/config/SkUserConfig.h" always gets the header we want. No-Presubmit: true Change-Id: I73a4b181654e0e38d229bc456c0d0854bae3363e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209706 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Hal Canary <halcanary@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-03-20remove Sk prefix from CommandLineFlagsMike Klein
The command line flag package is tool-only, not part of Skia per se, and does not need an Sk prefix to avoid naming conflicts. And git clang-format. Change-Id: Ida8477779e51750ed0475590ed2454841b23d6ea Reviewed-on: https://skia-review.googlesource.com/c/skia/+/202307 Auto-Submit: Mike Klein <mtklein@google.com> Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
2017-10-03Revert[4] "guard old apis for querying byte-size of a bitmap/imageinfo/pixmap"Mike Reed
This reverts commit 5a2e50edc51006ce91366e177a9d21a16775d7fd. Bug: skia: Change-Id: I8d28b5c07d90130e5a1653923740eaf189ecb954 Reviewed-on: https://skia-review.googlesource.com/53900 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
2017-10-02Revert "Revert "Revert "guard old apis for querying byte-size of a ↵Mike Reed
bitmap/imageinfo/pixmap""" This reverts commit cd284c532376d16fcc4ed75baf3da65c3e4a2e95. Reason for revert: assert fired in SkMallocPixelRef.cpp:61: fatal error: "assert(info.computeByteSize(rowBytes) == info.getSafeSize(rowBytes))" google3 thinks it was from surface_rowbytes Original change's description: > Revert "Revert "guard old apis for querying byte-size of a bitmap/imageinfo/pixmap"" > > This reverts commit 809cbedd4b252be221b2ac3b4269d312fd8f53a0. > > Bug: skia: > Change-Id: I680d8daeeeeb15526b44c1305d8fb0c6bfa38e1d > Reviewed-on: https://skia-review.googlesource.com/52665 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Florin Malita <fmalita@chromium.org> TBR=fmalita@chromium.org,reed@google.com Change-Id: I41e3f7a3f791cc8183291847e783ed8a53bc91d2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/53802 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
2017-10-02Revert "Revert "guard old apis for querying byte-size of a ↵Mike Reed
bitmap/imageinfo/pixmap"" This reverts commit 809cbedd4b252be221b2ac3b4269d312fd8f53a0. Bug: skia: Change-Id: I680d8daeeeeb15526b44c1305d8fb0c6bfa38e1d Reviewed-on: https://skia-review.googlesource.com/52665 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-09-27Revert "guard old apis for querying byte-size of a bitmap/imageinfo/pixmap"Jim Van Verth
This reverts commit 88757dacd4f532a0f647c02ae0ee596d31ab5c68. Reason for revert: Still seems to be failing Chromium "telemetry_perf_unittests (with patch) on Android" on android_n5x_swarming_rel. Original change's description: > guard old apis for querying byte-size of a bitmap/imageinfo/pixmap > > Now with legacy behavior for allocpixels > > This was reverted, so the current CL is a "fix" on top of ... > https://skia-review.googlesource.com/c/skia/+/50980 > > Related update to Chrome (in preparation for this change) > https://chromium-review.googlesource.com/c/chromium/src/+/685719 > > Bug: skia: > Change-Id: I4b370ee7e95083ab27421f008132219c9c7b86e9 > Reviewed-on: https://skia-review.googlesource.com/51341 > Reviewed-by: Florin Malita <fmalita@chromium.org> > Commit-Queue: Mike Reed <reed@google.com> TBR=fmalita@chromium.org,reed@google.com Change-Id: I827a0ca1d1e3909e648fde3342cdb8601d34da8d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/52381 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
2017-09-27guard old apis for querying byte-size of a bitmap/imageinfo/pixmapMike Reed
Now with legacy behavior for allocpixels This was reverted, so the current CL is a "fix" on top of ... https://skia-review.googlesource.com/c/skia/+/50980 Related update to Chrome (in preparation for this change) https://chromium-review.googlesource.com/c/chromium/src/+/685719 Bug: skia: Change-Id: I4b370ee7e95083ab27421f008132219c9c7b86e9 Reviewed-on: https://skia-review.googlesource.com/51341 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
2017-09-26Revert "guard old apis for querying byte-size of a bitmap/imageinfo/pixmap"Greg Daniel
This reverts commit 98a6216b18b57c2f7a0d58f542c60503686aed69. Reason for revert: breaking the chrome roll. Looks like they may be writing data to create an image across all the row bytes and thus writing to unalloced data on the last row. Link to example failing bot: https://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/539960 Original change's description: > guard old apis for querying byte-size of a bitmap/imageinfo/pixmap > > Previously we had size_t and uint64_t variations. > > The new (simpler) API always.. > - returns size_t, or 0 if the calculation overflowed > - returns the trimmed size (does not include rowBytes padding for the last row) > > Bug: skia: > Change-Id: I05173e877918327c7b207d2f7f1ab0db36892e2e > Reviewed-on: https://skia-review.googlesource.com/50980 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Florin Malita <fmalita@chromium.org> > Reviewed-by: Leon Scroggins <scroggo@google.com> TBR=mtklein@google.com,herb@google.com,scroggo@google.com,fmalita@chromium.org,reed@google.com Change-Id: I726f6ab1b36b14979ba6f37105e0a469b3f0dbc0 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/51262 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-09-26guard old apis for querying byte-size of a bitmap/imageinfo/pixmapMike Reed
Previously we had size_t and uint64_t variations. The new (simpler) API always.. - returns size_t, or 0 if the calculation overflowed - returns the trimmed size (does not include rowBytes padding for the last row) Bug: skia: Change-Id: I05173e877918327c7b207d2f7f1ab0db36892e2e Reviewed-on: https://skia-review.googlesource.com/50980 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Leon Scroggins <scroggo@google.com>
2017-07-25use unique_ptr for codec factoriesMike Reed
Will need guards for android (at least) Bug: skia: Change-Id: I2bb8e656997984489ef1f2e41cd3d301c4e7b947 Reviewed-on: https://skia-review.googlesource.com/26040 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
2016-11-03Remove SkAutoTDelete.Ben Wagner
Replace with std::unique_ptr. Change-Id: I5806cfbb30515fcb20e5e66ce13fb5f3b8728176 Reviewed-on: https://skia-review.googlesource.com/4381 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
2016-09-12change SkStreams to work with sk_sp<SkData> instead of SkData*reed
BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2333713002 Review-Url: https://codereview.chromium.org/2333713002
2016-08-03Convert SkAutoTUnref<SkData> to sk_sp<SkData>.bungeman
With the move from SkData::NewXXX to SkData::MakeXXX most SkAutoTUnref<SkData> were changed to sk_sp<SkData>. However, there are still a few SkAutoTUnref<SkData> around, so clean them up. Review-Url: https://codereview.chromium.org/2212493002
2016-02-11Add AndroidCodecBench to time scaled decodesmsarett
BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1685693003 Review URL: https://codereview.chromium.org/1685693003