Skip to content

BOTWRecompAndroid 0.3.3 (beta 30): Mali crashes after long sessions, black grass on Mali, low-RAM phones

Pre-release
Pre-release

Choose a tag to compare

@mamcjr mamcjr released this 08 Nov 19:29
· 6 commits to main since this release

Beta 30. Foco em Mali e em celulares com pouca RAM: menos quedas depois de muito tempo de jogo, a grama preta corrigida e menos memória usada abaixo de 6 GB.

Correções

  • Quedas e lentidão na Mali depois de ~30 minutos (#310, #316): os logs mostraram que o app guardava todos os pipelines gráficos que já tinha criado, e o driver da Mali reserva memória para cada um (5.500 pipelines e 2,3 GB na hora da queda). Agora a Mali guarda no máximo 1.500: os que ficam sem uso são descartados e refeitos do cache se o jogo voltar a precisar deles.
  • Grama preta e esticada na Mali (#307, #258): a grama lê uma textura num formato que a GPU não consegue filtrar de forma linear. Nesses drivers, essas texturas passam a ser lidas sem filtro (onde o driver suporta, nada muda). Obrigado ao Propinbo pela análise (#244).
  • Queda em "Abra os olhos" no modo nativo (#305): uma chamada a uma função vazia agora devolve zero, como já acontecia no modo recompilado.

Celulares com menos de 6 GB de RAM

Só nesses aparelhos, para o Android não fechar o jogo por falta de memória:

  • Texturas com mipmaps começam no segundo nível (metade do tamanho, um quarto da memória).
  • Blocos de memória da GPU menores e um cache de buffers proporcional à RAM.
  • A thread que prepara os quadros roda nos núcleos mais rápidos.

Num POCO, forçando esses cortes, o jogo seguiu a 30 fps com a mesma imagem e usou 544 → 336 MB de memória de GPU. Num tablet de 4 GB (Galaxy Tab A9+) o jogo agora chega ao mundo, mas ainda fica lento demais e fecha depois de alguns minutos: 4 GB continua abaixo do necessário.

Não precisa compilar o código do jogo de novo: é só instalar por cima da 0.2.x ou da 0.3.x.

Se você tem Mali, mande o log de uma sessão longa (Configurações > Arquivos > Salvar um arquivo de log): ele agora mostra a memória, os pipelines e as texturas.

Problemas conhecidos

  • 1.0.0 em combate: os inimigos podem deixar linhas pretas ao morrer, e o jogo pode fechar na luta. Use a 1.8.2 ou a 1.9.0 por enquanto.
  • A chuva cai mais devagar que no console.
  • A grama baixa ao longe só aparece de perto.
  • No driver de fábrica da Qualcomm, o fundo do menu de pausa fica preto.
  • Modo nativo: o Link às vezes pisca ao levar o primeiro golpe.

Nenhum arquivo do jogo vem incluído. Testada no POCO F7 Ultra (Adreno 830, Turnip) e num Galaxy Tab A9+ (Adreno 619, Turnip). Para instalar e configurar: 0.1.0-beta. Créditos no README.


Beta 30. Focused on Mali and low-RAM phones: fewer crashes after long sessions, the black grass fixed, and less memory used below 6 GB.

Fixes

  • Crashes and slowdowns on Mali after ~30 minutes (#310, #316): the logs showed that the app kept every graphics pipeline it had ever made, and Mali's driver holds memory for each one (5,500 pipelines and 2.3 GB at the crash). Mali now keeps at most 1,500: unused ones are dropped and rebuilt from the cache if the game needs them again.
  • Black, stretched grass on Mali (#307, #258): the grass reads a texture in a format the GPU can't filter linearly. On those drivers such textures are now read without filtering (nothing changes where the driver supports it). Thanks to Propinbo for the analysis (#244).
  • Crash at "Open your eyes" in Native mode (#305): a call to an empty function now returns zero, as Recompiled mode already did.

Phones with less than 6 GB of RAM

Only on those devices, so Android doesn't close the game for lack of memory:

  • Mipmapped textures start at their second level (half the size, a quarter of the memory).
  • Smaller GPU memory blocks and a buffer cache that scales with the RAM.
  • The thread that prepares the frames runs on the fastest cores.

On a POCO with these cuts forced, the game held 30 fps with the same image and used 544 → 336 MB of GPU memory. On a 4 GB tablet (Galaxy Tab A9+) the game now reaches the world, but it's still far too slow and closes after a few minutes: 4 GB remains below what's needed.

No need to build the game code again: just install over 0.2.x or 0.3.x.

If you have a Mali, please send the log of a long session (Settings > Files > Save a log file): it now shows the memory, pipelines and textures.

Known issues

  • 1.0.0 in combat: enemies can leave black lines when they die, and the game can close during a fight. Please use 1.8.2 or 1.9.0 for now.
  • Rain falls slower than on the console.
  • Short grass in the distance only appears up close.
  • On Qualcomm's stock driver, the pause menu's background is black.
  • Native mode: Link sometimes flickers on the first hit he takes.

No game files are included. Tested on a POCO F7 Ultra (Adreno 830, Turnip) and a Galaxy Tab A9+ (Adreno 619, Turnip). To install and set up: 0.1.0-beta. Credits in the README.