PresentMon
Tato aplikace, kterou si můžete zdarma stáhnout z GitHub.com, je nástrojem, za pomocí kterého můžete sledovat důležité události ve Windows, včetně příkazu „Present“, který je zasílán počítačovou hrou na grafickou kartu a který grafické kartě přikazuje zobrazit (prezentovat) hotový snímek na monitoru počítače. PresentMon pak (krom jiného) zaznamenává časy těchto volání příkazu „Present“ a ukládá je do logovacího souboru. Z rozdílů časů dvou po sobě jdoucích příkazů „Present“ pak víme, jak dlouho trvala příprava jednoho konkrétního snímku. Princip je tedy prakticky stejný jako u nástroje FRAPS, rozdíl je pouze ve způsobu, jak se k detekci příkazu „Present“ dostat. V případě sledování událostí (Events) přímo ve Windows se jedná o naprosto universální řešení, které funguje nejen u her využívající DirectX nebo OpenGL, ale i ostatních nových 3D API včetně Vulkan. Dalo by
se také říci, že
nástroj PresentMon je taková hodně zjednodušená varianta GPUView.
Oproti nástroji FRAPS je však PresentMon nástrojem opravdu spartánským. Žádné uživatelské rozhraní nečekejte, veškerá práce s tímto nástrojem je založena pouze na bázi příkazového řádku a také jeho výstupy do logovacích souborů nejsou tak transparentní a jednoduché, jako tomu je v případě FRAPS. Také nečekejte, že byste si mohli u nástroje PresentMon nějak označit začátek a konec testovacího úseku, jako v případě FRAPS, kde za pomoci Hot Keys (F11) můžete spustit či vypnout logování časů snímků do souboru. S PresentMon je to na vás a vaší invenci, jak se s tímto problémem vypořádáte sami. To však na věci nic nemění, protože pouze za pomoci nástroje PresentMon se můžete dostat k měření takových věcí, jako jsou počítačové hry podporující Vulkan, nebo hry pod UWP (Universal Windows Platform).
Jak už jsme si řekli, výstupem PresentMon je jakýsi logovací soubor (.csv), ve kterém jsou zaznamenány časy všech snímků, které grafická karta v průběhu celého testu vyrenderuje. Bohužel tyto logy nejsou tak transparentní, jako v případě nástroje FRAPS. PresentMon totiž sleduje a zaznamenává všechny potřebné události a procesy systému, tedy nejen proces samotné měřené hry. Výsledkem pak jsou záznamy událostí (Events) různých procesů, se kterými byste se museli při práci v aplikaci Excel nějak vypořádat. Pro zjednodušení práce jsem vytvořil podporu pro PresentMon přímo v nástroji FLA Calculator. Můžete tak nyní otevírat logovací soubory PresentMon za pomoci FLA Calculator, který se již s importem těch správný dat vypořádá sám, zobrazí vám všechny možné grafy, nebo také exportuje upravená data do nového souboru, kompatibilního s aplikací FRAPS pro pozdější práci v Excelu.
Protože popisování toho, jak s nástrojem PresentMon pracovat, nebo jak si následně importovat vytvořený log soubor do FLA Calculator a zobrazit výsledky, je příliš náročné a ve výsledku pak jistě nepřehledné, rozhodl jsem se raději natočit „instruktážní“ video. Předem se omlouvám za chabou kvalitu zvuku způsobenou nekvalitním mikrofonem a svým ochotnickým projevem :)