您的位置:首页 >> 春秋战国

小米6成功适配GPU经验个人!

日期:2023年06月04日  来源:春秋战国

/p>

然后先看 OpenHarmony 的 mesa3d 的编码,早先我对比过 platform_ohos.c 跟 platform_android.c 的区别,关联性是有,但是整体而言比较多种不同。

同时我也注意到了注释之前有说明 platform_ohos 是基于 platform_android 删减。

经过对比,我把 android-rpi 对 mesa 的删减手动同步到了 OpenHarmony 的 mesa 之前。

删减如下:

经过重新载入,封装,测试例子再一需要正常人辨识,前后为时四个多月,从 3.2beta3 跨到了 3.2beta4。

cpu 化学合转成+cpu 过场组合下,线程 OpenGLApi 开展三角形的手绘:

竣工 GPU 过场后,需要感知到帧率有提升,打个比方,cpu 化学合转成+cpu 过场在竖屏旋转下只有 7 帧/秒,cpu 化学合转成+gpu 过场下能达致 14 帧/秒,有提升但是几乎Emily严重,经过多方谈起仍未解决情况。

在初步打通 gpu 线程之后,夜里脑子仍在思考着情况的解决办法,迅速排列组合,就此明白了 3.2beta4 的一个应于具体内容,RS 侧背书 GPU 化学合转成。

然后又联都和到了几个月前我看到过的一个关于 gpu 的 issue,描述到了【graphic_standard_feature_rs_enable_eglimage】这个实例。

之后爬起来把这个实例分设转成了 true,载入封装一套走去起,之后竟然给干转成了,圆润度可感知的达致了 60fps 那种圆润。

通过桌上型电脑拥护 4 可视 GPU 的经历,我总结成 GPU 可视的思路如下:

①不竣工 GPU 功能,在 CPU 化学合转成+CPU 过场的生态环境下,断定 GPU 飞轮正常人工作。

foundation/graphic/graphic_2d/rosen/modules/render_service/core/pipeline/rs_base_render_engine.cpp之前的NeedForceCPU之前删减一律cpu化学合转成//bool forceCPU = false;bool forceCPU = true;vendor/raspberrypi/rpi4/config.json之前分设不竣工gpu"graphic_standard_feature_ace_enable_gpu = false",

②竣工部份 GPU 功能,在 CPU 化学合转成+GPU 过场的生态环境下,断定 GPU 能适当过场。

foundation/graphic/graphic_2d/rosen/modules/render_service/core/pipeline/rs_base_render_engine.cpp之前的NeedForceCPU之前删减废弃cpu化学合转成//bool forceCPU = false;bool forceCPU = true;vendor/raspberrypi/rpi4/config.json之前分设竣工gpu"graphic_standard_feature_ace_enable_gpu = true",

③竣工 GPU 化学合转成+GPU 过场,加在速 OpenHarmony 位图辨识。

foundation/graphic/graphic_2d/rosen/modules/render_service/core/pipeline/rs_base_render_engine.cpp之前的NeedForceCPU之前还原废弃cpu化学合转成bool forceCPU = false;vendor/raspberrypi/rpi4/config.json之前分设竣工gpu,同时竣工gpu化学合转成"graphic_standard_feature_ace_enable_gpu = true","graphic_standard_feature_rs_enable_eglimage = true"

同时 OpenHarmony Ubuntu的 GPU 植入也可以参考Miranda方面的植入。

黑莓 6 的 GPU 植入

黑莓 6 的 GPU 是 Adreno 540,经过网上关键字档案资料 mesa 飞轮也就是说的名字是 freedreno。

所以载入实例也就是说为:

-Dplatforms=ohos -Degl-native-platform=ohos -Ddri-drivers= -Dgallium-drivers=freedreno -Dvulkan-drivers= -Dgbm=enabled -Degl=enabled -Dcpp_rtti=false -Dglx=disabled -Dtools= -Ddri-search-path=/vendor/lib64/chipsetsdk

但是载入封装之后调试简便的测试 gpu 服务器端显然没有有调试,signal 11 服务器端崩解了。

通过 /data/log/faultlog/temp 下崩解存档断定 build_id_find_nhdr_callback 存在情况。

通过在函数内部加在 print 打印的方式,对比分析之后断定是 offset 测算不适当,之后我意外注意到了 OpenHarmony 的【third_party_libunwind】有删减过 build-id。

经过劳看 pr 审核注意到了一般而言这两项编码,原来是 oh 的载入框架在载入成的 elf 文件头增加在了一个具体来说的 note 段,mesa 常用标准的方式去解析 note 具体内容加在剧区块测算成错,必须处理一下区块情况。

然而 mesa3d 这个Ubuntu gpu 飞轮常年没有人维护,这个情况始终没有有渗入成来,这给我想到了。。。同步删减之后解决线程崩解情况。

同时应用服务器端线程也能正常人辨识了:

但是当我开展植入第二步,CPU 化学合转成+GPU 过场时黑屏,没有有辨识具体内容,又是一番加在打印然后调试,之后注意到这两项编码,freedreno 之前有一律分设交叉。

在 hilog 之前注意到 Assertion failed:

劳看源码注意到 a5xx 都和的C#之前有 pitch 的正确性,【Brown0x3f】相当于判断能否被 64 正数。

然后我往前寻觅 buffer 分设的某个之外尝试着把 pich 一律 64 交叉,再一能辨识成图像。

不黑屏了,但是几乎辨识不正常人,很明显能感知到是长度没有有交叉加在剧错位了。

就此在 SIG-OpenGfxDrv 群里的 lhl 神明督导下,删减 display 可视层之前的 WIDTH_ALIGN 实例为 64,转顺利解决辨识情况。

断定 CPU 化学合转成+GPU 过场辨识能正常人工作之后,竣工 GPU 化学合转成+GPU 过场,转顺利调试,黑莓 6 再一可视 GPU 转顺利。

桌上型电脑拥护 4 和黑莓 6 的 GPU 可视,从编码存量来说,可视编码真的大多,但是又精神状态困难,在此记录一下我走去过的东北侧,想要我走去过的东北侧,后来者不用先掉下去。

眼干用瑞珠聚乙烯醇滴眼液可以吗
常州男科医院
上海白癜风医院哪里最好
英太青和芬必得哪个效果好
武威哪家白癜风医院最权威
友情链接