2017-02-15 62 views
4

我想知道的顯卡型號名稱在OpenGL或在Win32中因爲我有一個內存泄漏對特定種類的圖形卡(僅限英特爾HD並非所有英特爾)的錯誤。如何在OpenGL或Win32中獲取圖形卡型號名稱?

這是錯誤:https://software.intel.com/en-us/forums/developing-games-and-graphics-on-intel/topic/280679

在OpenGL供應商名稱是不夠的。有人知道一種方法來獲取與使用Direct3D不同的圖形卡名稱嗎?或者你認爲我可以一起使用D3D和OpenGL? Get the graphics card model?

+0

用於確定所安裝的GPU類型的簡單的方法是直接枚舉硬件。在Linux中你要麼調用'lspci'並分析其輸出或穿越'/ SYS /總線/ PCI /設備/ *'尋找屬於分類'0x030000'(圖形控制器)的所有設備。我的Google-Fu讓我在現代Windows機器上找不到合適的API。它當然不是Win32 API的一部分,並且隨着Windows驅動程序編程模型的每次碰撞而改變。 – datenwolf

+2

該方法並非萬無一失,因爲不能保證安裝的設備被應用程序和請求的上下文使用。驅動程序問題或軟件開關可能會阻止此操作 它是在一個以上的獨立顯卡的筆記本電腦相當普遍,是一個功能強大的卡已安裝但未使用。 – OutOfBound

+0

不相關,但是呃......在英特爾論壇帖子中有兩個人真的花時間嘗試和幫助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 

在我的情況下,渲染器返回以下字符串: 「的GeForce GT 750M /的PCIe/SSE2」

我不知道,它會返回Intel或AMD牌。據我所知,字符串的格式和內容取決於實現。

+0

我沒有視頻卡在這裏。我會在下週檢查它! –

+0

你試過了嗎?我很感興趣,它是如何在非NVIDIA顯卡上實現的。 – OutOfBound

+1

我嘗試了一個英特爾高清顯卡,我有glrender =「英特爾HD的東西」 –