본문으로 건너뛰기
J
0
r/jeffnews HN 약 7분

Wine 11, 드디어 커널 수준에서 Windows 동기화 재설계 — FPS 678% 상승 레전드

devops 0

요약

Wine 11이 출시됐는데 이거 그냥 버전업이 아님. **NTSYNC**라는 커널 레벨 동기화 드라이버가 탑재되면서 일부 게임 FPS가 최대 678% 폭등했고, **WoW64** 아키텍처도 완성돼서 32비트 앱 실행에 더 이상 삽질 안 해도 됨. Proton이랑 Steam Deck도 혜택 받는 구조라 Linux 게이밍 역사상 손꼽히는 업데이트임.

기사 전체 정리

  • NTSYNC 드라이버 탑재 — 커널 수준에서 Windows NT 동기화 구현, esync/fsync 시대 종료
  • Dirt 3 기준 110.6 → 860.7 FPS, 678% 성능 향상 (vanilla Wine 대비)
  • WoW64 아키텍처 완성 — 32비트 앱 실행에 더 이상 멀티립 라이브러리 불필요
  • Linux 커널 6.14 이상이면 별도 패치 없이 NTSYNC 바로 사용 가능
  • Wayland 드라이버 성숙, 클립보드/드래그앤드롭 지원, Vulkan 1.4 업그레이드

🎮 NTSYNC — 드디어 제대로 된 동기화

기존 방식이 왜 구렸냐면

Windows 게임들은 멀티스레드(multi-thread) 기반으로 돌아감. 렌더링, 물리 연산, 오디오 처리 등이 동시다발적으로 실행되고, 이 스레드들끼리 조율하려면 NT 동기화 프리미티브(NT synchronization primitives) — 뮤텍스(mutex), 세마포어(semaphore), 이벤트(event) 등 — 가 필요함.

근데 Linux에는 이걸 그대로 대응하는 게 없어서, Wine은 지금까지 이걸 흉내내왔음:

  • esync: eventfd 시스템콜로 wineserver 우회. 작동하긴 했는데 파일 디스크립터(file descriptor) 한계에 부딪히는 문제 있었음
  • fsync: Linux futex로 더 빠르게. 근데 메인라인 커널에 안 들어가는 외부 패치가 필요해서 일반 유저한테 접근성이 떨어졌음
  • 두 방식 모두 workaround였고, NtPulseEvent() 같은 엣지 케이스는 제대로 처리 못함

NTSYNC가 다른 이유

NTSYNC는 때우는 방식이 아님. /dev/ntsync 커널 드라이버를 새로 추가해서 Windows NT 동기화 객체 API를 커널 레벨에서 직접 구현함. wineserver 왕복 없음, 근사치 없음, 커널이 직접 큐 관리·이벤트 시맨틱·원자적 연산(atomic operation)을 처리함.

개발자는 esync/fsync 만든 Elizabeth Figura(CodeWeavers). 수년간 커널 패치 이터레이션 거쳐서 2023 Linux Plumbers Conference에서 발표 후, 드디어 Linux 커널 6.14에 메인라인 머지됨.

실제 벤치마크 ㄷㄷ

게임 기존 (vanilla Wine) NTSYNC 적용 후
Dirt 3 110.6 FPS 860.7 FPS (+678%)
Resident Evil 2 26 FPS 77 FPS
Call of Juarez 99.8 FPS 224.1 FPS
Tiny Tina's Wonderlands 130 FPS 360 FPS

⚠️ 비교 기준이 esync/fsync 없는 vanilla Wine이라 fsync 쓰던 유저는 체감이 이만큼 크진 않을 수 있음

Fedora 42, Ubuntu 25.04 이상이면 커널 6.14 포함이라 바로 사용 가능. SteamOS 3.7.20 베타에도 이미 탑재됐고, Valve 공식 Proton이 Wine 11 기반으로 리베이스되면 Steam Deck 유저 전체가 자동으로 혜택 받음.


🔧 WoW64 아키텍처 완성 — 32비트 앱 삽질 끝

**WoW64(Windows 32-bit on Windows 64-bit)**는 64비트 시스템에서 32비트 앱 실행해주는 서브시스템임. Wine 11에서 이 구현이 드디어 완성됨.

  • 64비트 Linux에서 32비트 Windows 앱 돌리는 데 더 이상 멀티립(multilib) 라이브러리 설치 불필요
  • Wine이 내부적으로 번역 처리 — 단일 바이너리로 32/64비트 자동 감지
  • OpenGL 메모리 매핑, SCSI 패스스루, 심지어 16비트 앱까지 지원
  • 구형 게임(특히 32비트 타이틀) 호환성 대폭 향상

🖥️ 그 외 주요 업데이트

Wayland 드라이버

  • 클립보드 양방향 지원, 드래그앤드롭 지원
  • 디스플레이 모드 변경 시 컴포지터 스케일링으로 에뮬레이션 → 640x480 강제 전환 게임도 정상 작동
  • X11에서 Wayland로 넘어가기 망설이던 이유들이 상당수 해소됨

그래픽/멀티미디어

  • OpenGL X11 백엔드가 GLX → EGL로 교체
  • Vulkan 1.4 지원
  • Direct3D 11 Video API 통해 H.264 하드웨어 가속 디코딩 초기 지원 (컷씬·인게임 영상에 유효)

기타

  • 레이싱 휠·플라이트 스틱 포스 피드백(force feedback) 개선
  • Bluetooth BLE 서비스 및 페어링 지원 추가
  • ARM64 기기에서 4K 페이지 크기 시뮬레이션 지원
  • Nioh 2, StarCraft 2, The Witcher 2, CoD: Black Ops II, Final Fantasy XI, Battle.net 등 개별 호환성 픽스

핵심 포인트

  • NTSYNC — 커널 레벨 NT 동기화 구현으로 일부 게임 최대 678% FPS 향상, 커널 6.14부터 메인라인 포함
  • WoW64 완성 — 32비트 앱 실행에 멀티립 라이브러리 불필요, 16비트 앱까지 지원
  • Steam Deck·Proton 사용자 전체가 Wine 11 리베이스 시 자동 혜택 수령

인사이트

esync → fsync → NTSYNC로 이어지는 흐름이 결국 '커널에 직접 집어넣기'로 끝난 거 보면, 처음부터 방향은 정해져 있었던 거임 ㅋㅋ. 근데 메인라인 커널에 들어갔다는 게 핵심 — 이제는 특정 distro나 커스텀 패치 안 써도 되니까 진짜 대중화 단계에 접어든 거라 볼 수 있음.

댓글

댓글

댓글을 불러오는 중...