着色器缓存:加快光影包重载速度
为什么需要着色器缓存
当你切换光影包或重新加载光影时,MobileGlues 需要把桌面 GLSL 着色器翻译成 GLSL ES 再编译。整个过程涉及语法转换、着色器编译、链接等步骤,在 Android 设备上可能需要几秒到几十秒。缓存机制把编译结果保存下来,下次加载同一个光影包时直接复用二进制文件。
缓存存放在哪里
缓存文件和运行日志一起存在 MobileGlues 的工作目录下,默认路径 /sdcard/MG/。缓存文件由 MobileGlues 核心库自动管理,不需要手动操作。
缓存对哪些情况有效
- 重启启动器后重新打开游戏 — 缓存保留,光影加载秒开
- 切换光影包后再切回来 — 如果缓存还在,第二次加载更快
- 同一个光影包的小版本更新 — 如果着色器文件没变,缓存仍有效
缓存失效的情况
- 更新 MobileGlues 版本 — 新核心库可能使用不同的着色器二进制格式
- 光影包更新后着色器文件发生变化 — 检测到变化会重新编译
- 手动清除了存储目录或卸载重装 MobileGlues
缓存能省多少时间
这取决于光影包的复杂度和你的设备性能。简单光影包在高速设备上缓存前后差异可能不明显,复杂光影包在中低端设备上能节省十几秒的加载时间。
缓存文件大小
单个光影包的着色器缓存通常在几百 KB 到几 MB 之间。如果你切换了很多不同的光影包,缓存总量可能比较可观。可以手动清理 /sdcard/MG/ 目录释放空间。