取消设置顶点缓冲区
通过将 null
(而非 GPUBuffer
)传递给 GPURenderPassEncoder
或 GPURenderBundleEncoder
上的 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);
取消设置绑定群组
通过将 null
(而非 GPUBindGroup
)传递给 GPURenderPassEncoder
或 GPURenderBundleEncoder
上的 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 着色器模块创建更新
现在,使用 createShaderModule()
创建 SPIR-V 着色器模块会抛出 TypeError,除非您运行带有“不安全 WebGPU 支持”的 Chromeflag,因为 SPIR-V 不属于 WebGPU 规范。在此次变更之前,使用 SPIR-V 会导致生成 GPUInternalError。
请参阅更改 chromium:4711911。
改善开发者体验
针对读写存储缓冲区和只写存储纹理绑定,改进了顶点着色器中绑定组布局绑定的验证错误消息。请参阅问题 dawn:1883。
使用自动生成的布局缓存流水线
使用 createRenderPipeline({ layout: "auto" })
创建的流水线现在可利用 Chrome 中的缓存机制。这意味着,这些流水线的创建效率更高,占用的内存更少。请参阅问题 dawn:1933。
Dawn 最新动态
wgpu::RequestAdapterOptionsBackendType
现在是 wgpu::RequestAdapterOptions
的一部分,可让应用在获取适配器时更轻松地请求特定后端。请参阅以下示例和issue dawn:1875。
wgpu::RequestAdapterOptions options = {
.backendType = wgpu::BackendType::D3D12};
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
我们还为 Node.js 实现了几种额外的方法。请参阅 change dawn:142465。
webgpu.h C API 已将其布尔值类型从 stdbool
更改为 WGPUBool
,它是一个 uint32_t
。此更改是为了确保 API 在 C 和 C++ 中具有等效的 ABI。
本指南仅涵盖部分重要内容。查看详尽的提交内容列表。
WebGPU 的新变化
WebGPU 新变化系列涵盖的所有内容的列表。
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 最新动态