2017/01/14

IntelオンダイGPUのLinuxドライバと利用可能グラフィックスAPI

2017年春以降にIntelのCPUへ移行することになったため、IntelのオンダイGPUをGNU/Linuxで使う場合のドライバなどに関して調べたものをまとめておく(内容については、本記事が書かれた時点では実際にGPUを使用して確認したものではなく、実際の移行後に一部内容を追加もしくは修正する可能性がある)。

移行予定のCPUは Pentium G4400 というSkylake世代の2コア2スレッドのもの(GPUは “Intel HD Graphics 510”)で既に入手済みだが、他のパーツが集まっていないため、具体的な移行時期は未定。次世代(Kaby Lake)の Pentium G4560が値下がりしてきたので、同一グレードのCPUの購入を考えている方(もしくはコストパフォーマンス重視の場合)にはこちらがおすすめできる。

  1. ドライバ
    1. i965
    2. ILO(廃止)
  2. 利用可能グラフィックスAPI
    1. Debian/Ubuntuのパッケージ

ドライバ

i965

  • Intelにより開発されている公式(かつ自由)なドライバ
  • Gallium3Dアーキテクチャに基づいたものではなく、Gallium Nineを使用することができない
  • ドライバが対応している世代(Ivy Bridge世代からとされる)のGPUでは低レベルグラフィックスAPIのVulkanを使用することができる

今後は外部グラフィックボードを付けることは(自分の用途的に)ないと思われるため、Gallium Nineに関する検証などは行えなくなってしまう。

ILO(廃止)

利用可能グラフィックスAPI

Skylake世代(Gen9=第9世代)の “Intel HD Graphics 510” はハードウェア的に

  • Direct3D 12
  • OpenGL 4.4
  • OpenGL ES 3.2
  • Vulkan 1.0

の機能を持っている。

一方でドライバ/ライブラリを提供するMesa側ではバージョン13.0.x時点で同世代のGPUについて(“i965” ドライバ使用時に)

  • OpenGL 4.3
  • OpenGL ES 3.2(ハードウェアと同じ)
  • Vulkan 1.0(上に同じ)

をサポートしている。

WineでVulkan対応のWindowsアプリケーションを使用したい場合はWine StagingのVulkanラッパーのパッチの当たったWineを使えばよい。ラッパーなので、Wine上のOpenGLアプリケーションのように、Windows上で動かすのと比べて速度低下はほとんどない。

Wine上のDirect3Dについては当面は従来通りOpenGLに基づいたwined3dの実装を使うしかない。将来的にはVulkan APIを用いたDirect3D実装が出てくる可能性が十分に考えられるので、それに期待。

Debian/Ubuntuのパッケージ

Vulkanのドライバは “mesa-vulkan-drivers” パッケージを選択することでインストールできる。

また、 “vulkan-utils” パッケージのvulkaninfoコマンドでVulkanに関する情報が出力できる。

OpenGL(ES含む)のパッケージについては従来と同様。

APIランタイム開発用
OpenGLlibgl1-mesa-glxlibgl1-mesa-dev
OpenGL ES 1libgles1-mesalibgles1-mesa-dev
OpenGL ES 2,3libgles2-mesalibgles2-mesa-dev
Vulkanlibvulkan1libvulkan-dev