SuperAPI AI 工具集

webgpu-core-cross-browser

前端与建站

查看项目

更新于 10-15 22:18

技能介绍

用途:编写能在 Chrome、Safari、Firefox 上运行的 WebGPU 代码,或在某功能仅单浏览器可用时定位问题,防止应用在缺少该能力时崩溃。

主要能力:给出 WebGPU 1.0 稳定基线(Chrome 113+、Safari 26+、Firefox 141+);列出各浏览器与引擎(Dawn/WebKit/wgpu)的支持情况;给出 Dawn 可选特性时间线(如 shader-f16 Chrome 120、subgroups Chrome 134);提供三个特性检测入口:adapter.features.has(name)、device.features.has(name)、navigator.gpu.wgslLanguageFeatures.has(name),以及 navigator.gpu.getPreferredCanvasFormat()。

必要用法:requestDevice 前先用 adapter.features.has 过滤 requiredFeatures;之后用 device.features.has 判断可用的运行时路径,因为只有既支持又被请求的特性才可用;可选 WGSL 特性需在生成着色器前检测,否则会产生着色器创建错误;画布格式始终使用 getPreferredCanvasFormat(),不要硬编码;提高 limits 前先读 adapter.limits,只请求实际需要的上限,并按 device.limits 设置资源大小;显式用 queue.onSubmittedWorkDone() 或 buffer.mapAsync() 同步,不依赖浏览器批处理时序。

适用场景:需要同时兼容三大浏览器引擎的 WebGPU 应用,及排查单浏览器可用、其他浏览器失效的问题。

限制与提示:Safari 26.0-26.5 为部分支持,可选特性与格式落后 Chrome;Firefox 桌面 141 先在 Windows 启用,其他平台默认关闭至 153,Android 版未启用。不要硬编码画布格式,不要把未检测的可选特性放入 requiredFeatures,不要引用“Safari 18”作为基线,WebGPU 实际随 Safari 26 / iOS 26 发布。featureLevel 默认 core,compatibility 仅用于有意面向 OpenGL ES 3.1 / D3D11 级硬件。参考文件 methods.md、examples.md、anti-patterns.md 提供检测 API、示例与反模式说明。