Commit Graph

44437 Commits

Author SHA1 Message Date
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
Brian Osman
7481a39076 Enable asserts about 'in' and 'uniform' in GrSkSLFP and ByteCode
Change-Id: I2bbef8af07f9a65c7a6577a00b1eb7a47c252f57
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245617
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2019-10-02 18:28:42 +00:00
Brian Salomon
7a90175f56 Half float tests working on command buffer
Bug: chromium:697030
Change-Id: I3ca52213edf933abb58023a44daf8533e68a4715
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245618
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-02 18:18:23 +00:00
recipe-roller
7d89780fed 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/6b4c2a88f36eba12106e899b19c54c7b1d51b793 Run git_cl commands as a python step. (mmoss@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I5898edded6bafac6a44e861efa5704ff976488d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245619
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 18:10:10 +00:00
Chris Dalton
3f55695a04 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>
2019-10-02 17:53:46 +00:00
Jim Van Verth
1e946aa24b 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>
2019-10-02 17:38:46 +00:00
Brian Osman
1c110a09d7 ByteCode: Separate uniforms and globals
This requires new instructions, but means that uniforms don't need
to be copied/expanded into the globals array. It also removes any
limit on the number of uniforms (other than instruction encoding),
and simplifies the memory layout (no need for slot tracking).

To help with this, added a Location struct that encapsulates the
information returned by the two variants of getLocation.

Change-Id: I961be74ea5fdf933da6c7ad284be9fc345cfd909
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245358
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-10-02 16:58:47 +00:00
Mike Klein
125a44c9c4 tidy up SkRecord bounding code
- remove unused fNumRecords field
  - remove unused getter methods
  - cleanUp() -> dtor

Change-Id: I1ade20e56cced40d511598a964ca362d7afc269c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245600
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-02 16:41:20 +00:00
Brian Osman
9f313b6608 Remove redundant check when encountering fragCoord in IR generator
Change-Id: Ifa364ee754fed40160bd161aea60ead2e9fb8414
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245616
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-10-02 16:37:37 +00:00
Chris Dalton
7e6d3b00ad 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>
2019-10-02 16:36:08 +00:00
Chinmay Garde
a1ea0a96f4 Don't build the minimal Metal app when building for Flutter.
Change-Id: I6bfdbcfbfd53b60f8d9f5fee3d2621c3f3e8c147
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245476
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-02 14:04:43 +00:00
recipe-roller
cf0a9a6284 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/39baf65a40b3d08e7cd414493fe607eaf18637d0 [futures:examples/background_helper] Speculatively switch to os._exit (iannucci@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ic893719d91560c9619e777e9ec91947029428866
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245559
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 11:41:13 +00:00
recipe-roller
8d29306130 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/cbff54b4acccd596d4faf34636a687c2cdbf11b9 Fail to repackage if win_sdk\Debuggers doesn't exist. (mbonadei@chromium.org)
  https://crrev.com/a19d35307bbed0ad41cad4e5b06ff052c43fc631 Add `git cl upload --retry-failed` (qyearsley@chromium.org)
  https://crrev.com/f1b21e4633f6ec8492584e66076d982f5174f331 Make gclient.py warn on Python 3 (brucedawson@chromium.org)
  https://crrev.com/b9aca9494e40d24ee7383b237943dc7c8aa86ad8 gclient: Skip calling update_depot_tools if DEPOT_TOOLS_UPDATE is 0. (ehmaldonado@chromium.org)
  https://crrev.com/451e8babe20345531ab1bb16a3a18db58775161c depot_tools: Fix gclient_test on Windows. (ehmaldonado@google.com)
  https://crrev.com/5eac9d301390c5ff8afdaa95f46e68bb84e20575 depot_tools: Fix bug when running download_from_google on Python 3. (ehmaldonado@chromium.org)
  https://crrev.com/2025b98401191bbba581a07fa1f7572cc0b75493 recipes: update to stop using legacy properties. (tandrii@google.com)
recipe_engine:
  https://crrev.com/88c098c1d36351d6b551c604122ddb27236b2038 [step] Improve cost model to cover memory, disk and network resources, too. (iannucci@chromium.org)
  https://crrev.com/b82054e1d929cdff567df166edf927361181bf67 Revert "[step] Improve cost model to cover memory, disk and network resources, too." (iannucci@chromium.org)
  https://crrev.com/ba63a44cf653ce3c0689eb83c9e1e1ac9c56cd19 [step] Reland: Improve cost model to cover memory, disk and network resources, too. (iannucci@chromium.org)
  https://crrev.com/1420284b2c0f4907392b8381d60fcb72d3a2faa9 [stream/luci] Initially mark steps as SCHEDULED. (iannucci@chromium.org)
  https://crrev.com/7323ee69d6f28d139a8713e9c4d89dbe10f3ac4e [third_party/logdog] Remove defunct features. (iannucci@chromium.org)
  https://crrev.com/343724f653bf18d849d16fb07d0050a4ea7d93cc [luciexe] Make butler streams async, throttle build.proto updates. (iannucci@chromium.org)
  https://crrev.com/76efe56b109dde457e2a2dec61923759bd21083c [luciexe] Mark non-subprocess steps as started, too :) (iannucci@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I65ebfe073385f865a5ebce1f9017dfee0361c1e3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245536
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 10:02:33 +00:00
Chris Dalton
dec74f3ff6 Remove an assumption that fOpsTask != nullptr
TBR=rmistry@google.com

Bug: skia:
Change-Id: Ic66a63af10b56b1c322309f0e5945b9b4ec1a9f3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245531
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-10-02 09:04:03 +00:00
skia-autoroll
1c934fade6 Roll third_party/externals/angle2 087f1384f233..f22f16d3c0a8 (8 commits)
087f1384f2..f22f16d3c0

git log 087f1384f233..f22f16d3c0a8 --date=short --no-merges --format='%ad %ae %s'
2019-10-01 tobine@google.com Reland "Vulkan: Use VK repos' internal BUILD.gn files"
2019-10-01 timvp@google.com Vulkan: Enable dEQP-GLES31.functional.shaders.*
2019-10-01 timvp@google.com Vulkan: Full support for program interface queries
2019-10-01 jmadill@chromium.org Vulkan: Implement multi-threaded GL.
2019-10-01 cnorthrop@google.com Vulkan: Base/max level fixes and cleanup
2019-10-01 jaime@janeasystems.com GLES2: Use require_constant_initialization for g_Mutex
2019-10-01 cnorthrop@google.com Vulkan: Narrow skip lists for 3D and 2DArray tests to Compute
2019-10-01 courtneygo@google.com Update expectations for deqp failure

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

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: Ibf4b42fff4b172269a9317535e29d35b891b1140
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245496
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-02 06:29:43 +00:00
skia-recreate-skps
1ebaa15a4c Update Go deps
Change-Id: Idf705dd241f47dcf90f2b29fa80a6086284ce5fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245521
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2019-10-02 05:27:13 +00:00
skia-autoroll
bd90b24b1e Roll ../src b26cb15ae8ce..c00626cb0291 (462 commits)
b26cb15ae8..c00626cb02


Created with:
  gclient setdep -r ../src@c00626cb02

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: I7bcf7710266b6ab7b0e6a78955baedbc88097451
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245498
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-02 04:40:42 +00:00
skia-autoroll
015c2feb12 Roll third_party/externals/swiftshader 3044c24181e9..0cd9a67ce84f (5 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/3044c24181e9..0cd9a67ce84f

git log 3044c24181e9..0cd9a67ce84f --date=short --no-merges --format='%ad %ae %s'
2019-10-02 capn@google.com Enable running vk-unittests from any directory
2019-10-01 capn@google.com Increase CMake version requirement to 3.6.3
2019-10-01 amaiorano@google.com Fix write stencil ops when writeMask == 0
2019-10-01 swiftshader.regress@gmail.com Regres: Update test lists @ 3044c241
2019-10-01 chrisforbes@google.com Remove array restriction from EOpEqual, EOpNotEqual

Created with:
  gclient setdep -r third_party/externals/swiftshader@0cd9a67ce84f

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: I01641afeed3113daa9dc709ce19d314d5eed131b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245497
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-02 04:35:42 +00:00
Chris Dalton
674f77a24b Clear and discard stencil buffers on tilers, take 2
Bug: skia:
Change-Id: I6a3bc7e50f8d4f211ed4afb2a614581b2778b27a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245300
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-10-01 20:45:45 +00:00
Hal Canary
9e514a183b doc: cleanup release notes
No-try: true
Change-Id: Ice2803974c7451aff200c75a609414cf9f0a17fe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245374
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-10-01 20:05:35 +00:00
Greg Daniel
5faf474fab More bounds fixes for StrokeRect and DefaultPath when using MSAA for non-aa.
Change-Id: Ia9c2a47675eac8f3ac1220c0e1089766aa141fc1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245364
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-10-01 19:49:15 +00:00
Pirama Arumuga Nainar
5be3c13263 [Android] Use wildcard for data associated with skia_nanobench
'resources/**/*' includes the entire resources directory, while
'resources/*' does not include the recursive contents.

Bug: skia: none
Change-Id: Iae5a41af0d62f3eb00098f83721f7f01f0b0ab5f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245317
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
2019-10-01 19:07:12 +00:00
Florin Malita
e3e4b0cfc1 [skottie] Fix motion blur glitches around domain edges
For motion blur we're sampling within some window around a given t.

If t is close to the layer in/out point, things get murky: for samples
which fall outside the layer lifespan, we skip drawing => fewer samples
are accumulated => the opacity of the result drops => visual glitches.

The solution is to modulate the frame alpha based on the number of
*visible* samples, and skip rendering when no samples are visible.

Bug: skia:9486
Change-Id: I8d9692ae1589b43d9e6f728d7b7ac2fbf39153fe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245363
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-10-01 17:25:12 +00:00
Mike Klein
ac353cbbfc add alternate x-lerp using vpmaddubsw
This looks like a _very_ minor perf and code size win.

Change-Id: Ieb9d07eb056f66fc90b0e3c36835cc05329ff7b6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244920
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-10-01 17:18:02 +00:00
Mike Klein
1e9112fbb4 roll mips toolchain to gcc 8
Just like https://skia-review.googlesource.com/c/skia/+/118681/,
but one more, and...

   - GCC now needs libisl19
   - more warnings to stifle... disable warnings-as-errors.

Cq-Include-Trybots: skia.primary:Build-Debian9-GCC-mips64el-Debug,Build-Debian9-GCC-mips64el-Release
Change-Id: I35c2f71caebb47bd1bd253923cbddbe3f9b95477
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245352
Reviewed-by: Ravi Mistry <rmistry@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-01 16:51:18 +00:00
Hal Canary
8c500751cd experimental/minimal_mtl_app: more cleanup
Try to keep a consistent style for objective-C++ code.

Also, share code between both apps.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Mac-Clang-arm64-Debug-iOS_Metal,Build-Mac-Clang-arm64-Release-iOS_Metal

Change-Id: I4b749780c81319bd048f4295c21dfa91910e262d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/241042
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2019-10-01 14:40:55 +00:00
Jim Van Verth
f2f0e1b8cc Add TransferBuffer and AsyncRead support to Metal.
* Implements onTransferPixelsFrom, onTransferPixelsTo, onFinishFlush and
checkFinishProcs.
* Adds a bind() method for allocating dynamic buffer memory that can
be used by the GPU prior to mapping on the CPU

Bug: skia:8243
Change-Id: I366ec47bf1155797d9a9b0c9f33870e50c95e914
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244301
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-10-01 14:37:51 +00:00