73 lines
3.9 KiB
Markdown
73 lines
3.9 KiB
Markdown
# beta.026 — affichage Demeure sans recalcul par image
|
||
|
||
Ticket sur `codex/demeure-map-performance-beta026`.
|
||
|
||
## Diagnostic et contrat
|
||
|
||
La couche Demeure parcourait ses chunks puis les 256 blocs de chaque chunk
|
||
visible à chaque image. Chaque bloc connu produisait un rectangle GUI distinct,
|
||
y compris quand rien ne changeait. Le nombre de dessins dépendait donc de la
|
||
surface explorée visible ; le bouton Demeure désactivait ce travail.
|
||
|
||
La correction prépare une texture transparente de 1 024 × 1 024 pixels, alignée
|
||
sur celle du terrain. Son rendu demande un seul dessin. Seuls les chunks dont
|
||
les pixels connus ou la couleur Demeure changent sont repeints. Déplacer ou
|
||
zoomer transforme l’image existante ; changer la fenêtre de chunks la reprojette.
|
||
Les lots réseau identiques ne doivent provoquer ni effacement, ni nouvel envoi
|
||
de texture au GPU. Une empreinte absente du lot suivant doit disparaître.
|
||
|
||
Demeure reste activé par défaut. Ses règles serveur, contributions, scores,
|
||
dates et sauvegardes restent inchangés. Aucun format de sauvegarde ou protocole
|
||
ne change, aucun chunk n’est généré ou modifié par ce ticket. Les zones inconnues
|
||
et le vide restent transparents, le changement de vue/dimension et la révocation
|
||
des droits effacent également la couche Demeure. Les textures sont libérées à
|
||
la fermeture de l’écran. Mémoire supplémentaire bornée : 4 Mio de pixels côté
|
||
CPU et une texture RGBA8 de 4 Mio côté GPU.
|
||
|
||
## Vérifications et limites
|
||
|
||
Mesure native avant/après avec une même surface de 256 chunks de laboratoire,
|
||
en comptant les rectangles, les transferts de textures et le temps CPU de
|
||
soumission de la couche. Cas fixes, déplacement maintenu, couche masquée/réactivée,
|
||
lots identiques et modifiés, brouillard, permissions, redimensionnement et fermeture.
|
||
Les mesures de soumission ne sont pas une promesse de FPS sur chaque machine.
|
||
|
||
`./gradlew check build assemblePack -PsanctuaryClientTests=true
|
||
-PsanctuaryMapPerfClientTests=true -PsanctuaryFocusedTests=progression,map,demeure`
|
||
réussit : **9 tests natifs serveur**, contrôles de contrats, compilation du
|
||
parcours graphique et assemblage du pack. Journal : `build/atlas026-check.log`.
|
||
|
||
Le parcours graphique préparé s’exécute avec :
|
||
|
||
```sh
|
||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||
-PsanctuaryMapPerfClientTests=true
|
||
```
|
||
|
||
Il **reste à exécuter sur une session macOS déverrouillée**. Les essais de
|
||
référence ont été interrompus au démarrage graphique, avant les mesures ;
|
||
`IOConsoleLocked` était vrai. Aucun gain chiffré de FPS, temps CPU mesuré ou
|
||
résultat graphique n’est revendiqué pour cette livraison. Le code Atlas de
|
||
référence a été contrôlé identique au JAR beta.025 et conservé dans
|
||
`build/atlas026-before.class` pour une comparaison ultérieure ; les autres
|
||
contrôles serveur ne dépendent pas de l’affichage.
|
||
|
||
La couche réutilise les mêmes couleurs et alpha par pixel : 0 pour l’inconnu
|
||
et le vide, `0xA0` au bord des chunks, `0x25` à l’intérieur. Un changement de
|
||
métadonnées sans changement de couleur met à jour le survol sans repeindre.
|
||
Les paquets terrain et Demeure sont appariés dans l’ordre déjà garanti par
|
||
`AtlasService.reply` ; le résumé Demeure, même vide, clôt son lot terrain.
|
||
Le lot en attente est borné à 16 chunks et annulé au changement de requête.
|
||
|
||
## Artefact local
|
||
|
||
[Sanctuary-beta.026.mrpack](../build/Sanctuary-beta.026.mrpack), **4 766 675 octets**.
|
||
SHA-256 : `f564aabbee977d48e8f3d0d2ea4178b23b18f33f42110ab0dba733f2ae008fbb`.
|
||
Reçu : `build/atlas026-artifact.json`.
|
||
|
||
ZIP, version, 1 253 classes Sanctuary, absence de tests embarqués et identité
|
||
des JAR Demeure/JEI vérifiés. Seule la classe de l’écran Atlas diffère dans le
|
||
code compilé Sanctuary par rapport à beta.025 ; les classes du module Demeure
|
||
sont identiques. L’export beta.025 conserve son empreinte. Aucun canal, instance
|
||
Prism ou monde personnel n’a été modifié.
|