Commit Graph

49061 Commits

Author SHA1 Message Date
Michael Ludwig
ce86910dd8 Revert "Centralize geometry processor vertex shader transform code"
This reverts commit 0426947243.

Reason for revert: unblock chrome roller

Original change's description:
> Centralize geometry processor vertex shader transform code
> 
> GrGLSLGeometryProcessors no longer have to call emitTransforms() in
> their onEmitCode() function. Instead, the GpArgs struct allows them to
> set a GrShaderVar that holds the computed or explicitly provided local
> coordinates in the vertex shader.
> 
> The base GrGLSLGeometryProcessor now automatically uses that to collect
> all of the transforms that can then be lifted out of FPs to the vertex
> shader, and base their computation on the GP provided local coordinate.
> 
> As part of this, there is no more built-in magic concatenation of a
> local matrix / inverse view matrix to these coordinate transforms. GP
> implementations that relied on this now manage their own uniform for this
> matrix and compute the local coordinate before assigning to GpArgs.
> 
> The base GrGLSLGeometryProcessor is updated to provide helpers for this
> pattern.
> 
> Bug: skia:10396
> Change-Id: I56afb3fff4b806f6015ab13626ac1afde9ef5c2b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297027
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

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

Change-Id: I203b7c72591d39b159e0405716fe8cdc28b083af
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10396
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297917
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-06-20 00:37:45 +00:00
John Stiles
33e044fb16 Prevent non-trivial destructors from running after exit in DM.
Previously, DM destroyed a large number of non-trivial objects at
shutdown time. Because no shutdown order is promised across translation
units by the standard, this can lead to bugs which only reproduce
capriciously, at the whim of the linker.

http://go/totw/110#the-fix-safe-initialization-no-destruction

"Destruction issues are usually solved by defining your static data
in such a way that the destructor never runs. The most common way to do
this is to heap allocate the static object - pointers don't have
destructors."

http://go/cstyle#decision_on_destruction

"Global and static variables that use dynamic initialization or have
non-trivial destructors create complexity that can easily lead to hard-
to-find bugs. Dynamic initialization is not ordered across translation
units, and neither is destruction (except that destruction happens in
reverse order of initialization). When one initialization refers to
another variable with static storage duration, it is possible that this
causes an object to be accessed before its lifetime has begun (or
after its lifetime has ended). Moreover, when a program starts threads
that are not joined at exit, those threads may attempt to access objects
after their lifetime has ended if their destructor has already run."

Change-Id: I54eedcd813295a23923deb925b0ca2adfff69f7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297872
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-06-20 00:02:23 +00:00
Mike Klein
29cb9f9478 decouple werror and -isystem in third_party
Some users of Skia want to build these with -I instead of -isystem, and
until now we've piggybacked it on werror, but it's still kind of
annoying to see warnings even if they're not fatal.

Change-Id: I5a349b2571adc2f94c75dc17317666ddc2dec373
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297788
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-06-19 21:59:35 +00:00
Jim Van Verth
5a967f593c Fill in GrD3DGpu::onUpdateBackendTexture
Change-Id: I83268cf9daf62c0bab831cf5340b85f31cc941b0
Bug: skia:9935
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/295834
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-06-19 20:56:45 +00:00
Brian Osman
ad43e54bfb Handle kMatrixMultiply in ByteCode -> SkVM
Raster backend now draws the bump-mapped cube sample!

Change-Id: I4ad74c50a329dcd0c9b56f2a18b1e32fd5c5eccd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297815
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-06-19 20:31:10 +00:00
Mike Klein
e66636c332 check all calls to SkCreateRasterPipelineBlitter
We made these functions return nullptr but several
call sites were not updated to expect nullptr.

This is my best guess for the attached fuzzer bug.
I haven't looked deeply but will if this doesn't fix it.

Bug: chromium:1097084
Change-Id: Id57d402dea5f007d886d852be8035b13f62be9a8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297820
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-06-19 20:27:55 +00:00
Michael Ludwig
0426947243 Centralize geometry processor vertex shader transform code
GrGLSLGeometryProcessors no longer have to call emitTransforms() in
their onEmitCode() function. Instead, the GpArgs struct allows them to
set a GrShaderVar that holds the computed or explicitly provided local
coordinates in the vertex shader.

The base GrGLSLGeometryProcessor now automatically uses that to collect
all of the transforms that can then be lifted out of FPs to the vertex
shader, and base their computation on the GP provided local coordinate.

As part of this, there is no more built-in magic concatenation of a
local matrix / inverse view matrix to these coordinate transforms. GP
implementations that relied on this now manage their own uniform for this
matrix and compute the local coordinate before assigning to GpArgs.

The base GrGLSLGeometryProcessor is updated to provide helpers for this
pattern.

Bug: skia:10396
Change-Id: I56afb3fff4b806f6015ab13626ac1afde9ef5c2b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297027
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-06-19 20:26:05 +00:00
Greg Daniel
a581a8b800 Fix caching of dirty uniforms on GrD3DPipelineState.
Change-Id: Ibf68103e8e47d3cd13b12a97da3b9131dbdbfd38
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297857
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-06-19 20:11:55 +00:00
Florin Malita
579e63af00 [skrive] Reset the node system
Tacking another hierarchy on top of SkSG doesn't work well.

Let's start fresh.

TBR=
Change-Id: Ieb379b57e1a77df3c62048d3be7e81e1429f9b23
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297807
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2020-06-19 20:00:55 +00:00
Chris Dalton
312669e3b0 Query GL_SAMPLES when creating an SkSurface from the WebGL canvas
This allows users to create their context with {antialias: true} and
*hope* for MSAA. This CL also updates viewer.html achieve MSAA with this
method, and if the browser doesn't give an MSAA, we simply abort.

Change-Id: Ia242d266123c4b08f15a357e1fedc449642d88d3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297597
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-06-19 19:59:15 +00:00
Derek Sollenberger
96f8db0323 Revert "Make it easier to test rectangle textures by using createBackendTexture."
This reverts commit 4e37751693.

Reason for revert: breaking some mac test bots

Original change's description:
> Make it easier to test rectangle textures by using createBackendTexture.
> 
> Also allows internal creation of rectangle textures, only used by unit
> tests currently.
> 
> Previously GrContext::createBackendTexture() would ignore the request
> for RECTANGLE or EXTERNAL and always make 2D. Now it makes RECTANGLE if
> supported and always fails for EXTERNAL.
> 
> Change-Id: Iafbb3f5acddb37bfb8d39740f2590177a07dae78
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297472
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com

Change-Id: Ia14c60ae996757369f1711ec0851e199cbbd4157
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297812
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
2020-06-19 19:14:39 +00:00
Brian Osman
02f8b077d5 ByteCode: Avoid using "extended" loads when possible
If the address is known statically, prefer to use multiple fixed loads,
so that we can translate these kinds of programs to SkVM.

Change-Id: I0e0f126f5a1538fdc54a9c953f67b93a37a500c5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297803
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-06-19 19:11:35 +00:00
Brian Osman
91cc9799fb SkVM: Handle kNegateF
Change-Id: I83d9148b6f651c3d518b3add4cb160c0860dc281
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297802
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-06-19 19:09:35 +00:00
Bryce Thomas
88ecb7f580 Add sleep option to web_to_(skp|mskp) shell scripts.
On slower machines, invoking |chrome.gpuBenchmarking.printToSkPicture|
too early after the headless browser is launched leads to no .skp
files being captured.  Adding a sleep after the launch of the headless
browser rectifies the issue.

Bug: NONE
Change-Id: I39178f8336b794a6f293bd337aca0b6f85a07360
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297805
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-06-19 19:06:29 +00:00
John Stiles
777556a47d Reland "Replace analytic clip stack with chained fragment processors."
This is a reland of 907f34bfc1

This version avoids calling vector::front() on an empty vector, which
is undefined behavior and can cause some versions of libc to trigger a
SIGABRT when debug is enabled. (GrReducedClip.cpp:939)

Original change's description:
> Replace analytic clip stack with chained fragment processors.
>
> We no longer need to maintain a vector of analytic FPs and run them in
> series. (CCPR and fShader do not support chaining in this CL, so we do
> need to assemble a vector of FPs at the last instant.)
>
> Change-Id: I1f7a64cf617d577e05e1fe41c740361f702a76b0
> Bug: skia:10217
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/296861
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>

Bug: skia:10217
Change-Id: Ibd562c31160414143e396b24c879eefaefe3967b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297151
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-06-19 19:04:29 +00:00
Brian Salomon
3f4de78fa5 ProcessorCloneTest checks against original FP against clone.
Previously the test checked two clones against each other. It seems
more useful to test an original against a clone.

Change-Id: Ie49a39829a0f5ee24724e4acefad50e539104f48
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297460
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-06-19 18:17:58 +00:00
Michael Ludwig
724701f466 Reland "Snap coordinates for shader nearest-neighbor decal filtering"
This is a reland of 4e68ec693f

Original change's description:
> Snap coordinates for shader nearest-neighbor decal filtering
> 
> Bug: skia:10403
> Change-Id: I875b1a4bb7cacbe6721a69aa8ed02118b989729d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297596
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>

Bug: skia:10403
Change-Id: Idcf0b9a2d85410901a6d6fc2bedf628122cf9ae4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297799
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-06-19 18:17:18 +00:00
Mike Klein
e81b10834e plumb matrix provider through skvm shaders
Trickiest bit is probably the override provider in kSampleExplicit?

Change-Id: Ib0ada157825c844ff4b7b43efac9f27f3552f3d1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297775
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-06-19 18:05:28 +00:00
Brian Osman
2a4871b80c Implement normalize in ByteCode generator
Change-Id: I82592c5bb3c6fb7a0e61970d0a8980855c04ce50
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297798
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-06-19 17:57:28 +00:00
Brian Salomon
4e37751693 Make it easier to test rectangle textures by using createBackendTexture.
Also allows internal creation of rectangle textures, only used by unit
tests currently.

Previously GrContext::createBackendTexture() would ignore the request
for RECTANGLE or EXTERNAL and always make 2D. Now it makes RECTANGLE if
supported and always fails for EXTERNAL.

Change-Id: Iafbb3f5acddb37bfb8d39740f2590177a07dae78
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297472
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-06-19 17:50:18 +00:00
Robert Phillips
e22c5caa84 Fix wacky_yuv_formats for *ooprddl configs
In OOPR/DDL mode, images wrapping backend textures must be able to exist past the end of the GM - residing in the DDL.

Change-Id: Icc78e407b45f91d3d47eebde2c316ff6bd962afb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297380
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-06-19 17:42:58 +00:00
Greg Daniel
d4928d03e2 Implement flush finish proc support for d3d backend.
This also adds a GPUTEST_FOR_D3D_CONTEXT macro to help with debugging
tests.

Change-Id: I72db01d148755c3bbbbb4d948d441a31dcf9482b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297717
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-06-19 16:28:33 +00:00
Michael Ludwig
ce81227c01 Revert "Snap coordinates for shader nearest-neighbor decal filtering"
This reverts commit 4e68ec693f.

Reason for revert: chrome layout failure?

Original change's description:
> Snap coordinates for shader nearest-neighbor decal filtering
> 
> Bug: skia:10403
> Change-Id: I875b1a4bb7cacbe6721a69aa8ed02118b989729d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297596
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>

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

Change-Id: Ie7d329b54b19c2c9c2d9e4a5611c9677fe6d2ae5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10403
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297721
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-06-19 15:48:35 +00:00
Brian Osman
89bf734d87 Add ceil to skvx/skvm/JIT, and floor/ceil intrinsics to ByteCode
This is enough to get the colorcube GM working on the CPU backend.
(It's not blazingly fast, but it works!)

Change-Id: Ic069861bab162ed49f876fd03af2cbaaec2da628
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297718
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-06-19 15:37:03 +00:00
Kevin Lubick
df4e3ab185 HTML typo egde => edge
Same problem was in infra repo:
https://skia-review.googlesource.com/c/buildbot/+/297738
https://skia-review.googlesource.com/c/buildbot/+/132921

Change-Id: I686e293aaf2a6c09f388eef864d3ea143ca2f69e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297719
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-06-19 15:12:06 +00:00
Robert Phillips
c869ff7d97 Fix flippity GM for *ooprddl configs (take 2)
The flippity GM doesn't create backend textures but it does perform some custom proxy creation (i.e., using MakeTextureProxyFromData to set the origin) that requires a direct context. This work must be done in onGpuSetup but doesn't entail any fancy lifetime management.

TBR=egdaniel@google.com
Change-Id: I258c0cb66746ca6853a4e228e10407671d7d55d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297697
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-06-19 14:47:53 +00:00
Brian Salomon
17473756e9 GrTextureGradientColorizer uses GrTextureEffect
Bug: skia:10139

Change-Id: I18bd5c078c785bf7faa3e2e20e93efca082951ea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297359
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-06-19 14:40:23 +00:00
Michael Ludwig
4e68ec693f Snap coordinates for shader nearest-neighbor decal filtering
Bug: skia:10403
Change-Id: I875b1a4bb7cacbe6721a69aa8ed02118b989729d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297596
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2020-06-19 14:25:13 +00:00
Robert Phillips
22d9d0b996 Revert "Fix flippity GM for *ooprddl configs"
This reverts commit ddca6ab54a.

Reason for revert: breaking abandoned context bot

Original change's description:
> Fix flippity GM for *ooprddl configs
> 
> The flippity GM doesn't create backend textures but it does perform some custom proxy creation (i.e., using MakeTextureProxyFromData to set the origin) that requires a direct context. This work must be done in onGpuSetup but doesn't entail any fancy lifetime management.
> 
> Change-Id: Ica4f4f7476778cdf934c3be9ef8c9a28d0d4ba2e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297445
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

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

Change-Id: Ie66a4187a5ff2efee21f60bb9c0d00e2aab3d1e8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297696
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-06-19 13:27:35 +00:00
John Stiles
5081942c0d Optimize CPP code generation.
Previously, we were limiting our calls to appendVAList to 512-byte
chunks to avoid a potential buffer overflow. This had two problems:
1 - it did not avoid the buffer overflow :(
    see chromium:1092743
2 - every call to appendVAList is expensive; it incurs a resize of the
    code buffer (alloc new, memcpy, free old)

This CL removes the 512-byte cap as the buffer overflow issue was
resolved at http://review.skia.org/297276

This CL also includes a few more minor improvements.
- `codeAppendf` now uses a raw string so the gencode is easier to read.
- Optimized `SkStringPrintf("%s", foo)` to `SkString(foo)`.
- Optimized `strA = strB` to `strA.swap(strB)` where safe to do so.

Change-Id: Ia0909a68719848dd2ca655066a9bc6929c8fd09f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297358
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-06-19 13:25:05 +00:00
Robert Phillips
ddca6ab54a Fix flippity GM for *ooprddl configs
The flippity GM doesn't create backend textures but it does perform some custom proxy creation (i.e., using MakeTextureProxyFromData to set the origin) that requires a direct context. This work must be done in onGpuSetup but doesn't entail any fancy lifetime management.

Change-Id: Ica4f4f7476778cdf934c3be9ef8c9a28d0d4ba2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297445
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-06-19 13:09:22 +00:00
John Stiles
75c9c5bd26 Add unit tests for untested SkString APIs.
Unit tests for SkString::appendVAList would have preemptively caught the
associated fuzzer failure.

Change-Id: I19a414e5e937f9e3fbe0f75e062b4befa6e2877b
Bug: chromium:1092743
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297473
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-06-19 13:08:52 +00:00
skia-autoroll
889563cbeb Roll ANGLE from fa3d64bf72d6 to c81f0b7b921f (6 revisions)
fa3d64bf72..c81f0b7b92

2020-06-18 cnorthrop@google.com Tests: Update trace timestamps
2020-06-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from bfa95c7ad8b7 to 23498d296498 (1 revision)
2020-06-18 syoussefi@chromium.org Disable ES3 perf tests on Nvidia/windows7/Vulkan
2020-06-18 syoussefi@chromium.org Fix restricted_traces/.gitignore
2020-06-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from a7112d544b2e to 99651228b238 (2 revisions)
2020-06-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 763957e6b4fc to 7a1d99d0be42 (4 revisions)

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/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: chromium:1096510
Tbr: djsollen@google.com
Test: Test: angle_perftests --gtest_filter="*Trace*"
Change-Id: If2cfc7beb35bc2401e3edf149ddcbbec9ecdfb2a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297616
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-06-19 04:45:02 +00:00
skia-autoroll
f667f4319f Roll SwiftShader from 7a1d99d0be42 to eb6824408d08 (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/7a1d99d0be42..eb6824408d08

2020-06-18 capn@google.com Assert reserved binding entries aren't accessed
2020-06-18 capn@google.com Optimize out-of-bounds checks with unsigned compare
2020-06-18 capn@google.com Replace instead of add pointer offsets when out of bounds

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 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/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: djsollen@google.com
Change-Id: I05f84e2f23bf0ab85fcddde5ef6072a8b803a805
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297532
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-06-19 04:44:52 +00:00
skia-autoroll
f4f1e8d409 Roll Chromium from 2adbb514e789 to 4a914f2106e0 (507 revisions)
2adbb514e7..4a914f2106

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 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/+doc/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
Tbr: djsollen@google.com
Change-Id: I4ca973d05ecdd4506a9d4ba57354e737fe39acd4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297535
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-06-19 04:39:02 +00:00
skia-autoroll
3d25c77940 Roll dawn from 3f4f35661151 to 581c407cd20b (3 revisions)
https://dawn.googlesource.com/dawn.git/+log/3f4f35661151..581c407cd20b

2020-06-18 cwallez@chromium.org Fix TypedInteger hash compilation failure with stdlibc++
2020-06-17 rharrison@chromium.org Add support for different default branches in roll-shader-deps
2020-06-17 enga@chromium.org Add TypedInteger

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC cwallez@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/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: cwallez@google.com
Change-Id: I0bd9be055408e217dd7ac6e4704dac4ac393feb6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297533
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-06-19 04:37:52 +00:00
Brian Salomon
d610c75156 Fix a unintended shader change in GrTextureEffect
nearest + repeat doesn't need to operate in unnorm coords.

Restores behavior previos to:
https://skia-review.googlesource.com/c/skia/+/297189y

Change-Id: Id78fb1a1526e0703ed17a3c46082209447cac2dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297464
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-06-18 23:13:13 +00:00
Greg Daniel
5ed3c11a80 Reland "Don't release vk memory allocator until context is deleted."
This reverts commit c35c073c80.

Reason for revert: fix benches

Original change's description:
> Revert "Don't release vk memory allocator until context is deleted."
> 
> This reverts commit 11afa63693.
> 
> Reason for revert: breaking perf bots
> 
> Original change's description:
> > Don't release vk memory allocator until context is deleted.
> > 
> > Bug: chromium:1081806
> > 
> > Change-Id: I0a7a92408a3f2119e6b70d8eef6aa4f2d1982d4b
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297357
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> 
> TBR=egdaniel@google.com,bsalomon@google.com
> 
> Change-Id: I48d200cb72eb30c119359e89c5a9123213e62a5e
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1081806
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297457
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

TBR=egdaniel@google.com,bsalomon@google.com

# Not skipping CQ checks because this is a reland.

Bug: chromium:1081806
Change-Id: I6d80af6a1fab2fd6e2e15e9a2c7deefd7a7866ed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297475
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-06-18 22:04:23 +00:00
Brian Osman
304dfa379c Remove swizzling-store instructions from SkSL ByteCode
Another peephole where we're happy to trade a bit of interpreter
performance for less code size and easier translation to SkVM now.

Change-Id: I0de7962194fa4dbbc5d77f68831f1374333de9c4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297536
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-06-18 20:56:32 +00:00
Florin Malita
a83f2d2fa9 [skottie] Add support for unprefixed valign/resizing props
Bodymovin now exports unprefixed vertical alignment and resizing props
("vj", "rs" - corresponding to Skottie's "sk_vj", "sk_rs").  Update to
handle both flavors for now (old props to be phased out).

TBR=
Change-Id: Ib34922c9bf54b6bd46c2ce4aab176c4b9570768e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297281
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
Auto-Submit: Florin Malita <fmalita@chromium.org>
2020-06-18 20:22:53 +00:00
Brian Salomon
92b9ccf53e Use child texture effects in ProcessorRefTest
Also remove unused buffers. FPs no longer support reading from buffers.

Bug: skia:10139

Change-Id: Id1e2d7ef2cfa7f11a95cb0ce448c69af755c2b65
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297176
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-06-18 20:18:33 +00:00
John Stiles
3890d3d765 Roll gn.
Change-Id: I44eab9976aa4820a74f9246f1244c1a293e1fff6
Bug: gn:175, gn:158
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297463
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-06-18 19:33:04 +00:00
Florin Malita
c217f61764 [skrive] Start parsing the node hierarchy
TBR=
Change-Id: I601ad831e69fd26ac8a0fe1f90ce2e9588a7f912
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297056
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2020-06-18 19:29:42 +00:00
Brian Osman
3711c6603e Remove swizzling-load instructions from SkSL ByteCode
These were peephole optimizations that help the interpreter a bit, but
I'd like to favor code size and ease of translation to SkVM now.
We can now run: sample(child, p.yx) on the CPU backend, for example.

Change-Id: I90f2f649d95d5c4c50e470988590491e3b56ba34
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297465
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-06-18 19:26:02 +00:00
Brian Osman
f847f3106c In SkSLSlide, directly use Viewer's shader error handler
With the CPU backend, there is no GrContext on the canvas, so we were
sending errors to the default handler (SkDebugf + assert), so editing
shaders was impossible. Now they fail gracefully (and produce a popup
window with the message).

Change-Id: I29bad24f201be59ba1cec45f446a433c01cf86dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297461
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-06-18 19:24:02 +00:00
Mike Klein
92887b5474 allow fallback to skvm blitter
This will let the threshold_rt GM draw even if --skvm isn't forced.
I don't see any GM diffs beyond that.

PS3 expands the same basic idea just a little wider.

Change-Id: I714c0fd2d4e6814c307a189a9f004e8ed729819a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297419
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-06-18 18:48:38 +00:00
Mike Klein
c950e05baf clean up old idea about nullptr/sRGB
I don't see us ever really saying dstCS == nullptr --> dstCS = sRGB.
It's too handy a feature to have a legacy dst.

Change-Id: I20576962eeb5a2ce7d0da09ffe1bbba860dad086
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297418
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-06-18 17:51:58 +00:00
Adlai Holler
6f1487fe80 Consolidate GrDrawingManager <-> GrRenderTask lifecycle
This creates a funnel in the drawing manager (removeRenderTasks) that
opens the door for tighter integration between the two classes. Also we
add some assertions about the relationship and cut out duplicated code.

Bug: skia:10372
Change-Id: I0781ba7d45ac090cf7f6d430f0d56afe0f98b7e0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297195
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
2020-06-18 17:42:43 +00:00
Greg Daniel
c35c073c80 Revert "Don't release vk memory allocator until context is deleted."
This reverts commit 11afa63693.

Reason for revert: breaking perf bots

Original change's description:
> Don't release vk memory allocator until context is deleted.
> 
> Bug: chromium:1081806
> 
> Change-Id: I0a7a92408a3f2119e6b70d8eef6aa4f2d1982d4b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297357
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

TBR=egdaniel@google.com,bsalomon@google.com

Change-Id: I48d200cb72eb30c119359e89c5a9123213e62a5e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1081806
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297457
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-06-18 17:38:31 +00:00
Mike Klein
f8d68fe7d4 runtime shader children on skvm backend
Mostly plumbing and misc instructions to draw threshold_rt.

Backends differ in what we return when sampling alpha-only
images, so I've switched threshold_rt to use the .a channel,
which everyone agrees on.

I'm pretty confused about what CTM and local matrix to pass
to the child program() calls, so I've just passed no-ops.

Change-Id: I004b428b4e5e27f3963a27dea0ef44e1f57bc3e0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297384
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-06-18 17:37:38 +00:00