Autor Wątek: FSX kontra komputer: testy, testy.  (Przeczytany 64546 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Online some1

  • Global Moderator
  • *****
Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #75 dnia: Lipca 04, 2011, 21:19:07 »
http://forum.avsim.net/topic/281538-the-bp0-conclusions/

Domyślnie bufferpools są włączone. Wyłączenie, lub ustawienie zerowego rozmiaru zwiększa znacznie wydajność, ale kosztem stabilności. Zwłaszcza przy wyższych FPS'ach i szybkich zmianach scenerii możemy zaliczyć crash sterownika karty graficznej. Tutaj jest pewne pole do eksperymentów, bo zależy to od konfiguracji komputera.

Na stronę wizualną bufferpools nie wpływa. Chyba, że pojawią się artefakty, to wtedy znaczy że przesadziłeś ;)
"It's not a Bug! It's an undocumented feature!"

Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #76 dnia: Lipca 04, 2011, 23:23:49 »
Myślałem, że będę mógł uzupełnić powyższą notke w trybie edycji, ale nie mogę.
Odnośnie praktycznego stosowania [BUFFERPOOLS] Poolsize=n należałoby się zastanowić, jaki jest faktyczny rozmiar danych przechowywanych w VertexBuffers. Zwiększanie tego parametru bez świadomości ile naprawdę potrzebujemy miejsca na buforowanie informacji o geometrii, jest pozbawione większego sensu.  Wraz z wypuszczeniem SP1 Microsoft zwiększył rozmiar Poolsize z 1MB do 4MB i uznał taką wartość za wystarczającą. Z natury obiekty modelowane na potrzeby gier, a zwłaszcza FSXa, są modelami "low poly" o małym stopniu złożoności, nadrabiają to teksturą. Jednak w VertexBuffer(dalej VB) są przechowywane tylko informacje o wierzchołkach buforowanych obiektów, tekstury są buforowane i przetwarzane osobno.

Rozmiar VertexBuffora utworzonego celem przechowywania informacji o prostym, prawidłowo zbudowanym obiekcie liczy się w dziesiątkach bajtów. Obiekty deafaultowe autogenu sa uproszczone do granic możliwości. Sądzę, że takie domki mają nie więcej niż 30 verteksów. 10 tysięcy takich domków wymaga 1MB przestrzeni dla VB. Skomplikowane scenerie lotniskowe mogą wymagać znacznie większego rozmiaru dla VB, jednak znający sie na rzeczy twórcy dodatków wiedzą, że nie należy przesadzać.

Odrębnym zagadnieniem jest kwestia czy parametr  [BUFFERPOOLS] Poolsize=n ma coś wspólnego z buforowaniem wierzchołków siatki terenu czy nie. Jeśli by Poolsize miał coś wspólnego z buforowaniem mesha, to użytkownicy mesh'ów o dużej rozdzielczości powinni odnieść korzyść z powiększenia przestrzeni dla VB.

@some1
Dziękuję odpowiedź, ale jesli mógłbym prosić to odpowiedz mi (bo o to właśnie pytałem), która postać wpisu UsePools= jest domyślna:
[BufferPools] UsePools=0 czy [BufferPools] UsePools=1
bo to, że [BUFFERPOOLS] Poolsize=4000000 jest domyślne, to wiem i jest to podane w treści mojego postu.

Odnoście wątku "The BP=0 conclusions FSX improvement by Jesus Altuve aka Bojote" http://forum.avsim.net/topic/281538-the-bp0-conclusions/ to mam uzasadnione wątpliwości odnośnie prawidłowości opisu "tweak'a"  [BufferPools] UsePools= . Poparłem je konsultacją z programistą zajmującym się metodami Direct3D na co dzień. Podobnie mam zastrzeżenia do "tweak'a" [GRAPHICS] HIGHMEMFIX=1, w tym wypadku moje wątpliwości mają inne, ale też udokumentowane źródło. Staram się wyjaśnić problem i dlatego na razie wstrzymałem się od pisania na ten temat.

Podobnie kontrowersyjna jest sugestia [BufferPools] PoolSize=0. Opis sposobu działania FSX po wprowadzeniu takiego wpisu jest sprzeczny z wypowiedziami Adama Szofrana na temat modelu przetwarzania danych w FSX oraz z normalnymi zasadami zapisu danych do pamięci graficznej w Direct3D.

PS. http://www.venetubo.com/fsx.html ustawia ludziom takie "cuda", że głowa mała. Wystarczy poczytać komentarze na AVISMIE. Jednym z poważnych błędów konfiguratora  jest nieuwzględnienie różnic pomiędzy specyfiką scenerii z ladclassem a fotoscenerii o wysokiej rozdzielczości.
Swoją drogą, po co kupować procesor 4C jeśli konfigurator ustawi AffinityMask=12?

Online some1

  • Global Moderator
  • *****
Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #77 dnia: Lipca 05, 2011, 14:00:10 »
Napisałem wyżej wyraźnie, Domyślnie bufferpools są włączone. . Mniej verbum, więcej lectio ;)

Trzeba mieć na uwadze, że pomiędzy wpisami w pliku konfiguracyjnym a funkcjami directX opisywanymi w MSDN jest taki mały szczegół jak engine symulatora. I tak naprawdę nikt z udzielających się na forach nie wie jak on dokładnie działa. Nawet członkowie ACES nie zawsze są w stanie udzielić odpowiedzi na pytania a jeśli już, to często bez dostępu do kodu mogą tylko powiedzieć jakieś ogólniki. Osobną sprawą jest to, czy ogarniali to wszystko podczas prac nad symulatorem, moje prywatne zdanie jest takie, że nie za bardzo. Zwłaszcza, że były tam takie kwiatki jak 10 letnie wstawki w asemblerze pamiętające FS'95.

Z tego powodu ani nie ufałbym specjalnie różnym tłumaczeniom "FSX guru", ani nie próbował za dużo wyciągać na podstawie tych zdawkowych informacji od członków ACES, które pojawiają się tu i ówdzie. Tweaki sprawdzić na swoim komputerze, jak jest widoczna poprawa to zostawić, jak nie ma to wyrzucić albo zostawić dla efektu placebo. I tyle, szkoda czasu na dochodzenie dlaczego tak się dzieje a nie inaczej po dopisaniu dwóch linijek do FSX.cfg. Jak dla mnie kod może wykonywać się nawet od końca, byleby było więcej FPS'ów.

Tłumaczenie na temat HIGHMEMFIX może być błędne, ale uważam ten wpis za jeden z lepszych "tweaków". Przed jego aplikacją przekroczenie 2GB użycia pamięci przez grę zwiastowało niedaleki crash (na 100% przy przełączaniu się z fullscreen na tryb okienkowy, ale też w innych sytuacjach). Po dopisaniu tej linijki do FSX.cfg problem zniknął.

Kwestia ustawienia affinityMask na 3 jajka była chyba gdzieś tam nawet wyjaśniona. Pamiętam, że pierwszy test sprzed kilku lat od którego zaczął się ten wątek pokazał, że najwięcej FPS'ów w grze jest właśnie wtedy, gdy obciążane są 3, a nie 4 rdzenie. Różnica nie była duża, ale wyraźnie widoczna i jednoznaczna. Tylko, że poza fps'ami liczą się takie rzeczy jak płynność, czas wczytywania misji, doczytywanie scenerii w czasie lotu itp, więc ja tego ustawienia affinityMask nie stosuję.

Za dobre pomysły uważam też ograniczanie FPS'ów w grze do 30-40, ale za pomocą zewnętrznych programów a nie wbudowanego limitera.
"It's not a Bug! It's an undocumented feature!"

Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #78 dnia: Lipca 05, 2011, 17:00:05 »
I tak naprawdę nikt z udzielających się na forach nie wie jak on dokładnie działa. Nawet członkowie ACES nie zawsze są w stanie udzielić odpowiedzi na pytania a jeśli już, to często bez dostępu do kodu mogą tylko powiedzieć jakieś ogólniki. Osobną sprawą jest to, czy ogarniali to wszystko podczas prac nad symulatorem, moje prywatne zdanie jest takie, że nie za bardzo.
Masz rację, pierwotnie założyłem, że kod odpowiadający za podsystem generowania i wyświetlania obrazu został napisany spójnie i przy zaprzęgnięciu metod oferowanych przez Direct3D, jednak okazuje się, że kod FSX jest dziwną hybrydą. Dawno nie pisałem nic w C++, ale sięgnąłem po narzędzia do dekompilacji i nawet pomimo tego, że zdekompilowany kod nie ma oryginalnego nazewnictwa zmiennych, widać, że wiele procedur, które mogłyby skorzystać z Direct3D, nawet do niego nie sięga.

Jak dla mnie kod może wykonywać się nawet od końca, byleby było więcej FPS'ów.
Ja mam dwa "profile" latania FSX:
- pierwszy to loty śmigłowcami i tu interesuje mnie głownie technika lotu i manewrowanie - wystarczy mi ładna sceneria lotniska i najbliższych okolic. Zastanawiam się też nad zakupem jakiegoś regionu od OrbX, podoba mi się US CRM i bardzo jestem ciekaw wyglądu US SRM (ma być wydany jako następny po US NCA).
- drugi to latanie turystyczne i tu w grę wchodzą wyłącznie fotoscenerie. W tym przypadku im więcej FPSów tym gorsza jakość widoków - system nie nadąża z dostarczaniem wymaganej ilości tekstur. Co z tego, że w VFRPoland mam, po odblokowaniu FPSów, 100-150 klatek/s jeśli teren jest nieostry. Po ustawieniu limitu na np. 36 FPS wszystko wygląda jak powinno.

Tłumaczenie na temat HIGHMEMFIX może być błędne, ale uważam ten wpis za jeden z lepszych "tweaków". Przed jego aplikacją przekroczenie 2GB użycia pamięci przez grę zwiastowało niedaleki crash (na 100% przy przełączaniu się z fullscreen na tryb okienkowy, ale też w innych sytuacjach). Po dopisaniu tej linijki do FSX.cfg problem zniknął.
U mnie ustawienie HIGHMEMFIX=1 spowodowało fatalny efekt, którego nie potrafię teraz odwrócić. Objawia się to tym, że w widoku zewnętrznym przy przemieszczaniu go góra-dół obraz się w bardzo widoczny sposób "przerysowuje" w centralnej części. Te przerysowania to takie zerwania płynności przesuwania się obrazu i nie dotyczy to całego obrazu tylko części. Przed ruszeniem HIGHMEMFIX efekt ten nie występował.

PS. co trzeba zrobić by FSX doszedł z zajętością pamięci do 2GB? Może to specyfika fotoscenerii ale u mnie 1,2 GB na wątek FSXa to max (pamięci mi nie brakuje mam Win7 64bit i 8GB)

Kwestia ustawienia affinityMask na 3 jajka była chyba gdzieś tam nawet wyjaśniona. Pamiętam, że pierwszy test sprzed kilku lat od którego zaczął się ten wątek pokazał, że najwięcej FPS'ów w grze jest właśnie wtedy, gdy obciążane są 3, a nie 4 rdzenie.
Ustawienie na 3 rdzenie to AffinityMask=14, a ja pisałem o sugestiach Bojote odnośnie ustawiania na czterordzeniowcu AffinityMask=12 czyli pracy na 2 rdzenie.

W przypadku scenerii zbudowanej w oparciu o landclass AffintyMask=14 ma sens, jeśli jedynym celem jest zwiększenie ilości FPS. Następuje wtedy przeniesienie głównego wątku (rendering i symulacja) na core1, a na core0 zostają bliżej nieokreślone resztki fibers i to jest właśnie ten zysk - o tyle zmniejsza się obciążenie głównego wątku (odpowiedzialnego za FPSy). Przy scenerii landclass dwa pozostałe rdzenie core2 i core3 dają sobie radę z ładowaniem tekstur i mesha.
W przypadku fotoscenerii wygląda to zupełnie inaczej - wąskim gardłem wydajności jest tu proces ładowania tekstur terenu i mesha. Do wykonania tej pracy mogą być niewystarczające nawet trzy rdzenie (przy schemacie - core0 główny proces, core1 core2 core3 procesy ładowania tekstur i mesha).

PS. Z tym AffinityMask=12 czyli pracy na 2 rdzenie (na 4 rdzeniowym procesorze) chodzi o przycięcie programowi ilości pobieranych danych, wtedy główny wątek ma mniej pracy i można zwiększyć ilość FPS ale to opcja dla "fetyszystów" ilości FPS.

Za dobre pomysły uważam też ograniczanie FPS'ów w grze do 30-40, ale za pomocą zewnętrznych programów a nie wbudowanego limitera.
U mnie sprawdza się (?) limiter wewnętrzny, zewnętrznego nie testowałem. Na czym polega zaleta/korzyść z zastosowania zewnętrznego limitera?

Online some1

  • Global Moderator
  • *****
Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #79 dnia: Lipca 05, 2011, 17:42:30 »
Cytuj
Masz rację, pierwotnie założyłem, że kod odpowiadający za podsystem generowania i wyświetlania obrazu został napisany spójnie i przy zaprzęgnięciu metod oferowanych przez Direct3D, jednak okazuje się, że kod FSX jest dziwną hybrydą.

Przykładowo, instrumenty 2D w kokpicie są rysowane przy użyciu GDI na bitmapie (czyli jednowątkowo i na CPU) i dopiero ta bitmapa renderowana przez silnik 3D.
Ciężko też porównywać ten silnik do zwykłych gier, otoczenie może jest dość proste ale same samoloty mogą składać się z kilkuset tysięcy wierzchołków i setek animacji. Obecnie też w powszechnym użyciu są tekstury 4k.

Cytuj
PS. co trzeba zrobić by FSX doszedł z zajętością pamięci do 2GB? Może to specyfika fotoscenerii ale u mnie 1,2 GB na wątek FSXa to max (pamięci mi nie brakuje mam Win7 64bit i 8GB)

Włączyć bardzo zasobożerny samolot (np. ConcordeX), wysokie ustawienia scenerii typu OrbX czy UTX, chmury w 4096 i polatać z 10 minut. Normalnie jednak gra nie przekracza 2GB, w końcu była pisana jako normalny 32 bitowy program i nie była optymalizowana pod większe użycie pamięci.

Cytuj
Ustawienie na 3 rdzenie to AffinityMask=14, a ja pisałem o sugestiach Bojote odnośnie ustawiania na czterordzeniowcu AffinityMask=12 czyli pracy na 2 rdzenie.

Masz rację, dopadła mnie pomroczność jasna :) W takim razie nie wiem po co to.

Cytuj
U mnie sprawdza się (?) limiter wewnętrzny, zewnętrznego nie testowałem. Na czym polega zaleta/korzyść z zastosowania zewnętrznego limitera?

Wewnętrzny limiter jest ok, ale zmniejsza fps także wtedy, kiedy masz dużo poniżej założonego limitu. Na przykład limiter na 40fps, w grze 20 fps a po wyłączeniu limitera 25. Zewnętrzne limitery działające poprzez bibliotekę proxy spisują się lepiej.
"It's not a Bug! It's an undocumented feature!"

Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #80 dnia: Lipca 08, 2011, 16:04:46 »
Słowo komentarza  i ostrzeżenie na temat możliwego działania "tweaka" HIGHMEMFIX=1. Może to mój indywidualny przypadek, ale zwracam uwagę, że Bojote przestrzega przed działaniem tego wpisu w systemach Vista i Win7. Szkoda, że to ostrzeżenie nie jest zamieszczane na forach w miejscach, gdzie ten "tweak" jest wskazywany.

Wpis HIGHMEMFIX=1 spowodował u mnie dokuczliwe i wyraźnie widoczne pogorszenie jakości wyświetlanego obrazu. Jest to widoczne w VC oraz najbardziej w widoku zewnętrznym. Objawia się to jak gdyby spowolnionym i szarpanym przerysowywaniem się obrazu, zwłaszcza w jego centralnej części. Efekt "szarpana" jest taki, jak bym zamienił kartę graficzną na taka sprzed 10 lat.
Usunięcie wpisu niestety nie przywróciło programu do wcześniejszego poarawnego trybu pracy. W czasie testowania HIGHMEMFIX=1 nie zmieniałem żadnych innych parametrów, a fatalny efekt był widoczny od razu po pierwszym uruchomieniu FSX'a po dodaniu tego wpisu.

Autorem tego "tweaka" jest Jesus Altuve aka "Bojote". Tweak został opisany następująco:
"[GRAPHICS] HIGHMEMFIX=1 Fixes errors with texture addressing modes in WDDM1.0 and 1.1 when using a lot of video memory. The HIGHMEMFIX=1 you see above, fixes a bug in the FSX engine on how it handles texture addressing modes (Wrap,Clamp) and initial render states on single pass shaders, it will completely prevent textures, buildings and entire cockpits from dissapearing! this 'bug' is triggered when there is a high video memory usage situation. so, enjoy :) this is my way of giving to a community that has given me so much over the years. "

Nieco później autor skomentował jego działanie tak:
"I don't think HIGHMEMFIX improves performance AT ALL... nothing, nada... its simply a FIX! (not a performance tweak) it simply enables the LARGEADDRESSAWARE for the DX9 D3DEffects system which (for implementation reasons) was NOT enabled by default when FSX shipped.It made things worse with WDDM because of how memory is managed in Vista and Win7."
http://forum.avsim.net/to...th-highmem-fix/

Zwróciłem się z prośba do autora o precyzyjniejsze wyjaśnienie co ten "tweak" faktycznie robi i skąd pochodzi informacja o jego działaniu - odpowiedzi nie otrzymałem.

PS. Do administratora - pole formularza do wpisywania treści nie działa prawidłowo - tekst wychodzi poza pole a paska przewijania nie widać. Nie ma też możliwości sformatowania tekstu (pogrubienie, kursywa).

Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #81 dnia: Lipca 08, 2011, 22:52:03 »
Uzupełnienie do powyższego: problem na pewno nie dotyczy wydajności komputera, bo występuje także na pauzie po całkowitym załadowaniu wszystkich elementów widoku.

Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #82 dnia: Lipca 09, 2011, 15:12:28 »
Problem ustąpił dopiero po wykasowaniu FSXa i przeprowadzeniu jego ponownej instalacji oraz po wymuszeniu reinstalacji WDDM na czysto (czyli z usunięciem istniejących plików i ustawień). Sposób wyświetlania obrazu i płynność jego przesuwania wróciła do wcześniejszego, bardzo dobrego stanu, podobnie ustąpiły pojawiające się zacięcia i doładowywanie mesha nawet w bezpośredniej okolicy samolotu. Wizualnie różnica jest kolosalna.

Offline YoYo

  • Administrator
  • *****
  • Wieczny symulant
    • YoYosims
Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #83 dnia: Sierpnia 20, 2011, 21:44:45 »
Bardzo ciekawy inny tweak zamiast poprzedniego BooferPool. Trochę go potestowałem i wg. mnie działa lepiej niż BP=0. Brak artefaktów, więcej fps ale przede wszystkim jest jakoś płynniej nawet na takiej samej ilości fps jak było, np. nad miastami. Zauważyłem też, że lepiej działa u mnie bez AffintyMask i klatki na Unlimited jednak. Moje ustawienie (ale karta 2gb):

[BUFFERPOOLS]
RejectThreshold=524288

Trochę tematów o tym:
http://www.realenvironmentxtreme.com/forums/index.php?/topic/8612-alternative-bufferpool-tweak-amazing-results/page__hl__rejectthreshold__fromsearch__1
http://www.sim-outhouse.com/sohforums/showthread.php?44197-RejectThreshold-Tweak-Replacement-for-No-BufferPool
http://www.flightsimworld.com/forums/index.php?showtopic=186771
« Ostatnia zmiana: Stycznia 12, 2012, 23:32:04 wysłana przez YoYo »
webmaster,   YoYosims - jeśli lubisz symulatory lotnicze

www.yoyosims.pl

Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #84 dnia: Sierpnia 21, 2011, 21:10:18 »
Czy te ustawienia BP... można zastosować dla procesorów Core 2 Duo ?

poko24

  • Gość
Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #85 dnia: Grudnia 28, 2011, 17:58:49 »
Właśnie? I czy będzie ten trick działać z kartą graficzną z 1GB vRAM (GTX285)? Jak to się liczy?

Cytuj
[BUFFERPOOLS]
RejectThreshold=524288 //512Kb = 524288, 256Kb = 262144, 124Kb = 126976, 96Kb = 98304

Offline YoYo

  • Administrator
  • *****
  • Wieczny symulant
    • YoYosims
Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #86 dnia: Stycznia 26, 2012, 07:48:04 »
Ktoś korzysta z zewnętrznego ogranicznika FPS w FSX (np.FPS Limiter)?
Podobno działa lepiej jeśli damy w FS jednak unlimited + zewnętrzne ograniczenie FPSów.


http://www.venetubo.com/fsx/FPS_Limiter_0.2.rar

http://www.sim-outhouse.com/sohforums/showthread.php?46148-External-FPS-Limiter
http://www.simforums.com/forums/external-fps-limiter_topic37713.html
webmaster,   YoYosims - jeśli lubisz symulatory lotnicze

www.yoyosims.pl

Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #87 dnia: Stycznia 26, 2012, 08:31:56 »
Da się w nim ustawić dolną granicę FPSów? ;)

Offline Sundowner

  • *
  • Chasing the sunset
Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #88 dnia: Stycznia 26, 2012, 09:16:53 »
Ja używam, ale nie widzę różnicy.

Online some1

  • Global Moderator
  • *****
Odp: FSX kontra komputer: testy, testy.
« Odpowiedź #89 dnia: Stycznia 26, 2012, 09:26:50 »
Tak, korzystam.

Zewnętrzny limiter pomaga, bo ten wbudowany w FSX nie działa najlepiej i powoduje spadek FPS w każdej sytuacji. Korzystałem z innego, którego nie trzeba uruchamiać osobną aplikacją, ale zasada ta sama.

W ostatnich sterownikach nvidii jest już wbudowany limiter fps z możliwością ustawienia dla każdej aplikacji osobno. I to jest najlepsze rozwiązanie.
"It's not a Bug! It's an undocumented feature!"