2016년 8월 26일 금요일

소군단, 그들이 온다 : 월드 오브 워크래프트, Metal API 적용


* 월드 오브 워크래프트 : 군단 월페이퍼, '살아단님이 일리계신다!'

블리자드의 영원한 밥줄, 월드 오브 워크래프트의 새로운 확장팩인 '군단' 출시일이 다가오고 있다.

군단 출시일과는 별개로 이미 클라이언트는 군단 컨텐츠를 포함하고 있는 버전으로 업데이트가 되었는데, 와우저들은 이를 '소군단'이라 부른다. 군단 출시 당일에 클라이언트 다운로드가 몰려 사용자들이 새로운 컨텐츠를 제대로 즐길 수 없는 사태를 막기 위한 블리자드의 배려인 셈이다. 물론 '군단'에서 추가될 여러 컨텐츠들은 출시 당일에서야 열리겠지만, 클라이언트에 적용되는 여러 기술들은 이미 사용자들이 사용할 수 있다.

아, 물론 여러분에게 월드 오브 워크래프트에 '소군단'이 적용되었다는 소식을 때늦게 전하기 위해 이 글을 쓰는 것은 아니다. 월드 오브 워크래프트를 즐기는 독자들에겐 이미 뉴스로써의 가치가 없을 것이고, 월드 오브 워크래프트에 관심이 없는 독자들에게는 다른 의미로 가치가 없는 글일 테니까.

이 글에서는 애플의 새로운 그래픽 API, 메탈의 기본적인 사항들과 원리를 독자분들께 소개하고, 실제로 이를 적용한 월드 오브 워크래프트에서 벤치마크를 통해 애플이 공언한 만큼의 성능향상을 보이고 있는지를 확인해볼 것이다.

애플의 새로운 그래픽 API, 메탈에 대하여

본격적으로 시작하기에 앞서 애플의 새로운 그래픽 API인 메탈에 대해서 알아보자.

메탈은 기본적으로 AMD의 맨틀, 마이크로소프트의 DX 12, 크로노스 그룹의 Vulkan과 마찬가지로 기존의 하이 레벨 API에서 발생하는 여러 오버헤드를 줄여 실제 그래픽 성능을 높이기 위해 설계되었다. 사실 메탈은 macOS에 도입되기에 앞서 iOS 8에 도입되었으며, 1년 후에 macOS 엘 케피탄에 정식으로 도입되었다.

거기에 macOS 엘 케피탄, iOS 9에 정식으로 탑재된 Metal은 단순히 게임 등 3d 어플리케이션이나 고성능을 요하는 앱 뿐만 아니라 macOS에서 화면을 그리는 데 관여하는 주요 소프트웨어 레이어인 Core Animation, Core Graphics들이 Metal 기반으로 재작성되었고, 이를 통해 이 소프트웨어 레이어를 이용해 화면을 그려내는 앱들은 Metal의 수혜를 받을 수 있게 되었다. 애플은 이를 통해 웹페이지 렌더링이나 PDF 렌더링 등 운영체제에서 자주 사용하는 여러 기능들이 빨라졌다고 한다. ※ 링크

거기에 메탈은 단순히 3d 그래픽 렌더링에만 관여하는 것이 아니다.

메탈 API가 그래픽 유닛에 접근하는 API라는 점에 착안하여 애플은 메탈 API에 그래픽 유닛을 이용해 범용 연산을 하는 GPGPU 기능 역시 포함했다. 메탈은 단순히 OpenGL을 대체하는 것이 아니라 OpenGL과 OpenCL을 한꺼번에 대체할 수 있는 API라는 것이 애플의 주장이다. 애플의 파이널 컷 프로 등의 프로 앱은 물론이고, 어도비 등의 프로 앱 제작사들 역시 이에 동참했다고 하니 우습게 볼 일만은 아니다. 어쨌든 영상 편집 등 특정 작업에서 애플 기기들의 성능 대비 퍼포먼스가 높은 것이 우연한 일은 아닐 것이다.


* ColdTuna의 로즈골드 맥북 리뷰. 4분 9초부터 PC와 4K 영상 렌더링 비교 내용이 나온다. 파이널 컷 프로의 위엄인지, macOS의 위엄인지...

다시 돌아와서, 그렇다면 맥용 메탈 API는 게이밍 성능의 향상보다는 저런 전문가용 소프트웨어를 뒷받침하려는 것일까? 

한 가지 확실한 건 맥에서의 게이밍 경험은 같은 성능을 가진 PC의 그것보다 떨어진다는 점이다. iOS의 성공으로 인해, iOS에서 잘 나가는 라이트 게임들이 맥용 게임 라이브러리에 추가되긴 했지만, 모바일 기기에서 즐기는 게임과 PC에서 즐기는 게임은 조작법부터 깊이까지 확연히 다를 수 밖에 없다. 그렇게 따져보면 OpenGL로 포팅된 제대로 된 PC 게임 자체가 윈도우에 비해 부족할 뿐 아니라 기껏 포팅된 게임 역시 부트캠프에서 구동하는 것보다 성능이 떨어진다.

물론 최근 맥 유저가 늘어나면서 해외 게임사들을 중심으로 맥을 지원하는 게임의 갯수와 질이 모두 향상되고는 있지만, 여전히 맥 유저들은 부족한 게이밍 경험에 목마른 게 사실이다. 애플 역시 이런 상황을 인지하고 있긴 한 듯하다. 2015 WWDC에서 macOS용 메탈을 소개할 때 메탈 기반의 게임이 한 꼭지를 차지하고 있었을 뿐 아니라 에픽 게임즈의 실무진들이 직접 메탈에서 구동되는 'Fortnite' 라는 게임으로 메탈로 만들어진 게임이란 컨셉의 데모를 했었다.

이후 다시 무대에 오른 페더리기 부사장은 에픽 게임즈 외에도 여러 회사와 협력하여 게임이나 3d 렌더링 등의 경험을 향상시킬 것이라 공언했는데, 그 중에 블리자드 엔터테인먼트가 포함되어 있는 것을 볼 수 있다. 블리자드 엔터테인먼트는 최근 오버워치를 맥용으로 출시하지 않은 것을 제외하고는 출시하는 대부분의 게임을 맥용으로도 같이 공개해온 몇 안되는 대형 게임사 중 하나였기에 '메탈'에서 구동되는 블리자드 게임을 기대하는 맥 게이머들이 많았으리라.

메탈과 함께 찾아온 소군단 : 실제 게임 벤치마크와 함께

WWDC가 있고 몇 달이 지나지 않아 블리자드 게임들이 메탈을 지원할 것이라는 소식(링크)이 들려왔다. 

당시 '게임에이전트'라는 블로그는 메탈에서 구동되는 월드 오브 워크래프트를 연내(2015년) 선보일 것이며 레스토랑... 아니 히어로즈 오브 더 스톰과 스타크래프트 2 역시 메탈 대응 업데이트가 있을 것이라는 소식을 전했다. 그런데 여러분도 아시다시피 2015년이 다 가도록 메탈에서 구동되는 월드 오브 워크래프트 패치는 없었다.

흔한 설레발이었거니 하고 저 소식을 기억 저켠으로 밀어뒀던 어느 날, 소군단 패치가 있었다. 그리고 마침내 월드 오브 워크래프트가 macOS 환경에서 메탈로 구동되기 시작했다. 물론 구형 macOS를 사용하는 사용자 혹은 메탈을 지원하지 않는 하드웨어를 갖고있지 않은 사용자를 위해 OpenGL 역시 계속 선택할 수 있는 옵션으로 제공하고 있다. 빙고. 이 둘을 비교해 볼 수 있겠구나.

이런 식으로 여러 옵션의 벤치마크를 진행... 영상 촬영이 아니라 사진 촬영을 누르는 바람에 처음부터 테스트 한 게 여러번.

애석하게도 맥에서 게임 프레임을 측정하는 툴은 필자가 테스트 하는 시점에서 메탈 API를 지원하지 않았다. 따라서 프레임을 측정하기 위해 월드 오브 워크래프트 게임 내 콘솔 기능을 이용하여 화면에 프레임을 띄우는 옵션을 실행한 뒤 화면을 촬영하였다. 

이후 촬영된 영상을 1초 간격으로 돌리며 프레임을 기록하여 평균 프레임을 산출했다. 물론 일정 시간동안의 전체 프레임수를 세어 평균 프레임을 내는 방법이 가장 정확하겠지만, 이 방법으로 측정된 프레임 역시 두 API를 비교하기에 충분히 유의미한 수치를 나타내어 주었다.

테스트는 OS X 10.11.5와 부트캠프로 구동된 Windows 10에서 각각 진행되었으며, 테스트에 사용된 PC는 2014 late iMac Retina 5K Display CTO 모델이다. 상세 스펙을 살펴보면 CPU는 인텔의 i5-4690, 24GB DDR3(자가 업그레이드), 512GB SSD, 게임 벤치마크에서 가장 중요한 그래픽 칩은 라데온 R9 M295X를 탑재했다. 모바일 칩셋이라고 무시할 친구는 아니다. 당시로써는 유일하게 AMD의 통가 풀칩이 사용된 그래픽카드였으니. 똑같은 통가 풀칩을 탑재한 데스크탑 카운터파트는 R9 380X로 꽤나 높은 성능의 그래픽카드이다(링크). 물론 아이맥에 탑재된 친구는 코어 클럭이 R9 380X 보다 낮기에 실 성능은 더 낮다는 점은 감안하자.

서론이 너무 길었다. 과연 메탈은 OpenGL에 비해 큰 폭의 성능 향상을 보여주었을까? 메탈 기반의 게임은 DX 기반의 윈도우 게임과 비교해서 대등하거나 더 나은 퍼포먼스를 보여줄 수 있을까? 그 질문에 대한 해답은 바로 아래 그래프에 있다.

그래프의 내용을 설명하기 전에 그래프 자체에 대한 짤막한 설명을 덧붙이겠다. 

그래프에 5K라고 표시된 것은 당연히 해상도이다. 5K의 경우 5120*2880의 렌더링 해상도, 2K의 경우 2560*1440의 렌더링 해상도로 전자의 경우 후자보다 4배 많은 화소를 그려내야 한다. 그 뒤에 '5','10' 등으로 표기된 숫자는 월드 오브 워크래프트 클라이언트에서 제공하는 전체 그래픽 슬라이더의 수치이다. 참고로 '10'이 가장 높은 옵션, '5'는 중간 옵션이다.

벤치마크 결과에 따르면 메탈 API는 어떤 시나리오에서도 OpenGL에 비해 높은 성능을 보이고 있다. 수치로 나타내면 대략 21% 정도의 평균 성능 증가를 보여주고 있는데 이는 충분히 유의미한 수치이다. 하지만 너무 좋아하기는 이르다. 21% 정도의 평균성능 증가를 보인, 메탈의 수치가 DX 11에서 구동되는 성능보다 떨어지기 때문이다. OpenGL과 DX 11간의 41%나 되는 괴리를 17% 정도로 줄여냈다는 것이 의미가 없지는 않겠지만 완전히 새로운 그래픽 API에서 우리가 바랬던 기대성능에 못 미치는 것은 사실이다.

게다가 메탈과 유사하게 오버헤드를 줄인 그래픽 API를 표방하고 있는 DX 12가 월드 오브 워크래프트에 적용된다면 이 차이가 더 벌어질 것은 당연한 일이다.

'월드 오브 워크래프트'라는 타이틀에서 메탈 적용이 가지는 의의는 분명히 있다. 기존 맥 유저들이 사용하던 OpenGL에 비하면 분명한 성능 향상이 있었기 때문이다. 지금 macOS 상에서 월드 오브 워크래프트를 플레이하고 있는 유저들에게는 분명한 이득이다. 하지만 이 성능 향상폭이 윈도우와의 괴리를 '좁히는' 정도에 그쳤다는 것이 아쉽다. 필자는 아이맥을 사용하면서도 '게임은 부트캠프에서'라는 원칙을 가지고 있는데 이런 사용자들에게 이번 메탈 적용 패치는 크게 어필하기 어려울 것이다.

GFXBench와 macOS 시에라, 그리고 결론

벤치마크를 끝내고보니 조금 아쉽잖은가? 

분명히 월드 오브 워크래프트는 명확한 결과를 보여주었다. 하지만 이게 월드 오브 워크래프트가 애초에 DX 기반으로 제작되어 포팅되었기에 이런 결과가 나타난 것인지, 그렇지 않으면 macOS 자체에 3d 렌더링을 담당하는 드라이버 혹은 API 쪽에 확실히 문제가 있는 것인지를 단 한개의 사례로는 감조차 잡을 수 없다.

이런 궁금증을 해소하기 위해 필자는 원래 계획에 없던 한 가지 실험을 추가했다. OpenGL과 DX11 그리고 Metal을 모두 아우르는 벤치마크 툴이 있으니, 바로 GFXBench이다. GFXBench는 애초에 모바일 기기들이 자신의 주 무대인 그래픽 벤치마크 툴이다. 모바일 시장은 OpenGL ES가 주력으로, GFXBench는 DX를 기반으로 설계된 벤치마크 도구가 아니다. 즉, GFXBench의 결과에 따라 우리는 조금 다른 결론에 도달할 수 있을 것이다. 결과가 궁금한가? 아래 그래프를 살펴보자.

GFXBench의 경우에도 아까와 비슷한 서열관계가 성립되는 것을 확인할 수 있다. 메탈은 오히려 이전보다 훨씬 큰 폭으로 macOS의 OpenGL을 따돌리고 있다. 평균적으로 50%에 가까운 성능 향상폭을 보이고 있다. DX11의 경우 여전히 Metal 보다 높은 점수를 기록하고 있다. 성능 차이는 대략 13%로 월드 오브 워크래프트에서 본 것과 크게 다르지 않다. 흥미로운 것은 Windows 10 역시 OpenGL을 지원하는 운영체제이고, GFXBench 역시 Windows 환경에서 OpenGL을 이용한 벤치마크를 지원한다.

이를 통해 얻어본 결과는 흥미롭다. 맨하탄 오프스크린 테스트에서는 윈도우의 그것이 더 낮은 점수를 보였지만 티렉스 오프스크린 테스트에서는 반대의 결과를 보였다. 이를 어떻게 해석해야 할까? 맨하탄 온스크린 테스트에서 macOS의 OpenGL은 31.12의 평균 초당 프레임을 기록했고, Windows 환경의 OpenGL은 34.54의 평균 초당 프레임을 기록했다. 로우 레벨 테스트인 ALU2나 드라이버 오버헤드 테스트 역시 윈도우즈의 OpenGL의 승리. 즉, 맨하탄 오프스크린 테스트에서 '모종의 문제'가 발생해 이상하게 낮은 점수가 기록되었다고 보는 편이 옳다.

물론 이 정도의 표본만을 가지고 결론을 내린다는 건 너무 성급하지만, 두 가지 정도의 가설을 세워볼 수 있을 듯 하다. 첫 번째 가설은 메탈이 다이렉트 X와는 달리 나온지 얼마 되지 않은 그래픽 API인데다 게임 전용으로 설계된 것이 아니기 때문에 아직 게임에 사용되는 여러 요소들을 다이렉트 엑스에 비해 효율적으로 다루지 못할 수 있다. 이 경우 메탈이 업데이트되고 업데이트되는 메탈을 지원하는 게임 타이틀이 출시될 경우 다이렉트 X 기반의 게임과의 격차를 더 줄이거나 추월할 수 있을 것이다.

두 번째 가설은 macOS에 탑재된 그래픽 드라이버가 Windows의 그것보다 게이밍 성능이 떨어지는 경우다. macOS의 경우 그래픽 드라이버의 제작을 그래픽 카드 제조사와 애플이 공동으로 작업한다. 그렇기에 내장 그래픽에서 외장 그래픽으로 전환되는 등의 상황에서도 화면의 색감 등 품질이 전혀 변하지 않고 부드럽게 전환되는 등의 동작이 가능한 것이다. 대신 이렇게 작업된 드라이버는 제조사의 드라이버 업데이트 주기보다 훨씬 긴 업데이트 주기를 가질 뿐만 아니라 애플이 PC 게이머에 대해 설정해둔 낮은 우선순위가 반영되어 그래픽 카드 드라이버가 게임에서 쓸데없는 오버헤드를 발생시키고 있는 것이리라.

물론 두 가설 중 어떤것이 맞다고 하더라도 해결하는 데는 애플의 강력한 의지가 필요하다. 다행히 메탈의 경우 최근 애플이 의욕적인 업데이트 움직임을 보이고 있고, macOS 시에라에 새로운 버전의 그래픽 드라이버가 탑재된다는 소식 등 애플이 이 부분에 대해 완전히 손을 놓고 있지는 않은 것으로 보인다.

어쨌든 현 시점에서 게이머의 시각에서 맥은 여전히 매력적인 플랫폼이 아니다. 다만 애플이 앞으로는 맥 게이머에게도 조금 더 많은 신경을 써 주기를, 그래서 맥 유저들이 부트캠프 없이 게임을 즐기는 날이 오기를 간절히 바란다.

필자: Jin Hyeop Lee (홈페이지)

생명과학과 컴퓨터 공학을 복수전공하고 있는 대학생입니다.



참조
소군단, 그들이 온다 : 월드 오브 워크래프트, Metal API 적용

관련 글
블리자드, 올해 안에 메탈 엔진으로 돌아가는 '월드오브워크래프트' 업데이트 선보일 것...
• 블리자드, 디아블로2 5년 만에 업데이트... OS X 최신 버전에서 플레이 가능
OS X 10.11 엘 캐피탄에 도입된 '메탈' 그래픽 엔진과 시스템 요구사항... '2012 모델부터'

저작자 표시 비영리 변경 금지


from Back to the Mac http://ift.tt/2bDUf8u
via IFTTT