Vulkan

Android는 고성능 3D 그래픽을 위한 오버헤드가 낮은 크로스 플랫폼 API인 Vulkan을 지원합니다. OpenGL ES(GLES)와 마찬가지로 Vulkan은 앱에서 고품질의 실시간 그래픽을 만들 수 있는 도구를 제공합니다. Vulkan을 사용하면 CPU 오버헤드를 줄이고 SPIR-V 바이너리 중간 언어를 지원하는 등의 이점을 얻을 수 있습니다.

GPU IHV(GPU independent hardware vendors)와 같은 SoCs(system on chip vendor)는 Android용 Vulkan 드라이버를 작성할 수 있습니다. OEM은 구체적인 기기에 이러한 드라이버를 통합해야 합니다. Vulkan 드라이버가 시스템과 상호작용하는 방식, GPU 관련 도구의 설치 방법과 Android 관련 요구사항은 Vulkan 구현을 참고하세요.

애플리케이션 개발자는 Vulkan을 사용하여 GPU에서 명령어를 실행하고 오버헤드를 크게 줄여주는 앱을 만듭니다. 또한 Vulkan은 EGL 및 GLES보다 최신인 그래픽 하드웨어에서 볼 수 있는 기능에 관한 좀 더 직접적인 매핑을 제공하여 드라이버 버그 발생 확률을 최소화하고 개발자의 테스트 시간을 단축합니다.

Vulkan에 관한 일반 정보는 Vulkan 개요 또는 리소스 목록을 참고하세요.

Vulkan 구성요소

Vulkan은 다음과 같은 구성요소를 지원합니다.

Vulkan 구성요소

그림 1. Vulkan 구성요소

구성요소 이름 제공업체 설명
Vulkan 유효성 검사 계층 Android(NDK) Vulkan 앱 개발 도중 앱의 Vulkan API 사용에 따른 오류를 찾기 위해 사용되는 라이브러리입니다. API 사용 오류를 찾아낸 후에는 이러한 라이브러리를 제거해야 합니다.
Vulkan 런타임 Android 네이티브 Vulkan API를 제공하는 네이티브 라이브러리, libvulkan.so입니다.

Vulkan 런타임의 기능 대부분은 GPU 공급업체가 제공하는 드라이브로 구현됩니다. Vulkan 런타임은 드라이버를 래핑하고 API 가로채기 기능(디버깅 및 기타 개발자 도구용)을 제공하고 드라이버와 플랫폼 종속 항목 간의 상호작용을 관리합니다.
Vulkan 드라이버 SoC 커널 그래픽 드라이버를 사용하여 Vulkan API를 하드웨어별 GPU 명령어 및 상호작용에 매핑합니다.

수정된 구성요소

BufferQueue 및 Gralloc이 Vulkan을 지원:

  • BufferQueue. BufferQueue의 추가적인 enum 값 및 메서드와 ANativeWindow 인터페이스는 ANativeWindow를 통해 Vulkan 런타임을 BufferQueue에 연결할 수 있게 해줍니다.
  • Gralloc. 버퍼를 할당하지 않고 지정된 형식을 특정 생산자/소비자 조합에 사용할 수 있는지를 Gralloc이 탐색할 수 있게 해주는 선택적 인터페이스입니다.

이러한 구성요소에 관한 자세한 내용은 BufferQueue 및 gralloc을 참고하세요. ANativeWindow에 관한 자세한 내용은 EGLSurfaces 및 OpenGL ES를 참고하세요.

리소스

Vulkan에 관한 자세한 내용은 다음 리소스를 참고하세요.

  • platform/frameworks/native/vulkanVulkan 로더(libvulkan.so). Android의 Vulkan 로더는 물론 플랫폼 개발자에게 유용한 Vulkan 관련 도구까지 포함되어 있습니다.
  • Vulkan 구현. 이러한 드라이버를 구체적인 기기에 통합하는 Android 및 OEM용 Vulkan 드라이버를 작성하는 GPU IHV를 대상으로 합니다. Vulkan 드라이버가 시스템과 상호작용하는 방식, GPU 관련 도구를 설치하는 방법과 Android 관련 구현 요구사항에 관해 설명합니다.
  • Vulkan Graphics API 가이드. Android 앱에서 처음 Vulkan을 사용하는 방법, Android의 Vulkan 설계 가이드라인 플랫폼, Vulkan의 셰이더 컴파일러 사용, 그리고 유효성 검사 계층을 사용하여 Vulkan을 사용하는 앱의 안정성을 보장하는 방법에 관한 정보가 포함되어 있습니다.
  • Vulkan 뉴스. 이벤트, 패치, 가이드 및 Vulkan 관련 뉴스 기사에 관해 다룹니다.