애플이 자체 ARM 기반 프로세서를 개발하기 시작한 이후, 리눅스 커뮤니티 내에서 이러한 장치에서 자유 운영 체제를 기능하게 만들기 위한 상당한 노력이 이루어졌습니다. 이 이니셔티브를 이끄는 것은 아사히 리눅스(Asahi Linux) 배포판으로, 이제 Vulkan을 사용하여 애플 실리콘의 M1 칩에서 첫 게임을 실행할 수 있게 되었습니다.
리눅스 애플 장치에서 일반적인 윈도우 게임을 실행하려면 여러 가지 장애물을 극복해야 합니다. 첫째, x86 아키텍처를 위해 개발된 윈도우 타이틀은 FEX-Emu를 사용하여 ARM으로 변환해야 합니다. 그런 다음 윈도우에서 리눅스로의 변환을 위해 와인(Wine)이 사용됩니다. 또한, 리눅스에서는 직접적으로 DirectX 그래픽 인터페이스를 사용할 수 없기 때문에 dxvk와 vkd3d-proton과 같은 도구가 사용됩니다. 또 다른 도전 과제는 페이지 크기 차이입니다. x86은 4096 바이트를 사용하는 반면, 애플 시스템은 16k 메모리 블록을 사용합니다. 이를 해결하기 위해 아사히 리눅스는 수정된 리눅스 커널을 운영하는 작은 가상 머신을 운영하여 GPU와 입력을 라우팅합니다. 이 과정에는 16GB의 RAM 모델이 필수적입니다.
주요 도전 과제 중 하나는 애플 하드웨어에서 Vulkan 지원이 필요하다는 점이었습니다. 애플은 Vulkan 드라이버를 제공하지 않고 Metal에 의존하고 있습니다. 새로운 Vulkan 드라이버는 올해 초 한 달 만에 처음부터 개발되었습니다. 애플의 하드웨어는 아키텍처적 특이성으로 인해 추가적인 어려움을 초래했습니다.
tessellation의 경우, 그래픽 카드들은 일반적으로 특수 하드웨어 유닛에 의존하지만, 애플의 GPU는 DirectX, Vulkan 또는 OpenGL과 같은 구현에 제한이 있어 대신 compute shaders를 사용해야 합니다. geometry shaders 또한 M1 칩에서 제한이 있어, 느리지만 여전히 개발자들이 빠르다고 여기는 compute shaders를 사용해야 합니다.
앞으로의 개발 목표는 Sparse Textures 또는 Mega-Textures를 지원하는 것입니다. 이 기능이 없는 게임, 예를 들어 사이버펑크 2077(Cyberpunk 2077)은 이미 플레이할 수 있습니다. 성능 개선도 목표로 하고 있으며, 많은 AAA 타이틀이 60 FPS에 도달하는 데 어려움을 겪고 있습니다. 그러나 인디 게임인 할로우 나이트(Hollow Knight)는 타협 없이 플레이할 수 있습니다. 현재 포탈 2(Portal 2)와 컨트롤(Control)과 같은 타이틀은 이미 기능하고 있으며, 기초 작업이 완료됨에 따라 더 많은 게임이 뒤따를 것으로 예상됩니다.
* 이 글은
computerbase.de의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.