未设置顶点缓冲区
在 GPURenderPassEncoder
或 GPURenderBundleEncoder
上将 null
(而非 GPUBuffer
)传递给 setVertexBuffer()
,可让您取消设置给定槽中之前设置的顶点缓冲区。请参阅问题 dawn:1675。
// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);
取消设置 bind 组
通过在 GPURenderPassEncoder
或 GPURenderBundleEncoder
上将 null
(而非 GPUBindGroup
)传递给 setBindGroup()
,您可以取消设置给定槽中之前设置的绑定组。请参阅问题 dawn:1675。
// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);
// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);
在设备丢失时,忽略异步流水线创建错误
GPUDevice
的 createComputePipelineAsync()
和 createRenderPipelineAsync()
方法会返回一个 promise,该 promise 会在流水线创建完成时解析。从现在起,当 GPUDevice
为 lost
时,创建异步流水线时产生的错误将会被忽略,以便让丢失的设备尽可能地正常运行。请参阅 dawn issue:1874。
SPIR-V 着色器模块创建更新
现在,使用 createShaderModule()
创建 SPIR-V 着色器模块会引发 TypeError,除非您使用“不安全的 WebGPU 支持”标志运行 Chrome,因为 SPIR-V 不属于 WebGPU 规范的一部分。在此更改之前,使用 SPIR-V 会导致系统生成 GPUInternalError。请参阅更改 chromium:4711911。
改善开发者体验
改进了顶点着色器中绑定组布局绑定的验证错误消息,以支持读写存储缓冲区和只写存储纹理绑定。请参阅问题 dawn:1883。
使用自动生成的布局缓存流水线
使用 createRenderPipeline({ layout: "auto" })
创建的流水线现在可以利用 Chrome 中的缓存机制。这意味着,这些流水线的创建效率将更高,并且使用的内存更少。请参阅问题 dawn:1933。
Dawn 最新动态
wgpu::RequestAdapterOptionsBackendType
现在是 wgpu::RequestAdapterOptions
的一部分,可让应用在获取适配器时更轻松地请求特定后端。请参阅以下示例和问题 dawn:1875。
wgpu::RequestAdapterOptions options = {
.backendType = wgpu::BackendType::D3D12};
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
我们还为 Node.js 实现了一些其他方法。请参阅更改 dawn:142465。
webgpu.h C API 已将其布尔值类型从 stdbool
更改为 WGPUBool
,它是一个 uint32_t
。此更改是为了确保 API 在 C 和 C++ 中具有等效的 ABI。
本指南仅涵盖部分重要内容。查看详尽的提交内容列表。
WebGPU 的新变化
WebGPU 新变化系列中涵盖的所有内容的列表。
Chrome 130
Chrome 129
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 更新