Szkodliwe tweaki w FSX

Kolejny temat, kolejne posty i raz po raz powtarzane bzdury o usprawnieniu FSXa. Kilka spróbuję wyprostować. Sprawdź czy używasz tych modyfikacji i jeśli tak – przemyśl czy na pewno warto.

Kilka słów wstępu, tak żeby później nie wtrącać takich uwag co chwilę. Zakładam, że czytelnik orientuje się, że piszę tutaj o modyfikacjach pliku fsx.cfg i ma o nich choć przeciętne pojęcie. Pisząc o rdzeniach i ich kolejności używam formalnej numeracji zaczynającej się od zera, więc proszę się nie dziwić, że piszę o rdzeniu 3 jako ostatnim w czterordzeniowym procesorze – taki procesor ma rdzenie 0, 1, 2 i 3. Żeby nie było wątpliwości będę pisał o rdzeniu „0” i o „pierwszym” – to są synonimy. O rdzeniu „1” będę pisał „drugi”. Zakładam, że czytelnik posiada FSX z drugim service packiem (SP2) lub nakładkę Acceleration, także pisząc o tym co FSX domyślnie robi mam na myśli to co robi domyślnie w tych właśnie wersjach.

Standardowe oświadczenie o naruszeniu czyiś dóbr – podobieństwo osób przedstawionych w tekście do osób przedstawionych w tekście jest zamierzone.

Zacznę od mojego „ulubionego”.

Affinitymask

Wpis Affinitymask=x wyznacza rdzenie, które będą obsługiwały aplikację. Domyślnie FSX używa wszystkich rdzeni procesora. Wpisując odpowiednią wartość redukujemy obciążenie wybranego rdzenia lub kilku. I tak 15 (wszystkie przykłady na procesorze czterordzeniowym) powoduje obsługę rdzeni 0, 1, 2, 3. 15 to w zapisie dwójkowym 1111 – jak widać „1” na każdej pozycji. 14 wyłącza rdzeń zero (14 – 1110 – affinity mask opisuje rdzenie zaczynając od ostatniego). 13 (1101) oznaczałoby wyłączenie rdzenia 1.

W wielu miejscach dla procesorów czterordzeniowych zaleca się wyłączenie rdzenia „0”. Ma to jakoby podnieść sprawność działania programu. Nie jest to prawda w zdecydowanej większości przypadków.

Rdzeń „0” obsługuje najbardziej podstawowe funkcje programów i może być najsilniej obciążonym rdzeniem komputera. I tu znajduje się wąska przestrzeń kiedy tweak affinitymask może się przydać – jeśli mamy na komputerze jakieś działające procesy, które obciążają pierwszy rdzeń (a innych nie) to mogą one (ale podkreślam – jedynie mogą, a nie muszą!) wpłynąć negatywnie na działanie FSX. Zresztą… w ogóle nie należy używać silnie obciążających programów równocześnie z FSX.

Ale jak pisałem – te procesy mogą (ale nie muszą) wejść w kolizję z procesami FSX. Pozostaje nam wybór – wyłączyć pierwszy rdzeń, albo uwierzyć, że systemy zaprojektowane do sprawnego dzielenia procesów między rdzenie poradzą sobie dobrze z tym problemem. Ja nie czuję się od nich lepszy.

Wyniki moich testów są takie:

  • jeśli nie mamy żadnego programu, który obciąża stale i w 100% rdzeń „0” to wyłączając go przez affinitymask=14 (dla 4-wątkowego procesora) tracimy zawsze;
  • jeśli działa nam taki program (radzę go wyłączyć zanim włączysz FSX) – wyniki są różne. Wtedy można kombinować – ale nie wiem jaki program może być tak ważny, że musi działać w tle kiedy latasz na symulatorze…

Jedynym przypadkiem kiedy affinitymask należy ustawić jest sytuacja kiedy mamy na komputerze program, który musi działać bez żadnych zakłóceń ani opóźnień pomimo uruchomionego FSX. Wtedy można coś kombinować z przydzieleniem obu programom różnych rdzeni, ale wspominam o tym jako o ciekawostce. Osoby, które mają taką potrzebę będą zapewne świetnie zorientowane w problemie i ustawią sobie wszystko jak trzeba.

Uwaga na marginesie – nawet jak wywalimy FSX z rdzenia „0” to dalej na nim będą działały pewne procesy tego programu. Nie da się go całkowicie wykluczyć z tego rdzenia.

Dla procesorów ośmiowątkowych ustawienia są inne – należy je dopasować do ilości aktywnych wątków.

FIBER_FRAME_TIME_FRACTION

FIBER_FRAME_TIME_FRACTION czyli śmiech na sali i „czemu mi nie działa?”. Zwykle (w ciągu ostatnich paru dni naliczyłem 2 przypadki więc coś jest na rzeczy) połączone z ustawiłem sobie affinity mask 14 (czytaj – wyłączyłem pierwszy rdzeń).

Co właściwie robi ten tweak? Wszyscy się rozpisują jak to on dzieli czas procesora na renderowanie i wątki w tle. Niby tak. Ale jest haczyk, o którym w 95% tekstów nikt nie wspomniał. Ten wpis reguluje tylko to co się dzieje na pierwszym rdzeniu (lub w jednordzeniowym procesorze). Wraz z service packami (nie pytajcie mnie z którym, bo nie pamiętam, zresztą co za różnica?) standardowy podział między renderowanie a wątki z tła (domyślnie 0.33 czasu renderowania na wątki z tła) został rozbity. Renderowanie wyleciało w większości na kolejne rdzenie. W efekcie powyższy wpis ustala jedynie podział czasu na rdzeniu pierwszym. W praktyce może się okazać, że nie ma czego dzielić, bo rdzeń pierwszy bez problemu sobie radzi ze wszystkimi zadaniami jakimi został obarczony i jedne oraz drugie wykonuje przed czasem.

Oczywiście jeśli ktoś sobie ustawił (bo tak gdzieś pisali) affinitymask=14 to płacz, że FIBER_FRAME_TIME_FRACTION nie działa jest już zupełnie nie na miejscu – nie działa, bo nie ma czego dzielić.

W kontekście tego co napisałem 2 akapity wyżej – jeśli już chcesz testować tego tweaka a używasz wielordzeniowego procesora to pamiętaj – nie używaj affinity mask wyłączającego rdzeń „0”. Jeśli użytawsz tego tweaka to ustaw wielkie wartości – zmiana z 0.33 na 0.35 nie będzie widoczna na pewno. 0.05 albo 0.95 może być… teoretycznie… w szczególnej sytuacji…

TEXTURE_BANDWIDTH_MULT

Kolejny fajny tweak, który „nie działa”. Nie działa, bo przy dobrze skonfigurowanym FSX nie może działać. TEXTURE_BANDWIDTH_MULT zadziała jedynie przy limicie klatek ustawionym z poziomu FSX. Limit klatek ustawiony z poziomu FSX (a nie zewnętrzne – np. z poziomu nVidia Inspectora) jest bardziej szkodliwy niż to co tym wpisem można uzyskać, więc można o nim zapomnieć. Znów (dla bezpieczeństwa procesowego) – są określone sytuacje, kiedy ten tweak i ustawienie w FSX limitu klatek może okazać się lepszy.

Oczywiście jeśli nie masz zewnętrznego ograniczenia klatkowania – warto popróbować różnych wartości.

Największa ściema „dobre konfiguracje”.

Nie ma czegoś takiego jak dobra konfiguracja FSX. Jeśli podajesz specyfikacje komputera na venetubo albo wrzucasz swój fsx.cfg na forum – możesz liczyć na jakąś, średnio pasującą do Twojego komputera, poprawkę. Średnio to oczywiście lepiej niż konfiguracja niepasująca, ale daleka od tej, którą można uzyskać.

Dobre tweakowanie FSX to (niestety) praca samodzielna, wykonana odpowiednio nie tylko do sprzętu, który posiadasz, ale również do tego jakie masz scenerie, czym latasz i jak oraz (może przede wszystkim) czego oczekujesz. Inaczej będzie skonfigurowany FSX do lotów Piperem Cubem 200 metrów nad ziemią, inaczej dla wirtualnego pilota Jumbo latającego z Karaczi do Windhoek. Pilot 737 PMDG kursujący na trasie Amsterdam – Monachium (oba z Aerosoft Mega Airport) też może mieć inne potrzeby i konfigurację.

Jak skonfigurować FSX poprawnie?

Kiedyś już polecałem Extreme FSX PC. Dalej go polecam. Polecam również (z uwagami z mojego tekstu) poradnik Georgio.

Najważniejsze jednak są testy. Latanie raz po raz, na tej samej trasie, w tych samych warunkach i porównywanie czy jakość się poprawiła, czy nie. Niestety (albo na szczęście) – na dobrym sprzęcie i w miarę poprawnie skonfigurowanym komputerze zmiany są minimalne. Na szczęście, bo przyzwoity komputer daje już teraz całkiem duże możliwości.

Nie przesadzaj z oczekiwaniami

Ja wiem, że filmiki na youtube wyglądają niesamowicie. Ale te symulatory nie dają takich efektów. Jeśli chcesz latać samolotem pasażerskim i liczysz na ostre tekstury ziemi o dużej rozdzielczości na podejściu… będzie ciężko. Jeśli latasz szybkim samolotem nisko nad ziemią… będzie ciężko. Także zanim napiszesz następny tekst – zastanów się co masz i czego oczekujesz. I jeśli już piszesz o tym, że coś Ci nie działa jak powinno to napisz, w jakich warunkach – jaki masz sprzęt, scenerię, samolot i z jaką prędkością lecisz…