如何正确开启Vulkan
如何正确开启Vulkan
感谢名单
- 潘多拉内核开发组
- 微光TWK
背景
在 Marble(N12T) 已可启用 Vulkan,实测却直接不开机——去年 12 月潘多拉就踩过同样坑。抱着“此一时彼一时”的心态,再做一次可行性验证。
验证过程
先找调用者
若某 prop 无调用者,它就只是“虚空开关”。
示例:dalvik.vm.ps-min-first-save-ms在AndroidRuntime.cpp:919直接硬编码,可搜到二进制;但模块里的大多数 prop 在源码/二进制中均无结果,可剔除。精简后机器顺利开机
用dumpsys SurfaceFlinger | grep -i vulkan检查 → 无 Vulkan 输出,说明模块无效,用户反馈纯属“安慰剂效应”。再次翻车的根源:未回归源码
HamJTY 提醒后,逐条核对 prop:
| prop 名称 | 允许值 | 实际值 | 结果 |
|---|---|---|---|
debug.hwui.renderer | skiavk / skiagl | vulkanthreaded | ❌ |
debug.stagefright.renderengine.backend | gles / threaded | vulkan | ❌ |
debug.renderengine.backend | skiagl* / skiavk* | vulkan | ❌ |
debug.rs.visual | 非 0 即开调试 | vulkan | ❌(与 Vulkan 无关) |
debug.hwui.use_vulkan | 需配合上一条 | true | ❌ |
| 缺失关键项 | |||
debug.renderengine.vulkan | true 才可启用 Vulkan | 未设置 | ❌ |
补上 debug.renderengine.vulkan=true 后,Vulkan 才真正生效。
教训
- 可行性验证必须回归源码
- 切忌盲信社区“成功案例”
- 留足时间做最小可复现集合(MVP)
注意:只建议在安卓15及以上开启使用
本文由作者按照 CC BY 4.0 进行授权