Commit Graph

47633 Commits

Author SHA1 Message Date
Brian Osman
43542fc57f Add GrVkPipelineStateBuilder and GrMtlPipelineStateBuilder trace events
Bug: skia:10098
Change-Id: If46bab35b0b7bfcb45880ca9f73f3409fd8df80c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281199
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-04-02 15:38:39 +00:00
Brian Salomon
8afde5f395 Rename outputView->writeView and outputSwizzle->writeSwizzle
Change-Id: Ib09550201bc1556e04555fc7dc9408ab469684a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280964
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-04-02 15:06:16 +00:00
Brian Salomon
c3ce54a8a7 Remove color type from promise image proxy callback.
The color type used to influence the GrPixelConfig and the swizzles
used with the proxy and its GrTextures. So we had to create a new proxy
if the same API texture was used to fulfill a promise image of a
different color type. That has all been removed or lifted out of proxies
and into views. So now it is fine to reuse the same proxy/GrTexture with
a different color type.

Also remove unit test that checked required a new GrTexture be made if
a different color type was used.

Bug: skia:10078

Change-Id: Ib74c419b5d54d382ea95720af7026640e35013f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281056
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-04-02 14:59:18 +00:00
Weston Tracey
27801a82e4 Broke Debian9 things in skolo.
Revert "[infra] Upgrade to Debian 10 for GCE tasks."

This reverts commit b5d39b54a3.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> [infra] Upgrade to Debian 10 for GCE tasks.
> 
> Bug: skia:9438
> Change-Id: I1326f55fa8546d141c43ef4c6fcee6f65ed0e600
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280901
> Commit-Queue: Weston Tracey <westont@google.com>
> Reviewed-by: Eric Boren <borenet@google.com>

TBR=borenet@google.com,westont@google.com

Change-Id: I866444b0b88ebc335a5cda8ab388b621c1b22c36
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9438
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281201
Reviewed-by: Weston Tracey <westont@google.com>
Commit-Queue: Weston Tracey <westont@google.com>
2020-04-02 14:51:36 +00:00
Mike Klein
7542ab5e5b reframe liveness_analysis as eliminate_dead_code
Seems nicer to keep encapsulated in a program->program pass
so nothing upstream of it has to think about liveness.

I will be circling back around to profiling the cost of these
tempoaries, copies, etc.  I just want to start writing them as
if cost were no object first.

Change-Id: I1d1187b521fbe963e720e0d8de90316a549f7797
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281182
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-02 14:44:36 +00:00
Weston Tracey
b5d39b54a3 [infra] Upgrade to Debian 10 for GCE tasks.
Bug: skia:9438
Change-Id: I1326f55fa8546d141c43ef4c6fcee6f65ed0e600
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280901
Commit-Queue: Weston Tracey <westont@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2020-04-02 14:15:20 +00:00
Brian Osman
717d386e0b Remove more remnants of SkVertices bone support
Bug: skia:9984
Change-Id: Ib79cf2509f5f92672cbb0b6060b8b33f99e9ac28
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281162
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-04-02 14:12:06 +00:00
Brian Osman
f5ecf51f47 Stop including SkVertices.h from so many places
Change-Id: I50c1f230803faef731b32cad7cd60b7b421678e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281160
Auto-Submit: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-04-02 14:07:46 +00:00
Kevin Lubick
37d8c64530 [canvaskit] Add tests for RTShader
Change-Id: I43e4d9b173a7ee09da1e8457c86ea129b89637a9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281163
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-04-02 13:59:51 +00:00
Heather Miller
2fc431eaea Update Skia milestone to 84
Change-Id: I7bee49c916a76b78fd5b671461513339e27f2cec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281158
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Heather Miller <hcm@google.com>
Auto-Submit: Heather Miller <hcm@google.com>
2020-04-02 13:43:06 +00:00
Chris Dalton
8ce842d38d Fix the CanvasKit viewer build
Change-Id: I82e28478bd9c52f5633e74472ab2b256961cdf45
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281050
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-04-02 11:23:29 +00:00
skia-autoroll
6c51bf61e2 Roll third_party/externals/angle2 7d8c2f2e3322..745e071241ab (12 commits)
7d8c2f2e33..745e071241

git log 7d8c2f2e3322..745e071241ab --date=short --first-parent --format='%ad %ae %s'
2020-04-02 m.maiya@samsung.com Vulkan: Enable CPU only buffers for PBOs
2020-04-01 thakis@chromium.org Remove breaks after returns.
2020-04-01 hckim.kim@samsung.com Vulkan: Refactor garbarge collection related parameter
2020-04-01 jmadill@chromium.org Vulkan: Use shader stage specific barrier
2020-04-01 hckim.kim@samsung.com Vulkan: Add flush condition for the device memory updated by CPU
2020-04-01 hckim.kim@samsung.com Vulkan: Request host uncached memory for some glBuffer objects
2020-04-01 ynovikov@chromium.org Add SwANGLE bots to ANGLE CQ.
2020-04-01 ancheng.qiao@arm.com Add gles1 covgl tests
2020-04-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src e157435c1e77..1fff36235504 (1 commits)
2020-04-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src fd773eb50d62..c37c94929bf5 (1 commits)
2020-04-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-tools/src d712a6b03b9e..7844b9b4e180 (1 commits)
2020-04-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 9a0f2d99fd5d..f5504529553f (30 commits)

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

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 michaelludwig@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: michaelludwig@google.com
Change-Id: Ia2eee9a56d1f02f5d18ba77be2a1257dae6c317e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281092
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-02 05:17:36 +00:00
skia-autoroll
1b009e1aa6 Roll ../src 99264d128679..deeb0d54a08c (439 commits)
99264d1286..deeb0d54a0


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

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC michaelludwig@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:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Bug: None
Tbr: michaelludwig@google.com
Change-Id: I73f7ef1328afab169d04a097e1ede1f55a7ea00d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281093
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-02 04:48:06 +00:00
skia-autoroll
bf894190a9 Roll third_party/externals/swiftshader 5cf1e9a31c90..cb58662302c8 (7 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/5cf1e9a31c90..cb58662302c8

git log 5cf1e9a31c90..cb58662302c8 --date=short --first-parent --format='%ad %ae %s'
2020-04-01 cwallez@cwallez-macbookpro3.roam.corp.google.com MetalSurface: set layer.device to a ref of the system default device.
2020-04-01 bclayton@google.com Regres: Add invertCommon optimization.
2020-04-01 bclayton@google.com Regres: Move optimization logic to separate file
2020-04-01 bclayton@google.com Regres: Keep coverage span groups stable.
2020-04-01 bclayton@google.com Regres: Split coverage.go into multiple files
2020-04-01 bclayton@google.com Regres: Further optimizations for coverage
2020-04-01 bclayton@google.com Regres: Add cov.ReadJSON()

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

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 michaelludwig@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:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: michaelludwig@google.com
Change-Id: I6971ae0214b4f6a29cc562363884a64825919be2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281091
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-02 04:36:36 +00:00
Brian Osman
46aacc7710 Fix SkVertices serialization bug. Also remove Builder getters for counts.
We already checked the SkSafeRange earlier (after its last use). Here we
need to be checking the SkSafeMath object. Oops.

The counts are directly copied from the constructor to the vertices'
fields - the user already knows what they are (and the tests are
verifying a tautology).

Bug: skia:9984
Change-Id: I33c62e02825718e497834b0dfa40d0d56e46a197
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280963
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-04-02 00:28:36 +00:00
Mike Klein
17b5180931 pull out specialize_for_jit()
Not too tricky, but I did have to slightly work around
not having this be a member function of Builder.  Seems
healthy enough though, nothing terribly ugly or dangerous.

Still TODO, unit test specialize.  Probably another CL.

Change-Id: Ia547ae010940754fa7bb8417119416762597cb4c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281045
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-04-01 23:48:26 +00:00
John Stiles
ceeb256374 Wrap copy-tool path in quotes.
This prevents a build failure if Skia is installed to a path with a space in it.

Change-Id: I3f9a6d435971720a32c3ac14c9eb144f2da563a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280183
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-01 23:45:56 +00:00
Brian Osman
ffd11f4ab3 Adding attribute types to SkVertices
Adds structure to the per-vertex (now custom) data.
Attributes currently just have a type, but the next
step is to augment that with semantic flags to handle
transformation logic in the vertex shader.

Added unit tests and GMs that exercise attributes of
varying float counts, as well as normalized bytes.

Bug: skia:9984
Change-Id: I02402d40b66a6e15b39f71125004efb98bc06295
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280338
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-04-01 23:23:26 +00:00
Mike Klein
a01c6b0b59 reformat GN files
Change-Id: I2d19c4f0ff1439dcd923a3064eb3ba78432a5113
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281043
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-04-01 23:23:03 +00:00
Michael Ludwig
b14b144458 Revert "Reland "Use glDraw.*BaseInstance calls to avoid deferred buffer binding""
This reverts commit d84b691950.

Reason for revert: seems like chrome's glInterface is maybe not setup correctly. Crashing on intel gpu chrome bots: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8884195221041295328/+/steps/trace_test_on__intel-hd-630-ubuntu-stable__GPU_on_Linux__retry_shards_with_patch__on_linux-intel-stable/0/stdout

snippet: 
Crash reason:  SIGABRT
Crash address: 0x3e8000050b0
Process uptime: not available

Thread 0 (crashed)
 0  libc.so.6 + 0x43ed7
    rax = 0x0000000000000000   rdx = 0x0000000000000000
    rcx = 0x00007ff964c3ced7   rbx = 0x00002cc73685ddc0
    rsi = 0x00007fffb9128960   rdi = 0x0000000000000002
    rbp = 0x00007fffb9128bb0   rsp = 0x00007fffb9128960
     r8 = 0x0000000000000000    r9 = 0x00007fffb9128960
    r10 = 0x0000000000000008   r11 = 0x0000000000000246
    r12 = 0x0000000000000048   r13 = 0x0000000000000000
    r14 = 0x000000000000006c   r15 = 0x0000000000000000
    rip = 0x00007ff964c3ced7
    Found by: given as instruction pointer in context
 1  chrome!GrGLGpu::drawElementsInstancedBaseVertexBaseInstance(GrPrimitiveType, int, unsigned int, void const*, int, int, unsigned int)::$_81::operator()() const + 0x33
    rbp = 0x00007fffb9128bc0   rsp = 0x00007fffb9128bc0
    rip = 0x000055c5c1db6923
    Found by: previous frame's frame pointer
 2  chrome!drawElementsInstancedBaseVertexBaseInstance [GrGLGpu.cpp : 2306 + 0x5]
    rbp = 0x00007fffb9128c10   rsp = 0x00007fffb9128bd0
    rip = 0x000055c5c1db68b6
    Found by: call frame info
 3  chrome!onDrawIndexed [GrGLOpsRenderPass.cpp : 144 + 0x16]

Original change's description:
> Reland "Use glDraw.*BaseInstance calls to avoid deferred buffer binding"
> 
> This is a reland of e8c963d474
> 
> Original change's description:
> > Use glDraw.*BaseInstance calls to avoid deferred buffer binding
> > 
> > Change-Id: I968dab317673051acc65f87ea76a0d657d89b3d2
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279538
> > Commit-Queue: Chris Dalton <csmartdalton@google.com>
> > Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> 
> Change-Id: I79b2d23e5e66d47214898a9068079b6fe2269599
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280806
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com

Change-Id: I1d2617f077676b6f36bb723615d527e4aa4b3efe
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281057
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-04-01 21:55:43 +00:00
Ethan Nicholas
7c75226854 Renamed the various 'stage' shader functions to have the actual effect name
This is purely to make debugging easier, as the shaders now make more sense
to read.

Change-Id: Ie8e9b9d36112fda3ff997d088955de5a0e2c787a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281017
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-04-01 19:07:04 +00:00
Chris Dalton
d84b691950 Reland "Use glDraw.*BaseInstance calls to avoid deferred buffer binding"
This is a reland of e8c963d474

Original change's description:
> Use glDraw.*BaseInstance calls to avoid deferred buffer binding
> 
> Change-Id: I968dab317673051acc65f87ea76a0d657d89b3d2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279538
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

Change-Id: I79b2d23e5e66d47214898a9068079b6fe2269599
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280806
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-04-01 18:41:53 +00:00
Greg Daniel
6e35a00916 Have GrContext abandoned call also check if the underlying device is lost.
Change-Id: Iba09b8f39138e99cbd987880b2da07fdec799248
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280638
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-04-01 18:33:23 +00:00
Brian Osman
007409ac58 In pipeline stage code generator, skip emitting varying declarations
These variables are placeholder (references to them are replaced with
references to specially named globals).

Change-Id: I423bf63a0e6887c208d27c006a646a5ae882071a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280903
Auto-Submit: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2020-04-01 18:24:23 +00:00
Ethan Nicholas
94996eb856 Stop inadvertently cloning GrTextureEffect
Besides the obvious inefficiency of copying the effect rather than
taking a reference, this was breaking my upcoming sample-by-matrix work,
as the copied effect wasn't part of the FP hierarchy and therefore
wasn't properly getting the parent matrix applied to it.

Change-Id: I0d3ece8ceffcf1eee01a9c392476a5b029a83760
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280958
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
2020-04-01 18:20:05 +00:00
Mike Klein
4f90a8e399 Uses refactoring
Instead of copying fIndex and marching it forward,
we can tick down our existing uses counts backward,
saving one temporary std::vector.

Our implementation does guarantee the Instructions
returned by users() are sorted, so let's lean into
that... that means we can find the death time of any
instruction simply by looking at users().back()
(if there are any, of course).

Everything else is names and formatting, the biggest
being renaming Uses -> Usage.  There's enough mention
of "users" and "uses" contrasting with each other that
I think it makes sense for the type to have the nice
middle-ground neutral name Usage, reflecting the arrow
and not which way we're thinking about it pointing.

Change-Id: I32ea9af6eb6430a162bee6da4810a599e8ed0dfd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281003
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-04-01 18:18:13 +00:00
Kevin Lubick
9e2d384559 [canvaskit] Add support for DOMMatrix to some APIs
This does a head to head comparison for our JS-implemented
SkMatrix (DOMMatrix is tens of times slower) and adds support.

There are a few APIs (e.g. on Canvas) that don't yet support this.
This is because I want to experiment with the speed difference
between SimpleMatrix and emscripten's bindings and us just allocating
an array for the user on the WASM heap.

Change-Id: I47086dd6b40cbd522c6b85e5f9b1a7e819f54f9d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280957
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-04-01 18:15:29 +00:00
Mike Reed
f3b9a30e81 Use infix syntax from skvm
Nothing should draw differently, just wanting to make the code
more readable.

Change-Id: I139f673cd7b28536e91cb2a3c793c86c5fb143cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280819
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-04-01 17:54:43 +00:00
Brian Salomon
46994e01c9 Dawn Debug Win10 test bot
Bug: skia:10096

Change-Id: I7c5a004b2bee76d7b3d262734b8cce32d1b5a098
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280818
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-04-01 17:39:13 +00:00
Robert Phillips
1576e4edf0 Non-substantive GPU text changes
This CL pulls some cleanup changes out of the omnibus GPU text CL. It:

Removes the unused GrTextStrike::removeID method
Removes the unused GrTextStrike::countGlyphs method
Removes the GrTextureStrike::fAtlasedGlyphs member variable
Adds an "int SkSpan::count() const" helper method

Change-Id: I88eefd929a5576093de58af85582567d8df5610a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280706
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-04-01 17:34:13 +00:00
Chris Dalton
4eaa5f2eb1 Disable baseInstance on ANGLE D3D
Bug: angleproject:4536
Change-Id: I8cc4d01f52aa3e4539e365b249053207496c5d5a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280983
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-04-01 17:12:03 +00:00
Florin Malita
eeaabc4ba2 [skottie] Vector-encoded paths
Lottie shapes (paths) are expressed as a sequence of vertices, where
each vertex has a

  - position
  - in-tangent control point (relative to position)
  - out-tangent control point (relative to position)

A nice property of this representation, is that interpolation can be
performed independently on each scalar component.

This seems really close to what VectorAnimator is good at - so can we
shoe-horn shapes into vectors and drop the ShapeValue KeyframeAnimator
specialization?  Yes, we can!

To support the conversion, we need to abstract out two aspects of the
VectorKeyframeAnimator builder:

  - parsing the encoding length of a vector-representable object
  - parsing the actual encoding data of a vector-representable object

(For current/regular vector values, the encoding length is the same as
the json array length, and the encoding data is just the array of json
numbers.)

Shapes are encoded as a sequence of 6 floats per vertex, plus an
additional/trailing boolean maker for the "closed shape" property:

 [v0.posX, v0.posY, v0.inX, v0.inY, v0.outX, v0.outY, ..., closed_flag ]

(thus encoding_len == 6 * vertex_count + 1)

After we're done with parsing, animation/interpolation is handled
via existing VectorKeyframeAnimator - so we can remove
KeyframeAnimator<ShapeValue>.

Converting to SkPath is pretty much the same as for the previous
representation, except the input is now flattened.

Change-Id: I822797fceae561b52b709bf258163bbcc6b565fb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280898
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-04-01 17:06:04 +00:00
Mike Klein
bfc09267bd roll GN
Update fetch-gn to fetch gn CIPD packages.
The hashing seemed unimportant... we could add it back.

Change-Id: I56be8a62d11be20100be41e0889d2088baefbcf0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280707
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2020-04-01 17:02:23 +00:00
Mike Klein
3809be4c56 add operator-> to Color and HSLA
Change-Id: I0819a89feea5576bd914f47fcb7a84c440ab46bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280982
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-04-01 16:47:23 +00:00
Chris Dalton
b60c8a2496 Reset GrOpsRenderPass active buffers during bindPipeline
Change-Id: I7b0162a796f49117d9fb3af043f8c53112edb69f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280804
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-04-01 16:36:13 +00:00
Jim Van Verth
f76cbfc75b Use bundle_resources_dir for iOS plist.
Makes new GN happy.

Change-Id: Id87e44d46772c6f147e0150f8c586fdd0a97504d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280904
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-04-01 16:34:33 +00:00
Jim Van Verth
9aa9a683d3 Implement local version of gr_cp and use for GrD3DTextureResourceInfo.
Bug: skia:9935
Change-Id: I4c2d70f69e30f78caca0f49629880565f178f495
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280609
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-04-01 16:06:17 +00:00
skia-autoroll
763703c64d Roll ../src f43e7c4d79ad..99264d128679 (445 commits)
f43e7c4d79..99264d1286


Created with:
  gclient setdep -r ../src@99264d1286

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC michaelludwig@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:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Bug: None
Tbr: michaelludwig@google.com
Change-Id: I3b0ba77662f744ef493a763381ea5f44fb900633
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280861
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-01 16:01:13 +00:00
skia-autoroll
679004863c Roll third_party/externals/angle2 05fa1a99914a..7d8c2f2e3322 (12 commits)
05fa1a9991..7d8c2f2e33

git log 05fa1a99914a..7d8c2f2e3322 --date=short --first-parent --format='%ad %ae %s'
2020-04-01 ynovikov@chromium.org Hide SwiftShader OS Window in dEQP and end2end tests
2020-04-01 ynovikov@chromium.org Skip SwANGLE GLES31 tests which flakily crash with Win 32-bit Subzero
2020-04-01 cclao@google.com Vulkan: Avoid renderpass break for occlusion query
2020-03-31 jonahr@google.com Split EGL_CHROMIUM_sync_control into EGL_ANGLE_sync_control_rate
2020-03-31 kbr@chromium.org Apply limitMaxMSAASamplesTo4 workaround to macOS.
2020-03-31 cnorthrop@google.com Capture/Replay: Disable binary formats when FrameCapture is enabled
2020-03-31 jmadill@chromium.org Vulkan: Observe staging buffer changes in TextureVk.
2020-03-31 ancheng.qiao@arm.com Vulkan: Remove swiftshader mipmap3d test skip
2020-03-31 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 344bd0889ac9..e157435c1e77 (3 commits)
2020-03-31 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-tools/src bec7b6e29260..d712a6b03b9e (4 commits)
2020-03-31 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 1c29477aa06e..5cf1e9a31c90 (6 commits)
2020-03-31 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-loader/src b0c27ce32864..ba07fa0be82c (1 commits)

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

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 michaelludwig@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: michaelludwig@google.com
Change-Id: I8ac3bf882fd5f20bb1013f450e27132674879931
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280862
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-01 16:01:12 +00:00
Brian Osman
587b091d03 Stop including SkVertices.h from SkCanvas.h
Change-Id: Ie9026e49719ddca5d4da24c84df32afcc6d7a603
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280902
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-04-01 15:09:37 +00:00
Brian Salomon
e8d2080a34 Revert x2 "Assert that all GrCaps colortype/format -> swizzle queries are legal."
This reverts commit b16f30bb92.

Bug: chromium:1066850

Change-Id: I57e233d370a7248867f709d52012726d19959379
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280900
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
2020-04-01 13:54:04 +00:00
Mike Reed
28fe2c5175 remove unused flag
Change-Id: I4ab6c7eb846336e09505fc850d7e8665c7179a25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280879
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-04-01 13:05:02 +00:00
Mike Reed
0f5e7581a0 can we remove these entirely?
Change-Id: I3dbf9c25e6e0025cc1686789a089420ebce72bbd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280191
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-04-01 12:13:54 +00:00
Brian Osman
7a3358c80b Really fix SkVerticesPriv on MSVC 2017
Change-Id: Ifacd00d6cfff3edbac2781ec340f294d42ab2977
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280816
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-03-31 22:57:27 +00:00
Michael Ludwig
7800453ed2 Revert "Use glDraw.*BaseInstance calls to avoid deferred buffer binding"
This reverts commit e8c963d474.

Reason for revert: assert failures: https://logs.chromium.org/logs/skia/4b4b7fcb2ff3fe11/+/steps/dm/0/stdout

Original change's description:
> Use glDraw.*BaseInstance calls to avoid deferred buffer binding
> 
> Change-Id: I968dab317673051acc65f87ea76a0d657d89b3d2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279538
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com

Change-Id: Ic760a56ca9d112e924baf7e833adb09b371928b0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280817
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-03-31 22:34:17 +00:00
Ben Wagner
507e486219 Revert "Enable deprecated-copy-dtor warning."
This reverts commit e990fcc4b0.

Reason for revert: Build-Win-Clang-x86_64-Release-Shared

Original change's description:
> Enable deprecated-copy-dtor warning.
> 
> In C++11 a user declared destructor still requires the compiler to
> implicitly default the copy constructor and copy assignment operator,
> but this is deprecated. Note that a user declared destructor suppresses
> the move constructor and move assignment operator; a user declared
> destructor exists if any '~Foo' method declaration appears inside
> 'class Foo' (even if defaulted); if the copy and move operations are the
> same then copy operations that take 'const Foo&' will do fine double
> duty as move operations.
> 
> Clang seems to have an issue with this warning, in that it does not
> appear to distinguish between compiler defaulted and user defaulted
> destructors. As a result, it does not always warn when it should.
> There may yet be places in the code where a move operation is desired
> but may be suppressed because the implicitly defaulted  moves are not
> declared because a destructor has been declared.
> 
> This wraps dawn and shaderc configs in 'third_party' so that their
> headers will be included through '-isystem' in order to avoid the
> warnings generated by including their headers.
> 
> Change-Id: I681524cd890d86305aa99b6b765a52113b4dfa4b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280406
> Reviewed-by: Mike Klein <mtklein@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Ben Wagner <bungeman@google.com>

TBR=mtklein@google.com,bsalomon@google.com,bungeman@google.com

Change-Id: Icd6a2487637d21fcf7c4c7ab7cba7a8adfda5afd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280836
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-03-31 22:32:07 +00:00
Ben Wagner
e990fcc4b0 Enable deprecated-copy-dtor warning.
In C++11 a user declared destructor still requires the compiler to
implicitly default the copy constructor and copy assignment operator,
but this is deprecated. Note that a user declared destructor suppresses
the move constructor and move assignment operator; a user declared
destructor exists if any '~Foo' method declaration appears inside
'class Foo' (even if defaulted); if the copy and move operations are the
same then copy operations that take 'const Foo&' will do fine double
duty as move operations.

Clang seems to have an issue with this warning, in that it does not
appear to distinguish between compiler defaulted and user defaulted
destructors. As a result, it does not always warn when it should.
There may yet be places in the code where a move operation is desired
but may be suppressed because the implicitly defaulted  moves are not
declared because a destructor has been declared.

This wraps dawn and shaderc configs in 'third_party' so that their
headers will be included through '-isystem' in order to avoid the
warnings generated by including their headers.

Change-Id: I681524cd890d86305aa99b6b765a52113b4dfa4b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280406
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-03-31 22:15:07 +00:00
Brian Salomon
982f546cc1 Rename outputSwizzle->writeSwizzle.
It is also used for writes to surfaces other than fragment shader
output. e.g. clears.

Change-Id: Id1eb79be6d1a8aed936456bffa59dee32661cec8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280344
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-03-31 21:50:38 +00:00
Chris Dalton
e8c963d474 Use glDraw.*BaseInstance calls to avoid deferred buffer binding
Change-Id: I968dab317673051acc65f87ea76a0d657d89b3d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279538
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-03-31 21:09:57 +00:00
Brian Osman
2a93452be5 Fix SkVerticesPriv on MSVC 2017
Change-Id: I1ce2d98de0f3640ae9ccbae5b2a601bf70a35423
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280756
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-03-31 21:06:07 +00:00