加入收藏 | 设为首页 | 会员中心 | 我要投稿 52刷机网 (https://www.52shuaji.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 热门品牌 > 其他 > 正文

真我Neo7震撼发布:游戏性能新标杆!

发布时间:2026-10-27 13:30:54 所属栏目:其他 来源:DaWei
导读:  跟人吵架——昨天下午四点零七分,真我对接的老张在钉钉语音里说“Neo7发布会后天,系统层必须封板”,我手还按着键盘,机械轴咔哒咔哒响第三下,他那边背景音是空调外机嗡鸣加一声脆响,像谁把泡面桶捏扁了。我

  跟人吵架——昨天下午四点零七分,真我对接的老张在钉钉语音里说“Neo7发布会后天,系统层必须封板”,我手还按着键盘,机械轴咔哒咔哒响第三下,他那边背景音是空调外机嗡鸣加一声脆响,像谁把泡面桶捏扁了。我说“散热调度没跑通”,他秒回“你上回也说没跑通,结果呢?”——结果?结果我凌晨三点改完 thermal.conf 提交,测试妹子小雨发来截图:《原神》三十二分钟掉帧曲线平得像尺子量过,可一进《崩坏:星穹铁道》,刚过流萤对话,主摄预览框突然闪三帧绿噪。这个我敢打包票,绿噪不是 GPU 起飞,是 vendor.display.flinger 的 surface queue 被 game mode 临时截了两帧——我们改过七版,第七版压根没进 final.img。


  桌上键盘声停了半秒。窗外洒水车又来了,哗啦啦冲着绿化带,水柱打在灌木丛上那种闷闷的噗噗声,跟去年六月一样,也是赶 Neo6 SE 那会儿,也是这台洒水车。我原以为是 display HAL 层的 lock 掉了,结果抓 trace 看到 kernel scheduler 把 gpu@0x12345678 给 preempted 了十七次,就因为那个该死的“优胜劣汰”调度逻辑——它真不是字面意思。它不淘汰差的,它淘汰快的。高负载下,它认定连续三帧超 16ms 的线程是“冗余算力”,直接砍亲儿子进程优先级。我们测了三百七十二次,只有一次它留住了 render thread,那回是因为测试机堆在窗台晒到发烫,CPU 频率被 thermal throttling 拉低了,反而骗过它的“劣汰”判定。


  楼下便利店关东煮的蒸汽从通风口钻进来,混着旧塑料壳味。我啃着海带结说话,老张听筒里滋啦一声,可能信号不好,也可能他正翻 PR 清单。他问我:“能不能先阉割掉星穹铁道适配?”我没吭声。小雨刚推来新 log,adb shell dumpsys gfxinfo com.miHoYo... 后面一长串包名都糊了,她手抖打错三次。其实不用看,我闭眼都知道:第一帧 delay 是 21ms,第二帧 19ms,第三帧突降到 7ms——然后绿噪。不是显存溢出,是 vendor.gpu.binder 的 transaction buffer 在 game mode hook 里被强制 flush 了两次。这个我说不准,但 binder_transaction_log 里 timestamp 对不上,肯定有人动了 /dev/binder 的 poll_timeout。上周外包同事阿哲还信誓旦旦说改好了,结果他提交的 patch 第二天就被回退,因为测试机在充电动画阶段直接黑屏重启——不是内核 panic,是 powerhal 误判电池电压跳变,硬切到了 standby_mode,连 adb 都断了。


  我盯着屏幕右下角编译进度条卡在 98.7%,等了十八秒。这期间我刷了两遍 jenkins job 页面,清了一次本地 gradle cache,听见自己吞咽声特别大。编译完自动跑 test suite,其中第四个 case 崩了:SurfaceFlingerClient#setFrameRate() 返回 -22(EINVAL),而 logcat 里只有一行:“FPS override denied: not foreground app”。可那版系统根本不检查 foregroud,它只认 activity stack 的 top record 的 uid——我们 mock 过 uid,它还是拒。最后发现是厂商悄悄往 frameworks/base/core/jni/android_view_Surface.cpp 里塞了段 if (uid == 1000) return;,1000 是 system,而测试用的 demo apk 是 10482。没人通知。阿哲说他看到 git blame 作者是去年离职的实习生,签名留的是“test_0327”。


产品概念图,仅供参考

  今天早上七点,我蹲在茶水间烧水,等水开的当口想起前年双十一,同样赶真我某款机,也是游戏模式封板日,也是绿噪。那次我们半夜三点去产线撬开一台工程机拆主板,拿热风枪吹松 camera ISP 模块,发现底下焊盘有氧化——不是软件问题,是硬件批次导致 ISP 输出 YUV420SP 格式偏移半像素,game mode 的 overlay renderer 正好卡在这个边界上做 alpha blend。后来厂方赔了二十台样机,全堆在我工位窗台,晒到发烫,屏幕边缘泛黄。今年没拆硬件,但绿噪还在。真我发布会稿子里写“震撼发布:游戏性能新标杆!”,他们标点用得真准,感叹号收得干脆。可我敢打包票,那版系统的 game mode 代码里还挂着三个 #ifdef DEBUG_LOG 的开关没关,其中一个 log level 设成了 VERBOSE,每帧打两百多条,就藏在 vendor/display/overlay/fence_manager.cpp 第 412 行。关不关?我懒得提了。PR 已经 merge 到 mainline,下周就烧片。


  刚才阿哲微信问我“要不要顺手把 thermal hal 的 max freq lock 放开一点”,我说“放开它干嘛,等它自己触发优胜劣汰?”他回了个捂脸表情。小雨刚发来新视频,这次是《明日之后》,加载地图时右上角时间戳跳了两帧,帧间隔是 33ms 和 12ms,不是均匀丢帧。我截图发给老张,他回:“OK 收到,先上线。” 我把截图删了。反正发布会 PPT 里那个“新标杆”的动画特效,压根没调用 real-time scheduler,它跑在主线程,靠 Choreographer.postFrameCallback 勉强撑住。至于“优胜劣汰”——它优的,是让所有机型表现一致;劣的,是让所有人忘记当初为什么需要它。


  我点了杯关东煮,没要萝卜。现在等下一版 OTA,看它会不会把 thermal.conf 里的 target-temp-override=72 这行删掉。不删也行,我明早八点再 submit 个 CR。只要别再让我凌晨三点对着 logcat 数绿噪帧数就行。

(编辑:52刷机网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章