真我13 Pro至尊版:性能影像双旗舰新标
|
真我13 Pro至尊版:性能影像双旗舰新标?我原以为是吹牛,结果编译完第三轮systemui就信了——不是它多强,是它把别的厂清得特别干净。那个周五下午三点十七分,我盯着logcat里一串又一串的vendor overlay fallback fail,突然笑出声。旁边外包老张探头看一眼说“你疯啦”,我说没疯,是看到vendor_dlkm模块自动卸载了两块旧ISP驱动,连提示都没弹。这个我敢打包票,因为当时测试机堆在窗台晒到发烫,屏幕反光里还能看见自己眉毛拧着。 楼下便利店的关东煮摊子准时五点出摊,竹签插在萝卜块上晃,热气一冲,我手机通知栏图标全歪了半像素——那版系统renderthread对surfaceflinger的帧调度偏移刚好卡在27ms临界点,但你猜怎么着?它不崩,它改图层z-order重新排布,硬把notification shade拉回正轨。我试了七次,每次都是同一秒触发。测试妹子小林蹲在角落拿红米Note12测对比机,耳机线缠着手腕绕了三圈,她报数声音越来越小:“……第十八秒,小米这台白屏了。”我说别念了,你手抖得都影响touchscreen calibration offset了。
产品概念图,仅供参考 编译等待时窗外洒水车经过,水柱打在对面楼玻璃幕墙上炸开一片雾,我看呆了三秒。就那三秒,Gradle输出一行warning:[overlay] conflict resolution: vendor/realme/camera2 override base/core/hal/camera, force-merge enabled。Force-merge。不是disable,不是skip,是force-merge。这词我在高通文档里见过三次,每次后面跟着的都是“DO NOT ENABLE IN PRODUCTION”。可它就在那儿,绿底黑字,像超市打折标签贴在主板BOM表上。着急的是厂商对接人老周,他微信连发六条语音,最后一条带喘:“兄弟,明天九点验收会,PPT里那页‘自研影像引擎’能不能先填个占位符?”我没回。盯着AS里打开的CameraProvider@2.7-impl.so反编译窗口,符号表里有十二个叫do_optimize_XXX的函数,其中八个标注了// DEAD CODE // REMOVED VIA GATEKEEPER。Dead code。removal via gatekeeper。不是编译期裁剪,是运行时动态擦除——就像有人半夜撬开你的固件分区,拿橡皮把没用的字全抹了,还顺手给你补了层新漆。这个我说不准,因为trace里面看不到gatekeeper daemon调用栈,只有一行syslog:rm -rf /vendor/etc/camera/conf_legacy/ done。done。就这么done了。 桌上的机械键盘声特别吵。青轴,空格键每次按下去都有延迟反馈,咔、嗒、嗡——嗡声是电容振荡器在啸叫。我删掉三行patch,加一行binder thread pool resize,然后发现display HAL的fbdev layer居然开始复用graphics HAL的memcache池。不是共享,是复用。两个hal共用同一块ion heap,buffer descriptor都混着编号。我截了十一次dumpsys SurfaceFlinger --latency,其中七次显示frame_time < 8ms,另外四次跳到42ms——但所有帧都在VSync deadline前提交了。没丢帧。就是timing曲线像心电图进了ICU。 跟老张吵架是在晚上八点。他说“你非得抠死这个sync timing干啥,用户又看不到”,我把dumpsys gfxinfo导出csv甩过去,指着那一列draw_count从193突降到0再飙到371的地方:“这儿,camera preview切到录像瞬间,SurfaceFlinger直接重跑onFrameAvailable流程,绕过了gralloc buffer cache invalidation”。老张叼着棒棒糖含糊说“那不挺好”,我说不是挺好,是它把旧gralloc handle当成脏指针回收了两次,第三次申请的时候内核直接扔了个EPERM。我们测了三百七十二台真我13 Pro至尊版,只有一台报EPERM——就在那个凌晨一点零三分,烧机到第七小时,风扇噪音大得盖住了隔壁修眉店放的《卡农》。这台机子现在还在我桌上,屏幕裂了,但我留着它开机跑camera HAL stress test。 小林今早送来一份日志压缩包,解压后第一眼就看到vendor.log里混着两行kernel log:[ 5.672103] pmic_glink: tx_queue_full: no space left in tx queue(来自QCPM),和[ 12.339451] wlan: qcom_wlan_firmware_load: firmware download timeout(来自WCNSS)。两个不同soc的错误混在同一个dmesg buffer里——不是logcat转储,是kernel ring buffer本身乱序。我查了设备树,qcom,pm8150b和qcom,wcn6855确实走同一根smp2p channel。但为什么error timestamp会挤进wlan init阶段?这个问题我不打算深挖了。反正下周一我就得交system_ext partition的适配patch,而他们刚把需求文档里的“需兼容ColorOS 14.2”改成“优先适配RealmeUI 5.0 with Realme Engine 3.7”。Engine 3.7。这名字听着像健身App。 我手边还有三台真我13 Pro至尊版没刷最新OTA,等周一验收完再拆。现在先把AS里那行// TODO: investigate sync timing delta in HAL v2.7 impl删掉。删之前截图存了云盘——就当留个纪念。毕竟以后真要碰上类似情况,至少知道该去哪找那个被force-merged掉的conf_legacy目录。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

