更多开源内容请访问:开源基础软件社区https://ost.51cto.com近日,深圳市凯宏数字产业发展有限公司(以下简称“深凯宏”)VK-GL-CTS测试套件正式集成到OpenAtomOpenHarmony(以下简称“OpenHarmony”)的骨干网中社区。作为将VK-GL-CTS测试套件集成到OpenHarmony骨干网中的代码提交者,我将与大家分享我们团队在适配移植过程中的故事和经验,希望能给开发者一些参考。我和我的团队是神凯鸿OS框架开发工程师王石。作为申凯宏参与开源共建的骨干,本人主要负责VK-GL-CTS测试套件的GPU图形适配和移植工作。在我的团队中,有负责OpenHarmony图形界面适配的OpenGL专家;兼容性专家,负责开源三方库的移植和适配OpenHarmony系统;系统服务移植和版本构建专家,负责系统服务的版本构建和稳定性移植和调试;有测试领域的专家,负责兼容性、稳定性、安全性等测试,团队成员在适配移植工作中不断攻坚克难,相互配合,让所有相关问题闭环,并且该项目终于圆满完成。VK-GL-CTS适配对OpenHarmony生态的积极影响VK-GL-CTS是Khronos开发的开源GPU测试套件,可用于测试开放标准OpenGLES、EGL和Vulkan,也可验证是否GPU驱动程序API的实现是受支持的官方标准。VK-GL-CTS的推出,是对OpenHarmony生态共建的有力保障。弥补了GPU方向OpenHarmony兼容性测试套件的不足,为未来OpenHarmony应用兼容性和API兼容性提供更好的照顾。提供完整的保障,同时也为OpenHarmony兼容性评估提供帮助。困难与挑战在完成VK-GL-CTS测试套件适配的过程中,我们也面临着诸多挑战与困难。首先是移植图形框架的挑战。OpenHarmony的图形框架不同于业界其他的图形框架。在移植之初,我们需要快速了解和分析OpenHarmony图形框架的模块组成和应用API;同时,由于OpenHarmony发展迅速,主线变更频繁,这就要求我们不仅要了解图形框架的架构,还要了解图形框架的设计原则,掌握主要的图形框架的上下文。二是对OpenHarmony兼容性测试框架的理解和适配。VK-GL-CTS完整代码量超过200万行,测试项超过100万个。为了适配OpenHarmony的XTS(XTestSuite)子系统,也方便后期的更新和维护,我们采用分层设计的理念,开发了两个测试套件的适配层来解耦两个测试框架,通过编译脚本、测试脚本等辅助工具对测试结果进行收集分析形成报告。最后,还有建立标准的挑战。测试结果在VK-GL-CTS测试套件中运行,我们进行了多次对比验证,对标业界成熟产品的数据,并参考主流嵌入式硬件产品的测试数据,通过校准配置,测试数据和测试项目以及与社区开发者和硬件厂商的讨论初步建立了OpenHarmony对GPU接口和功能的兼容性评估标准。经验总结VK-GL-CTS测试套件适配涵盖图形框架、GPU驱动、编译框架、日志框架、兼容性测试框架等,涉及OpenHarmony的诸多方面。在适配过程中,我们的团队也在社区多位专家的帮助下克服了很多困难。比如最开始遇到的问题是signal11报错。OpenHarmony提供了faultlog,可以在开发版路径/data/log/faultlog中查看;据说线性扫描在某些情况下会导致颜色偏移,所以我们切换到GPU的默认设置;并且由于开源合规性问题,我们引入了OAT规则。直到现在,我们的团队还在维护着VK-GL-CTS的测试框架,时刻关注可能出现的问题和版本更新。从3.1Release到3.2Beta,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的智能创新,将赋能千行百业,推动万物互联。了解更多开源请访问:开源基础软件社区https://ost.51cto.com
