Az lsfg-vk projekt egy nem hivatalos portot készített a Lossless Scalings Frame Generation (LSFG) eszközre Linux platformra, amely a DXVK-t és a Vulkan grafikus API-t használja. A projekt kódja C++ nyelven íródott és MIT licenc alatt érhető el. A fejlesztést egy független lelkesedésű programozó végezte, aki visszafejtette a Windows könyvtárak által kínált funkciókat.
Az alkalmazás lehetővé teszi, hogy a játékalkalmazások kimenetét, amelyek külön ablakban futnak, teljes képernyős módba skálázzuk. Az eszköz szükséges lehet a homályos kimenet eltávolításához, amely a beépített grafikus alrendszer használatakor keletkezik, vagy a fix képernyőfelbontásokra épülő játékok korlátozásainak megkerüléséhez. Továbbá, lehetőség van a kimenet simítására és a képkockák másodpercenkénti számának növelésére olyan játékokban, amelyek nem lettek optimalizálva a magas FPS-re, azáltal, hogy további köztes képkockákat helyezünk be, amelyeket a szomszédos képkockák interpolálásával hozunk létre.
Az LSFG a hiányzó részletek rekonstrukciójára és skálázására saját eredeti algoritmusokat, valamint létező gépi tanulásalapú technológiákat, például az AMD FidelityFX Super Resolution-t és az NVIDIA Image Scaling-et használhatja. Az algoritmus választása a játékalkalmazások típusától függ. Például a modern játékokhoz ajánlott az LS1 saját algoritmusának vagy az AMD FSR szupermintázási technológiájának használata. Régi pixelgrafikus játékokhoz az Integer Scaling és xBR algoritmusokat javasolják, míg a rajzfilm- és anime-stílusú játékokhoz az Anime4K algoritmus érhető el. A kimenet módosítása közvetlenül a játékokra, emulátorokra is alkalmazható, amelyek retro játékok és konzolos játékok futtatására szolgálnak.
A skálázás és a képkockák beillesztése valós időben történik, és nem igényel módosítást a játékokban. Az Linux verzió esetében a képkockák beillesztése és a játék kimenetébe való beavatkozás egy Vulkan réteg csatlakoztatásával történik, amely lehetővé teszi a meglévő Vulkan funkciók elfogását, végrehajtását és módosítását. Az lsfg-vk használatához elegendő telepíteni a liblsfg-vk.so könyvtárat és beállítani annak paramétereit környezeti változók segítségével.
Az eredeti LSFG egy, a D3D11 API-ra épülő Windows platformú összegyűjtött alkalmazás. Az LSFG funkcióinak Linuxra való reprodukálásához a megvalósítást Vulkan API-t használó nézetre fordították. Az árnyékolók átvitszámasához egy feldolgozó került hozzáadásra, amely elfogja a D3D11 hívásokat, és elmenti az árnyékolókat a lemezre, valamint egy elemző, amely dinamikusan kivonja az árnyékolókat a PE (Portable Executable) formátumú végrehajtható fájlokból. A grafikus csővezeték átviteléhez, amely irányítja az árnyékolók végrehajtását, a D3D11 API-ra épülő komponensek kerültek kiemelésre, és a DXVK segítségével működtek Linux alatt. Miután a D3D11 és DXVK alapú működő verziót megszereztük, a RenderDoc hibakereső segítségével pontos Vulkan híváslistát kaptunk, amely alapján elkészült a végleges változat, amely közvetlenül a Vulkan API-t használja.
Forrás: opennet.ru
