5.8 KiB
STEP20C — causalité GPU, FBO et cache
EXPERIMENTAL — édition du 2026-10-14. Ticket
SWAYFX_MOSAIC_STEP20C_SAVED_LIFETIME_INPUT_EPOCH_AND_GPU_CAUSALITY_BATCH_V1. Revue finale indépendante du dossier complet : ACCEPTED / audit PASS pour la fidélité expérimentale ; publication PREPARED à cette édition, reçu final hors Git après push. STEP20A DONE ; STEP20B EXPERIMENTAL ; STEP20C NEXT ; STEP20D–G PLANNED ; production multi-output NOT YET SUPPORTED. Aucun contrat UX, package ou production adopté.
LAB désigne /home/fy59/swayfx-mosaic-saved-input-gpu-pz4z428f, laboratoire privé hors Git. Les chemins LAB sont des références locales, pas un kit distribué. Le dossier V2 fixe la provenance commune et les limites. Les rapports historiques restent immuables.
Identité et acquisition bornée
Le binaire diagnostic nouveau est SHA256 2d1d221ea34461e538e5b5c6bd811bc865089ac133a6e48578998347c58b97dd, Build ID 41a24e90859655314196efaa3d34659330000af0. Le gel GPU accepté est 49baa41f0afe78b13de8d8272039081fcd9551d814d4241786720517f68bded3 (118 liaisons). Patch privé C SHA b92268faf3780a3b7f57ec916cea44e57f11b768e08155c02243dba2230a0743. Revue LAB/reviews/gpu-delta-review.* ACCEPTED après correction de la gate d’arrêt d’epoch ; six tests revalident 21 anciens et 30 nouveaux faults.
Un run, trois epochs d’acquisition A/B/A, douze points par epoch, trois ROI 16×16 par point : 108 lectures, 27 648 pixels RGBA, 110 592 octets. Tuples fx/wlr/fbo/rbo/tex concordants dans chaque pass, contexte EGL commun, bindings GL/PACK restaurés. Les epochs sont locales aux acquisitions ; les pointeurs ne sont pas des identités persistantes entre epochs. La queue glGetError est UNOBSERVED et n’a pas été vidée. Lecture, logging et fsync perturbent le timing ; absence de fences, GPU completion et identité exacte du buffer présenté NOT PROVEN.
Discrimination locale conservée
Main-before-blur et down-0 sont A/A-return exacts dans les ROI. Down-1 diverge uniquement dans la queue hors domaine frais : ce n’est pas une divergence fraîche. Le candidat prospectif down-1 (199,75) demeure exact, ainsi que ses vingt texels source, destination (94,101,114,255). C’est une preuve négative, jamais remplacée par sélection opportuniste.
La première divergence fraîche observée est down-2. Onze supports complets contiennent six points centraux inchangés et cinq pixels frais divergents. Tous les texels frais source requis restent exacts ; leur contribution différentielle est zéro. Les texels hors domaine frais apportent idéalement jusqu’à (−6,5 ; −5,75 ; −0,375 ; 0), avec résidu différentiel maximum 0,5 U8 sur ces onze supports. Ceci étaye localement la dépendance au contenu préexistant de pong hors 200×150 dans sa texture physique 800×600. Up-1 ajoute une contribution hors domaine ; à up-2, le contenu hors domaine vient de down-0 du même rebuild : « hors domaine » ne signifie pas universellement « frame précédente ».
Up-0, résultat et cache sont exactement égaux en RGBA sur les 768 pixels par epoch. Les 27 648 alpha natifs valent 255. Les 2 304 RGB presubmit satisfont exactement round((68,32,16) + (119/255) * cache_RGB). Le coefficient 136/255 est l’alpha du verre historique, pas le coefficient transmis au fond. Cette formule opaque locale ne qualifie pas tous les cas d’alpha/strength.
Causalité entière et modèle
Whole-H1 A/A-return reste FAIL : 34 323 pixels différents, minimum RGB (−6,−6,−1), maximum (0,0,0), delta absolu max6. Les trois images entières GPU sont RGB exactes aux trois G historiques homologues ; cela ne transfère ni événements FBO vers G ni neutralité temporelle universelle. Pristine historique reste 37 252 pixels différents ; les seize images homologues A/G historiques restent exactes.
Le modèle froid historique produit un signe positif/max33 : ses noyaux/copies/arrondis monotones et état initial nul imposent un retour non négatif. Le natif montre des queues préchauffées plus sombres. Le modèle froid ne reconstitue donc pas l’histoire native. Aucune initialisation ajustée, seuil, sampler, précision ou shader n’a été modifié. Mediump/quantification/coordonnées effectives ne sont pas mesurés ; les résidus absolus au modèle idéal, jusqu’à 11,5 dès down-0, sont conservés. Aucune borne universelle d’arrondi ±1 n’est inventée.
Le rapport scientifique LAB/audit/gpu-xhigh/FINAL_FINDINGS.md SHA b58994389cd5f0e4ef3c0431d81683aa51b0f820c198e361d6ecbc31773bc768 et XHIGH_SUMMARY.json SHA e9da85989cf3433824738940cc403213d1db6dba778c85152a248b37090e55ad portent l’interprétation PARTIALLY_SUPPORTED_LOCAL_FBO_HISTORY. Le reçu validateur conserve CACHE_A_RETURN_CAUSALITY=INCONCLUSIVE pour la causalité entière. WHOLE_FIELD_NATIVE_CAUSALITY=INCONCLUSIVE ; HISTORICAL_A_G_PRISTINE_NATIVE_CAUSALITY=NOT_PROVEN. Les zones non lues et frames intermédiaires restent inconnues.
Provenance bind-before-failed corrigée
L’ordre fx_pass_submit bind-before-failed existe déjà dans SceneFX pristine 37ccd723bef49e6891156ffafce8f549f01446cc. Le fichier pristine/base/core est identique, SHA 398d594ace7257f4b69319290be7c1f14dc1ded446545ceb337404f5caab0cd3. L’affirmation du draft antérieur d’un ordre différent de pristine est réfutée. Les anciens rapports restent historiques ; cette correction ne démontre aucune neutralité ni failure semantics complète.
measurements_pass=PARTIALLY_FEASIBLE ; runner0, IPC terminal1, runtime global INCONCLUSIVE ; quatre clients code0/error0, scientific_cleanup et mechanical cleanup PASS. architecture_verdict=PARTIALLY_FEASIBLE. Aucun shader/cache fix, contrôle pristine supplémentaire ou nouveau run n’est justifié dans ce ticket ; le prochain discriminant nécessiterait champ FBO entier/précision native exacte avec nouveau scope explicite.