发布时间:2025 年 6 月 17 日
用于将缓冲区用作绑定资源的简写
开发者现在可以直接将 GPUBuffer 用作 GPUBindingResource,以便公开给着色器进行绑定。这使得它与其他绑定类型保持一致,并且当大小和偏移量都使用默认值时,其使用方式比 GPUBufferBinding 更简单。请参阅问题 419223794。
const bindGroup = myDevice.createBindGroup({
layout: myPipeline.getBindGroupLayout(0),
entries: [
{ binding: 0, resource: mySampler },
{ binding: 1, resource: myTextureView },
{ binding: 2, resource: myExternalTexture },
{ binding: 3, resource: myBuffer }, // Same as { buffer: myBuffer }
{ binding: 4, resource: { buffer: myOtherBuffer, offset: 42 },
],
});
创建时映射的缓冲区大小要求变更
现在,如果 size
不是 4 的倍数,则在创建将 mappedAtCreation
设置为 true 的缓冲区时会抛出 RangeError。以前,此限制仅通过 GPUValidationError 强制执行。请参阅问题 405883445。
myDevice.createBuffer({
mappedAtCreation: true,
size: 42,
usage: GPUBufferUsage.STORAGE,
});
// Throws RangeError
近期 GPU 的架构报告
Nvidia 和 AMD 的最新 GPU 现在在 GPUAdapterInfo 中将其架构分别报告为 "blackwell"
和 "rdna4"
,此外还在 GPU 架构列表中添加了一些其他细节。请参阅问题 417202748。
废弃 GPUAdapter isFallbackAdapter 属性
GPUAdapter isFallbackAdapter
属性已废弃。它已被 Chrome 136 中引入的 GPUAdapterInfo isFallbackAdapter
属性取代。请参阅弃用 intent。
Dawn 更新
Dawn GLFW 支持 CMake build 中的 Emscripten,让开发者在使用 Emdawnwebgpu 时能够进一步简化 WebGPU 跨平台应用代码。Emdawnwebgpu 会通过浏览器 API 实现最新的标准化 webgpu.h。请参阅更改 dawn:242894。
如需查看完整指南,请参阅更新后的使用 WebGPU 构建应用文档。
软件包版本中现在包含“远程”Emdawnwebgpu 端口。Emscripten 4.0.10 及更高版本包含此端口的快照,现在支持外部托管的端口。现在,只需将标志从 emcc -sUSE_WEBGPU
更改为 emcc --use-port=emdawnwebgpu
,即可切换到 Emdawnwebgpu。请参阅 Emscripten PR #24303、#24220 和 Dawn CL 243214。
这仅涵盖了一些主要亮点。查看详尽的提交内容列表。
WebGPU 中的新变化
WebGPU 新变化系列中涵盖的所有内容的列表。
Chrome 138
Chrome 137
- 使用纹理视图进行 externalTexture 绑定
- 在不指定偏移量和大小的情况下复制缓冲区
- WGSL workgroupUniformLoad 使用指向原子的指针
- GPUAdapterInfo powerPreference 属性
- 移除了 GPURequestAdapterOptions compatibilityMode 属性
- Dawn 更新
Chrome 136
Chrome 135
- 允许使用 null bind 组布局创建流水线布局
- 允许视口超出渲染目标边界
- 更轻松地在 Android 上访问实验性兼容性模式
- 移除了 maxInterStageShaderComponents 限制
- Dawn 更新
Chrome 134
Chrome 133
- 额外的 unorm8x4-bgra 和 1 个组成部分的顶点格式
- 允许使用未定义的值请求未知限制
- WGSL 对齐规则变更
- 使用舍弃功能提升 WGSL 性能
- 为外部纹理使用 VideoFrame displaySize
- 使用 copyExternalImageToTexture 处理非默认方向的图片
- 改进开发者体验
- 使用 featureLevel 启用兼容模式
- 清理实验性子群组功能
- 废弃了 maxInterStageShaderComponents 限制
- Dawn 更新
Chrome 132
- TextureView 用法
- 32 位浮点纹理混合
- GPUDevice adapterInfo 属性
- 使用无效格式配置画布上下文会抛出 JavaScript 错误
- 过滤纹理上的采样器限制
- 扩展了小组实验
- 改进开发者体验
- 对 16 位归一化纹理格式的实验性支持
- Dawn 更新
Chrome 131
- 在 WGSL 中剪裁距离
- GPUCanvasContext getConfiguration()
- 点和线基元不得有深度偏差
- 针对子群组的包含性扫描内置函数
- 对多绘制间接的实验性支持
- 着色器模块编译选项“严格数学”
- 移除了 GPUAdapter requestAdapterInfo()
- Dawn 更新
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 更新