Commit Graph

45089 Commits

Author SHA1 Message Date
recipe-roller
8ba76b75b2 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/336e51f68564b3fa1aff40b9cdc4322def7200b5 depot_tools: Execute tests using bot's vpython instead of depot_tools' vpython (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ied5e76691749dafaf5a423289dad5fd7fbc819ce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254724
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-11-14 22:22:48 +00:00
Ben Wagner
721bab7063 Use Clang for CMake build
Despite the name, Build-Debian9-Clang-x86_64-Release-CMake was using
the default compiler, which is GCC, not Clang. Specify clang explicitly
in env vars for CMake.

Change-Id: Ibfad7b4de555a8a8acdddb8416582764b5a0640c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254639
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
2019-11-14 22:08:38 +00:00
Herb Derby
3a4f22787a Hoist regenGlyphs out of per glyph loop
This positions to loop to be converted to
a bulk loop over the glyphs.

* rename fGlyphCache->fGrStrikeCache

Change-Id: Ie77d761905721cbdb52171117bac951cbca47af6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254425
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-11-14 21:38:38 +00:00
Ravi Mistry
c95e54b558 Specify only luci buckets instead of hardcoding trybot names
I verified that this works

NoTry: true
Bug: skia:9639
Change-Id: Iacc0a865330c2049c8c124365122aa16c4493746
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254676
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2019-11-14 21:11:58 +00:00
Bharat Ahuja
a7e4fe460c Issue- >Skia tiled bitmap rendering is too slow when tildmodeX is not same as tileModeY.
Reason-> Skia uses general-purpose pipeline in this case instead of more optimized faster pipeline.
Faster pipeline code was available in older versions of Skia and used to work fine but we removed faster pipeline code to consolidate the code. As discussed offline for us in the office we have significant scenarios running on software, so maintaining software performance is very important for us thus I am bringing this fast path back. To make this work I didn't have to do much, everything was already available, I just had to modify MatirxProcs to accept tilemodex and tilemodeY as parameters and define and configure SkBitmapProcState::MatrixProc GeneralProcs. I have also limited this change to ARM devices

Change-Id: Ie7ea59701d180c2832edb959e8d44047f4085cbf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252677
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Bharat Ahuja <ahujabharat93@gmail.com>
Auto-Submit: Bharat Ahuja <ahujabharat93@gmail.com>
2019-11-14 20:52:18 +00:00
Jim Van Verth
34b72aef7b Reduce scaling of large SDF glyphs on Mac.
It appears that the Mac glyph rasterizer doesn't work well with our
AA-based SDF generator -- the SDFs produced have more aliasing than
expected. This CL changes the Mac to use 256 as its highest SDF size,
and only scale down from there.

More work may need to be done -- the best solution may be to generate
the SDFs directly from the path rather than the rasterized glyph.

Bug: 1003270
Change-Id: I7f11620a5628b6c1095b02d588d5026bf5a924e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254636
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-11-14 20:49:08 +00:00
recipe-roller
a0d2b0ba79 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/3da78c4bb7dc01f4afcaf0233a789a6c902ca0dc Revert git cache diagnostic tracing. (jbudorick@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I13177a85a0385f83441d691479a45f45d6c57f8a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254629
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-11-14 20:42:18 +00:00
Chris Dalton
3120d03373 Revert "Reland "Reland "Implement sample mask and sample locations support in Vulkan"""
This reverts commit 8a0f50944b.

Reason for revert: Concerns about layout tests and bugs on Adreno

Original change's description:
> Reland "Reland "Implement sample mask and sample locations support in Vulkan""
> 
> This is a reland of 97e917a25f, this
> time with MSAA CCPR disabled.
> 
> Original change's description:
> > Reland "Implement sample mask and sample locations support in Vulkan"
> >
> > This is a reland of 8b915a0c27
> >
> > Original change's description:
> > > Implement sample mask and sample locations support in Vulkan
> > >
> > > Change-Id: I372695ec5360def42a8a997675993264740b0da4
> > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252038
> > > Commit-Queue: Chris Dalton <csmartdalton@google.com>
> > > Reviewed-by: Chris Dalton <csmartdalton@google.com>
> >
> > TBR=ethannicholas@google.com
> >
> > Change-Id: I20de36719db52ad4dfc5290101d48a8fd9601c11
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252936
> > Reviewed-by: Chris Dalton <csmartdalton@google.com>
> > Commit-Queue: Chris Dalton <csmartdalton@google.com>
> 
> TBR=ethannicholas@google.com
> 
> Change-Id: Ie0861dc20df1fa622cb26ed78369d29976e3be10
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254608
> Reviewed-by: Chris Dalton <csmartdalton@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

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

Change-Id: I8c9d8850c2b5bfe4d1516b9eaa2f724f478e6c8c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254624
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-11-14 19:16:20 +00:00
Kevin Lubick
37ab53e7c7 [canvaskit] Expose a few more methods
More requests by flutter-web.
 - drawPoints
 - drawImageNine
 - getSegment
 - addPoly

Change-Id: Iad8f51bb7df5fe014931dc12c8d09d64c08c3a13
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253740
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-11-14 19:00:33 +00:00
Florin Malita
ad76b2ee25 [skottie] One-node camera support
So far Skottie has been assuming all cameras are two-node (have a point
of interest).

AE also supports one-node cameras, where the camera does not auto-orient
towards a POI but starts off perpendicular to the z == 0 plane.

(https://helpx.adobe.com/after-effects/how-to/camera-animation.html)

Change-Id: Id565de7d8feb9a762940ac372c1bbbcce2e2dfc6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254559
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-11-14 18:45:18 +00:00
Robert Phillips
438d986b47 Respect max index buffer sizes in GrFillRectOp::MakeSet
This is required before we can lower the max AA quad count (again).

Bug: b/143572065 skia:9601
Change-Id: Iea5884ffff9bd62f62527fcb597dac97d33ecd76
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254438
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-11-14 18:26:18 +00:00
Chris Dalton
8a0f50944b Reland "Reland "Implement sample mask and sample locations support in Vulkan""
This is a reland of 97e917a25f, this
time with MSAA CCPR disabled.

Original change's description:
> Reland "Implement sample mask and sample locations support in Vulkan"
>
> This is a reland of 8b915a0c27
>
> Original change's description:
> > Implement sample mask and sample locations support in Vulkan
> >
> > Change-Id: I372695ec5360def42a8a997675993264740b0da4
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252038
> > Commit-Queue: Chris Dalton <csmartdalton@google.com>
> > Reviewed-by: Chris Dalton <csmartdalton@google.com>
>
> TBR=ethannicholas@google.com
>
> Change-Id: I20de36719db52ad4dfc5290101d48a8fd9601c11
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252936
> Reviewed-by: Chris Dalton <csmartdalton@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

TBR=ethannicholas@google.com

Change-Id: Ie0861dc20df1fa622cb26ed78369d29976e3be10
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254608
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-11-14 18:09:07 +00:00
Nigel Tao
3876a9f267 Reset SkWuffsCodec frame-count decoder less often
Previously, every call to SkWuffsCodec::onGetFrameCountInternal would
reset the decoder, as it might have been suspended in a co-routine.
Resetting also meant re-winding the input stream back to the first byte
of source data, to re-parse the image configuration (not just a
per-frame configuration), since e.g. the overall image bounds can affect
(clip) a frame's bounds.

Now that there are two separate decoders (one for pixel data and one
just for the frame-count), the only co-routine that the frame-count
decoder could be suspended in is the call to decode the next frame
configuration. There is no longer a need to (conditionally) reset the
frame-count decoder; we can just resume that co-routine (provided that
the fIOBuffer is positioned where it left off).

After this commit, the Wuffs decoder should use a little less CPU and
I/O when having getFrameCount called multiple times, interleaved with
incrementally decoding an animation.

Bug: skia:8235
Change-Id: I871ead40ed0acd6d101cf12784ee5da45e7de5aa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254356
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2019-11-14 17:56:58 +00:00
Brian Salomon
bf5c0c0c99 Fixed sampling non-SkSL FPs with coordinates
This fixes an issue where fragment processors which were not written
in pure SkSL did not interact properly with coordinate overrides.

Change-Id: I960173986fd8d6be7322f55ab0d81a533b6b89e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252916
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-11-14 17:46:18 +00:00
John Rosasco
e57ca49319 Use original fuchsia sdk token
Change-Id: I61b5b87253ec63ca6b0d9bacf19d6997eb0bad06
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254497
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: John Rosasco <rosasco@google.com>
Auto-Submit: John Rosasco <rosasco@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-11-14 16:26:58 +00:00
Greg Daniel
95f0b1673f Miscellaneous updates to handle more vulkan creation failures.
Bug: skia:9603
Change-Id: Idc282775d75e1d136fdf83e98a2e7e3e871f9b08
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253958
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-11-14 15:07:58 +00:00
flar
a8e985e87a Only define SK_GL for Flutter on non-Fuchsia platforms.
Change-Id: I71dd3324a6d3b051b164bc066c03cb2971106757
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254498
Auto-Submit: Jim Graham <jimgraham@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-11-14 14:51:28 +00:00
Robert Phillips
d04f123cc7 Revert "Reland "Implement sample mask and sample locations support in Vulkan""
This reverts commit 97e917a25f.

Reason for revert: A lot of broken GMs - particularly path draws with loops

Original change's description:
> Reland "Implement sample mask and sample locations support in Vulkan"
> 
> This is a reland of 8b915a0c27
> 
> Original change's description:
> > Implement sample mask and sample locations support in Vulkan
> >
> > Change-Id: I372695ec5360def42a8a997675993264740b0da4
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252038
> > Commit-Queue: Chris Dalton <csmartdalton@google.com>
> > Reviewed-by: Chris Dalton <csmartdalton@google.com>
> 
> TBR=ethannicholas@google.com
> 
> Change-Id: I20de36719db52ad4dfc5290101d48a8fd9601c11
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252936
> Reviewed-by: Chris Dalton <csmartdalton@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

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

Change-Id: Icff6c6e1d96f410449582ce0889b684b7e1ce2b4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254577
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-11-14 13:20:20 +00:00
skia-autoroll
ae6bae7058 Roll third_party/externals/angle2 4f023f565a61..1b52f05868c9 (8 commits)
4f023f565a..1b52f05868

git log 4f023f565a61..1b52f05868c9 --date=short --no-merges --format='%ad %ae %s'
2019-11-14 ianelliott@google.com Vulkan: Update bug numbers for GLES 3.1 "debug" expected failures
2019-11-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-headers/src d287523f48db..d42d0747ee1b (6 commits)
2019-11-13 syoussefi@chromium.org Vulkan: Fix glMemoryBarrier* implementation
2019-11-13 cnorthrop@google.com ES31: Update Vulkan skip list for SSBO
2019-11-13 syoussefi@chromium.org Desktop GLSL input + Vulkan GLSL output in shader_translator
2019-11-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 12e54dae167c..ab3cdcaef56e (2 commits)
2019-11-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src f34cdc70ca1b..37dcb894574e (1 commits)
2019-11-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 9da287fd0264..88632cac30e1 (6 commits)

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

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 halcanary@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=halcanary@google.com
Change-Id: I4a9511b5b97a1163dd4f8f037806c6b45cf3adfd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254539
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-11-14 06:12:57 +00:00
skia-autoroll
d8866d9617 Roll third_party/externals/swiftshader 88632cac30e1..b2407dd746de (3 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/88632cac30e1..b2407dd746de

git log 88632cac30e1..b2407dd746de --date=short --no-merges --format='%ad %ae %s'
2019-11-13 chrisforbes@google.com regres: Don't ignore abnormal exits
2019-11-13 swiftshader.regress@gmail.com Regres: Update test lists @ 88632cac
2019-11-13 digit@google.com [vulkan] Implement VK_KHR_external_memory_fd for Linux and Android.

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

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 halcanary@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=halcanary@google.com
Change-Id: I3098d5e7f8dfc21bc0ac5211b0899f9114c600b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254540
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-11-14 04:38:17 +00:00
recipe-roller
eb8408611b 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/838fce779fcaec9469266d6bca9ec753eebd7414 Accept None in with_user and with_tags (garymm@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ie64b1980d398974b6386321b3829921ff88bff64
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254524
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-11-14 02:42:24 +00:00
Chris Dalton
97e917a25f Reland "Implement sample mask and sample locations support in Vulkan"
This is a reland of 8b915a0c27

Original change's description:
> Implement sample mask and sample locations support in Vulkan
>
> Change-Id: I372695ec5360def42a8a997675993264740b0da4
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252038
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Chris Dalton <csmartdalton@google.com>

TBR=ethannicholas@google.com

Change-Id: I20de36719db52ad4dfc5290101d48a8fd9601c11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252936
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-11-14 02:09:03 +00:00
recipe-roller
32197f897c 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/37740e2bc9b2628d28f1959f78901168fcacd6ad Randomize results of git cl owners (brucedawson@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ie62f3ed2d5c771effde05d118ee46038c6c43df5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254516
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-11-14 01:02:33 +00:00
Mike Klein
37be7715fd implement assert_true on ARM
This all comes together as

    uminv tmp, condition
    fmov  gp, tmp
    cbnz  gp, all_true
    brk   0
  all_true:
    ...

The key idea is uminv(vec) will return 0 if any of the inputs are 0,
and non-zero if all of the inputs are non-zero, namely 0xffffffff.

fmov moves that minimum from a vector register to a general purpose
register where we can test it with cbnz, compare and branch if non-zero.
This jumps over the `brk 0` debug trap when all inputs are true.

Change-Id: If5deb77a77f52221d0649e537179743c45eb9cc5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254479
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-11-13 22:09:59 +00:00
Brian Osman
fce27adfc5 Move the persistent GrMemoryPool to the heap
This fixes a fuzzer crash where the process was shutting down (and
destroying the pool), while some threads were still trying to use the
pool to finish their outstanding work.

It also cuts down on work done at shutdown time.

Fixed: chromium:1019616
Change-Id: I35f2046e9c70fc8964f0c6f2b416d80906d91bd7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254424
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-11-13 21:49:49 +00:00
Chris Dalton
6006105f67 Implement mixed samples support in vulkan
Change-Id: I27d9e63aa7f2ad4468bb8f090a762511ead9d78c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253764
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-11-13 21:04:29 +00:00
Chris Dalton
8367e111d4 Enforce extra constraints for mixed samples at GrCaps level
Change-Id: Icbeafeb25614d66e548027e5777ea1699d1e6f7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254116
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-11-13 20:19:27 +00:00
Emircan Uysaler
6b4afb27fd Disable VkProtectedContext_DDLMakeRenderTargetTest
Bug: fuchsia:40061
Change-Id: I9d6293298bc27b81f5b4202d56c930f976c86cfc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254336
Commit-Queue: Emircan Uysaler <emircan@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-11-13 19:11:33 +00:00
Nigel Tao
4f32a29a69 Move SkWuffsCodec's reset_and_decode_image_config
This is just a re-organization, avoiding the need to have both a
declaration and a definition of that function. There is no behavior
change.

Also move to_alpha_type next to the other static functions (as opposed
to methods).

Bug: skia:8235
Change-Id: Ia0c06ec22a3dcc1d8ad66df886096a9657e43d35
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254357
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2019-11-13 16:41:02 +00:00
Robert Phillips
ae01f62009 Revert "Respect the max indexBuffer limits in the bulk texture draw API"
This reverts commit dd947ceb55.

Reason for revert: CL isn't getting any respect from Android

Original change's description:
> Respect the max indexBuffer limits in the bulk texture draw API
> 
> This is required before we can lower the max AA quad count (again).
> 
> Bug: b/143572065 skia:9601
> Change-Id: Id34123476ad49a57dc9ce7fe13f941c06f721b74
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252603
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>

TBR=robertphillips@google.com,michaelludwig@google.com

Change-Id: Ibe396fe5a0351190c214ed54611ce72b7928cadd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/143572065 skia:9601
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254437
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-11-13 15:56:43 +00:00
Jim Van Verth
98b9fd0bf6 Put check for MTLTextureUsageShaderRead in available block.
MTLTextureUsage is not available on all Metal versions, so we need to
check for that. Also made the asserts consistent in this file.

Bug: skia:9573
Change-Id: I1cbb69be9c7b59d10454dc158b0f28ab5f74bbcf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254418
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-11-13 15:49:02 +00:00
skia-autoroll
49481e1000 Roll skia/third_party/skcms 0e5f77218153..8d45badce994 (1 commits)
https://skia.googlesource.com/skcms.git/+log/0e5f77218153..8d45badce994

git log 0e5f77218153..8d45badce994 --date=short --no-merges --format='%ad %ae %s'
2019-11-13 brianosman@google.com Add another test profile from crbug.com/869115

Created with:
  gclient setdep -r skia/third_party/skcms@8d45badce994

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC halcanary@google.com,mtklein@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=luci.chromium.try:linux-blink-rel

Bug: None
Change-Id: Ic4f14aec3a08bb30d55f3a2d2ea61ee8955449cb
TBR=halcanary@google.com,mtklein@google.com
TBR=halcanary@google.com,mtklein@google.com
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254399
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-11-13 15:34:52 +00:00
Robert Phillips
dd947ceb55 Respect the max indexBuffer limits in the bulk texture draw API
This is required before we can lower the max AA quad count (again).

Bug: b/143572065 skia:9601
Change-Id: Id34123476ad49a57dc9ce7fe13f941c06f721b74
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/252603
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-11-13 15:32:02 +00:00
Robert Phillips
99e73fa8c1 Remove GL 4-bit stencil option
I would be very surprised if this is still a thing.

Change-Id: I1f93a7c9ff1f655acfd81b1fd260207c6b942289
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254186
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-11-13 14:34:00 +00:00
recipe-roller
8b73d27ddd 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/9ab6dcc77364de001bb752e5d1fb42e1dd256371 isolated: update client (tikuta@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I7e93acd2b7588599f94bbcbabd79922158c61721
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254377
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-11-13 10:55:50 +00:00
skia-autoroll
89ab0576bf Roll third_party/externals/angle2 e33c1582b4bc..4f023f565a61 (4 commits)
e33c1582b4..4f023f565a

git log e33c1582b4bc..4f023f565a61 --date=short --no-merges --format='%ad %ae %s'
2019-11-12 syoussefi@chromium.org Enable passing end2end test
2019-11-12 jmadill@chromium.org Vulkan: Improve Bresenham line emulation.
2019-11-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 3e4abc9ac382..12e54dae167c (1 commits)
2019-11-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 31edef751a8d..9da287fd0264 (6 commits)

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

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 halcanary@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=halcanary@google.com
Change-Id: I16f35aca3255eba174fafc9142174fffbe33c3c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254198
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-11-13 06:18:50 +00:00
skia-autoroll
e94ac7ab55 Roll third_party/externals/swiftshader 9da287fd0264..88632cac30e1 (6 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/9da287fd0264..88632cac30e1

git log 9da287fd0264..88632cac30e1 --date=short --no-merges --format='%ad %ae %s'
2019-11-12 bclayton@google.com Regres: Don't treat non-zero error codes as crashes.
2019-11-12 tobine@google.com Vulkan:maxPerStageDescriptorStorageBuffers = 16
2019-11-12 nicolascapens@google.com Revert "Suppress 32-bit MSVC warning."
2019-11-12 bclayton@google.com Regres: Add workaround for Khronos Gitlab issues
2019-11-12 swiftshader.regress@gmail.com Regres: Update test lists @ 9da287fd
2019-11-12 sugoi@google.com Blend mode fix for 565 format

Created with:
  gclient setdep -r third_party/externals/swiftshader@88632cac30e1

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 halcanary@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=halcanary@google.com
Change-Id: I42af529fc7a9eda5259298c63a0e92b2b06d68e2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254277
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-11-13 04:35:49 +00:00
recipe-roller
9501212cd0 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/9577daf6673d4af851bbd87a2b714f7e03cdb670 depot_tools: Don't add a python3 shim to depot_tools on bootstrap. (ehmaldonado@chromium.org)
  https://crrev.com/0db01f0fabd187228246602ee402f073aa5f7318 git-cl: Make tests run on Python 3. (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I52605b053a13d2388bb18301b4606e419f59171c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254299
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-11-12 22:43:45 +00:00
Herb Derby
cb443a5928 Force single glyph calls through bulk interface
Enance SkBulkGlyphMetrics, SkBulkGlyphMetricsAndPaths, and SkBulkGlyphMetricsAndImages
with single glyph calls. In addtion, add calls needed to have the rest of the system
work with these interfaces.

As a resulte move the glyph, prepareImage, and preparePath calls to private.

Change-Id: I8d383b649390e45f621dcb9d62fb8367a55cee02
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254056
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-11-12 22:38:14 +00:00
John Rosasco
a9b348f66c Reland fully delineate GL usage w/ skia_use_gl.
Change-Id: I90f40467be145537cc08461fd3805606432f0cfd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254240
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: John Rosasco <rosasco@google.com>
Auto-Submit: John Rosasco <rosasco@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-11-12 21:43:44 +00:00
Chris Dalton
9acf68267a Fix detection of when we will have mixed sampled coverage
Change-Id: I32de8bdea7b7aafd202f44a2036872f25d531ae3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253763
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-11-12 21:19:05 +00:00
Mike Klein
8c1e0effbb sketch out structure for ops with immediates
Lots of x86 instructions can take their right hand side argument from
memory directly rather than a register.  We can use this to avoid the
need to allocate a register for many constants.

The strategy in this CL is one of several I've been stewing over, the
simplest of those strategies I think.  There are some trade offs
particularly on ARM; this naive ARM implementation means we'll load&op
every time, even though the load part of the operation can logically be
hoisted.  From here on I'm going to just briefly enumerate a few other
approaches that allow the optimization on x86 and still allow the
immediate splats to hoist on ARM.

1) don't do it on ARM
A very simple approach is to simply not perform this optimization on
ARM.  ARM has more vector registers than x86, and so register pressure
is lower there.  We're going to end up with splatted constants in
registers anyway, so maybe just let that happen the normal way instead
of some roundabout complicated hack like I'll talk about in 2).  The
only downside in my mind is that this approach would make high-level
program descriptions platform dependent, which isn't so bad, but it's
been nice to be able to compare and diff debug dumps.

2) split Op::splat up
The next less-simple approach to this problem could fix this by
splitting splats into two Ops internally, one inner Op::immediate that
guantees at least the constant is in memory and is compatible with
immediate-aware Ops like mul_f32_imm, and an outer Op::constant that
depends on that Op::immediate and further guarantees that constant has
been broadcast into a register to be compatible with non-immediate-aware
ops like div_f32.  When building a program, immediate-aware ops would
peek for Op::constants as they do today for Op::splats, but instead of
embedding the immediate themselves, they'd replace their dependency with
the inner Op::immediate.

On x86 these new Ops would work just as advertised, with Op::immediate a
runtime no-op, Op::constant the usual vbroadcastss.  On ARM
Op::immediate needs to go all the way and splat out a register to make
the constant compatible with immediate-aware ops, and the Op::constant
becomes a noop now instead.  All this comes together to let the
Op::immediate splat hoist up out of the loop while still feeding
Op::mul_f32_imm and co.  It's a rather complicated approach to solving
this issue, but I might want to explore it just to see how bad it is.

3) do it inside the x86 JIT
The conceptually best approach is to find a way to do this peepholing
only inside the JIT only on x86, avoiding the need for new
Op::mul_f32_imm and co.  ARM and the interpreter don't benefit from this
peephole, so the x86 JIT is the logical owner of this optimization.
Finding a clean way to do this without too much disruption is the least
baked idea I've got here, though I think the most desirable long-term.

Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_SKVM_BLITTER,Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_USE_SKVM_BLITTER
Change-Id: Ie9c6336ed08b6fbeb89acf920a48a319f74f3643
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254217
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-11-12 20:17:55 +00:00
Mike Klein
749eef6b1a implement assert_true on x86
The logic implemented here is roughly

  assert_true(v):
     if any ~v {
         int3()
     }

  in assembly as

  ```
    vptest v, constant 0xffffffff mask
    jc ok
    int3
  ok:
  ```

jc branches if (~v & mask) are all zero, with mask set fully, that's
branch if ~v are all zero, which is to say, v are all ~0, true.  So we
jump over the int3 breakpoint if v are all true.

Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_SKVM_BLITTER
Change-Id: Ie0fc1da15b1a0dba00c66af610ccde18f5985f8a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253897
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-11-12 20:07:35 +00:00
Mike Klein
066c3e5d4d add Release SkVMBlitter bot
Now that assert_true()  leads to different code generation
in Debug and Release builds, we should probably test both.

Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_SKVM_BLITTER,Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SK_USE_SKVM_BLITTER
Change-Id: Icd3b67f09d964becb595ce9c95e7ebadae8da9b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253898
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-11-12 19:52:15 +00:00
Robert Phillips
373bda6c39 Remove final usage of GrProgramDesc's header
This demotes GrProgramDesc to just being the program key while promoting GrProgramInfo as the exclusive source for live information about the program.

The GrProgramDesc is still a bit more than a simple program key though bc Vulkan shears off the non-Vulkan-specific portion to cache the SPIRV code.

Bug: skia:9455
Change-Id: Ica11e3df91b8c97794deebff3f5208d16aaf75c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254184
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-11-12 19:18:35 +00:00
recipe-roller
581108137b 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/89863242a42887291b2ae7210b9831ff465af530 Add fetch configs for devtools-frontend (yangguo@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I1180c03c7e5bb225ec12987b57290feab14a96ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254232
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-11-12 17:50:56 +00:00
Chris Dalton
5e8cdfdd8b Add 'numRasterSamples' and 'isMixedSampled' to GrProgramInfo
Replaces numSamples with numRasterSamples, and adds isMixedSampled.
The sample count that vulkan and metal actually want to know is how
many samples the rasterizer will compute, which may not match the
number of samples in the render target when we have mixed samples.
They will also need to know whether a program is mixed sampled in
order to set up coverage modulation.

Change-Id: I133c11f74b7dc6a7580818ef73d6deec1d201b64
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253550
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-11-12 17:14:19 +00:00
Colin Cross
654eb2ad04 [SkQP/Android] Replace -Weverything with -Wextra
-Weverything is not recommended, use -Wextra.

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/143713277
Test: mma
Change-Id: Ibaca86bd52348d544a8109b25ae013001444935d
Reviewd-on: https://android-review.googlesource.com/1163299
Cherry-pick: 29cd4eca88df5fafde51ee9a50e3deb96263fc64
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253956
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-11-12 16:49:29 +00:00
Robert Phillips
a87c52991b Use a priori knowledge about the number of stencil bits in Dawn, Metal and Vulkan backends
The goal here is to centralize more of the program key creation w/in GrProgramInfo. For Dawn,
Metal and Vulkan, afaict, the number of stencil bits is always 8. We can use this information
 to stop passing the GrStencilSettings object around. For GL, the number of stencil bits is
 variable but it is never part of the key.

Bug: skia:9455
Change-Id: I8fd2bea2422c5b9df69fc184d3a82013eef5407e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254177
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-11-12 16:48:19 +00:00
Stephen White
7cb52cb5e6 Dawn: implement dynamic primitive processor texture handling.
Move texture setting into its own function.
Put textures in their own bind group.
Bind the dynamic ones per-mesh.
Bind the fixed ones once up front.

Change-Id: Ia93b5a3f0de6a2a3cc26b549fb56ce58215c0b19
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/253878
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-11-12 16:16:50 +00:00