commit | 8ea3310e380e4ca95eb160853490ceda2805794f | [log] [tgz] |
---|---|---|
author | Kyle Charbonneau <kylechar@google.com> | Thu Jan 23 20:04:35 2025 -0800 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Jan 23 20:04:35 2025 -0800 |
tree | b6fa45bbf59cc7ccd308e8368e3eb03d37dac2fe | |
parent | 363b4f1a08225b73f347e0330ba6d872139af201 [diff] |
Implement Vulkan compatibility mode Adds support for compatibility mode in the Vulkan backend. Not all Vulkan 1.1 devices support the minimum core limits that WebGPU requires, eg. Mali-G71 GPUs have maxColorAttachments=4 and core requires 8. Ganesh/Vulkan runs on some devices today. We need to be able to run Graphite/Dawn/Vulkan on them as well. If a FeatureLevel::Compatibility adapter was requested then don't require depthBiasClamp, imageCubeArray and independentBlend features and use lower compatibility limits. Note that if a PhysicalDevice fails to support core feature level a warning is recorded describing why. This can't use the existing warning logging since that is tied to PhysicalDevice initialization failure which doesn't happen if the device supports compat. Bug: 389016529 Change-Id: I2f6e713f13494ec2e8effad33b3448b531673485 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/222117 Commit-Queue: Kyle Charbonneau <kylechar@google.com> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
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.