WebGPU 的新变化 (Chrome 117)

François Beaufort
François Beaufort

取消设置顶点缓冲区

null 而不是 GPUBuffer 传递给 setVertexBuffer(),可让您取消设置给定槽中之前设置的顶点缓冲区。GPURenderPassEncoderGPURenderBundleEncoder请参阅问题 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 传递给 setBindGroup(),可让您取消设置给定槽中之前设置的绑定组。GPURenderPassEncoderGPURenderBundleEncoder请参阅问题 dawn:1675

// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);

// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);

在设备丢失时,禁止显示异步流水线创建过程中的错误

createComputePipelineAsync()createRenderPipelineAsync() 方法会返回一个 promise,该 promise 会在流水线创建完成后解析。GPUDevice从现在开始,当 GPUDevice 丢失时,系统将禁止显示异步流水线创建过程中的错误,以使丢失的设备尽可能正常运行。lost请参阅 dawn 问题: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

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 149-150

Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113