GameDesign 板


LINE

※ 引述《lovesnake (LoyalDog)》之銘言: : ※ 引述《justinlcs (班班)》之銘言: : : ^^^^^^^^ : : interrupt : : 看你程式怎麼寫,但是通常Render Thread只會有一個的情況下,CPU送東西給GPU之後, : : 大部分顯示引擎會等到結果返回才進行下一次的render,要不然資源存取很容易打架 : : 大多數的引擎都會等,一個render結束才會執行下一個。 : : 在軟體層面來說,可以取得的時間只有 : : 可以取得CPU準備資料所消耗的時間 : : 可以取得CPU送指令給GPU所消耗的時間 + GPU收到指令返回結果所消耗時間的"總和" : : 無法從軟體面單獨取得CPU送資料給GPU消耗的時間 : : 無法從軟體面單獨取得GPU收到指令完成運算時所消耗的時間 : : 我所了解的程度有限,希望可以幫上忙 : 所用的是最底層的API OpenGL. : 主程式可能有很多Thread,Timer、AI、Physics、Rendering等等。 : 我想知道的是,今天當CPU把Draw Call送給GPU後,是否會將RenderingThread Block, : 然後執行其他的Thread,還是Busy-Waiting等到GPU處理完? Render Thread是Render Thread CPU在Render Thread丟資料給GPU之後就是等,在等的時候CPU自然會做其他Thread的事情 : 或者今天為單一Process,OpenGL的Display Function前後包夾clock(); : 他會直接把Display處理完丟給GPU,然後直接繼續執行,然後等下一次要Display時,再 : Wait GPU的Interrupt? : 還是會等GPU執行完以後才繼續下面的程式呢? 如果你所有的邏輯設計包含Render都是在同一個Main Thread裡面, 也就是說你整支程式就只有一個Thread,當然會等GPU作完才會執行下一步 但是如果不是,那答案就很不一定,因為一般遊戲引擎絕對有很多個Thread 然後由一個Main Thread下達命令,例如 Main Thread中你下達了PlaySound()的call 實際上把播放的聲音送到 Sound Quene 之中然後再由另一個Sound Thread去播放 Render也是如此,要Render的東西送到Render Quene,由Render Thread一一繪製 但是Render Thread會比單純播放聲音複雜很多,解釋起來可以講很多, 而且實作的方式不同又可能是另一個故事,所以這裡不多做解釋 因為要call的系統資源種類太多,例如載入材質可能又有一個Loading Thread, Network又是另一個Thread,諸如此類...這也是為何許多遊戲引擎的API, 相關的資源都會實做一個Singleton的Manager,例如Sound Manager, Texture Manager, Control Manager, AI, GPU, Shader, Map, Decal, Mesh, Physics, Network, Memeory, Animation, Buffer, Tick, Post Effect, Render, Render World, Font, Logic, Sence....等等以非同步的方式 通常是用Observer模式實做來訂閱並觸發各種事件來交換訊息和進行動作 總而言之,如果你是把所有的邏輯都寫在同一個Thread,那麼絕對絕對是上一步做完 才會執行下一步 如果是好幾個Thread,考量非同步資料的運作方式會有很多種不同的答案。 **補充 我可能有點答非所問,如果你的問題是指compiler在編譯程式時, 是用Single Thread去模擬Multi Thread的選項,如果是這種情況, 那麼執行過程中所有的行為都會影響到Render的時間 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.226.114
※ 文章網址: http://webptt.com/m.aspx?n=bbs/GameDesign/M.1402492372.A.8B8.html ※ 編輯: justinlcs (1.34.226.114), 06/11/2014 21:28:07







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP