Will need followups on Vertices and SkSL to use these handles.
Change-Id: If775cb01168f601541e889bfa2421129e505b4a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282416
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Main motivation for this was convenience when rendering directories of
external files (e.g. --svgs) as readdir() does not guarantee any
ordering.
Change-Id: I78dced834e5a3edde4a5e8e0e65ad946c7d3a3fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282617
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
x86 was relatively straightforward to fix... we were
passing the arguments in the wrong order.
As far as I can tell, we cannot use the native ARM instructions.
Instead, test and select.
Change-Id: I3411a72462e5d5f04881f0304318fd1ae8792900
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282316
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Instead of propagating and attempting to handle at resolution time,
cull "inherited" values in the setters - for inherited-by-default
presentation attributes, "inherited" is the same as not specifying
a property.
Also add some missing setters for more consistent dispatching, and
assert that kInherited never shows up in computed values.
Change-Id: Iceeab4440c5c2eee18a144e2a32704fd29ec5e95
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282396
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Filled in a few more methods, almost gets through tests w/o crashing now.
Bug: skia:9935
Change-Id: If3461db366333cd29c762e1afa51a0959c57689d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282275
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This was evident in the 'shapes-polygon-01-t' SVG.
Change-Id: I4900b9e3626b924291c569a6611fb3b280e3219c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282397
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
It's nice to be able to resize the SVG container on the fly.
Change-Id: I6624e6151aaff7e2a7f6eb07e84aee88c4a2e408
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282418
Auto-Submit: Florin Malita <fmalita@chromium.org>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
8bd3dab112..2caf7ffda7
git log 8bd3dab11206..2caf7ffda74f --date=short --first-parent --format='%ad %ae %s'
2020-04-09 xinghua.cao@intel.com Address a TODO for instance uniform block
2020-04-08 geofflang@chromium.org GL: Protect against infinite loops with CONTEXT_LOST in CheckError
2020-04-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 004b2914bfe3..4db086125947 (9 commits)
2020-04-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader bdb6807825ac..63ed0e445fa5 (8 commits)
2020-04-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-loader/src 122067a02a25..bb8be13e3ffe (1 commits)
2020-04-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 4af38c49bfee..538512e8e898 (2 commits)
2020-04-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-tools/src 1fbefe048387..444b7cd3eecd (2 commits)
Created with:
gclient setdep -r third_party/externals/angle2@2caf7ffda74f
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 csmartdalton@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/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
Tbr: csmartdalton@google.com
Change-Id: I39e673aa9e459592975ae949a064316fe295aa9a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282462
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Always treated as unpremul, RGB(A) sRGB colors. Automatically
transformed to destination color space, and premuled.
Bug: skia:9984
Change-Id: I78fdb16482f70714a8a8b64a9552e8874d7966fe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282336
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
* Disable pixel formats not supported by Metal on the simulator
* Work around invalid sample count value in GLES
Change-Id: I711c3d906ef1c0a467dfc1fb5d36eac2277e7ae0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282270
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Fills in more methods for GrD3DBuffer. Still needs some
work to be fully functional.
Bug: skia:9935
Change-Id: If8d0be93c77c86d3d3578afcdc598b428c468da5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282136
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Several SVG constructs reference other elements based on their ID (e.g.
<use>). This can yield arbitrary reference chains and cycles.
Since all ID-based lookups are funneled through
SkSVGRenderContext::findNodeById(), a straightforward method to break
cycles is to temporarily clear the id->node association following a
lookup -- where "temporarily" refers to the local execution scope.
This approach works for all recursive traversals, as scopes are
nested/released in a natural manner.
- introduce a scoped node reference wrapper (BorrowedNode), which
clears the id mapping for its lifetime and restores it upon
destruction
- update findNodeById() return BorrowedNode values
- update call sites as needed
Change-Id: I2ec5539b24e23b4fbbaff01a44460c41190028e0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282271
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
The SkMatrix setSkew functions set the matrix value directly, so we need
to treat the angle according to
https://www.w3.org/TR/SVG11/coords.html#SkewXDefined
Change-Id: I3a47e4e98724ef71f39a00dc2f07c8bf430de747
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282268
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Auto-Submit: Tyler Denniston <tdenniston@google.com>
In general, I removed local helper functions, but not always...
in a few places, imho, mad() or mma() still made it a little easier to
read, but easy to change my mind if someone suggest they be 'inlined'.
No pixels diffs afaik
Change-Id: I15b6e611d3e367d7cd30d807369c64b00652157f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281860
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Tests min() / max() float behavior fairly exhaustively.
We sometimes specialize into min_f32_imm and max_f32_imm, so it's
important to test with constant values as each argument to cover that
specialization, and to test with both as non-constant values to cover
when that specialization does not apply.
Change-Id: Ib021fd5a6d322058af2f504048b9ed02d0510732
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282315
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
We lost some coverage here when the Shields died.
We've had the ASAN Test jobs, which is good, but there are
a few code paths that go differently when run under ASAN,
particularly the SkVM JIT.
Change-Id: Ia120e55f16ddd4cd12d8bd78d62a53c7542fec13
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282318
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
From my scanning of clients this should not change how any of our main
users interact with semaphores. The biggest change here is that we don't
give up on submitted all the semaphores if a creation fails. We just
submit the semaphores we do have. It also makes it explicit that the
client is responsible for deleting any initialized semaphore regardless
if we were able to submit the semaphores or not or if the semaphore was
wrapped or created by Skia.
The motivation for this change is to more align the current API with
how things will work when we separate flushing and submit into different
calls.
Bug: skia:10118
Change-Id: I3e8b5d3a9852ddb2b5dc972fee21bf46ded7a36f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282265
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Using many small staging buffers is quite costly for performance, for
example when there are many small texture uploads (such as MotionMark's
"canvas bouncing clipped rects" test).
Instead, the new manager uses buffers of 32K minimum, and returns
suballocations of those.
For now, allocation is simply iterates through the list of staging
buffers and returns the first one with enough remaining space.
This is O(N) in the number of staging buffers, which should be
ok since there are fewer of them. (If it becomes a hot path, we
can optimize it later.)
This also subsumes the UBO-specific staging buffer, since that one
did much the same thing but did not reuse staging buffers.
Change-Id: I4fddee8bb0fc602c49fe552acc327a640bf6917b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279921
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
We think this is the driver's problem and not ours, right?
Change-Id: I2c94ee904c7ca4844a5e91291b10b0efa8ce3806
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282298
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
i8x4/I8x4 are unused since removing Op::bytes,
and since LLVM 10 we need to include IntrinsicsX86.h.
Change-Id: Ib4b60a31bb55b0f22a74c4c6b6ae5e50d075235f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282185
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Looks like our bots took anywhere from a 2x to 25x slowdown hit
from using this flag. Let's keep it only where we think we need
it, Test-...-ASAN_Vulkan bots.
Change-Id: Ied7c0a744fafa307f4ad0e7f82c62445b2cc1e61
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282297
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
The bot times out after ~13 hours now, so let's try 16 shards.
Change-Id: I26e350a2e9d1875d01c65f921212277031c92ca3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282296
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
When working with segments in compute_intersection, we're often dividing
by the length squared. If that's 0, we'll end up dividing by 0. This
effectively puts a lower bound on the size of segment we can determine
intersections with other than treating it like a single point. We
arbitrarily choose the first endpoint as this point.
Bug: oss-fuzz:20009
Change-Id: I7581922f704ff8cef77456a80159cdb8ba3b716f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282160
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Change-Id: I78eff440486eb2e76acdbd8a43c6c99cf6ed9bbb
Bug: chromium:1064305
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282276
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
eb298a0240..8bd3dab112
git log eb298a024032..8bd3dab11206 --date=short --first-parent --format='%ad %ae %s'
2020-04-08 timvp@google.com Create Context::getActiveLinkedProgram()
2020-04-07 b.schade@samsung.com Vulkan: add support for EXT_texture_sRGB_R8
2020-04-07 geofflang@google.com Depend on vulkan headers in angle_gpu_info_util
2020-04-07 geofflang@chromium.org Set sdk_version for cc_genrules used by modules with sdk_version set
2020-04-07 jmadill@chromium.org Vulkan: Add VulkanMemoryAllocator to DEPS.
2020-04-07 ynovikov@chromium.org Feature::condition must not be NULL
2020-04-07 jmadill@chromium.org Vulkan: Clean up robust and emulated image clears.
2020-04-07 jmadill@chromium.org TextureGL: Signal DirtyBitsChanged on dirty bits.
2020-04-07 jmadill@chromium.org Don't call syncState inside FBO queries.
2020-04-07 jmadill@chromium.org Vulkan: Pass RendererVk to BufferHelper::destroy.
2020-04-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-loader/src bb74deab0a4d..122067a02a25 (4 commits)
2020-04-07 shrekshao@google.com Hook up several drawElements variants in Context11
Created with:
gclient setdep -r third_party/externals/angle2@8bd3dab11206
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 csmartdalton@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/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
Tbr: csmartdalton@google.com
Change-Id: I021427e018df3293533ca70a5932cd6b597a40cd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282228
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Once again, coloremoji_blendmodes is asserting...
but otherwise seems ok.
Change-Id: I52eb8c0d1542913b6f1e69a5a5cdbb560366a7fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282178
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
It is slower, but gives useful stack traces for suppressions.
Change-Id: I64e1b24951ffb87defd2201743ebb32f31b1f90f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282159
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Should be a behavior no-op, and effective perf no-op.
Change-Id: Iaf755c6938ae5060f11b1ccb83a9273fa53896b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282176
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Now, drawing vertices without colors or a shader simply fills with the
paint color, like anyone would expect.
Bug: skia:9984
Change-Id: I9f7cf72f89948756b9c2c6e055a11c6b64fc22ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282043
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
debian10 ones seem mostly ok,
and the "debian9" bots were running on debian 10 anyway.
still may need to follow up to see what's up with the Vk bot.
Change-Id: I558a8cfeb0a66bc691f4494b6c7899916d79b1d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282134
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
This stopped being relevant when color management was no longer tied to
linear blending.
Change-Id: I2171c5c74d75cf2f78c1ff9fac62584a305c71ce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282158
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: Ib1c0570d747bf9f46be3486f37eba3af53ed1e3d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281642
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
This is the first tagged version that includes the fix for
https://bugs.chromium.org/p/webp/issues/detail?id=373. This is also the
version currently used by Android.
Specifying the full hash as specified in
6dc002169e.
Change-Id: Id1fddb9ea0dc9fa2e4435ca2493c66a798d1beaf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282156
Commit-Queue: Leon Scroggins <scroggo@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Change-Id: I77867f78a43f41629b665f5498736a085ed0a227
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282135
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
I can't reproduce the leak locally on my workstation.
Change-Id: I54b23b9d040467fabe99af9a3a2d2a0615aac6e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282072
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: I90f12cb305ff8daf64b07e5f47bb3a158df95bee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282120
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Control everything with gSkUseSkVMBlitter, and that via --skvm flags.
We aren't skipping sprite blitters on the bots because
they're using the #define instead of the --skvm flag.
Might as well go all-in on the runtime flag now that
we have it... no need for the custom build jobs.
Change-Id: I56e5b1a72fecfc505aee5a26de6ee58666880922
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282124
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Extending text to grapheme edges should correct glyph range
Bug: skia:10087
Change-Id: I254901aaaa40c2782d1afbd5d5390599bdd7c922
Change-Id: I1d51076656d09e4d2e35e3ddad28bfd60fc87081
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281756
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>