Mantle(API)

덤프버전 :

그래픽 라이브러리
파일:OpenGL 로고.svg
파일:Vulkan(API) 로고.svg
파일:DirectX 로고.svg
파일:Metal 3 로고.png
그 외 그래픽 라이브러리



Mantle
파일:external/upload.wikimedia.org/222px-AMD_Mantle_Logo.png
개발사
AMD, DICE
출시일
2013년 9월 25일
사용 언어
C

1. 개요
1.1. 맨틀 API를 지원하는 게임 엔진
1.2. 적용된 게임
1.3. 주요 적용 예정 게임




1. 개요[편집]


AMD가 개발한 API로, 이름의 유래는 맨틀이지만 별 연관성은 없다.[1] DirectX[2] OpenGL와는 달리, 하드웨어와 직접 통신하는 구조를 지향한다. 콘솔 게임기의 그래픽 구현에 일반적으로 사용되는 구조이다. 개발이 초기에 중단되어서 DX3D에 비해 적용 게임이 많지는 않으나, 프로스트바이트 엔진크라이엔진 등 유명한 게임 엔진들과 그 엔진을 기반으로 한 몇몇 대작이 맨틀을 지원했기 때문에 게임 성능 향상에 대해 많은 기대감을 모았었다.

과거 3dfx의 독점 API로 나온 글라이드를 연상하는 사람이 많으나, 실제로 RAGE 시리즈에서 사용되던 독점 API였던 ATI CIF와 달리 맨틀은 오픈 소스가 될 예정이었다는 차이가 있다. AMD 외의 그래픽 장치로도 사용할 수 있다는 것. 다만 NVIDIA는 경쟁사에서 주력으로 밀고 있는 게 영 탐탁찮은지 지원 계획이 있는지에 대해 일절 언급하지 않고 무시로 일관했다. 인텔은 자사의 GPU에 맨틀을 적용하기 위해 AMD에 기술 요청을 하였으나 AMD는 맨틀이 아직 완성되지 않은 베타버전이라는 이유로 거절했다. 물론 독점 API가 아니므로 이후 인텔과 기술협력을 할 가능성이 높았다.

한편 맨틀의 경쟁 상대가 되는 DirectX 쪽은 12버전에서 맨틀처럼 저수준 제어를 지원한다고 한다. 그리고 OpenGL 또한 OpenGL NG[3]부터 저수준 제어를 지원하는데(현재 공식 명칭은 Vulkan), AMD에서 OpenGL를 개발하는 크로노스 재단에 맨틀 관련 문서를 무제한 개방한 터라 맨틀의 향기가 진하게 묻어있을 가능성이 크다. 실제로 OpenGL측에서도 맨틀이 도움이 되었다는 언급이 있는 편이고, DX12도 직접적인 언급은 AMD의 자료 뿐이지만, 원래 DX가 NVIDIA, ATI(현 AMD 그래픽스) 등 VGA 개발사와 협력해서 만들었다는 점을 생각해 보면 정황상 영향을 줬을 가능성은 높다.[4]

이러한 API가 AMD만의 고유 발상은 아니고, 게임기에서는 당연시 되었고 PC에서도 필요성에 대한 공감대는 진작 형성되어 있었으나[5], 단일 사양에 전용 OS를 돌리는 게임기와는 판이하게 다른 PC 환경으로 인해 개발이 힘들었을 뿐이다. 그걸 마침 전세대의 Wii, 엑스박스 360에 이어 Wii U, 엑원PS4까지 자사 GPU (또는 APU)를 채택시키는데 성공한 AMD가 선구현에 유리해진 상황을 이용해 빠르게 도입한 것이다.[6] 아무래도 콘솔과 맨틀은 AMD GPU를 제어하는 로우레벨 API라는 유사점이 있기 때문에 DX11에서 직접 포팅하는 것보다는 유사하고 쉬울 가능성이 매우 높다.[7]

게다가 DX12는 윈도우 10 이전 버전의 윈도우즈를 지원하지 않기 때문에 윈도우 7~8.1에서도 사용가능한 맨틀은 설령 DX12에 의해 대체되더라도, 윈도우 7~8.1 게이밍 시장에서 독자적인 지분을 유지할 수 있을 가능성이 매우 높았다.

2014년 안에 베타 과정을 마치고 SDK가 출시될 예정...이었으나 연기 끝에 결국 취소되었다.

2015년 3월, AMD에서 대놓고 맨틀 1.0에서 DirectX나 OpenGL의 후속 API인 Vulkan으로 이동하기를 권했다. 링크.

2015년 7월, AMD가 맨틀API에 대한 최적화를 중단했다. 다만 맨틀은 DirectX 12와 Vulkan의 전신이라고 할 만큼 큰 영향을 끼쳤고, Vulkan을 준 공식 후속 API로 삼았으니 더 이상 AMD 내에서 개발할 필요가 없다. 실제로 배틀필드 4에서 맨틀 사용을 통해 상당한 성능 개선이 가능함을 실증했으며, 이것이 많은 유저와 개발자들에게 저수준 제어와 오버헤드 감소가 필요함을 알린 것만으로도 충분한 역할을 해낸 것.

그러나 이건 어디까지나 AMD 입장을 대변하는 분석에 가깝다. 애초에 저런 핑계 이유들은 맨틀이 처음 발표되던 당시부터 예측된 것들 뿐이다. 그럼에도 불구하고 까이는 이유는 AMD가 맨틀은 DirectX 12와 Vulkan으로 가는 과도기가 아니며 계속 지원될 것이라고 했기 때문이다. 하지만 현실은? 당장 RX480만 봐도 이 문제로 맨틀 최초 지원작인 배틀필드 4가 가장 대표적인 친 엔비디아 게임 취급 받는 게 현실이다.

여튼, 현재 맨틀은 불칸에 자발적으로 계승된 상태라고 보는 것이 정확한 상태이다. OpenGL/불칸을 만드는 크로노스 그룹의 관련 인터뷰에서도 확인사살 하고 있다. 첫 줄부터 맨틀에 기반하여, 표준화 & 대체하고 있다고 명시하고 있다. 인터뷰 전문 (영어). 여담으로, 해당 인터뷰에서 프로스트바이트 엔진의 맨틀 렌더러를 불칸으로 바꿀 것이라고 했는데, 19년 현재도 안 바뀌었다. 사실 저 얘기 이후 EA DICE에 무슨 일이 일어났고, 배틀필드 V가 어떻게 혹평을 받게 되었는지를 아는 사람이라면 알겠지만, 영원히 안 바뀔 가능성이 높다. 지금 DICE는 그런 거 신경 쓸 여유가 전혀 없으니깐. DX12든 불칸이든 간에 개발자가 코드짤 게 너무 많아 기존 API의 완전 대체는 포기한 것도 있고 해서, 프로스트바이트 엔진은 현재의 DX11/12 이원화 체제를 유지할 가능성이 높다.


1.1. 맨틀 API를 지원하는 게임 엔진[편집]


  • 프로스트바이트 3[8]
  • 크라이엔진
  • 판타레이 엔진[9]
  • Nitrous 엔진


1.2. 적용된 게임[편집]




1.3. 주요 적용 예정 게임[편집]



[1] 당시 AMD 그래픽카드의 코드네임이 화산섬 이름인 것과 관계 있을지도...[2] 단, DirectX11까지. DirectX12부터는 하드웨어와 직접 통신을 지원.[3] Next Generation의 준말.[4] DX12도 비슷하거나 앞선 시기부터 개발이 시작되었다곤 하지만, 맨틀이 몇 년 먼저 나왔으므로 개발 중 선구현 사례로 참고했을 가능성은 상식적으로 조금만 생각해봐도 매우 개연성 있는 추측이다. 보통 선구현 사례를 피해서 다르게 만드는 이유가 특허 문제 때문이라는 점을 생각해본다면, 선구현 사례를 무료로 가져다 참고해서 쓸 수 있는데도 마다할 이유는 없다.[5] DX12의 저수준 제어 기능도 맨틀과 비슷하거나 앞선 시기부터 개발이 시작되었으며, NVIDIA사가 GDC에서 발표한 관련 내용도 맨틀보다 몇년 먼저 나왔다.[6] 맨틀을 개발한 이유 중 하나가 EA 다이스에서 콘솔과 유사한 로우레벨 API를 쓸 수 없느냐 해서 만든 거라는 얘기가 있다[7] 이로 인해 사실상 동일 API라는 얘기까지 나왔지만, 공식적으로 부정되어서 낭설로 판명되었다. 어디까지나 DX11에서 포팅하는 것보다는 유사하다는 수준에 불과하다.[8] 애초에 맨틀 API가 DICE와의 협력을 통해 만들어졌다.[9] 캡콤의 차세대 게임 엔진. PS4로 독점 출시되는 Deep Down이 이 엔진을 사용했다. 근데 맨틀이 지원된다고 선언된 바이오하자드 레벌레이션스 2는 구세대 MT 프레임워크 엔진을 사용한다. 어?


파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는
문서의 r140 판{{{#!wiki style="display: inline; display: 2;"
, 2번 문단}}}에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r140 판{{{#!wiki style="display: inline; display: 2;"
, 2번 문단}}} (이전 역사)
문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)






파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-10-30 23:46:02에 나무위키 Mantle(API) 문서에서 가져왔습니다.