8782 Commits

Author SHA1 Message Date
Ben Clayton
131cbcc6af [tools]: Add intrinsic-gen tool
Parses the intrinsics.def file, then scans the source tree for .tmpl files.
Using both of these, it produces source files for use in tint.

Bug: tint:832
Change-Id: I718114f4c540b9d620899e89d5758f048377ee04
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52642
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-06-01 09:38:30 +00:00
Ben Clayton
126adb1bbb [tools]: Minor intrinsic-gen changes
Have the resolver emit unique parameter names

Aslo: Update the parser tests to include ':' between parameter name and type.
This functionality landed a few changes up, but I missed this test from the change.

Bug: tint:832
Change-Id: If0d6d3a33bbcd8be4d70ee7182754158ed0da819
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52641
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-06-01 09:07:10 +00:00
Dawn Autoroller
f3db4dbca0 Roll Tint from 52c37f354f2d to 39c05a902fda (3 revisions)
https://dawn.googlesource.com/tint.git/+log/52c37f354f2d..39c05a902fda

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

Bug: None
Tbr: enga@google.com
Change-Id: If852332f1b56a840a5aa0b64603c59294902a43b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52762
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-06-01 03:00:02 +00:00
Antonio Maiorano
39c05a902f Resolver: validate vector swizzle index is valid
Bug: tint:217
Change-Id: Ie8988b68f43914d1b05d982c8aa6f8b7346e2d8f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52800
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-06-01 00:37:40 +00:00
David Neto
f534e9e692 spirv-writer: fix bool equality, inequality
Fixed: tint:743
Change-Id: I03b5d50d2bf3cd17b672401f1922bde35cbf2640
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52740
Auto-Submit: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-05-31 22:43:00 +00:00
Dawn Autoroller
92ed012925 Roll Tint from 34c58a932c2f to 52c37f354f2d (5 revisions)
https://dawn.googlesource.com/tint.git/+log/34c58a932c2f..52c37f354f2d

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

Bug: None
Tbr: enga@google.com
Change-Id: Ibee0708afd09c3e533f3e1499cb902206f90be98
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52761
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-31 20:59:42 +00:00
Antonio Maiorano
4e6744f954 Fix Kokoro (linter failure)
Change-Id: I01e8957496cea7e406f6381517cc04aa4f05d8fb
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52801
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-31 20:23:50 +00:00
Ben Clayton
52c37f354f Add tools/src/list: A dynamic typed list
Will be used by the lookup table package, which is used by the intrinsic definition generator.

Bug: tint:832
Change-Id: I72c2dc5e37678dbaffc1a32e1631caa8ba6c690e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52600
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-31 19:49:50 +00:00
Ben Clayton
16e86d3225 Add cmd/intrinsic-gen resolver and sem
Part of the new intrinsic definition parser.

Bug: tint:832
Change-Id: I701072def1a4ca723d10d08b44c1e271b9458212
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52540
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-05-31 19:45:20 +00:00
Ben Clayton
646f4a9958 ast::AccessControl: Remove 'Only' suffix from enums
As requested in:
https://dawn-review.googlesource.com/c/tint/+/52503/1..3/src/intrinsics.def#38

Bug: tint:832
Change-Id: I88881d0654305cdbc6c05256e227a3b048fbff29
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52640
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-31 19:40:30 +00:00
Ben Clayton
3264765bc2 [tools] Move getProjectRoot() out to fileutils.
Add tests.
This is going to be used by intrinsic-gen, a new tool

Bug: tint:832
Change-Id: Ib22ffa88a699be9c8dfdf3f8f6e32cff4ffc88e3
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52602
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-31 19:40:00 +00:00
Dawn Autoroller
e10ef09e2b Roll Tint from 8dd465a6f468 to 34c58a932c2f (1 revision)
https://dawn.googlesource.com/tint.git/+log/8dd465a6f468..34c58a932c2f

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

Bug: None
Tbr: enga@google.com
Change-Id: Ie94acfdd73abf1208f23e9626bac48f7e22df1c6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52760
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-31 16:02:01 +00:00
Antonio Maiorano
c91f8f2822 Implement addition and subtraction of float matrices
Bug: tint:316
Change-Id: I3a1082c41c47daacf0220d029cb2a5f118684959
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52580
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: David Neto <dneto@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-31 15:53:20 +00:00
David Neto
34c58a932c spirv-writer: refactor getting GLSLstd450 import
Change the GenerateGLSLStd450 method to GetGLSLStd450 and have it
return the import id.  That's the only interesting use.

Change-Id: I4fc70e702af160bc797680e5e75e9742e9e24f16
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52421
Commit-Queue: David Neto <dneto@google.com>
Auto-Submit: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-05-31 15:01:20 +00:00
Dawn Autoroller
4ca697c48b Roll Tint from d78f55390d82 to 8dd465a6f468 (3 revisions)
https://dawn.googlesource.com/tint.git/+log/d78f55390d82..8dd465a6f468

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

Bug: None
Tbr: bclayton@google.com
Change-Id: I0118b08820633434887722063e3266c950b09c00
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52700
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-31 10:51:41 +00:00
Ben Clayton
8dd465a6f4 match/match_test.go: Fix import
This test was not building, as relative imports are not allowed when using modules

Change-Id: I661870c0d676029a782fe2a05acb98d4544fbb95
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52502
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-31 09:48:48 +00:00
Ben Clayton
6cf2fd42c5 Add cmd/intrinsic-gen parser and ast
Ground work for the new intrinsic definition parser.

Bug: tint:832
Change-Id: I0aff7f8cf5db4b6aa3a56939b944a37abc360cc7
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52501
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-31 09:48:48 +00:00
Ben Clayton
c95e05784d Add cmd/intrinsic-gen lexer and tokens
Ground work for the new intrinsic definition parser.

Bug: tint:832
Change-Id: I341ae11e36ef7af96ce7d01609a96e2c02425e87
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52500
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-31 09:48:48 +00:00
陈俊嘉
16201e64c4 Disable OpenGLES in uwp compilation.
Bug: dawn:766
Change-Id: I0e6910edbb1ee794487ed7132484e445779f6cf7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52660
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: 陈俊嘉 <cjj19970505@live.cn>
2021-05-31 08:46:21 +00:00
Dawn Autoroller
2e660b38ec Roll Tint from eaed2b6ce22c to d78f55390d82 (1 revision)
https://dawn.googlesource.com/tint.git/+log/eaed2b6ce22c..d78f55390d82

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

Bug: None
Tbr: bclayton@google.com
Change-Id: Ibdb1b4487b741201e7bb8ab5e67565a83d5995ef
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52620
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-29 20:10:00 +00:00
Ben Clayton
d78f55390d Add src/intrinsics.def
The definition file for the WGSL intrinsics.
Will be parsed by a new `intrinsic-gen` parser to generate the IntriniscTable and tests.

Bug: tint:832
Change-Id: I3c523b6d86faa59150e2b6fb302d27c06f0e3cbe
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52503
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-05-29 18:19:38 +00:00
Dawn Autoroller
5b71d9dbd1 Roll Tint from 0131ce2205c3 to eaed2b6ce22c (2 revisions)
https://dawn.googlesource.com/tint.git/+log/0131ce2205c3..eaed2b6ce22c

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

Bug: None
Tbr: bclayton@google.com
Change-Id: I31d32f24bdff3a86c13e7bf547b8b2aee98c5d09
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52561
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-28 02:40:44 +00:00
Antonio Maiorano
eaed2b6ce2 Add support for binary arithmetic expressions with mixed scalar and vector operands
Bug: tint:376
Change-Id: I2994ff7394efa903050b470a850b41628d5b775c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52324
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-27 21:07:56 +00:00
David Neto
d5f4ea22f0 wsgl-writer: emit inf, nan, subnormal as hex float
Signed zeros are emitted.
Subormal numbers are emitted as hex float.

Handling Inf and NaN is unresolved in the spec.
See https://github.com/gpuweb/gpuweb/issues/1769

NaN tests are disabled, due to platform dependence.
Windows x86-64 seems to always set the high mantissa bit
on NaNs.

Fixed: tint:76
Change-Id: I06c69b93b04c869a63ec2f574022996acc7a6dbe
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52321
Commit-Queue: David Neto <dneto@google.com>
Auto-Submit: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-27 20:46:46 +00:00
Dawn Autoroller
a1d52d155e Roll Tint from 5102f87e38e0 to 0131ce2205c3 (5 revisions)
https://dawn.googlesource.com/tint.git/+log/5102f87e38e0..0131ce2205c3

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

Bug: None
Tbr: bclayton@google.com
Change-Id: I201e977ad0a36cb95249df9d548e34370f38d495
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52520
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-27 20:43:13 +00:00
Antonio Maiorano
0131ce2205 Resolver: merge binary expression validation and resolving logic together
This avoid duplicating the logic in two places, and makes it easier to
implement according to the spec.

Bug: tint:376
Change-Id: If62f508e2c76b5b661e66aae9ff20b8e874a65d8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52323
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-05-27 18:25:06 +00:00
Ben Clayton
25b7d4064f reader/spirv: Handle parser error
MaybeEmitCombinatorialValue() didn't check that MakeOperand() or RectifySecondOperandSignedness() didn't error, leading to ICEs.

Bug: crbug.com/tint/804
Change-Id: Ic78487a70a591e718c7b5936c6678e7a19c4b626
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51927
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-27 17:05:47 +00:00
James Price
564000fdd3 Remove deprecated functionality
The following deprecated features are no longer supported:
- frag_coord builtin
- sample_mask_in and sample_mask_out builtins
- void keyword
- const keyword

Fixed: tint:677
Fixed: tint:699
Fixed: tint:714
Fixed: tint:715
Change-Id: I40ce9711310e70e62465f58f2a7f4d959039e307
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52041
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-27 17:03:27 +00:00
James Price
cbd3bbc6d7 Disable MSL tests that fail to validate
Change-Id: Iaf31627798a83625a075e529aa3886cf84b164b1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52040
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-27 16:48:57 +00:00
Antonio Maiorano
4e848d76d0 Simplify Expr_Binary_Test_Invalid
Previous logic relied on the fact that for most operations, for a given
lhs type, there was exactly one rhs type allowed, except for
multiplication. This is no longer true in the spec, so making this test
work is more complex now. Instead, we simplify the test by having it
take the cartesian product of all possible (type * type * op), and
skipping any triplet not found in the all_valid_cases table.

Bug: tint:376
Change-Id: Icc76158823630e34dc8f25dfb0a0827545693108
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52322
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-05-27 15:57:57 +00:00
Dawn Autoroller
7f7f813041 Roll Tint from 42d89ca199b0 to 5102f87e38e0 (1 revision)
https://dawn.googlesource.com/tint.git/+log/42d89ca199b0..5102f87e38e0

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

Bug: None
Tbr: bclayton@google.com
Change-Id: Ic7e307a52bcae21b5d4f26cdadf2b600b91a6e11
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52480
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-27 15:13:43 +00:00
James Price
5102f87e38 writer/msl: Add parentheses for member accesses
The LHS should be wrapped in parentheses if it has lower precedence
than the access. This fixes issues with pointer dereferences followed
by member accesses, where we were previously generating *a.b.

Fixed: tint:831
Change-Id: I8a194ad4f54c80a01c24eb983ec8064037575216
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51963
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-27 14:15:47 +00:00
Dawn Autoroller
fa39297d0d Roll Tint from 7a47fa849580 to 42d89ca199b0 (1 revision)
https://dawn.googlesource.com/tint.git/+log/7a47fa849580..42d89ca199b0

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

Bug: None
Tbr: bclayton@google.com
Change-Id: I48027756edd93a763bb8b55acc27a854237b4a73
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52440
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-27 06:25:03 +00:00
David Neto
42d89ca199 spirv-writer: support isFinite
Fixed: tint:157
Change-Id: I7b9af49edd44cbd8feb85fe637b82ac76a225e50
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52420
Commit-Queue: David Neto <dneto@google.com>
Auto-Submit: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-05-27 04:17:06 +00:00
Jiawei Shao
5d39860fef Implement AsyncWaitableEvent with std::condition_variable
This patch implements the default implementation of WaitableEvent
(AsyncWaitableEvent) with std::condition_variable instead of
std::future as std::future will always block its destructor until
the async function returns, which makes us unable to clean up all
the execution environment of the async task inside the async
function.

This patch also implements WorkerThreadTaskManager to manage all
the async tasks (inherited from WorkerThreadTask) in the future,
for example all the Create*PipelineAsync() tasks.

This patch also updates the related dawn_unittest WorkerThreadTest.
Basic.

BUG=dawn:529
TEST=dawn_unittests

Change-Id: Ie789ba788789e91128ffc416e7e768923828a367
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51740
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-05-27 00:49:03 +00:00
Dawn Autoroller
462a3ba917 Roll Tint from 61fbf13d2571 to 7a47fa849580 (2 revisions)
https://dawn.googlesource.com/tint.git/+log/61fbf13d2571..7a47fa849580

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

Bug: None
Tbr: bclayton@google.com
Change-Id: Icf35bcaba2a02c22c924ed76aa97d28193b229be
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52380
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-26 18:38:52 +00:00
James Price
7a47fa8495 writer/msl: Handle private and workgroup variables
Add a transform that pushes these into the entry point and then passes
them by pointer to any functions that need them.

Since WGSL does not allow non-function storage class at
function-scope, add a DisableValidation attribute to bypass this
check.

Fixed: tint/726
Change-Id: Ic1f4cd691a54c19e77a60e8ba178508e4249bfd9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51962
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-26 15:41:02 +00:00
James Price
61e573663d CloneContext: Add InsertBack()
Inserts a new node at the end of a (potentially empty) list.

Change-Id: Ibd487b995aee4a3ae2c3d17b5eb6e8562c43a1c4
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52320
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-26 15:12:12 +00:00
Dawn Autoroller
dca93fe837 Roll Tint from 81cbe07c12db to 61fbf13d2571 (1 revision)
https://dawn.googlesource.com/tint.git/+log/81cbe07c12db..61fbf13d2571

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

Bug: None
Tbr: bclayton@google.com
Change-Id: I5c89d22b0c0194ba6b837fde7b479435c0944744
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52360
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-26 12:31:42 +00:00
Ben Clayton
61fbf13d25 CloneContext: Add InsertFront()
Inserts a new node at the start of a (potentially empty) list.

Change-Id: Ie2896fa3e1beabeb89f64e69a84091986ffbf7a2
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51369
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-05-26 11:31:32 +00:00
Jiawei Shao
44fc6e3ab5 Remove DAWN_SKIP_TEST_IF -- Part II
This is the last patch to replace DAWN_SKIP_TEST_IF with
DAWN_SUPPRESS_TEST_IF or DAWN_TEST_UNSUPPORTED_IF. With this patch
DAWN_SKIP_TEST_IF will be completely removed from Dawn.

BUG=dawn:779

Change-Id: I5aec03697877ff9c6fa175f8d16eba951dd94cfa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51806
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-05-26 01:04:32 +00:00
Dawn Autoroller
84f6730101 Roll Tint from 4fe6cb98e219 to 81cbe07c12db (1 revision)
https://dawn.googlesource.com/tint.git/+log/4fe6cb98e219..81cbe07c12db

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

Bug: None
Tbr: bclayton@google.com
Change-Id: I21dd62c568b05bbf5a926bdf257cc99698176540
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52300
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-25 21:29:02 +00:00
Ben Clayton
81cbe07c12 Fix doxygen warnings
Change-Id: I7c3b685a5313f30e5d6cf20bc958e9876856a56d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51926
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-25 20:20:22 +00:00
James Price
e2f39f8361 Remove use of deprecated const in WGSL
Bug: tint:699
Change-Id: Ic5ce39b5c144e25b3b40a991187566557e68754e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52240
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-05-25 17:09:41 +00:00
Qin Jiajia
10a7f78815 Remove the suppression on use_tint_generator
Bug: dawn:594, tint:744
Change-Id: I371d6f826f7d11951926c32cdb6a0b4af4650f54
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51902
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-05-25 05:19:18 +00:00
Ryan Harrison
e1598e4891 Migrate Linux CQ from Xenial to Bionic
BUG=chromium:1212166

Change-Id: I66693b14bf455462267df8bdc81814ca11a43561
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52100
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-05-24 17:34:07 +00:00
Dawn Autoroller
2469525066 Roll Tint from bcefe46f449e to 4fe6cb98e219 (1 revision)
https://dawn.googlesource.com/tint.git/+log/bcefe46f449e..4fe6cb98e219

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
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

Bug: None
Tbr: cwallez@google.com
Change-Id: I44e7a6e70e5405b586a93d28fe8a2a9b8c75390a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52120
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-24 09:49:02 +00:00
Ryan Harrison
4fe6cb98e2 Migrate Linux CQ from Xenial to Bionic
BUG=chromium:1212166

Change-Id: I605fd926e0235da4f8e5b60bd471971dc1bded32
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52021
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-24 08:32:55 +00:00
Dawn Autoroller
df7ddab825 Roll Tint from e5fdd58352b2 to bcefe46f449e (2 revisions)
https://dawn.googlesource.com/tint.git/+log/e5fdd58352b2..bcefe46f449e

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
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

Bug: None
Tbr: cwallez@google.com
Change-Id: Id643d63dd6ccca17d95d49772ae955194e82137e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52080
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-22 19:22:59 +00:00
Dawn Autoroller
86686c82d5 Roll Tint from ed86bf99b055 to e5fdd58352b2 (1 revision)
https://dawn.googlesource.com/tint.git/+log/ed86bf99b055..e5fdd58352b2

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
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

Bug: None
Tbr: cwallez@google.com
Change-Id: If89c0cb052c9a0cfe636d77bdad9f92818319dc7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52060
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-22 14:05:29 +00:00