Commit Graph

44413 Commits

Author SHA1 Message Date
Kevin Lubick
9e951cd782 Reduce bandwidth to RPIs
PS1 refactors to make copying more explicit.

Change-Id: I35c3aecd10bbdb5ab2a462c72b062d979f48fce8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246099
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
2019-10-04 14:50:49 +00:00
Mike Reed
a32654c13a Simple iterator for textblobs
bug: skia:9503

Change-Id: I5b4e2434c6085d048d6d0fc42b2b928439b1066b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246296
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-10-04 14:44:19 +00:00
Ravi Mistry
48de6fdef5 Update sheriff doc with autorollers and handoff doc
Preview: https://skia.org/dev/sheriffing?cl=246317
NoTry: true
Change-Id: I8f32a7d0387a87e39dde7c09f25b3b314b928f24
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246317
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2019-10-04 14:33:19 +00:00
Ravi Mistry
d46ffc59a2 Remove always red SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG bot and it's builder
IIUC, the flag is no longer used.

Bug: skia:9482
Change-Id: I6c4c327423f0a356151fe0a15c45c6923deac147
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246316
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2019-10-04 13:44:49 +00:00
recipe-roller
95edac1c9a Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/e051b6e61887a79ca02fa2f912163032754d7948 [context] Fix context module to use greenlet-specific storage. (iannucci@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I73903839ebc2337cbc1d617c1231f40ccfeb74b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246276
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-04 08:04:08 +00:00
skia-autoroll
fbdf48ecb2 Roll ../src 61886adc17cd..24e29940207d (420 commits)
61886adc17..24e2994020


Created with:
  gclient setdep -r ../src@24e2994020

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Bug: None
TBR=rmistry@google.com
Change-Id: Ib8f0afb292d592559abbbb7eb1c4cfc2a1e58913
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246256
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-04 04:46:08 +00:00
skia-autoroll
e0c233ff55 Roll third_party/externals/swiftshader 5be09849424d..6021fbd09b1c (2 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/5be09849424d..6021fbd09b1c

git log 5be09849424d..6021fbd09b1c --date=short --no-merges --format='%ad %ae %s'
2019-10-03 capn@google.com Fix commit message validation reporting
2019-10-03 digit@google.com [vulkan]: Implement VkSemaphore using Marl primitives.

Created with:
  gclient setdep -r third_party/externals/swiftshader@6021fbd09b1c

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
TBR=rmistry@google.com
Change-Id: I9c8a71d073c69d104604b6b65fc74250c3c4631b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246255
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-04 04:35:58 +00:00
recipe-roller
35a60f622c Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/678a6843ee738aa2bbdc018454988af4d1d114a9 git-cl: Clean-up (ehmaldonado@chromium.org)
recipe_engine:
  https://crrev.com/714c8e0c2a2fc10569e6f943198685acbbdd845c recipe module buildbucket: migrate to protos for inputs. (tandrii@google.com)
  https://crrev.com/671bf52ae83b2335d65be8618855444b8fec0f20 [logdog/bootstrap] Fix behavior of bootstrap to match go version. (iannucci@chromium.org)
  https://crrev.com/27118793ad8c4be3e818cacece11c425ef6f224a buildbucket: add generic_build to test API. (tandrii@google.com)
  https://crrev.com/d2e4b2a70ea05c4b1230dee1f1f45029419a029e Add internal API to set summary markdown directly. (iannucci@chromium.org)
  https://crrev.com/aa84e2a4f50fe7ed19690fa61b0d1f8294964b14 Account for step resource costs before opening file handles for them. (iannucci@chromium.org)
  https://crrev.com/cb5e29908c24ae791cbc0c1fc17e9098bc2157cc Revert "recipe module buildbucket: migrate to protos for inputs." (tandrii@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I73726a2330106868f8587d5c36995b5d60db87c8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246239
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-04 01:28:37 +00:00
Andrii Shyshkalov
d2cf50492a Revert "Roll recipe dependencies (trivial)."
This reverts commit eee5ca4386.

Reason for revert: not yet, wait till my revert land.

Original change's description:
> Roll recipe dependencies (trivial).
> 
> This is an automated CL created by the recipe roller. This CL rolls recipe
> changes from upstream projects (e.g. depot_tools) into downstream projects
> (e.g. tools/build).
> 
> 
> More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
> depot_tools:
>   https://crrev.com/678a6843ee738aa2bbdc018454988af4d1d114a9 git-cl: Clean-up (ehmaldonado@chromium.org)
> recipe_engine:
>   https://crrev.com/714c8e0c2a2fc10569e6f943198685acbbdd845c recipe module buildbucket: migrate to protos for inputs. (tandrii@google.com)
>   https://crrev.com/671bf52ae83b2335d65be8618855444b8fec0f20 [logdog/bootstrap] Fix behavior of bootstrap to match go version. (iannucci@chromium.org)
>   https://crrev.com/27118793ad8c4be3e818cacece11c425ef6f224a buildbucket: add generic_build to test API. (tandrii@google.com)
>   https://crrev.com/d2e4b2a70ea05c4b1230dee1f1f45029419a029e Add internal API to set summary markdown directly. (iannucci@chromium.org)
> 
> 
> TBR=borenet@google.com
> 
> Recipe-Tryjob-Bypass-Reason: Autoroller
> Bugdroid-Send-Email: False
> Change-Id: I1a8cb15d95d94ce945eae50037013664efa323a1
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246211
> Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
> Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>

TBR=borenet@google.com,recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com

Change-Id: Ib2d2e09d251d0a33f0a727c8f3436241c4bea9ef
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246215
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2019-10-04 00:53:29 +00:00
recipe-roller
eee5ca4386 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/678a6843ee738aa2bbdc018454988af4d1d114a9 git-cl: Clean-up (ehmaldonado@chromium.org)
recipe_engine:
  https://crrev.com/714c8e0c2a2fc10569e6f943198685acbbdd845c recipe module buildbucket: migrate to protos for inputs. (tandrii@google.com)
  https://crrev.com/671bf52ae83b2335d65be8618855444b8fec0f20 [logdog/bootstrap] Fix behavior of bootstrap to match go version. (iannucci@chromium.org)
  https://crrev.com/27118793ad8c4be3e818cacece11c425ef6f224a buildbucket: add generic_build to test API. (tandrii@google.com)
  https://crrev.com/d2e4b2a70ea05c4b1230dee1f1f45029419a029e Add internal API to set summary markdown directly. (iannucci@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I1a8cb15d95d94ce945eae50037013664efa323a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246211
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-04 00:40:07 +00:00
Ravi Mistry
d53a2c1503 Revert "Roll recipe dependencies (trivial)."
This reverts commit 90e4a9e34c.

Reason for revert: I am not sure what happened here but status.skia.org is very red after this landed: https://screenshot.googleplex.com/VrAUz5Ou6DX


Original change's description:
> Roll recipe dependencies (trivial).
> 
> This is an automated CL created by the recipe roller. This CL rolls recipe
> changes from upstream projects (e.g. depot_tools) into downstream projects
> (e.g. tools/build).
> 
> 
> More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
> depot_tools:
>   https://crrev.com/678a6843ee738aa2bbdc018454988af4d1d114a9 git-cl: Clean-up (ehmaldonado@chromium.org)
> recipe_engine:
>   https://crrev.com/714c8e0c2a2fc10569e6f943198685acbbdd845c recipe module buildbucket: migrate to protos for inputs. (tandrii@google.com)
>   https://crrev.com/671bf52ae83b2335d65be8618855444b8fec0f20 [logdog/bootstrap] Fix behavior of bootstrap to match go version. (iannucci@chromium.org)
> 
> 
> TBR=borenet@google.com
> 
> Recipe-Tryjob-Bypass-Reason: Autoroller
> Bugdroid-Send-Email: False
> Change-Id: I13d2fe66a28f6685aa9e8d764599952fbfb41549
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246217
> Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
> Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>

TBR=borenet@google.com,recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com

Change-Id: I225f3853f2513010c5e0d3d58d2d25341f1bda64
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246218
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2019-10-03 23:55:44 +00:00
recipe-roller
90e4a9e34c Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/678a6843ee738aa2bbdc018454988af4d1d114a9 git-cl: Clean-up (ehmaldonado@chromium.org)
recipe_engine:
  https://crrev.com/714c8e0c2a2fc10569e6f943198685acbbdd845c recipe module buildbucket: migrate to protos for inputs. (tandrii@google.com)
  https://crrev.com/671bf52ae83b2335d65be8618855444b8fec0f20 [logdog/bootstrap] Fix behavior of bootstrap to match go version. (iannucci@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I13d2fe66a28f6685aa9e8d764599952fbfb41549
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246217
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-03 23:11:42 +00:00
recipe-roller
68d22ef43d Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/4508b4223bf09af52885f2239b00282b2a281e67 git-cl: Set CC from watchlists only on first upload (ehmaldonado@chromium.org)
  https://crrev.com/12a537f932f3aea210b4fe199e531642ae0594eb depot_tools: Run git_common_test in Python 3 (ehmaldonado@chromium.org)
  https://crrev.com/5da394f8e163f01bc7109beb74d04498e42bd258 depot_tools: Run git_footers_test on Python 3. (ehmaldonado@chromium.org)
  https://crrev.com/6215c79a8c5b1613ca043a327dcc76d4f31b7473 git-cl: Better warning message for legacy buckets. (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I0f4873592af0f83317f8af3d521b5c153978dadf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246200
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-03 22:31:22 +00:00
recipe-roller
d335778f7b Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/6295404c952a7e69e90c8974a934b2a095d369c6 Support "Fixed:" syntax in BugsFromDescription() (dbeam@chromium.org)
  https://crrev.com/b295105c22651af52bfb472ae67ccfcc3116fe8b Make presubmit bark at FIXED= in CL description (dbeam@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Icca38b8ac9fbbe261170afb0f63b609bf81a6055
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246196
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-03 21:55:41 +00:00
recipe-roller
100b398f65 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/e1e1d1ba78ce2f3c129dbe6ba4d92b431deec422 recipe module buildbucket: get rid of real legacy `buildbucket` property. (tandrii@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I89fb168b84dcbd13652ba7c35583d495966bd1bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246177
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-03 21:03:47 +00:00
Brian Osman
01cf7a95b5 Make SkIPoint x() and y() constexpr
Fixes several GCC builds.

Change-Id: I9ad64b08d707a0e491590dea07617e89fe64d60d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246176
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-10-03 20:48:17 +00:00
Kevin Lubick
d71344590a speculitive fix for flutter roll
Change-Id: I5a7ead4f3b3f73321af99668e8328ffd3cbcc8a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246101
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2019-10-03 20:15:42 +00:00
Jim Van Verth
4187e0a416 Reland "Add less granular version of GrFence for older Metal versions."
This is a reland of 1e946aa24b

Original change's description:
> Add less granular version of GrFence for older Metal versions.
> 
> Rather than use MTLSharedEvent, we create a semaphore and
> signal it within the current command buffer's completion handler.
> The pointer to the semaphore is cast as GrFence and returned.
> The waitFence method recasts it and waits on the semaphore.
> 
> Bug: skia:8243
> Change-Id: I2c854c65a62786fe8031794008eb6844974ebefd
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245583
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

Bug: skia:8243
Change-Id: I63872c26b8f5c29cba6e618f418b291cf5ffac54
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246016
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-10-03 19:36:12 +00:00
Brian Salomon
9bd947ddb1 SkIRect::makeOffset(SkVector)
Change-Id: I0e236bf14acf1a8b7df3433be05a192633096df0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246098
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-03 19:32:42 +00:00
Brian Salomon
9241a6d394 Reland "Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime""
This is a reland of 6fc04f88a8

Original change's description:
> Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime"
> 
> This is a reland of ce240cc6fd
> 
> 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-03 19:14:22 +00:00
Brian Osman
1244db5650 Don't try to build skparagraph on windows component builds
Change-Id: I34baa1a90f6441305dff349431fb0470bb12d0f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246096
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-10-03 19:07:12 +00:00
Brian Osman
8acfa4db53 Remove some unused functions (and an enum) from GrTypesPriv
Change-Id: I9b27c073122e615cf2db289de5607d6636658803
Bug: skia:6718
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246077
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-10-03 19:02:42 +00:00
Kevin Lubick
6d0d5a7f60 [canvaskit] Speculative fix for external wasm library
See https://groups.google.com/forum/#!topic/skia-discuss/J2XT7XjmFtI

Change-Id: I4daabc160e9f5b09d4233bcaf24661c8473c0d07
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246080
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-10-03 19:01:27 +00:00
Kevin Lubick
369f6a5ea2 [canvaskit] Initial addition of SkParagraph
There are more parts of ParagraphStyle and TextStyle, but
this should be a bulk of the components.

Bug: skia:9469
Change-Id: I87fff6700f41cff49ecbee3a1339e84c36699c93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244837
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2019-10-03 18:04:55 +00:00
Brian Osman
c95c4a69e1 Remove old SkSL JIT and cleanup include files a bit
- The raster pipeline JIT was an experiment that never really panned
  out (except for also introducing the interpreter, which survives).
  The removal should be pretty thorough, including undoing some changes
  to SkRasterPipeline itself. For reference, I basically undid most of
  https://skia-review.googlesource.com/c/skia/+/112204/

- With runtime shaders, always convert to Program using kPipelineStage
  This makes the first-pass compile consistent with runtime color filter,
  and with GrSkSLFP.

- Remove sksl_mixer.inc, which hasn't been used in a while.

- In sksl_pipeline.inc, all of the math symbols are already declared
  in sksl_gpu.inc, which forms the base symbol table when this include
  is parsed.

  sk_x and sk_y appear to never be used? Those builtin IDs are the IDs
  of the x and y params to main, but that logic still works without
  these declarations.

  sk_OutColor only makes sense in FP files (it's still declared in
  sksl_fp.inc).

Change-Id: Ie8dd68d2c4687745d46f96804a76695bce8c1ba2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246017
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-10-03 18:00:40 +00:00
Ben Wagner
3b5e8ab20b Revert "Hold onto FcConfig in SkFontConfigInterface_direct."
This reverts commit 35e0a58278.

Reason for revert: Breaking g3 roll
Unfortunately, the g3 tests call FcFini at the end, but FcFini asserts
that everything is really no longer in use (it doesn't just unref the
current FcConfig). This means that all local FcConfig references must
be destroyed before calling FcFini. However, one of these will be
rooted with a global, leading to destructor ordering issues.

Will need to see how to handle this.

Original change's description:
> Hold onto FcConfig in SkFontConfigInterface_direct.
> 
> It is possible that some other thread will change the default FcConfig
> out from under one of this classes own calls, which is a terrible race.
> Prevent this by taking a reference to the default FcConfig at creation
> time and keeping it alive.
> 
> Bug: chromium:1004254
> Change-Id: I23338c72e0b93859beae465cb6d48e87b3928ed3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245720
> Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Ben Wagner <bungeman@google.com>

TBR=bungeman@google.com,herb@google.com,etienneb@chromium.org

Change-Id: If0f90c9060ff5c7a486f6d7ffe2b7b52a7ae31a4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1004254
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246078
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2019-10-03 17:58:21 +00:00
Robert Phillips
a975ef3b2f Add SkSurfaceCharacterization::createColorSpace
Change-Id: Ie4653fce34e4d6f38613f63bc68ecc1b7bae361b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246019
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-03 17:06:13 +00:00
Ben Wagner
35e0a58278 Hold onto FcConfig in SkFontConfigInterface_direct.
It is possible that some other thread will change the default FcConfig
out from under one of this classes own calls, which is a terrible race.
Prevent this by taking a reference to the default FcConfig at creation
time and keeping it alive.

Bug: chromium:1004254
Change-Id: I23338c72e0b93859beae465cb6d48e87b3928ed3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245720
Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2019-10-03 15:19:43 +00:00
Robert Phillips
65a77757a2 Only use GrRenderTarget for sample locations in GrGLSLProgramBuilder
The idea here is to separate information we can have at opList time:
   numSamples, origin, primProc, primProcProxies and pipeline
and what we can only have at flush time:
   sample locations

The opList-available parameters will then be moved into a descriptor (GrProgramInfo).

Change-Id: Iae044a98a0cfc8685569c923d154a6f9dabfeb75
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245621
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-03 15:01:43 +00:00
Ravi Mistry
cb55010652 Revert "Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime""
This reverts commit 6fc04f88a8.

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 ce240cc6fd
>
> 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-03 09:19:24 +00:00
recipe-roller
087aa99a21 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/802a2286d006c308502f97f98bd9f44a1b72b31e Remove trigger_specs. (iannucci@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I98056df5cf92a4ce31fff02ba3f026a7c6dc456d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245927
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-03 05:53:42 +00:00
skia-autoroll
36d11c16c9 Roll third_party/externals/angle2 f22f16d3c0a8..2328d65ab30d (11 commits)
f22f16d3c0..2328d65ab3

git log f22f16d3c0a8..2328d65ab30d --date=short --no-merges --format='%ad %ae %s'
2019-10-03 jmadill@chromium.org Revert "GN: Componentize vulkan back-end build."
2019-10-02 ianelliott@google.com Vulkan: Point end2end failure at correct bug
2019-10-02 ianelliott@google.com Vulkan: Expect additional GLES 3.0 KHR tests to pass
2019-10-02 jmadill@chromium.org GN: Componentize vulkan back-end build.
2019-10-02 geofflang@chromium.org GL: Temporarily disable GPU copy paths for rectangle texture sources.
2019-10-02 jonahr@google.com Ensure Features* descriptions stay up to date
2019-10-02 jmadill@chromium.org Vulkan: Remove global finish in ContextVk::onDestroy.
2019-10-02 geofflang@chromium.org Don't expose CHROMIUM_color_buffer_float_rgb[a] in ES3.0+
2019-10-02 courtneygo@google.com Vulkan: lineloop support for DrawElementsIndirect
2019-10-02 ianelliott@google.com Vulkan: Divide 3188 KHR failures into 2 known root causes + cleanup.
2019-10-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-tools/src 85c67b5e08ee..44b32176ee48 (2 commits)

Created with:
  gclient setdep -r third_party/externals/angle2@2328d65ab30d

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
TBR=rmistry@google.com
Change-Id: I65750be568bc1b52b299025ce4566b7de0796716
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245896
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-03 05:48:12 +00:00
Chris Dalton
f070cbec07 Revert "ccpr: Unblacklist Qualcomm with msaa"
This reverts commit 3f55695a04.

Reason for revert: Pixel 2 still crashing

Original change's description:
> ccpr: Unblacklist Qualcomm with msaa
> 
> Bug: skia:
> Change-Id: I1ab69fe87136955b01a329675f1d0affec3700ec
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245530
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,csmartdalton@google.com

Change-Id: I120cc9e55ae205281992a5fe102f15a4b917e73e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245921
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-10-03 04:52:45 +00:00
skia-autoroll
c31e44ca19 Roll ../src c00626cb0291..61886adc17cd (415 commits)
c00626cb02..61886adc17


Created with:
  gclient setdep -r ../src@61886adc17

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Bug: None
TBR=rmistry@google.com
Change-Id: I1b8131bde3a826bcbe88e80a239acd40afbd4791
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245874
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-03 04:44:42 +00:00
skia-autoroll
facdbf8f50 Roll third_party/externals/swiftshader 0cd9a67ce84f..5be09849424d (7 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/0cd9a67ce84f..5be09849424d

git log 0cd9a67ce84f..5be09849424d --date=short --no-merges --format='%ad %ae %s'
2019-10-02 capn@google.com Fix integer overflow in image size calculation
2019-10-02 capn@google.com Verify the commit message has a Bug: line
2019-10-02 chrisforbes@google.com Consider all faces in TextureCubeMap::hasNonBaseLevels()
2019-10-02 chrisforbes@google.com Fix edge cases of creating EGLImages from cubemap faces
2019-10-02 sugoi@google.com Strict weak ordering for SamplingRoutineCache::Key
2019-10-02 chrisforbes@google.com Fix eglCreateImageKHR error logic for level=0
2019-10-02 swiftshader.regress@gmail.com Regres: Update test lists @ 0cd9a67c

Created with:
  gclient setdep -r third_party/externals/swiftshader@5be09849424d

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
TBR=rmistry@google.com
Change-Id: I26180bb42456a5604d07fa04e9ed1fcbe2a7c783
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245873
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-03 04:35:52 +00:00
Brian Salomon
6fc04f88a8 Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime"
This is a reland of ce240cc6fd

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-03 01:41:35 +00:00
Brian Salomon
768f900a88 Revert "Use GL_QCOM_TILED_RENDERING to explicitly discard stencil"
This reverts commit 7e6d3b00ad.

Reason for revert: Breaks chrome, need to stage new GL function requirment. Example failure:

https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8900671758208001488/+/steps/vr_pixeltests_on_Android_device_Nexus_5__with_patch_/0/stdout


Original change's description:
> Use GL_QCOM_TILED_RENDERING to explicitly discard stencil
> 
> Bug: skia:
> Change-Id: I7a6234f6a9955dbda83ab2d8fc6930fe680e102b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245529
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=egdaniel@google.com,bsalomon@google.com,csmartdalton@google.com

Change-Id: I3f059d4232ef664cf2eb2c5122e55c2c291e45b0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245876
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-03 01:32:28 +00:00
recipe-roller
5e4b4317d9 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/8e2b5104ac52091e7d02228665b7eca4eade38ad [futures] Close non-parent steps when launching a new greenlet. (iannucci@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I7a5499bb246aa6ac309bf3df7a9188b4af0cce34
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245836
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-03 00:33:35 +00:00
recipe-roller
9b6751cc13 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/da69b209693657ea0d95ec8dbdaaff2cb2d56f80 [futures] Add docstring for README TOC. (iannucci@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ia0aed8df21daa70447620fb029085f73692f24b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245822
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-02 23:39:43 +00:00
Brian Salomon
9c219785a8 Revert "SkSurface asynchronous read APIs allow client to extend pixel lifetime"
This reverts commit ce240cc6fd.

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-02 22:51:15 +00:00
recipe-roller
756c896c80 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/f417d3ad500902c6ccab8437984a14aabe598954 depot_tools: Run git_cache_test and git_dates_test on Python 3. (ehmaldonado@chromium.org)
recipe_engine:
  https://crrev.com/fc4aeac8bd7b0f6eeaa913826d4aa7054803697e recipe module buildbucket: do not depend `properties` module in test_api. (tandrii@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ia1b70f1f76f17dc046f82bccd52221e3a977b226
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245719
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-02 22:19:14 +00:00
Ben Wagner
1ca50524c4 Allow better font fallback.
The intent is to allow the creation of a MakeFontMgrRunIterator which
uses the passed font's typeface as the primary typeface, but uses a
given family name and style as for the request for fallback fonts. This
allows the user to provide the actual request for the primary typeface
as opposed to making a request based on the resolved primary typeface
(which may not be the right thing to do).

To support this, the selection of language for fallback is also added.
Since this information is already in the language iterator, this change
makes the font iterator the lowest priority iterator for consume,
allowing the font iterator to rely on the current value of the language
iterator to provide the language.

In order to allow these changes to be exercised, this also adds a few
generic 'Make' methods for bidi and script. These new methods will use
the best available implementation. These are needed since the most
capable implementations may not always be available (such as on our
testing ios builds).

Change-Id: I1b8d9c9007058adcb2a26e0581d903b835a6118f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245460
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-10-02 22:19:13 +00:00
Stephen White
40d1246d0c Dawn: update to Skia getOpsRenderPass() API change.
Change-Id: I86ca748b470ff13487499d4b9a77416d6bf38576
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245361
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2019-10-02 21:33:38 +00:00
Chinmay Garde
aad4b67848 Guard [MTLDevice maxBufferLength] behind an API availability check.
Bug: skia:9408
Change-Id: Iae3941ce9bb66051314fb0b6130bff32ac7b4fd6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245439
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Chinmay Garde <chinmaygarde@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2019-10-02 20:41:08 +00:00
Jim Van Verth
b9d0cbc3e3 Revert "Add less granular version of GrFence for older Metal versions."
This reverts commit 1e946aa24b.

Reason for revert: Failing TSAN.

Original change's description:
> Add less granular version of GrFence for older Metal versions.
> 
> Rather than use MTLSharedEvent, we create a semaphore and
> signal it within the current command buffer's completion handler.
> The pointer to the semaphore is cast as GrFence and returned.
> The waitFence method recasts it and waits on the semaphore.
> 
> Bug: skia:8243
> Change-Id: I2c854c65a62786fe8031794008eb6844974ebefd
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245583
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

TBR=egdaniel@google.com,jvanverth@google.com

Change-Id: I1b8ccb5944db2d28ceb92361d4d43d7058d0753c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:8243
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245717
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-10-02 19:53:00 +00:00
recipe-roller
6ebf1157c8 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/beadb7584b9086527329b8054230344de88d1873 Revert "[futures:examples/background_helper] Speculatively switch to os._exit" (tandrii@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ia26af8c1e3b086295fe729715753d0fa704df1b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245716
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-10-02 19:43:09 +00:00
Brian Salomon
ce240cc6fd 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>
2019-10-02 19:20:08 +00:00
Mike Klein
edf2d727f9 picture nesting bounds bug
- add a unit test reproducing the bug
  - fix SkRecorder::reset() to call resetCanvas(bounds) instead of
    calling resetCanvas(w,h).  (It was actually calling
    resetCanvas(right,top), even worse...)

In short, because we were calling this old resetCanvas(), SkRecorder,
the SkCanvas* we record into, was presenting bad device bounds,
affecting code like where we query the clip to search an R-tree for ops
to draw.  It was trimmed to only the positive/positive portion of the
actual bounds, so content like in the unit test that's all in negative
space was erroneously clipped out.

I'd like to get rid of these w/h methods altogether but they're still
used by some of our test tools and by Android.

Change-Id: Ie46f611250de4d655c4357823895ff885b4f3d59
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245599
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-02 18:59:17 +00:00
Hal Canary
b5b45d7f08 SkQP: mark readpixels as a bad GM
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP,Test-Debian9-Clang-NUC7i5BNK-CPU-Emulator-x86-devrel-All-Android_SKQP

Bug: b/140327954
Change-Id: Idd27124aff3d104a423d8849e3af5da4f75a5a04
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245622
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
2019-10-02 18:59:07 +00:00
Brian Osman
1bab7e4e63 Fix CheckGeneratedFiles bot by tweaking SkSLDefines some more
Change-Id: Iac3f65b7e85cb34febf30b7939080290a0738635
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245620
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
2019-10-02 18:44:07 +00:00