Projekt lsfg-vk je pripravil neoficialno različico orodja Lossless Scalings Frame Generation (LSFG) za platformo Linux, ki uporablja DXVK in grafični API Vulkan. Koda projekta je napisana v jeziku C++ in je objavljena pod licenco MIT. Razvoj je izvedel zunanji navdušenec, ki je ponovno ustvaril funkcionalnost lastniškega LSFG skozi obratno inženirstvo Windows knjižnic.
Aplikacija omogoča povečanje izhoda igrarskih aplikacij, zasnovanih za zagon v ločenem oknu, da jih prikaže v celozaslonskem načinu. Orodje je lahko potrebno tudi za odpravo zamegljenega izhoda pri povečevanju z uporabo standardnega grafičnega sistema ali za obvladovanje omejitev v igrah, vezanih na fiksne ločljivosti zaslona. Poleg tega obstaja možnost povečanja gladkosti izhoda in povečanja števila sličic na sekundo v igrah, ki niso zasnovane za visoke FPS, z vnosom dodatnih vmesnih sličic, ustvarjenih na osnovi interpolacije sosednjih sličic.
Za ponovno ustvarjanje manjkajočih podrobnosti in povečanje v LSFG se lahko uporabljajo tako lastni izvirni algoritmi, kot tudi obstoječe tehnologije na osnovi strojnega učenja, kot sta AMD FidelityFX Super Resolution in NVIDIA Image Scaling. Izbira algoritma je odvisna od vrste igrarskih aplikacij. Na primer, za sodobne igre se priporoča uporaba lastnega algoritma LS1 ali tehnologija super vzorčenja AMD FSR. Za stare igre s pikselno grafiko so predlagani algoritmi Integer Scaling in xBR, medtem ko je za igre v slogu risank in anime na voljo algoritem Anime4K. Poleg iger se modificirani izhod lahko uporablja tudi za emulatorje za zagon retro iger in iger za konzole.
Povečevanje in vstavljanje sličic se izvaja v realnem času in ne zahteva sprememb v igrah. V različici za Linux se za vstavljanje sličic in poseganje v izhod igre uporablja vtičnik v obliki dodatnega sloja Vulkan, s katerim se izvaja prestrezanje, izvajanje in modificiranje obstoječih funkcij Vulkan. Za uporabo lsfg-vk je dovolj, da namestite knjižnico liblsfg-vk.so in nastavite njene parametre preko okoljevskih spremenljivk.
Originalni LSFG je skompilirana aplikacija za Windows koja se oslanja na D3D11 API. Da bi se funkcionalnost LSFG prenela na Linux, implementacija je prebačena u oblik koji koristi Vulkan API. Za prenos šejdera dodat je rukovalac koji presreće D3D11 pozive i čuva šejdere na disku, kao i parser za dinamičko ekstraktovanje šejdera iz izvršnih datoteka u PE (Portable Executable) formatu. Za prenos grafičkog cevovoda koji upravlja izvršavanjem šejdera iz aplikacije izdvojeni su komponenti zasnovane na D3D11 API i uz pomoć DXVK je omogućeno njihovo funkcionisanje na Linuxu. Nakon što je dobijena radna verzija zasnovana na D3D11 i DXVK, uz pomoć debagera RenderDoc dobijena je tačna raspodela poziva Vulkan, na osnovu koje je pripremljena konačna verzija koja direktno koristi Vulkan API.
Izvor: opennet.ru
