2017-02-15 9 views
4

OpenGLまたはWin32でグラフィックスカードのモデル名を知りたい場合特定の種類のグラフィックカード(Intel社のIntelのみではない)でメモリリークのバグがあります。OpenGLまたはWin32でグラフィックカードのモデル名を取得するには?

これはバグです:OpenGLでhttps://software.intel.com/en-us/forums/developing-games-and-graphics-on-intel/topic/280679

ベンダー名では十分ではありません。誰かが、Direct3Dを使用するのとは異なるグラフィカルカードの名前を取得する方法を知っていますか?それとも、私はD3DとOpenGLを一緒に使うことができると思いますか? Get the graphics card model?

+0

インストールされているGPUタイプを判断するための簡単な方法は、ハードウェアを直接列挙することです。 Linuxでは、 'lspci'を呼び出してその出力を解析するか、'/sys/bus/pci/devices/* 'を走査して' 0x030000'(グラフィックスコントローラ)クラスのすべてのデバイスを探します。私のGoogle-Fuは現代のWindowsマシンでこれを行うための正しいAPIを見つけることに失敗しました。これは確かにWin32 APIの一部ではなく、Windowsドライバプログラミングモデルの各バンプで変更されます。 – datenwolf

+2

この方法は保証されていないため、インストールされたデバイスがアプリケーションと要求されたコンテキストで使用されているため、絶対に安全ではありません。ドライバの問題やソフトウェアのスイッチがこの問題を防止する可能性があります。 複数のグラフィックカードを搭載したラップトップでは、強力なカードがインストールされていても使用されていないことがよくあります。 – OutOfBound

+0

関連していないが、uhhhhh ....インテルフォーラムのポストで2人が実際にSEOボットを試して助けに行く時間を取ったのだろうか? –

答えて

4

OpenGL Apiからすべての情報を取得できます。

https://www.khronos.org/opengl/wiki/Get_Context_Info

const GLubyte* vendor = glGetString​(GL_VENDOR); // Returns the vendor 
const GLubyte* renderer = glGetString​(GL_RENDERER); // Returns a hint to the model 

私の場合、レンダラーは、次の文字列を返します。私はそれは、IntelまたはAMDのために戻ってくるものを、知らない "のGeForce GT 750M /のPCIe/SSE2"

をカード。私の知る限りでは、文字列の形式と内容は実装次第です。

+0

私はここにビデオカードを持っていません。私は次の週にそれをチェックします! –

+0

試しましたか? NVIDIA以外のカードでどのようになっているのか、興味があります。 – OutOfBound

+1

私はIntel HDビデオカードを試しましたが、私はglrender = "Intel HD something" –

関連する問題