2016年12月29日木曜日

Intel HD Graphics のマシンで,Wine の DirectX をいいかんじにやってもらいたい(ArchLinux)

実は,数年前より,フリーのグラフィックスライブラリである Mesa において,DirectX 9 がネイティブに扱えるようになっています.と,言うのも,Mesa が導入した Gallium 3D というもののおかげです.

これは,OpenGL や DirectX のバックエンドとなる,3D 描画一般の標準的な API を提供するレイヤです.そこで,Wine についても,この Gallium を使って DirectX 9 をネイティブに描画する,Gallium nine patch というものが存在しています.
# pacman -S wine-staging-nine
このパッチが当たった wine では,winecfg の staging タブで Gallium Nine を有効化するだけで使えるようになります.しかし,Intel HD Graphics のマシンでは,
ilo: driver missing
と出てしまい,DirectX を使うアプリケーションの起動が失敗するようになってしまいます.
そこで,解決方法は,次の通りです.

  1. # pacman -S abs && abs /var/abs/ にパッケージビルドレシピをダウンロード
  2. $ cp -r /var/abs/extra/mesa $HOME/
  3. PKGBUILD を編集し,--with-gallium-drivers= へ,ilo を追加
  4. $ makepkg -i によりパッケージビルド,インストール
これで,Wine で DirectX をいいかんじにやってもらえるようになります.ただし,已然として不具合や欠けている機能の多いものなので,正しく動作しない可能性も高いです.その場合は,Gallium Nine を無効化して,諦めて従来の描画方法に頼りましょう.