Skip to main content

모바일에서 더욱 빠르고 효율적으로 – Vulkan으로 Roblox 최적화하기

8월

05, 2020

by coberst


테크

Roblox는 수백만 대의 안드로이드 기기에서 실행됩니다. 따라서 가능한 한 우수한 성능을 구현해 내야 합니다. 이때 특히 까다로운 것은 렌더링 성능입니다. 다양한 하드웨어 아키텍처, 출력 혹은 성능 곡선별로 다양한 유형의 기기는 물론 다양한 버전의 드라이버를 대상으로 하기 때문입니다.

Roblox는 2018년 Vulkan 렌더러를 출시했습니다. 그 이후로 OpenGL 렌더러에 비해 그 시장 점유율이 꾸준히 증가해 왔으며, 오늘날에는 안드로이드 사용자 기반의 약 40%가 Vulkan을 사용하고 있습니다.

초기 출시 이후, Vulkan 백엔드의 인기가 높아짐에 따라 우리는 성능 분석 및 개선에 많은 시간을 투자했습니다. 이를 위해 당시에 구현 가능한 최소한의 성능 중심 최적화 또는 코드를 활용한 다양한 조사와 실험을 동원해야 했습니다. 따라서 각 문제별로 서로 다른 접근 방식을 시도하고 가장 적합한 방법을 찾아야 했습니다.

2019년 Reboot Develop Red에서 Roblox는 ARM과의 토론의 장을 마련해 성능 최적화 문제에 대해 논의하며 다음의 두 가지 내용을 다루었습니다.

  • ARM이 개발하고 Khronos에 기부한 성능 중심의 샘플 Vulkan 코드 모음이 증가하고 있습니다. https://www.khronos.org/blog/vulkan-releases-unified-samples-repository에서 자세히 읽어 보세요. ARM의 Joe Rozek가 샘플의 일반적인 구조와 사용된 프레임 워크에 대해 설명해 줍니다.
  • 개발자들이 Vulkan 코드를 최적화할 수 있도록 하고 이들에게 Roblox에서 발생하는 오류 및 솔루션에 대한 통찰력을 제공하기 위해, 렌더러를 최적화하는 과정에서 겪은 몇 가지 구체적인 문제점, 검증해야 할 절충점 및 구현한 솔루션에 대한 의견을 제공했습니다.

이 세션의 동영상은 YouTube(https://www.youtube.com/watch?v=hPW5ckkqiqA)에 게시되어 있으며, 슬라이드는 여기(https://zeux.io/data/reboot2019.pdf)에서 다운로드할 수 있습니다.


Roblox Corporation이나 이 블로그는 특정 회사나 서비스를 홍보하지 않습니다. 또한 블로그에 포함된 정보의 정확성, 신뢰성, 완전성에 대하여 어떠한 보장이나 약속도 하지 않습니다.

이 블로그 게시물은 Roblox 테크 블로그에 수록된 글입니다.