2012-05-30 8 views
6

これはFire固有のGPUの問題のようですが、何か助けや提案をいただければ幸いです。Kindle Fireのヒッチと60fpsでのテクスチャの破損

ほとんどの場合、私のタワー防衛ゲームは、数十の敵と塔をすべての方法で撮影しても60 fpsで動作することができます。しかし、一見無作為な時間に(何も起こっていなくても、メインメニューに座っているような)非常に均等に400msのヒッチが約2〜3秒の間隔でゲームを一時停止する。突然ヒッチが消え、16x16ピクセルのテクスチャブロックがランダムにレンダリングされません。

これらの2つのグリッチは相互に排他的であるように見えます。ゲームを開始し、メインメニューから最小限のリソースがロードされ、ゲームロジックがほとんど起こらないレベル選択画面にナビゲートするだけでトリガーできます。私は効果音としてOpenSLを使用していましたが、sfxを無効にするとヒッチの持続時間が280msに変更されました。

次に、60fpsから30fpsに手動でフレームレートを強制し(フレームティックループでスリープを挿入することによって)、両方のグリッチが完全に消えました。

レンダリングされていないテクスチャを示すスクリーンキャップです。このバグは、深さ/ステンシル値とカラークリアがオンかオフかに関係なく、すべての32ビットレンダリングサーフェスで発生します。

ありがとうございました!

EDIT:実際には、テクスチャフリッカーはどのフレームレートでも発生しますが、40〜45fpsの間のどこかで400msのヒッチが消えてしまいます。

level select screen

main menu

+0

他のFPS制限はどうですか?例えば45/75 –

+0

実際、テクスチャのちらつきはどのフレームレートでも発生するようですが、40〜45fpsの間のどこかで400msのヒッチが消えてしまいます...しかし、60fpsで完全に相互排他的ではありません。彼らの出入りの発生率は非常に相関しています。 – Ajas

答えて

2

[OK]を、これはKindleの火災に必ずしも固有ではない、非常に微妙なドライバのバグです。私は、誰かが将来同様の痛みを避けるのを助けることを望みます。私はすでに症状をはっきりと説明してきましたが、バグの原因ははさみ矯正を設定することから来ています。

本質的に、私たちは多くのアニメーション化されたUI要素を画面上でズームしたり外したりするので、はさみrectでかなりファンキーになります。トリガは、はさみrectを画面外に設定してから、rectの外側を水平にレンダリングするように見えます。そうすることで、GPUはちょっとねじれた状態になり、すぐには現れないように見えるが、徐々に悪化する。

さらに、Fireと共通のGPUを持つDroid RAZRのバグが修正されているようです。バグは、私たちがlogcatで見たい試合で5秒間のフリーズした:

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

は明らかにバグのこれらのタイプは、追跡し、正確な条件を特定するのは難しいですが、それは間違いなく、外部のレンダリングに関連しています画面外のはさみえりの

+0

ちょうど分かります:ヒッチ、フリージング、レンダリングの異常を解決するには、glScissor()を呼び出す前にはさみ矩形を画面にクリップすることでした。 – Ajas

関連する問題