Přidat článek mezi oblíbenéZasílat nové komentáře e-mailem Optimalizace MP výkonu Battlefield 1 (a BF4 také) pro stroje s více jádry

Relativně nedávno jsem zjistil, že spousta lidí ani netuší, že jejich PC "nezvládá" hraní Multiplayeru BF - čistě proto, že ani nenastavili hru tak, aby podávala optimální výkon. To platí zejména pro stroje s více než 4 jádry (včetně HT), tedy prakticky všechny i7 a vyšší od Intelu a FX procesory od AMD. Pojďme si tedy ukázat, jak z našeho stroje vydolovat maximum.

Parkování CPU a nastavení výkonového profilu v PC

Nejprve suchá teorie: Windows mají šetřicí funkce a výkonové profily. Windows mají také mechanismus, který takzvaně "parkuje" nevytěžovaná jádra. To první sice nastavíte v ovládacích panelech, ale parkování už je třeba nastavovat v registrech. Na to, abyste se s tím nemuseli ručně mořit, existuje celkem jednoduchá cesta - utilitka, která vše nastaví za vás. Stáhnete ji zde: http://coderbag.com/Programming-C/CPU-core-parking-manager-v3

Nastavení je vcelku jednoduché - pomocí roletky vlevo si vyberete vysoký výkon a pomocí jezdce navolíte 100% a klepnete na Apply, čímž se vše nastaví a po restartu PC aktivuje.

[79798-cpupark3-png]

Při dalším spuštění si zkontrolujte, že máte všechna jádra aktivní - použijte rolovátko nahoře, abyste si ověřili stav všech jader.

Nastavení Job Threads v samotném BF

Nyní přijde zásadní, leč mírně složitější krok. Abychom byli opravdu schopni správně využít všech jader, která v systému máme, bude třeba upravit konfiguraci samotné hry. To provedeme pomocí editace souboru user.cfg. Tento soubor se nachází v adresáři hry (a nemusí tam být vůbec, v takovém případě jej vytvoříme). Pokud budete soubor vytvářet, dejte si pozor, s jakou příponou jej vytvoříte, zejména defaultní nastavení windows, které skrývá známé přípony souborů v kombinaci s výchozím nastavením notepadu, který automaticky přidává příponu .txt může dělat značné problémy.

Jako nejjistější řešení nabízím postup krok za krokem za použití programu Total Commander (zde bych rád všem doporučil jeho nákup, stojí to za to a podpora autora taky):

1. spusťte TC
2. nalistujte v jednom panelu složku s hrou (default bývá Program files\Origin\Battlefield 1)
3. pokud ve složce nevidíte soubor user.cfg, zmáčkněte kombinaci kláves Shift+F4 a do okénka, které se objeví, vepište "user.cfg" (bez uvozovek) a odklepněte enterem. Spustí se automaticky editor a vy můžete přeskočit na bod č. 5.
4. pokud ve složce soubor user.cfg vidíte, klepněte na něj jednou myší, čímž se označí, následně použijte klávesu F4 pro jeho editaci
5. do souboru vložte následující text (kamkoli - na začátek, či na konec, je to jedno), dbejte pouze, aby každý text začínal na samostatném řádku:


PerfOverlay.DrawFps 1

thread.processorcount 8
thread.maxprocessorcount 8
thread.minfreeprocessorcount 0

Číslice 8 vyjadřují počet jader, který máte k dispozici. Jste-li šťastnými majiteli Ryzen7 nebo jiného procesoru, schopného poskytnout ještě více jader, upravte toto číslo tak, aby odpovídalo počtu jader, tedy např. 16. Jako bonus je na prvním řádku instrukce pro trvalé zobrazení FPS ve hře - bude se ukazovat vpravo nahoře.

Má vlastní zkušenost s tímto nastavením je taková, že zmizelo pocukávání ve hře, neuvěřitelně se vyhladil chod síťové komunikace (žádné poskakování ragdollů jiných hráčů, mikroskopické zasekávání obrazu apod. v bitevní vřavě, apod.) a zdá se mi, že i načítání map se docela zrychlilo (na SSD je rychlé i tak, ale určité zlepšení nastalo).

Malý bonus na závěr

Jako malou třešinku si dovolím ještě uvést jedno nastavení, které pokládám za přínosné, i když jde částečně proti smyslu výše uvedených nástrojů. Je jím limitace FPS. Pokud vám stačí výkon FPS na úrovni maximální obnovovací frekvence vašeho monitoru (za předpokladu, že jej grafika dosáhne), doporučuji jej nastavit - zbavíte se tím tearingu a zároveň ztišíte své PC a snížíte spotřebu.

Možností, jak toho docílit, je vícero:

1. asi nejlepší je povolit tuto funkci v ovladači grafické karty (u aktuálních modelů podporuje jak nvidia, tak AMD)
2. pokud toto není z jakéhokoli důvodu možné, tuto funkci podporuje i samotná hra, postačí do user.cfg přidat následující konfigurační parametr:


GameTime.MaxVariableFps 60.000000

kterým určíte, že max. FPS se "zaseknou" na 60FPS a grafika nebude zbytečně počítat obrázky, které nikdy nezobrazí.

Doufám, že tímto článečkem jsem alespoň někomu pomohl dosáhnout lepší zážitek z hraní Battlefieldu.

Jsou zobrazeny jen nové komentáře. Zobrazit všechny
Předmět Autor Datum
Supr clanek ;-) * DX --> 2 job "threads in use", Mantle --> 3 job "threads in use".…
XoXoChanel 04.10.2017 19:23
XoXoChanel
Touchwod Nastavení Job Threads v samotném BF - Pro nastaveni :[ thread.jobthreadpriority ? - Dal… poslední
XoXoChanel 30.10.2017 22:54
XoXoChanel

Touchwod

Nastavení Job Threads v samotném BF

- Pro nastaveni :[

thread.jobthreadpriority ?

- Dal jsem "8", ale nema to byt 7 ? Nejsem si jisty, jestli 0 je jako prvni TH.

TiP ~ Pro starsi, nebo ne Hig-Endové PC sestavy pro stabilnich 60-75FPS v rozliseni FHD@1080p :

[CPU 4C|8T -DX11]

WorldRender.TransparencyShadowmapsEnable 0
WorldRender.MotionBlurEnable 0
WorldRender.SpotLightShadowmapEnable 0
WorldRender.SpotLightShadowmapResolution 0
RenderDevice.Dx11Enable 1
RenderDevice.Dx11Dot1Enable 1
RenderDevice.Dx11Dot1RuntimeEnable 1
RenderDevice.VSyncEnable 0
RenderDevice.TrippleBufferingEnable 0
RenderDevice.RenderAheadLimit 0
perfoverlay.drawgraph 1
Perfoverlay.DrawFPS 1
WorldRender.LightTileCsPathEnable 0
WorldRender.DxDeferredCsPathEnable 0
WorldRender.MotionBlurEnable 0
WorldRender.MotionBlurFixedShutterTime 0
WorldRender.MotionBlurForceOn 0
WorldRender.MotionBlurMax 0
WorldRender.MotionBlurMaxSampleCount 0
WorldRender.MotionBlurQuality 0
Postprocess.DofMethod 0
Postprocess.BlurMethod 0
Postprocess.DynamicAOEnable 0
Postprocess.DynamicAOMethod 0
render.drawscreeninfo 1
thread.jobthreadpriority 8
thread.processorcount 8
thread.maxprocessorcount 8

thread.minfreeprocessorcount 0

Zpět na články Přidat komentář k článku Nahoru