Minulí týden byla uvolněna uzavřená betaverze Vulkan/Metal pro X-Plane (11.50).

Jakmile budou odstraněny největší problémy, bude vše připraveno k spuštění otevřené bety.

Jak to vše funguje?

V X-Plane 11.50 bude možnost zaškrtnout v nastavení zobrazení položku povolit Vulkan nebo Metal, bude nutný restart simulátoru. Pokud simulátor “spadne” ještě dříve než se načte hlavní munu, vrátí se nastavení na OpenGL, pokud to nastane během letu, nastavení se nezmění.

Ze statistik posledních let, většina uživatelů má tendenci v nastavení simulátoru posunout všechny posuvníky nastavení doprava a poté se divý, že hra má velmi špatný výkon.

Nyní s příchodem Vulkanu/Metalu lze již zjistit do jaké míry lze toto chování ovlivnit. Scenérie s plnými stíny je nyní vykreslována za pomoci ovladačů Vulkan/Metal a výkonný počítač by to vše měl zvládnout na 30 FPS.

Ovladače a výpočet pomocí Vulkan/Metal mění přístup k využití VRAM. S OpenGL došlo při vyčerpání VRAM k přesunu textur do systémové paměti a aplikace tudíž neběžela plynule pokud ovladače provedli tento krok na poslední chvíli.

Při použití Metalu a Vulkanu, X-Plane sníží rozlišení textur během letu, na pozadí, bez trhání, preferovat bude textury, které nejsou v daný okamžik používány. Výsledek je plynulejší a bez většího rušení. Budete nadále moci snížit celkové rozlišení textur pro dosažení lepšího výkonu.

Tento nový přístup (kompletně) bude během beta verze potřeba řádně doladit. Bude potřeba shromáždit velké množství dat k doladění algoritmu.

X-Plane 11.50 nebude již podporovat textury bez komprese – pokud je na disku přítomen formát DDS, bude ho používat.

Detailní náhled

Jedna z hlavních předností použití Metalu/Vulkánu je, že v renderování nedochází k žádným černým dírám ve výpočtu v reálném čase.

That code is now rewritten and the results are much smoother. Here’s what winning looks like:

This is my old iMac running at 60 fps – it can’t do that with everything maxed out, but when it does hit 60 fps you’ll note the dead even orange bar at the top – that’s consistent framerate. The bottom of the screen shows a block diagram of some of the tasks that went into the current frame render.

With “weird driver behavior” removed, when something stutters, so far we’ve been able to identify it, e.g. the autogen stutters from last week. Here’s what stutters look like:

The orange spikes you see are the stutters – I induced these by command-tabbing to other apps while flying; when the window manager swaps apps it’s pretty disruptive. That big blank space in the middle of the screen is time spent doing something (probably in the window manager) that we do not yet track.

One last show-and-tell pic: for some reason when running at 45 fps, the sim is actually running at a mix of 60 and 30 fps every other frame, which is not good. We can easily see this with our tools:

Here we can see two frames, a long one on the left and a short one on the right. The difference: “acquire surface” is taking a ton of time. The long frame is stuck waiting for the window manager to give us some VRAM to draw into. With this kind of detail, we can at least understand the bug and try to fix it.

Next Steps

At this point the only thing left to do is fix bugs, some of which are still open even as the private beta goes out. We will move to public beta once we have something where we think the initial experience isn’t a blue screen and tears.