应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

小米6成功适配GPU经验分享!

  作者:Diemit
  本人使用树莓派4和小米6进行OpenHarmony适配GPU时产生过挺多问题,这里回顾以下我移植GPU的过程,同时也做一些总结和经验分享,希望大家看过之后能少走一些弯路。
  树莓派4的GPU移植
  树莓派4的GPU驱动组成比较复杂,在Linux的GPU驱动目录中drm目录下存放着vc4和v3d两个目录。
  vc4既包含Display驱动也包含GPU驱动,主要用于树莓派3及之前的SoC;而v3d则只包含GPU驱动,专用于树莓派4。
  由于vc4和v3d的Display硬件差异不大,为了让树莓派4最大化利用vc4现有的Display驱动,树莓派驱动的开发者并没有分离代码,所以树莓派的GPU驱动需要同时启用vc4和v3d。
  同时,我在查阅mesa3d的文档中有关v3d的描述中也有类似的说明,原文如下:
  TheV3DMesadriverscommunicatedirectlywiththeV3DkernelDRMdriverforschedulingGPUcommands。Additionally,ontheRaspberryPi4,thekernelusestheVC4DRMdriverfordisplaysupport,soMesaexposesavc4dri。sousingthekmsrohelperstodobehindthescenesbuffermanagementbetweenthetwokerneldrivers,whileexecutingrenderingontheV3Dkernelmodule。
  这时我看到树莓派的mesa3d驱动还需要kmsro,当时我不太理解,经过好几天的网上搜索,最终抱着不确定的心态,使用了以下的参数编译mesa:DplatformsohosDeglnativeplatformohosDdridriversDgalliumdriversv3d,vc4,kmsroDvulkandriversDgbmenabledDeglenabledDcpprttifalseDglxdisabledDtoolsDdrisearchpathvendorlibchipsetsdk
  在复制编译好的lib文件加入编译框架,并在config。json中设置启用GPU:graphicstandardfeatureaceenablegputrue,
  编译烧录之后运行黑屏,受到SIGOpenGfxDrv群里的大神指导,调试GPU可以先设置CPU合成,GPU渲染的模式,即保持config。json中设置启用GPU,同时修改下面函数,强制使用CPU合成:foundationgraphicgraphic2drosenmodulesrenderservicecorepipelinersbaserenderengine。cpp中的NeedForceCPUboolforceCPUfalse;boolforceCPUtrue;
  再次编译,烧录运行,发现屏幕能点亮,但是显示异常,经过各种探索,仍然无法解决,第一次移植失败。
  经过断断续续的查找资料,对比验证,找到了验证gpu工作的方法,就是通过opengl的api调用一个简单的gpu绘图程序,结果仍然撕裂。
  接口能调用成功,但是显示异常,这种bug不会报错,没有图形相关经验的我根本定位不到原因。
  最终我想到树莓派4有安卓的移植项目,查到安卓也是用mesa3d,然后我找到了两个树莓派4移植项目:【lineagerpi】和【androidrpi】。
  对比了两个仓中的mesa3d代码之后,终于给我在【androidrpi】中发现了关键代码,树莓派4适配安卓仅仅修改了下面这些地方:
  然后再看OpenHarmony的mesa3d的代码,之前我对比过platformohos。c跟platformandroid。c的区别,差异是有,但是总体比较类似。
  同时我也发现了注释中有说明platformohos是基于platformandroid修改。
  经过对比,我把androidrpi对mesa的修改手动同步到了OpenHarmony的mesa中。
  修改如下:
  经过重新编译,烧录,测试例子终于能够正常显示,前后历时四个多月,从3。2beta3跨到了3。2beta4。
  cpu合成cpu渲染组合下,调用OpenGLApi进行三角形的绘制:
  启用GPU渲染后,能够感知到帧率有提升,打个比方,cpu合成cpu渲染在竖屏旋转下只有7帧秒,cpu合成gpu渲染下能达到14帧秒,有提升但是仍然卡顿严重,经过多方求教仍未解决问题。
  在初步打通gpu调用之后,夜里脑子仍在思考着问题的解决办法,不断排列组合,最终想到了3。2beta4的一个公告内容,RS侧支持GPU合成。
  然后又联系到了几个月前我看到过的一个关于gpu的issue,描述到了【graphicstandardfeaturersenableeglimage】这个参数。
  最后爬起来把这个参数设置成了true,编译烧录一套走起,最后居然给干成了,流畅度可感知的达到了60fps那种流畅。
  通过树莓派4适配GPU的经历,我总结出GPU适配的思路如下:
  不启用GPU功能,在CPU合成CPU渲染的环境下,确认GPU驱动正常工作。foundationgraphicgraphic2drosenmodulesrenderservicecorepipelinersbaserenderengine。cpp中的NeedForceCPU中修改强制cpu合成boolforceCPUfalse;boolforceCPUtrue;vendorraspberrypirpi4config。json中设置不启用gpugraphicstandardfeatureaceenablegpufalse,
  启用部分GPU功能,在CPU合成GPU渲染的环境下,确认GPU能正确渲染。foundationgraphicgraphic2drosenmodulesrenderservicecorepipelinersbaserenderengine。cpp中的NeedForceCPU中修改关闭cpu合成boolforceCPUfalse;boolforceCPUtrue;vendorraspberrypirpi4config。json中设置启用gpugraphicstandardfeatureaceenablegputrue,
  启用GPU合成GPU渲染,加速OpenHarmony图形显示。foundationgraphicgraphic2drosenmodulesrenderservicecorepipelinersbaserenderengine。cpp中的NeedForceCPU中还原关闭cpu合成boolforceCPUfalse;vendorraspberrypirpi4config。json中设置启用gpu,同时启用gpu合成graphicstandardfeatureaceenablegputrue,graphicstandardfeaturersenableeglimagetrue
  同时OpenHarmony开源的GPU移植也可以参考安卓方面的移植。
  小米6的GPU移植
  小米6的GPU是Adreno540,经过网上搜索资料mesa驱动对应的名字是freedreno。
  所以编译参数对应为:DplatformsohosDeglnativeplatformohosDdridriversDgalliumdriversfreedrenoDvulkandriversDgbmenabledDeglenabledDcpprttifalseDglxdisabledDtoolsDdrisearchpathvendorlib64chipsetsdk
  但是编译烧录之后运行简单的测试gpu程序始终无法运行,signal11程序崩溃了。
  通过datalogfaultlogtemp下崩溃日志确认buildidfindnhdrcallback存在问题。
  通过在函数内部加print打印的方式,对比分析之后确认是offset计算不正确,最后我意外发现了OpenHarmony的【thirdpartylibunwind】有修改过buildid。
  经过查看pr提交发现了以下关键代码,原来是oh的编译框架在编译出的elf文件头增加了一个非标准的note段,mesa使用标准的方式去解析note内容导致偏移量计算出错,需要处理一下偏移量问题。
  然而mesa3d这个开源gpu驱动常年没人维护,这个问题一直没有暴露出来,这给我碰到了同步修改之后解决调用崩溃问题。
  同时接口调用也能正常显示了:
  但是当我进行移植第二步,CPU合成GPU渲染时黑屏,无法显示内容,又是一番加打印然后调试,最后发现关键代码,freedreno中有强制设置对齐。
  在hilog中发现Assertionfailed:
  查看源码发现a5xx系的头文件中有pitch的验证,【0x3f】相当于判断能否被64整除。
  然后我往前找到buffer设置的某个地方尝试着把pich强制64对齐,终于能显示出图像。
  不黑屏了,但是仍然显示不正常,很明显能感知到是长度没有对齐导致错位了。
  最终在SIGOpenGfxDrv群里的lhl大神指导下,修改display适配层中的WIDTHALIGN参数为64,成功解决显示问题。
  确认CPU合成GPU渲染显示能正常工作之后,启用GPU合成GPU渲染,成功运行,小米6终于适配GPU成功。
  树莓派4和小米6的GPU适配,从代码量来说,适配代码真的很少,但是又异常困难,在此记录一下我走过的坑,希望我走过的坑,后来者不用再掉下去。

德拉蒙德格林最有可能选择签约的5只球队德雷蒙德格林(DraymondGreen)曾与金州勇士队(GoldenStateWarriors)一起赢得过4次NBA总冠军。格林作为组织前锋的能力和对球队的领导能力被证……1岁男孩变成小黄人!医生建议这个常见水果别给娃吃太多又到了吃橘子的时节,可吃着吃着,家里原本白白净净的小家伙,突然就变成了小黄人。而且似乎不止是橘子,有些妈妈发现,娃胡萝卜吃多了,也会变黄。这是怎么回事呢?有些……27万多起售?这年头连小牛电动车都买不起!理想L8也就那样日前,小牛汽车正式上市品牌首款车型自游家NV,新车共推纯电标准版、增程版及纯电长续航版三款车型,售价分别为27。88万、28。88万及31。88万。作为一家新势力车型,小……陈妍希晒母子合照,小星星穿皮衣戴墨镜臭美,酷拽样像极爸爸陈晓10月3日晚,陈妍希久违晒出母子合照,并开心发文称:出门帅一个。所以,陈妍希这是要带着儿子小星星一起出门玩耍了吗?赶在出门之前,陈妍希还不忘带着儿子小星星一起整理下造型,……豪门悲情夜!英超第一连胜,曼联逆转C罗空门不进,罗马惨遭绝杀北京时间10月7日凌晨,欧联杯小组赛第三轮全面打响,曼联,阿森纳和罗马三大欧陆豪强纷纷登场亮相。曼联和阿森纳两支英超豪强分别取得小组赛两连胜,反观穆帅执教的罗马,在奥林匹克球场……鼎盛金师10。6今日黄金走势分析,黄金下探千七回升,多头望新10。5昨日行情回顾黄金昨日如预期的承压1730有所回修,晚间受小非农ADP数据以及美联储相关人员讲话影响,黄金回撤至预期支撑1700一线,随后行情震荡再回弹,最终日线收……华为一高管跑28公里后猝死,运动是真凶吗?10月7日晚,华为心声社区发讣告称,公司监事会副主席丁耘先生,因突发疾病于10月7日凌晨不幸逝世,享年53岁。来自华为心声社区根据华为官网消息,丁耘1969年出生,……主要产油国决定,11月起大幅减产石油输出国组织(欧佩克)与非欧佩克产油国5日在奥地利首都维也纳举行第33次部长级会议,决定自今年11月起大幅减产,在8月产量的基础上将月度产量日均下调200万桶。此次减产规模相……陈冠希与美女吐舌搞怪自拍!笑出一脸褶子超显老,打扮潮流好亲切近日,又网友晒出与陈冠希的合照,陈冠希身穿白T和橙蓝拼接披肩,看起来颇为平易近人,与女网友一同坐着拍照,虽然脸部纹路略微有些明显,但仍然难掩他的痞帅气息。随后,陈冠希更是……寒露将至金秋时节,人们载歌载舞,为伟大的祖国欢呼,为强大的国度骄傲,为生活的美好感慨,为盛世的安宁自豪。今天值班,难得有这样如此安静的时光。前天在某报刊发了一篇随感,本想搁笔一段时间。……严父慈母VS严母慈父,哪个对孩子更好?严父慈母VS严母慈父,哪个对孩子更好?中国几千年,一直在说严父慈母。我看现在的爸爸们,一个比一个温柔,递纸巾的、流泪的,一般都是爸爸。妈妈们却一个比一个刚毅。严父慈……王者荣耀黄忠小知识王者小知识黄忠鞋子之后先出把速击之枪效果更好哦。速击之枪,890金币,25攻速,被动精准普攻伤害提升30点,远程英雄翻倍60点。破军,2950金币,180点物理攻击……
滴滴调整轻快接单规则,想要接轻快订单需要排号了当下网约车行业正处于一年中的淡季,订单下降,司机收入下滑已经成为不争的事实。前段时间有师傅拍到一名网约车司机在路边等单的时候摆地摊卖起了香蕉。还有深圳的司机分享了自己等单……北京大学,投了自家教授北京大学科技成果转化基金,聚焦高端硬技术领域,致力于推动科技成果转化,助力国家创新能力提升。如今,高校也开始频繁踏入创投圈。近日,GaN基第三代半导体企业中博芯完成……中国真正的隐形首富手握全球十万亿矿产,一年进账6919亿在阅读此文之前,麻烦您点击一下关注,既方便您进行讨论与分享,又给您带来不一样的参与感,感谢您的支持!马云、王健林,明面上的富豪很多,可你知道谁才是中国真正的隐形首富吗?……哈兰德进球不庆祝,老妇人两连败手无缚鸡之力,MMN组合均获进欧冠小组第二轮全面结束,有黑马也有强队继续一蹶不振,接下来两场背靠背比赛在很大程度上会决定最终的出线权。两场背靠背谁会提前出现无望?(欧冠小组赛晋级首先考虑相关球队之间的……千元机用久了也不卡,这4款成为内行人的最爱,流畅使用三五年很多人觉得千元机不到一年就卡,那真是老思想了,其实现在千元机用久了也不卡,这4款成为内行人的最爱,流畅使用三五年第一款:红米Note11TPro1599起自己卷自己,这个……1T固态和32G内存,在轻薄本上哪一个先普及?众所周知,除了入门级别的MacBookAir以外,大多数轻薄本都默认标配16G512G,比如小新Pro16、RedmiBookPro15等等。而且你还会发现一个很奇怪的现……很少见高圆圆穿紧身裤,放大缺点突出腹部赘肉,梨型身材该避开很少见高圆圆穿紧身裤,原来是因为自己的身材不好啊!前一段时间高圆圆晒出自己的生图,简直是让人大跌眼镜。在很多人印象中,高圆圆不仅是会穿衣服,而且还是一位时尚的穿搭博主吧!因为她……2022年最全版!澳大利亚旅游探亲签证申请攻略澳大利亚旅游签证除了可以旅游还可以探亲,有的家人或者孩子是在澳大利亚工作、生活或读书,自己想去澳大利亚看望他们,那么就可能申请澳大利亚旅游探亲签证。澳大利亚600探亲签证……一个人这么对你,其实是想远离你,别再交心了文夏莫01、卷首语每一个人,生活在这个世界上,都会和周围的人发生千丝万缕的联系。就像无形中有一根线,让你和一些人紧密相连。如果,两个人都用心经营和维系彼此之间的感情……琴传天下学古琴有什么好处?有疗愈作用吗?学古琴能静心吗?学古琴也可以培养自信,在音乐的影响下习琴者会渐渐变得更有气质和自信。但琴友们可能有所不知,经常弹古琴还能对我们的身心起到疗愈作用。我们先来看一组数据。以建国后著名琴家的享……Modem(猫)与路由器?Modem(猫)与路由器一、Modem(猫)是什么?Modem,也就是猫,生活中,我们经常听到路由器和猫这两个词,对应的英语分别是Router和Modem。这里的猫……10月19日快讯iPhone14Plus减产,华为高通OPP苹果消减iPhone14Plus产量根据海外科技媒体TheInformation报道,两名参与苹果供应链的知情人士透露,苹果在开始发货的几周内正削减iPhone14Plu……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网