Repository navigation
Releases: phforner0/Xendroid-Plus
Release list
Xendroid+ 87b5c00f (build 65)
Gears of War 3 shows its colors: in play, the image was washed out, almost gray.
- Gears of War 3: the image is no longer washed out.
Full Changelog: XenDroid-v63-732c64db...XenDroid-v65-87b5c00f
✅ Tested on a POCO F7 (Snapdragon 8s Gen 4): the first checkpoint, at 30 FPS.
🇧🇷 Em português
O Gears of War 3 mostra suas cores: na partida, a imagem saía lavada, quase cinza.
- Gears of War 3: a imagem não sai mais lavada.
✅ Testado num POCO F7 (Snapdragon 8s Gen 4): o primeiro checkpoint, a 30 FPS.
📜 Every change since build 63 · 1 pull request, 2 commits
- #34 Gears of War 3: imagem lavada, quase cinza — resolves não gravam mais em texturas empilhadas · @phforner0
- Resolves store into single-layer textures only (Gears of War 3's colors) ·
f908b975
- Resolves store into single-layer textures only (Gears of War 3's colors) ·
Built by Xendroid+ #65 from 87b5c00f, signed with the release key.
| File | Size | SHA-256 |
|---|---|---|
XenDroid_Release_87b5c00f.apk |
40.4 MiB | e581359fa8dcf46c0c3267ea17775c079214119b259e8c1c3cb3092186a67734 |
Xendroid+ 732c64db (build 63)
Rise of the Tomb Raider now renders: its main menu was a flat blue screen, and now the menu shows its room and the first level is drawn.
- Rise of the Tomb Raider: the main menu and the first level render.
Full Changelog: XenDroid-v60-db981f83...XenDroid-v63-732c64db
✅ Tested on a POCO F7 (Snapdragon 8s Gen 4): the main menu and the start of the first level, at about 20 FPS.
🇧🇷 Em português
O Rise of the Tomb Raider passa a renderizar: o menu principal era uma tela azul chapada, e agora o menu mostra a sala e a primeira fase aparece.
- Rise of the Tomb Raider: o menu principal e a primeira fase renderizam.
✅ Testado num POCO F7 (Snapdragon 8s Gen 4): o menu principal e o começo da primeira fase, a cerca de 20 FPS.
📜 Every change since build 60 · 1 pull request, 5 commits
- #33 Rise of the Tomb Raider volta a renderizar: resolves com sinal, draws sem profundidade, buffers de vértice do pixel shader e memexport · @phforner0
- Frame dump: 3D textures, clip and viewport, VS constants, small vertex buffers ·
bcfa32b1 - Rise of the Tomb Raider: signed resolves, integer fetches, depth clamped draws without depth ·
74d48812 - Frame dump: the bool and loop constants of each draw ·
086d8887 - Pixel shaders' vertex buffers uploaded; memory export for Rise of the Tomb Raider ·
a1f84da8
- Frame dump: 3D textures, clip and viewport, VS constants, small vertex buffers ·
Built by Xendroid+ #63 from 732c64db, signed with the release key.
| File | Size | SHA-256 |
|---|---|---|
XenDroid_Release_732c64db.apk |
40.4 MiB | 358a882877849cd8657d4532eb1b1d8594650ddbceddb51dca3d56e35d7ee337 |
Xendroid+ db981f83 (build 60)
Need for Speed: Most Wanted no longer recreates textures every frame, and the command thread writes far fewer descriptor sets on Turnip.
- Need for Speed: Most Wanted: 7 textures a frame were destroyed and created again at every load; now none.
- Turnip: the constant buffers use dynamic offsets (Red Dead Redemption: 7260 descriptor set writes a frame -> 14), and texture descriptor sets written earlier in a frame are reused.
Full Changelog: XenDroid-v58-1066f8fd...XenDroid-v60-db981f83
🇧🇷 Em português
O Need for Speed: Most Wanted não recria mais texturas a cada quadro, e a thread de comandos escreve bem menos conjuntos de descriptors no Turnip.
- Need for Speed: Most Wanted: 7 texturas por quadro eram destruídas e criadas de novo a cada carga; agora nenhuma.
- Turnip: os buffers de constantes usam offsets dinâmicos (Red Dead Redemption: 7 260 escritas de conjuntos de descriptors por quadro → 14), e conjuntos de texturas escritos antes no mesmo quadro são reaproveitados.
📜 Every change since build 58 · 1 pull request, 6 commits
- #32 Thread de comandos: constantes dinâmicas no Turnip, conjuntos de textura reaproveitados, memos; NFS sem recriar texturas a cada quadro · @phforner0
- Remember the last texture found per key and the last view per texture ·
87739627 - Reuse texture descriptor sets written earlier in the frame ·
e445ee4d - Recreate for promotion only textures a recreation promotes ·
b3bc2cd3 - Diagnostics: page protections, descriptor set writes, promotion queue ·
bbabd191 - Dynamic constant buffers on Turnip, with a fixed float constant range ·
d9816ebe
- Remember the last texture found per key and the last view per texture ·
Built by Xendroid+ #60 from db981f83, signed with the release key.
| File | Size | SHA-256 |
|---|---|---|
XenDroid_Release_db981f83.apk |
40.4 MiB | 7a64e27a1070a191d4f124f95bf3112b75aef42fb4b76e18182e0a829e280758 |
Xendroid+ 1066f8fd (build 58)
Need for Speed: Most Wanted no longer freezes before its first race with the option that keeps the GPU's data on CPU writes.
- Need for Speed: Most Wanted: with shared_memory_preserve_gpu_writes on, it reaches the first race (it froze where the prologue gives way to the 3D scene).
Full Changelog: XenDroid-v56-ae3d8293...XenDroid-v58-1066f8fd
🇧🇷 Em português
O Need for Speed: Most Wanted não trava mais antes da primeira corrida com a opção que preserva os dados da GPU em escritas da CPU.
- Need for Speed: Most Wanted: com shared_memory_preserve_gpu_writes ligada, ele chega à primeira corrida (travava onde o prólogo dá lugar à cena 3D).
📜 Every change since build 56 · 1 pull request, 4 commits
- #31 NFS não trava mais com o preserve, um futex a menos por submissão e diagnóstico das texturas recarregadas · @phforner0
Built by Xendroid+ #58 from 1066f8fd, signed with the release key.
| File | Size | SHA-256 |
|---|---|---|
XenDroid_Release_1066f8fd.apk |
40.4 MiB | 7279f60c49abd0b88cfcd4c4a9f74a4126fae6bd03a9e4da5f232e06094b91f4 |
Xendroid+ ae3d8293 (build 56)
Games that don't read back what the GPU renders no longer pay for copying it into game memory.
- Every game: the output of resolves is copied back into game memory only once the game reads it (Need for Speed: Most Wanted copied 77 MB a frame it never reads: 18.6 -> 21.2 fps at the first race's start line).
- Need for Speed: Most Wanted: the processor's signal in the middle of each frame is noticed 0.4 ms sooner.
Full Changelog: XenDroid-v54-f280e7be...XenDroid-v56-ae3d8293
🇧🇷 Em português
Jogos que não leem de volta o que a GPU desenha deixam de pagar pela cópia disso para a memória do jogo.
- Todos os jogos: a saída dos resolves só é copiada de volta para a memória do jogo quando o jogo a lê (o Need for Speed: Most Wanted copiava 77 MB por quadro que nunca lia: 18,6 → 21,2 fps na largada da primeira corrida).
- Need for Speed: Most Wanted: o sinal do processador no meio de cada quadro é percebido 0,4 ms mais cedo.
📜 Every change since build 54 · 1 pull request, 4 commits
- #29 Resolves copiados só quando o jogo lê, em todos os jogos; espera do NFS em 200 µs; diagnóstico de barreiras · @phforner0
Built by Xendroid+ #56 from ae3d8293, signed with the release key.
| File | Size | SHA-256 |
|---|---|---|
XenDroid_Release_ae3d8293.apk |
40.4 MiB | 9e3455a8fc2c8aa60df127fd31571246915a3242482b83b9725978aeb1c397cd |
Xendroid+ f280e7be (build 54)
Need for Speed: Most Wanted runs 14-21% faster.
- Need for Speed: Most Wanted: the output of its 122 resolves a frame, 77 MB its processor never reads, is no longer copied back into game memory (18.6 -> 21.2 fps at the first race's start line).
- Need for Speed: Most Wanted: its reflection cube map reloads only the face and level written since its last load (2.3 ms less GPU work a frame).
Full Changelog: XenDroid-v52-6a7e630e...XenDroid-v54-f280e7be
🇧🇷 Em português
O Need for Speed: Most Wanted roda 14–21% mais rápido.
- Need for Speed: Most Wanted: a saída dos seus 122 resolves por quadro, 77 MB que o processador dele nunca lê, não é mais copiada de volta para a memória do jogo (18,6 → 21,2 fps na largada da primeira corrida).
- Need for Speed: Most Wanted: o cube map de reflexos recarrega só a face e o nível escritos desde a última carga (2,3 ms a menos de trabalho de GPU por quadro).
📜 Every change since build 52 · 1 pull request, 4 commits
- #28 NFS Most Wanted 14–21% mais rápido: resolves copiados só quando a CPU lê, e recarga parcial do cube map · @phforner0
Built by Xendroid+ #54 from f280e7be, signed with the release key.
| File | Size | SHA-256 |
|---|---|---|
XenDroid_Release_f280e7be.apk |
40.4 MiB | 8b0da3ba9e6ad1905ee36eec337835c8aa4cc9d05346ef45034fa69920ed39c9 |
Xendroid+ 6a7e630e (build 52)
Need for Speed: Most Wanted runs about 55% faster without forcing the GPU clock, and options you set back to an old default now stay that way on Android.
- Every game: right after the GPU runs out of work (games that wait for it mid-frame), commands are sent in small batches so it never sits idle. Need for Speed: Most Wanted goes from ~12 to ~19 fps.
- Every game: textures with mipmaps or several layers (cube maps too) load straight into the image, without an extra copy (Need for Speed: 2.4 ms less GPU work a frame).
- Android: settings you change no longer go back to the new default at every launch.
Full Changelog: XenDroid-v51-25e50a47...XenDroid-v52-6a7e630e
🇧🇷 Em português
O Need for Speed: Most Wanted roda cerca de 55% mais rápido sem forçar o clock da GPU, e opções que você volta para o padrão antigo agora ficam assim no Android.
- Todos os jogos: logo depois de a GPU ficar sem trabalho (jogos que esperam por ela no meio do quadro), os comandos vão em lotes pequenos, para ela não ficar parada. O Need for Speed: Most Wanted vai de ~12 para ~19 fps.
- Todos os jogos: texturas com mipmaps ou várias camadas (cube maps também) carregam direto na imagem, sem uma cópia extra (Need for Speed: 2,4 ms a menos de trabalho de GPU por quadro).
- Android: configurações que você muda não voltam mais para o padrão novo a cada abertura.
📜 Every change since build 51 · 1 pull request, 4 commits
- #27 NFS Most Wanted de ~12 para ~19 fps sem mexer no clock, cube map sem cópia e configurações que ficam no Android · @phforner0
- Log memory export readbacks and their awaits on request ·
fb2699ce - Read memory export output back as submissions complete by default ·
eab3b823 - Store direct host resolves into textures for every title ·
ddc88945 - Use the host's NaN rules in the JIT for every title ·
6da558bc - Present with FIFO on Android ·
631087c9 - Note why GPU data preservation stays a per-title option ·
004f3ebc - Give Need for Speed: Most Wanted its 4x depth draws into their 1x surfaces ·
201dd189 - Await pending export output on register waits and after a failed await ·
fbdf4978 - Store deferred memexport output only once all of it is done ·
9bde0afa - Show mailbox presentation off by default in the app ·
e08cc95d - Store the core's default updates in the Android config file ·
bb12284a - Submit in small chunks right after the GPU was drained ·
562405fe - Load the levels of textures with mips or layers straight into the image ·
17abb793
- Log memory export readbacks and their awaits on request ·
Built by Xendroid+ #52 from 6a7e630e, signed with the release key.
| File | Size | SHA-256 |
|---|---|---|
XenDroid_Release_6a7e630e.apk |
40.4 MiB | a1eb65f8dbabfcbff92d379f02a3d3a8268bdbf6af337e25ab6d1b60a864912d |
Xendroid+ 25e50a47 (build 51)
Need for Speed: Most Wanted runs faster, and every game picks up settings already proven on a few: data games copy with the GPU reaches the CPU without stalling the GPU after every copy, resolved images go straight into their textures, and the image no longer freezes on HyperOS.
- Need for Speed: Most Wanted: faster in the open world (two changes, about +7% each).
- Every game: the image no longer freezes after minutes of play on Android (FIFO presentation).
- Every game: resolved images stored straight into their textures (fewer texture reloads).
- Every game: the CPU emulator uses the host's NaN rules, as the PC version always did (less CPU work).
Full Changelog: XenDroid-v48-4ffafcec...XenDroid-v51-25e50a47
What's new
🎮 Need for Speed: Most Wanted
- Its depth passes between 4x and 1x MSAA now render straight into the 1x surfaces: less than half the surface copies, +7% fps.
✅ Tested on a POCO F7 (Snapdragon 8s Gen 4, Adreno 825), with the games driven by scripts.
🇧🇷 Em português
O Need for Speed: Most Wanted roda mais rápido, e todos os jogos ganham ajustes já comprovados em alguns: os dados que os jogos copiam com a GPU chegam à CPU sem parar a GPU a cada cópia, as imagens resolvidas vão direto para as texturas, e a imagem não congela mais no HyperOS.
- Need for Speed: Most Wanted: mais rápido no mundo aberto (duas mudanças, cerca de +7% cada).
- Todos os jogos: a imagem não congela mais depois de minutos de jogo no Android (apresentação FIFO).
- Todos os jogos: imagens resolvidas gravadas direto nas texturas (menos recargas de textura).
- Todos os jogos: o emulador de CPU usa as regras de NaN do host, como a versão de PC sempre fez (menos trabalho de CPU).
🎮 Need for Speed: Most Wanted
- Os passes de profundidade entre MSAA 4× e 1× agora vão direto para as superfícies 1×: menos da metade das cópias de superfície, +7% de fps.
✅ Testado num POCO F7 (Snapdragon 8s Gen 4, Adreno 825), com os jogos conduzidos por scripts.
📜 Every change since build 48 · 1 pull request, 11 commits
- #26 Padrões de risco baixo para todos os jogos, e NFS Most Wanted mais rápido (o #25, agora no main) · @phforner0
- Log memory export readbacks and their awaits on request ·
fb2699ce - Read memory export output back as submissions complete by default ·
eab3b823 - Store direct host resolves into textures for every title ·
ddc88945 - Use the host's NaN rules in the JIT for every title ·
6da558bc - Present with FIFO on Android ·
631087c9 - Note why GPU data preservation stays a per-title option ·
004f3ebc - Give Need for Speed: Most Wanted its 4x depth draws into their 1x surfaces ·
201dd189 - Await pending export output on register waits and after a failed await ·
fbdf4978 - Store deferred memexport output only once all of it is done ·
9bde0afa - Show mailbox presentation off by default in the app ·
e08cc95d
- Log memory export readbacks and their awaits on request ·
Built by Xendroid+ #51 from 25e50a47, signed with the release key.
| File | Size | SHA-256 |
|---|---|---|
XenDroid_Release_25e50a47.apk |
40.3 MiB | 701ab23f8f41908ed2f934e9bc0f4b3403d20d01044eb0dbf9797f6b22ab86fb |
Xendroid+ 4ffafcec (build 48)
The Xendroid+ website is now in English and Portuguese.
Crysis 3 now looks and plays right on a POCO F7 (Snapdragon 8s Gen 4): its lighting is fixed, textures stay intact after loading, shots inside the ship no longer draw blades across the screen, and the image no longer freezes after minutes of play.
- Website in English (default) and Portuguese, including the interface simulator
- Crysis 3: lighting fixed - lit surfaces, the deck and the weapon were nearly black.
- Crysis 3: textures stay intact after loading (a character could show up all blue).
- Crysis 3: no more blades across the screen when shots hit inside the ship.
- Crysis 3: the image no longer freezes after minutes of play.
- Faster 64-bit texture loads for every game that uses them (Turnip, Adreno 750 and newer).
Full Changelog: XenDroid-v46-29ef9e7c...XenDroid-v48-4ffafcec
What's new
🎮 Crysis 3
- Lighting fixed: the game stores its lights and HDR scene as integers through its resolves, and those copies used to saturate, leaving every lit surface black. (#23)
- Textures it places with the GPU while loading stay intact: its streaming used to overwrite them with leftovers from the loading screen, which once turned Psycho blue. (#23)
- No more blades: the game copies data with the GPU while loading and builds meshes from it, and those copies now reach the CPU - read back once the GPU finishes, not after every copy, so loading stays smooth. (#23)
- No more frozen image: the game is presented in FIFO mode, which the phone keeps showing. (#23)
- Less GPU work per frame: the scene copies it reads after every refraction pass are written straight into their texture, and textures are sampled with the hardware's own detail level. (#23)
✅ Tested on a POCO F7 (Snapdragon 8s Gen 4, Adreno 825), first campaign checkpoint and inside the ship, with and without the shader cache built.
Other changes
⚠️ Still open
- Colored specks flicker on fine details, such as the pistol's emblem. (#23)
- A hot phone still slows the game down: after a few minutes the big cores and the GPU are capped by the phone's thermal limits. (#23)
🇧🇷 Em português
O site do Xendroid+ agora está em inglês e em português.
O Crysis 3 agora aparece e roda certo num POCO F7 (Snapdragon 8s Gen 4): a iluminação foi corrigida, as texturas ficam intactas depois do carregamento, tiros dentro do navio não desenham mais lâminas atravessando a tela, e a imagem não congela mais depois de minutos de jogo.
- Site em inglês (padrão) e português, incluindo o simulador da interface
- Crysis 3: iluminação corrigida - superfícies iluminadas, o convés e a arma saíam quase pretos.
- Crysis 3: texturas intactas depois do carregamento (um personagem podia aparecer todo azul).
- Crysis 3: sem lâminas atravessando a tela quando os tiros acertam dentro do navio.
- Crysis 3: a imagem não congela mais depois de minutos de jogo.
- Cargas de texturas de 64 bits mais rápidas para todo jogo que as usa (Turnip, Adreno 750 ou mais novo).
🎮 Crysis 3
- Iluminação corrigida: o jogo guarda as luzes e a cena HDR como inteiros nos resolves, e essas cópias saturavam, deixando toda superfície iluminada preta. (#23)
- As texturas que ele posiciona com a GPU no carregamento ficam intactas: o streaming dele as sobrescrevia com restos da tela de carregamento, o que uma vez deixou o Psycho azul. (#23)
- Sem lâminas: o jogo copia dados com a GPU no carregamento e monta malhas com eles, e essas cópias agora chegam à CPU - lidas quando a GPU termina, não depois de cada cópia, então o carregamento continua fluido. (#23)
- Sem imagem congelada: o jogo é apresentado no modo FIFO, que o celular continua mostrando. (#23)
- Menos trabalho de GPU por quadro: as cópias da cena que ele lê depois de cada passe de refração são gravadas direto na textura, e as texturas usam o nível de detalhe calculado pelo próprio hardware. (#23)
✅ Testado num POCO F7 (Snapdragon 8s Gen 4, Adreno 825), no primeiro checkpoint da campanha e dentro do navio, com e sem o cache de shaders formado.
Outras mudanças
⚠️ Ainda em aberto
📜 Every change since build 46 · 3 pull requests, 23 commits
- #22 website: site em inglês (padrão) e português, com o simulador nos dois idiomas · @phforner0
- #24 Site: palavras longas quebram em telas estreitas (CI do #23) · @phforner0
- Site: long words in docs paragraphs and lists wrap on narrow screens ·
c9d4e305
- Site: long words in docs paragraphs and lists wrap on narrow screens ·
- #23 Crysis 3: iluminação certa, texturas intactas, sem lâminas e sem congelamento (o que ficou fora do #20) · @phforner0
- Load uncompressed 64-bit textures coalesced and straight into the image ·
3d52e1a3 - Store resolves into k_10_11_11 textures as their upload expands them ·
10d6d477 - Give Crysis 3 vulkan_direct_host_resolve_to_texture ·
0a33053b - Switch texture_integer_num_format at run time on Android ·
00587711 - Give Crysis 3 spirv_texture_implicit_lod ·
4465e098 - Dump one frame's draws and resolves on request ·
c1745f79 - Give Crysis 3 integer resolve destinations and fetches ·
dc2b8e20 - Warn when a resolve's number format is packed as an unsigned fraction ·
66c3d074 - Frame dump: check the textures drawn against guest memory; reload switch ·
a2250324 - Keep the GPU's data in pages invalidated by CPU writes ·
c7b0c49a - Give Crysis 3 shared_memory_preserve_gpu_writes ·
eb0c075a - Give Crysis 3 the relaxed math of Forza Horizon ·
bb9f0751 - Frame dump: scan the vertices drawn; page history; resolve and export log ·
becb0cef - Wait for the pipeline of a memory-exporting draw instead of dropping it ·
e4c9c5ee - Read memory export output back as submissions complete ·
2d78de16 - Give Crysis 3 memory export, read back as submissions complete ·
c7ad69c1 - Present Crysis 3 with FIFO ·
d5f8ae2b
- Load uncompressed 64-bit textures coalesced and straight into the image ·
Built by Xendroid+ #48 from 4ffafcec, signed with the release key.
| File | Size | SHA-256 |
|---|---|---|
[XenDroid_Release_4ffafcec.apk](https://github.com/phforner0/X... |
Xendroid+ 29ef9e7c (build 46)
- website: base do site oficial (extratores de dados, marca e tokens) (#21)
Full Changelog: XenDroid-v43-bd1d2a8d...XenDroid-v46-29ef9e7c
📜 Every change since build 43 · 1 pull request, 15 commits
- #21 website: base do site oficial (extratores de dados, marca e tokens) · @phforner0
- website: base do site oficial (extratores de dados, marca e tokens) ·
c9046201 - Merge main into the website branch ·
c0e1450b - website: build do site, página inicial e moldura da documentação ·
a05dec8d - website: documentação em português e verificação dos links ·
b063d35f - website: simulador da interface (porte do protótipo, em andamento) ·
e045ed4c - website: simulador alinhado ao app na biblioteca, ficha e conteúdo ·
40cf2c59 - website: menu em jogo, configurações, controles e perfis como no app ·
9d035484 - website: telas de sistema do simulador como no app ·
cd6cd61b - website: página Usar o simulador na documentação ·
91d99e87 - website: workflow do GitHub Pages ·
9d465cbe - Merge main into the website branch ·
618a2ebb - website: testes no navegador e correções que eles acharam ·
3b8ab47c - website: códigos longos quebram linha nas tabelas da documentação ·
5785be02 - website: teste de link com âncora não depende da rolagem do reload ·
e57ee869
- website: base do site oficial (extratores de dados, marca e tokens) ·
Built by Xendroid+ #46 from 29ef9e7c, signed with the release key.
| File | Size | SHA-256 |
|---|---|---|
XenDroid_Release_29ef9e7c.apk |
40.2 MiB | 9b4afd1e600fedb9fe67995ebe3737dd54a7159087745d3f414ff6f06c4bc052 |