該項(xiàng)目簡報(bào)包含了近9個(gè)月SALVIA項(xiàng)目的工作進(jìn)展。
項(xiàng)目與配置管理:
- 源代碼管理系統(tǒng)由SVN更換至Mercurial。
- SoftArt更名為SALVIA。工程、命名空間及相關(guān)文檔的更新將在Release之前完成。
- SALVIA啟用了LOGO。LOGO在Release之前將視效果酌情調(diào)整。
- 提交版本的LOG信息中啟用符合Issue Tracker的格式,使得版本更新可以反映到Issue中。
- 添加了完整的Unit Test工程,并啟用Auto Test系統(tǒng)完成黑盒和回歸測試。
- 合并了LLVM的源碼至版本庫中;LLVM升級(jí)至2.9并進(jìn)行了適當(dāng)修改以和Boost的類型系統(tǒng)相一致。
- Boost升級(jí)至1.44或以上。
- 添加了一個(gè)用于分析代碼行數(shù)的小工具。
- 更新了部分文檔。
Graphics管線:
- 繪制部分支持OpenGL。
- 對Subdivision-based Rasterizer進(jìn)行了進(jìn)一步優(yōu)化。
- 更新了EFLIB的命名空間和文件組織。
- 支持Centroid Sampling。
- 支持2x與4xMSAA
SALVIA Shading Language(SASL):
- 使用新的Combinator-based Parser系統(tǒng)以替換Boost.Spirit,提升了編譯速度并降低了目標(biāo)文件大小。
- 基于Boost.Wave,SASL提供了和C一致的預(yù)處理能力。
- 添加了完整的Name Mangling和函數(shù)重載的能力。
- 設(shè)計(jì)并完成了Shader與Host ABI的Memory Layout。現(xiàn)在Shader可以被高效的調(diào)用。
- 提供了JIT的支持。
- 提供了多編譯器的Port。
- 添加了命令行方式的Compiler。該Compiler接受源代碼并輸出為LLVM IR。
- 設(shè)計(jì)并實(shí)現(xiàn)了多語言(General,SIMD Shader,SISD Shader)的編譯框架。
- 提供了可測試可回歸的編譯器實(shí)現(xiàn)。
- 實(shí)現(xiàn)了下列語言要素:
- 基本標(biāo)量類型及其變量定義
- 基本矢量類型及其變量定義
- 結(jié)構(gòu)體定義及其變量定義
- 順序語句
- 函數(shù)聲明與定義
- 算術(shù)運(yùn)算符
- 成員運(yùn)算符(.)
- Swizzle與Write Mask