ディスプレイリストのデータをビデオカードのメモリに保存することはできますか?DisplayListを保存するためにVideoBufferObject(VBO)のようなビデオメモリのみを使用したい。しかし、私が試してみると、ビデオメモリではなくメインメモリを常に使用しています。nVidiageForce8600GTSとGTX260でテストしました。
2 に答える
表示リストは、OpenGL-1.0 にさかのぼる非常に古い機能です。それらはずっと前に廃止されました。とにかく、互換性の理由から引き続き使用できます。
OpenGL の仕組みにより、ディスプレイ リストが GPU メモリのみに保持されることが防止されます。グラフィックサーバー(OpenGL が呼ぶもの) は純粋に抽象的なものであり、仕様では、表示リストに入れられたものは常に利用可能であることが保証されています。ただし、最新の GPU では、限られた量のメモリしかないため、必要に応じてペイロード データをスワップ インおよびスワップ アウトできます。
事実上、GPU メモリはシステム RAM 内のデータのキャッシュです (システム RAM をストレージのキャッシュとして処理するのと同じように)。
さらに、最近の GPU はクラッシュする可能性があり、ドライバーは完全なリセットを実行して、すべてが正常に機能しているという印象をユーザーに与えます。ただし、リセット後、GPU メモリ上のすべてのデータを再初期化する必要があります。
そのため、スムーズな操作をサポートするには、OpenGL がすべてのペイロード データのコピーをメモリに保持する必要があります。
したがって、データがシステム RAM も消費していると表示されるのはまったく正常なことです。ただし、表示リストもGPU メモリにキャッシュされている可能性が非常に高いです。
表示リストは非推奨です。VBO と頂点インデックスを使用してグラフィックス メモリを使用し、 で描画することができますglDrawElements
。