Vulkan

Khronos Vulkanがリリースされたようなのでメモ

More than 3 years have passed since last update.


Vulkan とは


  • 新しいGraphics API

  • OpenGLが登場から20年以上経ってAPI設計的にも古くなってきて時代にそぐわなくなってきたので作られた

ざっくりとしたGLとVulkanの違い

OpenGL
Vulkan

歴史
古い
新しい

スレッド
シングルスレッド前提
マルチスレッド前提

メモリ管理
ドライバが頑張る
プログラマが死ぬ気で頑張る

GPUとの仲良し度
ドライバが程よく仲介する
プログラマが死ぬ気でGPUとお友達になる

プログラミングの大変さ
そこそこ簡単
GPUのアーキテクチャをある程度理解しよう。話はそれからだ。


Windows PCでとりあえず実行してみる


ドライバを入れる


  • Windows10 64bit proで動作確認

  • Vulkan対応ドライバをインストールする

  • NVIDIAで普通にDLできる


    • https://developer.nvidia.com/vulkan-driver

    • Kepler世代以降が対応してる模様

    • GPU名は直接的に書かれていないが、Maxwell世代も普通に使える


      • Quadro M1000M(モバイルワークステーション向けのGPU)ではインストール可能





  • インストールするとOpenGLからもVulkan系の拡張が使えるようになる


    • GL_NV_draw_vulkan_image が使える




SDKを入れる


  • 最新はWindowsの場合 Vulkan 1.0.3


    • サイトの登録(無料)が必要

    • https://vulkan.lunarg.com

    • Vulkanサイトからリンクされているので、多分間違いないと思う

    • デフォルトだと C:\VulkanSDK にインストールされる




バンドルされているデモを実行する


  • SDKと一緒にvulkaninfoというアプリがインストールされるので、実行するとPCのVulkan API情報を表示できる


    • デバイス名とか拡張機能とか一覧が表示される




  • cube.exeとかtri.exeとかも

  • それっぽいサンプルが実行される模様






ドキュメントが読みたい


サンプルコードを見たい


Androidで実行したい