Will store either SkSL or MSL shaders for now, until we can
find a way to store shader binaries.
Bug: skia:8243
Change-Id: I4debf553467bbcb4af57aeee96d05bc0a2f2b075
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/257687
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
- Support array uniforms
- Fix cases where the read head wasn't aligned in onSetData
- Default to float as the CType for half. (half4 was using
PMColor, and other half types required a layout(ctype...)
Change-Id: I63cb1706071668de0ab80f3d812cd9ad29ff9651
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258808
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: If38451b11fad4973e033190bf1a436bbc576d2ba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258810
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
This was never test and turned on. I tried this a month ago
before the large changes, and it was failing then. I don't think
this tells us anything interesting, and fails if the blob is reused.
Change-Id: I8aadc2be7e6a17d255d681ed9fab04dcbc538991
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258809
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I31f5bf4257e8404f41b146b7e64169968d3cd291
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258804
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
With recent deferred image loading changes, Skottie relies on clients
to always/explicitly seek() before drawing a frame.
Some of the existing tools are still attempt to draw before the first
seek() fires (the animation callback is not guaranteed to occur before
the first draw). For these, add an explicit seek(0) after loading the
animation, to ensure valid state.
TBR=
Change-Id: Ie453559af2d96560602b5e6508c25169dffb484d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258805
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Bug: skia:9570
Change-Id: Iccfbb36b130ec2827164efda33470e2fa75ad833
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258638
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
GCC gets worried when we do things like memcpy() into non-trivial types
like SkUUID, but this one is pretty clearly fine. (SkUUID is
non-trivial because of the implicit constructor that zeros it.) We can
stifle the warning by casting the destination pointer to void*.
Change-Id: I6637964359f5d923fa97c4af2c608e61fdd1f457
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258448
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
11e6944ec5..27c89d2b5c
git log 11e6944ec5a8..27c89d2b5c56 --date=short --first-parent --format='%ad %ae %s'
2019-12-07 syoussefi@chromium.org Vulkan: fix BufferVk::map() synchronization
2019-12-07 xinyi.he@arm.com Vulkan: Resize the result vector in EGLChooseConfigTest end2end test
2019-12-06 ianelliott@google.com Vulkan: Latest Intel driver fixes 2-sample standard positions
2019-12-06 ianelliott@google.com Fix multisample renderbuffer compliance (e.g. 3->4 samples)
2019-12-06 jonahr@google.com Also use GL_RENDERER to determine vendorID
2019-12-06 jmadill@chromium.org Revert "Re-land "Add new test runner harness.""
2019-12-06 josh@joshmatthews.net Add /APPCONTAINER linker flag to shared libraries in UWP builds.
2019-12-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader bbd0694f9ab2..b9f03f47d5f5 (18 commits)
2019-12-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src e72b61c7c20d..a3ee4384fb57 (2 commits)
Created with:
gclient setdep -r third_party/externals/angle2@27c89d2b5c56
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 djsollen@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-Debian9-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: djsollen@google.com
Change-Id: If610da681ff31240f95c737f4235c75e22496259
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258776
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Change-Id: I4b1a2a9c89db59a6a1674388f9ab220a2ec9a61c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258656
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
SkFont::countText returns -1 to let the user know that the text was not
valid in the encoding specified. Users need to check for this and act
appropriately. Otherwise in debug and assert will probably fire and in
release unexpected things may happen.
Change-Id: I6ce91aa3d978fe5265b659f759b4023b81da261f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258639
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: I67bd77cf072e203f23ffc49d591cb826fed598dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258640
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Bug: skia:9698
Change-Id: I18d7c65b09c236ed0d23689c71af44e9a0414de8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258572
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Bug: chromium:985500
Change-Id: Iab73405728dc64c816f736e95b00a23e11fd4888
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258565
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I7aa85e470343825e6ab21ad210f50c2154f03ad0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258570
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Change-Id: Ib6dc1ff861efe4040508fea09c8a66d8d06db597
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258568
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Previously, a batch draw that reused the same proxy consecutively
would create a ViewCountPair for each set entry, with its count == 1.
This turned into 1 draw per entry, so although there'd still be a single
pipeline, it didn't take advantage of merging those consecutive entries
into a larger draw to reduce draw count as well.
Initially, the thinking for the batch API was that it was for tilers
that used unique images for each tile or render pass. However, Chrome's
compositor is also responsible for rendering 9 patches as part of the UI.
These appear as 9 consecutive entries in the image set that all refer to
the same texture. With this CL the texture op will automatically merge
such occurrences into one ViewCountPair with a count of 9.
The bulkrect_1000_[grid|random]_sharedimage_batch leverages this case.
Before this CL its op would hold 1000 view count pairs that each drew
one quad. Now its op will hold 1 view count pair with a count of 1000.
On my linux workstation, the bulkrect_1000_grid_sharedimage_batch time
went from 377us to 206us. For reference, the _ref variant (which already
was a 1 view count pair with ct == 1000 due to merging of each op) has
a time of 497us. The difference between 497us and 206us represents the
overhead of calling through SkCanvas, op creation, quad optimization
analysis 1000x.
Interestingly the bulkrect_1000_random_sharedimage_batch benchmark did not
change on my workstation. My conjecture is that it is bottlenecked by
overdraw of the many overlapping rectangles.
Change-Id: Icc4195de0bcb2219f424fdaa79728281c0418558
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258418
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
I should start off with, I don't know this code. I may have
misunderstood what it's trying to do. Is it well tested?
GCC pointed out that using memcpy() with CopyPathRange is a bad idea
since CopyPathRange is non-trivial (has an sk_sp).
Further, this appears to be an archetypical dangerous way to use
memcpy(), because the source and destination alias each other.
Am I understanding it correctly that we want to put the new entry at
fCurrCopyAtlasRangesIdx, sliding everything already past that index over
to make room?
I've tried to replace all this with
1) push_back() to add a slot
2) move_backwards() to slide everything over to the right
3) = {...} to fill in the slot.
Step 2) is a no-op when fCurrCopyAtlasRangesIdx was at the end already.
Then now that we're no longer calling emplace_back, the type
CopyPathRange now no longer needs an explicit constructor.
This is the sort of thing I'm going for here...
~ $ cat test.cc
#include <stdio.h>
#include <vector>
int main(int, char**) {
for (int i = 0; i <= 5; i++) {
std::vector<int> v = {1,2,3,4,5};
v.push_back(0);
std::move_backward(v.begin() + i,
v.end() - 1,
v.end());
v[i] = 42;
for (int x : v) {
printf("%d ", x);
}
printf("\n");
}
return 0;
}
~ $ clang++ test.cc && ./a.out
42 1 2 3 4 5
1 42 2 3 4 5
1 2 42 3 4 5
1 2 3 42 4 5
1 2 3 4 42 5
1 2 3 4 5 42
... which I guess is a roundabout way of spelling "insert()". :P
Change-Id: I0a445aafa9a786ef8044243c7432f8597353a6b5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258454
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
This starts setting up to expose the GrProgramInfos to SkDDL clients.
Bug: skia:9455
Change-Id: Icd89ad88565d13890476463a919bbadcb9210b02
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256229
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Move all the GrTextBlob methods to GrTextBlob.cpp. Under the old API
methods were called once per a glyphs so the methods were colocated
with the painter code. The APIs have changed to bulk, so the colocation
is no longer needed. In addition, the SubRun struct is going to move
from the GrTextBlob to the .cpp, so all these methods need to be together
soon.
Change-Id: I41124be0d5bcca29780be1a7f5c105268dadbe87
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258566
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
This is a first step towards pulling the creation of the GrProgramInfos explicitly into the Ops' onExecute methods. We need this behavior so programInfo creation can be moved forward to onPrePrepare.
For now, pipeline creation is a static member on GrSimpleMeshDrawOpHelper so GrPipeline creation can be bottle-neckedOps for Ops that don't use the helper. In some future world CreatePipeline could become non-static to reduce some of the duplicate code.
Bug: skia:9455
Change-Id: I2d35dd223db824e84616f5df0f1dca34c1b6e412
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258003
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
GCC gets nervous here, and I think correctly so. The type is
non-trivial (because the linked list has a constructor from its field
initializers) and we're bypassing that instead with a memset(). That'd
be _close_ to fine, but I think less clear than just =
TriangulationVertex{}.
What's really weird is that we're only zeroing it in Debug builds.
Might be we only added this memset() to stop assertions that the node
wasn't already in another linked list?
Anyway, even ignoring all that, this reads a lot more clearly to me.
Change-Id: Iacfe507be2a53807caf85d30f4c4712d8f6e86dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258449
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Prior to this commit, SkWuffsCodec always used what this commit calls
two pass decoding. After this commit, it can sometimes use one pass
decoding, which means we don't have to allocate that intermediate pixel
buffer. For the "droids.gif" example mentioned in a recent commit,
39da10b5 "Optimize SkWuffsCodec pixbuf zero-initialization", this means
that we allocate 19 MB less than we used to (2560 width x 1920 height x
4 bytes per pixel = 19660800 bytes).
Continuing with "droids.gif" and the image_decode_bench program from
39da10b5, the time taken per decode drops from 35.627ms to 28.655ms.
Bug: chromium:1023191
Bug: chromium:1023129
Bug: skia:8235
Change-Id: Ic4fd6bd2856493eaf777416326f39198aa8d97c1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255956
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Change-Id: I96bc057df6b538138827fac7129126381038656a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258240
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
5f857839b9..11e6944ec5
git log 5f857839b9ec..11e6944ec5a8 --date=short --first-parent --format='%ad %ae %s'
2019-12-05 jonahr@google.com Linux AMD crash when src blit region outside framebuffer
2019-12-05 ianelliott@google.com Vulkan: Implement multisample textures
2019-12-05 syoussefi@chromium.org Fix image/sampler uniform range in presence of atomic counters
2019-12-05 syoussefi@chromium.org Fix compute shared memory size validation
2019-12-05 syoussefi@chromium.org Vulkan: EXT_gpu_shader5 support: precise
2019-12-05 jmadill@chromium.org Re-land "Add new test runner harness."
2019-12-05 syoussefi@chromium.org Fix tests checking for major version > 3
2019-12-05 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src e58c080d4f02..0de87ee9a5bf (1 commits)
Created with:
gclient setdep -r third_party/externals/angle2@11e6944ec5a8
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 bsalomon@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-Debian9-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: bsalomon@google.com
Change-Id: I45f956e54697b9c6ca559f28a8b635b74e6c0335
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258492
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
... because it has a constructor, implied by all the initializers.
Luckily, that constructor does exactly what our memset() does.
Change-Id: Ibe538e9d840de9e6fd07d673783709df17b7b4fb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258447
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Normally, we load single-frame images upfront to avoid instantiating
an animator (as the image content is supposed to be constant).
In certain cases, deferred behavior is desirable (and the extra animator
overhead is minimal).
Generalize MultiFrameAnimator to handle single-frame assets, and add an
optional deferred mode for single-frame image loading
(Animation::Builder::Flags::kDeferImageLoading).
Bug: skia:9686
Change-Id: I4d166cd1a0bf34ccb8679e7553848c831a9193d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258000
Commit-Queue: Avinash Parchuri <aparchur@google.com>
Reviewed-by: Avinash Parchuri <aparchur@google.com>
GCC worries we're copying into a union of non-trivial types here, but we
know they're perfectly fine to memcpy() into. We can quiet it down by
casting the destination to void*.
Change-Id: I742bcd264da861998fa1e5b7e8ad70aaafc0805d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258450
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@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.
recipe_engine:
https://crrev.com/1f2a908debbd1f17a22d1a92f811871e348c7cd6 Update Tricium proto in recipes to contain showOnUnchangedLines field (ltina@google.com)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ifbb442b82c98cdce65b9fc3f6f86219c6794b26a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258441
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>
Bug: skia:9556
Change-Id: Ibb0fe82edb9c28efd94cc599856ed9afe71dfd09
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258416
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>