本周, 我主要完成两部分工作:
- 修改、重构beignet代码,使之可以与mesa3d的最新的master branch code一起编译;
- 阅读学习cairo的gl backend相关的源代码;
具体的,对于beignet,它可以与mesa9.x相兼容编译,但是由于mesa3d 10.x之后,与opengl texture mipmap相关的部分被大规模重构,导致beignet无法与最新版本mesa的源代码一起编译。造成这一问题的主要来源有两个:
- 新版mesa的头文件引用目录发生改变;
- 新版mesa的许多结构被重组与合并;
对于第一个问题,我通过修改cmakfile的配置文件解决。对于第二个问题,我通过发邮件给mesa的开发者mail list询问具体改动情况,并通过与导师讨论,完成了对源代码的修改。目前beignet已经可以和最新版mesa的源代码共同编译,但是单元测试还有些不能通过。接下来,我会逐步分析问题所在。
对于cairo,在成功编译安装cairo最新版源代码,并运行了一些sample之后,我在导师的知道下,开始阅读cairo gl backend相关的源代码。目前已大致了解了源代码的结构。