We're currently letting render context overrides (opacity, color
filters, blend mode, etc) spill down the descendent/mask content
tree.
This is not ideal, as mask content isolation breaks atomicity
assumptions for deferred overrides. Case in point: motion blur uses
SkBlendMode::kPlus to accumulate content "layers" - but since mask
content gets rendered into a separate layer, it fails to produce the
expected result.
The fix is to realize all context overrides on the top-level mask layer
(we already allocate this layer, so there's no reason to defer
downstream anyway).
Change-Id: Icbb7e403f90feecfae5846697f559a03d8aa4097
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/239036
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
31b524cf60..a1bf69967a
git log 31b524cf60b7..a1bf69967a32 --date=short --no-merges --format='%ad %ae %s'
2019-09-04 teisenbe@google.com Fuchsia: Migrate to new libasync-loop API
2019-09-03 lujc@google.com Use TransformFeedbackID in place of GLuint handle
2019-09-03 lujc@google.com Use VertexArrayID in place of GLuint handle
2019-09-03 syoussefi@chromium.org Reland "Vulkan: Debug overlay"
2019-09-03 mihu@microsoft.com ANGLE test fixture leaking.
2019-09-03 syoussefi@chromium.org Update status of ES3.1 on Vulkan
2019-09-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/glslang/src 92f5afdee0ab..56f61ccceffa (1 commits)
2019-09-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-tools/src 65e362b7ae2a..2c5ed16ba97d (1 commits)
Created with:
gclient setdep -r third_party/externals/angle2@a1bf69967a32
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 jlavrova@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=jlavrova@google.com
Change-Id: I9a49cd5e7bb2edc5ad58004cc95d9e12738c554d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/239028
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Unfortunately, poppler does not currently appear to handle DW.
Change-Id: I394f0f28fab194275016ce70f0ae254254c7b3d7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238964
Auto-Submit: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
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/a877ee62b1fcd52c590d466ffdd0b2df5bd3e74e depot_tools: Run some tests on Python 3 on the bots. (ehmaldonado@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Icbc0bb29c8aa7ed0f58ab4c7edfa1da45f9205d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238997
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>
Combines the two boolean options into a single tri-state enum. Old GLSL
option is still present (temporarily) until Chrome is switched over.
Also add a type tag for cached program binaries, so we can safely
detect cache entries of the wrong type.
Change-Id: I0ddeefa9180b27bc2c46e2e7b77e6c9cdf4a730a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238856
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
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/1db68ea0ba175a62889d15dc420c4bd481db2513 Add ANGLE issue tracker to my_activity.py. (jmadill@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I46a57d44f62af6df47f80eb916d374a736b4e58d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238925
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>
Change-Id: Iad8dd9135aadd77ffa7cdbd53dbb1e97a5fdf8d5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238956
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Change-Id: I5f3c17fc008a5ec92803000f17d7db65af1b4cfa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238901
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
motivation: put them all in one place.
Change-Id: Id40aff1f6ddc36b99b14567f110b5084da7e2bd4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238899
Commit-Queue: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
In Vulkan we use this list to set the layout for these surface to be
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL at GrOpsRenderPass creation
instead of at submit. This gets us closer to being able to run with
primary or secondary command buffers.
Change-Id: I6e307485987e2c024ed9ecba3e41f588047c5f07
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238444
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
The previous code computed all advances in the font up front, not just
the ones in the subset. This can take a long time. Instead, only compute
the advances in the subset.
This replaces the previous state machine with slightly easier to
understand look ahead. There is never a need to look ahead more than two
positions, so this isn't too bad.
This also calculates the most common advance width in the subset and
uses it as the default (the default was previously always zero). Other
than ommiting the defaults, this code should produce the equivalent
output to the previous code.
On my local Windows 10 box this reduces Chromium's
IsolateOriginsPrintBrowserTest.PrintIsolatedSubframe test runtime
(standalone) from 20 seconds to 15.
Bug: chromium:996185
Change-Id: I40d8b27ab1344d546de3958b3198b675bda81b76
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238596
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
Change-Id: I65d8bf85749ee543e392d406cb2c976199e3856c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238857
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
GrResourceAllocator.
Removes LazyInstantiationType. All callbacks can be invoked one time (if successful).
Lazy callbacks indicate whether their lifetime should be extended, which is used by
promise image proxy callbacks.
Promise image proxies are no longer deinstantiated at the end of flush and
GrDeinstantiateProxyTracker is removed. They will be instantiated the first time
they are encountered in GrResourceAllocator::addInterval (without actually adding
an interval) and then remain instantiated.
Also removes some "helper" versions of proxy factory functions that took fewer
params. They weren't much used outside of test code and as the total number of params
has grown their relative utility has diminished. We could consider a params struct
or radically simpler helpers that take only a few params if desired.
Change-Id: Ic6b09e7b807b66cb9fcbb7a67ae0f9faf345485f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238216
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
dsymutil seems to kill the machine when too many processes are run in
parallel, so we need to use a pool to limit the concurrency when
passing large -j to Ninja (e.g. Goma build).
Change-Id: I84404291db4781f86268256ab888cef8d07c770e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/234477
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Adds MetalWindowContext_ios and hooks it up to Window_ios.
Also includes some minor clean up in other iOS code.
Bug: skia:8737
Change-Id: I2e8a0c755310fbc4ed534f975815c60f8eca130b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238438
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: I18a3bd5e845305e3b2521d076fd641bd5175b618
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/234327
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Change-Id: I9f71bfbd506b56eae4fe6a430b70f8f9a31d7009
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238445
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I81835ffdd1fbdaa12d662527e38b42532f2ea8e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238756
Commit-Queue: Hal Canary <halcanary@skia.org>
Reviewed-by: Brian Osman <brianosman@google.com>
791ad7b877..31b524cf60
git log 791ad7b8774a..31b524cf60b7 --date=short --no-merges --format='%ad %ae %s'
2019-09-02 jmadill@chromium.org Roll Chromium DEPS.
2019-09-02 jmadill@chromium.org Re-enable -Wextra-semi-stmt.
2019-09-02 jmadill@chromium.org Vulkan: Update dEQP-GLES2 Android test expectations.
2019-09-02 lujc@google.com Use MemoryObjectID in place of GLuint handle
2019-09-02 jmadill@chromium.org Vulkan: Lift failing Wintel test expectation.
2019-09-02 cwallez@chromium.org Also skip ComputeShaderTest.UniformDirty/ES3_1_Vulkan on Win/NVIDIA
2019-09-02 cwallez@chromium.org Revert "Vulkan: Debug overlay"
2019-09-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-tools/src 73422a0a5ee1..65e362b7ae2a (6 commits)
2019-09-02 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/glslang/src 796df2d74e05..92f5afdee0ab (2 commits)
Created with:
gclient setdep -r third_party/externals/angle2@31b524cf60b7
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 jlavrova@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=jlavrova@google.com
Change-Id: I302ba423e3a96feaff60b4bdfa788f8f9de3a563
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238781
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
120b61d34b..791ad7b877
git log 120b61d34ba8..791ad7b8774a --date=short --no-merges --format='%ad %ae %s'
2019-08-31 syoussefi@chromium.org Vulkan: Enable more GLES3.1 dEQP tests
2019-08-31 syoussefi@chromium.org Vulkan: Storage image support
2019-08-31 syoussefi@chromium.org Fix build error
2019-08-31 syoussefi@chromium.org Vulkan: Debug overlay
2019-08-31 syoussefi@chromium.org Vulkan: revamp present semaphore management
2019-08-30 lujc@google.com Use SemaphoreID in place of GLuint handle
2019-08-30 jmadill@chromium.org Update docs on enum names.
2019-08-30 jmadill@chromium.org Vulkan: Generalize ICD decision for loader.
2019-08-30 syoussefi@chromium.org Vulkan: Make vk::ImageView pointers const
2019-08-30 jmadill@chromium.org Vulkan: Move loader defines into BUILD.gn.
2019-08-30 lujc@google.com Use FramebufferID in place of GLuint handle
2019-08-30 syoussefi@chromium.org Move timer functionality from util/ to common/
2019-08-30 syoussefi@chromium.org Vulkan: Split Vulkan docs from README.md into doc/
2019-08-30 jmadill@chromium.org SystemInfo: Add Google VendorID.
2019-08-30 timvp@google.com Support separate read and draw surfaces in eglMakeCurrent
Created with:
gclient setdep -r third_party/externals/angle2@791ad7b8774a
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 jlavrova@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=jlavrova@google.com
Change-Id: I96b9e74aeed79b0de594b81a5fbd582a99df22d6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238699
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Without the changes to GrShape and GrAAConvexPathRenderer, this new GM
would not draw the red circle at the center when using Ganesh. Raster
drew the red circle. The difference came about because they checked
convexity after transforming by the view matrix, and Ganesh checked
before.
With this particular path construction and the very large scale factor
on the CTM, the convexity calculator in local space computed small
enough edge vectors that it thought the contour backtracked on itself
instead of winding in a consistent direction.
The GrAAConvexPathRenderer would claim it could draw the convex path,
but later when actually preparing to draw, it would do nothing if it
turned out the convex path didn't have a direction. This CL updates it
so that the convex path renderer's canDraw() function matches what it
is actually able to draw.
There is the separate issue of the convexity/direction checking
precision.
Bug: chromium:996140
Change-Id: I6f2af2d9ba6752663d97c8573deb2d767a3f1245
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238121
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
GrCCPathCache::Key allocates extra space for a buffer in Make but using sized
delete will then lead to UB as operator delete is not implemented.
This change overrides the delete operator to force the unsized variant
which gets rid of the UB at the cost of not taking advantage of sized
delete. Once P0722R1 is available to safely compute the full size of
the object inside delete, this code can change to use sized delete.
c.f. https://bugs.chromium.org/p/skia/issues/detail?id=6384
and http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0722r1.html
Change-Id: Id92edc71374be6880aa362e625bb9a5d20e07ac0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/238116
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>