【Warframe】关于DX11与DX12的读图速度测试
aameow
2025年12月26日 00:15

前言

在阅读【WARFRAME】性能优化选项详解​这篇文章的时候注意到其中说:

渲染着色器有两种方式:

1,实时渲染(旧版本Warframe使用DX12接口时的渲染方式)

游戏游玩过程中占用一部分显卡资源来渲染着色器,着色器不保存到本地,每次玩游戏都需要重新渲染。

优点:不占用硬盘空间。不需要花时间等待游戏完整渲染所有着色器。

缺点:每次启动游戏都需要重新渲染,游戏过程中可能会因为渲染着色器而出现频繁的小卡顿。

2,着色器缓存(Warframe本次更新添加的新功能)

将着色器缓存文件保存到硬盘,不需要在游玩过程中实时渲染。

着色器缓存文件会根据游戏设备的不同而变化,因此不同设备的缓存文件不通用!

优点:显卡直接从硬盘读取着色器缓存,不需要消耗显卡性能来实时渲染。让游戏更加流畅,没有卡顿。某些定制设备(例如Steam Deck掌机)有官方在服务器渲染好的缓存文件,可以直接下载并使用。

缺点:缓存文件需要占用一定的硬盘空间。某些游戏是在游戏首次开启时渲染所有着色器,需要消耗大量的时间。(例如:我最近在玩《最后生还者重制版》,首次开启游戏需要消耗2小时渲染所有着色器缓存,渲染完成后可以获得极高的画质和流畅度。)

所以想到,如果DX12是从硬盘中读取着色器缓存,那么是否会对游戏内的读图存在影响呢?

遂花时间做了一些测试,在同一个设备上使用DX11模式与DX12模式分别从希图斯进出夜灵平野9次。(本来是10次的,但是DX11少测了一次,那就9次吧)

通过OBS录制60FPS的视频,将视频导入PR中,以加载图标隐约可见的那一帧,到加载图标消失的那一帧为加载耗时,基本确保误差在5帧之内。

结论是:DX12的读图时间基本是DX11的两倍。


对比图


测试数据