中文第一计算机图形学社区OpenGPU 版权所有2007-2018

 找回密码
 注册

扫一扫,访问微社区

搜索
查看: 5319|回复: 0

SALVIA 新架构设计 暨 2013年工作计划

[复制链接]
发表于 2013-1-2 01:20:35 | 显示全部楼层 |阅读模式


隔壁版Elvic大大的Elvish已经进入第七个年头。

SALVIA也进入了第六个年头。

在这六年中,SALVIA经历了无数次的大小修改:

  • 07年底的第一版的SALVIA(当时还叫SoftArt)实现了第一版流水线,包括Cpp的Vertex Shader和Pixel Shader。在开发过程中,除了阅读GL 2.0 Specification之外,也参照了一些同类型的作品。助益最大的当数Muli3D和Mesa。前者令我们了解了Clip的做法和重要性;后者则帮助验证了透视修正的内容。
  • 尽管07年底SALVIA(SoftArt)便已经托管到SF.NET上,但是08年2月份原有的SoftArt的代码的Repo被破坏了,因此现在的开发记录最早只能追溯到08年2月份SF上的SVN。
  • 08年初决定给管线增加基于文本的Shader支持。
  • 08年7月开始,开始从C语言的EBNF裁剪Shader的语法描述。8月份开始用Boost.Spirit来撰写语法分析器。
  • 09年1月将SALVIA(SoftArt)导入到Google Code中。
  • 09年12月份开始写Shader语法分析器的第2版,仍然是基于Boost.Spirit。同时,流水线的光栅化算法也从Top-Bottom Triangle变成Half-Space的算法
  • 10年1月份的时候开始设计自己的虚拟机。同时到了10年2月份,Shader语法分析器的第二版也已经结束。
  • 从10年2月份开始,SALVIA(SoftArt)引入了LLVM 2.6版作为后端的设计基础,1月份设计的虚拟机也基本废弃。
  • 10年3月份开始,SALVIA(SoftArt)引入了CMake作为构建工具,取代了原先的Visual Studio Solution文件
  • 10年9月份,SALVIA(SoftArt)给Shader基于Boost.Test建立了完整的单元测试。同时语义设计和后端也基本完成。为了配合Shader,我们实现了第二版Pipeline。
  • 11年新年期间,SALVIA(SoftArt)撰写了第三版的语法分析器。这一版语法分析器保留了Spirit在Cpp内定义语法的能力,并且解决了Spirit编译时间过长的问题。同时其他的特性,例如Name Mangling,预处理器都得到了支持。
  • 11年SoftArt正式更名为现在的SALVIA。感谢Elvic提供的名称和LOGO!
  • 从11年6月开始,SALVIA的Shader后端第一版基本完成,并有了相对正式和稳定的版本发布。

从11年6月到12年12月,SALVIA 从0.1.1开始已经发布到0.5.1。支持库、Shader语言特性、功能也逐渐完备起来。几天前发布的0.5.1中,启用了Shader后端的第二版,前端性能也做了不小的优化工作。

经过六年的积累,我们希望SALVIA在2013年能有个阶跃式的进步。为了达成这一目标,我们为Pipeline和后端都做了全新的设计,整条管线的JIT和优化程度更高。


新的管线结构如下:



新的IA Shim和Interpolation Shim将会根据Render State将尽可能多的渲染逻辑通过JIT固化在代码中。

同时后端结构也将调整成新的结构。PipelineHost取代Driver成为Shader和Pipeline的纽带,Driver将仅用来编译生成Shader Object。同时承担了将管线数据传递给Shader的ShaderUnit也将简化成Shim和Shader的容器。

我相信这次新的Pipeline和Shader实现后,在性能上会有与WARP一战的潜力。

于是2013的工作内容就变得很简单了:

实现它。如果有余力的话,Geometry Shader和SM4。如果再有余力的话,Computer Shader和SM5。

以上。

最后,充分感谢Elvic,Mybios,Minmin和所有关心SALVIA的兄弟姐妹大叔大婶爷爷奶奶们!

祝各位 新年快乐 身体健康 万事如意 可以跳槽 不要失业!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|小黑屋|Archiver|手机版|中文第一计算机图形学社区OpenGPU

GMT+8, 2018-12-15 22:46 , Processed in 0.052666 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表