CPU和GPU之間的通訊

2021-07-29 17:38:43 字數 974 閱讀 3560

渲染流水線的起點是cpu,即應用階段。大致可分為下面三個階段:

1.把資料載入到視訊記憶體

2.設定渲染狀態

3.呼叫drawcall

1.把資料載入到視訊記憶體

所有渲染所需要的資料都需要從硬碟(hard disk drive, hdd)中載入到系統記憶體(random access memory,ram)中。然後,網格和紋理等資料又被載入到顯示卡上的儲存空間:視訊記憶體(video random access memory,vram)中。這是因為顯示卡對於視訊記憶體的訪問速度更快,而大多數顯示卡對於ram沒有直接的訪問權利。

注意:真是渲染中需要載入到視訊記憶體的資料複雜的多。例如:頂點的位置資訊、法線方向、頂點顏色、紋理座標等。

之後,開始通過cpu來設定渲染狀態,從而使gpu進行渲染工作。

2.設定渲染狀態

渲染狀態:通俗的解釋就是,這些狀態定義了場景中的網格是怎樣被渲染的。例如:使用哪個頂點著色器/片段著色器、光源屬性、材質等。如果我們沒有更改渲染狀態,那麼所有的網格都將使用同一種渲染狀態。

設定好渲染狀態後,cpu需要呼叫乙個渲染命令來告訴gpu開始進行渲染,這個渲染命令就是drawcall。

3.呼叫drawcall

drawcall就是乙個命令,它的發起方是cpu,接收方是gpu。這個命令僅僅會指向乙個需要被渲染的圖元(primitives)(點、線、三角面)列表,而不會包含任何材質資訊(因為已經在2中完成了)。

當給定乙個drawcall時,gpu會根據渲染狀態(例如:材質、紋理、著色器等)和所有輸入的頂點資料進行計算,最終輸出畫素。

CPU和GPU的區別

cpu 即 處理器,解釋計算機指令以及處理計算機軟體中的資料 gpu即圖形處理器,專門處理和繪製圖形相關的硬體。gpu時專為執行複雜的數學和 集合計算而設計的,有了它,cpu就從圖形處理的任務中解放出來,可以執行其他更多的 系統任務。硬體加速 在計算機中把計算量非常大的工作非陪給專門的硬體處理,減輕...

CPU和GPU的區別

個人認為cpu和gpu各有自己的適應領域。cpu central processing unit 計算核心較少,通常是雙核 四核 八核,但是擁有大量的共享快取 亂序執行等優化,可以做邏輯非常複雜的計算任務。這一點就當前的gpu來說,仍然難以做到。會犧牲大量的效能 造成大量的能耗開銷,而且增加了程式設...

1 2 CPU與GPU間通訊

渲染流水線的起點是cpu,即應用階段。該階段大致可分為以下3個階段 所有渲染所需的資料都需要從硬碟 hdd 中載入到系統記憶體 ram 中,然後,網格和紋理等資料又被載入到顯示卡上的儲存空間 視訊記憶體 vram 中。這是因為 顯示卡對於視訊記憶體的訪問速度更快,而且大多數顯示卡對於ram沒有直接的...