Commit Graph

3968 Commits

Author SHA1 Message Date
Dawn Autoroller 5097f299af Roll Tint from b09723e58b to 14ac047d45 (4 revisions)
https://dawn.googlesource.com/tint.git/+log/b09723e58b8d..14ac047d45ff

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 sarahmashay@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: sarahmashay@google.com
Change-Id: I119523b86dd4b1228bd6cdbba5946f1ac8bd1de5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63221
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-31 22:50:41 +00:00
Dawn Autoroller 77667094be Roll Tint from 293d313bbc to b09723e58b (1 revision)
https://dawn.googlesource.com/tint.git/+log/293d313bbca2..b09723e58b8d

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 sarahmashay@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: sarahmashay@google.com
Change-Id: I10b972d97e440c6fbb20ed0d6f3e45f5e21c7b37
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63200
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-31 17:52:34 +00:00
shrekshao 3fdfa82f7b Callback reentrancy tests
Some tests to make sure new requests inside user callback
is okay.

Bug: dawn:1091
Change-Id: I4c53d7fb6637f77e5af6fd0a78d879a2431d4ac8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63041
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
2021-08-31 15:18:54 +00:00
Jiawei Shao 67fc6aeb82 Remove redundant code in CreateRenderPipeline
This patch removes the redundant code in CreateRenderPipeline so
that we can better share the common code in both CreateRenderPipeline
and CreateRenderPipelineAsync.

BUG=dawn:529

Change-Id: Ic2a7781525e5594da3d51a42b231df63c0c09339
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62880
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-08-31 07:47:57 +00:00
Loko Kung c7226a7624 Adds ETC2/EAC texture compression formats and Vulkan support for them
The end to end texture tests with the binary information for the textures are generated with a combination of the open source etc2comp tool and manual crafting of the data based on the specification in the Kronos Data Format Specifications (https://www.khronos.org/registry/DataFormat/specs/1.1/dataformat.1.1.pdf) for the compressed formats.

Also: Refactors end2end compressed texture tests and some utilities so that we can use parameterized tests for easier new format additions.

Bug: dawn:955
Change-Id: I91686f26a693a85cb076ef0eca3029111a64c50f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62740
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-08-31 00:15:45 +00:00
Corentin Wallez 6bb3f6f216 vulkan: Free "in flight" fences/commands in ShutdownImpl
There might still be fences and commands marked as in-flight in
ShutdownImpl if the device was lost. Delete them anyway because since
the device was lost, it means that all objects are no longer in the
"pending" state (from the Vulkan spec point of view)

Bug: chromium:1244454
Change-Id: I905a9a8e5174591bf93e3cdac3cdcb349d75a581
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63102
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-08-30 20:01:04 +00:00
Corentin Wallez 52ad8f6768 client: call pending GetCompilationInfo on Disconnect
Fixed: dawn:1090
Change-Id: Ia7cf692ea41ebe85aaac58e3f3aa6727e6cc8ba4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63002
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-08-30 08:00:45 +00:00
Dawn Autoroller ea487972d1 Roll Tint from a96dce9c89 to 293d313bbc (7 revisions)
https://dawn.googlesource.com/tint.git/+log/a96dce9c893e..293d313bbca2

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: I568ecc400efb267d73318a40bb30cab9b7889ce2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63040
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-27 20:26:11 +00:00
Dawn Autoroller cd3ad24561 Roll Tint from 87cce20f67 to a96dce9c89 (1 revision)
https://dawn.googlesource.com/tint.git/+log/87cce20f679d..a96dce9c893e

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: I0f3bc487fe8b38785f33cd178af1bce05a800da0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62840
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-27 18:01:24 +00:00
Corentin Wallez 378ea27f39 Remove stray reference to GetDefaultQueue
Bug: dawn:22
Change-Id: Ia5c1f552317d9c35a9c09fe4e0684593cee9cacf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62940
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-08-27 07:51:00 +00:00
Li Hao c31b16f5dc Check Query API feature support by GPU counter on Metal
Currently we use gpu family to determine whether a query extension is
supported. The official document provides a way to check the feature
support by GPU counter. Update checking following the official guide.

Bug: dawn:996
Change-Id: I09cf51ed8a8209642eed71c9e4592f6eab82bfa5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/60360
Commit-Queue: Hao Li <hao.x.li@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-08-27 04:20:21 +00:00
James Price 086c44ee73 Add missing includes to SemaphoreService.h
These are needed for the VulkanDeviceInfo and VulkanFunctions structs.

Change-Id: I1d18e59cd923e5fd702ac65d505793519b3a42b7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62920
Commit-Queue: James Price <jrprice@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-08-26 17:17:35 +00:00
Corentin Wallez 21940df81b Device: Mark all commands as completed on device loss
Previously device loss would produce an assert when shutting down where
the frontend though not all commands where finished.

Bug: chromium:1242195
Change-Id: I90fe626b6930859b3fd98b660882fb11b6a9ff8c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62542
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-08-26 09:25:15 +00:00
Jiawei Shao 2aee6eef7f Refactor APICreateRenderPipelineAsync to support sync and async path
This patch refactors the implementation of APICreateRenderPipelineAsync
as a preparation of the async path of the creation of render pipeline.

Now the code path of APICreateRenderPipelineAsync() includes the
following 3 parts:
- When an error occurs in the front-end validations, the callback will
  be called at once in the main thread.
- When we can find a proper render pipeline object in the cache, the
  callback will be called at once in the main thread.
- When we cannot find the proper render pipeline object in the cache,
  the newly-created pipeline object, the callback and userdata will be
  saved into the CreatePipelineAsyncTracker, and the callback will be
  called in device.Tick(). All the logic mentioned in this section has
  been put into one function CreateRenderPipelineAsyncImpl(), which will
  be overridden by its asynchronous version on all the backends that
  support creating pipeline objects asynchronously.

BUG=dawn:529
TEST=dawn_end2end_tests

Change-Id: I5706224092588a8c042a952aef2591696072592d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62781
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-08-26 00:39:14 +00:00
Zhaoming Jiang 6fa34f80bd Adding VB OOB validation for zero array stride
In this patch OOB validation in draw and drawIndexed is added for vertex
buffer with zero array stride. For such case, both vertex step and
instance step mode buffer can be validated for both draw and drawIndexed,
as we don't care about actual vertex count and instance count for buffer
with zero array stride.
Related unit test is also added. Also fix the DrawIndexedVertexBufferOOB
unit test.

Bug: dawn:1065
Change-Id: Id302dc0c443dec965347c8ae9f3f4d73aeddc38c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62200
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
2021-08-25 01:30:03 +00:00
Loko Kung c1d395865f Adds placeholders for ETC2/ASTC compression texture format
Compatible Vulkan backends should now enable ETC2/ASTC but no functional
changes because no TextureFormat in ETC2 or ASTC have been added yet.

Bug: dawn:955
Change-Id: I56e8ff73f931a12253fe6d21f3f4b91e3459ef13
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62701
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2021-08-25 00:53:42 +00:00
Dawn Autoroller 2db24d6bd2 Roll Tint from 568136dd10 to 87cce20f67 (1 revision)
https://dawn.googlesource.com/tint.git/+log/568136dd102a..87cce20f679d

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: I872c27b8ec0b914799df5461e04cc5bf7239c121
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62780
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-25 00:17:53 +00:00
Dawn Autoroller f8545c683f Roll Tint from 6d60c046e8 to 568136dd10 (3 revisions)
https://dawn.googlesource.com/tint.git/+log/6d60c046e80a..568136dd102a

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: Iafbc3eb73b415f24c4218233c9c1c1cd566649d9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62640
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-24 16:35:32 +00:00
Austin Eng 20ffe9712f Fix a bug with D3D12 buffer alignment computation
We should use D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT
if the usage *contains* Uniform usage, not if it is exactly
equal.

Fixed: dawn:1085
Change-Id: I540081e550c9e88efeb08169cecdc40b68d36d14
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62242
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-08-24 01:52:03 +00:00
Brandon Jones 5ae66fbcc7 Add Tag for Unimplemented Labels to ObjectBase Constructor
Adds the LabelNotImplemented tag param to the main constructor of
ObjectBase to document objects that still require labels.

Bug: dawn:840
Change-Id: Idd19664e797e4d622401e28e5d278331acefb7a3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62461
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Brandon Jones (Intel) <brandon1.jones@intel.com>
2021-08-23 23:14:36 +00:00
Dawn Autoroller 63b2fb9500 Roll Tint from 367f5df5c3 to 6d60c046e8 (1 revision)
https://dawn.googlesource.com/tint.git/+log/367f5df5c355..6d60c046e80a

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: I2f07d1f233c0dc8c3b49cb7634a5b431d787f871
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62581
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-23 21:04:41 +00:00
Dawn Autoroller 1d83eb0c72 Roll Tint from 1fa6f5ce9b to 367f5df5c3 (1 revision)
https://dawn.googlesource.com/tint.git/+log/1fa6f5ce9ba8..367f5df5c355

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: Ia4febc081a2ae4a9dc08a1b9e20b92ab8de9b55e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62560
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-23 16:16:11 +00:00
Corentin Wallez da230e5e5c Remove typedefs for passed deprecations
Bug: None
Change-Id: I922fc4b1149c94f891692e6961423162a5a131e1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62360
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-08-23 10:10:11 +00:00
Dawn Autoroller dd1a5b3ad3 Roll Tint from f6a49d69b4 to 1fa6f5ce9b (1 revision)
https://dawn.googlesource.com/tint.git/+log/f6a49d69b4bf..1fa6f5ce9ba8

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: If63bbc84b39e322e879fc2052ee297fd116541d4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62520
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-21 09:59:19 +00:00
Dawn Autoroller 491e9c87bd Roll Tint from d47a7ef0cf to f6a49d69b4 (1 revision)
https://dawn.googlesource.com/tint.git/+log/d47a7ef0cf0c..f6a49d69b4bf

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: I0383d922bd8f55016785819204970a0a14b9e01f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62460
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-20 17:40:08 +00:00
Michael Tang bd45466c6d build: Override angle_has_rapidjson to false
This fixes the issue where a standalone checkout of Dawn could not build
the |all| target because ANGLE was missing sub-dependencies. The
|:default| target still builds fine before this change.

Change-Id: Icf6582068837053909d9efd1cffd3a0d3c0836cf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61380
Commit-Queue: Michael Tang <tangm@microsoft.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-08-19 22:14:27 +00:00
Michael Tang b7285d8a9d Roll third_party/angle/ 835bcb1e2..4aedb71f4 (730 commits; 1 trivial rolls)
Change-Id: I37e0619c84ab1f92b12b8324f1bd894d86d69416
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62241
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Michael Tang <tangm@microsoft.com>
2021-08-19 21:30:57 +00:00
Brandon Jones c95e574ce0 Add Debug Label Functionality For D3D12/Vk Buffers & Textures
Adds a generic SetDebugName utility for D3D12 and Vulkan. Passes down
debug label set by user for buffers and textures to be labeled by the
appropriate backend method.

Bug: dawn:840
Change-Id: I7158b537a6e37fdf733645e6830dc33833ee683e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61588
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Brandon Jones (Intel) <brandon1.jones@intel.com>
2021-08-19 20:47:28 +00:00
Austin Eng ddd0a0a856 Initialize padding on buffer allocations
Buffer allocations in Dawn may be padded. This padding
could be visible, depending on how the backend
implements robust vertex buffer access. This commit
updates buffer creation to clear all padding bytes
immediately after creation.
It is not counted as a lazy clear.
And, add a test which reads off the end of a padded
vertex buffer to check that the padding bytes are also
initialized.

Also: Update Metal buffers to always allocate enough
space for Tint's vertex pulling, and pass the full
allocated size to Tint. While writing the test in this
commit, a bug was found where Tint assumes there is at
least 4 bytes in the vertex pulling buffer. The WebGPU
API currently allows zero-sized bindings, so Dawn needs
to always allocate enough space for one element.

Also: Update Vulkan vertex/index buffers to allocate
at least one more byte than requested because
vkCmdSetVertexBuffers and vkCmdSetIndexBuffer disallow
the offset to be equal to the buffer size. We need
at least one more byte to make zero-sized bindings
as the end of the buffer valid.

Lastly: Update helper so that a T2B copy of a single
row that touches all bytes in a buffer updates the
buffer state to be fully initialized. This is a small
optimization that is necessary to write the test.

Bug: dawn:837
Change-Id: I829f4764509c4ec784c5aeaaf40b6dcbd4be6866
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62161
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-08-19 18:02:36 +00:00
Michael Tang 663a16e2fe D3D12: use the WGSL binding number as shader register
Currently, the bind group layout tightly packs the shader registers for
each of the sampler and non-sampler descriptors sets. This reduces the
max shader register used and helps targeting shader model 5.0, which has
a relatively low max slot count per resource. It is safe in D3D, since a
shader register collision can be valid if the descriptor types differ.

To support Mesa's SPIR-V to DXIL compiler, we need to avoid possible
collisions between resources' shader registers because it uses SPIR-V as
an intermediate representation (which does not namespace bindings by
type). This change re-works BindGroupLayoutD3D12 to not assume the
resulting shader registers will be tightly packed and group per
descriptor type.

Change-Id: I0bb51106c4683bfe02ce15ecad71716734b7a91f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/60764
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Michael Tang <tangm@microsoft.com>
2021-08-19 17:17:26 +00:00
Corentin Wallez 05b770ae86 Roll third_party/vulkan-deps/ df0528b58..d74e02442 (227 commits)
https://chromium.googlesource.com/vulkan-deps/+log/df0528b581a1..d74e02442e56

$ git log df0528b58..d74e02442 --date=short --no-merges --format='%ad %ae %s'
2021-08-18 chromium-autoroll Roll Vulkan-ValidationLayers from 25679b5cb70d to cefa7fd82e22 (3 revisions)
2021-08-18 chromium-autoroll Roll SPIRV-Tools from 57e1d8ebe319 to 926ff6d1bab0 (1 revision)
2021-08-18 chromium-autoroll Roll SPIRV-Tools from b2e36b67eca0 to 57e1d8ebe319 (1 revision)
2021-08-18 chromium-autoroll Roll SPIRV-Headers from e71feddb3f17 to 449bc986ba6f (1 revision)
2021-08-17 chromium-autoroll Roll Vulkan-ValidationLayers from d06860401b23 to 25679b5cb70d (1 revision)
2021-08-17 chromium-autoroll Roll Vulkan-Tools from 415320f80f74 to 580510626634 (1 revision)
2021-08-17 chromium-autoroll Roll Vulkan-Loader from 8a3a1676ef16 to 90fd66f60fa7 (1 revision)
2021-08-17 chromium-autoroll Roll Vulkan-ValidationLayers from 23df061eea23 to d06860401b23 (1 revision)
2021-08-17 chromium-autoroll Roll Vulkan-ValidationLayers from 11a68a3a68d4 to 23df061eea23 (1 revision)
2021-08-17 chromium-autoroll Roll Vulkan-ValidationLayers from d6be28f1b1da to 11a68a3a68d4 (3 revisions)
2021-08-17 chromium-autoroll Roll Vulkan-Headers from 521f91d793e1 to c5b7a2fa1875 (1 revision)
2021-08-17 chromium-autoroll Roll Vulkan-ValidationLayers from c8b51a99a4c7 to d6be28f1b1da (4 revisions)
2021-08-17 chromium-autoroll Roll Vulkan-Loader from 413673b249b2 to 8a3a1676ef16 (2 revisions)
2021-08-16 chromium-autoroll Roll SPIRV-Tools from 2c829c415561 to b2e36b67eca0 (1 revision)
2021-08-16 chromium-autoroll Roll Vulkan-ValidationLayers from d57a36b3af20 to c8b51a99a4c7 (1 revision)
2021-08-16 chromium-autoroll Roll Vulkan-Loader from de37ef3a3a69 to 413673b249b2 (2 revisions)
2021-08-16 chromium-autoroll Roll Vulkan-ValidationLayers from 7c2cd8b7d957 to d57a36b3af20 (2 revisions)
2021-08-16 chromium-autoroll Roll Vulkan-ValidationLayers from b9b07b63369d to 7c2cd8b7d957 (2 revisions)
2021-08-16 chromium-autoroll Roll Vulkan-ValidationLayers from fd7e55b0435e to b9b07b63369d (1 revision)
2021-08-16 chromium-autoroll Roll Vulkan-Loader from 024535bdfeb9 to de37ef3a3a69 (1 revision)
2021-08-16 chromium-autoroll Roll Vulkan-ValidationLayers from 15f721402314 to fd7e55b0435e (2 revisions)
2021-08-16 chromium-autoroll Roll SPIRV-Tools from 869a550d26ba to 2c829c415561 (1 revision)
2021-08-16 chromium-autoroll Roll Vulkan-Loader from de99f8f6bef0 to 024535bdfeb9 (5 revisions)
2021-08-16 chromium-autoroll Roll Vulkan-ValidationLayers from 7094ff6738c4 to 15f721402314 (3 revisions)
2021-08-16 chromium-autoroll Roll Vulkan-ValidationLayers from daff74be76b6 to 7094ff6738c4 (2 revisions)
2021-08-16 chromium-autoroll Roll Vulkan-ValidationLayers from 18ac1058e840 to daff74be76b6 (2 revisions)
2021-08-16 chromium-autoroll Roll Vulkan-ValidationLayers from d1f10bf9701c to 18ac1058e840 (2 revisions)
2021-08-16 chromium-autoroll Roll SPIRV-Tools from 881001070a8f to 869a550d26ba (1 revision)
2021-08-16 chromium-autoroll Roll SPIRV-Tools from 00b106e76984 to 881001070a8f (1 revision)
2021-08-14 chromium-autoroll Roll Vulkan-ValidationLayers from 516a65a08f94 to d1f10bf9701c (2 revisions)
2021-08-14 chromium-autoroll Roll Vulkan-ValidationLayers from 90c6cf57aca7 to 516a65a08f94 (2 revisions)
2021-08-13 chromium-autoroll Roll Vulkan-ValidationLayers from 1ec89332ab76 to 90c6cf57aca7 (2 revisions)
2021-08-13 chromium-autoroll Roll Vulkan-ValidationLayers from 69c0fb545d02 to 1ec89332ab76 (1 revision)
2021-08-13 chromium-autoroll Roll SPIRV-Tools from 54524ffa6a1b to 00b106e76984 (1 revision)
2021-08-13 chromium-autoroll Roll glslang from aa2d4bd2f481 to 7ca4dfa06158 (1 revision)
2021-08-13 chromium-autoroll Roll Vulkan-ValidationLayers from e67546a5e9c8 to 69c0fb545d02 (2 revisions)
2021-08-12 chromium-autoroll Roll Vulkan-ValidationLayers from 2e3cabe1eb02 to e67546a5e9c8 (2 revisions)
2021-08-12 chromium-autoroll Roll Vulkan-ValidationLayers from 8315def41522 to 2e3cabe1eb02 (1 revision)
2021-08-12 chromium-autoroll Roll Vulkan-ValidationLayers from 33cbaf883835 to 8315def41522 (2 revisions)
2021-08-12 chromium-autoroll Roll Vulkan-ValidationLayers from 0c09bc913497 to 33cbaf883835 (2 revisions)
2021-08-12 chromium-autoroll Roll Vulkan-ValidationLayers from 76a2e6cc59ba to 0c09bc913497 (4 revisions)
2021-08-12 chromium-autoroll Roll SPIRV-Tools from de69f32e8962 to 54524ffa6a1b (1 revision)
2021-08-12 chromium-autoroll Roll Vulkan-ValidationLayers from 97e1a87ea476 to 76a2e6cc59ba (2 revisions)
2021-08-11 chromium-autoroll Roll Vulkan-Loader from baf0ffd791b8 to de99f8f6bef0 (3 revisions)
2021-08-11 chromium-autoroll Roll SPIRV-Headers from 1160d54e9cd2 to e71feddb3f17 (1 revision)
2021-08-11 chromium-autoroll Roll SPIRV-Headers from e7b49d7fb598 to 1160d54e9cd2 (2 revisions)
2021-08-11 chromium-autoroll Roll Vulkan-Loader from fbb56aacceef to baf0ffd791b8 (1 revision)
2021-08-11 chromium-autoroll Roll Vulkan-ValidationLayers from 5c72713750a6 to 97e1a87ea476 (2 revisions)
2021-08-11 chromium-autoroll Roll Vulkan-ValidationLayers from 2fe826b04cc4 to 5c72713750a6 (1 revision)
2021-08-11 chromium-autoroll Roll Vulkan-ValidationLayers from bdd0d9e573d4 to 2fe826b04cc4 (1 revision)
(...)
2021-07-22 chromium-autoroll Roll Vulkan-ValidationLayers from 893fc802e44f to 3127f5025bf5 (1 revision)
2021-07-22 chromium-autoroll Roll Vulkan-ValidationLayers from 2aed30728950 to 893fc802e44f (2 revisions)
2021-07-22 chromium-autoroll Roll Vulkan-ValidationLayers from 8c765ba0252f to 2aed30728950 (2 revisions)
2021-07-22 chromium-autoroll Roll SPIRV-Cross from 18f3cd681003 to cd22336a38b7 (1 revision)
2021-07-21 chromium-autoroll Roll Vulkan-Tools from 8d582b0bfecf to a4ee3cacbb1c (2 revisions)
2021-07-21 chromium-autoroll Roll Vulkan-Tools from 33a87ce6daec to 8d582b0bfecf (1 revision)
2021-07-21 chromium-autoroll Roll SPIRV-Headers from 1d4e3a7e3a04 to cf653e4ca485 (1 revision)
2021-07-21 chromium-autoroll Roll SPIRV-Tools from 033768c24bbc to d9f89257855a (1 revision)
2021-07-21 chromium-autoroll Roll Vulkan-ValidationLayers from c3117616a938 to 8c765ba0252f (2 revisions)
2021-07-21 chromium-autoroll Roll Vulkan-ValidationLayers from 281d9d92bc78 to c3117616a938 (2 revisions)
2021-07-21 chromium-autoroll Roll Vulkan-ValidationLayers from 194db6870e36 to 281d9d92bc78 (2 revisions)
2021-07-21 chromium-autoroll Roll Vulkan-ValidationLayers from 6ec0e1fc8101 to 194db6870e36 (2 revisions)
2021-07-21 chromium-autoroll Roll Vulkan-ValidationLayers from af805f501fda to 6ec0e1fc8101 (2 revisions)
2021-07-21 chromium-autoroll Roll Vulkan-ValidationLayers from 90fb2a6bcc80 to af805f501fda (2 revisions)
2021-07-21 chromium-autoroll Roll Vulkan-ValidationLayers from 690277e40bb2 to 90fb2a6bcc80 (2 revisions)
2021-07-21 chromium-autoroll Roll Vulkan-ValidationLayers from f6b4e30ece56 to 690277e40bb2 (2 revisions)
2021-07-20 chromium-autoroll Roll Vulkan-ValidationLayers from c460e1b8f253 to f6b4e30ece56 (2 revisions)
2021-07-20 chromium-autoroll Roll Vulkan-Loader from 9d05cd96cff5 to a0c69f0d3a3d (1 revision)
2021-07-20 chromium-autoroll Roll Vulkan-ValidationLayers from 1ce74650d909 to c460e1b8f253 (6 revisions)
2021-07-20 chromium-autoroll Roll Vulkan-ValidationLayers from 27d3c1e8d22a to 1ce74650d909 (3 revisions)
2021-07-20 chromium-autoroll Roll Vulkan-ValidationLayers from 7a94050bff97 to 27d3c1e8d22a (1 revision)
2021-07-20 chromium-autoroll Roll Vulkan-ValidationLayers from e954b9a47f60 to 7a94050bff97 (2 revisions)
2021-07-20 chromium-autoroll Roll Vulkan-ValidationLayers from d444097efd55 to e954b9a47f60 (3 revisions)
2021-07-20 chromium-autoroll Roll Vulkan-Loader from 99c0b1433a09 to 9d05cd96cff5 (1 revision)
2021-07-20 chromium-autoroll Roll Vulkan-Headers from 0193e158bc9f to 872fa25bb6df (1 revision)
2021-07-20 chromium-autoroll Roll SPIRV-Cross from e51630595fad to 18f3cd681003 (1 revision)
2021-07-20 chromium-autoroll Roll SPIRV-Tools from f084bcfe2bf9 to 033768c24bbc (1 revision)
2021-07-20 chromium-autoroll Roll SPIRV-Tools from 3a68a7274022 to f084bcfe2bf9 (1 revision)
2021-07-20 chromium-autoroll Roll Vulkan-ValidationLayers from bcba6d3ace62 to d444097efd55 (1 revision)
2021-07-19 chromium-autoroll Roll Vulkan-ValidationLayers from ee6e43d9ef78 to bcba6d3ace62 (3 revisions)
2021-07-19 chromium-autoroll Roll Vulkan-ValidationLayers from efd64dd48b11 to ee6e43d9ef78 (1 revision)
2021-07-19 chromium-autoroll Roll SPIRV-Cross from 6196e3b02968 to e51630595fad (1 revision)
2021-07-16 chromium-autoroll Roll Vulkan-ValidationLayers from c08456df10c4 to efd64dd48b11 (2 revisions)
2021-07-16 chromium-autoroll Roll SPIRV-Tools from 5427d5cf014c to 3a68a7274022 (2 revisions)
2021-07-16 chromium-autoroll Roll Vulkan-ValidationLayers from a1ab20c5257f to c08456df10c4 (2 revisions)
2021-07-16 chromium-autoroll Roll Vulkan-ValidationLayers from 2f15d7912efa to a1ab20c5257f (2 revisions)
2021-07-16 chromium-autoroll Roll Vulkan-ValidationLayers from a136e9c321cf to 2f15d7912efa (2 revisions)
2021-07-16 chromium-autoroll Roll SPIRV-Tools from 7320b9acd251 to 5427d5cf014c (1 revision)
2021-07-16 chromium-autoroll Roll Vulkan-ValidationLayers from d9b3e1284edd to a136e9c321cf (2 revisions)
2021-07-16 chromium-autoroll Roll Vulkan-ValidationLayers from ecc6426f60ab to d9b3e1284edd (1 revision)
2021-07-16 chromium-autoroll Roll SPIRV-Tools from e0937d7fd1db to 7320b9acd251 (1 revision)
2021-07-16 chromium-autoroll Roll Vulkan-ValidationLayers from 252f60cd417c to ecc6426f60ab (1 revision)
2021-07-16 chromium-autoroll Roll glslang from 4b7b86d568b4 to 9158061398a9 (1 revision)
2021-07-16 chromium-autoroll Roll Vulkan-ValidationLayers from 92ac16133657 to 252f60cd417c (1 revision)
2021-07-16 chromium-autoroll Roll Vulkan-ValidationLayers from 8c80f35d628e to 92ac16133657 (2 revisions)
2021-07-15 chromium-autoroll Roll Vulkan-ValidationLayers from b4d170193ac6 to 8c80f35d628e (1 revision)
2021-07-15 chromium-autoroll Roll Vulkan-ValidationLayers from 71b6a1eaecf0 to b4d170193ac6 (1 revision)
2021-07-15 chromium-autoroll Roll SPIRV-Tools from 2685c9a687b5 to e0937d7fd1db (1 revision)
2021-07-15 chromium-autoroll Roll Vulkan-ValidationLayers from 77ad26931a86 to 71b6a1eaecf0 (2 revisions)
2021-07-15 chromium-autoroll Roll Vulkan-ValidationLayers from 98df0682926f to 77ad26931a86 (2 revisions)

Created with:
  roll-dep third_party/vulkan-deps

Change-Id: I434f4a1eea5ff57dbcaa1b1fa1673ed505880f84
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62300
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-08-19 15:42:36 +00:00
Li Hao 41e3931b04 Fix build failures of new APIs on old macOS SDK
New APIs supported from macOS 11.0 cannot build successfully on macOS
10.15, even use @available to control whether a declaration is
available on target platform, but does not work in conditionally
compiling.

Update building.md to require the macOS 11.0 SDK.

Bug: dawn:1054
Change-Id: If22ada959c0c1ef41826f78bd337b912772000b1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61021
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-08-18 16:16:57 +00:00
Michael Tang 71d7c2e670 D3D12: Include serializer error messages in pipeline layout creation
Currently, Dawn ignores the output of D3D12SerializeRootSignature. This
change adds these error messages to the the CheckHRESULT context.

Change-Id: Ieeb63d7b5408ca1bc9e4ab97d777f764cdf06664
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62163
Commit-Queue: Michael Tang <tangm@microsoft.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-08-18 00:36:37 +00:00
Stephen White 8d1ead6393 Remove unused SPIRV-Cross shader reflection bits.
The only part of mGLEntryPoints actually used is the bindings, so
replace ShaderModuleGL::mGLEntryPoints with mBindings.
This required extracting BindingInfoArray from EntryPointMetadata,
making it visible in the dawn_native namespace.
Remove all non-bindings-related reflection, and MSL-specific checks
and workarounds.

Bug: dawn:1076
Change-Id: I05657c0c89f5d8a2185e55f9ad7c8f81d89a8e60
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62180
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2021-08-17 20:50:36 +00:00
Dawn Autoroller 373972b2b1 Roll Tint from 91181b906f to d47a7ef0cf (1 revision)
https://dawn.googlesource.com/tint.git/+log/91181b906f3b..d47a7ef0cf0c

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: Ib22b56abb9df411e5a723fc3cf128602a10ad9ea
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62240
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-17 17:52:18 +00:00
Dawn Autoroller e7e8d5c486 Roll Tint from 06c86a551e to 91181b906f (1 revision)
https://dawn.googlesource.com/tint.git/+log/06c86a551ed6..91181b906f3b

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: I9ff3c8abc5491298522c885085665f6c597ad1be
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62160
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-16 22:23:50 +00:00
Brandon Jones e1bdfa8d32 Remove deprecated depth texture sampling path
Removes deprecated path for sampling depth textures with
float/unfilterable-float. Attempting to do so now results in a
validation error.

Bug: dawn:1021
Change-Id: I112f45e7227ab1caaf0d6ed203194295e7022db2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61861
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Brandon Jones <bajones@chromium.org>
2021-08-16 19:55:00 +00:00
Corentin Wallez e53a7cc874 Fix CMake build on macOS
Fixed: dawn:1061
Change-Id: Ie4208f32e9403220d78601ebefcc62c2c44c3485
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/62040
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-08-16 15:32:52 +00:00
Dawn Autoroller 0becd05857 Roll Tint from 8094553c8a to 06c86a551e (2 revisions)
https://dawn.googlesource.com/tint.git/+log/8094553c8a45..06c86a551ed6

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: Id692a6022384bd3b17307832fbfe8241eeca3528
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61960
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-13 16:06:20 +00:00
Dawn Autoroller e5dd6746bd Roll Tint from 080fdf2ac0 to 8094553c8a (1 revision)
https://dawn.googlesource.com/tint.git/+log/080fdf2ac000..8094553c8a45

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: I3506fca9cb47377b0a4c84da53ba76ef7b427a9f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61940
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-13 01:49:29 +00:00
shrekshao 5486a2fba5 Remove some validation for alpha.src/dstFactor
Validation rules revised at
https://github.com/gpuweb/gpuweb/issues/2013#issuecomment-897364617

Bug: dawn:1063
Change-Id: I8ae1cd00f75c8049206a8c5f6fcdb879e1b6a469
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61821
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
2021-08-13 00:08:50 +00:00
Bryan Bernhart 31f039350b D3D12: Cache DXGI keyed mutexes on the external image.
Maintains a 11on12 resource cache on the external image
to prevent re-creating the wrapped resource then
flushing it per produced texture. To prevent
unbounded growth, a basic cap is used which gets
cleared.

This change fixes signficant CPU time spent in the WebGPU command
decoder for video import workloads and excessive memory overhead
from swap chain buffers.

Fixed: dawn:625

Change-Id: I72c07b02f6ab6877a9f21758650962c895933bf9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51421
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-08-12 23:32:49 +00:00
Dawn Autoroller f209e8ba83 Roll Tint from 67473c7a6c to 080fdf2ac0 (3 revisions)
https://dawn.googlesource.com/tint.git/+log/67473c7a6c05..080fdf2ac000

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: I0833f0f84e52390dc4074807f6308cc3c4a99e31
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61880
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-12 20:22:49 +00:00
Juanmi 633bb68c6b Reland "Making D3D12 accept InternalUsageDescriptors"
This is a reland of 365d40b93a

Original change's description:
> Making D3D12 accept InternalUsageDescriptors
>
> This is a follow up from two previous CLs,
> https://dawn-review.googlesource.com/c/dawn/+/58440
> and
> https://dawn-review.googlesource.com/c/dawn/+/58140
>
> This CL adds in the D3D12Backend the possibility to use Dawn Texture
> Internal Usage Descriptor, and adds a series of tests to validate it.
>
> Change-Id: I94f6b39153b60ec8af61bda22d41a865898da613
> Bug: dawn:1027, dawn:1052
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61520
> Commit-Queue: Juanmi Huertas <juanmihd@chromium.org>
> Reviewed-by: Kai Ninomiya <kainino@chromium.org>

Bug: dawn:1027, dawn:1052
Change-Id: I0d35cbf4dc1c6dc80e1a5dfb4770a5383ef543fa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61840
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Juanmi Huertas <juanmihd@chromium.org>
2021-08-12 20:17:39 +00:00
Bryan Bernhart 0d6da1072c Fix ASSERT setting staging buffer label
Ensures the mapped staging buffer will
always be locked before setting the label.
Otherwise, setting the label could fail
and leave it unlocked which isn't
allowed.

BUG: chromium:1239112
Change-Id: I738f8d6fc3b20b8c8b51671d77e7014d967ffd52
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61860
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
2021-08-12 19:46:18 +00:00
Austin Eng 39c4fcbdd3 Revert "Making D3D12 accept InternalUsageDescriptors"
This reverts commit 365d40b93a.

Reason for revert: Broke the ChromeOS build in the Dawn roll.
https://chromium-review.googlesource.com/c/chromium/src/+/3090302

Original change's description:
> Making D3D12 accept InternalUsageDescriptors
>
> This is a follow up from two previous CLs,
> https://dawn-review.googlesource.com/c/dawn/+/58440
> and
> https://dawn-review.googlesource.com/c/dawn/+/58140
>
> This CL adds in the D3D12Backend the possibility to use Dawn Texture
> Internal Usage Descriptor, and adds a series of tests to validate it.
>
> Change-Id: I94f6b39153b60ec8af61bda22d41a865898da613
> Bug: dawn:1027, dawn:1052
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61520
> Commit-Queue: Juanmi Huertas <juanmihd@chromium.org>
> Reviewed-by: Kai Ninomiya <kainino@chromium.org>

TBR=kainino@chromium.org,enga@chromium.org,juanmihd@chromium.org,dawn-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I11b246f38505df23a6c61e851d6d90e34c8d1287
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: dawn:1027, dawn:1052
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61820
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-08-12 17:05:21 +00:00
Dawn Autoroller 4d968c63d3 Roll Tint from 3bcbfc7862 to 67473c7a6c (2 revisions)
https://dawn.googlesource.com/tint.git/+log/3bcbfc7862ee..67473c7a6c05

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 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: Ib30d3ff57e2719b08121c9ffa252b193c8ecf69e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61740
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-12 15:41:15 +00:00
Juanmi 365d40b93a Making D3D12 accept InternalUsageDescriptors
This is a follow up from two previous CLs,
https://dawn-review.googlesource.com/c/dawn/+/58440
and
https://dawn-review.googlesource.com/c/dawn/+/58140

This CL adds in the D3D12Backend the possibility to use Dawn Texture
Internal Usage Descriptor, and adds a series of tests to validate it.

Change-Id: I94f6b39153b60ec8af61bda22d41a865898da613
Bug: dawn:1027, dawn:1052
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61520
Commit-Queue: Juanmi Huertas <juanmihd@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2021-08-12 15:35:48 +00:00
Stephen White 1935043d35 Fix CMake build.
SpirvUtils.* are now in the dawn_native/opengl/ directory.

Bug: dawn:1067

Change-Id: I9cfb7ee52ec1f4ac321cb03978008843e33f82c6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61680
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-08-12 15:24:48 +00:00
Austin Eng 8e402bc4c5 Suppress flaky CopyTextureForBrowserTest on Win Vulkan Intel
Bug: dawn:1070
Change-Id: Ic5dc1b334e4b006594ee950bf508057361e821bd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61720
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Austin Eng <enga@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
2021-08-12 15:16:14 +00:00