使用しているビデオカードメモリの量を確認するにはどうすればよいですか?


15

実行時にプログラムで使用されているビデオカードメモリの量をプログラムで判断したい。具体的には、OpenGLを使用してWindowsマシンでそれを行う方法について疑問に思っていますが、他のプラットフォームでも同様に行う方法に興味があります。

プログラムの実行中にメモリ使用量を表示するユーティリティがあることは知っていますが、コードからその情報を照会できるようにしたいと考えています。


PSすでにあなたの質問に答えましたが、これは単なる一般的なプログラミングの質問なので、stackoverflow.comに適しています。私の答えが十分でない場合は、そこに再投稿して、彼らがどのような反応をするかを見てください。
リケット

私もstackoverflowに取り組んでいますが、私はまだここで有効な質問の組み合わせを学んでいます。
Hitesh

3
この質問はここでは完全にうまくいくようです。結局のところ、彼はおそらく彼が必要なabswerを得た。:この参照 meta.gamedev.stackexchange.com/questions/3/...
テトラッド

回答:


14

NVX_gpu_memory_info拡張機能を使用してNvidiaカードのビデオメモリを検索するか、ATI_meminfoを使用してATIカードを検索できます。ここに、私が見つけたコードのスニペットを示します


しかし、フリップコードのポール・ネトルは、なぜ利用可能なビデオメモリを探したいのか疑問に思っています

ビデオメモリの量を判断するのが難しい(および不可能な)理由は、OpenGLでフレームバッファーをロックして直接アクセスできない理由と非常に似ています。

そして本質的に、「ビデオメモリの量」は実際には何も意味しないかもしれないことを説明し続けます。たとえば、Windows Vista / 7マシンの「空き」メモリの量は無関係であるという理由で私は彼に同意します。空きメモリは無駄なメモリであるため、空きメモリがないことを願っています。ただし、アプリケーションが必要とする場合、Windowsによってクリアされるキャッシュ専用のメモリ領域が常にいくつかあります。


いくつかの素晴らしいリソース。数日のうちに試してみる機会があります。
Hitesh

+1、スニペットは素晴らしいです。ただし、何の意味も持たないことについては完全に同意しません。プログラムを大失敗させるよりも、常にメモリの量をチェックする方が良いです。
コーネルKisielewicz

でも、ポイントは必ずしもメモリの量をチェックすべきではないということではなく、メモリの量は何の明確な指標でもないということだと思います。カードのメモリが不足すると、失敗する可能性があります。または、必要に応じてテクスチャデータが自動的にスワップインおよびスワップアウトされる場合があります。0メモリは、実際には致命的なメモリ不足エラーを意味しない場合があります。
リケット

1
個人的には、リークを追跡し、ハードウェアの互換性を監視するための簡単なガイドラインとしてこれを使用する予定です。「20mb」を使用していますか?ええ、それはおそらく今日市販されているものなら何でも実行できます。大量の解約を伴う、半ダースの動的に割り当てられたテクスチャを持つ単純なゲームで「500mb」を使用しますか?私のガベージコレクションでは、何かおかしいかもしれません。
ZorbaTHut

1
残念ながら、GLの仕様では、ドライバーがGL_OUT_OF_MEMORYを返すと不確定になるため、メモリがなくなると、基本的にSOLになります。
-gman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.