2011-06-14 40 views
12

我聽說OpenGL和DirectX調用實際上是由視頻驅動程序轉換爲卡特定的調用。我也知道,有時一個新的視頻驅動程序可以將視頻遊戲中的性能提升50%,而無需開發人員進行任何操作。如果我想要對視頻卡進行精細的紋理控制,可以在DX/OpenGL以下的級別進行嗎? Nvidia/AMD是否發佈供應商特定的API?DirectX/OpenGL之外是否有更低層次的API?

+0

此外,這是爲研究。我只支持一個視頻卡(我的) – aramadia 2011-06-14 15:48:34

+0

由於沒有標準(但...),這裏的答案歸結爲驅動程序是如何開源的:http://askubuntu.com/questions/164782/open-源友好的圖形卡製造商 – 2015-10-05 21:38:57

回答

17

NVidia保持其GPU編程模型的祕密。沒有機會比DirectX,OpenGL,CUDA或OpenCL低。

AMD/ATI開放了他們的文檔,但是這可能爲日常工作的程序員等級太低:http://developer.amd.com/documentation/guides/pages/default.aspx#open_gpu

英特爾開放來源的Linux驅動程序和有某種文檔。

AMD和Intel的Linux開放源代碼驅動程序都經歷了一個名爲DRI2/DRM的低級API;結合KMS也稱爲Gallium。 MesaGL位於DRI之上,所以在Linux中實際上比圖形卡的OpenGL級別API要低。 MesaGL是一個所謂的DRI狀態跟蹤器,從我聽說WINE開發者的Direct3D-10(和11?)狀態跟蹤器已基本完成,因此在可預見的將來,WINE將支持本地Direct3D。當然,只會與DRI一起工作,所以不支持NVidia GPU。

+0

你的AMD鏈接太棒了。謝謝 ! – Calvin1602 2011-06-14 17:12:37

4

忘掉它吧,你會花更多時間閱讀某種SDK並支持所有可能的視頻卡。讓我給你一個建議:只要閱讀文章,解釋如何使D3D或OpenGL應用程序有效(緩存,上下文切換等)。

+0

@armadia你可能不會從編寫自己的驅動程序獲得任何東西。如果你只想要高性能,只需分析你的應用程序。但是,如果你的目標是找出司機如何在內部工作,那麼這是一個很棒的項目。 – Calvin1602 2011-06-14 17:06:28

0

我同意一些其他職位。不過,我想補充一點,你可能也想看着色器。他們讓你做一些非常棒的東西,同時仍然實現高性能。

1

在AMD/ATI:

的OpenCL --compiles TO-> IL --compiles TO-> ISA --links TO-> ELF可執行

在NVIDIA:

的OpenCL - 編譯→PTX→編譯→ISA→鏈接→某種可執行格式

對於AMD來說,過去有一種CAL比OpenGL/OpenCL有更低的訪問級別,但它被棄用。有一些提示說,雖然可以通過OpenCL訪問IL和ISA。看到這個論壇主題: http://forums.amd.com/forum/messageview.cfm?catid=390&threadid=150149&forumid=9

相關問題