gpt4 book ai didi

android - 60 fps 时的 Kindle Fire 故障和纹理损坏

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:04 24 4
gpt4 key购买 nike

这似乎是一个特定于 Fire 的 GPU 问题,我将不胜感激任何帮助或建议。

在大多数情况下,我的塔防游戏能够以每秒 60 帧的速度运行,即使有数十个敌人和塔向各个方向射击。然而,在看似随机的时间(即使什么都没有发生——比如坐在主菜单上)非常均匀间隔的 400 毫秒停顿以大约 2-3 秒的间隔暂停游戏。然后突然间,故障会消失,16x16 像素的纹理 block 将随机不渲染。

这 2 个故障似乎是相互排斥的,就像我说的那样,可以通过启动游戏并从主菜单导航到关卡选择屏幕来简单地触发,在该屏幕上加载的资源最少,并且发生的游戏逻辑很少。我将 OpenSL 用于音效,并且我注意到禁用 sfx 会将停顿持续时间更改为 280 毫秒。

然后我手动将帧速率从 60 fps 强制为 30 fps(通过在帧滴答循环中插休眠眠),两个故障都完全消失了。

这是演示纹理未渲染的屏幕截图。此错误发生在所有 32 位渲染表面中,无论深度/模板值如何以及颜色清除是打开还是关闭。

谢谢!

编辑:实际上,显然纹理闪烁发生在任何帧速率下,但是,在 40 到 45 fps 之间的某个地方,400 毫秒的故障消失了。

level select screen

main menu

最佳答案

好的,这是一个非常微妙的驱动程序错误,不一定特定于 Kindle Fire。我希望将来能帮助别人避免类似的痛苦。我已经清楚地概述了症状,但错误的来源来自设置剪刀矩形。

本质上,我们有很多动画 UI 元素可以缩放屏幕,所以我们对剪刀矩形非常时髦。触发器似乎是在屏幕外设置剪刀矩形,然后在矩形外水平渲染。这样做会使 GPU 处于某种微妙的搞砸状态,这种状态似乎不会立即显现,但会逐渐变得更糟。

此外,这似乎修复了我们在 Droid RAZR 上遇到的一个错误,它具有与 Fire 相同的 GPU。该错误是我们在 logcat 中看到的游戏中的 5 秒卡住:

W/SharedBufferStack(14208): waitForCondition(LockCondition) timed out (identity=173, status=0). CPU may be pegged. trying again.

显然,这些类型的错误很难追踪和查明确切的条件,但它肯定与屏幕外剪刀矩形之外的渲染有关。

关于android - 60 fps 时的 Kindle Fire 故障和纹理损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10808860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com