commit | 2ce1d927e98a654bb9b7137a07a7ccf5dbb5f4df | [log] [tgz] |
---|---|---|
author | Corentin Wallez <cwallez@chromium.org> | Thu Oct 22 17:07:49 2020 +0000 |
committer | Commit Bot service account <commit-bot@chromium.org> | Thu Oct 22 17:07:49 2020 +0000 |
tree | 9c4644a34bbecc5e9595077ceadda7b37c32330f | |
parent | 22505a5afe1f75b402a00a27d49e313fbd6e2181 [diff] |
SwapChainVk: handle mismatching size and usage with a blit In Vulkan the swapchain can stop working if the window resizes and doesn't match the size of the swapchain images anymore. WebGPU applications might not handle resizes instantly, so if the swapchain becomes incompatible we give them a temporary texture that we'll then blit inside the real swapchain texture. This also handles the case where the application requires more usages than what the swapchain can support. In addition, temporary checks are added that fail swapchain creation if the VkSurface doesn't support BGRA8Unorm which is the only allowed format for WebGPU swapchains at the moment. SwapChainTests should now work on Vulkan and are enabled. Bug: dawn:269 Change-Id: I812c0653125ed86d3a0f8f67347e961c7b207a98 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/30700 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Stephen White <senorblanco@chromium.org>
Dawn is an open-source and cross-platform implementation of the work-in-progress 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)
(TODO)
Apache 2.0 Public License, please see LICENSE.
This is not an officially supported Google product.