微软发DirectStorage 1.3 增强调度降低开销提高加载性能
微软现已正式发布了DirectStorage 1.3,加入了新API和其他更新。
微软于2021年3月正式推出了DirectStorage API,这个功能可以让电脑的的NVMe SSD绕过CPU和内存,直接向显存传输数据,可大幅降低游戏加载的时间,理论上采用了该技术的游戏可以做到场景的无缝接合。2022年10月微软推出了DirectStorage 1.1,引入“asset decompression”功能,支持GPU解压资源。到来2023年4月,微软带来了DirectStorage 1.2,添加了一个新的API查询运行时选择的路径,并修复了一些bug及优化了性能表现。
微软现已正式发布了DirectStorage 1.3,加入了名为“EnqueueRequests”的新API,同时继续修复了部分bug。EnqueueRequests为开发人员提供了更大的灵活性,可以控制数据请求的发出方式以及与图形工作同步的方式。其允许开发人员在单个调用中批处理多个请求,并使用D3D12围栏同步,以更好地协调DirectStorage与D3D12渲染管道。比如可以确保纹理加载请求和UpdateTileMappings按照正确的顺序发生,从而避免GPU过早开始启动。
DirectStorage 1.3还引入了DSTORAGE_DESTINATION_MULTIPLE_SUBRESOURCES_RANGE,这是一种新的目标类型,允许将一系列连续的子资源复制到D3D12资源中。这在写入纹理中的单个或目标MIPS范围时特别有用,允许开发人员编写根据需要开始和结束的子资源。这一变化与新的EnqueueRequests API相结合,最终降低了CPU开销并提高了资产加载性能。