跳到正文
PS5PCEM
部分可用图形

GPU 页跟踪器

可选启用的页跟踪器监视 16 KiB 客户机页。第一次原生 CPU 存储会触发故障,推进一代,并使 GPU 副本失效,这样未改变的页就不会每一帧都被哈希并上传。

仓库笔记截至 2026年10月10日

它针对的问题

住在客户机内存里的渲染目标或顶点缓冲区必须到达 GPU。每一帧上传整个分配是正确的,也是昂贵的。哈希整个分配来发现它没有变化,同样昂贵。页跟踪器改为把被跟踪的可写页标成只读,让 CPU 在第一次存储时发生故障。

故障处理程序记录这一页,恢复客户机真正的保护,并推进该页的代。稍后的绘制比较代。未改变的页留在设备上。代发生移动的页会被上传。PS5_GPU_PAGE_TRACKER=1 启用这套机制。除非设置了该变量或实验性组合,否则它是关闭的。

这次故障是什么

这次故障是一次失效,不是客户机的缺陷。该页只读,只是为了让主机观察到这次写入。随后客户机存储被允许在游戏所要求的保护下完成。未被跟踪的页保持普通的上传路径。

以相同地址、大小、物理偏移和 CPU 权限重建的直接内存映射会保留它们的主机视图。这种复用使代在帧与帧之间有意义。后备或权限发生变化时走正常的替换路径,跟踪器观察到新的映射。

它不做什么

跟踪器不会把游戏的内部分辨率变小,也不会编译着色器。它只去掉 CPU 没有存储过的那些页的重复传输。每一帧都改写缓冲区的游戏仍然要为那块缓冲区付费。

字体图集写入和其他 HLE 存储在修改客户机内存之前会使监视失效,因此固件写入对 GPU 不是不可见的。跟踪器属于架构概述中所描述的实验性 GPU 集合。

已经实现的部分

  • 当 PS5_GPU_PAGE_TRACKER=1 时,16 KiB 客户机页各有自己的代。
  • 第一次存储的故障会恢复客户机保护,并使常驻副本失效。
  • 复用相同的直接内存视图,使代跨帧存活。
  • HLE 自己写入被监视的页时会使它失效。

尚未实现的部分

  • 跟踪器需要显式启用。默认兼容路径并不依赖它。
  • CPU 每一帧都改写的页仍然会上传。
  • 它不覆盖压缩元数据表面内部的 GPU 到 GPU 一致性。

相关机制

这些页面说明什么

文字依据 PS5PCEM 仓库中的架构说明和 2026 年 10 月的报告。单项测试通过并不等于新的帧率,也不等于新的通关。

全部技术