GGWiki
새 문서
일반/위키

벌컨 (API)

공식 자료를 바탕으로 AI가 작성한 초안 · 출처 보기

편집 이의 제기 토론 수정 이력 토론에서 언급
벌컨 (API) 로고
벌컨 (API) 로고 · 이미지 출처 ↗

개요편집이의 제기

벌컨(Vulkan)은 크로노스 그룹(Khronos Group)이 개발하고 관리하는 오버헤드가 적은 크로스 플랫폼 3D 그래픽스 및 컴퓨팅 API이다. 2014년 7월 차세대 그래픽스 API 프로젝트로 시작되어 2015년 게임 개발자 회의(GDC)에서 처음 공개되었으며, 2016년 2월 16일 1.0 사양이 정식 발표되었다[1][2][3]. 기존 OpenGL의 차세대 버전으로 기획되었으나 "OpenGL" 명칭을 계승하지 않고 별도의 저수준(Low-level) API로 자리잡았다. 마이크로소프트의 Direct3D 12, 애플의 메탈(Metal), AMD의 맨틀(Mantle)과 같이 GPU에 가까운 제어를 제공하며, 멀티 코어 CPU 환경에서 작업 부하를 효율적으로 분산해 CPU 사용량을 줄이고 성능을 높이는 것을 목표로 한다[2][3].

역사편집이의 제기

개발 배경과 초기 프로젝트

크로노스 그룹은 2014년 7월 밸브 코퍼레이션(Valve Corporation)의 킥오프 미팅과 함께 차세대 그래픽스 API 개발 프로젝트를 착수했다. 같은 해 SIGGRAPH 2014에서 참여자 모집을 겸한 공개 발표가 이루어졌다[2][3]. 초기에는 "차세대 OpenGL 이니셔티브" 또는 "OpenGL Next"로 불렸으며, AMD가 자사의 저수준 API인 맨틀(Mantle) 구성 요소를 크로노스 그룹에 기증하면서 개발 기반이 마련되었다[3].

명칭 확정과 공식 발표

미국 특허청(USPTO) 상표 출원은 2015년 2월 19일 이루어졌으며, 2015년 GDC에서 "벌컨(Vulkan)"이라는 정식 명칭과 함께 공식 발표되었다. 발표 이전에는 "glNext"라는 코드명으로 알려지기도 했다[3].

주요 연도별 진행 상황

#### 2015년

초기 2015년, 밸브의 지원을 받는 LunarG가 인텔 HD 4000 시리즈 내장 그래픽에서 벌컨 호환 리눅스 드라이버를 시연했다. 당시 메사(Mesa) 오픈소스 드라이버는 OpenGL 4.0을 완전히 지원하지 못하던 시점이었다[3]. 8월 10일 구글은 향후 안드로이드 버전에서 벌컨을 지원할 것이라고 발표했으며, 안드로이드 7.0 누가(Nougat)가 2016년 8월 22일 벌컨 1.0 지원을 포함해 출시되었고, 안드로이드 8.0 오레오(Oreo)에서 완전 지원이 이루어졌다[3]. 12월 18일 크로노스 그룹은 1.0 사양이 거의 완료되었으며 적합 드라이버가 준비되는 대로 발표할 것이라고 밝혔다[3].

#### 2016년

2월 16일 전체 벌컨 사양과 오픈소스 벌컨 SDK가 정식 공개되었다[1][3]. 이 시점부터 주요 게임 엔진과 타이틀이 벌컨 지원을 발표하기 시작했다[2].

#### 2018년

2월 26일 크로노스 그룹은 MoltenVK 라이브러리를 통해 macOS와 iOS에서도 벌컨을 사용할 수 있게 되었다고 발표했다. MoltenVK는 애플의 메탈 API 위에서 벌컨을 구현하는 계층으로, 기존에는 상용 라이선스였으나 밸브가 브렌윌 워크숍(Brenwill Workshop Ltd)과 협의해 아파치 2.0 라이선스로 오픈소스화하고 깃허브(GitHub)에 공개했다. 같은 날 밸브는 도타 2(Dota 2)가 MoltenVK 기반으로 macOS에서 벌컨 구동이 가능하다고 밝혔다[3].

#### 2019년

2월 25일 벌컨 안전 중요(Vulkan Safety Critical, SC) 워킹 그룹이 결성되어 안전 중요 산업 분야로 GPU 가속을 확장하기 시작했다[3]. 구글의 클라우드 게임 서비스 스타디아(Stadia)는 리눅스 기반 서버와 AMD GPU 환경에서 벌컨을 채택했다[3].

#### 2020년

1월 15일 벌컨 1.2가 발표되었다[3]. 같은 달 HLSL 지원이 마이크로소프트의 DXC 컴파일러와 크로노스의 glslang 컴파일러 개선, 벌컨 1.2의 신규 기능 덕분에 "프로덕션 레디" 수준에 도달했다는 평가가 나왔다[3]. 2월 3일 라즈베리 파이 재단(Raspberry Pi Foundation)은 라즈베리 파이용 오픈소스 벌컨 드라이버 개발을 발표했고, 6월 20일 한 그래픽스 엔지니어가 2년 작업 끝에 VkQuake3를 100 FPS 이상으로 구동하는 드라이버를 선보였다[3]. 3월 17일 엔비디아(NVIDIA)의 독자 확장을 기반으로 한 레이 트레이싱(Ray Tracing) 확장이 발표되었고, 11월 23일 최종 확정되었다[3]. 11월 24일 라즈베리 파이 4용 드라이벌이 벌컨 1.0 적합 판정을 받았다[3].

#### 2022년

1월 25일 벌컨 1.3이 발표되었다[3]. 3월 1일 벌컨 SC 1.0이 출시되어 안전 중요 산업용 그래픽스·컴퓨팅 기능을 벌컨 1.2 기반으로 제공하기 시작했다[3]. 8월 1일 라즈베리 파이 4 드라이버가 벌컨 1.2 적합 판정을 받았고[3], 9월 1일 메셰이딩(Mesh Shading) 확장이 공개되었다[3].

#### 2024년

1월 25일 새로운 벌컨 로드맵이 발표되었고, 2월 1일 AV1 비디오 디코딩 확장이 공개되었다[3]. 12월 3일 벌컨 1.4가 발표되어 수많은 기존 선택 확장과 기능을 핵심 사양에 통합하고 최소 하드웨어 요구 수준을 높여 개발·배포 과정을 단순화했다[3][4].

특징과 기능편집이의 제기

렌더링 및 컴퓨팅 파이프라인

벌컨은 GPU 하드웨어 작동 방식과 밀접하게 대응하는 저수준 API를 제공해 OpenGL이나 Direct3D 11보다 높은 성능과 효율적인 CPU·GPU 사용을 실현한다[3]. 단일 API로 데스크톱과 모바일 그래픽스 기기를 모두 아우르며, 기존에는 OpenGL(데스크톱)과 OpenGL ES(모바일)로 나뉘어 있던 것을 통합했다[3]. Direct3D 12와 달리 특정 OS나 기기 폼팩터에 종속되지 않는다[3].

CPU 부하 감소와 멀티스레딩

배치(Batching) 등 저수준 최적화를 통해 CPU 부하를 줄여 연산·렌더링 여유 자원을 확보한다[3]. Direct3D 11과 OpenGL 4가 단일 코어 CPU를 전제로 설계된 뒤 멀티코어 지원이 사후 추가된 것과 달리, 벌컨은 현대적인 스레드 아키텍처를 바탕으로 멀티코어 CPU에서 향상된 확장성을 제공한다[3].

사전 컴파일 셰이더와 SPIR-V

OpenGL은 런타임에 GLSL 소스 코드를 드라이버별 컴파일러로 변환하지만, 벌컨은 중간 바이너리 포맷인 SPIR-V(Standard Portable Intermediate Representation)를 사용한다[3]. 셰이더를 미리 컴파일하면 애플리케이션 초기화 속도가 빨라지고, 씬당 더 다양한 셰이더를 사용할 수 있으며, 드라이버는 GPU별 최적화와 코드 생성만 담당하면 되어 유지보수가 쉽고 패키지 크기도 줄일 수 있다[3]. 소스 코드가 직접 저장되지 않으므로 독점 셰이더 코드 난독화에도 유리하며, 필요 시 SPIR-V를 사람이 읽을 수 있는 고수준 코드로 역컴파일하는 도구도 제공된다[3].

컴퓨트 커널과 그래픽스 셰이더의 통합 관리

별도의 컴퓨트 API(예: OpenCL) 없이 컴퓨트 커널과 그래픽스 셰이더를 통합 관리할 수 있다[3].

레이 트레이싱

크로스 벤더 확장으로 레이 트레이싱 기능을 제공하며, 이는 엔비디아의 OptiX와 마이크로소프트의 DirectX Raytracing(DXR) API에 대응한다. OpenGL에는 동등한 기능이 노출되지 않는다[3].

비디오 가속

H.264, H.265(HEVC) 등 비디오 디코딩·인코딩 가속 기능이 포함된다[3]. 2024년에는 AV1 디코딩 확장이 추가되었다[3].

지원 플랫폼

벌컨은 안드로이드, 리눅스, BSD 유닉스, QNX, Haiku, 닌텐도 스위치(Nintendo Switch), 라즈베리 파이, 스타디아, 푸크시아(Fuchsia), 타이젠(Tizen), 윈도우 7·8·10·11에서 네이티브로 구동된다[3]. macOS, iOS, tvOS는 MoltenVK를 통해 메탈 위에서 벌컨을 구현하는 방식으로 지원되며, 이는 자유 라이선스로 제공된다[3].

드라이버 지원 현황 (2023년 3월 기준)

#### 인텔(Intel)

윈도우와 리눅스에서 드라이버 지원이 분리되어 있다. 윈도우에서는 스카이레이크(Skylake)~아이스레이크(Ice Lake)가 벌컨 1.3까지 지원되며 2022년 7월 이후 보안 수정만 제공된다. 아이리스 Xe(Iris Xe) 이상은 완전히 지원된다[3]. 리눅스에서는 메사(Mesa) 드라이버인 ANV가 스카이레이크 이상을 지원하며, 하스웰(Haswell)은 불완전 지원, 아이비브리지(Ivy Bridge)와 브로드웰(Broadwell)은 HASVK 레거시 드라이버로 지원된다[3].

#### AMD

윈도우에서는 GCN 1.0~3.0이 벌컨 1.2까지 지원(2021년 6월 이후 업데이트 중단), GCN 4.0 이상은 벌컨 1.3 지원[3]. 리눅스에서는 AMD가 개발하는 오픈소스 AMDVLK(윈도우와 동일 지원), 독점 드라이버 AMDGPU-PRO(일반 사용자 비권장), 밸브·레드햇·구글 등이 개발하는 RADV(메사 내장)가 공존한다. RADV는 2023년 3월 기준 모든 GCN·RDNA 카드를 지원하며, GCN 1.0~2.0은 커널 6.19 이전에서 실험적 지원이 필요했으나 현재는 기본 활성화되어 GCN 1~2에서 벌컨 1.3, 최신 세대에서 벌컨 1.4를 지원한다[3].

#### 엔비디아(NVIDIA)

윈도우·리눅스 공통으로 케플러(Kepler)는 벌컨 1.2까지(2021년 9월 이후 업데이트 중단), 맥스웰(Maxwell) 이상은 벌컨 1.4 지원[3]. 리눅스에서는 누보(nouveau) 기반 오픈소스 드라이버 NVK가 2022년 10월 발표, 2023년 8월 메사 메인라인 병합되었으며, 튜링(Turing) 이상에서 벌컨 1.4 적합, 맥스웰·파스칼·볼타에서 벌컨 1.3 적합, 케플러에서 벌컨 1.2 적합 판정을 받았다[3].

#### 안드로이드 및 모바일 GPU

대다수 최신 안드로이드 기기가 벌컨을 지원한다. 안드로이드 7.0 누가에서 벌컨 1.0 선택 지원, 9.0 파이(Pie)에서 벌컨 1.1 선택 지원, 안드로이드 10에서 64비트 비저메모리 기기에 벌컨 1.1 기대(필수 아님), 안드로이드 13에서 동일 조건으로 벌컨 1.3 기대[3]. 리눅스와 일부 크롬OS 기기에서 메사 드라이버로 ARM Mali(Midgard, Bifrost), 퀄컴 아드레노(Adreno), 브로드컴 비디오코어 VI(VideoCore VI) 하드웨어를 지원한다[3].

#### 애플(Apple)

2022년 6월 기준 애플 기기는 벌컨 네이티브 지원을 제공하지 않는다. MoltenVK를 통해 메탈 위에서 벌컨을 구현하며, 일부 고급 API 기능에 제약이 있다[3].

개발 도구 및 생태계

공식 사이트는 SDK, 드라이버, 코드 샘플, 튜토리얼, 프로파일링·디버깅 도구, 셰이더 도구, 엔진·프레임워크·언어 바인딩, 벌컨 프로파일(Vulkan Profiles), 포팅 레이어(Vulkan Porting Layers) 등 종합적인 개발 자원을 제공한다[4]. 주요 도구로는 GPU PerfStudio 3.6(리눅스·윈도우 벌컨 지원), GTK+ Scene Graph Kit(GTK+ 3.90에 포함, 2017년 3월 출시, 벌컨 렌더링 경로 탑재), RenderDoc(벌컨 지원, 2016년 2월 10일 추가) 등이 있다[2]. 벌컨 윈도우 시스템 통합(Vulkan Window System Integration, WSI)은 EGL이 OpenGL ES에 제공하던 컨텍스트 관리, 표면 바인딩, 렌더링 동기화 기능을 벌컨에 동일하게 제공한다[2].

라이선스 및 요금

벌컨 사양과 SDK는 아파치 라이선스 2.0, MIT 허가서, 크리에이티브 커먼즈 저작자표시 4.0 국제(CC BY 4.0) 하에 제공된다[1]. 로열티 없는 오픈 표준으로 누구나 자유롭게 구현·배포·사용할 수 있다.

사용 게임편집이의 제기

자료에 언급된 벌컨 지원 게임 및 프로젝트는 다음과 같다[2].

비디오 게임

The Talos Principle - 벌컨 렌더링을 지원한 최초의 게임

도타 2 / Dota 2 - 2016년 5월 벌컨 지원 공개

둠 (2016) / DOOM - 2016년 7월 벌컨 지원 공개

vkQuake - 퀘이크 벌컨 이식, 2016년 7월 공개

로블록스로블록스 / 로블록스Roblox - 2017년 3월 벌컨 지원 추가

스타 시티즌 / Star Citizen - 2017년 3월 클라우드 임페리엄 게임즈가 벌컨 구현 집중 발표, DirectX 지원 중단 예고

매드 맥스 (게임) / Mad Max - 2017년 3월 리눅스 포팅에서 벌컨 베타 지원 추가

Ballistic Overkill - 2017년 5월 벌컨 지원 공개

Quake III Arena Kenny Edition - 퀘이크 3 엔진 모드, 2017년 5월 벌컨 지원 추가

Ashes of the Singularity: Escalation - 차기작에 벌컨 지원 추가 예정

vkDoom3 - Doom 3 BFG 벌컨 포팅, 2017년 8월 공개

울펜슈타인 II: 더 뉴 콜로서스 / Wolfenstein II: The New Colossus - 벌컨만 지원, 2017년 출시

X4: Foundations - 벌컨 전용 그래픽스 엔진, 2018년 출시 예정

X-Plane 11 - 2017년 하반기 OpenGL에서 벌컨으로 이동 예정, 2018년 테스트 시작

레드 데드 리뎀션 2 / Red Dead Redemption 2 - 초기 공개 후 베타 테스트 때 벌컨 추가

게임 콘솔 에뮬레이터

Beetle/Mednafen PSX (Mednafen PlayStation의 Libretro 포팅)

돌핀 (Dolphin)

Mupen64Plus의 Libretro 포팅

RPCS3

PPSSPP

Xenia

게임 엔진

일반소스 2 / 일반Source 2 - 2015년 3월 밸브 발표, 오리지널 소스 엔진 계승, 벌컨 지원

시리어스 엔진 4 / Serious Engine 4 - 2016년 2월 크로팀(Croteam) 벌컨 지원 발표

일반언리얼 엔진 4 / 일반Unreal Engine 4 - 2016년 2월 에픽게임즈, 삼성 갤럭시 S7 언팩 행사에서 벌컨 지원 발표

토크 / Torque - 2016년 4월 개발자 공동체 벌컨 지원 포함 발표

퀘이크 엔진 / Quake Engine - 2016년 7월 벌컨 지원 추가

id Tech 3 - 2017년 5월 벌컨 지원 추가

id Tech 4 - 2017년 8월 벌컨 지원 추가

id Tech 6 - 2016년 5월 이드 소프트웨어, 둠 구동 엔진으로 벌컨 지원 발표

Xenko - 2016년 7월 벌컨 지원 추가

일반유니티 / Unity - 버전 5.6부터 벌컨 지원 추가

크라이엔진 / CryEngine - 5.4 릴리스에 벌컨 지원 추가

Intrinsic - 벌컨 지원 자유·오픈소스 크로스 플랫폼 게임 엔진

Unigine - 2017년 4월 2017년 로드맵에 벌컨 지원 포함 발표

Abyss Engine - 2017년 5월 딥 실버 피시랩스(Deep Silver FISHLABS), 안드로이드용 갤럭시 온 파이어 3(Galaxy on Fire 3) 출시하며 벌컨 지원

Banshee 3D - 벌컨 지원 자유·오픈소스 크로스 플랫폼 게임 엔진

Godot - 2D·3D 크로스 플랫폼 오픈소스 엔진, 2018년 2월 말 모든 플랫폼 대상 OpenGL ES 3만 쓰지 않고 OpenGL ES 2와 벌컨 혼합 사용 발표

RAGE - 레드 데드 리뎀션 2에서 지원

렌더링 엔진

UX3D Engine - 2017년 9월 벌컨 지원 추가

평가편집이의 제기

업계 및 벤더 관점

AMD는 "벌컨은 클로즈투메탈(close-to-metal) 제어를 지원해 윈도우 7, 8.1, 10, 리눅스에서 더 빠른 성능과 더 나은 화질을 제공한다. 어떤 다른 그래픽스 API도 OS 호환성, 렌더링 기능, 하드웨어 효율성이라는 강력한 조합을 동일하게 제공하지 못한다"고 평가했다[3].

엔비디아는 2016년 "OpenGL은 여전히 많은 용례에서 훌륭한 선택지다. 벌컨보다 훨씬 낮은 복잡성과 유지보수 부담으로, 많은 경우 여전히 훌륭한 전반적 성능을 제공한다"는 입장을 밝혔다[3].

기술적 평가

자료에 나타난 벌컨의 주요 강점은 △단일 API로 데스크톱·모바일·임베디드·콘솔을 아우르는 크로스 플랫폼성 △저수준 제어로 인한 CPU 오버헤드 감소와 멀티코어 확장성 △SPIR-V 기반 사전 컴파일 셰이더로 초기화 속도 향상과 드라이버 단순화 △그래픽스·컴퓨트 통합 파이프라인 △레이 트레이싱·비디오 가속 등 현대 GPU 기능의 표준화된 노출 등이다. 반면 단점으로는 △OpenGL 대비 현저히 높은 API 복잡도와 학습 곡선 △명시적 동기화·메모리 관리·파이프라인 생성 등 개발자 부담 증가 △드라이버 버그나 하드웨어별 동작 차이에 대한 직접 대응 필요 △애플 플랫폼에서 네이티브 미지원으로 MoltenVK 경유 시 일부 고급 기능 제약 등이 지적된다[2][3].

채택 현황

2016년 정식 출시 이후 주요 게임 엔진(언리얼, 유니티, 소스 2, 크라이엔진, 고도트 등)과 다수 상용 게임이 벌컨을 채택했으며, 에뮬레이터 분야에서도 돌핀, RPCS3, PPSSPP, Xenia 등 주요 프로젝트가 벌컨 렌더러를 기본 또는 옵션으로 제공한다. 구글 스타디아, 라즈베리 파이, 안드로이드 생태계에서의 확산도 확인된다[2][3]. 벌컨 1.4(2024년) 출시로 핵심 사양에 다수 확장이 통합되어 파편화 완화와 배포 단순화가 기대된다[3][4].

이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.

출처

4개
1Wikidata ↗https://www.wikidata.org/wiki/Q19407678
2위키백과 (한국어) · 벌컨 (API) ↗https://ko.wikipedia.org/wiki/%EB%B2%8C%EC%BB%A8_%28API%29
3위키백과 (영어) · Vulkan ↗https://en.wikipedia.org/wiki/Vulkan
4공식 사이트 ↗https://www.vulkan.org/