文章

如何正确开启Vulkan

如何正确开启Vulkan

感谢名单

  • 潘多拉内核开发组
  • 微光TWK

背景

Marble(N12T) 已可启用 Vulkan,实测却直接不开机——去年 12 月潘多拉就踩过同样坑。抱着“此一时彼一时”的心态,再做一次可行性验证。

验证过程

  1. 先找调用者
    若某 prop 无调用者,它就只是“虚空开关”。
    示例:dalvik.vm.ps-min-first-save-msAndroidRuntime.cpp:919 直接硬编码,可搜到二进制;但模块里的大多数 prop 在源码/二进制中均无结果,可剔除。

  2. 精简后机器顺利开机
    dumpsys SurfaceFlinger | grep -i vulkan 检查 → 无 Vulkan 输出,说明模块无效,用户反馈纯属“安慰剂效应”。

  3. 再次翻车的根源:未回归源码
    HamJTY 提醒后,逐条核对 prop:

prop 名称允许值实际值结果
debug.hwui.rendererskiavk / skiaglvulkanthreaded
debug.stagefright.renderengine.backendgles / threadedvulkan
debug.renderengine.backendskiagl* / skiavk*vulkan
debug.rs.visual非 0 即开调试vulkan❌(与 Vulkan 无关)
debug.hwui.use_vulkan需配合上一条true
缺失关键项   
debug.renderengine.vulkantrue 才可启用 Vulkan未设置

补上 debug.renderengine.vulkan=true 后,Vulkan 才真正生效。

教训

  • 可行性验证必须回归源码
  • 切忌盲信社区“成功案例”
  • 留足时间做最小可复现集合(MVP)

注意:只建议在安卓15及以上开启使用

本文由作者按照 CC BY 4.0 进行授权