[include(틀:그래픽 라이브러리)] ||<-2>
{{{#!wiki style="padding: 3px 0;" {{{+2 '''{{{#white Vulkan}}}'''}}}}}} || ||<-2> [[파일:Vulkan(API) 로고.svg|width=70%]] || || '''{{{#white 개발}}}''' ||[[크로노스 그룹]]|| || '''{{{#white 출시 일자}}}''' ||2016년 2월 16일|| || '''{{{#white 최신 버전}}}''' ||1.3.261[* 2023년 8월 4일 출시.]|| || '''{{{#white 프로그래밍 언어}}}''' ||[[C언어|C]]|| || '''{{{#white 플랫폼}}}''' ||[[Microsoft Windows|[[파일:Windows 로고.svg|height=16]]]] | [[macOS|[[파일:macOS 로고.svg|height=16]]]] | [[Linux|[[파일:Linux 로고.svg|height=16]]]] [br] [[안드로이드(운영체제)|[[파일:안드로이드(운영체제) 로고.svg|height=16]]]] | [[닌텐도 스위치|[[파일:Nintendo Switch 로고 가로형.svg|height=16]]]] 등[* 전체 목록은 [[https://en.wikipedia.org/wiki/Vulkan|위키백과]]에 있으니 참고.]|| || '''{{{#white 웹사이트}}}''' ||[[https://www.khronos.org/vulkan/|{{{#a41e22 Khronos Group}}}]]|| [목차] == 개요 == ||
'''{{{#white Vulkan API 소개 영상}}}'''[* 영상의 예시로 등장한 게임은 [[탈로스 법칙]]. Vulkan API를 사용한 최초의 상용 게임이다.] || || {{{#!wiki style="margin: -5px -10px" [youtube(qZLzz3OOl3A)]}}} || ||
'''{{{#white Vulkan}}}'''{{{#white 과}}} '''{{{#white OpenGL ES}}}'''{{{#white 의 비교 영상}}}[* 좌: Vulkan / 우: OpenGL ES] || || {{{#!wiki style="margin: -5px -10px" [youtube(P_I8an8jXuM)]}}} || [anchor(Vulkan)][[2015년]] [[3월 3일]]에 열린 GDC 2015에서 공식으로 소개된 후, 2016년 2월 16일에 정식 발표된 그래픽용 API. 정식 명칭 발표 이전까지는 OpenGL NG, glNext 등으로 알려졌다. == 상세 == === [[크로스 플랫폼]] 지원 === AMD에서 [[Mantle(API)|맨틀]]의 문서를 모두 지원하여 표준으로 제정되고 있으며, [[OpenGL]]이 본래 크로스 플랫폼을 타겟으로 삼았던 것과는 다르게 x86-64 기반과 ARM 기반의 태생적인 하드웨어 성능 차이로 인해서 모바일 플랫폼만 OpenGL ES로 분리[* 과거에는 OpenGL조차 게임용으로 쓰기 복잡해서 게임용으로만 간추려진 MiniGL을 별도로 제공한 적이 있었다. 특정 용도를 위해 불필요한 기능을 제거한 취지만 보면 현재 OpenGL ES와 다를 바 없다.]시켜 사용되었다면, Vulkan은 시대에 맞게 처음부터 PC, 모바일, VR 등 더 다양한 플랫폼들을 모두 대응하는 것이 목표라는 점. 어찌보면 Vulkan이야말로 진정한 크로스 플랫폼의 2D/3D 그래픽 API일지도... [[Mantle(API)|맨틀]]이나 [[DirectX]] 12처럼 하드웨어 직접 접근 3D 그래픽스 API인 만큼 CPU 오버헤드를 줄이는데 일조할 것으로 보인다. === 특정하지 않는 셰이더 프로그래밍 언어 === Vulkan은 특정한 고수준 셰이더 언어를 선호하지 않고 SPIR-V 바이트 코드를 받아들인다는 규정만 존재한다. 따라서 GLSL이 아닌 셰이더 언어도 번역만 SPIR-V로 하면 Vulkan에서 그대로 사용할 수 있다. 단, 현재까지 일반적으로 Vulkan과 함께 사용되는 고수준 셰이더 언어는 OpenGL과 마찬가지로 GLSL이다. Vulkan 1.1에서 Direct3D의 메모리 레이아웃을 native하게 지원하기로 해서 GLSL과 HLSL의 차별도 사실상 없어졌다. HLSL to SPIR-V 컴파일러도 이미 존재한다.[* [[https://github.com/google/shaderc|google shaderc]] ] === 멀티스레딩을 이용한 멀티코어 병렬 처리 === 멀티스레딩을 제대로 지원하게 되어 이를 활용한 멀티코어 병렬 처리가 가능하다. 기존 [[OpenGL]]은 싱글스레드로 돌아가게 디자인이 되어있어 멀티스레딩을 시도하면 매우 불안정하게 돌아간다. Vulkan은 Command Buffer를 함수마다 작성해서 Queue에 제출하는게 아닌, Direct3D 12의 Command List처럼 작업을 모든 코어에 나누어 처리한 후 마지막에 다 모아 Queue에 제출하면 된다. 이런 점으로 인하여 CPU 오버헤드가 줄어들고, 전체 에너지 사용량이 줄어든다. 물론 개발자가 원한다면 싱글스레드 구현도 가능하므로, 반드시 멀티스레드로 돌리지 않아도 된다. === [[레이트레이싱]] 지원 === 2020년 3월 17일, DirectX 12의 확장 라이브러리인 DirectX Raytracing에 이어서 Vulkan에도 Vulkan Ray Tracing 확장 라이브러리가 발표되었다. 이제 Vulkan 기반으로 프로그래밍된 게임에도 [[레이트레이싱]]을 적용할 수 있게 되었다. 그 예로 퀘이크 2 RTX는 원래 윈도우만을 지원했으나 Vulkan이 레이트레이싱을 지원하기 시작한 뒤로 기반 API가 바뀌고 리눅스도 지원하게 되었다. === OpenGL과의 차이점 === ==== 커맨드 버퍼 및 큐 ==== OpenGL은 함수마다 Command Buffer를 작성하고 Queue에 제출하는 방식을 사용하는데, Queue에 제출을 할 때 시간이 조금 걸린다. Vulkan은 일일이 Command Buffer를 작성할 때마다 Queue에 제출하지 않고, Command Buffer를 따로 다 작성 후 마지막에 한번에 다 제출하는 방식을 쓴다. 이 때문에 싱글스레드로 사용하여 멀티코어를 활용하는 병렬 처리가 아니더라도 성능은 OpenGL보다 뛰어나다. ==== 오브젝트 기반 ==== OpenGL은 글로벌스테이트 기반이라서 오직 하나의 인스턴스만 생성할 수 있지만 Vulkan은 오브젝트 기반으로써, 여러 인스턴스를 생성하는것이 가능하다. ==== 에러 확인 ==== OpenGL은 드라이버에서 에러가 발생하면 glGetError 함수를 통하여 어떤 에러가 났는지 확인할 수 있다. Vulkan도 VkResult 열거형을 통해 어떠한 종류의 에러가 발생했는지 알 수 있지만, 기본적으로 주어지는 정보가 적다. 이는 드라이버의 오버헤드를 줄이고 성능을 향상시키기 위함이다. 개발자가 필요에 따라 validation layer(검증 계층)를 추가하여 디버깅에 도움이 되는 정보를 얻을 수 있다. 현재 존재하는 validation layer의 대표적인 예는 LunarG에서 제공하는 VK_LAYER_LUNARG_standard_validation 이다. ==== 난이도 및 소스코드의 양 ==== Direct3D 12가 11 대비 늘어난 소스코드처럼, 소스코드의 양은 OpenGL에 비해 어마어마하게 늘어난다. Vulkan은 로우레벨(저수준)까지 직접 조절할 수 있게 하느라 기본적으로 써야할 코드가 매우 많다. (잘 구현했을 때) 다른 API에 비해 성능이 뛰어나다는 점 때문에 Vulkan SDK를 설치하여 사용하고 싶어할 수 있지만, 상당한 그래픽 지식이 필요하고 특히 많은 코드 작성이 필요해 초보자들을 좌절하게 만든다. Vulkan을 배우고자 한다면, 처음부터 뛰어난 성능을 목표로 완벽하게 구현하려고 생각하지 않는 것이 좋다. 애초에 멀티스레드와 로우레벨 최적화를 위해 설계된 API인 만큼 복잡하고 구현도 어려우며, 특히 멀티스레드에서 버그가 발생하기 쉽기 때문이다. OpenGL을 먼저 배우는 경우 Vulkan과 연관이 있기 때문에 상당히 도움이 되며, 튜토리얼이나 자료가 많아서 배우기 쉽다. LunarG의 [[https://vulkan.lunarg.com/doc/sdk/1.1.106.0/windows/getting_started.html|공식 Vulkan 튜토리얼]]은 독자가 OpenGL를 잘 알고 있다는 가정 하에 작성되었으므로, 이해가 어려울 수 있다. 그러므로 OpenGL에 대한 개념만 숙지하고 새로 Vulkan을 배우고 싶다면, 다른 유저들이 만든 튜토리얼을 참고하거나 별도의 교재를 구입하는 것을 추천한다. 튜토리얼은 [[https://vulkan-tutorial.com/|vulkan-tutorial.com]]이 유명하다. Vulkan의 로우레벨을 관리하는 것이 귀찮다면, Anvil과 같은 툴킷을 사용해서 보조받는 방법도 있다.[* 다만 FreeGLUT이나 GLFW에 비하면 사용이 간단하지 않기 때문에, 아직은 말 그대로 보조를 해주는 정도이다. 튜토리얼이 없거나 부족한 상황이라 그래픽 라이브러리 실습용으로는 별로다.] 모바일게임 부분에선 경쟁 api인 [[Metal(API)]]과 비교하면 퀄컴, 삼성, 미디어텍의 부실한 드라이버지원과 구글, 크로노스그룹과 엔진개발사의 [[조별과제]]의 단점이 떠오르게하는 직무유기에 가까운 트러블슈팅 떠넘기기, 리소스가 한정된 모바일 특히 파편화가 심각한 안드로이드OS에서 로우레벨 API란점이 시너지를 일으켜 개발 및 라이브 서비스에서의 유지보수 난이도를 급증시키며 때문에 안드로이드OS의 표준이 된지 상당히 오랜 기간이 지났음에도 라이브서비스되는 모바일 온라인 게임에 적용된 사례는 한손에 꼽을만큼 적고 서비스되는게임이 적음으로써 레퍼런스가 부족해 개발과 유지보수에 어려움을 겪는 악순환이 현재진행형으로 계속되고 있다. ===== 예제 ===== OpenGL을 사용하여 Pipeline을 사용하려면 간단하게 {{{glGenProgramPipelines}}} 함수를 사용하면 되나, Vulkan 에선 VkGraphicsPipelineCreateInfo 구조를 다 채워넣어야 한다. OpenGL의 드라이버가 여러가지 휴리스틱 로직을 통해서 적당히 추측하던 수많은 파라미터들을 개발자가 일일이 직접 써 넣어야 하는데, 편의성을 포기하고 성능을 얻기 위한 고육지책이다.[* 하지만 제대로 만들기만 하면 기존의 API들인 DirectX 나 OpenGL에 비해 반등급 높은 그래픽 카드를 쓰는 수준으로 성능을 뽑아낼수있다.] 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줄 이상이 된다. == 운영체제 == 현재 지원되는 운영체제는 다음과 같다. * 윈도우 Windows에서 Vulkan API를 사용하기 위해서는 [[Windows 7]] 서비스 팩 1 이상이어야 하며, [[http://vulkan.gpuinfo.org/download.php|이 사이트]]에서 자신의 기기가 Vulkan API를 지원하는지 확인할 수 있다. * 리눅스 최신 버전에는 처음 설치 때부터 포함되어 있는 경우도 있다. 엔비디아 그래픽카드의 경우 상용 드라이버를 설치해야 하며, AMD와 같은 다른 제조사의 경우 패키지 관리자에서 제공되는 Mesa 드라이버를 설치해도 대부분 잘 작동한다. [[우분투]]와 같은 데비안 기반의 운영체제의 경우 패키지 이름이 'mesa-vulkan-drivers'이다. * 안드로이드 안드로이드 7.0 누가 이상에서 공식으로 지원된다.[* 그런데 삼성이 [[갤럭시 S7]]에서 안드로이드 6.0 마시멜로 버전에 불칸 지원을 추가했다. 물론 크로노스 그룹과 구글의 협조가 있어서 가능했다.] 아직 모든 기기의 드라이버가 최적화되어 있지는 않지만, 잘 작성한 프로그램은 대개 OpenGL ES보다 성능이 나은 편이다. * macOS 및 iOS 애플은 Vulkan API를 공식 지원하지 않는다. 애플은 자기들이 개발한 [[Metal(API)|Metal API]]를 위해서 향후 출시될 운영체제에서 OpenGL를 천천히 퇴출시키겠다고 발표했다.[[https://developer.apple.com/macos/whats-new|#]][* 애플도 사실 Vulkan 개발에 협조를 했었기에 Vulkan에 대해 잘 알고 있다.][* 이전 설명에는 Metal API가 성능상 낫지 않다고 되어 있는데, 아난드텍의 화웨이 P10 벤치마크에서는 둘이 비슷한 이점을 가진다고 분석하고 있다. 그리고 벤치마크 상으로는 Metal을 지원하는 아이폰 7이 벤치마크에서 훨씬 더 높은 이득을 가져가고 있음을 보여주었다. 아난드텍은 Vulkan의 이점이 드러나려면 좀더 시간이 흐른 후일 것이라고 평하였다. 이는 iPad, 64비트 앱에서 볼 수 있듯 상대적으로 앱 시장이 적극적으로 신기술에 반응하는 특성도 영향을 끼친 듯 하다.] 다만, 서드파티 라이브러리인 MoltenVK를 통해 제한적으로 사용할 수 있다. == 드라이버 == 2016년 2월 16일 Vulkan 1.0 발표 직후에 AMD, Nvidia, Intel의 Vulkan API 드라이버가 각각 발표되었고, 현재 AMD, Nvidia, Intel, Imation Technologies(PowerVR), Qualcomm, ARM의 최신 하드웨어용 Vulkan API 드라이버가 존재한다. Vulkan 1.1, 1.2, 1.3 등 대규모 업데이트 이후에 나오는 드라이버들이 해당 버전의 Vulkan을 지원하니 꼬박꼬박 업데이트를 해야한다. === MoltenVK === 애플 기기를 위한 native Vulkan API 드라이버는 존재하지 않는다. 그러나 서드파티 라이브러리인 MoltenVK를 통해 Vulkan API 호출을 Metal API 호출로 번역하는 방식으로 Vulkan API를 애플 기기에서 사용할 수 있다.[* the Brenwill Workgroup Ltd.가 유료 판매를 위해 개발을 시작했던 MoltenVK라이브러리가, 2018년 2월부터 오픈소스로 공개되었다.] [[https://www.khronos.org/news/press/vulkan-applications-enabled-on-apple-platforms|참고]] [[https://github.com/KhronosGroup/MoltenVK/blob/master/Docs/MoltenVK_Runtime_UserGuide.md|이곳]]에 MoltenVK에서의 제약이 마지막 문단에 정리되어 있다. === 지원되는 그래픽 하드웨어 목록 === || '''제조사''' || '''요약''' || '''목록''' || '''참고''' || || '''[[NVIDIA]]''' || 케플러 이후의 아키텍처를 사용한 GPU 중 일부 ||TITAN 시리즈 GeForce TITAN 시리즈 GeForce RTX 30 시리즈 [* GeForce RTX 3050 및 그 상위 모델 전부] GeForce RTX 20 시리즈 [* GeForce RTX 2060 및 그 상위 모델 전부] GeForce GTX 16 시리즈 [* GeForce GTX 1650 및 그 상위 모델 전부] GeForce GTX 10 시리즈 [* GeForce GTX 1050, GeForce GT 1030 및 그 상위 모델 전부] GeForce 900(M) 시리즈 [* GeForce 910M처럼 페르미 아키텍처를 사용한 제품을 '''제외'''한 모든 모델] GeForce 800M 시리즈 [* GeForce 820M처럼 페르미 아키텍처를 사용한 제품을 '''제외'''한 모든 모델] GeForce 700(M) 시리즈 [* GeForce GT 705처럼 페르미 아키텍처를 사용한 제품을 '''제외'''한 모든 모델] GeForce 600(M) 시리즈 [* GeForce GT 610, 620, 630(초기형 모델 한정. 2013년 6월에 출시된 후기형 모델은 케플러 아키텍처 기반이다)처럼 페르미 아키텍처를 사용한 제품을 '''제외'''한 모든 케플러 아키텍처 기반의 모델] || [[https://developer.nvidia.com/vulkan-driver||NVIDIA Vulkan 드라이버]] || || [[AMD]] || [[GCN]] 아키텍처 기반 이후 세대의 모든 [[Radeon|Radeon GPU]] ||Radeon™ RX 6000 시리즈 Radeon™ INSTINCT MI100 시리즈 Radeon™ INSTINCT MI200 시리즈 Radeon™ RX VEGA 시리즈 Radeon™ Radeon VII Radeon™ RX 500 시리즈 Radeon™ RX 400 시리즈 Radeon™ RX 300 시리즈 Radeon™ RX 200 시리즈 Radeon™ HD 8000 Series graphics for OEM systems [* HD 8570 이상] Radeon™ HD 8000M Series graphics for notebooks Radeon™ HD 7000 Series graphics [* HD 7730 이상] Radeon™ HD 7000M Series graphics for notebooks [* HD 7730M 이상] RYZEN 2000U Series APUs [* “Raven Ridge”] A6/A8/A10/FX™ 9000 Series APUs [* Bristol Ridge”] A6/A8/A10/FX™ 8000 Series APUs [* “Carrizo”] A6/A8/A10 PRO-7000 Series APUs [* “Kaveri”] A4/A6/A8/A10-7000 Series APUs [* “Kaveri”] E1-2000 Series APUs E2-3000 Series APUs A4-5000 Series APUs A6-5000 Series APUs A4 Pro-3000 Series APUs [* “Kabini”] [[https://community.amd.com/community/gaming/blog/2016/02/16/radeon-gpus-are-ready-for-the-vulkan-graphics-api?webSyncID=129e0d6b-d6db-b7ce-067c-25d08d22897e&sessionGUID=22952c00-80c9-caa4-dd21-d691a203e0dd|#]] A4-1200, A4-1300 and A6-1400 Series APUs [* “Temash”] E1/A4/A10 Micro-6000 Series APUs [* “Mullins”] E1/E2/A4/A6/A8-6000 Series APUs [* “Beema”] || || || [[인텔]] || 스카이레이크 아키텍처 기반[br]이후 세대의 모든 내장 그래픽[br](Windows 환경 기준) ||[[커피레이크]] 아키텍처 기반 CPU 내장 그래픽 [[카비레이크]] 아키텍처 기반 CPU 내장 그래픽 [[스카이레이크]] 아키텍처 기반 CPU 내장 그래픽 [[브로드웰]] 아키텍처 기반 CPU 내장 그래픽 [*Linux] [[하스웰]] 아키텍처 기반 CPU 내장 그래픽 [*Linux] [[아이비브릿지]] 아키텍처 기반 CPU 내장 그래픽 [*Linux] || || || [[퀄컴]] || Adreno 418 이상의 모든 GPU[* 공식인증은 아직 받지 않았지만, Adreno 420에서 ALU 수를 낮추고 클럭을 낮춘 Adreno 418이 공식 인증을 받았기에, 굳이 공식인증을 받지 않아도 불칸 API를 지원 한다. 허나 구글 레퍼런스 기기인 [[넥서스 6]]가 7.1 소스코드에 불칸관련드라이버가 배제된채 적용된 것이 소스코드 확인결과 확정되었기에, [[넥서스 6]]가 지원불가 판정이 나면서 가능할지 불가능할지 미지수가 되었다.] || || [[https://www.qualcomm.com/news/releases/2016/02/17/qualcomm-announces-vulkan-api-support-adreno-530-gpu|#]] || || [[ARM]] || Mali-T6XX 이상의 모든 GPU[* 공식인증은 Mali-T8XX/7XX밖에 받지 않았지만, 초기 베타버전때는 Mali-T6XX시리즈로 불칸 API를 개발했기에 Mali-T6XX는 공식인증 받지 않아도 하드웨어적으로는 지원한다. 또한 불칸 첫 베타버전 공개 당시때, [[엑시노스]] 5420으로 불칸 구동을 시연했다.] || || == 버전 == 2년마다 대규모 업데이트를 하고 있다. || '''버전''' || '''출시일''' || || 1.0 || 2016년 2월 16일 || || 1.1 || 2018년 3월 7일 || || 1.2 || 2020년 1월 15일 || || 1.3 || 2022년 1월 25일 || == 지원 게임[* [[https://en.wikipedia.org/wiki/Vulkan_(API)#Games|출처]]] == 이하 알파벳 순. 아직 출시 전이거나 예정작은 '''굵은 글씨''', 취소작은 '''{{{#red 빨간색}}}''' 표시. || '''게임''' || '''개발사''' || '''지원 날짜''' || '''지원 플랫폼''' || || [[Ashes of the Singularity]] || Oxide Games [br] Hidden Path Entertainment || 2017년 8월 31일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[발더스 게이트 3|Baldur's Gate 3]] || [[라리안 스튜디오|Larian Studios]] || 2023년 8월 3일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] | [[macOS|[[파일:macOS 로고.svg|height=16]]]] || || [[카운터 스트라이크 2|Counter-Strike 2]] [*A 시작옵션 설정란을 입력해야 작동하는 같은 밸브 게임인 [[레프트 4 데드 2]], [[포탈 2]]와 달리 [[소스 2]] 덕분에 기본 엔진이 Vulkan이라 따로 입력할 필요가 없다.] || [[밸브 코퍼레이션|Valve Corporation]] || 2023년 9월 27일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] | [[macOS|[[파일:macOS 로고.svg|height=16]]]] | [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || [[둠(2016)|Doom(2016)]] || [[id Software]] || 2016년 7월 11일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[둠 이터널|Doom Eternal]] || [[id Software]] || 2020년 3월 20일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[도타 2|Dota 2]] [*A] || [[밸브 코퍼레이션|Valve Corporation]] || 2016년 5월 23일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] | [[macOS|[[파일:macOS 로고.svg|height=16]]]] | [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || [[포뮬러 1#s-12|F1 2017]] || [[Codemasters]] || 2017년 11월 2일 || [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || [[포트나이트/배틀로얄|Fortnite: Battle Royale]] || [[Epic Games]] || 2018년 8월 9일 || [[안드로이드(운영체제)|[[파일:안드로이드(운영체제) 로고.svg|height=16]]]] || || [[고스트 리콘 브레이크포인트|Ghost Recon Breakpoint]] || [[유비소프트|Ubisoft]] || 2020년 3월 24일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[레프트 4 데드 2|Left 4 Dead 2]] [*B 시작옵션 설정란에 '''-vulkan''' 을 입력해야 적용된다.] || [[밸브 코퍼레이션|Valve Corporation]] || 2021년 6월 16일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] | [[macOS|[[파일:macOS 로고.svg|height=16]]]] | [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || [[매드 맥스(게임)|Mad Max]] || [[Avalanche Studios]] || 2017년 3월 30일 || [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || [[NFS NL|Need for speed: No Limits]] || Firemonkeys Studios || 2016년 8월 20일 || [[안드로이드(운영체제)|[[파일:안드로이드(운영체제) 로고.svg|height=16]]]] || || [[No Man's Sky]] || Hello Games || 2019년 4월 16일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[포탈 2|Portal 2]] [*B] || [[Valve Corporation]] || 2021년 2월 19일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] | [[macOS|[[파일:macOS 로고.svg|height=16]]]] | [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || [[퀘이크(게임)|Quake]] || [[id Software]] || 2016년 7월 20일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] | [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || [[퀘이크 2|Quake 2]] || [[id Software]] || 2018년 12월 20일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] | [[macOS|[[파일:macOS 로고.svg|height=16]]]] | [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || [[레이지 2|Rage 2]] || [[id Software]] || 2019년 5월 14일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[레인보우 식스 시즈|Rainbow Six: Siege]] || [[유비소프트|Ubisoft]] || 2020년 1월 28일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[RDR2|Red Dead Redemption 2]] || [[Rockstar Games]] || 2019년 11월 5일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[ROTTR|Rise of the Tomb Raider]] || Crystal Dynamics || 2018년 4월 19일 || [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || Strange Brigade || Rebellion Developments || 2018년 8월 28일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[토탈 워: 워해머 2|Total War: Warhammer II]] || [[Creative Assembly]] || 2018년 11월 20일 || [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || [[Wolfenstein 2: The New Colossus]] || [[id Software]] || 2017년 10월 27일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[Wolfenstein: Youngblood]] || [[id Software]] || 2019년 7월 25일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[월드워 Z(게임)|World War Z(게임)]] || Saber Interactive || 2019년 4월 16일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] || || [[X-Plane]] 11.50 || [[라미나 리서치]] || 2020년 9월 9일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] | [[macOS|[[파일:macOS 로고.svg|height=16]]]] | [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || [[X-Plane 12]] || [[라미나 리서치]] || 2022년 9월 6일 || [[Microsoft Windows|[[파일:Windows 아이콘.svg|height=16]]]] | [[macOS|[[파일:macOS 로고.svg|height=16]]]] | [[Linux|[[파일:Linux 로고.svg|height=16]]]] || || {{{#red 리니지2 레볼루션 }}} [* OpenGL에 비해서 어려운 vulkan의 개발 난이도로 인해 빈발하는 버그와 트러블슈팅에 어려움을 겪어, 결국 [[리니지2 레볼루션]]은 출시 반년도 안된 2018년 4월에 Vulkan을 포기하고 OpenGL으로 원상 복구하는 패치를 적용하였다.] || [[넷마블]] || 2017년 12월 14일 || [[안드로이드(운영체제)|[[파일:안드로이드(운영체제) 로고.svg|height=16]]]] || == 기타 == * Sascha Willems라는 개발자가 [[https://github.com/SaschaWillems/Vulkan|깃허브]]에 Vulkan으로 가능한 예제를 올려두고 있다. * [[https://vulkan-tutorial.com/|vulkan-tutorial.com]]이 공식 튜토리얼에 비해서 설명과 팁이 직관적이고 이해하기 쉽다. * [[AMD]]에서 가장 적극적으로 밀고 있다. Vulkan의 기초 기반이 AMD의 [[Mantle(API)|맨틀 API]]인 것도 있지만 무엇보다 [[OpenGL]]의 최적화가 바닥을 가는 AMD에서 그나마 엔비디아에 가장 근접한 성능을 낼 수 있기 때문이다. AMD에서 OpenGL은 최하 50~70%까지 속도가 저하되었으며 이 부분은 [[둠(2016)|둠 리부트]]에서 매우 두드러지게 드러났기에 AMD의 최대 약점으로 유명했다. * [[id Tech 엔진]]은 Vulkan을 지원하는 게임이 많았는데 마이크로소프트가 [[id 소프트웨어]]를 인수하면서 앞으로 어떻게 될지 불투명하다. 다이렉트 X 최적화가 우선 될 가능성이 크다. * 한글 명칭 단일화가 시급하다. 정식 발표된지 한참 지난 지금도 ‘[[https://ko.wikipedia.org/wiki/벌컨_%28API%29|벌컨]]’, ‘[[http://it.donga.com/24020|벌칸]]’, ‘[[http://news.mk.co.kr/newsRead.php?year=2016&no=360744|불칸]]’이 신문 기사나 웹문서에서 사용되고 있고, 심지어 개인 문서에서는 ‘불컨’도 보인다. 유튜브에서 영어권 발음을 들어보면 '벌컨'에 가까우며, 동일한 발음인 Vulcan의 /ˈvəl-kən/도 [[외래어표기법]]상 '벌컨'으로 표기되고 있다. [[분류:라이브러리]][[분류:게임 개발 도구]]