【发布时间】:2020-04-06 18:27:26
【问题描述】:
我是一名数学家,而不是程序员,我对编程的基础知识有一定的了解,并且是 linux 和 windows 的高级用户。 我知道一些 C 和一些 python,但没什么。
我想制作一个叠加层,以便在我开始游戏时它可以获取有关 amd 和 nvidia GPU 的信息,例如帧时间和 FPS,因为我很确定当前用于比较两个 GPU 的系统基准测试存在缺陷,因为小实例以及瞬间提高 FPS 的场景(但与用户体验完全无关)会导致更高的平均 FPS 数并有意或无意误导市场(例如,我不记得游戏名称可能是 COD地图上高度镶嵌的实体,玩家甚至看不到,这导致 AMD GPU 在该区域漫游时似乎表现不佳,导致平均 FPS 计数降低)
我对如何在理论上计算 GPU 性能有一个想法,但我不知道如何从 GPU 中获取数据,您能否向我介绍 api 手册或参考资料以帮助我实现这样的叠加?
我想尽可能少地学习(我的意思是我想学习为了完成工作而必须学习的东西,我不打算成为一名编码员)。
我提前谢谢你。
【问题讨论】:
-
与stackoverflow.com/questions/60661215/… 类似的问题。你可能想分叉一些类似OCAT 的东西,并在其中做你的事情。
-
这很有用,我没有想到覆盖应该首先确定游戏使用的 API 我想收集我需要的数据但它不是同一个问题我想知道如何获得 FPS , 和帧时间信息(我想仅帧时间信息就足够了,但由于我们正在处理高时间分辨率,也许 FPS 也很方便)。
-
嗯,不,问题略有不同,但根本问题是相同的:您想拦截任意应用程序的演示调用并进行覆盖。我链接的工具同时支持 DirectX 和 Vulkan,因此希望它们在很大程度上为您处理差异。当您拦截礼物时,这意味着您有帧时间。如果你有帧时间,你可以将它们聚合成 FPS(如果你的意思是每秒,而不仅仅是倒置的帧时间),或者你希望的任何其他方式。
-
减去你想要的覆盖,你可能还想要PresentMon,它可以将当前时间输出到CSV(以及其他有趣的信息)。 PS:我可能误解了您所说的“叠加”的含义(通过叠加,我理解的是覆盖原始内容的东西,例如 Steam 叠加),所以这个工具可能是您想要的。要我回答这个问题吗?
-
@papajo:“瞬间提升 FPS(但与用户体验完全无关)的小实例和场景会导致更高的平均 FPS 数”平均工作。那么,你有统计问题吗?这与用户体验的相关程度取决于个人。就我个人而言,我更喜欢帧率中的一致性;我宁愿拥有稳定的 30fps 而不是 60fps,但主要是每秒或每秒 20fps。
标签: directx nvidia amd frame-rate vulkan