Blinue / Magpie

An all-purpose window upscaler for Windows 10/11.
GNU General Public License v3.0
9.66k stars 496 forks source link

0.11删除了帧生成时间监控?后续是否会恢复? #939

Closed Alex76251 closed 5 months ago

Alex76251 commented 5 months ago

Question 问题

重复帧检测的活跃,让传统的(计算一段时间内帧数平均值)的帧数显示不再能直观的体现流畅度。

在静态,动态快速反复切换的VN里面,帧数显示只是在波浪般飘动。难以得知动态部分的帧数是否达到了设置的帧数上限。

之前“游戏内叠加层”里面的帧生成时间监控窗可以很好的分辨不同工作状态的帧数,但是0.11版本删除了这个窗口。

我长期在笔记本和win掌机等用电池的设备上使用magpie放大VN,重复帧检测和CuNNy的加入真是惊喜。但是帧生成时间监控的消失让针对vn调整电源变难了。

Logs files (optional) 日志文件(可选)

No response

Blinue commented 5 months ago

v0.10 的帧时间是根据帧率的倒数计算出来的,参考价值不大,如果想监控电源最好使用 RTSS 等第三方软件。

帧数统计被删除有两个原因,一是它会增加渲染游戏内叠加层的开销,即使帧率为 0,它也需要更新,二是由于实现了重复帧检测,帧率的参考价值大大降低了,帧时间是不准确的。

Alex76251 commented 5 months ago

感谢! 用rtss确实可以看见静态和动态部分帧数的“方波”,也许只有1%high之类的帧数统计可以直观显示动态部分帧数。

btw,刚才测试时发现。有“眨眼动画”的galgame,目前的重复帧检测会把眨眼动画“跳过”,或者只抽取了其中2-3帧。

Blinue commented 5 months ago

btw,刚才测试时发现。有“眨眼动画”的galgame,目前的重复帧检测会把眨眼动画“跳过”,或者只抽取了其中2-3帧。

可能是因为 #899

Alex76251 commented 5 months ago

我观察到了原因。

很多galgame喜欢在文本框角落上加入一个循环播放的logo/转圈。 magpie成功识别了这个小动画,将帧数降低到与这种小动画一致的4fps,可以完美的处理它。

而眨眼动画每3秒才播放0.5秒,magpie因此忽略了眨眼,继续保持在4fps,所以转圈小动画依旧完美,眨眼却只有2帧。

而 #899 提到的翻页卡顿,在我测试的这个游戏里,翻页时旋转的小图标会消失,但是 伴随翻页出现的,立绘移动和眨眼,会出现卡顿

可能是当多个不同帧率的动画出现,magpie会手忙脚乱。

我对加入最低帧限制能解决这个问题持怀疑态度。

Alex76251 commented 5 months ago

一个令人不安的事实:

我打开开发者模式,关闭了重复帧检测

VN运行在60帧,将magpie限制在60帧,仍有50%的眨眼只有2帧,30%只有3-4帧 切换到120帧也一样

但是,当我把magpie限制在40帧,所有眨眼动画都正常播放了😱😱😱

我想问题应该出在这些VN本身,这些VN在播放眨眼等动画的时候,帧生成时间完全就是大裂谷,比如我测试的这个vn,眨眼动画时跳到40帧25ms,另外一些动画似乎是50帧20ms。 vn制作者本身就没有让动画帧数同步的意识😰😰,这是VN本身的问题,magpie只是让这个问题更明显了。

我不看好用限制帧数解决这些VN,恐怕得找到这些动画的最小公倍数?

Blinue commented 5 months ago

谢谢测试。如果你确认是 Magpie 的问题导致丢帧,请新建 issue 讨论。