WebGPU 的新变化 (Chrome 113)

François Beaufort
François Beaufort

经过多年的开发,Chrome 团队宣布,WebGPU 的第一个版本现已默认在 ChromeOS、macOS 和 Windows 上的 Chrome 中提供。如需了解详情,请参阅 Chrome 推出 WebGPU

我们还开始在 MDN 上添加 WebGPU 的全面文档

还有更多内容。

importExternalTexture() 中使用 WebCodecs VideoFrame 来源

WebGPU 公开了一个 API,用于通过 importExternalTexture()HTMLVideoElement 创建不透明的“外部纹理”对象。您可以使用这些对象高效地对视频帧进行采样,可能以零复制方式直接从来源 YUV 数据进行采样。

不过,初始 WebGPU 规范不允许从 WebCodecs VideoFrame 对象创建 GPUExternalTexture 对象。对于已使用 WebCodecs 且想要在视频处理流水线中集成 WebGPU 的高级视频处理应用,此功能非常重要。目前,gpuweb/gpuweb#1380 问题中正在进行讨论。

启用该功能

默认情况下,此 功能 在 Chrome 中处于停用状态,但您可以在 Chrome 113 中通过明确启用该功能来试用。您可以通过在 chrome://flags/#enable-webgpu-developer-features 中启用“WebGPU 开发者功能”标志,在本地激活该功能。

如需为应用的所有访问者启用此功能,目前正在进行源试用,该试用将于 Chrome 118(2023 年 12 月 8 日)结束。如需参与源试用,请注册并在 HTML 或 HTTP 标头中添加包含源试用令牌的元元素。如需了解详情,请参阅源试用入门博文。

示例代码

// Access the GPU device.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

// Create VideoFrame from HTMLVideoElement.
const video = document.querySelector("video");
const videoFrame = new VideoFrame(video);

const texture = device.importExternalTexture({ source: videoFrame });
// TODO: Use texture in bind group creation.

如需试用,请查看使用 WebCodecs 进行视频上传的实验性示例。

WebGPU 的新变化

WebGPU 的新变化”系列中涵盖的所有内容的列表。

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