10년전만해도 이게 뭔 뚱딴지같은 소리냐 했을텐데 2025년 지금은 AMD만큼 리눅스 지원이 잘 되는 제품이 없습니다.

과거엔 인텔이 최고였고 ClearLinux라는 인텔에서 직접 만든 배포판도 있을 정도였지만 지금 인텔의 상태가 말이아니기에 리눅스관련 직원들이 해고되었다는군요. 실제로 몇몇기능은 커널에 구현되다 말았고요.
(이러다 제온이 리눅스 서버시장에서 조차 밀리는거 아닌가 싶습니다)

AMD는 이와 반대로 리눅스 지원이 좋아지다못해 최고의 성능을 발휘하는 OS와 CPU가 되었습니다. 특히 쓰레드리퍼나 에픽을 쓸때 윈도우에 비해 리눅스의 성능이 정말 굉장하지요.

거기다 스팀덱출시 이후 라데온에서 리눅스의 Vulkan성능이 대폭 좋아져서 윈도의 라데온과 비교해 성능을 더 뽑아내고 있습니다. 심지어 Nvidia의 DLSS와 다르게 AMD는 비슷한 기능인 FSR도 네이티브로 돌리지요.

10년전만 하더라도 리눅스 데스크탑은 인텔CPU에 인텔그래픽이 진리였습니다. 성능문제는 둘째치고 안정성면에서 문제가 심했거든요. 만약 3D를 원한다면 Nvidia카드를 박아서 Nvidia의 독점드라이버를 설치해야했고요. 물론 그래도 안정성은 충분했습니다. 커널버전에 따른 호환성은 있었을지언정 드라이버만 설치되면 쓰는데는 지장이 없었으니까요.

그런데 AI의 대두이후 Nvidia의 드라이버는 CUDA를 위시한 컴퓨트성능위주로 흘러가게 되었고 Vulkan과 OpenGL성능이 나락으로 가기 시작했습니다. 언제부터인가 Vulkan의 지원되는 수준이 떨어지고 강점이었던 OpenGL의 안정성조차 떨어지더군요.

인텔은... 그때나 지금이나 바탕화면 표시기...였지요.

그런데 스팀덱에 AMD칩셋이 쓰이고 AMD가 Vulkan에 투자하면서 이야기가 달라지기 시작했습니다.
Doom Eternal만 해도 Vulkan버전으로 돌리면 AMD그래픽카드에서 성능이 배로 좋아진다고 하지요. DirectX나 OpenGL성능이 경쟁사에 비해 떨어지니 최신API인 Vulkan에 투자한듯합니다.
그런데 그게 스팀덱에서 꽃을 피운듯합니다.

그리고 AMD의 드라이버는 (완벽한건 아니지만)오픈소스입니다. amdgpu라는 이름으로 공개되어있습니다. 커널에 직접 반영도 되고 덕분에 Wayland지원도 빨랐습니다. 그러다보니 사용자가 늘어날 수록 안정성이 좋아지는 경향이 있는데(버그리포트가 그만큼 많아지므로 생각지못한 패닉이 줄어듭니다) 스팀덱으로 인해 AMD그래픽사용자가 늘어나자 안정성이 급격히 좋아지기 시작했습니다.

최근 제 Debian시스템을 기준으로 Nvidia 1660에서 돌아가지 않던 게임이 RX570에서 돌아가는것을 확인했습니다. 원인은 Vulkan드라이버였습니다. FSR이 켜지면서 프레임이 좋아진건 덤입니다.

10년전엔 그렇게 라데온 욕을 퍼부었는데 지금은 칭찬하는 제 모습을 보니 그것도 참...

,

lsfg란 기술이 있습니다.

스팀에서 일명 "오리"라고 불리는 프로그램의 프레임생성 기능을 의미 합니다.

 

정식 명칭은 Lossless Scale Frame Generation 입니다만 다들 그냥 오리라고 부릅니다.

이는 원래 윈도우에서 쓰이는 FSR이나 DLSS를 편하게 쓰기위한 기술이었습니다만 LSFG라는 기술을 개발해 기존 그래픽카드의 종류와 상관없이 어디서든 사용이 가능한 프레임 생성 기술이 만들어졌습니다.

 

다만 이건 어디까지나 윈도우 전용이었고 리눅스에선 Proton에서 돌리는 뭔가 이상한 방식이었습니다.

 

그러다 https://github.com/PancakeTAS/lsfg-vk

 

GitHub - PancakeTAS/lsfg-vk: Lossless Scaling Frame Generation on Linux

Lossless Scaling Frame Generation on Linux. Contribute to PancakeTAS/lsfg-vk development by creating an account on GitHub.

github.com

lsfg-vk라 하여 Vulkan을 네이티브로 돌리는 LSFG 포팅이 이루어집니다. 주로 스팀덱 같은 UMPC에서 이루어진다고 하며 우월한 성능의 SteamOS에 힘입어 유용하게 돌아가고 있습니다.

 

이걸 일반 리눅스PC 에서도 이용이 가능합니다.

 

https://github.com/PancakeTAS/lsfg-vk/wiki/Installation-Guide

 

Installation Guide

Lossless Scaling Frame Generation on Linux. Contribute to PancakeTAS/lsfg-vk development by creating an account on GitHub.

github.com

여기에 설치 가이드가 있습니다. 미리 빌드가 된 deb을 이용할 수도 있지만 저는 그냥 빌드를 했습니다. 아무래도 아직 활발히 개발중인 물건이다보니 그냥 빌드하는게 더 낫겠다는 생각이 들더군요. 무슨 AUR쓰는 기분이지만 그냥 제 기분이 그렇습니다.

 

sudo apt update
sudo apt install git build-essential clang clang-tools llvm rustup cmake ninja-build libvulkan-dev libgtk-4-dev libadwaita-1-dev
git clone --recurse-submodules --depth 1 https://github.com/PancakeTAS/lsfg-vk.git
cd lsfg-vk
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On
cmake --build build
sudo cmake --install build

 

이렇게 하면 /usr/local에 설치가 됩니다.

 

이제 GUI를 설치합니다.

cd ui
rustup default stable
cargo build --release
sudo cp target/release/lsfg-vk-ui /usr/local/bin/lsfg-vk-ui

 

/usr/local/share/vulkan/implicit_layer.d/

sudo nano /usr/local/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json

그리고

"library_path": "liblsfg-vk.so",

이 부분을

    "library_path": "/usr/local/lib/liblsfg-vk.so",

이렇게 고칩니다.

 

 

그리고 Ctrl+O를 눌러서 저장하고 나갑니다.

 

이제 

lsfg-vk-ui

명령을 통해서 UI를 불러와 봅시다.

 

 

이렇게 하면 설치가 완료 된 것입니다.

Steam에서 Lossless Scaling을 구매후 설치까지 하시면 이제 세팅이 완료 됩니다.

 

 

이제 제일 핵심인 Lossless Scaling을 설치합니다.

 

vkcube를 통해 프레임이 얼마나 늘어났는지 확인해봅시다.

(사실 vkcube만으로는 딱히 얼마나 늘어났는지는 감이 안 옵니다. 직접 게임을 하나 실행하는게 제일 편합니다.)

 

vkcube를 실행해서 돌아가는 속도를 확인 한 다음

 

DISABLE_LSFG=1 vkcube

를 했을 때 4배정도 더 빠르면 적용이 완료 된겁니다.

 

만약 차이가 없다면 적용이 안 된겁니다.

Path to Lossless.dll을 고쳐주시면 됩니다. 스팀 기본 설치시

~/.steam/steam/steamapps/common/Lossless Scaling/Lossless.dll

여기입니다. 실제로는 조금 다를 수 있으니 직접 스팀에서 확인 후에 지정하시면 됩니다.

 

 

lsfg-vk-ui를 실행해서 창을 띄워놓고 게임을 같이 실행합니다.

 

여기서 Create New Profile을 클릭하면

새로운 프로파일이 생성 됩니다. 오른쪽 profile name의 돋보기를 클릭하면

 

현재 실행되고 있는 프로그램 리스트가 쫙 뜹니다. 여기서 게임의 프로세스를 클릭합니다.

 

여기서 원하는 만큼 설정해주시면 됩니다.

 

이런식으로 게임별로 LSFG를 설정해서 사용하시면 됩니다.

 

 

 

삭제 방법은 

sudo rm  /usr/local/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json
sudo rm /usr/local/bin/lsfg-vk-ui
sudo rm /usr/local/lib/liblsfg-vk.so

그리고 재부팅입니다.

 

 

,