DirectStorage 1.4 并不会让你的固态硬盘解压游戏:Zstd 和 GPU 解压实际上做了什么

DirectStorage 1.4 新增了 Zstandard 压缩、GPU 解压缩和一个新的游戏资产调理库,但 SSD 本身仍然只是加载管线中的一部分。本指南解释了 SSD、DirectStorage、CPU、GPU 和游戏引擎各自实际负责什么。
已发布:
Aleksandar Stajic
Updated: 2026年9月26日 09:04
DirectStorage 1.4 并不会让你的固态硬盘解压游戏:Zstd 和 GPU 解压实际上做了什么

DirectStorage 1.4 为游戏资源添加了 Zstandard 压缩和 GPU 解压缩支持,但这并不意味着你的 SSD 会突然自行解压纹理和模型。存储驱动器负责移动压缩数据。CPU 或 GPU 仍然执行解压缩工作。

理解资源路径的最简单方法

当游戏加载压缩资源时会发生什么

1
1. 游戏资源以压缩形式存储
纹理、几何体或其他数据以压缩形式打包在 SSD 上。
2
2. SSD 读取压缩字节
NVMe 驱动器将这些字节从存储快速移动到系统的 I/O 路径中。
3
3. DirectStorage 调度请求
DirectStorage 协调高吞吐量读取以及结果数据应去往何处。
4
4. CPU 或 GPU 解压缩
压缩流被展开为游戏所需的形式。
5
5. 资源变得可用
解压后的纹理、缓冲区或其他资源随后可以被渲染器或游戏系统使用。

为什么要压缩游戏资源?

现代游戏包含大量的纹理、几何体、音频和其他数据。

如果每个资源都不压缩存储,会增加安装大小,并迫使存储设备为相同内容读取更多字节。

压缩减少了必须存储和传输的数据量。代价是数据在游戏使用之前必须被解压缩。

DirectStorage 移动了瓶颈问题,而不是消除它

快速的 NVMe 驱动器可以比旧存储管道更快地传输压缩数据,但更快的读取只有在路径的其余部分能够跟上时才有帮助。

如果 CPU 必须在运行游戏逻辑、物理和绘制提交的同时解压数千个小资源块,解压缩本身可能会变得昂贵。

这就是为什么 DirectStorage 支持 GPU 解压缩:部分工作可以从 CPU 转移到大规模并行的 GPU 计算上。

DirectStorage 1.4 添加了什么

DirectStorage 1.4 添加了 Zstandard(通常写作 Zstd)作为支持的压缩格式。

微软选择 Zstd 是因为它结合了强大的压缩比、良好的解压性能、广泛的软件和硬件可用性以及广泛的采用。

重要的变化是,Zstd 被集成到 DirectStorage 的解压缩框架中,同时支持 CPU 和 GPU 路径。

CPU 与 GPU 解压缩

CPU 解压缩GPU 解压缩
运行位置
潜在优势
主要成本
最佳选择

GPU 解压缩仍然消耗 GPU 资源

GPU 解压缩并非没有代价。

DirectStorage 使用 VRAM 中的暂存缓冲区来协调压缩输入和解压缩输出。微软警告说,过大的暂存缓冲区会从渲染中占用内存,而过小则会降低吞吐量,因为请求必须等待。

因此,GPU 解压缩带来了另一个平衡问题:减少 CPU 工作,同时不占用过多 GPU 内存或从渲染中夺取计算资源。

为什么 Zstd 比旧的 DirectStorage 压缩更重要

DirectStorage 已经支持 GDeflate,这是一种为并行 GPU 解压缩设计的压缩格式。

Zstd 增加了一个不同的选项:一种广泛使用的开放压缩标准,具有强大的压缩率和丰富的工具支持。

微软还发布了一个开源的 GPU Zstd 解压缩计算着色器,作为 GPU 供应商可以进一步优化的基线。

初始着色器针对 256 KB 或更小的块进行了优化,这符合常见的面向流式传输的游戏打包模式。

资产流式传输成本三角

压缩改变三种不同的成本

压缩可以减少什么压缩可以增加什么
安装大小
存储 I/O
运行时 CPU/GPU 工作

游戏资产调理库的作用

微软在 DirectStorage 1.4 中引入了游戏资产调理库,即 GACL。

GACL 并不取代 Zstd。它准备某些游戏资产,以便 Zstd 可以更有效地压缩它们。

纹理数据是一个主要目标,因为纹理通常占现代游戏包大小的很大一部分。

用通俗英语解释“条件化”是什么意思

条件化是指在压缩之前重新排列或轻微修改数据,以便压缩器能够找到更多有用的模式。

对于块压缩纹理,GACL 可以在 Zstd 压缩之前重新排列字节布局。DirectStorage 在解压后逆转该变换。

GACL 还包含熵减技术,可以有意简化某些纹理信息,使其更易于压缩。

机器学习在 GACL 中的切入点

微软的组件级熵减(Component-Level Entropy Reduction,简称 CLER)使用机器学习作为减少纹理熵过程的一部分。

其目的不是在运行时生成纹理。机器学习工作是准备纹理数据的一部分,以便最终的压缩表示可以变得更小,同时保持可接受的视觉质量。

这使得 GACL 成为内容管线的优化,而不是游戏内的生成式 AI 系统。

压缩率提升高达 50% 并不意味着每款游戏都缩小 50%

微软表示,对于合适的资产,GACL 可以将 Zstd 压缩率提升高达 50%。

这并不等同于说整个游戏安装包缩小 50%。

实际影响取决于哪些资产被条件化、它们的可压缩程度、它们占游戏的比例,以及有损技术是否可接受。

压缩声明测试

如何正确解读游戏压缩声明

1
1. 询问压缩的是什么
仅纹理、所有资产,还是完整安装包?
2
2. 询问比较基准是什么
未压缩数据、GDeflate、旧的 Zstd 设置,还是其他打包格式?
3
3. 检查该技术是否无损
更小的结果可能包含可控的质量损失。
4
4. 将文件大小与加载性能分开
更好的压缩减少读取的字节数,但解压仍然需要时间。
5
5. 检查 CPU/GPU 路径
相同的压缩数据根据解压执行位置的不同,表现可能不同。
6
6. 测量完整管线
存储吞吐量、解压时间、暂存内存使用和最终资产就绪状态都很重要。

为什么在游戏中替换 DirectStorage DLL 并不能启用 Zstd

这是一个特别重要的误解。

微软在 DirectStorage 1.4 发布后明确回答了这个问题:在现有游戏中替换 DirectStorage DLL 文件并不会激活新的预览功能。

游戏的资源必须在构建过程中使用 Zstd 进行创作和压缩,可选的 GACL 条件处理必须在发布前完成,而游戏本身必须调用相关的 DirectStorage API。

为什么更快的 SSD 不能消除解压成本

极快的 SSD 可以减少读取压缩字节所需的时间,但它不能消除将这些字节转换为可用资源所需的时间。

随着存储变得更快,解压、资源准备、GPU 上传和引擎侧处理的相对重要性变得更大。

这正是 DirectStorage 超越原始 I/O 的原因。

加载时管线测试

如何诊断存储是否真的是瓶颈

1
1. 测量存储读取时间
传输压缩资源字节需要多长时间?
2
2. 测量解压
扩展数据花费了多少 CPU 或 GPU 时间?
3
3. 测量排队和暂存
请求是否因为暂存缓冲区或 GPU 队列饱和而等待?
4
4. 测量上传和资源创建
解压后的数据成为可用的 GPU 资源需要多长时间?
5
5. 测量引擎侧工作
着色器、对象创建、世界设置和资源注册可能仍然主导加载。
6
6. 修复最慢的阶段
更快的 SSD 只有在存储 I/O 实际上是限制部分时才有帮助。

为什么这对开放世界流式传输很重要

开放世界游戏在玩家穿越地图时不断移动资源数据。

这意味着资源流式传输不仅仅是减少加载屏幕。管线必须在游戏玩法继续的同时传输、解压和准备数据。

具有强压缩比的编解码器可以减少从存储中提取的字节数,而快速的 GPU 解压可以帮助保持 CPU 时间可用于模拟。

但如果 GPU 本身已经饱和,将解压工作移到那里可能需要仔细调度。

DirectStorage 1.4 还提高了 GPU 调度可见性

DirectStorage 1.4 为其管理的内部命令队列添加了 D3D12 CreatorID 支持。

目的是帮助 DirectStorage 工作负载更可预测地参与 D3D12 队列分组和 GPU 执行调度。

这很重要,因为解压现在与渲染和其他计算工作竞争同一个 GPU 生态系统。

GPU 供应商接下来在做什么

微软表示,AMD、英特尔、英伟达和高通正在开发针对特定硬件和驱动程序的 Zstd 优化。

AMD 和英伟达公开表示,优化支持的目标时间为 2026 年下半年,而英特尔和高通也描述了正在进行的平台工作。

这意味着公开的 DirectStorage GPU 着色器只是一个基线,不一定是未来硬件的最终性能路径。

什么会改变这个答案?

DirectStorage 1.4 仍处于公开预览阶段。最终的 API、Zstd 着色器性能、GACL 支持以及厂商优化的驱动程序路径都可能发生变化。

如果未来的存储设备增加了集成到 PC 资产管线中的标准化硬件解压缩,那么“SSD 读取”和“CPU/GPU 解压缩”之间的清晰分离可能变得不那么绝对。但这并不是当今 DirectStorage 1.4 的常规模式。

局限性

本文解释了微软当前公开的 DirectStorage 1.4 预览架构。它并不声称每个使用 DirectStorage 的游戏都会使用 Zstd、GPU 解压缩或 GACL。

微软关于压缩比和性能的声明是平台供应商的技术声明。实际游戏结果取决于资产组合、压缩设置、硬件、驱动程序和引擎集成。

结论

一旦将各项任务分开,DirectStorage 1.4 就更容易理解了。

SSD 移动压缩字节。DirectStorage 调度传输。Zstd 定义数据如何压缩。CPU 或 GPU 对其进行解压缩。GACL 可以预处理某些资产,使 Zstd 更有效地压缩它们。然后游戏引擎使用处理完成的资产。

更快的 SSD 只是该链条中的一部分。

常见问题

通俗解读 DirectStorage 1.4 与 Zstd

DirectStorage 会让 SSD 解压缩游戏资产吗?

不会。SSD 读取压缩数据。DirectStorage 协调 I/O,而 CPU 或 GPU 执行解压缩。

DirectStorage 1.4 有什么新功能?

公开预览版增加了 Zstandard 压缩、CPU/GPU 解压缩支持、游戏资产调理库集成以及改进的 D3D12 队列标识。

我可以替换游戏的 DirectStorage DLL 来启用 Zstd 吗?

不可以。微软表示,资产必须使用 Zstd/GACL 构建,并且游戏必须显式使用新的 API。

GPU 解压缩是免费的吗?

不是。它会使用 GPU 计算、带宽和暂存缓冲区,尽管它可以减少 CPU 负载。

GACL 做什么?

它调理游戏资产,尤其是纹理,以便 Zstd 可以更有效地压缩它们。有些方法是无损的,有些是有损的。

压缩率提升高达 50% 是否意味着游戏体积缩小 50%?

不是。该数字适用于经过调理的合适资产,并不自动适用于整个游戏安装。

术语表

DirectStorage 1.4 关键术语

DirectStorage
微软 DirectX 系列 API,用于在 Windows 上实现高吞吐量的游戏资产 I/O 和解压缩。
Zstandard (Zstd)
一种开放压缩格式,已添加到 DirectStorage 1.4 中用于游戏资产。
GPU 解压缩
使用 GPU 计算来展开压缩数据,而不是在 CPU 上完成所有解压缩。
暂存缓冲区
DirectStorage 用于协调压缩和解压缩数据流的临时 GPU 内存。
GACL
微软的游戏资产调理库,用于预处理资产以提高压缩效率。
资产流式传输成本三角
Figure Rocks 模型,将存储大小、I/O 流量和运行时解压缩成本分开。
压缩声明测试
Figure Rocks 检查清单,通过检查资产范围、基线、质量损失和运行时成本来解读压缩声明。

主要来源

Microsoft DirectX — DirectStorage 1.4 新增 Zstandard 支持

2026 年 3 月官方公告,涵盖 Zstd、CPU/GPU 解压缩、GACL、GPU 厂商优化计划以及 DirectStorage 1.4 预览版。

Microsoft DirectX — DirectStorage SDK 与 API

官方发布页面,列出 DirectStorage 1.4 预览版功能及包状态。

Microsoft — DirectStorage GitHub

官方仓库,包含示例、GPU 解压缩基准测试以及 DirectStorage 实现指南。

Microsoft — DirectStorage 开发者指南

官方指南,解释压缩数据流、GPU 解压缩、暂存缓冲区以及内存权衡。

Microsoft — 游戏资产调理库

官方文档,涵盖纹理调理、Zstd、混洗变换以及熵减技术。

Related Articles

存储与流式传输:减少加载时间,避免卡顿

快速存储仅在流式行为稳定时才有帮助。本指南将解释输入/输出如何影响卡顿,以及应优先调整哪些设置。

RTX神经纹理压缩并非超分辨率技术:AI如何以GPU计算换取纹理内存

RTX神经纹理压缩并非超分辨率技术:AI如何以GPU计算换取纹理内存

NVIDIA RTX 神经纹理压缩改变了游戏材质的存储方式。材质不再仅以传统纹素的形式保存每个纹理通道,而是可以压缩为紧凑的潜在数据和一个小型神经解码器,然后在需要时由 GPU 重建。

存储流媒体卡顿修复:当资产加载跟不上时

流媒体卡顿发生在新区块加载时:存储、解压或资源流限制。在降低所有图形设置前,请按此顺序尝试修复。

存储与流媒体卡顿:当SSD、解压缩与显存成为关键

流媒体卡顿是资产加载问题:涉及存储速度、解压缩及内存行为。利用此排查方法,在进入新区域时避免性能峰值。

显存使用量不等于显存需求量:为什么显存占用满并不代表全部真相

显存使用量不等于显存需求量:为什么显存占用满并不代表全部真相

在8 GB显卡上看到7.8 GB已使用,可能看起来像是游戏显存耗尽的证据。事情并没有那么简单。本指南将解释VRAM容量、驻留预算、工作集、共享内存,以及如何判断内存压力是否真的导致了卡顿。

降低了图形设置但帧率没有提升?你很可能调错了瓶颈。

降低了图形设置但帧率没有提升?你很可能调错了瓶颈。

你降低了阴影、特效和分辨率,但帧率几乎没有变化。本指南解释了为什么图形设置只有在减轻真正限制帧率的工作负载时才有帮助——以及如何识别 CPU、GPU、内存、流式加载和帧率上限瓶颈。