Files
sanctuary-beta/docs/demeure-map-performance-beta026.md
2026-09-15 09:29:11 +02:00

73 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 limage 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 nest 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é sexé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 nest 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 laffichage.
La couche réutilise les mêmes couleurs et alpha par pixel : 0 pour linconnu
et le vide, `0xA0` au bord des chunks, `0x25` à linté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 lordre 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. Lexport beta.025 conserve son empreinte. Aucun canal, instance
Prism ou monde personnel na été modifié.