Commit Graph

4283 Commits

Author SHA1 Message Date
Loko Kung ff9a1f7b20 Adds/refactors destroy handling for Buffer and QuerySet.
The changes should pass through the destroy changes such that when the device is destroyed, the respective destroy functionality currently existing in the backends should be called.

For buffers, destroy no longer causes validation errors since even error buffers may need to be destroyed in the case of mappedAtCreation.

Bug: dawn:628, dawn:1002
Change-Id: I42a475af5d67cc60f86d95ac53c2b377a9fd2e82
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65863
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
2021-11-01 23:42:52 +00:00
Ben Clayton 32e9dd2dfd dawn_node: Improve error handling for run-cts
Rebuild if the `out-node` directory is missing.
Actually check the server's status code.
Fix error handling for bad statuses.

Change-Id: I2164bba528036d39f10852f4ffd8ace76f145dba
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67780
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-11-01 22:06:12 +00:00
Dawn Autoroller 38e7ce09a0 Roll Tint from 98dc04329f to d148be4f00 (2 revisions)
https://dawn.googlesource.com/tint.git/+log/98dc04329fbc..d148be4f0025

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 rharrison@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: rharrison@google.com
Change-Id: I77958bb98d31d4a23c9c0fac3bd978759c1397d2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/68001
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-01 20:25:42 +00:00
Loko Kung e1e9fd0722 Reland "Adds destroy handling for simple objects without new backend changes yet."
This is a reland of 9901c710d1

Original change's description:
> Adds destroy handling for simple objects without new backend changes yet.
>
> Simple objects are defined here as objects that do not already have a destroy or destroy-like API available. They include:
> - BindGroups
> - ComputePipelines
> - PipelineLayouts
> - RenderPipelines
> - Samplers
> - ShaderModules
> - SwapChains
>
> Changes include:
> - Adds necessary constructors for testing and caching
> - Adding mock objects, mock constructors, and tests
>
> Bug: dawn:628
> Change-Id: I26a5e37bc5580b9064db299a75ef1243521b266a
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65864
> Commit-Queue: Loko Kung <lokokung@google.com>
> Reviewed-by: Austin Eng <enga@chromium.org>

Bug: dawn:628
Change-Id: I19492ad6b1660e205d123b2d1fdf53c772564cfe
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67961
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
2021-11-01 18:14:21 +00:00
Austin Eng 1722f9e78e Unmark DispatchIndirect as an unsafe API
Validation is now implemented.
end2end_tests added in https://dawn-review.googlesource.com/c/dawn/+/67142
CTS tests enabled in https://chromium-review.googlesource.com/c/chromium/src/+/3254613

Fixed: dawn:1039
Change-Id: I03ae6bba4f11d6fa0aa2a83f3b6d72aa43c5e2df
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/68040
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-11-01 18:01:32 +00:00
Dawn Autoroller 777cbbb22b Roll Tint from 85a4282de6 to 98dc04329f (1 revision)
https://dawn.googlesource.com/tint.git/+log/85a4282de666..98dc04329fbc

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 rharrison@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: rharrison@google.com
Change-Id: Iae3a003b198ed2f0763836320d3f2ae2fd73a0d2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/68000
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-01 15:09:51 +00:00
Loko Kung b19556e907 Revert "Adds destroy handling for simple objects without new backend changes yet."
This reverts commit 9901c710d1.

Reason for revert: Breaking dawn roll due to include in ShaderMock

Original change's description:
> Adds destroy handling for simple objects without new backend changes yet.
>
> Simple objects are defined here as objects that do not already have a destroy or destroy-like API available. They include:
> - BindGroups
> - ComputePipelines
> - PipelineLayouts
> - RenderPipelines
> - Samplers
> - ShaderModules
> - SwapChains
>
> Changes include:
> - Adds necessary constructors for testing and caching
> - Adding mock objects, mock constructors, and tests
>
> Bug: dawn:628
> Change-Id: I26a5e37bc5580b9064db299a75ef1243521b266a
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65864
> Commit-Queue: Loko Kung <lokokung@google.com>
> Reviewed-by: Austin Eng <enga@chromium.org>

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: dawn:628
Change-Id: Ic727106f3dc701dc25418adf9824fbc5397aa656
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67960
Reviewed-by: Loko Kung <lokokung@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
2021-10-29 21:01:54 +00:00
Austin Eng bcfa7b1253 Implement GPU-based validation for dispatchIndirect
Bug: dawn:1039
Change-Id: I1b77244d33b178c8e4d4b7d72dc038ccb9d65c48
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67142
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-10-29 18:52:33 +00:00
Corentin Wallez deb4057d27 Remove the use_tint_generator toggle
We now always use Tint.

Bug: dawn:571
Change-Id: Ic65669a9e00493292ed60cde00af6fa3f6e55ec2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65665
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-10-29 13:17:27 +00:00
Corentin Wallez 2f8a68ce21 Infra: Use Python 3 for the Dawn recipe.
Bug: chromium:1256411
Change-Id: Iab6cf738a2a25cd15006bbc9291328ca74357179
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67820
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-10-29 09:07:43 +00:00
Jiawei Shao 94d1678c67 Implement ConcurrentCache
This patch implements the template class ConcurrentCache which will
be used to implement all the thread-safe object caches in Dawn (e.g.
PipelineLayout, ComputePipeline and RenderPipeline).

BUG=dawn:529
TEST=dawn_unittests

Change-Id: Ia6f75191110a93285bdb23fdc1d275444d1ee866
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67760
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-10-29 01:12:25 +00:00
Dawn Autoroller 32b0532633 Roll Tint from 2f17549702 to 85a4282de6 (1 revision)
https://dawn.googlesource.com/tint.git/+log/2f17549702b5..85a4282de666

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 alanbaker@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: I57795ca4886f44a8a7062cb400eb42b4bd2c48ed
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67842
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-28 23:59:15 +00:00
Dawn Autoroller 366b655c44 Roll Tint from c6ce5785d0 to 2f17549702 (3 revisions)
https://dawn.googlesource.com/tint.git/+log/c6ce5785d021..2f17549702b5

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 alanbaker@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: Id52648cb7879760617be114fe84b70ec4e0018b8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67840
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-28 19:05:05 +00:00
Loko Kung 9901c710d1 Adds destroy handling for simple objects without new backend changes yet.
Simple objects are defined here as objects that do not already have a destroy or destroy-like API available. They include:
- BindGroups
- ComputePipelines
- PipelineLayouts
- RenderPipelines
- Samplers
- ShaderModules
- SwapChains

Changes include:
- Adds necessary constructors for testing and caching
- Adding mock objects, mock constructors, and tests

Bug: dawn:628
Change-Id: I26a5e37bc5580b9064db299a75ef1243521b266a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65864
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-10-28 17:33:25 +00:00
Dawn Autoroller f81ee792b5 Roll Tint from 97c692d337 to c6ce5785d0 (1 revision)
https://dawn.googlesource.com/tint.git/+log/97c692d337e2..c6ce5785d021

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 alanbaker@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: I0c2878e9ef4cb4021f98eada5a4d7714300412dc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67800
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-28 13:45:35 +00:00
Austin Eng 1de83e56f7 MaxLimitTests: workaround i32 maximum for size annotation
by clamping the binding size for uniform buffers and using
a dynamically sized array for storage buffers

Bug: dawn:685, dawn:1172
Change-Id: I2222b98d7c2a67cdb420441837e2acfaa8185c73
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67566
Auto-Submit: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-10-28 02:49:54 +00:00
Brandon Jones f33afcdba6 Improve validation errors for encoders
Improves the validation messages in ComputePassEncoder.cpp,
ProgrammablePassEncoder.cpp, RenderBundleEncoder.cpp, and
EncodingContext.cpp/h to give them more contextual information.

Bug: dawn:563
Change-Id: I3807c30fb0de8e766fbc35b98ef9c059f9d441ee
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67603
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-10-28 00:13:17 +00:00
Shrek Shao 5e2e2d863e Pipeline constants: validate if any uninitialized overridable constants exist
Now an overridable constant need to be initialized, either via value specified
in shader, or via constant entry from pipeline stage. Otherwise it is invalid.

Together fix the bool 32bit initialize problem on vulkan and re-enable the
overridable constants shader test, and use assigning to _ instead of
ignore() in tests.

Bug: dawn:1041
Change-Id: I49e7885c8d6134647b09926ceb15234ac21ee35d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67560
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-10-28 00:04:07 +00:00
Dawn Autoroller 729cc97f87 Roll Tint from e7ca884b3d to 97c692d337 (1 revision)
https://dawn.googlesource.com/tint.git/+log/e7ca884b3d12..97c692d337e2

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 alanbaker@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: I117c359ab35de1751c84c04d0fcfdfb1aca56ed0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67680
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-27 20:38:47 +00:00
Austin Eng 3faa478ed2 Add FromAPI / ToAPI helpers for dawn_native
Helps to avoid explicitly using reinterpret_cast

Change-Id: I4df0e7094c7d8460385c6f23dac529ace9df9bdc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67605
Auto-Submit: Austin Eng <enga@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-10-27 19:07:37 +00:00
Austin Eng 346b58cfba Reland "Populate some D3D12 limits from the backend"
This is a reland of 167d299916
It skips MaxLimitTests.MaxBufferBindingSize on 32-bit Windows
until we have a way to test more reliably on that platform, or
until Dawn no longer allocates enormous staging buffers for zero
initialization.

Original change's description:
> Reland "Populate some D3D12 limits from the backend"
>
> This is a reland of aa8fcfc64b
> It changes MaxLimitTests to use at most a 512MB buffer on 32-bit
> platforms.
>
> Original change's description:
> > Populate some D3D12 limits from the backend
> >
> > Also bumps the required D3D feature level to 11.1
> >
> > Bug: dawn:685
> > Change-Id: I40bc3a162e0aee596d61118ba0dfe0bf9cb60d93
> > Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65120
> > Commit-Queue: Austin Eng <enga@chromium.org>
> > Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
> > Reviewed-by: Corentin Wallez <cwallez@chromium.org>
>
> Bug: dawn:685
> Change-Id: I2e1df5f7ac0c9bbb6476ca2e1964a9af4afd89b6
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67145
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
> Commit-Queue: Austin Eng <enga@chromium.org>

Bug: dawn:685
Change-Id: Ie20a58d73ebfcd64a8c5e58d29d7fb35ee9fba0d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67565
Auto-Submit: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-10-27 15:05:14 +00:00
Austin Eng 3c786cd418 Revert "Reland "Populate some D3D12 limits from the backend""
This reverts commit 167d299916.

Reason for revert: Still failing the roll because of OOM on x86.

Original change's description:
> Reland "Populate some D3D12 limits from the backend"
>
> This is a reland of aa8fcfc64b
> It changes MaxLimitTests to use at most a 512MB buffer on 32-bit
> platforms.
>
> Original change's description:
> > Populate some D3D12 limits from the backend
> >
> > Also bumps the required D3D feature level to 11.1
> >
> > Bug: dawn:685
> > Change-Id: I40bc3a162e0aee596d61118ba0dfe0bf9cb60d93
> > Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65120
> > Commit-Queue: Austin Eng <enga@chromium.org>
> > Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
> > Reviewed-by: Corentin Wallez <cwallez@chromium.org>
>
> Bug: dawn:685
> Change-Id: I2e1df5f7ac0c9bbb6476ca2e1964a9af4afd89b6
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67145
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
> Commit-Queue: Austin Eng <enga@chromium.org>

TBR=cwallez@chromium.org,enga@chromium.org,rafael.cintron@microsoft.com,dawn-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: Ibad5ac7f28015da6a7334ba074aa975198591318
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: dawn:685
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67564
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-10-26 18:13:46 +00:00
Dawn Autoroller 5023ff548c Roll Tint from 6c4effe654 to e7ca884b3d (1 revision)
https://dawn.googlesource.com/tint.git/+log/6c4effe65445..e7ca884b3d12

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 alanbaker@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: I32e4b53aeb94b5fcac6a8cab193e4ba0980897b1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67562
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-26 18:08:57 +00:00
Austin Eng f45478d65e Populate some Metal limits up from the backend
Bug: dawn:685
Change-Id: Idd36423e0f1f65c46ff835bfe90632b68505050c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/64983
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-10-26 16:56:36 +00:00
Austin Eng 167d299916 Reland "Populate some D3D12 limits from the backend"
This is a reland of aa8fcfc64b
It changes MaxLimitTests to use at most a 512MB buffer on 32-bit
platforms.

Original change's description:
> Populate some D3D12 limits from the backend
>
> Also bumps the required D3D feature level to 11.1
>
> Bug: dawn:685
> Change-Id: I40bc3a162e0aee596d61118ba0dfe0bf9cb60d93
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65120
> Commit-Queue: Austin Eng <enga@chromium.org>
> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>

Bug: dawn:685
Change-Id: I2e1df5f7ac0c9bbb6476ca2e1964a9af4afd89b6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67145
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-10-26 16:48:36 +00:00
Dawn Autoroller a6ddc8f0a2 Roll Tint from 0436d045ab to 6c4effe654 (1 revision)
https://dawn.googlesource.com/tint.git/+log/0436d045ab03..6c4effe65445

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 alanbaker@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: I85bf31bdd4c6dbb1d5e23831ea9fe8552b61f50e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67561
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-26 11:45:16 +00:00
Ben Clayton 9b92a7cbc2 Fix overridable constants
dawn:
* Zero-initialize the SpecializationDataEntry. For booleans, the first
  byte may be initialized, while the 3 other bytes may contain garbage.
  This can cause boolean specializations to be 'true' when 'false' was
  specified.

dawn_node:
* Implement conversion of GPUProgrammableStage's constants.
* Fix Napi::Object -> unordered_map conversion.
* Fix member name in error messages generated by
  'DictionaryMembersFromJS'

Bug: dawn:1041
Change-Id: I016ec4916fc73226dfe1bd8e7dc52a1e88e46a6b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67383
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-10-26 10:40:46 +00:00
Shrek Shao f4c8a6ac9b Mark pipeline overridable constants as unsafe
Until all backend implementations are done.

Bug: dawn:1169
Change-Id: I16d184bec03bbc9a255ad33cf11aa615b1986389
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67422
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-10-26 02:06:36 +00:00
Dawn Autoroller 83d8966a26 Roll Tint from c73b57f2c6 to 0436d045ab (2 revisions)
https://dawn.googlesource.com/tint.git/+log/c73b57f2c68e..0436d045ab03

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 alanbaker@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: I5c196cb4349b623df30a38698ad40c81836ca8bb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67520
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-25 22:27:43 +00:00
Dawn Autoroller 55aa57f2ec Roll Tint from 33c13c6e28 to c73b57f2c6 (1 revision)
https://dawn.googlesource.com/tint.git/+log/33c13c6e2802..c73b57f2c68e

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 alanbaker@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: Iee5cf4a8a2392de7e4c5c4a985686ca6c653c7c3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67460
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-25 17:37:23 +00:00
Austin Eng ec60b17964 Revert "Disable DrawIndexedIndirect"
This reverts commit d84d7f1ea3.

Reason for revert: CTS tests for this are now enabled.

Original change's description:
> Disable DrawIndexedIndirect
>
> Not passing CTS yet
>
> Bug: dawn:809
> Change-Id: Ib7c240372a8fdbd45803230292c374e2957c8d15
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65601
> Reviewed-by: Ben Clayton <bclayton@google.com>
> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: dawn:809
Change-Id: I3018fec67c278343956a6da68041bc6ec24d55f4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67420
Reviewed-by: Ben Clayton <bclayton@google.com>
Auto-Submit: Austin Eng <enga@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-10-25 16:16:53 +00:00
Ben Clayton 066ab14e34 wgsl: Remove unnecessary phony-assignments
A call-statement can now be made on a function that returns a value.

Bug: tint:1256
Change-Id: I9a3cc4e330f7441e09dc408bdc1cfa515adac392
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67382
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-10-25 15:27:52 +00:00
Ben Clayton 5c4ce7bd9b wgsl: Migrate from ignore() to phony-assignment
The rules have been relaxed about function values always needing to be
consumed, so a bunch of these phony-assignments can be replaced with the
RHS, but this will be done as a follow-up.

Bug: tint:1213
Change-Id: Ie7c4280f87b4ad7e5a429994b0b88ac22c2f3a9f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67300
Commit-Queue: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-10-25 15:14:23 +00:00
Dawn Autoroller e0b5664f98 Roll Tint from 7b776f18b0 to 33c13c6e28 (1 revision)
https://dawn.googlesource.com/tint.git/+log/7b776f18b0a4..33c13c6e2802

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 jrprice@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: jrprice@google.com
Change-Id: I09027351697993119b69550d2ff6d7407c4d88d3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67400
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-25 12:51:16 +00:00
Brandon Jones eb0d900506 Improving Metal backend validation messages.
Improves validation messages in various Metal backend files:

 - SamplerMTL.mm
 - ShaderModuleMTL.mm
 - SwapChainMTL.mm
 - TextureMTL.mm

Bug: dawn:563
Change-Id: I076c08bb3dbecc430d5d4d7fbfeea48166070688
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67320
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-10-22 17:39:20 +00:00
Dawn Autoroller 1ca2dd6fb6 Roll Tint from c2fa68e551 to 7b776f18b0 (1 revision)
https://dawn.googlesource.com/tint.git/+log/c2fa68e55145..7b776f18b0a4

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 jrprice@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: jrprice@google.com
Change-Id: I16fc28a1e7150d9f188294ccd9772dca08e44dc9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67340
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-22 10:02:25 +00:00
Dawn Autoroller 6a52ab2f11 Roll Tint from 092326894e to c2fa68e551 (4 revisions)
https://dawn.googlesource.com/tint.git/+log/092326894e9c..c2fa68e55145

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 jrprice@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: jrprice@google.com
Change-Id: Icd518b3ab52329b70d02362fd9bacb09529ce918
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67222
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-22 05:13:35 +00:00
Brandon Jones 4ce84fcfe1 Improving Vulkan backend validation messages.
Improves validation messages in various Vulkan backend files:

 - vulkan/DeviceVk.cpp
 - vulkan/ShaderModuleVk.cpp
 - vulkan/SwapChainVk.cpp
 - vulkan/TextureVk.cpp
 - vulkan/external_memory/MemoryServiceDmaBuf.cpp
 - vulkan/external_memory/MemoryServiceOpaqueFD.cpp
 - vulkan/external_memory/MemoryServiceZirconHandle.cpp
 - vulkan/external_semaphore/SemaphoreServiceFD.cpp
 - vulkan/external_semaphore/SemaphoreServiceZirconHandle.cpp

Bug: dawn:563
Change-Id: I521fecc29e7919413aa6210eff050848689296a1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67122
Commit-Queue: Brandon Jones <bajones@chromium.org>
Auto-Submit: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-10-21 23:45:54 +00:00
Dawn Autoroller 6daae26497 Roll Tint from 042bd02747 to 092326894e (6 revisions)
https://dawn.googlesource.com/tint.git/+log/042bd0274733..092326894e9c

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 jrprice@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: jrprice@google.com
Change-Id: I9caf51cf3d558c5e2600d21c33df4975cff767a3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67221
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-21 23:37:54 +00:00
Brandon Jones c19f27b80d Revert "Improve validation errors for encoders"
This reverts commit c7e6bb0d8d.

Reason for revert: clusterfuzz identified issue https://bugs.chromium.org/p/chromium/issues/detail?id=1262112

Original change's description:
> Improve validation errors for encoders
>
> Improves the validation messages in ComputePassEncoder.cpp,
> ProgrammablePassEncoder.cpp, RenderBundleEncoder.cpp, and
> EncodingContext.cpp/h to give them more contextual information.
>
> Bug: dawn:563
> Change-Id: I87c46c4bfda1375809fae93239029ea4e3b9c0a2
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67000
> Commit-Queue: Brandon Jones <bajones@chromium.org>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: dawn:563
Change-Id: I259ccde1735c4201ff2736562cfe4689e9a22f62
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67321
Reviewed-by: Brandon Jones <bajones@chromium.org>
Commit-Queue: Brandon Jones <bajones@chromium.org>
2021-10-21 23:14:54 +00:00
Antonio Maiorano ceb46e788c dawn_node: add "enable/disable-dawn-features=<comma-separated-values>"
Same as Chrome's args, this allows us to set the
DeviceDescriptor::forceEnabledToggles and forceDisabledToggles when
creating the GPUDevice.

Example: node cmdline.ts ... --gpu-provider-flag=enable-dawn-features=dump_shaders ...

Bug: dawn:1163
Change-Id: Ib5db71355f72e5d08f8fe87313c5e3d63ee236c3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/66963
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-10-21 23:02:34 +00:00
Antonio Maiorano c6745901f0 dawn_node: add "dlldir=<path>" flag
Only used on Windows builds for now, this flag adds the input path to
the DLL search paths. The main purpose is to ensure we load the right
version of D3D dlls, such as d3dcompiler_47.dll from the Chrome output
dir, rather than the default one in the Systems directory.

Bug: dawn:1163
Change-Id: I8e696dd877ec715e1e54d8589af8275e62c90937
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/66962
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-10-21 21:46:44 +00:00
Antonio Maiorano 821f1a8a60 dawn_node: add "dawn-backend=<value>" flag
As an alternative to setting the "DAWNNODE_BACKEND" env var.

Bug: dawn:1163
Change-Id: I33ace14e7603b97caf7286a109a31160853f62e0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/66961
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-10-21 20:56:34 +00:00
Brandon Jones 1d55306255 Improving D3D12 backend validation messages.
Improves validation messages in various D3D12 backend files:

 - CommandBufferD3D12.cpp
 - ShaderModuleD3D12.cpp
 - SwapChainD3D12.cpp
 - TextureD3D12.cpp

Bug: dawn:563
Change-Id: I00607012f5bec81780c419993fc32dc0984dad27
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67143
Commit-Queue: Brandon Jones <bajones@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-10-21 20:21:54 +00:00
Antonio Maiorano 0cd8edc31b Add /third_party/gpuweb to .gitignore
Change-Id: I0a854b633ae04029d54f4607fbb81522d0461113
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67260
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-10-21 19:47:14 +00:00
Antonio Maiorano e772615b53 dawn_node: add support for input flags
This change replaces the ".gpu" export with ".create()" function that
accepts an array of flags. These will be used by cmdline.ts to set flags
such as what dawn backend to use. We currenly environment variables, but
this will be more flexible.

Bug: dawn:1163
Change-Id: If2fb35811cac45e16121fbd828f997ef3d795f36
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/66960
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-10-21 19:34:34 +00:00
Brandon Jones 7dc906a4c9 Improve validation messages for surface/swap chain
Updates validation messages with more contextual information in:
 - ChainUtils.h
 - Device.cpp
 - SpirvValidation.cpp
 - Surface.cpp
 - SwapChain.cpp

Bug: dawn:563
Change-Id: I486512791caaf1acf4607539aa5ad11daf1ab9be
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67140
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-10-21 19:25:04 +00:00
Dawn Autoroller 853c61d0a6 Roll Tint from 8cab28c9f9 to 042bd02747 (1 revision)
https://dawn.googlesource.com/tint.git/+log/8cab28c9f9cd..042bd0274733

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 jrprice@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

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/main/autoroll/README.md

Bug: None
Tbr: jrprice@google.com
Change-Id: I82ea4bc58ad60b483500942af0ee6e986f8f7e4f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67220
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-21 18:50:34 +00:00
Brandon Jones fc5cae6a19 Improving OpenGL backend validation messages.
Improves validation messages in various OpenGL backend files:

 - BackendGL.cpp
 - BindGroupGL.cpp
 - CommandBufferGL.cpp
 - DeviceGL.cpp
 - PipelineGL.cpp
 - QueueGL.cpp
 - ShaderModuleGL.cpp

Bug: dawn:563
Change-Id: Idd5751b6f68ea435e5f3c045dcbfd0e5c049fce6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67144
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Brandon Jones <bajones@google.com>
2021-10-21 16:37:45 +00:00
Aleksi Sapon 08b9654751 Zero the index offsets before an indirect draw
Prevent reusing offsets from a previous direct draw.
Update test to verify that values are updated correctly
for each draw. Add tests for indirect draw offsets.

Bug: dawn:548
Change-Id: Ice8325a8a41b8a4375767156dbaba3ee3d714f3b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/67121
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-10-21 14:29:44 +00:00