Linux에서 입력 지연 측정: X11 vs Wayland, VRR, 그리고 DXVK Low‑Latency
Linux에서 입력 지연 측정: X11 vs Wayland, VRR, 그리고 DXVK Low‑Latency
TL;DR – 숫자가 의미하는 바
- X11 vs. Wayland: X11이 약간 더 빠릅니다 (0.14–0.22 ms). 이는 Wayland가 느리게 느껴진다는 일반적인 인식을 설명하기엔 부족합니다.
- Variable Refresh Rate (VRR): VRR을 활성화하면 지연 시간이 일관되게 0.26–0.45 ms 감소하고 지연 분포가 좁아집니다.
- DXVK low‑latency 포크: 제한된 상황에서는 0.10–0.29 ms 감소; 제한이 없고 GPU에 바인딩된 경우에는 0.84 ms 감소하고 프레임‑타임 스파이크를 완화합니다.
- XWayland: 무려 3.13 ms의 큰 패널티를 추가해 다른 모든 효과를 압도합니다.
- 전체적인 이득: 모든 최적화(X11 + VRR + DXVK low‑latency)를 적용하면 기본 순수 Wayland 설정에 비해 중앙값 종단‑대‑종단 지연이 약 0.72 ms 감소합니다.
측정 방법
저자는 Adafruit QT Py RP2040을 이용해 click‑to‑photon 장치를 구축했습니다:
- 1000 Hz 폴링 레이트로 USB HID 마우스 클릭을 전송합니다.
- 바로 모니터에 장착된 포토다이오드를 샘플링하기 시작합니다 (샘플당 ≈24 µs, 클릭당 12 k 샘플).
- 샘플을 호스트로 스트리밍하고, 스크립트가 클릭당 기준선에서 첫 밝기 변화를 찾습니다.
- 샘플링 윈도우 길이가 고정돼 있기 때문에, 스크립트는 클릭 발생 시점과 화면 밝기 변화 시점 사이의 정확한 시간을 계산합니다 – 종단‑대‑종단 시스템 지연 (마우스 → CPU → GPU → 컴포지터 → 스캔‑아웃 → 디스플레이).
이 방법은 USB와 디스플레이 지연을 포함한 전체 파이프라인을 포착합니다. GPU‑전용 타이머가 USB와 디스플레이 지연을 제외하는 것과는 다릅니다.
테스트 매트릭스
| 변수 | 옵션 |
|---|---|
| 디스플레이 서버 | X11 (네이티브), Wayland (네이티브), XWayland |
| VRR | Off, On |
| DXVK low‑latency | Off, On |
| 캡 모드 | 새로 고침률(500 Hz)로 FPS 제한 또는 제한 없음(GPU‑바인드) |
모든 테스트는 동일한 하드웨어와 소프트웨어 스택을 사용했습니다:
- CPU: AMD Ryzen 7 5800X3D
- GPU: NVIDIA RTX 4070 SUPER, driver 610.43.03
- 디스플레이: MSI MAG 272QP QD‑OLED, 2560×1440 @ 500 Hz
- OS: CachyOS kernel 7.1.3‑2, KDE Plasma 6.7.2, Xorg 21.1.24
- 게임: Diabotical (DirectX 11) via Heroic + Proton‑cachyos 11.0, DXVK 3.0
- 설정: 네이티브 해상도, 100 % 렌더 스케일, V‑sync off, 기타 그래픽은 모두 low.
각 시나리오는 정적인 인‑게임 장면에서 300번 클릭(≈2 분) 수행해 프레임 레이트를 안정적으로 유지하고 CPU에 바인딩되도록 했습니다.
핵심 결과 (중앙값 지연, ms)
| 구성 | X11 | Wayland | XWayland |
|---|---|---|---|
| Low‑latency + VRR | 4.21 | 4.38 (+0.17) | – |
| Low‑latency | 4.64 | 4.83 (+0.19) | 5.95 (+1.12) |
| VRR only | 4.45 | 4.67 (+0.22) | – |
| Plain | 4.79 | 4.93 (+0.14) | 8.06 (+3.13) |
제한 없음(GPU‑바인드) 비교
- Low‑latency off: 5.27 ms, 715 FPS
- Low‑latency on: 4.43 ms, 670 FPS (‑0.84 ms 지연, ‑45 FPS)
관찰 내용
- X11이 Wayland보다 약 0.2 ms 빠름 – “Wayland가 느리다”는 일화보다 훨씬 작습니다.
- VRR은 일관되게 지연을 개선 (0.26–0.45 ms)하고 분포를 좁힙니다(p95‑p5 범위가 ~3 ms에서 ~2 ms로 감소).
- DXVK low‑latency는 제한된 모드에서 약간의 이득(≈0.2 ms) 제공하지만 제한이 없을 때는 0.84 ms를 절감하고 GPU 포화도를 방지합니다.
- XWayland가 가장 큰 지연 원인 – 3 ms 이상을 추가해 다른 모든 요인의 합보다 큽니다.
XWayland가 이렇게 비용이 많이 드는 이유
저자는 XWayland가 게임을 추가적인 X 서버 레이어를 거쳐 Wayland 컴포지터에 전달하게 하여 복사‑및‑합성 단계가 추가된다고 지적했습니다. 네이티브 Wayland에서는 컴포지터가 direct scan‑out(플립 모드)를 사용할 수 있어 전체 화면 창에 대해 합성을 완전히 건너뛸 수 있습니다. 이러한 구조적 오버헤드가 3 ms 패널티를 초래하며, 이는 X11‑Wayland 간의 작은 차이를 압도합니다.
커뮤니티 검증
- David Ramiro의 m2p‑latency 연구는 네이티브 Wayland가 네이티브 X11과 비슷한 지연(~7 ms)을 보이고 XWayland는 거의 두 배의 지연을 보인다고 밝혀 현재 결과와 일치합니다.
- farnoy의 Open‑Source‑LDAT 작업도 XWayland를 피해야 한다는 결론을 내렸습니다.
- Themaister의 VK_EXT_present_timing 방법은 PC 지연만 측정(USB/디스플레이 제외)해 여기서 사용한 종단‑대‑종단 접근을 보완합니다.
Linux 게이머를 위한 실용적인 시사점
- 가능하면 XWayland를 피하세요 – 3 ms 이상의 지연을 추가합니다.
- 네이티브 Wayland를 선호하세요; X11과의 차이는 무시할 수준이며 향후 컴포지터 최적화(KWin 튜닝 등)로 더 줄어들 가능성이 높습니다.
- 고주사율 디스플레이에서 VRR을 활성화하세요; 가장 큰 지연 감소와 프레임 타이밍 안정화를 제공합니다.
- DXVK low‑latency를 사용하세요, 특히 제한이 없고 GPU에 바인딩된 상황에서 프레임 페이싱을 부드럽게 하고 약 0.8 ms를 절감합니다.
- X11과 Wayland 모두에서 플립 모드(직접 스캔‑아웃)를 유지해 컴포지터가 블릿/합성 경로로 되돌아가지 않도록 합니다.
제한 사항 및 범위
- 결과는 단일 하드웨어 구성(500 Hz OLED, RTX 4070 SUPER, Linux kernel 7.1.3)에서 나온 것입니다. 절대값은 다른 환경에서 달라질 수 있지만 상대적인 이득은 비슷할 것입니다.
- 테스트는 정적인 장면으로 CPU에 바인딩된 상태에서 수행되었습니다; 동적인 로드가 있는 실제 게임에서는 VRR과 DXVK low‑latency의 효과가 더 크게 나타날 수 있습니다.
- 단 하나의 게임(DirectX 11 Diabotical)만 사용했으며, Vulkan이나 OpenGL 게임은 다른 동작을 보일 수 있습니다.
마무리 발언
이상적인 CPU‑바인드 상황에서 최적화 조합(X11 + VRR + DXVK low‑latency)은 기본 순수 Wayland 설정에 비해 중앙값 종단‑대‑종단 입력 지연을 ~0.72 ms 줄입니다. 절대적인 개선 폭은 작아 보이지만, 지터 감소(VRR 덕분)와 프레임‑타임 스파이크 완화(DXVK low‑latency 덕분)는 빠른 템포의 경쟁 게임에서 체감될 수 있습니다. 가장 큰 승리는 XWayland를 피하는 것이며, 이는 다른 모든 요인을 합친 것보다 큰 지연 패널티를 초래합니다.
“Linux의 매력 중 하나는 이런 분석이 가능할 뿐만 아니라 의미가 있다는 점입니다. 이 결과는 그래픽 소프트웨어 개발자와 배포판 패키지 담당자에게 전달돼 생태계가 개선될 것입니다.” – NelsonMinar, HN comment
“‘Wayland 입력 지연’이라는 것은 존재하지 않습니다. 이 글은 Xorg와 KWin(그리고 XWayland)을 비교한 것이며, 다른 구현은 다른 특성을 가질 수 있습니다.” – seba_dos1, HN comment
“요즘 나를 미치게 하는 입력 지연은 화면 언블랭크 지연입니다… DPMS 절전 중에도 입력이 활성화된 옛 X 서버 동작이 그리워요.” – saltcured, HN comment
이러한 커뮤니티 의견은 정확한 하드웨어 기반 지연 측정이 향후 Linux 그래픽 스택 개발을 안내하는 데 얼마나 중요한지를 강조합니다.