Re: [程式] CPU會等GPU嗎?

作者: lovesnake (LoyalDog)   2014-06-11 20:33:01
※ 引述《justinlcs (班班)》之銘言:
: ※ 引述《lovesnake (LoyalDog)》之銘言:
: : CPU把Batch丟給GPU以後,會等GPU Interapt才繼續該Process/Thread嗎?
: ^^^^^^^^
: interrupt
: 看你程式怎麼寫,但是通常Render Thread只會有一個的情況下,CPU送東西給GPU之後,
: 大部分顯示引擎會等到結果返回才進行下一次的render,要不然資源存取很容易打架
: : 還是就直接繼續跑,不管GPU了?
: 大多數的引擎都會等,一個render結束才會執行下一個。
: : 問這個問題主要是想知道在Render前後抓時間,抓到的到底是只有
: : CPU的執行時間還是連GPU的都抓得到。
: 在軟體層面來說,可以取得的時間只有
: 可以取得CPU準備資料所消耗的時間
: 可以取得CPU送指令給GPU所消耗的時間 + GPU收到指令返回結果所消耗時間的"總和"
: 無法從軟體面單獨取得CPU送資料給GPU消耗的時間
: 無法從軟體面單獨取得GPU收到指令完成運算時所消耗的時間
: 我所了解的程度有限,希望可以幫上忙
所用的是最底層的API OpenGL.
主程式可能有很多Thread,Timer、AI、Physics、Rendering等等。
我想知道的是,今天當CPU把Draw Call送給GPU後,是否會將RenderingThread Block,
然後執行其他的Thread,還是Busy-Waiting等到GPU處理完?
或者今天為單一Process,OpenGL的Display Function前後包夾clock();
他會直接把Display處理完丟給GPU,然後直接繼續執行,然後等下一次要Display時,再
Wait GPU的Interrupt?
還是會等GPU執行完以後才繼續下面的程式呢?
作者: azureblaze (AzureBlaze)   2014-06-11 20:44:00
我只知道DX9幾乎都不block 等到present()再停下來等

Links booklink

Contact Us: admin [ a t ] ucptt.com