取消设置顶点缓冲区
在 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);
取消设置绑定组
在 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,它会在流水线创建完成后解析。从现在起,当 GPUDevice
为 lost
时,异步流水线创建所产生的错误将静音,以便让丢失的设备尽可能正常运行。请参阅 dawn issue:1874。
SPIR-V 着色器模块创建更新
现在,除非您使用“Unsafe WebGPU Support”标志运行 Chrome,否则使用 createShaderModule()
创建 SPIR-V 着色器模块会抛出 TypeError,因为 SPIR-V 不属于 WebGPU 规范。在此变更之前,使用 SPIR-V 将导致系统生成 GPUInternalError。请参阅更改 chromium:4711911。
改善开发者体验
针对读写存储缓冲区和只写存储纹理绑定,改进了顶点着色器中绑定组布局绑定的验证错误消息。请参阅问题 dawn:1883。
使用自动生成的布局缓存流水线
使用 createRenderPipeline({ layout: "auto" })
创建的流水线现在可以利用 Chrome 中的缓存机制。这意味着这些流水线的创建效率更高,所占用的内存也更少。请参阅问题 dawn:1933。
黎明动态
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 125
Chrome 124
Chrome 123
Chrome 122
Chrome 121
- 在 Android 上支持 WebGPU
- 在 Windows 上使用 DXC(而非 FXC)进行着色器编译
- 计算和渲染通道中的时间戳查询
- 着色器模块的默认入口点
- 支持将 display-p3 作为 GPUExternalTexture 颜色空间
- 内存堆信息
- 黎明动态
Chrome 120
Chrome 119
Chrome 118
Chrome 117
Chrome 116
- WebCodecs 集成
- GPUAdapter 返回的设备
requestDevice()
- 在调用
importExternalTexture()
时确保视频播放流畅 - 规范一致性
- 改善开发者体验
- 黎明动态