明拜之,請(qǐng)?jiān)唬昂?jiǎn)報(bào)可乎?”曰:“可。”
咳咳。最近由于SoftArt的幾個(gè)參與人員工作都比較繁忙,因此進(jìn)度上比較松散。但是大體上,SoftArt一直是按照預(yù)先想好的計(jì)劃在進(jìn)展。為了讓大家知道SoftArt的開(kāi)發(fā)進(jìn)展,同時(shí)也是我們開(kāi)發(fā)人員自己的備忘,我們?cè)谏套h后,決定以簡(jiǎn)報(bào)的形式,不定期地將SoftArt的變化和進(jìn)展及時(shí)地呈現(xiàn)出來(lái)。
簡(jiǎn)介
本簡(jiǎn)報(bào)主要總結(jié)了09年11月份以來(lái)SoftArt的變更情況。
對(duì)于SoftArt來(lái)說(shuō),09-10年度是非常重要的。在這一年中,盡管SoftArt并沒(méi)有加入多少新的特性的加入,但是架構(gòu)、性能都經(jīng)過(guò)了持續(xù)性的優(yōu)化。
在Graphics方面,Minmin為SoftArt撰寫(xiě)了全新的光柵化算法。新的光柵化算法與Larrabe的細(xì)分方法類似。這一算法在并發(fā)能力上有很明顯的優(yōu)勢(shì)。盡管在目前性能上與上一版的掃描線算法相對(duì)弱勢(shì),但是經(jīng)過(guò)Minmin的辛苦工作,這一弱勢(shì)已經(jīng)逐步的縮小了。就目前而言,我們認(rèn)為該算法仍然有很大程度的提升空間。
同時(shí),紋理單元也經(jīng)過(guò)了大量的SSE優(yōu)化,目前的紋理單元效率已經(jīng)遠(yuǎn)遠(yuǎn)超出最初我為之撰寫(xiě)的版本。
經(jīng)過(guò)一段時(shí)間的調(diào)優(yōu)之后,目前程序的瓶頸主要集中在裁切和頂點(diǎn)變換上。已經(jīng)朋友為我們提出了非常好的建議,接下來(lái)這也是我們工作的重點(diǎn)之一。
當(dāng)然,根據(jù)估計(jì),在經(jīng)過(guò)一段時(shí)間的調(diào)整后,這些問(wèn)題一定會(huì)得到解決的。我們估計(jì)最終SoftArt的瓶頸將主要集中在兩個(gè)地方,一個(gè)是IO,一個(gè)是Shading部分。目前我們只是使用了簡(jiǎn)單的shading code,相信在shading code復(fù)雜之后,瓶頸會(huì)在很大程度上有所轉(zhuǎn)移。
對(duì)于IO部分的瓶頸主要由紋理和后備緩沖產(chǎn)生。對(duì)于現(xiàn)代圖形算法而言,紋理又是重中之重。沒(méi)有特殊紋理單元的CPU在這一點(diǎn)上實(shí)在是吃了大虧。盡管我們?cè)贑ache Hit Rate及消除Function Call上下過(guò)一定的功夫,并使用了SSE加速了雙線和Mipmap的紋理插值計(jì)算,但是效果仍然達(dá)不到我們的預(yù)期。一旦引入各向異性過(guò)濾,可以預(yù)見(jiàn),在這一部分,還需要我們投入大量的精力來(lái)研究并解決這一問(wèn)題。
但是由于C++ Shader Code在SIMD特性上的限制,目前我們并沒(méi)有設(shè)計(jì)并實(shí)現(xiàn)更加復(fù)雜的Shader。這一切都有待SASL(SoftArt Shading Language)編譯器完成之后才能。Minmin為SASL與渲染器連結(jié)的Host API部分撰寫(xiě)了完整的Specification(神人啊,真的是做什么都可以)。盡管目前這一部分在描述上比較簡(jiǎn)略,但是與DX11相似,相信大家一定可以比較容易的接受這套API。
在編譯器方面,主要有Ye負(fù)責(zé)。目前的編譯器各個(gè)階段的接口以及語(yǔ)言特性已經(jīng)基本成熟。語(yǔ)義和代碼生成部分也在有條不紊的開(kāi)展。在編譯器設(shè)計(jì)期間,得到了Zihan Chen在技術(shù)上的大力支持,在此特別表示感謝。
變更清單
Nov 01,2009 – Nov 29, 2009 (r1 - r10) 此階段的工作主要是將原先在sf.net上的項(xiàng)目,移動(dòng)到Google code上,并對(duì)工程進(jìn)行了一定的調(diào)整,同時(shí)移除了一些編譯器警告。
Dec 01,2009 – Dec 09,2009 (r11 - r29) 此間,Minmin為現(xiàn)有的C++ Shading Code的接口進(jìn)行了重構(gòu),修復(fù)了一些Bugs,并進(jìn)行了一部分的優(yōu)化工作。
Dec 10,2009 – Feb 08,2010( r30 – r65) Minmin為SoftArt的頂點(diǎn)和光柵化提供了并行能力。光柵器以Block為粒度對(duì)三角形并行光柵化。
Dec 09,2009 – Feb 21,2010( r27 – r66 ) Ye將SASL的分析器由Spirit 1.8移植到2.1