[Vulkan] Call TweakTransition only on barriers Move the TweakTransition call inside the barrier check in both TransitionUsageForPassImpl and TransitionUsageNow, and assert that exactly one barrier was added in ImportedTextureBase::TweakTransition instead of synthesizing a None -> None barrier with VK_IMAGE_LAYOUT_UNDEFINED when no barrier was emitted. When an imported texture in PendingAcquire or EagerlyTransitioned state is bound in a BindGroup whose layout entry has visibility = wgpu::ShaderStage::None, TransitionUsageForPassImpl strips kShaderTextureUsages to None and returns early without pushing a barrier. Skipping TweakTransition when no barrier was added avoids emitting an invalid VK_IMAGE_LAYOUT_UNDEFINED barrier and preserves the pending acquire until a pass actually uses the texture. Skip-Clang-Tidy-Checks: cppcoreguidelines-pro-bounds-pointer-arithmetic Bug: 571791430, 572662230 Change-Id: I91573f3376810d5d5118bf712e7927be1fc3f244 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/350296 Reviewed-by: Nikita Gupta <nikigupta@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Mridul Goyal <mridulgoyal@google.com>
Dawn is an open-source and cross-platform implementation of the WebGPU standard. More precisely it implements webgpu.h that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.
Dawn provides several WebGPU building blocks:
webgpu.h version that Dawn implements.webgpu.h.Helpful links:
Developer documentation:
User documentation: (TODO, figure out what overlaps with the webgpu.h docs)
BSD 3-Clause License, please see LICENSE.
This is not an officially supported Google product.