VirtualBoxでビデオが異常に遅い

VirtualBoxを以下の環境で使うとビデオが異常に遅くなるという問題に遭遇しました。

  • ホストWindows 10、ゲストUbuntu 18.04
  • ホスト:Ubuntu 18.04、ゲスト: Ubuntu 18.04

これらの環境でGuest Additionsをインストールし、3Dビデオアクセラレーションを有効にすると問題が発生します。

解決策は、3Dアクセラレーションを無効にすることです。3Dアクセラレーションを無効にすると、遅くなってしまいそうですが、有効の状態よりもはるかによく動作します。私の感覚ではGnomeデスクトップを使う分には十分な速度が出ています。

Guest Additionがインストールされていない状態では、3Dアクセラレーションに問題がない

これがとても面白いところです。これのせいで最初は、Guest Additionsをインストールせずに使えばいいかと考えていました。しかしながら、VirtualBoxをお使いの人はご存知と思いますが、Guest Additionsが入っていないとホストとゲスト間でクリップボードを共有できなかったり、不便な面が多々あります。

これはGuest Additionsをインストールする前の環境でglxinfoからOpenGL関連の項目だけを抜き出したものです。

$ glxinfo | grep OpenGL
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 6.0, 256 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.0.5
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 18.0.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:

こちらはGuest Additionsをインストールした後のものです。

$ glxinfo | grep OpenGL
OpenGL vendor string: Humper
OpenGL renderer string: Chromium
OpenGL version string: 2.1 Chromium 1.9
OpenGL shading language version string: 4.50 - Build 24.20.100.6286
OpenGL extensions:

どちらの環境も3Dアクセラレーションは有効にしてあります。

3Dアクセラレーションを無効にすると、Guest Additionsをインストールしていても快適になる

面白いですね。3Dアクセラレーションを無効にすると、Guest AdditionsをインストールしてもOpenGLの項目がGuest Additionsのインストール前と同じになり快適になります。

$ glxinfo | grep OpenGL
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 6.0, 256 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.0.5
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 18.0.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:

3Dアクセラレーションを有効にしないとむしろビデオ機能が使えないと思いこんでいたので驚きました。 想像ですが、Guest Additionsがインストールされていない状態では、3Dアクセラレーションを有効にしても使えていないのだと思います。なのでGuest Additionsをインストールしても3Dアクセラレーションを無効にすることで、Guest Additionsをインストールしていないために3Dアクセラレーションを使えなかった状態に似るのだと思います。

コメント

2015 - 2017 (c) 成瀬基樹