OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)?
OpenGL在圖形管道中調(diào)用了什么用戶(hù)模式圖形驅(qū)動(dòng)程序(UMD)?
圖形硬件供應(yīng)商,需要為顯示適配器編,編寫(xiě)用戶(hù)模式顯示驅(qū)動(dòng)程序。用戶(hù)模式顯示驅(qū)動(dòng)程序,是由Microsoft Direct3D運(yùn)行時(shí)加載的動(dòng)態(tài)鏈接庫(kù)(DLL)。用戶(hù)模式顯示驅(qū)動(dòng)程序,必須至少支持Direct3D版本9 DDI。
e.g. nvd3dum.dll is the UMD for DirectX11是運(yùn)行Nvidia的DirectX11的UMD。著色器shader編譯是從API調(diào)用的DirectX代碼進(jìn)行的,在它進(jìn)入內(nèi)核模式驅(qū)動(dòng)程序之前。
UMD是否也將代碼放在中間表示嗎?(driver驅(qū)動(dòng)是中間語(yǔ)言嗎)?
從Windows95OSR2開(kāi)始,OpenGL基本上一直在Windows上有某種用戶(hù)模式組件。體系結(jié)構(gòu)中客戶(hù)機(jī)/服務(wù)器的分離,使得這一點(diǎn)非常容易做到。這意味著許多客戶(hù)端API可以執(zhí)行基本的命令隊(duì)列、驗(yàn)證、資源創(chuàng)建等操作,而不必切換到內(nèi)核模式。
例如,在OpenGL中,draw調(diào)用比Direct3D更容易。在WindowsVista(WDDM)中,情況發(fā)生了變化,WDDM為D3D(包括Vista上的D3D9)指定了一個(gè)用戶(hù)模式驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序的作用與OpenGL的客戶(hù)端前端類(lèi)似。
好處有兩方面:
如果驅(qū)動(dòng)程序在用戶(hù)模式下執(zhí)行某些操作時(shí)崩潰,問(wèn)題通常不會(huì)傳播到,導(dǎo)致問(wèn)題的應(yīng)用程序之外(而不是全面的內(nèi)核死機(jī))。
在不切換用戶(hù)模式和內(nèi)核模式的情況下,可以完成更多的實(shí)際工作,這意味著API本身在呈現(xiàn)時(shí)的瓶頸更少。
D3D10非常注重減少API的總體開(kāi)銷(xiāo),而引入WDDM的用戶(hù)模式驅(qū)動(dòng)程序,實(shí)際上也有益于D3D9應(yīng)用程序。WDDM對(duì)OpenGL體系結(jié)構(gòu),在Windows新版本中的運(yùn)行方式,幾乎沒(méi)有什么改變,盡管它確實(shí)添加了一些新特性,使D3D/GL之間的互操作性更簡(jiǎn)單(例如,surface共享)。
著色器shader編譯只是OpenGL ICD在Windows上用戶(hù)模式下可以做的許多事情之一。
UMD只與Direct3D相關(guān),OpenGL的用戶(hù)模式組件稱(chēng)為ICD(可安裝客戶(hù)端驅(qū)動(dòng)程序)。它負(fù)責(zé)處理整個(gè)OpenGL API,并將OpenGL API調(diào)用生成的命令,轉(zhuǎn)換為顯示驅(qū)動(dòng)程序使用的特定于硬件的命令。DXGI實(shí)際上是在windows vista+上將D3D和GL結(jié)合在一起的粘合劑,可以將其視為D3D和OpenGL,在用戶(hù)模式端處理命令之后所描述的公共語(yǔ)言。DXGI是WDDM的中間組件。
總結(jié)
以上是生活随笔為你收集整理的OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MLIR算子量化Quantization
- 下一篇: 视频处理单元Video Processi