加载游戏和观看 Flash 视频时出现大量软页面错误

Yot*_*aXP 8 memory windows-7 troubleshooting framerate

我的电脑在玩动态加载资产的游戏时出现了一个奇怪的问题。也许我找错了地方,但我似乎找不到任何有类似问题的人。

如果不清楚,我会注意一些例子。在 Source 游戏中,映射器能够通过告诉引擎隐藏对象的时间和位置来优化事物,以便在您绕过拐角或打开门之前不会将它们添加到场景中。当需要加载这些对象时,我的计算机会窒息。以传送门 2 为例。一旦某个区域的加载屏幕消失,我就会被扔进关卡。立即,我用冻结的屏幕和口吃/重复的音频打招呼,大约一秒钟。一旦通过,每个人都会以全帧速率继续所有的笨拙。然后我走到一扇门前,触发它打开。当它在另一边的房间中加载时,又是一秒钟的静止和断断续续的音频。如果你看其他人玩游戏,这永远不会发生。反正这个我能忍。它' 很烦人,但它并没有真正干扰游戏玩法。现在让我们玩一个随着你的进步不断加载的游戏,Sonic Generations。站着不动,我得到了如丝般流畅的帧率。但是一旦他开始向前跑,加载更多关卡,我就会下降到 <1 FPS,使其完全无法播放。现在越来越多的游戏似乎在这样做,这就是为什么我终于开始认真地解决它。

我非常怀疑这些停顿是否被编入游戏本身。加载屏幕设计为在加载数据时平稳运行,在任何其他机器上,它们都可以。再次以 Sonic 为例,在加载完成之前,即使是其加载屏幕上的移动部件也非常不稳定。

我大约四年前制造了这台计算机,自从我开始将它用于 3D 游戏以来就遇到了这个问题。从那以后,我更换了主板、硬盘和显卡,因为它们快坏了。(机箱风扇有一天停止工作,硬盘完全是另一回事。)

在 Intel 2.5Ghz 四核、4GB RAM 和 nVidia GTX 460 上运行带有 Aero 的 Win7 Ultimate 64 位。

非常感谢大家!

更新:很明显我收到了一堆页面错误。平均17万每秒与索尼克世代,平均70000和Portal 2负荷时,和一个非常稳定的30000一边看在Livestream.com流。根据 Resource Monitor 的说法,这些甚至不是硬故障。我有点好奇这些数字与其他人相比如何。

附录:不妨添加另一个示例,以及一个潜在的症状。首先是一款名为Trackmania的赛车游戏。在单人比赛中,没有明显的页面错误(超出其他程序可能产生的错误)并且游戏运行如丝般流畅。但是,在线玩游戏时,我会以频繁但随机的时间间隔出现大量打嗝(和页面错误尖峰)。我将继续比赛,游戏将暂停一秒钟或更长时间,然后将我的车辆倒挂在墙壁旁边的皱巴巴的质量中。隐藏其他玩家的汽车也不能解决问题。

至于潜在的症状......我避免提及它,因为我担心这可能是一个无关的问题,并且不想让故障排除者走错路。在这一点上,为什么不提呢?基本上,我的电脑在观看视频一段时间后会彻底死机。循环音频,整个屏幕(包括光标)无响应,num-lock 不会切换,只能硬关机。它可以在几分钟或几小时内触发。通常,视口越大,它发生得越快。只要硬件加速开启,全屏 Youtube 视频就是安全的。

启用硬件加速的全屏 Youtube 似乎不会产生页面错误。然而,当窗口化时它确实如此。直播总是产生页面错误,全屏与否,加速与否。尽管游戏本身会产生大量页面错误,但游戏似乎从未像这样冻结我的计算机。

(将标题从“在后台加载游戏资产时图形变得不稳定”更改为“加载游戏和观看 Flash 视频时出现大量软页面错误。)

Ben*_*rds 3

在查看了此处的信息并发现问题在于他出现了很多页面错误之后,我将在此处添加一些我要研究的更多可能性。

如果这些是软页面错误,并且您遇到了很多软页面错误,我的猜测是导致这些错误的内存访问是对纹理资源的请求。显卡具有一定量的板载内存来加速纹理获取请求,但由于某种原因,驱动程序可能没有在板载内存中缓存足够的纹理,或者没有缓存任何一个。我不太熟悉 nVidia 的显卡驱动程序设置(过去 4 年我主要运行 ATI 卡),所以我不确定驱动程序设置、超频设置甚至 BIOS 设置是否会导致这种情况一个状态。不过,我会调查一下这是否是问题的根源。

另外,作为注释,我像您一样,为 Portal 2 记录了每秒页面错误数,但几乎没有发现任何错误。当然,我的系统在 Crossfire 中使用 2 个 Radeon HD 6970,但是,您的显卡应该能够处理 Portal 2,而不会出现这样的页面错误。如果一切正常,我希望您会看到与此类似的图像: 我的计算机上 Portal 2 的页面错误数/秒

如果我们想排除显卡是罪魁祸首(或者计算机正在使用的图形硬件),我建议禁用 Aero 并看看当您在桌面闲置时会发生什么。如果页面错误的数量减少,那么我认为它与图形相关的预感可能是正确的。如果没有,那么它可能在其他地方。