2

Android で OpenGL テクスチャが使用するメモリを追跡するにはどうすればよいですか? テクスチャ メモリがビデオ RAM 上にあることは理解していますが、それらは RAM とスワップインされますか? glGenTextures を呼び出して glDeleteTextures を呼び出さない場合、現在のプロセスのメモリ使用量にどのような影響がありますか?

4

1 に答える 1

1

これは、デバイスに依存する場合があります。ただし、OpenGL の一部の実装では、VRAM が不足すると、空きがあれば古いテクスチャの一部をシステム メモリに転送しようとします。空きがない場合は、割り当てが解除されます。ただし、通常、デバイスには一度に 1 つの OpenGL コンテキストしか存在しないため、OpenGL メモリがアプリケーション メモリに入ることはありません。これは、システムによって処理され、アプリケーションの問題ではないことを意味します。

つまり、純粋な OpenGL では、使用したメモリ量を知ることはできません。ただし、VRAM にアップロードするテクスチャごとに、これを自分で追跡できます (アップロードするバイトがあるため)。

glDeleteTextures を呼び出さないことに関しては、それほど多くのメモリを使用しない場合は、実際には必要ありません。それ以上バッテリーや CPU や GPU の電力を消費することはありません。VRAM のビットは単に 0 ではなく 1 に設定されます。アプリケーションが一時停止または停止した後に他のアプリケーションがそのメモリを必要とする場合、それらはテクスチャを自動的に削除して上書きします。彼らのものと。

于 2010-06-20T16:23:11.580 に答える