看板 PC_Shopping 關於我們 聯絡資訊
※ 引述《KotoriCute (Lovelive!)》之銘言: : http://news.mydrivers.com/1/493/493738.htm 我去查了原文 , 他是說Maxwell採用的是Tile-Based Immediate Rendering 不過既然講到Tile Based Rendering, 就可以順便提一下歷史上的PowerVR PowerVR 1 = Matrox M3D PowerVR 2 -> Sega Dreamcast,Naomi PowerVR 3 = Kyro (PC獨立顯卡) 然後就從NEC手中被英國公司Imagination收購, 這家公司又剛好在ARM對面.最後PowerVR和ARM 也聯手也分別打下Mobile市場 PowerVR雖然是最早以Tile Based Rendering命名技術的 不過他的做法因為後來又出現其他種Tile Based Rendering, 所以比較精確指稱的話,他可以稱為Tile Based Deffered Rendering 相對的後來其他家不太一樣,也叫自己為Tile Based Rendering的做法就有差 所以本文後面除非回到歷史名詞,不然會以TBDR代稱PowerVR的技術 TBIR代稱其他家的TBR. 那TBDR最重要的是Deferred Rendering,意思是說,畫面上通常會有很多個物件 沒有畫以前會有重疊的可能,傳統做法是一個相關的物件一起畫,但可能A畫好, B又把他蓋掉,等於浪費掉了(overdraw) 所以能早點知道B在A前面,就直接先畫B,再畫A沒被蓋到的部分, 這樣最節省頻寬.PowerVR會切成小Tile再排序A和B誰在前面, 確保一定先畫前面 http://img.tomshardware.com/us/2001/04/25/a_speedy_tiler/tbr_texturing.gif
NV30和Radeon 200以後的GPU,基本上也有作TBR的情況,只是不以 Deferred Rendering的方式,而是EarlyZ/HyperZ,提早在pipeline前端 切掉超過範圍的東西.......算了 早點進入主題 現代GPU普遍的使用Tile Based Rendering,但他可能是基於其他理由. 根據實驗,Intel 的Haswell GPU的繪圖順序如此圖 http://i.imgur.com/y5gJL63.png
這個是把Pixel繪圖的順序,變成B+G+R的顏色. 也就是Pixel 1就是(0,0,1),Pixel 255就是(0,0,255), Pixel 65535就是(0,255,255) 可以看出 他繪圖的順序是8x8個pixel為一個小單元,然後小單元之間 像是貪食蛇這樣連接,而不是單純以X,Y軸為順序 這樣是做甚麼? 我們把情況簡化,假設螢幕總解析度是4x4 如果最傳統的圖學,資料順序是 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 當我們照這個順序的時候,有很多機會 你要去查鄰近的Pixel是甚麼顏色 7如果查旁邊6/8兩個 還算連續,3/11就跟你不連續了 如果你是1080P的畫面 已經在幾百kB外的資料了 但記憶體傳遞可以是連續的,一次很多,那如果能傳進來的時候, 同時把你四周的點都準備好 那可能會比較省時間 從2x2來看 1 2 3 4 好像隨便排都很近 把這想法先擴大一倍看看 1 2 5 6 3 4 7 8 9 10 13 14 11 12 15 16 至少我保證只要一次傳4個pixel,有一半的機會你的鄰居也好了 如果不這樣做就是 1 2 3 4 當你要查6的時候,要等下次 5 6 7 8 9 10 11 12 13 14 15 16 類似的實行法不只上面那個,我舉的這種叫做Z-ORDER CURVE wiki上有圖示會比較清楚 https://en.wikipedia.org/wiki/Z-order_curve 還有比較複雜的比如Hilbert Curve https://en.wikipedia.org/wiki/Hilbert_curve 那麼 綜合而言,TBIR(如果不考慮捨棄overdraw的三角面) 是打算達成甚麼效果呢? 1.先將要畫圖的畫面,切成N*N的pixel的方塊 一次進入顯示卡的 Pipeline或者同一單位的Shader群繪製 為什麼?因為縮減了範圍,Data Locality相對提高 針對貼圖的Cache命中率就會高很多 2.不同Tile的順序是以Z-order Curve或者Hilbert Curve等順序完成 這可以得到兩個效果 A.由記憶體連續送進來的東西比較有機會是你會用到的 反之也可以說是 你和你的鄰居可以被打包成一次傳送 B.你要重新查詢隔壁的東西 他很有機會還在Cache中沒被擠出去 不用再讀取一次 3.(順便的) 貼圖的儲存順序也會照同一個方式儲存 如果說要用這種方式儲存 那記憶體位置跟X,Y軸的對應關係就變得很複雜了 所以所有相關的電路都會因此多花費電晶體但省掉記憶體頻寬 事實上GPU的進步中這是很常見的事情 用更多的電晶體 換更少的記憶體頻寬消耗量,記憶體頻寬才是有限資源. 如果要說有無採用TBIR,我認為目前的AMD/nVidia/Intel/ARM GPU都是 並不是nVidia專屬,當然這個東西也不影響畫出來的效果,不屬於任何 投機的範圍 (ARM有一個專利 因為TBR有Tile,可以數出已經畫了畫面上的百分之多少, 如果已經超額完成任務 可以把GPU的記憶體存取暫停讓給CPU使用. 另外Samsung和nVidia也有申請TBR的相關專利....) == 補充:PowerVR敗退自PC原因是因為自身的TBDR,雖然省了記憶體頻寬 但需要較多的記憶體量 成本優勢有限 加上TBDR會在透明色/多重貼圖/ Vertex Shader的情況有較多劣勢.... 但成為Mobile GPU無可跨越的霸主也可算是在TBDR. 因為Mobile GPU實在是無法浪費多少電給你在記憶體頻寬上 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.169.150 ※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1470148575.A.925.html
vobor : 快推 不然別人以為我… 08/02 22:38
howhow72 : 看得懂 08/02 22:39
Cubelia : 看不懂,推 08/02 22:42
KotoriCute : 推了 還是看不懂 08/02 22:43
batschris : 推JK大 08/02 22:43
LinYiJen : 不知道推了會不會變聰明 08/02 22:44
warshipchiu : 先推惹 雖然不懂QQ 08/02 22:45
jackal998 : 那為什麼資料沒有辦法只傳送所需要的呢..? 08/02 22:48
SDRAM的特性就是一次傳多一點比較有效率 還有另外一個東西叫做Cache,Cache基本上一塊比較大 保留比較多資料, 那做同樣容量的Cache的空間會小很多 兩個加起來....資料一次準備多一點卡好... 但太多了又不是你立刻會用到的也浪費 所以就要徹底利用他 寧願多花電晶體做事情 也要能全部利用完最好
azumanga : 看得懂,推一個。 08/02 22:51
※ 編輯: jk21234 (42.73.169.150), 08/02/2016 23:01:17
verdandy : 講解的很直白,我這個非本科系的都看得懂 推 08/02 23:09
damnedfish : 我只看得懂結論 08/02 23:13
apley : 這次我看懂了 (大哭) Q_Q 08/02 23:18
loach98 : 推 08/02 23:22
greenpeace21: 難怪Dreamcast的遊戲不太用透明色和多重貼圖 08/02 23:25
b155073 : 推 JK大! 08/02 23:26
tony24334 : 你顯卡系? 08/02 23:34
jk21234 : 我'常'把有顯卡業務的公司在裡面做到業務倒XD 08/02 23:36
chibon1992 : 明年老黃若用上GG的info封裝會更對AMD趕盡殺絕? 08/02 23:38
jk21234 : 明年或者下一次微架構更新的狀況怎樣不明 08/02 23:42
obov : 那東西又不是瞄準顯卡的 08/02 23:50
silver00 : 推 08/03 00:00
wbenjin : 先推 免得被發現看不懂 08/03 00:08
peatle : 嗯嗯,跟我想得差不多 08/03 00:36
opass168 : 當年有在雜誌上看過Kyro II顯卡的新聞 然後就沒了 08/03 00:48
jk21234 : kyro有123三代 但都屬powervr3 08/03 01:09
jk21234 : kyro3有es沒上市 08/03 01:10
ctes940008 : 看不懂 08/03 02:05
asdg62558 : 看得懂+1 08/03 02:29
wahaha99 : 好專業 推 08/03 02:34
cowbaying : tile base從以前到現在 軟硬體都有實作過 08/03 04:01
ex876 : 所以要買1080, 看懂了 謝謝 08/03 07:49
wert213 : 看不懂,先推 08/03 09:00
ZroeX : 遊戲業的表示:懂了 08/03 09:12
MrDisgrace : 看不懂必推 08/03 11:13
zxc445567 : 恭請教主開示 08/03 11:47
john0312 : 專業推 08/03 12:19
mz92zk05 : 推 不然別人……… 08/04 07:58