骁龙845/855在unity上闪退解决

新开发的项目,发现在以小米8/9 黑鲨为代表的骁龙845/855手机上,频繁闪退,闪退日志如下:

Adreno-GSL:: sharedmem_gpumem_alloc: mmap failed errno12 Out of memory
12-18 19:46:37.81430159 30430 E Adreno-GSL: : GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.

根据经验和闪退场景判断,应该是unity对高通部分高配芯片(集中表现在小米的一批高端机)支持有问题,释放显存不及时,存在内存泄漏,导致游戏进程崩溃。

解决过程:

1、我们先通过贴图和mesh压缩的方式,降低了显存开销。明显延长了游戏时间,但是依旧治标不治本。

2、我们在2017.4.34(2018同一时间版本也有)的更新日志看到了可能相关的修复:

Release Notes:

Android: Fixed an out of memory issue happening on Adreno devices on GLES. (1111097, 1118824)

于是升级了版本,依旧无效。

3、于是我们猜测是否改BUG的修复未应用于32位版本,于是我们尝试使用64位版本。结果发现再也未出现过这个闪退了。

你可能感兴趣的:(骁龙845/855在unity上闪退解决)