16x MapFix

  • 16x MapFix
KingMods Logo
Opublikowane przez KingMods
Odbierz ten mod
V1.1.4.0
991

FS25 16x Map Fix – podstawowa przyczyna + narzędzie do naprawy

Dlaczego mapy 16x (i większe) w Farming Simulator 25 zawieszają się z powodu błędu „allocReg”?
lub utknąłeś na „100% kompilacji shaderów”? Tutaj znajdziesz pełną diagnozę i narzędzie
umożliwia to ładowanie i synchronizację w trybie wieloosobowym na normalnym sprzęcie.

Ważne:
Czy podoba Ci się to narzędzie?
Możesz wesprzeć rozwój Ko-Fi - wspomnij o „16x Map Fix”, abym wiedział, nad czym dalej pracować.
Diagnostyka na serwerze dedykowanym i kliencie z 16 GB RAM, oba z tą samą kartą 16x.
Narzędzie zmniejszyło liczbę błędów allocReg na prawdziwej mapie 16x z 878 987 do 0, dzięki czemu można w nią grać w trybie wieloosobowym.

W skrócie (TL;DR),
Awaria allocReg jest w rzeczywistości spowodowana dwoma różnymi problemami, które wyglądają identycznie:
Przyczyna Rozwiązanie
Wymagania dotyczące pamięci w trybie pojedynczego gracza - mapa 16x wymaga około 20-32 GB podczas wstępnej kompilacji danych o gęstości (mapy gęstości); 16 GB to za mało.
Duży plik wymiany (48 GB+) + DX11 → ładowana jest oryginalna, niezmodyfikowana mapa. Tryb wieloosobowy
Rejestracja kafelków o stałej pojemności w module synchronizacji mapy gęstości zmniejsza zapisywalny poziom gęstości mapy do 8192 pikseli dla map gęstości 16384 pikseli - patrz narzędzie poniżej.

Dowód, że nie jest to problem pamięci RAM w trybie wieloosobowym: serwer dedykowany z 262 GB pamięci RAM nadal generuje te same błędy „allocReg” 3014. Więcej pamięci RAM lub większy plik wymiany nie pomaga w trybie wieloosobowym - tylko mniej płytek rozwiązuje problem.
Przyczyna szczegółowo.

Przepełnione warstwy (owoce, gleba, chwasty, warstwa informacyjna) to zapisywalne mapy gęstości „szczegółów terenu” gry – orasz, siejesz i zbierasz w dowolnym miejscu na nich, nawet poza zasięgiem wzroku, a serwer monitoruje całą mapę. Dane zapisywalne nie mogą korzystać z „wirtualnego teksturowania” (w przypadku przesyłania strumieniowego tylko widocznych kafelków tylko do odczytu). Dlatego warstwy te muszą być całkowicie w pamięci i zarejestrowane. Twoje wymagania dotyczące zasobów skalują się wraz z obszarem mapy: 16x oznacza 16-krotność liczby płytek. W trybie pojedynczego gracza klient ładuje własne, prekompilowane pliki .gdm; Jedynym wąskim gardłem jest krótki wzrost użycia pamięci podczas pierwszej kompilacji, który jest obsługiwany przez wystarczająco duży plik wymiany.
W trybie dla wielu graczy serwer rozsyła mapy gęstości do każdego przyłączającego się klienta, który rekompiluje je na żywo za pośrednictwem rejestru kafelków o stałym rozmiarze (TiledBitmapOperationCompiler). Gęstość 16384 pikseli prowadzi do przepełnienia - a co za tym idzie do tysięcy operacji „allocReg”. Stanowi to sztywny limit pojemności niezależny od pamięci RAM; Właśnie dlatego nawet serwery z 262 GB pamięci RAM zawodzą, a efektywny górny limit GIANTS dla trybu wieloosobowego jest czterokrotnie większy od standardowego rozmiaru (4x): Karta 4x to największy obszar, którego zapisywalna gęstość mieści się zarówno w rejestrze, jak i synchronizacji na połączenie.
Narzędzie

Tool/mapfix.py + narzędzie/Optimize-Map.bat (przeciągnij i upuść w systemie Windows). Skaluje dowolną ponadwymiarową gęstość lub warstwę informacyjną (16384 pikseli, potęga dwójki) karty do bezpiecznych dla silnika 8192 pikseli – dokładnie takiej rozdzielczości, z jaką dostarczane są działające karty 4x. Informacje o polu i uprawach zostają zachowane (dekodowanie → ponowne próbkowanie najbliższego sąsiada → ponowne kodowanie; zweryfikowane jako identyczne w 99,9% pikseli, pokrycie upraw niezmienione). Mapy wysokości i geometria terenu (dem.png, siatka z 2ⁿ+1 punktami) są rozpoznawane na podstawie ich rozmiaru (a nie potęgi dwójki) i nie ulegają zmianie.


Zastosowanie

Przeciągnij plik zip mapy do folderu Optimize-Map.bat (wymaga Pythona 3 – poduszka zostanie zainstalowana automatycznie).
W tym samym folderze zostanie utworzony plik z rozszerzeniem „_fixed.zip” – oryginalny plik pozostanie niezmieniony.
Wgraj poprawioną mapę na swój serwer, rozpocznij nową grę (ważne: stare sejwy zawierają starą wersję poezji) i weź udział w grze.


Zawiera grleconvert (licencja MIT) do konwersji pomiędzy .gdm/.grle i PNG. Obsługuje karty 16x i 32x; Dane wyjściowe są zawsze w bezpiecznym formacie 8192 pikseli.
Uwaga dotycząca trybu wieloosobowego (automatyczny zapis GIANTS).Nawet przy poprawionej karcie graficznej serwer dedykowany GIANTS wykonuje blokujący automatyczny zapis („interwał_auto_zapisu”, domyślnie: 10 minut). Na dużych kartach graficznych ten proces zapisywania blokuje główny wątek na tak długo, że połączenie z klientem może zostać utracone dokładnie w tym momencie („utracono połączenie”), podczas gdy sam serwer pozostaje online. Aby zminimalizować ten problem, zwiększ wartość auto_save_interval w plikudedServerConfig.xml (np. do 30-60).
Dodatkowy mod: Auto VRAM Optimizer


Mały, samodzielny mod, który zwiększa limit przesyłania tekstur w FS25 (domyślnie około 4 GB) do rzeczywistej pamięci VRAM Twojej karty graficznej. Powoduje to płynniejsze ładowanie i mniej wyskakujących okienek na wszystkich kartach graficznych z więcej niż 4 GB pamięci VRAM - a nie tylko na kartach 16x.

serwer
Konsole
Dziennik zmian
1
Kredyty
  • KeilerHirsch
Uwagi
0