开发者故事—王石:VK-GL-CTS测试套件适配和经验分享

系统 OpenHarmony
我将与大家一起分享我们团队在适配与移植过程中的故事和经验,希望能给广大开发者一些参考。

想了解更多关于开源的内容,请访问:

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

近期,深圳开鸿数字产业发展有限公司(以下简称“深开鸿”)VK-GL-CTS测试套件适配正式合入OpenAtom OpenHarmony(以下简称“OpenHarmony”)社区主干。作为将VK-GL-CTS测试套件合入OpenHarmony主干的代码提交者,我将与大家一起分享我们团队在适配与移植过程中的故事和经验,希望能给广大开发者一些参考。

我和我的团队

我是深开鸿OS框架开发工程师王石,作为深开鸿参与开源共建的骨干,我主要负责VK-GL-CTS测试套件的GPU图形适配与移植工作。
在我的团队里有OpenGL的专家,负责OpenHarmony图形接口适配;有兼容性专家,负责开源三方库的移植和与OpenHarmony系统的适配;有系统服务移植与版本构建的专家,负责版本构建与系统服务的稳定性移植与调试;有测试领域的专家,负责兼容性、稳定性、安全性测试等工作。团队成员在适配与移植工作中不断攻坚克难、通力合作,使得相关问题均得到闭环处理,最终顺利完成了这一项目。

VK-GL-CTS适配对OpenHarmony生态的积极作用

VK-GL-CTS是Khronos开发的一套开源GPU测试套件,可用于开放标准OpenGL ES,EGL和Vulkan的测试,也是验证GPU驱动API的实现是否支持的官方标准。VK-GL-CTS的引入是对OpenHarmony生态共建的强有力的保护,补齐了OpenHarmony兼容性测试套件在GPU方向上的缺失,为社区之后能更好地看护OpenHarmony应用兼容性、API兼容性提供完备的保证,同时也为OpenHarmony兼容性测评提供助力。

困难与挑战

在完成VK-GL-CTS测试套件适配的过程中,我们也面临很多挑战和困难。
首先是对图形框架的移植挑战,OpenHarmony的图形框架不同于现在业界其他的图形框架,移植的初始就需要我们快速了解和分析OpenHarmony图形框架的模块组成和应用API;同时由于OpenHarmony的迅速发展,主线变更频繁,这就需要我们不但要了解图形框架的架构,而且要理解图形框架的设计原理,抽丝剥茧地抓住图形框架的主脉络。
其次是对OpenHarmony兼容性测试框架的理解和适配。VK-GL-CTS的全代码量有200多万行,100多万条测试项,为了适配OpenHarmony的XTS(X Test Suite)子系统,并且在后期能方便更新维护,我们运用了分层设计理念,开发出两个测试套件的适配层将两个测试框架进行解耦,并通过编译脚本,测试脚本等辅助工具对测试结果进行收集,分析形成报告。
最后是对标准建立的挑战。在VK-GL-CTS测试套件运行的测试结果,我们进行了多重对比和验证,对标业内成熟产品的数据,同时参考主流嵌入式硬件产品的测试数据,通过校准配置、测试数据及测试项目以及和社区开发者、硬件厂商的讨论初步建立OpenHarmony在GPU接口和功能方面的兼容性测评标准。

经验与总结

VK-GL-CTS测试套件适配覆盖图形框架、GPU驱动、编译框架、日志框架、兼容性测试框架等,涉及OpenHarmony的众多方面。在适配过程中,我们团队也在社区众多专家的帮助下克服了重重困难。如最初碰到的问题是signal11报错,OpenHarmony提供了faultlog,可以在开发版路径/data/log/faultlog里查看;然后又遇到测试报错问题,由于我们仿照rosen采用了线性扫描,但对测试用例来说线性扫描会导致某些情况下的色偏,于是我们改用GPU的默认设置;又因为开源合规问题我们引入OAT规则。
直到现在,我们团队还在维护着VK-GL-CTS的测试框架,时刻关注着可能出现的问题和版本更新。从3.1 Release到3.2 Beta版本,OpenHarmony进行了文件目录的调整、GPU库的调整、增加了对64位设备的支持,这些都是版本维护工作中要进行的必要过程,我们需要关注每日构建系统(http://ci.openharmony.cn/dailys/dailybuilds ) 对不同版本、分支进行看护。
目前,VK-GL-CTS测试套件适配已正式合入OpenHarmony社区主干,相关仓库路径参考如下:
​​​https://gitee.com/openharmony/third_party_vk-gl-ctshttps://gitee.com/openharmony/third_party_glslanghttps://gitee.com/openharmony/third_party_spirv-headershttps://gitee.com/openharmony/third_party_spirv-tools。​

愿景与展望

一路以来,深开鸿始终持续聚焦KaihongOS操作系统和超级设备管理平台的核心技术,不断增强OpenHarmony技术能力,在代码共建、任务承接、SIG主导或者参与、社区活动、代码贡献等方面的工作中对OpenHarmony开源项目作出了突出贡献,不断加速开源生态建设。

作为深开鸿的一名OS框架开发工程师,我很幸运能从事自己喜欢的职业,并且很荣幸能够加入OpenHarmony项目。未来,我将与团队伙伴们继续坚持技术研发,探索开源生态发展之路,并将提炼、沉淀出来的场景、技术贡献给OpenHarmony社区,真正践行“从开源中来到开源中去”的理念。我们坚信,未来以OpenHarmony为基础的智慧创新之路必将赋能千行百业,促进万物互联。

想了解更多关于开源的内容,请访问:

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

责任编辑:jianghua 来源: 51CTO 开源基础软件社区
相关推荐

2011-04-25 16:56:34

Greedy Bank游戏开发独立开发者

2011-07-07 18:23:54

PHP

2014-03-14 13:36:19

独立游戏经验

2012-06-27 16:38:16

独立开发者协调工作与生活

2010-01-08 10:05:00

RoRRuby on Rai

2014-07-31 09:33:05

开发者独立开发者

2012-11-09 10:54:13

阿里云开发者开发

2019-05-31 08:50:13

苹果数据开发者

2011-12-09 20:46:26

Testin

2011-12-08 14:29:20

开发者说

2011-07-10 14:42:10

PHP

2011-12-08 14:01:32

开发者说

2015-10-19 10:01:46

推销开发者经验

2011-10-25 09:48:07

NFC诺基亚Symbian

2013-03-21 09:54:51

微信开发者案例

2016-12-01 14:51:03

2023-09-13 18:34:51

谷歌开发者

2012-05-10 09:08:07

iOS独立开发者

2021-06-25 10:42:38

网络安全安全从业者开发者

2015-09-07 10:15:53

移动端开发
点赞
收藏

51CTO技术栈公众号