[LuaJit Recompile] Bangalore - Szybsze skrypty

Regulamin forum
Dział "Modyfikacje Gotowe" służy do dyskusji o modyfikacjach, które już są stworzone lub do zadawania pytań na ich temat. Znajdziemy tutaj również linki do ściągnięcia modyfikacji (które powinny, a raczej muszą być w pierwszym poście tematu danej modyfikacji).

Przy zadawaniu pytania związanego z problemem dotyczącym modyfikacji, prosimy o podawanie treści całego loga błędu - koniecznie w tagu [CODE].

Przy cytowaniu plików *.LTX stosować tag [SYNTAX="ini"], przy cytowaniu plików *.script [SYNTAX="lua"] a przy cytowaniu plików *.xml - [SYNTAX="xml"].

Lokalizacja logów:
Windows XP - C:\Documents and Settings\All Users\Moje dokumenty\S.T.A.L.K.E.R. - Zew Prypeci\logs\xray_nazwaużytkownika.log
Windows Vista/7 - C:\Users\Public\Documents\S.T.A.L.K.E.R. - Zew Prypeci\logs\xray_nazwaużytkownika.log
Steam - X:\Program Files (x86)\Steam\SteamApps\common\Stalker Call of Pripyat\_appdata_\logs

Pytania na temat modyfikacji zadajemy w wątku dla niej stworzonym lub tworzymy nowy, jeśli takowego nie ma.

Gdy chcemy założyć nowy wątek, obowiązkowe jest przeczytanie tego tematu.

[LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez Cromm Cruac w 04 Lis 2013, 19:11

Pisałem już o tym w temacie MISERY ale mogło to umknąć uwadze a modyfikacja jest dość ciekawa. Zakładam więc nowy wątek.

Bangalore zrekompilował interpreter skryptów LUA na podstawie najnowszych kodów źródłowych. Oryginalny plik z CoP-a jest skompilowany ze źródeł jeszcze z 2008 r.

Co daje nowa wersja:
- szybszą reakcję silnika
- szybsze przełączanie online/offline
- szybszą komunikację kodu C++ silnika ze skryptani LUA.
- podniesiono limit wykorzystania pamięci

Co to tak naprawdę daje:
- Wzrost FPS rzędu 10-20%. Zwłaszcza w modach, które są mocno oskryptowane (np. SGM 2.2)
- Mniej zacięć przy przełączaniu NPCów/mutantów online/offline. Są one również krótsze.
- Mniej wylotów typu 'stack trace/stack overflow'

Po wstępnych testach i raportach na forum GSC wygląda na to, że poprawa jest znaczna.
Jeśli zauważycie poprawę wydajności po instalacji (lub pogorszenie) proszę zaraportować to w tym poście

Download: Wrzucacz.pl
Opis plików w archiwum (dzięki Plaargath-owi):

Plaargath napisał(a):1)
release\bin\lua.JIT.1.1.4.dll
To jest eksperymentalna wersja dll'a obsługującego w grze język skryptów LUA. Skompilowana z nowszej wersji kodu źródłowego, niż ten dll, który instaluje się z grą z płyty (1.1.8 zamiast 1.1.4). Od tego się zaczęło. W podanej paczce jest trzecia z kolei wersja zrobiona przez Xetrilla. W katalogu release jest też profiler - shiny.dll.
2)
release\bin\shiny.dll
Przy CTD'ach wyrzuca on fajne logi, wzbogacone o przydatne informacje. A konkretnie, jeśli CTD spowodowany jest nie-logiką któregoś ze skrpytów, to w logu dokładniej napisze, o co biega, a nie tylko pobieżnie, jak to do tej pory. Przydaje się to podczas pisania i testowania skryptów.
3)
Reszta rzeczy z paczki to są narzędzia pod debugowanie, nie testowałem, jednak żelazna logika mówi, że wrzucenie ich NIE POLEPSZY wydajności, jedynie tworzyć będzie bardzo szczegółowe logi operacji wykonywanych w czasie gry.
4)
Różnica między tą paczką, a tą, którą wrzucił pierwotnie Cromm jest taka, że ta jest późniejsza. Ten pierwszy lua.JIT.1.1.4.dll, który wrzucił Cromm, to była wariacja Bangalore'a na temat pracy Xetrilla, starsza i niepotrzebnie zmieniająca zawartość stacka (overflow nie zależy od ilości stuffu, tylko wskazuje na dzielenie przez zero, zapętlenie i takie tam).
5)
Jeśli w logu występuje błąd "LuaJIT core/library version mismatch" to znaczy, że nie ma planowanej podmiany - program wraca do pierwotnej obsługi LUA, a więc zero zmian. W pliku Bangalore'a to się chyba zdarzało, w tym z tej paczki jest tweak - plik daje fałszywy komunikat o wersji, umożliwiając podmianę. Nie powinno być tego mismatcha w logu - jeśli jest znaczy, że gra NIE korzysta z podmiany.
6)
To są dll'e eksperymentalne. Z tego co piszą, to w zależności z jakim modem ich używać albo polepszą wydajność, albo nie zrobią nic. Wnioskuję, że prace trwają.


Instalacja:
1. stworzyć kopię zapasową pliku bin\lua.JIT.1.1.4.dll
2. skopiować plik nowy lua.JIT.1.1.4.dll nadpisując stary.
Ostatnio edytowany przez Cromm Cruac, 14 Mar 2014, 17:08, edytowano w sumie 1 raz
Image

"Twoja opowieść mnie znudziła albowiem nie była o mnie" - Król Julian

Za ten post Cromm Cruac otrzymał następujące punkty reputacji:
Positive Junx, Beziele, MajorDiegtiarov, Pangia, lukasz638, Plaargath, M3Fis70, mietek1986.
Awatar użytkownika
Cromm Cruac
Modder

Posty: 2541
Dołączenie: 22 Sty 2010, 19:01
Ostatnio był: 26 Lip 2023, 10:13
Miejscowość: Londyn / Bielsko-Biała
Kozaki: 1077

Reklamy Google

Re: [LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez Junx w 04 Lis 2013, 19:24

Czy ów metoda będzie działać w CS?
Ryzen 5600x || 32gb DDR4 || RTX 2080 Super
Awatar użytkownika
Junx
Modder

Posty: 2339
Dołączenie: 15 Kwi 2008, 09:39
Ostatnio był: 06 Gru 2023, 11:10
Miejscowość: Na co Ci to :)
Frakcja: Samotnicy
Ulubiona broń: Sniper Rifle SVDm2
Kozaki: 357

Re: [LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez Beziele w 04 Lis 2013, 19:25

Czyli w skrócie taki wspomagacz do CoP'a? Zasysam i relacjonuje.
Image
Awatar użytkownika
Beziele
Stalker

Posty: 59
Dołączenie: 25 Gru 2011, 09:22
Ostatnio był: 15 Lis 2014, 09:55
Miejscowość: Okolice Lublina
Frakcja: Samotnicy
Ulubiona broń: Akm 74/2
Kozaki: 6

Re: [LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez M3Fis70 w 04 Lis 2013, 19:28

Brzmi cholernie ciekawie.
Jednak aktualnie nie mam CoP'a na kompie. Jednak planowałem wywalić TFW i pograć sobie w SGM 2.2 A tu taka miła niespodzianka w postacie FPS'ów :D Jeszcze szczególnie dla SGM.
Dobry mutant, to martwy mutant.
Tajne zaszyfrowane inforamcje
:

Kovek to ciągle pauka
Awatar użytkownika
M3Fis70
Weteran

Posty: 652
Dołączenie: 08 Kwi 2010, 20:34
Ostatnio był: 23 Lip 2019, 10:04
Miejscowość: Brzydgoszcz/Posen
Frakcja: Samotnicy
Ulubiona broń: Akm 74/2U
Kozaki: 76

Re: [LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez Cromm Cruac w 04 Lis 2013, 19:56

Junx napisał(a):Czy ów metoda będzie działać w CS?

Wątek o podobnej modyfikacji do CS tutaj
Image

"Twoja opowieść mnie znudziła albowiem nie była o mnie" - Król Julian
Awatar użytkownika
Cromm Cruac
Modder

Posty: 2541
Dołączenie: 22 Sty 2010, 19:01
Ostatnio był: 26 Lip 2023, 10:13
Miejscowość: Londyn / Bielsko-Biała
Kozaki: 1077

Re: [LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez Beziele w 04 Lis 2013, 20:07

Łooo, wycisnąłem ponad 30fps na moim złomie, podstawka mi tak nie chodziła, a Misery jedzie jak trza...Tak czy siak wielkie dzięki :D Ogólnie skok o jakieś 10fps.
Image
Awatar użytkownika
Beziele
Stalker

Posty: 59
Dołączenie: 25 Gru 2011, 09:22
Ostatnio był: 15 Lis 2014, 09:55
Miejscowość: Okolice Lublina
Frakcja: Samotnicy
Ulubiona broń: Akm 74/2
Kozaki: 6

Re: [LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez Pangia w 04 Lis 2013, 21:17

You are using an outdated browser that is not supported by MEGA.
Please update your browser and make sure that you keep the default settings.

Nosz ku♥wa. A co ich to interesuje, jaką ja mam przeglądarkę… Stara czy nowa, i tak działa tak samo, tylko że nowa się częściej krzaczy. Mógłby to do Czystego Nieba ktoś wrzucić chociażby na SpeedyShare?
Proszę państwa, sto pięćdziesiąt kilometrów na godzinę w ciągu kilku sekund, wspaniały wynik. Gdyby w ten sposób można było wypie*dolić z polskiej polityki tych wszystkich śmieci z Okrągłego Stołu, Leszka Millera, byłoby… cudownie i każdemu bym ku*wa kupił po takim Ferrari, byleby w piz*u pojechali tym PROSTO do swojego ukochanego… Izraela. SYJONIŚCI Europy, jedźcie do siebie! Pozdrawiam, Zbigniew Stonoga. Nie jestem antysemitą!
Awatar użytkownika
Pangia
Monolit

Posty: 4280
Dołączenie: 27 Maj 2012, 10:49
Ostatnio był: 28 Lis 2017, 19:49
Miejscowość: Kukle Karakańskie
Ulubiona broń: TOZ34
Kozaki: 854

Re: [LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez Beziele w 04 Lis 2013, 22:06

Image

Za ten post Beziele otrzymał następujące punkty reputacji:
Positive Pangia.
Awatar użytkownika
Beziele
Stalker

Posty: 59
Dołączenie: 25 Gru 2011, 09:22
Ostatnio był: 15 Lis 2014, 09:55
Miejscowość: Okolice Lublina
Frakcja: Samotnicy
Ulubiona broń: Akm 74/2
Kozaki: 6

Re: [LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez yozue w 05 Lis 2013, 00:23

Kod: Zaznacz wszystko
http://speedy.sh/GBASH/LuaJIT-EXPERIMENTAL-1.rar


Kod: Zaznacz wszystko
http://speedy.sh/RrKCU/LuaJIT-EXPERIMENTAL-2.rar


Kod: Zaznacz wszystko
http://speedy.sh/S3VYg/LuaJIT-EXPERIMENTAL-latest.rar


Kod: Zaznacz wszystko
http://speedy.sh/CDdaj/LuaJIT-LargeCCallStack.rar
Awatar użytkownika
yozue
Stalker

Posty: 198
Dołączenie: 10 Lis 2008, 11:31
Ostatnio był: 13 Sie 2023, 17:00
Frakcja: Samotnicy
Ulubiona broń: Vintar BC
Kozaki: 34

Re: [LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez Plaargath w 03 Lut 2014, 22:26

We wspomnianym wątku ns forum GSC dali link do pobrania jeszcze zabawki o nazwie shiny.dll (w katalogu release\bin w pobranej paczce).
Piszą, że bardzo mięsne logi wywala.
LuaJIT_EXPERIMENTAL_latest.rar
Przykład Bangalore'a:
Kod: Zaznacz wszystko
I test both luajit+shiny together, and it clearly turning out to be the fastest dll. It's not a debug dll, i don't get extra stuff in the log during the game run, but when the game crashes, i have more detailed fatal error messages.

For example a corrupted save crash with shiny.dll, it spits out lua stack:


! Cannot find saved game ~#i#:xr_logic: pstor_load_all: not registered type n %d encountered
! Cannot find saved game ~#i#:xr_logic: pstor_load_all: not registered type n %d encountered
! Cannot find saved game ~#i#:xr_logic: pstor_load_all: not registered type n %d encountered
! Cannot find saved game ~#i#:xr_logic: pstor_load_all: not registered type n %d encountered
! Cannot find saved game ~#i#:xr_logic: pstor_load_all: not registered type n %d encountered
! Cannot find saved game ~#i#:incorrect load [_objectsim_default_military_315889].[0][73]
! Cannot find saved game ~#i#:incorrect load [_sound_npc_save].[0][560]
! Cannot find saved game ~#i#:incorrect load [_motivator_binder].[0][639]
! Cannot find saved game ~#i#:error: object 'sim_default_military_315889': unable to find section 'pri_monolith_surge_hide_a1' in 'space_restrictor'
 
FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
 
utils.script:159: attempt to index local 'char_ini' (a nil value)
 
lua stack:
  [15|-1] (no value): 
  [14|-2] (string):  `attempt to index local 'char_ini' (a nil value)'
  [13|-3] (nil):  nil
  [12|-4] (nil):  nil
  [11|-5] (nil):  nil
  [10|-6] (nil):  nil
  [ 9|-7] (nil):  nil
  [ 8|-8] (nil):  nil
  [ 7|-9] (nil):  nil
  [ 6|-10] (string):  `'
  [ 5|-11] (boolean):  false
  [ 4|-12] (userdata):  userdata (FA0C7140)
  [ 3|-13] (string):  `on_combat'
  [ 2|-14] (string):  `pri_monolith_surge_hide_a1'
  [ 1|-15] (nil):  nil
 
stack trace:

A więc jakże ciekawie!
Image Image

Merkantylizm, srerkantylizm.
Awatar użytkownika
Plaargath
Weteran

Posty: 653
Dołączenie: 23 Mar 2010, 15:12
Ostatnio był: 03 Kwi 2022, 22:03
Kozaki: 234

Re: [LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez Wiewi0r w 17 Lut 2014, 00:15

Plaargath - Że tak zapytam niedyskretnie, które pliki z tej paczki mam skopiować, a które zostawić, ewentualnie na później? Zgaduję że folder release, a reszta?
Things are going to get unimaginably worse, and they are never, ever, going to get better.
- K.V.
Za Wilkiem nawet w ogień skoczę.
Попутного ветра!
Awatar użytkownika
Wiewi0r
Przewodnik

Posty: 965
Dołączenie: 27 Maj 2013, 22:33
Ostatnio był: 24 Sty 2018, 17:29
Miejscowość: Warszawa/Częstochowa
Frakcja: Samotnicy
Ulubiona broń: Sniper TRs 301
Kozaki: 164

Re: [LuaJit Recompile] Bangalore - Szybsze skrypty

Postprzez Plaargath w 17 Lut 2014, 13:25

Z paczki do po zwykłego używania bierzesz:
release\bin\lua.JIT.1.1.4.dll
release\bin\shiny.dll
Reszta ma służyć do debugowania - osobiście jeszcze nie wypróbowałem, w każdym razie to Ci nic nie przyspieszy tylko będzie wydzielało sążniste logi z zapisem każdej pierdoły.
Do grania i sprawdzenia, czy nowe dll'ki pomogą, wystarczy podmienić pierwszy wymieniony plik. Z kolei shiny to jest profiler - prawdopodobnie to on odpowiada za tworzenie bardziej obfitych logów, kiedy coś się wykrzacza - bo nie widziałem, żeby robił debugowe elaboraty podczas grania bez CTDów. Prawdopodobnie, bo nie sprawdzałem tego na 100%.
W każdym razie w wątku na GSC pojawiły się szczegóły wyjaśniające nieco co i jak, tam odsyłam, bo sam ostatnio nie mam kiedy tego sprawdzać, tylko dłubię.

EDIT: dla dodania czytelności mojej odpowiedzi - resztę chrzanić.
Image Image

Merkantylizm, srerkantylizm.

Za ten post Plaargath otrzymał następujące punkty reputacji:
Positive Wiewi0r.
Awatar użytkownika
Plaargath
Weteran

Posty: 653
Dołączenie: 23 Mar 2010, 15:12
Ostatnio był: 03 Kwi 2022, 22:03
Kozaki: 234

Następna

Powróć do Zew Prypeci

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 8 gości