최근 수정 시각 : 2025-10-05 00:43:35

Vulkan(API)

Vulkan API에서 넘어옴

그래픽 라이브러리
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px);"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px;"
파일:OpenGL 로고.svg 파일:Vulkan(API) 로고.svg 파일:DirectX 로고 라이트.svg파일:DirectX 로고 다크.svg 파일:Metal2025.png
OpenGL Vulkan DirectX Metal
그 외 그래픽 라이브러리
}}}}}}}}} ||
<colbgcolor=#a41e22><colcolor=#fff>
Vulkan
파일:Vulkan(API) 로고.svg
개발 크로노스 그룹
출시 일자 2016년 2월 16일
최신 버전 1.4.321[1]
프로그래밍 언어 C
플랫폼 Microsoft Windows, macOS, Linux, Android, 닌텐도 스위치[2]
웹사이트 https://www.vulkan.org

1. 개요2. 이름3. 버전4. 특징
4.1. 크로스 플랫폼 지원4.2. 특정하지 않는 셰이더 프로그래밍 언어4.3. 멀티스레딩을 이용한 멀티코어 병렬 처리4.4. 레이트레이싱 지원4.5. OpenGL과의 차이점
4.5.1. 커맨드 버퍼 및 큐4.5.2. 오브젝트 기반4.5.3. 에러 확인4.5.4. 개발 난이도
4.5.4.1. 예제
5. 요구 사항
5.1. GPU5.2. 운영체제5.3. 지원 엔진5.4. 드라이버
6. 기타

1. 개요

Vulkan API 소개 영상[3]
Vulkan OpenGL ES의 비교 영상[4]

2015년 3월 3일에 열린 GDC 2015에서 공식으로 소개된 후, 2016년 2월 16일에 정식 발표된 그래픽용 API. 정식 명칭 발표 이전까지는 OpenGL NG, glNext 등으로 알려졌다.

2. 이름

Vulcan의 C를 K로 바꾼 것이다. 개발자들은 벌컨으로 읽으며, Vulcan의 /ˈvəl-kən/도 외래어 표기법상 '벌컨'이 맞는 표기이기 때문에 벌컨이 옳은 표기이나, 한국에서는 한동안 명칭 단일화가 되지 못하다 벌칸, 불칸 2020년대 중반 들어서 '불칸'이나 원어 'Vulkan'표기가 굳어져가고 있다.

3. 버전

파일:2024-vulkan-road-map.jpg
2년마다 대규모 업데이트를 하고 있다.
버전 출시일
1.0 2016년 2월 16일
1.1 2018년 3월 7일
1.2 2020년 1월 15일
1.3 2022년 1월 25일
1.4 2024년 12월 3일

4. 특징

4.1. 크로스 플랫폼 지원

AMD에서 맨틀의 문서를 모두 지원하여 표준으로 제정되고 있으며, OpenGL이 본래 크로스 플랫폼을 타겟으로 삼았던 것과는 다르게 x86-64 기반과 ARM 기반의 태생적인 하드웨어 성능 차이로 인해서 모바일 플랫폼만 OpenGL ES로 분리[5]시켜 사용되었다면, Vulkan은 시대에 맞게 처음부터 PC, 모바일, VR 등 더 다양한 플랫폼들을 모두 대응하는 것이 목표라는 점. 맨틀이나 DirectX 12처럼 하드웨어 직접 접근 3D 그래픽스 API인 만큼 CPU 오버헤드를 줄이는데 일조할 것으로 보인다.

4.2. 특정하지 않는 셰이더 프로그래밍 언어

Vulkan은 특정한 고수준 셰이더 언어를 선호하지 않고 SPIR-V 바이트 코드를 받아들인다는 규정만 존재한다. 따라서 GLSL이 아닌 셰이더 언어도 번역만 SPIR-V로 하면 Vulkan에서 그대로 사용할 수 있다. 단, 현재까지 일반적으로 Vulkan과 함께 사용되는 고수준 셰이더 언어는 OpenGL과 마찬가지로 GLSL이다. Vulkan 1.1에서 Direct3D의 메모리 레이아웃을 native하게 지원하기로 해서 GLSL과 HLSL의 차별도 사실상 없어졌다. HLSL to SPIR-V 컴파일러도 이미 존재한다.[6]

4.3. 멀티스레딩을 이용한 멀티코어 병렬 처리

멀티스레딩을 제대로 지원하게 되어 이를 활용한 멀티코어 병렬 처리가 가능하다. 기존 OpenGL은 싱글스레드로 돌아가게 디자인이 되어있어 멀티스레딩을 시도하면 매우 불안정하게 돌아간다. Vulkan은 Command Buffer를 함수마다 작성해서 Queue에 제출하는게 아닌, Direct3D 12의 Command List처럼 작업을 모든 코어에 나누어 처리한 후 마지막에 다 모아 Queue에 제출하면 된다. 이런 점으로 인하여 CPU 오버헤드가 줄어들고, 전체 에너지 사용량이 줄어든다. 물론 개발자가 원한다면 싱글스레드 구현도 가능하므로, 반드시 멀티스레드로 돌리지 않아도 된다.

4.4. 레이트레이싱 지원

2020년 3월 17일, DirectX 12의 확장 라이브러리인 DirectX Raytracing에 이어서 Vulkan에도 Vulkan Ray Tracing 확장 라이브러리가 발표되었다. 이제 Vulkan 기반으로 프로그래밍된 게임에도 레이트레이싱을 적용할 수 있게 되었다.

그 예로 퀘이크 2 RTX는 원래 윈도우만을 지원했으나 Vulkan이 레이트레이싱을 지원하기 시작한 뒤로 기반 API가 바뀌고 리눅스도 지원하게 되었다.

4.5. OpenGL과의 차이점

4.5.1. 커맨드 버퍼 및 큐

OpenGL은 함수마다 Command Buffer를 작성하고 Queue에 제출하는 방식을 사용하는데, Queue에 제출을 할 때 시간이 조금 걸린다. Vulkan은 일일이 Command Buffer를 작성할 때마다 Queue에 제출하지 않고, Command Buffer를 따로 다 작성 후 마지막에 한번에 다 제출하는 방식을 쓴다. 이 때문에 싱글스레드로 사용하여 멀티코어를 활용하는 병렬 처리가 아니더라도 성능은 OpenGL보다 뛰어나다.

4.5.2. 오브젝트 기반

OpenGL은 글로벌스테이트 기반이라서 오직 하나의 인스턴스만 생성할 수 있지만 Vulkan은 오브젝트 기반으로써, 여러 인스턴스를 생성하는 것이 가능하다.

4.5.3. 에러 확인

OpenGL은 드라이버에서 에러가 발생하면 glGetError 함수를 통하여 어떤 에러가 났는지 확인할 수 있다. Vulkan도 VkResult 열거형을 통해 어떠한 종류의 에러가 발생했는지 알 수 있지만, 기본적으로 주어지는 정보가 적다. 이는 드라이버의 오버헤드를 줄이고 성능을 향상시키기 위함이다. 개발자가 필요에 따라 validation layer(검증 계층)를 추가하여 디버깅에 도움이 되는 정보를 얻을 수 있다.

현재 존재하는 validation layer의 대표적인 예는 LunarG에서 제공하는 VK_LAYER_LUNARG_standard_validation 이다.

4.5.4. 개발 난이도

Direct3D 12가 11 대비 늘어난 소스코드처럼, 소스코드의 양은 OpenGL에 비해 어마어마하게 늘어난다. Vulkan은 로우레벨(저수준)까지 직접 조절할 수 있게 하느라 기본적으로 써야 할 코드가 매우 많다. 가령 Subpass처럼 DX12와 Metal에는 없는 복잡한 API 덕분에[7] 비슷한 저수준 API들에 비해서 특히 사용하기 어렵다는 평가가 많다.

잘 구현했다면 다른 API에 비해 성능이 뛰어나다는 점 때문에 Vulkan SDK를 설치하여 사용하고 싶어할 수 있지만, 상당한 그래픽 지식이 필요하고 특히 많은 코드 작성이 필요해 초보자들을 좌절하게 만든다. Vulkan을 배우고자 한다면, 처음부터 뛰어난 성능을 목표로 완벽하게 구현하려고 생각하지 않는 것이 좋다. 애초에 멀티스레드와 로우레벨 최적화를 위해 설계된 API인 만큼 복잡하고 구현도 어려우며, 특히 멀티스레드에서 버그가 발생하기 쉽기 때문이다. OpenGL을 먼저 배우는 경우 Vulkan과 연관이 있기 때문에 상당히 도움이 되며, 튜토리얼이나 자료가 많아서 배우기 쉽다.

LunarG의 공식 Vulkan 튜토리얼은 독자가 OpenGL를 잘 알고 있다는 가정 하에 작성되었으므로, 이해가 어려울 수 있다. 그러므로 OpenGL에 대한 개념만 숙지하고 새로 Vulkan을 배우고 싶다면, 다른 유저들이 만든 튜토리얼을 참고하거나 별도의 교재를 구입하는 것을 추천한다. 튜토리얼은 vulkan-tutorial.com이 유명하다.

Vulkan의 로우레벨을 관리하는 것이 귀찮다면, Anvil과 같은 툴킷을 사용해서 보조받는 방법도 있다.[8]

모바일게임 부분에선 경쟁 api인 Metal과 비교하면 AP 제조사들의 부실한 드라이버 지원과 크로노스 그룹/엔진 개발사의 조별과제의 단점이 떠오르게하는 직무유기에 가까운 트러블슈팅 떠넘기기, 파편화가 심각한 안드로이드OS에서 로우레벨 API란점이 시너지를 일으켜 개발 및 라이브 서비스에서의 유지보수 난이도를 급증시키는 바람에 메인스트림화까지 엄청나게 오랜 시간을 보내야 했다.

실제 모바일 게임 업계에서는 불지옥 같은 개발 환경을 자랑한다고 한다. 개발자로 추정되는 한 디시인사이드 유저가 남긴 후기를 보면 얼마나 처절한지 느껴질 정도.#[9] 특히 안드로이드에서 전문가 수준의 고급 개발자가 Metal에 필적하는 성능을 위해 아무리 Vulkan으로 최적화를 진행해도, 초급 개발자가 ios의 Metal을 이용해 대충 만든 것 보다 더 좋지 않은 결과물이 나올 수 있다고 할 정도니 말 다 한 셈. 다만 이것은 API를 직접 사용하는 상황에서의 이야기이며 대다수의 게임 개발자들은 게임 엔진을 통해 게임을 개발하기 때문에 API를 직접 사용할 일은 많지 않다.

Vulkan은 타 API와 비교해도 유독 생산성이 떨어지고 최적화 수준에 따른 성능차이가 확연한데, PC/콘솔 AAA급 게임의 경우 개발사이클이 길고 동원 가능한 자금이 많아 이러한 도구의 포텐을 제대로 이끌어내 빛을 볼 수 있다. 하지만 현실은 대부분 게임사들의 자금 사정이 녹록지 않을 뿐더러 하늘을 찌르는 개발난이도에 비해 성능 이득은 생각만큼 크지가 않아 OpenGL 대비 채용률이 상당히 줄어들게 되었다.[10] 정확히는 모바일 시장에서는 대체제가 없으므로 점점 확산되고 있으나 PC 시장에서 부진한 모습이다. 저예산/저사양 PC 게임들이 절찬리에 사용했던 OpenGL과는 다르게 Vulkan은 PC 게임에서는 채용이 상당히 드물며, 모바일과 크로스 플랫폼 게임들을 지원하는 게임들도 모바일 버전에서만 Vulkan을 채용하고, PC 클라이언트에서는 경로의존성이나 개발비용 문제로 인해 그냥 DirectX를 사용하는 경우가 많다.
4.5.4.1. 예제
OpenGL을 사용하여 Pipeline을 사용하려면 간단하게 glGenProgramPipelines 함수를 사용하면 되나, Vulkan 에선 VkGraphicsPipelineCreateInfo 구조를 다 채워넣어야 한다. OpenGL의 드라이버가 여러 가지 휴리스틱 로직을 통해서 적당히 추측하던 수많은 파라미터들을 개발자가 일일이 직접 써 넣어야 하는데, 편의성을 포기하고 성능을 얻기 위한 고육지책이다.[11]

Graphics Pipeline을 생성하는 법. 셰이더 로더 부분을 포함한 대부분의 코드가 생략되어 있다.
#!syntax cpp
VkPipeline pipeline;
...

VkVertexInputBindingDescription vertex_binding_description = { ... };
VkPipelineVertexInputStateCreateInfo vertex_input_info = { ... };
VkPipelineDepthStencilStateCreateInfo depth_stencil_info = { ... };
VkPipelineInputAssemblyStateCreateInfo input_asm_info = { ... };
VkViewport viewport = { ... };
VkRect2D scissor = { ... };
VkPipelineViewportStateCreateInfo viewportinfo = { ... };
VkPipelineRasterizationStateCreateInfo rastinfo = { ... };
VkPipelineMultisampleStateCreateInfo multinfo = { ... };
VkPipelineColorBlendAttachmentState colorattach = { ... };
VkPipelineColorBlendStateCreateInfo colorinfo = { ... };
VkPipelineLayoutCreateInfo layoutinfo = { ... };

if (vkCreatePipelineLayout (device, &layoutinfo, nullptr, &pipeline_layout) != VK_SUCCESS) {
	throw std::runtime_error ("vkCreatePipelineLayout failure");
}

VkGraphicsPipelineCreateInfo info = {
	VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
	...,
	&vertex_input_info,
	&input_asm_info,
	nullptr,
	&viewportinfo,
	&rastinfo,
	&multinfo,
	&depth_stencil_info,
	&colorinfo,
	nullptr,
	pipeline_layout,
	renderpass,
	0,
	VK_NULL_HANDLE,
	-1
};

if (vkCreateGraphicsPipeline (device, VK_NULL_HANDLE, 1, &info, nullptr, &pipeline) != VK_SUCCESS) {
	throw std::runtime_error ("vkCreateGraphicsPipeline failure");
}


위의 예제를 셰이더 로더 부분까지 다 쓰면 300줄 이상이 된다.

5. 요구 사항

5.1. GPU

제조사 요약 목록 참고
NVIDIA 케플러 이후 아키텍처 Geforce 10 이후
GeForce 900(M) 시리즈[12]
GeForce 800M 시리즈[13]
GeForce 700(M) 시리즈[14]
GeForce 600(M) 시리즈[15]
NVIDIA Vulkan 드라이버
AMD GCN 이후 아키텍처 Radeon HD 7000 시리즈 이후
AMD APU 전 라인업
인텔 Windows: 스카이레이크 이후
Linux: 아이비브릿지 이후
Windows: 인텔 코어 i 시리즈 6세대 이후
Linux: 인텔 코어 i 시리즈 3세대 이후
퀄컴 Adreno 418 이상[16] #
ARM Mali-T6XX 이상[17]

5.2. 운영체제

현재 지원되는 운영체제는 다음과 같다.
  • Microsoft Windows
    Windows에서 Vulkan API를 사용하기 위해서는 Windows 7 서비스 팩 1 이상이어야 하며, 이 사이트에서 자신의 기기가 Vulkan API를 지원하는지 확인할 수 있다.
  • Linux
    최신 버전에는 처음 설치 때부터 포함되어 있는 경우도 있다. 엔비디아 그래픽카드의 경우 상용 드라이버를 설치해야 하며, AMD와 같은 다른 제조사의 경우 패키지 관리자에서 제공되는 Mesa 드라이버를 설치해도 대부분 잘 작동한다. 우분투와 같은 데비안 기반의 운영체제의 경우 패키지 이름이 'mesa-vulkan-drivers'이다.
  • Android
    안드로이드 7.0 누가 이상에서 공식으로 지원된다.[18] 아직 모든 기기의 드라이버가 최적화되어 있지는 않지만, 잘 작성한 프로그램은 대개 OpenGL ES보다 성능이 나은 편이다.
  • 애플 운영체제: (macOS, iOS, iPadOS, watchOS, visionOS
    애플은 Vulkan API를 공식 지원하지 않는다. 애플은 자기들이 개발한 Metal API를 위해서 향후 출시될 운영체제에서 OpenGL를 천천히 퇴출시키겠다고 발표했다.#[19][20] 다만, 서드파티 라이브러리인 MoltenVK를 통해 제한적으로 사용할 수 있다.

5.3. 지원 엔진

5.4. 드라이버

2016년 2월 16일 Vulkan 1.0 발표 직후에 AMD, Nvidia, Intel의 Vulkan API 드라이버가 각각 발표되었고, 현재 AMD, Nvidia, Intel, Imagination Technologies(PowerVR), Qualcomm, ARM의 최신 하드웨어용 Vulkan API 드라이버가 존재한다.

Vulkan 1.1, 1.2, 1.3 등 대규모 업데이트 이후에 나오는 드라이버들이 해당 버전의 Vulkan을 지원하니 꼬박꼬박 업데이트를 해야한다.

애플 기기를 위한 native Vulkan API 드라이버는 존재하지 않는다. 그러나 서드파티 라이브러리인 MoltenVK를 통해 Vulkan API 호출을 Metal API 호출로 번역하는 방식으로 Vulkan API를 애플 기기에서 사용할 수 있다.[21] 참고 이곳에 MoltenVK에서의 제약이 마지막 문단에 정리되어 있다.

6. 기타

  • Sascha Willems라는 개발자가 깃허브에 Vulkan으로 가능한 예제를 올려두고 있다.
  • vulkan-tutorial.com이 공식 튜토리얼에 비해서 설명과 팁이 직관적이고 이해하기 쉽다.
  • AMD에서 가장 적극적으로 밀고 있다. Vulkan의 기초 기반이 AMD의 맨틀 API인 것도 있지만 무엇보다 OpenGL의 최적화가 바닥을 가는 AMD에서 그나마 엔비디아에 가장 근접한 성능을 낼 수 있기 때문이다. AMD에서 OpenGL은 최하 50~70%까지 속도가 저하되었으며 이 부분은 둠 리부트에서 매우 두드러지게 드러났기에 AMD의 최대 약점으로 유명했다.
  • id Tech 엔진은 Vulkan을 지원하는 게임이 많았는데 마이크로소프트가 id 소프트웨어를 인수하면서 앞으로 어떻게 될지 불투명하다. 다이렉트 X 최적화가 우선 될 가능성이 크다.
  • GPGPU용으로도 사용이 가능하다. 다이렉트ML등으로 명칭을 구분하는 다이렉트X와달리 그냥 Vulkan이라 한다.
  • 밸브 코퍼레이션이 Vulkan 스펙에도 많은 관여를 하고 있는데, 그 중에는 DirectX와의 호환성을 맞추는 확장이 적지 않은 비중을 차지한다. API 레벨에서부터 DirectX와 호환성을 맞춤으로서 Proton 호환성 레이어에서 Vulkan과 DirectX간의 API 디자인 차이로 인한 비효율을 최대한 줄이려는 목적이다.

[1] 2025년 7월 15일 출시.[2] 전체 목록은 위키백과에 있으니 참고.[3] 영상의 예시로 등장한 게임은 탈로스 법칙. Vulkan API를 사용한 최초의 상용 게임이다.[4] 좌: Vulkan / 우: OpenGL ES[5] 과거에는 OpenGL조차 게임용으로 쓰기 복잡해서 게임용으로만 간추려진 MiniGL을 별도로 제공한 적이 있었다. 특정 용도를 위해 불필요한 기능을 제거한 취지만 보면 현재 OpenGL ES와 다를 바 없다.[6] google shaderc[7] Subpass는 모바일 기기에서 주로 사용하는 TBDR을 고려한 디자인이다. DirectX는 모바일 GPU를 고려하지 않은 디자인이며, Metal의 경우 단일 벤더이기 때문에 복잡한 API 없이 최적화를 달성하기가 용이하다.[8] 다만 FreeGLUT이나 GLFW에 비하면 사용이 간단하지 않기 때문에, 아직은 말 그대로 보조를 해주는 정도이다. 튜토리얼이 없거나 부족한 상황이라 그래픽 라이브러리 실습용으로는 별로다.[9] 대수학언급 등 Vulkan의 모바일 드라이버 파편화로 인한 개발환경 문제와는 전혀 관련 없는 내용도 하고 있으니 걸러들을것. Vulkan이 어려운 이유는 드라이버가 자동으로 처리하던 리소스, 상태, 동기화를 애플리케이션이 명시적으로 설계해야 하기 때문에 어려운 것이다. 문제는 Metal은 Apple만이 사용하고 있으니 하나만 신경쓰면 됐지만, 안드로이드 진영은 여러 회사가 각자의 아키텍처를 가지고 있고 이러한 이유로 성능이 나오는 지점이 제각각 달라 최적화의 파편화가 발생하니 한 아키텍처만 신경쓸 게 아닌 이상 결국 개발의 난이도가 높아질 수 밖에 없다. 즉, 이러한 최적화는 Vulkan에만 국한된 것이 아니며, OpenGL, D3D11이전과 같이 드라이버가 모든걸 다 해 주는 API 구조와 달리 Low-Level API는 GPGPU 프로그래밍처럼 메모리 할당부터 셰이더 커널의 워크 그룹을 하드웨어가 최적으로 돌아갈 수 있도록 직접 다 해 줘야 하고 이는 까다롭긴 하지만 한편으로는 하드웨어에서 극한의 최적화가 가능하게 해 주는 이유기도 하다. 글에서는 Metal은 이러한 문제가 없다고 주장하고 있으나, 실제로 PC환경에서 macOS의 Metal은 Intel, AMD 그리고 Apple 세 디바이스가 존재하고 드라이버 버그와 성능 문제가 엄연히 존재하고 실제로 Blender의 경우 Intel과 AMD 드라이버의 버그로 인해 지원을 버렸다. 즉 Vulkan만의 문제라고 말할 수 없는 것.[10] 이것은 API의 난이도보다는 플랫폼별 차이에서 기인하는 점이 더 크다. 콘솔들은 각자의 저수준 API를 갖고 있으며, PC 게임 대다수는 D3D11/D3D12를 사용하며 Vulkan이 메인 API로 사용되는 플랫폼은 리눅스와 안드로이드에 그친다.[11] 하지만 제대로 만들기만 하면 기존의 API들인 DirectX 나 OpenGL에 비해 반등급 높은 그래픽 카드를 쓰는 수준으로 성능을 뽑아낼수있다.[12] GeForce 910M처럼 페르미 아키텍처를 사용한 제품을 제외한 모든 모델[13] GeForce 820M처럼 페르미 아키텍처를 사용한 제품을 제외한 모든 모델[14] GeForce GT 705처럼 페르미 아키텍처를 사용한 제품을 제외한 모든 모델[15] GeForce GT 610, 620, 630(초기형 모델 한정. 2013년 6월에 출시된 후기형 모델은 케플러 아키텍처 기반이다)처럼 페르미 아키텍처를 사용한 제품을 제외한 모든 케플러 아키텍처 기반의 모델[16] 공식인증은 아직 받지 않았지만, Adreno 420에서 ALU 수를 낮추고 클럭을 낮춘 Adreno 418이 공식 인증을 받았기에, 굳이 공식인증을 받지 않아도 불칸 API를 지원 한다. 허나 구글 레퍼런스 기기인 넥서스 6가 7.1 소스코드에 불칸관련드라이버가 배제된채 적용된 것이 소스코드 확인결과 확정되었기에, 넥서스 6가 지원불가 판정이 나면서 가능할지 불가능할지 미지수가 되었다.[17] 공식인증은 Mali-T8XX/7XX밖에 받지 않았지만, 초기 베타버전때는 Mali-T6XX시리즈로 불칸 API를 개발했기에 Mali-T6XX는 공식인증 받지 않아도 하드웨어적으로는 지원한다. 또한 불칸 첫 베타버전 공개 당시때, 엑시노스 5420으로 불칸 구동을 시연했다.[18] 그런데 삼성이 갤럭시 S7에서 안드로이드 6.0 마시멜로 버전에 불칸 지원을 추가했다. 물론 크로노스 그룹과 구글의 협조가 있어서 가능했다.[19] 애플도 사실 Vulkan 개발에 협조를 했었기에 Vulkan에 대해 잘 알고 있다.[20] 이전 설명에는 Metal API가 성능상 낫지 않다고 되어 있는데, 아난드텍의 화웨이 P10 벤치마크에서는 둘이 비슷한 이점을 가진다고 분석하고 있다. 그리고 벤치마크 상으로는 Metal을 지원하는 아이폰 7이 벤치마크에서 훨씬 더 높은 이득을 가져가고 있음을 보여주었다. 아난드텍은 Vulkan의 이점이 드러나려면 좀더 시간이 흐른 후일 것이라고 평하였다. 이는 iPad, 64비트 앱에서 볼 수 있듯 상대적으로 앱 시장이 적극적으로 신기술에 반응하는 특성도 영향을 끼친 듯 하다.[21] the Brenwill Workgroup Ltd.가 유료 판매를 위해 개발을 시작했던 MoltenVK라이브러리가, 2018년 2월부터 오픈소스로 공개되었다.