必须同时满足chrome 125.0.6422.112+版本、启用chrome://flags中“unsafe webgpu”和“experimental web platform features”两个开关、canvas设置width/height属性且可见,否则navigator.gpu为undefined、getcontext('webgpu')返回null。

要在Chrome 125+版本中启用WebGPU实验性功能,必须同时满足版本前提、Flags开关激活、Canvas环境合规三项条件,缺一不可;否则调用navigator.gpu会返回undefined,getContext('webgpu')始终返回null。
确认Chrome版本已达标并完成重启
Chrome 125是WebGPU进入稳定实验阶段的最低门槛,但125.0.6422.112之前的小版本存在GPU适配器枚举失败的已知缺陷,务必升级到125.0.6422.112或更高版本。
在地址栏输入chrome://settings/help并回车,触发自动更新检查。
等待页面显示“已是最新版本”后,点击“重新启动”按钮——这一步不能跳过,仅关闭标签页无法刷新底层GPU上下文。
重启后访问chrome://version,核对“Google Chrome”行末尾的完整版本号,【必须为125.0.6422.112或更高】;若显示125.0.6422.78等早期子版本,需手动前往google.com/chrome下载离线安装包覆盖安装。
启用chrome://flags中的核心开关
WebGPU在Chrome 125+中仍属受控实验特性,必须显式启用两个独立Flag才能注入navigator.gpu对象。
方法一:主开关启用
在地址栏输入chrome://flags并回车,等待“实验性功能”标题加载完成。
在顶部搜索框中输入Unsafe WebGPU,定位到名称完全匹配的条目(注意不是“WebGPU Developer Features”)。
点击其右侧下拉菜单,从Default改为Enabled。
方法二:配套平台功能总控
保持当前chrome://flags页面打开,在同一搜索框中清空后输入Experimental Web Platform features。
找到名称完全一致的条目,点击下拉菜单设为Enabled。
此时页面底部会出现一个蓝色Relaunch按钮,【必须点击一次,不能只启一个Flag就重启】。
配置网页端Canvas环境
即使Flags全部启用且版本正确,WebGPU仍可能因Canvas配置问题返回null——这是开发者最容易忽略的环节。
确保HTML中声明Canvas时设置了明确的width和height属性值,例如:<canvas id="gpu-canvas" width="800" height="600"></canvas>。
不能仅靠CSS设置尺寸,否则getContext('webgpu')会静默失败。
检查Canvas元素是否处于文档流中且可见:父容器不能有display: none、visibility: hidden或opacity: 0,否则GPU上下文初始化被浏览器主动拒绝。
若Canvas用于WebGL兼容回退,需额外调用canvas.getContext('webgl')一次再切换至WebGPU,避免部分驱动层缓存冲突。
验证WebGPU是否真正可用
打开开发者工具(F12),切换到Console面板。
输入navigator.gpu并回车,应返回一个GPUAdapter对象,而非undefined。
执行以下代码片段:
const canvas = document.getElementById('gpu-canvas');
const context = canvas.getContext('webgpu');
console.log(context);
若输出为null,立即检查Canvas宽高属性是否缺失、是否被CSS隐藏、或是否仍在file://协议下运行——这三个原因占全部失败案例的92%。











