Skip to content

Latest commit

 

History

History
85 lines (47 loc) · 7.09 KB

checking_for_support.adoc

File metadata and controls

85 lines (47 loc) · 7.09 KB

Checking For Vulkan Support

Vulkan은 Vulkan Loader 와 Vulkan 드라이버( Vulkan Implementation 이라고도 함) 둘 다 필요합니다. 드라이버는 Vulkan API 호출을 Vulkan의 유효한 구현으로 변환하는 역할을 담당합니다. 가장 일반적인 경우는 GPU 하드웨어 공급업체가 실제 GPU에서 Vulkan을 실행하는 데 사용되는 드라이버를 출시하는 것입니다. 성능에 미치는 영향이 매우 두드러지긴 하지만 전체 Vulkan 소프트웨어 구현을 기반으로 하는 것도 가능하다는 점에 유의해야 합니다.

Vulkan 지원 여부를 확인할 때는 플랫폼 지원장치 지원 의 차이를 구분하는 것이 중요합니다.

플랫폼 지원(Platform Support)

가장 먼저 확인해야할 것은 platform 이 Vulkan을 지원하는지 여부입니다. 각 플랫폼은 각디 다른 메커니즘을 사용하여 Vulkan Loader 가 구현되는 방식을 관리합니다. 그런 다음 로더는 Vulkan 드라이버가 올바르게 노출되는지 여부를 결정합니다.

Android

Vulkan에 대한 정보를 얻는 간단한 방법은 Sascha Willms씨가 개발한 Vulkan Hardware Capability Viewer 앱을 실행하는 것입니다. 이 앱은 Vulkan이 지원 여부뿐만 아니라 디바이스가 제공하는 모든 기능을 보여줍니다.

BSD Unix

Vulkan SDK 를 가져옵니다. ./vulkansdk.sh 명령어를 사용하여 Vulkan SDK를 빌드하고 vulkaninfo 실행 파일을 실행하여 Vulkan 지원 여부와 기기에서 제공하는 모든 기능을 쉽게 확인할 수 있습니다.

iOS

Vulkan에 대한 정보를 얻는 간단한 방법은 LunarG에서 제공하는 Vulkan Hardware Capability Viewer 의 iOS 버전을 실행하는 것입니다. 이 앱은 Vulkan이 지원 여부뿐만 아니라 기기에서 제공하는 모든 기능을 보여줍니다.

Linux

Vulkan SDK 를 다운로드하고 vulkaninfo 실행 파일을 실행하면 Vulkan 지원 여부 및 기기에서 제공하는 모든 기능을 쉽게 확인할 수 있습니다.

MacOS

Vulkan SDK 다운로드 하고 vulkaninfo 실행 파일을 실행하면 Vulkan 지원 여부 및 기기에서 제공하는 모든 기능을 쉽게 확인할 수 있습니다.

Windows

Vulkan SDK 다운로드 하고 vulkaninfo.exe 실행 파일을 실행하면 Vulkan 지원 여부 및 기기에서 제공하는 모든 기능을 쉽게 확인할 수 있습니다.

장치 지원(Device Support)

플랫폼이 Vulkan을 지원한다고 해서 장치가 지원되는 것은 아닙니다. 장치 지원을 받으려면 Vulkan을 완벽하게 구현한 Vulkan 드라이버를 사용할 수 있는지 확인해야 합니다. Vulkan 드라이버에는 몇 가지 변형이 있습니다.

하드웨어 구현(Hardware Implementation)

물리적인 GPU 하드웨어를 대상으로 하는 드라이버는 Vulkan 구현의 가장 일반적인 경우입니다. 특정 GPU가 Vulkan을 실행할 수 있는 물리적 기능을 갖추고 있더라도 이를 제어하기 위해서는 드라이버가 필요하다는 점을 이해하는 것이 중요합니다. 드라이버는 가능한 한 가장 효율적인 방법으로 하드웨어에 매핑된 Vulkan 호출을 가져오는 역할을 합니다.

드라이버는 다른 소프트웨어와 마찬가지로 업데이트되므로 동일한 물리적 장치 및 플랫폼에 대한 다양한 드라이버가 존재할 수 있습니다. 여기 Sascha Willems씨에 의해 개발 관리되고 있는 Vulkan Database 는 Vulkan 구현 세부 정보가 가장 많이 기록되어 있는 곳입니다.

Note

물리적 장치나 플랫폼이 Vulkan 데이터베이스에 없다고 해서 존재하지 않는 것은 아닙니다.

Null Driver

“널 드라이버(null driver)” 란 Vulkan API 호출을 접수하지만 아무 작업도 수행하지 않는 드라이버를 말합니다. 이는 드라이버를 실용적인 구현 없이 드라이버와의 상호작용을 테스트할 때 흔히 사용됩니다. 새로운 기능을 위한 CTS tests 작성 및 testing the Validation Layers 등 많은 사용 사례는 널 드라이버의 개념에 의존하고 있습니다.

크로노스 그룹은 다양한 플랫폼에서 작동하는 널 드라이버 Mock ICD 하나를 제공합니다.

소프트웨어 구현(Software Implementation)

CPU에서만 실행되는 Vulkan 구현을 만들 수 있습니다. 이는 널 드라이버와 달리 하드웨어와 독립적이며 유효한 결과를 출력하는 Vulkan을 테스트해야 하는 경우에 유용합니다.

SwiftShader 는 CPU 기반 구현의 예입니다.

Vulkan을 확인하는 방법

VIA (Vulkan 설치 분석기, Vulkan Installation Analyzer)

Vulkan SDK 에는 사용하고 있는 컴퓨터에 Vulkan이 설치되어 있는지 확인하는 유틸리티가 포함되어 있습니다. Windows, Linux 및 macOS를 지원하고 있으며 VIA는 다음과 같은 것을 할 수 있습니다:

  • 시스템에서 Vulkan 컴포넌트의 상태 확인

  • Vulkan Loader 및 드라이버가가 올바르게 설치되었는지 확인

  • 버그를 제출할 때 첨부 파일로 사용할 수 있는 형태인지 시스템 상태 파악

자세한 내용은 SDK documentation on VIA 를 참조하세요.

Hello Create Instance

크로스 플랫폼에서 Vulkan 지원 여부를 확인하는 간단한 방법은 간단한 “Hello World” Vulkan 애플리케이션을 만드는 것입니다. vkCreateInstance 함수는 Vulkan 인스턴스를 만들기 위해 사용되며 유효한 Vulkan 애플리케이션을 작성하는 가장 빠른 방법이기도 합니다.

Vulkan SDK는 사용할 수 있는 아주 간단한 vkCreateInstance 예제 01-init_instance.cpp 를 제공합니다.