gms2导出的exe运行性能限制问题
gamemaker吧
全部回复
仅看楼主
level 12
twow-X🌊 楼主
求问大佬们,gms2导出的exe性能遇到了非常奇怪的限制
具体表现为:1. 在以下3种情况可以稳定60fps运行a.ide内直接运行或debug
b.把导出的exe重命名为runner.exe或runner2.exe(有没有其他的就不知道了)
c.全屏模式
2.其余情况,(不论是vm还是yyc,installer还是zip)同一个exe性能似乎受到某种限制,尤其在绘制内容稍多的情况下会减速至30fps,然后fps不再继续下降,fps_real,textureswaps和vertex batches均正常,红条和黄条很短
3.窗口尺寸越大问题越严重。如果保持gm ide同时开启(除非最小化)问题也会加剧
4.全屏后按win切出再返回也会出现异常,窗口化后重新全屏又恢复正常
2025年03月05日 03点03分 1
吧务
level 13
咱首先怀疑和第三方冲突。
咱之前遇到过类似情况,用过的一台机器运行GMS2游戏,会很有节奏的卡顿。干脆自己做了个工程用来显示每两帧之间的时间间隔,结果就是有50-70帧稳定在15-18毫秒,然后突然有一帧卡个几百毫秒,再稳定几十帧15-18,反复循环。关掉一些程序可能让稳定的周期边长(每200帧卡一次)但没有任何方式缓解这卡顿,除非重启后立刻开始运行。甚至卡顿发生时,打开虚拟机,运行相同的工程都不卡。
建议打开任务管理器,看看运行时有没有第三方的程序占满CPU、内存之类的情况发生,以及相同工程在其他机器/虚拟机上运行是否复现这个问题。
2025年03月05日 09点03分 2
好的,谢谢吧主。我再去看看。任务管理器里各项数据都正常,只有句柄那块有明显的差异。异常的情况有一个dwmdxbltevent,查不到这是什么,好像和dxgi的什么交换链有关。我在别的电脑再试试吧。
2025年03月06日 11点03分
level 12
twow-X🌊 楼主
勉强解决了:
1.让exe文件名与game options里的executable name一致
2.运行游戏,使用XboxGameBar,在设置里勾选“记住这是一个游戏”。关闭游戏后,注册表HKEY_CURRENT_USER\System\GameConfigStore\Children里会自动加入新的子项
3.修改该子项的revision键值,数值不一定,跟别的游戏一样就行了。
p.s.改文件名后配置依旧无法读取
这似乎不限于gm的游戏,甚至不限于游戏...
原因不明,表现为按文件名读取注册表中的配置,名字匹配的,dwm dx交换链就用flip模式;否则默认用老式的blt模式,blt性能差很多
同时,不能禁用全屏优化,只能开启
2025年03月25日 17点03分 4
想了想,这个答案是自己摸索的,加精分类选“经典问答”不太合适,还是放到“研究成果”里吧。
2025年03月26日 01点03分
说起来,这个层面的内容,感觉还是有些环境设置(或者是第三方“优化”工具)导致的。不太确定下一个遇到相同表象的玩家搜索到这篇帖子后能不能照同样方法解决,但至少多了一个排查方向。
2025年03月26日 01点03分
1