这似乎是 Fire 特定的 GPU 问题,如果有任何帮助或建议,我将不胜感激。
在大多数情况下,我的塔防游戏能够以 60 fps 的速度运行,即使有几十个敌人和塔都向各个方向射击。然而,在看似随机的时间(即使没有发生任何事情——比如坐在主菜单上),间隔非常均匀的 400 毫秒连接会以大约 2-3 秒的间隔暂停游戏。然后突然间,障碍物将消失,16x16 像素的纹理块将随机不渲染。
这两个故障似乎是相互排斥的,就像我说的那样,可以通过启动游戏并从主菜单导航到关卡选择屏幕来触发,其中加载的资源最少,游戏逻辑也很少发生。我使用 OpenSL 来制作音效,我注意到禁用 sfx 会将挂接持续时间更改为 280 毫秒。
然后我手动将帧速率从 60 fps 强制到 30 fps(通过在帧滴答循环中插入睡眠),两个故障都完全消失了。
这是一个演示纹理未渲染的屏幕截图。此错误发生在所有 32 位渲染表面中,无论深度/模板值如何,以及颜色清除是打开还是关闭。
谢谢!
编辑:实际上,显然纹理闪烁发生在任何帧速率下,但是,在 40 到 45 fps 之间的某个地方,400 毫秒的障碍消失了。