FS25 16x Map Fix: la causa principale + uno strumento di correzione
Perché le mappe 16x (e superiori) in Farming Simulator 25 si bloccano con un errore "allocReg"?
o bloccato su "compilazione shader al 100%"? Qui troverete la diagnosi completa e uno strumento
ciò consente il caricamento e la sincronizzazione in modalità multiplayer su hardware normale.
Importante:
Ti piace lo strumento?
Puoi supportare lo sviluppo su Ko-fi: menziona "16x Map Fix" così saprò su cosa lavorare dopo.
Diagnostica su un server dedicato e un client con 16 GB di RAM, entrambi con la stessa scheda 16x.
Lo strumento ha ridotto gli errori allocReg su una mappa 16x reale da 878.987 a 0, rendendola giocabile in multiplayer.
In breve (TL;DR),
Il crash di allocReg è in realtà causato da due diversi problemi che sembrano identici:
Causa Soluzione
Requisiti di memoria in modalità giocatore singolo: una mappa 16x richiede circa 20-32 GB durante la compilazione iniziale dei dati di densità (mappe di densità); 16 GB non sono sufficienti.
Un file di scambio di grandi dimensioni (48 GB+) + DX11 → viene caricata la mappa originale non modificata. Multigiocatore
Una registrazione delle tessere a capacità fissa nel modulo di sincronizzazione della mappa di densità riduce il livello di densità scrivibile della mappa a 8192 pixel per mappe di densità di 16384 pixel - vedere lo strumento di seguito.
Prova che non è un problema di RAM in multiplayer: un server dedicato con 262 GB di RAM produceva ancora gli stessi errori 3014 "allocReg". Più RAM o un file di scambio più grande non aiutano in modalità multiplayer: solo meno riquadri risolvono il problema.
La causa in dettaglio.
Gli strati traboccanti (frutta, terreno, erbacce, livello informazioni) sono le mappe di densità dei "dettagli del terreno" scrivibili del gioco: ari, semini e raccogli ovunque al loro interno, anche fuori dalla vista, e il server monitora l'intera mappa. I dati scrivibili non possono utilizzare la "texturing virtuale" (dove vengono trasmessi in streaming solo i riquadri visibili e di sola lettura). Pertanto, questi livelli devono essere completamente in memoria e registrati. I tuoi requisiti di risorse crescono con l'area della mappa: 16x significa 16 volte il numero di tessere. In modalità giocatore singolo, il client carica i propri file .gdm precompilati; L'unico collo di bottiglia è il breve picco nell'utilizzo della memoria durante la prima compilazione, che viene gestita da un file di swap sufficientemente grande.
In modalità multiplayer, il server trasmette mappe di densità a ciascun client che si unisce, che le ricompila in tempo reale tramite il registro delle tessere a dimensione fissa (TiledBitmapOperationCompiler). Una densità di 16384 pixel porta all'overflow - e quindi a migliaia di operazioni "allocReg". Ciò rappresenta un limite di capacità rigido indipendente dalla RAM; Proprio per questo motivo anche i server con 262 GB di RAM falliscono e il limite superiore effettivo di GIANTS per la modalità multiplayer è quattro volte la dimensione standard (4x): una scheda 4x è l'area più grande la cui densità scrivibile si adatta sia al registro che alla sincronizzazione per connessione.
Lo strumento
tool/mapfix.py + tool/Optimize-Map.bat (trascinamento di Windows). Ridimensiona qualsiasi densità sovradimensionata o livello di informazione (16384 pixel, potenza di due) di una scheda fino a 8192 pixel sicuri per il motore, esattamente la risoluzione alla quale vengono spedite le schede 4x funzionanti. Le informazioni sul campo e sul raccolto vengono conservate (decodifica → ricampionamento del vicino più vicino → ricodifica; verificato come identico al 99,9% dei pixel, copertura del raccolto invariata). Le mappe altimetriche e la geometria del terreno (dem.png, griglia con 2ⁿ+1 punti) vengono riconosciute in base alla loro dimensione (non una potenza di due) e non vengono modificate.
Applicazione
Trascina il file zip della mappa nella cartella Optimize-Map.bat (richiede Python 3 - Pillow verrà installato automaticamente).
Nella stessa cartella verrà creato un file con l'estensione "_fixed.zip": il file originale rimarrà invariato.
Carica la mappa corretta sul tuo server, inizia una nuova partita (importante: i vecchi salvataggi contengono la vecchia revisione della poesia) e prendi parte al gioco.
Include grleconvert (licenza MIT) per la conversione tra .gdm/.grle e PNG. Supporta schede 16x e 32x; L'output è sempre nel formato sicuro da 8192 pixel.
Nota sulla modalità multiplayer (salvataggio automatico GIANTS).Anche con una scheda grafica corretta, il server dedicato GIANTS esegue un salvataggio automatico bloccante (“auto_save_interval”, predefinito: 10 minuti). Nelle schede grafiche di grandi dimensioni questo processo di salvataggio blocca il thread principale per così tanto tempo che la connessione al client può essere interrotta esattamente in quel momento (“connessione persa”), mentre il server stesso rimane online. Per ridurre al minimo questo problema, aumentare il valore auto_save_interval in dedicatoServerConfig.xml (ad esempio a 30-60).
Mod aggiuntiva: ottimizzatore VRAM automatico
Un piccolo mod autonomo che aumenta il limite di streaming delle texture in FS25 (circa 4 GB per impostazione predefinita) alla VRAM effettiva della tua scheda grafica. Ciò si traduce in un caricamento più fluido e in meno pop-in su tutte le schede grafiche con più di 4 GB di VRAM, non solo sulle schede 16x.