开源夏令营中期报告

总结

首先,我想说,十分荣幸可以入选优快云开源夏令营,可以为一个很酷的开源项目贡献代码。这一个月来,我从对在linux下工作几乎一无所知,到现在可以熟练使用linux下各种命令。从对2D渲染、并行计算不甚了解,到现在有了一个初步的感性的认识,感觉自己有很大的收获。在此,我对这一个月的主要工作做一总结。

mesa3D的安装

由于这个项目需要使用mesa3D来联合编译开发,所以我需要自己在linux上build、install mesa。由于之前不怎么在linux上开发,所以我感觉有些困难。而且最新版的mesa3D的依赖库也需要自己build,这几乎形成了一个树状结构。我在导师的帮助下最终完成了安装。期间,由于自己的疏忽,导致linux整个图形界面崩溃,在和导师的沟通下,最终顺利解决了问题。

mesa和beignet的整合

对于beignet,它可以与mesa9.x相兼容编译,但是由于mesa3d 10.x之后,与opengl texture mipmap相关的部分被大规模重构,导致beignet无法与最新版本mesa的源代码一起编译。造成这一问题的主要来源有两个:
  • 新版mesa的头文件引用目录发生改变;
  • 新版mesa的许多结构被重组与合并;
对于第一个问题,我通过修改cmakfile的配置文件解决。对于第二个问题,我通过发邮件给mesa的开发者mail list询问具体改动情况,并通过与导师讨论,完成了对源代码的修改。目前beignet已经可以和最新版mesa的源代码共同编译,但是单元测试还有些不能通过。接下来,我会逐步分析问题所在。
在这一过程中,我熟悉了gcc的相关命令,和CMakeList和MakeFile的基本规则。

Cairo的初步了解

在导师的指导下,我编译安装了最新版的cairo。通过自己编写一些小的sample,并阅读官网上的文档,我大致了解了cairo在绘制过程中牵扯到的一些基本概念和绘制模式。同时,我学会了通过cairo-trace来分析渲染的benchmark。之后,在导师的指导下,我阅读了cairo关于gl backend的渲染的代码,并试图从中找到优化的对象。

OpenCL渲染算法的实现

在第一个月的后期,我开始学习OpenCL kernel的相关内容, 并逐步尝试使用beignet来编写矢量图形的渲染与填充。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值