2

私が話しているフラグは、GL_STREAM_DRAW、GL_STATIC_DRAW、GL_DYNAMIC_DRAW です。 マニュアルページは、それらをいつ使用すべきかについて明確にしていますが、使用するとどうなるかについてはあいまいです

皆さんがすぐに答える前に、私は彼らが何をすべきかを理解しており、それが重要になるかもしれないいくつかの仮説シナリオを想像できることを述べさせてください. しかし、それが実際に大きな違いをもたらすかどうかは懐疑的です。最近、フラグを GL_DYNAMIC_DRAW に設定して忘れればいいのにと思っていましたが、そうすると自分の足を撃ってしまうのではないかと、しつこく疑っています。

これらが何をするのか、実際にもっと具体的に知っている人はいますか?特に、STATIC_DRAW と DYNAMIC_DRAW の違いに最も興味があります。間違ったものを選ぶことはフレームレートの死の罠ですか、それとも単なるプラセボですか? 実際の答えは、実際のドライバーの実装に依存すると思います。あるいは、これらのフラグが何か (実際には何でも) を行う実際の例を考え出すことができれば、それを見てみたいと思います。

4

1 に答える 1

3

使用上のヒントの動作が変わることはありません。彼らが行うことのほとんどは、さまざまな操作のパフォーマンスを変更することです。そして、おそらくその時でさえありません。

たとえば、使い方のヒントがあまりにも悪用されたため、AMD はそれらを事実上無視しています。使用方法のヒントではなく、バッファの使用方法に基づいてメモリを移動します。NVIDIA のドライバーは、妥協する気はあまりありません。

一般に、パフォーマンスを最大化するために使用するヒントを知る唯一の方法は、プロファイルを作成することです。最高のパフォーマンスが得られるヒントを選択します。

于 2012-08-31T21:39:23.480 に答える