Commit Graph

3038 Commits

Author SHA1 Message Date
Corentin Wallez 6c3da3dc5b Make SetViewport validation match upstream WebGPU.
As a side-effect this allows empty viewports which need special handling
in Vulkan because it is not allowed to set width to 0 (but ok to set
height to 0).

Validation tests are updated to cover the new validation checks.

Most of the viewport end2end tests are rewritten because they didn't
pass the new validation.

A new end2end test is added to test various kinds of empty viewports to
cover the extra logic in the Vulkan backend.

Bug: dawn:542
Change-Id: I8bb25612eeed04162a6b942983167eacab3a1906
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29681
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-10-11 18:39:32 +00:00
Enrico Galli 1c25198384 Adding multiple of 4 validation on indirect draws and dispatches
Bug: dawn:538
Change-Id: I6f4d8fb73a9fff910bdcd105f66299dc6afb61cd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29761
Commit-Queue: Enrico Galli <enrico.galli@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-10-10 00:06:30 +00:00
Stephen White 793a07e366 Fix MSVC build of SerialStorage.h.
Use "protected" rather than "private" for the using declarations.

Bug: dawn:544
Change-Id: I1166016fd11d9e2b512f08194f4f4c3f628d0c27
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29845
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2020-10-08 22:14:39 +00:00
dawn-autoroll 4876496f99 Roll Tint from 6d6aed5460 to 4311dd05c8 (1 revision)
https://dawn.googlesource.com/tint.git/+log/6d6aed546061..4311dd05c883

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 kainino@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: kainino@google.com
Change-Id: I3fa7cb75ffe668b979f85ff66a4364199dab99b6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29907
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-08 22:11:39 +00:00
dawn-autoroll 21ac127b88 Roll Tint from f600d3aa9f to 6d6aed5460 (1 revision)
https://dawn.googlesource.com/tint.git/+log/f600d3aa9f26..6d6aed546061

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 kainino@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: kainino@google.com
Change-Id: I5d1e7a23d321b54f4c099004e6019d495a511697
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29906
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-08 21:31:19 +00:00
dawn-autoroll 19899becb7 Roll Tint from c169506c9e to f600d3aa9f (1 revision)
https://dawn.googlesource.com/tint.git/+log/c169506c9e6e..f600d3aa9f26

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 kainino@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: kainino@google.com
Change-Id: Iae8184b4ab0c0f7430d5f59d6733644ddf4602f9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29905
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-08 20:31:39 +00:00
dawn-autoroll 1ef4e199bd Roll Tint from eb5d3e147d to c169506c9e (2 revisions)
https://dawn.googlesource.com/tint.git/+log/eb5d3e147d39..c169506c9e6e

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 kainino@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: kainino@google.com
Change-Id: I0b68a989a1152d977a175ed7f319ffe883285020
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29904
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-08 20:20:19 +00:00
dawn-autoroll 51a319e99f Roll Tint from 71d69e5ed3 to eb5d3e147d (1 revision)
https://dawn.googlesource.com/tint.git/+log/71d69e5ed3f4..eb5d3e147d39

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 kainino@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: kainino@google.com
Change-Id: I61419996605ea0929dd5f157c441bb209cb2b127
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29843
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-08 19:52:09 +00:00
dawn-autoroll d01a7c9df5 Roll Tint from 5118c07261 to 71d69e5ed3 (1 revision)
https://dawn.googlesource.com/tint.git/+log/5118c0726106..71d69e5ed3f4

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 kainino@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: kainino@google.com
Change-Id: I0ebbf106754fc636417bed3195e4d792296cf6d7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29903
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-08 19:28:39 +00:00
dawn-autoroll b30b9376d8 Roll Tint from 1a63c49b4e to 5118c07261 (1 revision)
https://dawn.googlesource.com/tint.git/+log/1a63c49b4e86..5118c0726106

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 kainino@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: kainino@google.com
Change-Id: I702b23a4de07342ecebb38d64e9b3c93462e57ed
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29902
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-08 19:18:59 +00:00
dawn-autoroll 9192e46059 Roll Tint from 007dc42cbb to 1a63c49b4e (1 revision)
https://dawn.googlesource.com/tint.git/+log/007dc42cbb43..1a63c49b4e86

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 kainino@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: kainino@google.com
Change-Id: I28e775e312abcf11880f3241fb6f088ddeeb4649
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29901
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-08 19:08:59 +00:00
dawn-autoroll fc5327dcad Roll Tint from fc5c5ab60b to 007dc42cbb (1 revision)
https://dawn.googlesource.com/tint.git/+log/fc5c5ab60b22..007dc42cbb43

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 kainino@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: kainino@google.com
Change-Id: Idc07b453c2bfcffcba42014919f5443a9009ad8a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29920
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-08 18:35:49 +00:00
dawn-autoroll 9a8aa0b29e Roll Tint from 66377ce9be to fc5c5ab60b (1 revision)
https://dawn.googlesource.com/tint.git/+log/66377ce9be54..fc5c5ab60b22

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 kainino@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: kainino@google.com
Change-Id: Idb1362c2197c21f6fcd43ceda5d550d76463e038
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29900
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-08 16:40:38 +00:00
dawn-autoroll 33a0deb815 Roll Tint from 28ae1471bf to 66377ce9be (1 revision)
https://dawn.googlesource.com/tint.git/+log/28ae1471bf2c..66377ce9be54

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 kainino@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: kainino@google.com
Change-Id: I1b9202d2f7d24da4655a36c1304267c12d044ea4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29880
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-08 14:42:58 +00:00
Kai Ninomiya 6b4a4a85df Fix EntryPointTests WGSL shaders for Tint roll
Should fix Chromium FYI and Dawn CQ.

Followup to https://dawn-review.googlesource.com/c/dawn/+/29521

Change-Id: I62ba98ff234d3aceb6cc429d1e23c28f3a1adcbf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29760
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-10-07 21:54:56 +00:00
Corentin Wallez 4171134daf Buffer: Validate the offset is aligned to 8
This is to match the upstream WebGPU spec.

Bug: dawn:445

Change-Id: I1a511ed9a2a04c7b95368ce724d69c128158f097
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29360
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-10-07 17:19:53 +00:00
Corentin Wallez bf7fc62175 Roll our copy of the Vulkan headers.
Bug: None
Change-Id: I6d24e9ef21b8c00c5e50d65fdd0c454ae16a42ba
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29601
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-10-07 16:47:23 +00:00
dawn-autoroll 2ac719ffed Roll Tint from a388d56d99 to 28ae1471bf (1 revision)
https://dawn.googlesource.com/tint.git/+log/a388d56d9968..28ae1471bf2c

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 kainino@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: kainino@google.com
Change-Id: Ib76a95be813c70e7b9c3d0e9c6d0eef69d30a31c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29700
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-07 16:04:03 +00:00
dan sinclair b581d26e51 Re-enable disabled test.
The upstream Tint issues have been fixed and Tint has rolled. This CL
re-enables the disabled test.

Bug: tint:263
Change-Id: Id8a73e198c15c74c55dc9b26603f4a3850d995b3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29680
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-10-07 15:45:23 +00:00
Corentin Wallez c1cce0c57d Buffer: Disallow unmapping when unmapped.
This is to match the upstream WebGPU spec.

Bug: dawn:445

Change-Id: I4246487247fdba8d90a119c1970d6d4df3235835
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29361
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-10-07 15:14:03 +00:00
Corentin Wallez 3066cd3387 dawn_wire: Guarantee OOM on MAX_SIZE_T sized buffers.
This can be used to simplify some logic in Blink.

Bug: dawn:445

Change-Id: I9859c51bc95f564847035533426675188eb8ef99
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29362
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-10-07 15:03:33 +00:00
dawn-autoroll 012ca84940 Roll Tint from c9110b93cb to a388d56d99 (1 revision)
https://dawn.googlesource.com/tint.git/+log/c9110b93cb8a..a388d56d9968

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 kainino@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: kainino@google.com
Change-Id: Iff9a5d13e23d7bedd0ff5fcda7cd27b022227951
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29640
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-07 14:51:53 +00:00
dawn-autoroll 2ee6878306 Roll Tint from 488d7a9346 to c9110b93cb (1 revision)
https://dawn.googlesource.com/tint.git/+log/488d7a9346ff..c9110b93cb8a

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 kainino@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: kainino@google.com
Change-Id: I8f35fc703992b39ae664a9b61193bddd6b827a8c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29620
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-07 13:49:43 +00:00
dawn-autoroll 7e22b1c44f Roll Tint from 90ee6c4360 to 488d7a9346 (2 revisions)
https://dawn.googlesource.com/tint.git/+log/90ee6c436017..488d7a9346ff

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 kainino@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: kainino@google.com
Change-Id: Ie61bd6305aee30310da40481dc1a52d303fd24c5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29561
Reviewed-by: <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
2020-10-06 23:41:12 +00:00
dawn-autoroll 6620efb9a8 Roll Tint from d3f75ca0e8 to 90ee6c4360 (56 revisions)
** With manual buildfixes. **

https://dawn.googlesource.com/tint.git/+log/d3f75ca0e8be..90ee6c436017

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 kainino@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, tint:263
No-Try: True
Change-Id: I374db968c616c8a12721cdb9c73a46a3495748c8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29521
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
2020-10-06 20:10:52 +00:00
Austin Eng 16e01affcb Reland "Add a per-thread proc table using thread local storage"
This is a reland of b04a92f01b
with the deletion of a duplicate exported function in dawn_wire that
was causing a compilation failure on Windows.

Original change's description:
> Add a per-thread proc table using thread local storage
>
> In situations where both dawn_wire and dawn_native are used on separate
> threads (Chrome with --single-process or --in-process-gpu), it's
> desirable to have a per-thread proc table so that the WebGPU C++ API can
> still be used. This eliminates classes of bugs with manual
> reference/release errors.
>
> This also changes many of the GetProcs functions to return const
> references to the static proc tables known at compile time, instead of a
> copy.
>
> Bug: none
> Change-Id: I8775bb715b312dd9476a1903fbd797d4b1302614
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29240
> Reviewed-by: Stephen White <senorblanco@chromium.org>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>

Bug: none
Change-Id: Id90e5372132cd93a2f8631c8185d0e71b01bc1af
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29443
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2020-10-06 16:13:42 +00:00
Andrii Shyshkalov e85652b61d infra: Remove no longer used refs.cfg.
R=cwallez@chromium.org, vadimsh@chromium.org

No-Try: true
Change-Id: I43d418c8c52af82f62c7074800160353458dbb7d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29422
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-10-06 11:53:29 +00:00
Vadim Shtayura 8ba1ef33da infra: Stop statically enforcing Xcode version.
The OSX machines in "luci.flex.try" pool that run Dawn tryjobs
have been upgraded from OSX 10.14 to OSX 10.15. Per [1],
the preferred Xcode version on OSX 10.15 is '12a7209' and most
tryjobs (from other projects) install that version. But when
a Dawn tryjob runs, it rolls Xcode back to '11b52'. Reinstalling Xcode
back and forth like that takes time (~20 min), it caused some tryjobs
in the "infra" project to timeout.

Unhardcode Xcode version in Dawn configs. It should allow the recipe
to pick the "best" version ('12a7209' in this case).

[1]: https://source.chromium.org/chromium/chromium/tools/depot_tools/+/master:recipes/recipe_modules/osx_sdk/api.py;l=21?q=11b52&ss=chromium

R=cwallez@chromium.org, tandrii@chromium.org

Change-Id: I8499a763679b9e9270854bf66c2a21f1e6354594
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29440
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-10-06 09:16:19 +00:00
Enrico Galli db2c2dd9b9 Add support for depthBias, depthBiasSlope, and depthBiasClamp
Bug: dawn:524
Change-Id: I2586aadbc326f58889314a2d10794bcc0572aaba
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28300
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-10-06 08:12:29 +00:00
Kai Ninomiya 326e14f34b Revert "Add a per-thread proc table using thread local storage"
This reverts commit b04a92f01b.

Reason for revert: Build failed on win-archive-dbg; see:
https://chromium-review.googlesource.com/c/chromium/src/+/2450792

Original change's description:
> Add a per-thread proc table using thread local storage
>
> In situations where both dawn_wire and dawn_native are used on separate
> threads (Chrome with --single-process or --in-process-gpu), it's
> desirable to have a per-thread proc table so that the WebGPU C++ API can
> still be used. This eliminates classes of bugs with manual
> reference/release errors.
>
> This also changes many of the GetProcs functions to return const
> references to the static proc tables known at compile time, instead of a
> copy.
>
> Bug: none
> Change-Id: I8775bb715b312dd9476a1903fbd797d4b1302614
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29240
> Reviewed-by: Stephen White <senorblanco@chromium.org>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>

TBR=cwallez@chromium.org,senorblanco@chromium.org,enga@chromium.org

Change-Id: I4587b457b7b2dd5d3c7457065bf4e77b95af59d7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: none
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29442
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
2020-10-05 22:35:40 +00:00
Austin Eng b04a92f01b Add a per-thread proc table using thread local storage
In situations where both dawn_wire and dawn_native are used on separate
threads (Chrome with --single-process or --in-process-gpu), it's
desirable to have a per-thread proc table so that the WebGPU C++ API can
still be used. This eliminates classes of bugs with manual
reference/release errors.

This also changes many of the GetProcs functions to return const
references to the static proc tables known at compile time, instead of a
copy.

Bug: none
Change-Id: I8775bb715b312dd9476a1903fbd797d4b1302614
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29240
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-10-05 19:53:58 +00:00
Corentin Wallez df90930683 wire::client: Make Buffer::MapAsync surface server-side errors.
In the WebGPU specification, validation errors for mapAsync take
precedence over the early-unmap or early-destroy promise resolution.

Change the client to wait for the mapAsync status from the server before
sending the cancelation through the callback. If the server sends back
an error, then it takes precedence over the client-side status.

Also adds tests for the updated semantic.

Bug: dawn:445

Change-Id: I7bf1d8bbb3cb62d73ab19ecdf0aad2963e854964
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29300
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2020-10-05 11:03:21 +00:00
Stephen White ed3a93f690 Fix rectangular mipmap textures used as color attachments.
ValidateOrSetAttachmentSize() was asserting that
textureSize.width >> attachment->GetBaseMipLevel() is nonzero.
This is not true for rectangular textures, where the smaller dimension
may hit the lower bound and must be be clamped at 1.

Fixed by calling GetMipLevelVirtualSize() which performs the clamp.

Added a test which exercises rectangular mipmapped textures as color
attachments. This required a few fixes to the test harness, which had
the same bug as that fixed in the code (assumes (width >> size) > 0).

Bug: dawn:535
Change-Id: Idde3b68feb14d8a241803d09a094b059d9935d91
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29261
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2020-10-02 16:15:40 +00:00
Brandon Jones 16ebcf601d Limit Clear Color Values to 2^24 For Integer Formats
Adds validation to ensure clear colors do not exceed 2^24 and a
corresponding unit test. Also removes intermediate float conversions
that are no longer necessary.

Bug: dawn:525
Change-Id: I020b98de85384c20da51158de79eab87f60dcf6d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29040
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-10-01 19:56:49 +00:00
Ryan Harrison da5828c06b Add Tint SPIRV->SPIRV to fuzzing code path
Since we are intending to ship using Tint for normalization, fuzzing
should include this transform.

BUG=dawn:531

Change-Id: Ica25c3bbdc6ff392d5e31361734de43fd1c12815
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29180
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2020-09-30 17:50:14 +00:00
Corentin Wallez e2cb68b024 TextureFormatTest: Test components not present in the format.
For sampling, check that formats without 4 components sample them as
(0, 0, 0, 1) instead. For rendering, check that extra components output
by the shader are ignored.

Bug: None
Change-Id: Ib49fcaa58e984d821667e992d3ddb1bb093bdba0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29061
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-09-30 09:22:04 +00:00
Austin Eng ad421a248a Remove AMD test suppression in VulkanImageWrappingTests
This has been fixed by the layout transition fixes. The dedicated
memory bug doesn't seem relevant at this time.

Bug: dawn:200, dawn:206
Change-Id: I953a20850881f64f5ff5ddbede9aed3a835d22da
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29123
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-09-29 20:54:43 +00:00
Corentin Wallez 172cd1e8df TextureFormatTests: Test more Snorm format corner cases.
Bug: None
Change-Id: I02cba96f64d62495e21ba04bb514de9fb1563507
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29060
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-09-29 09:47:26 +00:00
Austin Eng b2a4e87ad2 Un-skip WriteTexture test on Swiftshader
Fixed in the roll of Swiftshader.

Bug: dawn:483
Change-Id: I8baad1d8d61e7b99c01dc27f929da830ca30c8d3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29081
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-09-28 22:05:24 +00:00
Austin Eng 7120d144a0 Roll third_party/swiftshader/ e8dd233c7..2014e7b92 (79 commits)
https://swiftshader.googlesource.com/SwiftShader/+log/e8dd233c7a85..2014e7b9290e

$ git log e8dd233c7..2014e7b92 --date=short --no-merges --format='%ad %ae %s'
2020-08-25 capn Work around std::is_trivially_copyable issue with MSVC
2020-08-21 srisser Add getPhysicalDeviceFeatures2
2020-08-18 capn Refactor image extent retrieval
2020-08-18 capn Refactor image view extent retrieval
2020-08-12 capn Refactor image query instructions
2020-08-21 srisser Revert "Add getPhysicalDeviceFeatures2"
2020-08-19 msisov X11 and Ozone: Try to check for display type when creating framebuf
2020-08-19 capn Perform independent blend state optimization
2020-07-30 srisser Add getPhysicalDeviceFeatures2
2020-08-18 sugoi Control Flow Integrity (cfi) fix
2020-08-17 amaiorano Update README to add details on Vulkan and less about GLES
2020-08-17 capn Don't rely on VectorType::get() default parameter
2020-08-13 swiftshader.regress Regres: Update test lists @ cda86eff
2020-08-06 capn Implement shaderStorageImageMultisample support
2020-08-12 sugoi Fix copying cubemap textures out of bounds
2020-08-12 swiftshader.regress Regres: Update test lists @ 13f04d59
2020-08-11 sugoi Fix decorations bleeding to following block members
2020-08-11 sugoi Fix for dEQP-VK.wsi.*.swapchain.acquire.too_many_timeout
2020-08-07 capn Implement VK_EXT_depth_range_unrestricted
2020-08-06 sugoi Prevent accessing deleted ImageView objects
2020-08-07 swiftshader.regress Regres: Update test lists @ a202c209
2020-08-05 capn Refactor discerning image view types
2020-08-03 capn Don't use 2D coordinates for 1D sampling
2020-08-05 capn Specialize 1D sampling LOD calculation
2020-08-01 capn Treat the array coordinate separately
2020-07-29 capn Refactor sampling code
2020-07-29 capn Zero out texel index after sample and layer offset
2020-08-04 swiftshader.regress Regres: Update test lists @ 74cc8ea2
2020-07-30 dpranke Fix a Python3-compatibility issue for write_icd_json.py.
2020-08-03 capn Remove VK_KHR_16bit_storage support
2020-07-30 capn Replace github.com code links with cs.opensource.google
2020-08-01 swiftshader.regress Regres: Update test lists @ aa5bd765
2020-07-30 swiftshader.regress Regres: Update test lists @ 08a3cc4c
2020-07-29 capn Use more inclusive terms
2020-07-28 srisser Enable occlusionQueryPrecise
2020-07-29 amaiorano Add doc for testing with SWANGLE
2020-07-29 amaiorano Add doc on using ANGLE instead of SwiftShader GL
2020-07-29 swiftshader.regress Regres: Update test lists @ dc8e77f0
2020-07-28 sugoi Work around dEQP-VK output_location test flakiness
2020-07-21 capn Expose VK_EXT_image_robustness support
2020-07-27 capn Perform texel replacement on out-of-bounds OpImageFetch accesses
2020-07-24 capn Perform out-of-bounds checks on texel pointers
2020-07-27 amaiorano Add CMake script to setup and build ANGLE
2020-07-24 amaiorano Add ANGLE as submodule
2020-07-27 sugoi Manual changes required for SPIR-V update
2020-07-20 caramelli.devel Add Wayland support for Vulkan WSI
2020-07-27 sugoi Squashed 'third_party/SPIRV-Headers/' changes from f8bf11a02..979924c8b
2020-07-27 sugoi Squashed 'third_party/SPIRV-Tools/' changes from 55af3902f..8a5500656
2020-07-21 capn Update Vulkan headers to version 1.2.148
2020-07-22 capn Refactor native instruction intrinsics
2020-07-20 amaiorano Delete third_party/llvm-7.0
2020-07-22 sugoi Add basic support for VK_EXT_debug_utils
2020-07-21 srisser Add support for depthBiasClamp
2020-05-10 spang Silence warnings on dedicated external memory allocations
2020-07-17 capn Regres: Roll dEQP to 1.2.3
2020-07-23 amaiorano Fix CMake failure on MacOS when PowerVR submodule is checked out
2020-07-16 capn Don't update CMake for Windows Kokoro builds
2020-07-21 amaiorano Fix ReactorDebugInfo off by one line issues
2020-07-22 amaiorano Fix GN debug builds of SwiftShader on LLVM 10
2020-07-17 tommek Fix copying between images and buffers with padding
2020-07-20 capn Eliminate dead host/target feature code for Subzero
2020-07-20 amaiorano Fix ENABLE_RR_DEBUG_INFO on LLVM 10
2020-07-20 amaiorano Remove support for LLVM < 10
2020-07-20 amaiorano Delete LLVM 7 Kokoro configs
2020-07-20 amaiorano Fix LLVM-10 CMake build
2020-07-21 swiftshader.regress Regres: Update test lists @ 97f99232
2020-07-16 capn Regres: Don't test changes with negative scores
2020-07-20 mark Fix macOS arm64 GN build by building llvm RWMutex.cpp
2020-07-10 ddorwin Update tests/presubmit.sh with modern syntax for Fuchsia bugs
2020-07-20 amaiorano Update to latest PowerVR to keep cmake source clean
2020-06-19 capn Support _PACK32 storage image formats and fix asserts
2020-07-18 capn Fix GN UBSanVPtr build of LLVM 10 JIT
2020-07-17 amaiorano Fix Win32 Chromium and ANGLE builds
2020-07-16 capn Remove Travis CI and AppVeyor build badges
2020-03-31 capn Update Kokoro's clang-format to version 10
2020-07-17 amaiorano Fix MacOS Chromium build (source_set dupe)
2020-07-16 amaiorano Fix MacOS (darwin) Chromium build on LLVM 10
2020-07-15 amaiorano Added Fuchsia support to LLVM 10 update script and updated configs
2020-07-15 amaiorano Use LLVM 10 instead of 7 for GN builds

Created with:
  roll-dep third_party/swiftshader

Change-Id: I3ce1615a460446dce394990388813e7590687ed1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29080
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2020-09-28 21:53:14 +00:00
Corentin Wallez 62139fcca7 Use typed integers for the ExecutionSerial
This will prevent mixing it up with other serial types in the future.

Bug: dawn:442
Change-Id: I74e964708acc62eb0f33127cc48f1b9a7b171d11
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28923
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-09-28 19:35:14 +00:00
Corentin Wallez ad4a66ec8f D3D12: Use typed integers for the ExternalMutexSerial
This will prevent mixing it up with other serial types in the future.

Bug: dawn:442
Change-Id: Ia1ec00572fa268e48349f7d9e39234ec8f5d3953
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28961
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-09-28 17:10:24 +00:00
Corentin Wallez cac14e0067 D3D12: Use typed integers for the HeapVersionID
This will prevent mixing it up with other serial types in the future.

Bug: dawn:442
Change-Id: I32f356c62f19ef29f3bf51c19873369fb817bb16
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28960
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-09-28 16:05:24 +00:00
Corentin Wallez 306fc502cf Use typed integers for the Fence FenceAPISerial
This will prevent mixing it up with other serial types in the future.

Bug: dawn:442
Change-Id: I1cdb35ee01be3c771183003bc357c84d46aa5745
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28922
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-09-28 15:11:04 +00:00
Corentin Wallez 53cdbead78 Use typed integers for the Buffer MapRequestID
This will prevent mixing it up with other serial types in the future.

Bug: dawn:442
Change-Id: Ie655d57722fcd79c82acc5aac429aed2c2741c3e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28920
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2020-09-28 14:14:44 +00:00
Corentin Wallez 145f115c54 SerialQueue/Map: Take the serial type as type paramater.
This is in preparation for follow-up CLs that will use typed integers
for the various serial types.

Bug: dawn:442

Change-Id: I5296546e96acd6ac9f7a0bfc46dc7eba40cb3cf5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28921
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-09-28 12:28:13 +00:00
Jiawei Shao ed2b465f86 Report more detailed error information for the failures of mapAsync
This patch adds two new buffer map async status "destroyed before
callback" and "unmapped before callback" to replace the status "unknown"
so that the developers can get more details when meeting such errors in
the call of buffer mapAsync.

Note that this patch still preserves "unknown" as it is still being used
in Chromium.

BUG=dawn:533
TEST=dawn_unittests

Change-Id: I12deefb49311ea6adea72c24e4e40797dd7eb4a1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28883
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-09-27 02:00:52 +00:00
Hao Li ddef7a04a2 Query API: QuerySet on Metal
- Add query set creation on Metal backend
- Enable end2end tests for query set creation

Bug: dawn:434
Change-Id: I7fe013192ae215b6b97cfdb646a8dd6f2596d4af
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28800
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2020-09-25 08:49:30 +00:00
Corentin Wallez eec9edfd57 Standardize the use of UNREACHABLE in switches.
A lot of our switches over enum values use the following pattern:

    default:
        UNREACHABLE();
        return foo;

This is problematic because when adding a new value to one of the WebGPU
enums, there is no compilation error for switches that are missing it.
Currently we're supposed to write code and tests and fix UNREACHABLEs when
we see them.

Instead we should strive to have most switches on enums to be complete
and explicitily tag unreachable values as UNREACHABLE. Some switches
might still want to use default: UNREACHABLE() if only a couple values
need to be handled out of very many.

In this CL we go through all the UNRAECHABLEs and change them if need
be. Also an ErrorQueue class is added to avoid having
QueueBase::SubmitImpl just be UNREACHABLE (and force overriding
instead).

Bug: dawn:527
Change-Id: I33dfb4703104912cc5f001f9faf907a61324de68
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28501
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
2020-09-24 14:56:50 +00:00
Corentin Wallez a46737c0aa Add wgpu::BindingType::MultisampledTexture
And deprecate wgpu::BindGroupLayoutEntry.multisampled.

Bug: dawn:527

Change-Id: I00f38eb6b1f82f9d9aedda5da23b1350263a3044
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28562
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
2020-09-24 11:41:07 +00:00