目前,WebGPU 功能的数量似乎有点少,但重大改进即将到来!后续版本将包括 DP4a、只读和读写存储纹理、单独的模板和深度宽高比控制、渲染为 3D 纹理切片以及着色器编译改进等功能。
在此期间,请了解如何在无头 Chrome 中利用 WebGPU 和 WebGL 支持大幅提升您的 Web AI 模型测试能力,以及 Chrome 中 WebGPU 可能被停用或无法正常运行的原因。
利用兼容模式扩大覆盖面(功能尚处于开发阶段)
WebGPU 与现代图形 API(Vulkan、Metal 和 D3D12)完美契合,但有些设备缺少对这些 API 的支持。这限制了 WebGPU 的无障碍功能,特别是在 Windows(31% 的 Chrome 用户缺少 D3D11.1+)、Android(23% 缺少 Vulkan 1.1+)和 ChromeOS(Vulkan 采用率不断增加)等平台上。
为了解决此问题,Chrome 团队正在 WebGPU 中开发一种兼容模式,通过提供适用于 D3D11 和 OpenGL ES 等旧版 API 的略受限的 WebGPU 版本。这将扩大 WebGPU 的潜在用户群。
重要的是,使用兼容模式的应用仍然完全有效的 WebGPU 应用。不支持兼容模式的设备将无缝默认使用核心 WebGPU 适配器,以确保广泛的易用性。
<ph type="x-smartling-placeholder">提高 maxVertexAttributes 限制
默认情况下,创建 GPURenderPipeline 时,所有缓冲区的属性总数上限为 16 个。现在,使用 maxVertexAttributes 限制(如果支持)最多可以请求 30 个。请参阅以下示例和issue dawn:2223。
const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxVertexAttributes < 30) {
// When the desired limit isn't supported, take action to either fall back to
// a code path that does not require the higher limit or notify the user that
// their device does not meet minimum requirements.
}
// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
requiredLimits: { maxVertexAttributes: 30 },
});
Dawn 最新动态
新增了名为“expose_wgsl_experimental_features”的实例切换开关添加了 ,以使实例仅公开实验性 WGSL 功能,而不显示不安全的功能,因此无需启用“allow_unsafe_apis”,即可使用安全的实验性 WGSL 功能切换开关。请参阅问题 dawn:2260。
Node.js 版 Dawn 绑定的最新改进包括:
- 已添加
GPUSupportedFeatures::getSize()
。 - 实现了
GPUAdapter
过时。 - 现在可以正确报告设备
GPUInternalError
。 - 属性现在可枚举。
本指南仅涵盖部分重要内容。查看详尽的提交内容列表。
WebGPU 的新变化
WebGPU 新变化系列涵盖的所有内容的列表。
Chrome 128
Chrome 127
Chrome 126
Chrome 125
Chrome 124
Chrome 123
Chrome 122
Chrome 121
- 在 Android 上支持 WebGPU
- 在 Windows 上使用 DXC(而非 FXC)进行着色器编译
- 计算通道和渲染通道中的时间戳查询
- 着色器模块的默认入口点
- 支持 display-p3 作为 GPUExternalTexture 颜色空间
- 内存堆信息
- Dawn 最新动态
Chrome 120
Chrome 119
Chrome 118
Chrome 117
Chrome 116
- WebCodecs 集成
- GPUAdapter 返回的设备丢失
requestDevice()
- 如果调用
importExternalTexture()
,则保持视频播放流畅 - 规范合规性
- 改善开发者体验
- Dawn 最新动态