Google chrome 和 Apple M1 中的计算着色器

Pap*_*113 2 webgl rust webgpu rust-wasm wgpu-rs

我有一个用 wgpu/rust 编写的物理模拟器,当我从命令行运行时它可以工作。但是,当我尝试在 chrome v114 上运行(根据我在网上看到的支持)时,我收到以下错误,指出计算工作组的最大数量为零。我打印了适配器功能,得到以下信息:Limits { . . . max_compute_workgroup_storage_size: 0, max_compute_invocations_per_workgroup: 0, max_compute_workgroup_size_x: 0, max_compute_workgroup_size_y: 0, max_compute_workgroup_size_z: 0, max_compute_workgroups_per_dimension: 0, max_push_constant_size: 256 }

此外,抛出错误时控制台会转储以下内容: Version: WebGL 2.0 (OpenGL ES 3.0 Chromium)

我的适配器设置错误吗?或者 wgpu 还不支持浏览器中的计算着色器?欢迎任何建议。感谢大家。

编辑:以防万一这会破解代码,这些是我在本机运行时的设备功能。


...
max_compute_workgroup_storage_size: 16384, 
max_compute_invocations_per_workgroup: 256, max_compute_workgroup_size_x: 256, max_compute_workgroup_size_y: 256, max_compute_workgroup_size_z: 64, max_compute_workgroups_per_dimension: 65535, max_push_constant_size: 0 }```
Run Code Online (Sandbox Code Playgroud)

Kev*_*eid 5

wgpuWasm 目前支持WebGL 2WebGPU,但不能在一个版本中同时支持两者

由于您看到报告了 WebGL 2,因此您已features = ["webgl"]在依赖项规范中激活wgpu;您必须将其删除才能启用 WebGPU 支持。

这不会对兼容性造成任何损害,因为您的应用程序需要计算着色器,而计算着色器不是 WebGL 2 的一部分。