3 回答

TA貢獻1827條經(jīng)驗 獲得超8個贊
當我編譯這個程序時,它會變成一系列ioctl調(diào)用,然后gpu驅(qū)動程序?qū)⑾鄳?yīng)的命令發(fā)送到gpu,其中旋轉(zhuǎn)三角形并設(shè)置適當顏色的適當像素的所有邏輯都是有線的在?或者程序是否會編譯成一個“gpu程序”,它被加載到gpu并計算旋轉(zhuǎn)等?
你離我不遠。您的程序調(diào)用可安裝的客戶端驅(qū)動程序(它實際上不是驅(qū)動程序,它是用戶空間共享庫)。這將使用ioctl或類似的機制將數(shù)據(jù)傳遞給內(nèi)核驅(qū)動程序。
對于下一部分,它取決于硬件。較舊的視頻卡具有所謂的“固定功能管道”。在視頻卡中有專用的存儲空間用于矩陣,以及用于紋理查找,混合等的專用硬件。視頻驅(qū)動程序?qū)槊總€單元加載正確的數(shù)據(jù)和標志,然后設(shè)置DMA以傳輸頂點數(shù)據(jù)(位置) ,顏色,紋理坐標等)。
較新的硬件在視頻卡內(nèi)部具有處理器核心(“著色器”),這與CPU的不同之處在于它們的運行速度要慢得多,但是它們中有許多并行工作。對于這些視頻卡,驅(qū)動程序準備程序二進制文件以在GPU著色器上運行。

TA貢獻1777條經(jīng)驗 獲得超3個贊
您的程序不是針對任何特定GPU編譯的; 它只是動態(tài)鏈接到將實現(xiàn)OpenGL的庫。實際實現(xiàn)可能涉及向GPU發(fā)送OpenGL命令,運行軟件回退,編譯著色器并將其發(fā)送到GPU,甚至使用著色器回退到OpenGL命令。圖形界面相當復(fù)雜。值得慶幸的是,鏈接可以將您與大多數(shù)驅(qū)動程序的復(fù)雜性隔離開來,讓驅(qū)動程序?qū)崿F(xiàn)者可以自由使用他們認為合適的任何技術(shù)。
- 3 回答
- 0 關(guān)注
- 506 瀏覽
添加回答
舉報