Skip to content

LAS Recomp for Android 0.5.7 (preview): less CPU work on Mali, Xclipse and Qualcomm's driver / menos trabalho de CPU na Mali, Xclipse e driver da Qualcomm

Pre-release
Pre-release

Choose a tag to compare

@mamcjr mamcjr released this 27 Oct 11:33
· 1 commit to main since this release

English

Less CPU work on phones whose driver can't map the game's memory on the GPU: Mali, Samsung Xclipse, Qualcomm's own driver, and Turnip with Game memory on the GPU turned off.

  • Vertex data copied only where it changed. On those drivers the game's memory reaches the GPU through CPU copies, and every vertex and index buffer was copied each frame: 250-490 MB every 2 s on a Mali-G57 (issue #2). The app now notices which pages of the game's memory the game writes (they're watched like a write-protected page: the first write after a frame is noted) and copies only those into a cache the GPU keeps. Texture checks use the same information. From BOTWRecompAndroid, where it halved the render thread's time on Qualcomm's driver.
  • The app's version now shows in the start screen's lower right corner (it said nothing before, so it was hard to tell which version was installed).

Updating from 0.5.6 doesn't build the game code again. Saves aren't touched. If something looks wrong on one of those drivers, it can be turned off for a test with LARECOMP_NO_WRITE_TRACKING=1.

Validation: release APK built and signed with the same key as the previous versions. On the POCO F7 Ultra (Adreno 830, Turnip) with a Mali-like path simulated (Vulkan 1.1, no dynamic rendering, synchronization2 or extended dynamic state, game memory through CPU copies, 32-bit shader math), the same route on and off - Mysterious Woods, Mabe Village outside the Library, the Library, and out again, 60 fps cap: CPU copies in the field went from 769 to 123 MB every 2 s, in the Library from 109 to 48 MB, with the same picture at each stop. The frame rate didn't change on this phone, whose CPU has room to spare; on a slower phone the copies weigh more. Not tested on a real Mali, Xclipse or Qualcomm driver here. The version label is checked in the built APK, not seen on a phone.

Experimental preview for Android 11+ / ARM64. It does not include any files extracted from the game.


Português

Menos trabalho de CPU em celulares cujo driver não consegue mapear a memória do jogo na GPU: Mali, Samsung Xclipse, o driver da própria Qualcomm e o Turnip com a Memória do jogo na GPU desligada.

  • Dados de vértices copiados só onde mudaram. Nesses drivers a memória do jogo chega à GPU por cópias pela CPU, e todos os buffers de vértices e índices eram copiados a cada quadro: 250 a 490 MB a cada 2 s numa Mali-G57 (issue #2). Agora o app percebe quais páginas da memória do jogo o jogo escreve (elas são vigiadas como páginas protegidas contra escrita: a primeira escrita depois de um quadro é anotada) e copia só essas para um cache que a GPU mantém. A conferência de texturas usa a mesma informação. Vem do BOTWRecompAndroid, onde isso cortou pela metade o tempo da thread de render no driver da Qualcomm.
  • A versão do app agora aparece no canto inferior direito da tela inicial (antes não aparecia, e era difícil saber qual versão estava instalada).

Atualizar a partir da 0.5.6 não compila o código do jogo de novo. Os saves não são alterados. Se algo parecer errado num desses drivers, dá para desligar para testar com LARECOMP_NO_WRITE_TRACKING=1.

Validação: APK de release compilado e assinado com a mesma chave das versões anteriores. No POCO F7 Ultra (Adreno 830, Turnip) simulando o caminho da Mali (Vulkan 1.1, sem renderização dinâmica, synchronization2 nem estado dinâmico estendido, memória do jogo por cópias pela CPU, shaders de 32 bits), a mesma rota com e sem - Floresta Misteriosa, Vila Mabe em frente à biblioteca, a biblioteca e a saída, limite de 60 fps: as cópias pela CPU no campo foram de 769 para 123 MB a cada 2 s, na biblioteca de 109 para 48 MB, com a mesma imagem em cada parada. A taxa de quadros não mudou neste celular, cuja CPU tem folga; num celular mais lento as cópias pesam mais. Não testado numa Mali, Xclipse ou driver da Qualcomm de verdade aqui. O rótulo da versão foi conferido no APK, não visto num celular.

Preview experimental para Android 11+ / ARM64. Não inclui arquivos extraídos do jogo.