新開發(fā)的項(xiàng)目蚤吹,發(fā)現(xiàn)在以小米8/9 黑鯊為代表的驍龍845/855手機(jī)上班缎,頻繁閃退氨菇,閃退日志如下:
Adreno-GSL:<sharedmem_gpuobj_alloc:2713>: sharedmem_gpumem_alloc: mmap failed errno12 Out of memory
12-18 19:46:37.81430159 30430 E Adreno-GSL: <gsl_memory_alloc_pure:2297>: GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.
根據(jù)經(jīng)驗(yàn)和閃退場景判斷锦积,應(yīng)該是unity對高通部分高配芯片(集中表現(xiàn)在小米的一批高端機(jī))支持有問題假哎,釋放顯存不及時(shí)瞬捕,存在內(nèi)存泄漏,導(dǎo)致游戲進(jìn)程崩潰舵抹。
解決過程:
1肪虎、我們先通過貼圖和mesh壓縮的方式,降低了顯存開銷惧蛹。明顯延長了游戲時(shí)間扇救,但是依舊治標(biāo)不治本。
2香嗓、我們在2017.4.34(2018同一時(shí)間版本也有)的更新日志看到了可能相關(guān)的修復(fù):
Release Notes:
Android: Fixed an out of memory issue happening on Adreno devices on GLES. (1111097, 1118824)
于是升級了版本迅腔,依舊無效。
3靠娱、于是我們猜測是否改BUG的修復(fù)未應(yīng)用于32位版本沧烈,于是我們嘗試使用64位版本。結(jié)果發(fā)現(xiàn)再也未出現(xiàn)過這個(gè)閃退了像云。