Published: November 19, 2025
纹理组件混洗
现在,当着色器访问纹理的红色、绿色、蓝色和 Alpha 通道时,可以重新排列或替换这些通道中的颜色分量。
当 GPUAdapter 中提供 "texture-component-swizzle" 功能时,请求具有此功能的 GPUDevice,并通过使用新的 swizzle 选项调用 createView() 来创建 GPUTextureView。此值是一个长度为 4 的字符串,每个字符分别映射到视图的红色、绿色、蓝色和 Alpha 分量。每个字符可以是以下任一项:
"r":从纹理的红色通道获取其值。"g":从纹理的绿色通道获取其值。"b":从纹理的蓝色通道获取其值。"a":从纹理的 Alpha 通道获取其值。"0":强制将其值设为 0。"1":强制将其值设为 1。
请参阅以下代码段和 chromestatus 条目。
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("texture-component-swizzle")) {
throw new Error("Texture component swizzle support is not available");
}
// Explicitly request texture component swizzle support.
const device = await adapter.requestDevice({
requiredFeatures: ["texture-component-swizzle"],
});
// ... Assuming myTexture is a GPUTexture with a single red channel.
// Map the view's red, green, blue components to myTexture's red channel
// and force the view's alpha component to 1 so that the shader sees it as
// a grayscale image.
const view = myTexture.createView({ swizzle: "rrr1" });
// Send the appropriate commands to the GPU...
移除 bgra8unorm 只读存储纹理使用情况
如之前所宣布,现在已移除将 "bgra8unorm" 格式与只读存储纹理搭配使用的情况。WebGPU 规范明确禁止这样做,而 Chrome 之前允许这样做是一个错误,因为此格式旨在用于只写访问,并且不可移植。请参阅问题 427681156。
Dawn 更新
修复了在 Vulkan 中清除 3D 纹理时引发的验证错误。请参阅问题 443950688
这仅涵盖了一些主要亮点。如需查看提交的完整列表,请点击此处。
WebGPU 的新变化
“WebGPU 的新变化”系列中涵盖的所有内容列表。
Chrome 147-148
Chrome 146
Chrome 145
Chrome 144
- WGSL subgroup_id 扩展
- WGSL uniform_buffer_standard_layout 扩展
- Linux 上的 WebGPU
- 更快的 writeBuffer 和 writeTexture
- Dawn 更新
Chrome 143
Chrome 142
Chrome 141
Chrome 140
- 设备请求会消耗适配器
- 在纹理视图中使用纹理的简写
- WGSL textureSampleLevel 支持 1D 纹理
- 弃用 bgra8unorm 只读存储纹理使用情况
- 移除 GPUAdapter isFallbackAdapter 属性
- Dawn 更新
Chrome 139
Chrome 138
Chrome 137
- 将纹理视图用于 externalTexture 绑定
- 复制缓冲区时无需指定偏移量和大小
- WGSL workgroupUniformLoad 使用指向原子的指针
- GPUAdapterInfo powerPreference 属性
- 移除 GPURequestAdapterOptions compatibilityMode 属性
- Dawn 更新
Chrome 136
Chrome 135
- 允许使用 null 绑定组布局创建流水线布局
- 允许视口超出渲染目标边界
- 更轻松地访问 Android 上的实验性兼容模式
- 移除 maxInterStageShaderComponents 限制
- Dawn 更新
Chrome 134
Chrome 133
- 新增 unorm8x4-bgra 和 1 分量顶点格式
- 允许使用未定义的值请求未知限制
- WGSL 对齐规则变更
- 使用 discard 提升 WGSL 性能
- 将 VideoFrame displaySize 用于外部纹理
- 使用 copyExternalImageToTexture 处理具有非默认方向的图片
- 提升开发者体验
- 使用 featureLevel 启用兼容模式
- 清理实验性子群组功能
- 弃用 maxInterStageShaderComponents 限制
- Dawn 更新
Chrome 132
- 纹理视图使用情况
- 32 位浮点纹理混合
- GPUDevice adapterInfo 属性
- 使用无效格式配置画布上下文会抛出 JavaScript 错误
- 对纹理的过滤采样器限制
- 扩展子群组实验
- 提升开发者体验
- 实验性支持 16 位标准化纹理格式
- Dawn 更新
Chrome 131
- WGSL 中的剪辑距离
- GPUCanvasContext getConfiguration()
- 点和线基元不得具有深度偏差
- 子群组的包含性扫描内置函数
- 实验性支持多重间接绘制
- 着色器模块编译选项 strict math
- 移除 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
- copyExternalImageToTexture()
copyExternalImageToTexture()中支持 HTMLImageElement 和 ImageData - 实验性支持读写和只读存储纹理
- Dawn 更新
Chrome 117
Chrome 116
- WebCodecs 集成
- GPUAdapter
requestDevice()返回的丢失设备 - 如果调用
importExternalTexture(),则保持视频播放流畅 - 规范一致性
- 提升开发者体验
- Dawn 更新
Chrome 115
Chrome 114
Chrome 113
- 在
importExternalTexture()中使用 WebCodecs VideoFrame 来源