aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* CCPR: Don't forget resource provider in Pipeline InitArgsGravatar Chris Dalton2017-10-06
| | | | | | | | | | | | Ideally this would use an initializer list to guarantee we never forget another value in the future, but the default member values don't allow it. Bug: skia: Change-Id: I21e5b33bb99c4e0d42a7988b444d08266320bf37 Reviewed-on: https://skia-review.googlesource.com/56262 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* When mip mapping, do YUV mip generation on CPU then upload to GPU.Gravatar Greg Daniel2017-10-05
| | | | | | | | Bug: skia: Change-Id: I930508b38e828652dfbb7c3f9d934d206cf1d72a Reviewed-on: https://skia-review.googlesource.com/56060 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* experiments to speed up drawing 32bit images into 565Gravatar Mike Reed2017-10-05
| | | | | | | | | | | | New (legacy style) blitters only coded for shaders (and very restricted blendmodes) Bug: skia: See https://buganizer.corp.google.com/issues/64884885 Change-Id: Ie2546093bfe1e670a825dfd9542d252d53732c40 Reviewed-on: https://skia-review.googlesource.com/54103 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Herb Derby <herb@google.com>
* Fewer atomic ops in debug with SkBufferHead.Gravatar Ben Wagner2017-10-05
| | | | | | | | | | | | | | In debug builds an assert would do an atomic load to assert the reference count was greater than zero, then a fetch_add would access the value again to do the reference counting. Instead just assert in debug on the value produced by the reference counting. This both improves debug performance and (more importantly) makes the debug asserts correct instead of mearly opprotunistic. Change-Id: Ic4ce788930d2564b5f86ab0e09fcd66006c8b73d Reviewed-on: https://skia-review.googlesource.com/55880 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com>
* clamp to [0,1] in all gradient tilersGravatar Mike Klein2017-10-05
| | | | | | | | | | | | | | | | | Today gradient mirror and repeat don't explicitly clamp. They work fine for normal float values, but blow up with inputs like infinity and NaN, and those aren't hard to construct with a combination of a funky matrix and some squaring for xy -> radius. So explicitly clamp in each of the three matrix tilers. This should fix the fuzz at the associated bug. Bug: skia:7093 Change-Id: Idd44e3c7a1ed95e2b1ace8eb953b62eddeb4e00e Reviewed-on: https://skia-review.googlesource.com/55702 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Clean up SkString reference counting a bit.Gravatar Ben Wagner2017-10-05
| | | | | | | | | | | This reverts commit 01f8e41c1368bfd60d3f011cb5aa9cc478799e63, and then works around whatever issues were seen on Ubuntu 14 by continuing the clean up. Change-Id: I3523b12c83e4efef01a8142c00cde4e3e12189fa Reviewed-on: https://skia-review.googlesource.com/55761 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Use draws instead of clears on Macs w/ Intel Iris Pro GPUsGravatar Robert Phillips2017-10-05
| | | | | | | | Bug: 768134 Change-Id: Iebebb617208c0d8415bebef495c6ff02b17efd65 Reviewed-on: https://skia-review.googlesource.com/55800 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* abort if glyph metrics fall outside safe rectGravatar Mike Klein2017-10-05
| | | | | | | | | | | | Caught this while debugging a fuzz from Kevin. Haven't seen this on Windows, but seems like it's got roughly the same possible issue. Change-Id: I5e1c7328890492b3f3295af27757e456e26f9cbf Reviewed-on: https://skia-review.googlesource.com/55760 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* reformat hard-to-read preprocessor in SkJumper.cppGravatar Mike Klein2017-10-05
| | | | | | | Change-Id: I9a140e342e7b12b1cbb09503ca8fc03016717784 Reviewed-on: https://skia-review.googlesource.com/55701 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* converted GrConfigConversionEffect to SkSLGravatar Ethan Nicholas2017-10-05
| | | | | | | | Bug: skia: Change-Id: If17cf0fc8b857d22f33a462a39a02bcddd15deda Reviewed-on: https://skia-review.googlesource.com/55741 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* aggressively refactor pipeline building in SkColorSpaceXformGravatar Mike Klein2017-10-05
| | | | | | | | | | | | | | | | | | | | | | | This rewrites things into 5 distinct phases: 1) load src 2) linearize src 3) gamut transform 4) apply dst transfer function and premul 5) store dst In the existing code, steps 1+2 were really intertwined, and we had all sorts of arbitrary restrictions on input formats and output formats. I've removed most of those. This is guarded by SK_COLOR_SPACE_XFORM_LEGACY_PIPELINE for Blink layout tests. (The 35 diffs all look fine.) Bug: skia:7114 Change-Id: Ib5f15d1ac3240a6ef202ba30acef660152beee82 Reviewed-on: https://skia-review.googlesource.com/55320 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com>
* Update SkBufferHead fRefCnt to std::atomic.Gravatar Ben Wagner2017-10-05
| | | | | | | | | This fixes the noisiest bit of a debug tsan build. Change-Id: I5df8cb3003c73640c04bd73e0aad1aefd87f833e Reviewed-on: https://skia-review.googlesource.com/55480 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com>
* Always use draws instead of clears for ANGLE D3D11Gravatar Robert Phillips2017-10-05
| | | | | | | | | | | | | | | | At least for my repro case on a Z620 with an nVidia Quadro K620 and recent drivers, this eliminates the noise artifacts. It appears that full target clears are broken in ANGLE D3D11. Note I was never able to repro the bug in the D3D9 or openGL configs. The bug reproed for both the ES2 and ES3 ANGLE D3D11 configs though. Bug: 768134 Change-Id: I68e5fa0dc5e84b31d1d01a1e4b86132ab12a2e09 Reviewed-on: https://skia-review.googlesource.com/55381 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Clean up SkString reference counting a bit."Gravatar Robert Phillips2017-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a910c847e9d04e183e9e610902cbd363c8488196. Reason for revert: Compilation failure on Ubuntu14 bots ../../../../../work/skia/src/core/SkString.cpp:200:55: error: could not convert ‘{0, {0}, 0}’ from ‘<brace-enclosed initializer list>’ to ‘const SkString::Rec’ const SkString::Rec SkString::gEmptyRec = { 0, {0}, 0 }; Original change's description: > Clean up SkString reference counting a bit. > > BUG=skia:7107 > > Change-Id: I47072bf31b902c79dbb850179ff6d35940de3e63 > Reviewed-on: https://skia-review.googlesource.com/54720 > Reviewed-by: Ben Wagner <bungeman@google.com> > Commit-Queue: Ben Wagner <bungeman@google.com> TBR=mtklein@google.com,bungeman@google.com,reed@google.com Change-Id: I6ec327511e8e1c1fd7e4c1bd5839c0547d4ab609 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7107 Reviewed-on: https://skia-review.googlesource.com/55640 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Don't execute onFlush op lists until after GPU data is uploaded"Gravatar Mike Klein2017-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 374a4e49e47a2f1f793a4673f285984953a73308. Reason for revert: lots of failures across the board. Here's one: ../../../src/gpu/GrDrawingManager.cpp:203: fatal error: "assert(onFlushOpList->unique())" Original change's description: > Don't execute onFlush op lists until after GPU data is uploaded > > Bug: skia: > Change-Id: I2ea15f67466761ebd24b9d4a8eb51cd2d452be3c > Reviewed-on: https://skia-review.googlesource.com/54942 > Reviewed-by: Robert Phillips <robertphillips@google.com> > Commit-Queue: Chris Dalton <csmartdalton@google.com> TBR=robertphillips@google.com,csmartdalton@google.com Change-Id: I3f9de3708dd925c93aefc1e6fe8a48833de9171b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/55600 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* refactor SkColorSpaceXform a bitGravatar Mike Klein2017-10-04
| | | | | | | | | | | | | | | | | I was having trouble reading my way through this code, so I decided it needed a little weedwhacking. The main thrust here is: - remove completely pointless ColorSpaceMatch templating - remove absurdly paranoid public/protected/private/friend relationships This is still about twice as overdesigned as I'd like... Change-Id: I275ddbe028ebb09ed383ed7bfaba394975eea27a Reviewed-on: https://skia-review.googlesource.com/55260 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com>
* Don't execute onFlush op lists until after GPU data is uploadedGravatar Chris Dalton2017-10-04
| | | | | | | | Bug: skia: Change-Id: I2ea15f67466761ebd24b9d4a8eb51cd2d452be3c Reviewed-on: https://skia-review.googlesource.com/54942 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Clean up SkString reference counting a bit.Gravatar Ben Wagner2017-10-04
| | | | | | | | | BUG=skia:7107 Change-Id: I47072bf31b902c79dbb850179ff6d35940de3e63 Reviewed-on: https://skia-review.googlesource.com/54720 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Avoid overflow computing reserve for aaclipGravatar Mike Reed2017-10-04
| | | | | | | | BUG=chromium:713764 Change-Id: I32c95157d5f2b21e9981a07092558a1f6294a463 Reviewed-on: https://skia-review.googlesource.com/55380 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "Update lockTextureProxy to return mipped proxys if mipping ↵Gravatar Greg Daniel2017-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is requested."" This reverts commit 87c76edd2c2247a6d0194a0e511a7bdc259aedf4. Reason for revert: attempt to reland Original change's description: > Revert "Update lockTextureProxy to return mipped proxys if mipping is requested." > > This reverts commit 97abf014b40cc17c4100768299ef8cccd335aff7. > > Reason for revert: REALLY Really really really big perf regressions > > Original change's description: > > Update lockTextureProxy to return mipped proxys if mipping is requested. > > > > We will either create a new mipped surface from scratch, or just create > > the base layer and copy that into the mipped surface. We then defer the > > creation of the rest of the mips to the GPU. > > > > Bug: skia: > > Change-Id: Ida3000ad5e666153c61b05e714f033138593b09b > > Reviewed-on: https://skia-review.googlesource.com/52743 > > Commit-Queue: Greg Daniel <egdaniel@google.com> > > Reviewed-by: Robert Phillips <robertphillips@google.com> > > TBR=egdaniel@google.com,robertphillips@google.com,brianosman@google.com > > Change-Id: If3b1ff555ef310b75493412a7533175195994684 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/54320 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Greg Daniel <egdaniel@google.com> TBR=egdaniel@google.com,robertphillips@google.com,brianosman@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: skia: Change-Id: I176ff7279f29eff536ab13aff8fda882b6ef7a2f Reviewed-on: https://skia-review.googlesource.com/55081 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Sever fOriginalPath connection whenever a GrShape becomes a simple typeGravatar Brian Osman2017-10-04
| | | | | | | | | | | | | | When drawing a round-rect, for example, we may end up in drawPath with a temporary path that was created with the rrect added. We ended up putting a genID listener on that (stack allocated) path, so we would evict cache entries immediately. This restores the old behavior, where cache entries for paths derived from simple types are never invalidated. Bug: skia:7087 Change-Id: I3eed9c3a289241bfe1e42036be3362f592256693 Reviewed-on: https://skia-review.googlesource.com/54460 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Rename GrOpList::reset to endFlushGravatar Chris Dalton2017-10-04
| | | | | | | | Bug: skia:7111 Change-Id: I9e48224c7edcc51bd0368cb7c115acbc3bf8da16 Reviewed-on: https://skia-review.googlesource.com/54500 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Use SK_DISABLE_DEFERRED_PROXIES to only disable deferred proxies for ChromeGravatar Robert Phillips2017-10-04
| | | | | | | | | | | This relies on https://chromium-review.googlesource.com/c/chromium/src/+/700475 (Readd SK_DISABLE_DEFERRED_PROXIES flag) landing in Chrome first. It refines the changes made in: https://skia-review.googlesource.com/c/skia/+/54004 (Temporarily disable deferred texture proxies) Change-Id: I12af50349516d32f74cd7f7dfd25a668284f64fa Reviewed-on: https://skia-review.googlesource.com/55100 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Revert "When flushing, reset flush state before op lists""Gravatar Greg Daniel2017-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f8bc0018bef9b3dc6362ac195111d01be66ed5fb. Reason for revert: disabling failing test Original change's description: > Revert "When flushing, reset flush state before op lists" > > This reverts commit 78bdee200c26520eb065728ae7c094b76ecaae66. > > Reason for revert: breaking PathRendererCacheTests.cpp unit test > > Original change's description: > > When flushing, reset flush state before op lists > > > > When we reset the flush state after executing the ops in a flush, we reset > > the stored pipelines which may be holding refs to resources in their processors. > > > > We want the resources that we wrote to in the op list to be freed last for caching > > LRU purposes. Thus we make sure to free all the pipeline resources first before > > resetting and freeing the op lists > > > > Bug: skia: > > Change-Id: I5b02e9b7532007b5854e906bf4d64e901e7e7e53 > > Reviewed-on: https://skia-review.googlesource.com/54760 > > Reviewed-by: Robert Phillips <robertphillips@google.com> > > Commit-Queue: Greg Daniel <egdaniel@google.com> > > TBR=egdaniel@google.com,robertphillips@google.com > > Change-Id: If74a158e90316553a401386c8c7a6b3c2b29a7df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/55080 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Greg Daniel <egdaniel@google.com> TBR=egdaniel@google.com,robertphillips@google.com Bug: skia: Change-Id: Ibdfe37c1f9e54956bf1725d1d7474a69efcd7673 Reviewed-on: https://skia-review.googlesource.com/55102 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Ensure glxGetProcAddress is declaredGravatar Brian Osman2017-10-04
| | | | | | | | | | Users on some systems reported that this was necessary. Bug: skia: Change-Id: I1e7f6c4859a34008c307256ab3d77265bdbe4f6b Reviewed-on: https://skia-review.googlesource.com/55101 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "When flushing, reset flush state before op lists"Gravatar Greg Daniel2017-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 78bdee200c26520eb065728ae7c094b76ecaae66. Reason for revert: breaking PathRendererCacheTests.cpp unit test Original change's description: > When flushing, reset flush state before op lists > > When we reset the flush state after executing the ops in a flush, we reset > the stored pipelines which may be holding refs to resources in their processors. > > We want the resources that we wrote to in the op list to be freed last for caching > LRU purposes. Thus we make sure to free all the pipeline resources first before > resetting and freeing the op lists > > Bug: skia: > Change-Id: I5b02e9b7532007b5854e906bf4d64e901e7e7e53 > Reviewed-on: https://skia-review.googlesource.com/54760 > Reviewed-by: Robert Phillips <robertphillips@google.com> > Commit-Queue: Greg Daniel <egdaniel@google.com> TBR=egdaniel@google.com,robertphillips@google.com Change-Id: If74a158e90316553a401386c8c7a6b3c2b29a7df No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/55080 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* When flushing, reset flush state before op listsGravatar Greg Daniel2017-10-04
| | | | | | | | | | | | | | | When we reset the flush state after executing the ops in a flush, we reset the stored pipelines which may be holding refs to resources in their processors. We want the resources that we wrote to in the op list to be freed last for caching LRU purposes. Thus we make sure to free all the pipeline resources first before resetting and freeing the op lists Bug: skia: Change-Id: I5b02e9b7532007b5854e906bf4d64e901e7e7e53 Reviewed-on: https://skia-review.googlesource.com/54760 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Revert[4] "guard old apis for querying byte-size of a bitmap/imageinfo/pixmap"Gravatar Mike Reed2017-10-03
| | | | | | | | | | 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>
* Add MDB comments to recent kNoPendingIO changesGravatar Brian Osman2017-10-03
| | | | | | | | Bug: skia: Change-Id: I93de3aea986fe64fe536fdf6db8b075c101082b2 Reviewed-on: https://skia-review.googlesource.com/54461 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Make SkString reference counting thread/TSAN safe.Gravatar Ben Wagner2017-10-03
| | | | | | | | | BUG=skia:7107 Change-Id: I8ead98f7694faaed8e6f6f29b1fcd88501d36b66 Reviewed-on: https://skia-review.googlesource.com/54400 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* CCPR: Avoid left shifts on negative numbersGravatar Chris Dalton2017-10-03
| | | | | | | | | | (ASAN doesn't like them.) Bug: skia: Change-Id: Id28d3ea9cabc9895cb097eae3e437f557178fe1c Reviewed-on: https://skia-review.googlesource.com/54180 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Potential fix for Android regressionGravatar Jim Van Verth2017-10-03
| | | | | | | | Bug: skia: Change-Id: I1130084fd526f3cc0d39bfa5293d79ce408691b2 Reviewed-on: https://skia-review.googlesource.com/54361 Reviewed-by: Stan Iliev <stani@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Revert "Update lockTextureProxy to return mipped proxys if mipping is ↵Gravatar Greg Daniel2017-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | requested." This reverts commit 97abf014b40cc17c4100768299ef8cccd335aff7. Reason for revert: REALLY Really really really big perf regressions Original change's description: > Update lockTextureProxy to return mipped proxys if mipping is requested. > > We will either create a new mipped surface from scratch, or just create > the base layer and copy that into the mipped surface. We then defer the > creation of the rest of the mips to the GPU. > > Bug: skia: > Change-Id: Ida3000ad5e666153c61b05e714f033138593b09b > Reviewed-on: https://skia-review.googlesource.com/52743 > Commit-Queue: Greg Daniel <egdaniel@google.com> > Reviewed-by: Robert Phillips <robertphillips@google.com> TBR=egdaniel@google.com,robertphillips@google.com,brianosman@google.com Change-Id: If3b1ff555ef310b75493412a7533175195994684 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/54320 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Remove static initializers in SkCodecGravatar Leon Scroggins III2017-10-03
| | | | | | | | | | | | Bug: 768878 Switch const declarations to constexpr where appropriate. Speculative fix for crbug.com/768878. Change-Id: I7fc356e623ce7a0f2b87e92e9a8ed95d5c423d79 Reviewed-on: https://skia-review.googlesource.com/54101 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Chris Blume <cblume@chromium.org>
* Handle the error input case in SkPngCodec decode functionGravatar nagarajan.n2017-10-03
| | | | | | | | | | | This patch handles the error input case in SkPngCodec decode function when there is error in input. Bug: skia:None Change-Id: I53b44f2411cef129b39e76e2cd6b8cd4c754b932 Reviewed-on: https://skia-review.googlesource.com/51860 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com>
* add _skx stagesGravatar Mike Klein2017-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | This just makes sure all the plumbing is in place to use the Skylake Xeon subset of AVX-512 instructions. So far, - no Windows - no lowp - nothing explicitly making use of AVX-512 registers or instructions This initial pass should run essentially identically to the _hsw AVX2 code we've been using previously. Clang _does_ use AVX-512-only instructions to implement some of the higher-level concepts we've coded, but it's really a pretty subtle difference. Next steps will bump N from 8 to 16 and start threading through an AVX-512-friendly mask instead of tail. I'll also want to take a harder look at how we do blending like if_then_else()... the default codegen here doesn't really take advantage of AVX-512 the way I'd like here. CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-CPU-AVX512-x86_64-Debug Change-Id: I6c9442488a449ea4770617bb22b2669859cc92e2 Reviewed-on: https://skia-review.googlesource.com/54062 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* Revert^6 "Make threaded proxy generation MDB-friendly, and defer instantiation"Gravatar Brian Osman2017-10-02
| | | | | | | | | | | | | | ANGLE bots were getting lots of corrupted GMs - we set fPreferVRAMUseOverFlushes to false. In that case, multiple deferred proxies were instantiating to the same scratch resource. Any proxy that we're going to fill with an ASAP upload needs to have no pending IO - we hoist all those loads to the front of the flush, so normal IO tracking doesn't really help. Bug: skia: Change-Id: Id36fd8700e522db412a3c992b93c778e2ebb1188 Reviewed-on: https://skia-review.googlesource.com/53940 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Fix SkRRect validation for negative typesGravatar Adrienne Walker2017-10-02
| | | | | | | | | | | SkRRect::fType is an int, so needs to be checked to see if it's negative. Bug: chromium: 768149 Change-Id: I6a9a019c736806d35dc1bd627fb4ddc735a0ac86 Reviewed-on: https://skia-review.googlesource.com/54024 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* CCPR: Add WAR for an Intel GLSL compiler assertionGravatar Chris Dalton2017-10-02
| | | | | | | | Bug: skia: Change-Id: I8056f10292c28e243a2b9e7c9fa6a4a0705fbab9 Reviewed-on: https://skia-review.googlesource.com/54021 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Temporarily disable deferred texture proxiesGravatar Robert Phillips2017-10-02
| | | | | | | | Bug: 769760 Change-Id: Id4197a73737f3a8df9159d9eb081be094df1f731 Reviewed-on: https://skia-review.googlesource.com/54004 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* fix comments in SkColorSpaceXform.cppGravatar Mike Klein2017-10-02
| | | | | | | | | | | No code bugs as far as I can tell. BUG=skia:7095 Change-Id: I56d848b6225d81bf2481235b9294f0c3e7f53f5b Reviewed-on: https://skia-review.googlesource.com/53823 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Update lockTextureProxy to return mipped proxys if mipping is requested.Gravatar Greg Daniel2017-10-02
| | | | | | | | | | | | We will either create a new mipped surface from scratch, or just create the base layer and copy that into the mipped surface. We then defer the creation of the rest of the mips to the GPU. Bug: skia: Change-Id: Ida3000ad5e666153c61b05e714f033138593b09b Reviewed-on: https://skia-review.googlesource.com/52743 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Remove SkReadBuffer::validateAvailableGravatar Leon Scroggins III2017-10-02
| | | | | | | | | | | | Follow on to 4cdbf6056de29e8c12c3b1b4c2c2fa286cf68049. readByteArray was the only caller of this method, and no longer uses it. So remove it and its only override. Bug: 769134 Change-Id: I0aaf97717baba1f0195162f3e644708bc101eba4 Reviewed-on: https://skia-review.googlesource.com/53920 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Revert "Revert "Revert "Revert "Revert "Make threaded proxy generation ↵Gravatar Brian Osman2017-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | MDB-friendly, and defer instantiation""""" This reverts commit fdd2cb52b781dd68f515a1eb9fe6d054a0ebc226. Reason for revert: ANGLE gold failures Original change's description: > Revert "Revert "Revert "Revert "Make threaded proxy generation MDB-friendly, and defer instantiation"""" > > This reverts commit 9f8d4d36b514ffe3cc3a4a48900e3dc1fecb2a96. > > Bug: skia: > Change-Id: I8d7c1df24d8b13b94404f3d9ba69a1ab55ee00c0 > Reviewed-on: https://skia-review.googlesource.com/52920 > Commit-Queue: Brian Osman <brianosman@google.com> > Reviewed-by: Robert Phillips <robertphillips@google.com> TBR=egdaniel@google.com,robertphillips@google.com,brianosman@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: skia: Change-Id: Ie461de167fbd37323cabd4adf064f99204ba4878 Reviewed-on: https://skia-review.googlesource.com/53801 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "Revert "Revert "guard old apis for querying byte-size of a ↵Gravatar Mike Reed2017-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Revert "Revert "guard old apis for querying byte-size of a ↵Gravatar Mike Reed2017-10-02
| | | | | | | | | | | | 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>
* CCPR: Blacklist Mali GPUs and Vulkan while we work through issuesGravatar Chris Dalton2017-09-29
| | | | | | | | | Bug: skia: Change-Id: I59dfb1c839a66a6aa6c954e4a544930fc1376a22 Reviewed-on: https://skia-review.googlesource.com/53560 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Fall back to non mipped Texture when we can't copy base to mipped textureGravatar Greg Daniel2017-09-29
| | | | | | | | | TBR: bsalomon@google.com Bug: skia:7094 Change-Id: I9d2ba78c4d4332a22e2357cde0598de51299067d Reviewed-on: https://skia-review.googlesource.com/53541 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* fix setPixelRefGravatar Cary Clark2017-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | In setPixelRef() If dx or dy are negative, assert in debug. Pin pixel ref origin to account for dx and dy on right. If colorType is unknown, ignore pr pixelref. Set Bitmap rowbytes to match pixelref rowbytes. In tryAllocPixels() Return true early if colorType is unknown. This assumes that the desired behavior is for Bitmaps set to kUnknown_SkColorType to avoid allocating SkPixelRef while avoiding debug asserts, which is what current gm tests like BitmapCopy_extractSubset test for. R=reed@google.com Change-Id: I0d36032d36a0b7dc111f4aff18c71382874fe1f5 Reviewed-on: https://skia-review.googlesource.com/53420 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Cary Clark <caryclark@skia.org>
* Add unit test for pinned SkImagesGravatar Robert Phillips2017-09-29
| | | | | | | Change-Id: I2e14353bc865b5994cc90ad643a6a58604955957 Reviewed-on: https://skia-review.googlesource.com/53500 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>