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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
The now-removed SPIRV-Cross path used to always do this, and the
pure Tint-only path never actually validated the SPIRV. Tint
does not run SPIRV-Tools validation on its output, so add in
validation to ensure we don't pass invalid SPIRV to the driver.
The validation can probably eventually be removed when we're more
confident that Tint's SPIRV output is always correct.
Also include various cleanups for old / unused code.
Bug: dawn:1036
Change-Id: Iaab037518965e52edbd1829f6ab6ba2af0e70143
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61589
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Auto-Submit: Austin Eng <enga@chromium.org>
Bug: dawn:1036
Change-Id: Ia60c71558bd2c47a6b7148d86b8dcedfaa79ba89
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61585
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This is the simplest change necessary to remove GL backends from
the build in Chrome. The backends will still be enabled on bots
that test Dawn. A more proper fix might be to update the dawn.py
recipe to explicitly enable the GLES backend (we don't test the
GL backend on bots using dawn.py, but we do test GLES), and then
defaulting both dawn_enable_desktop_gl and dawn_enable_opengles
to false.
For now, stick with the most minimal change for two reasons:
1. Defaulting to false would lose automatically enabling the
backends in Dawn standalone builds where they're supported.
2. LUCI changes have changed the permissions to trigger tryjobs
on recipe changes, so testing a recipe change is not possible
right now. See crbug.com/1168315.
Bug: dawn:1036
Change-Id: I7f4977fbd271200f1d6161d2e2b3438cdb4db1ca
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61600
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Dawn only reapplies bind groups that have changed on the layout
since the last draw. However, the D3D12 backend was always resetting
the root signature state upon switching pipelines. This led to a
bug where the root signature could be changed and dirtied without
reapplying the dirty bind groups.
Moving application of the root signature state to the same loop
that applies bind groups helps ensure the state stays in sync.
Fixed: dawn:1055
Change-Id: Iae89088560e83f6104c921d42de27c03095d654f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61582
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
This commit adds a getter so that Chromium can check whether an
Adapter would support external images. External images are
necessary to implement the WebGPU swapchain and interop with the
rest of the web platform. We should not expose adapters that
cannot interop with the canvas and other web platform primitives
until WebGPU gains options to request more "limited" adapters.
Bug: dawn:1056
Change-Id: Iff83ac26b0e92dccdd4e29c0d854d9276a4a37bc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61580
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Brian Ho <hob@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Since the other backends no longer need it, move all of the
utility functions specific to SPIRV-Cross into the OpenGL backend.
This obviates the need for the DAWN_USE_SPIRV_CROSS define, so remove it.
Bug: dawn:1036
Change-Id: I67bb5a85dc128a6f343d09876046cf559395e05f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61541
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Put all cross-platform code references to Spirv-Cross behind
ifdef DAWN_USE_SPIRV_CROSS. Hide build dependencies behind
dawn_use_spirv_cross, which itself is set from dawn_enable_opengl,
since it is the only backend which is still using SPIRV-Cross.
Bug: dawn:1036
Change-Id: Id61512230b50a32c63827a16fece40d7899968d8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61400
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Bug: dawn:1036
Change-Id: If447f93f7a17ecfe73f04605a60893edb00990d3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61402
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Older names are kept around as an alias for a while. Unfortunately we
have no mechanism for producing deprecation error messages when they
are used.
Bug: dawn:1035
Change-Id: Ic6716fd526ecbedaa8e7925ab93e3ff32f642d97
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61382
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Brandon Jones <bajones@chromium.org>
This patch removes the comment about adding "interpolationType" and
"interpolationSampling" to InterStageVariableInfo as they have already
added before. Sorry that we forgot to remove it in the PR of adding
these two members to InterStageVariableInfo.
BUG=dawn:802
Change-Id: Ib2f3769f2dc1c8152280a28aad77bf90abf76608
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61384
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
If the Adapter failed to create a D3D device, it would
attempt to access it on destruction causing the
process to crash.
Bug: dawn:460
Change-Id: I3f13043e8049cd71806ee54efa92c70e26561580
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61300
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
According to the discussion[1], the sum of all the user-defined
inter-stage component count and all the inter-stage builtin component
count should be no more than MaxInterStageShaderComponents (currently
in Dawn it is always 60).
[1] https://github.com/gpuweb/gpuweb/issues/1962
BUG=dawn:1032
TEST=dawn_unittests
Change-Id: Id5266b72b89c48f5b7073b8307f8f2c0512c8a33
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61104
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>