web-dev-qa-db-ja.com

VirtualBoxのVBoxVGA、VMSVGA、VBoxSVGAの違いは何ですか?

VirtualBox 6.0は、グラフィックスコントローラーと呼ばれる新しい設定を提供します。 4つのオプションから選択できます。

  • None
  • VBoxVGA
  • VMSVGA
  • VBoxSVGA

ユーザーマニュアルで私はこの情報を見つけました:

グラフィックコントローラ:ゲストVMが使用するグラフィックアダプタの種類を指定します。ゲストにゲスト追加機能をインストールする必要があることに注意してくださいVM VBoxSVGAまたはVMSVGAグラフィックスコントローラーを指定するには、次のオプションを使用できます。
– VBoxSVGA:LinuxまたはWindows 7以降を使用する新しいVMのデフォルトのグラフィックスコントローラー。このグラフィックスコントローラーは、従来のVBoxVGAオプションと比較して、パフォーマンスと3Dサポートを向上させます。
– VBoxVGA:このグラフィックスコントローラーをレガシーゲストOSに使用します。これは、Windows 7より前のWindowsバージョンのデフォルトのグラフィックスコントローラーです。
– VMSVGA:このグラフィックコントローラを使用して、VMware SVGAグラフィックデバイスをエミュレートします。
–なし:グラフィックアダプタータイプをエミュレートしません。

しかし、それでもそれらのどれがなぜ私が好むべきかについては説明していません。
いつ[なし]を選択する必要がありますか?
VMSVGAはVBoxSVGAより優れていますか?
VBoxVGAの何が問題になっていますか?

Elinuxモードとレガシーモードでvirtualbox 6.0.4を使用してarchlinux-2019.02.01-x86_64.isoの起動をテストしました。

┌──────────┬─────────────────────────────────┬─────────────┐
│ Adapter  │            EFI mode             │ Legacy mode │
├──────────┼─────────────────────────────────┼─────────────┤
│ VBoxVGA  │ ok                              │ ok          │
│ VMSVGA   │ ok in systemd-boot menu,        │ ok          │
│          │ then black screen for some time │             │
│          │ when booting, then becomes ok   │             │
│ VBoxSVGA │ black screen                    │ ok          │
└──────────┴─────────────────────────────────┴─────────────┘

また、VMSVGAとVBoxSVGAを渡すと、video = XRESxYRESパラメータが無視されることに気づきました。

+----------+----------------+--------------+
| Adapter  |    EFI mode    | Legacy mode  |
+----------+----------------+--------------+
| VBoxVGA  | works          | works        |
| VMSVGA   | doesn't work   | doesn't work |
| VBoxSVGA | could not test | doesn't work |
+----------+----------------+--------------+

ただし、fbsetを使用して起動した後でも、無視された解像度の一部を設定することは可能です。

156
Ashark

私がソースコードで見つけたものに基づいて:

VBoxVGA

これは、以前のバージョン(<6.0.0)と同じように、VirtualBox固有のグラフィックアダプターをエミュレートします。

  • これは、VirtualBoxの以前のバージョン(<6.0.0)用に作成されたイメージと、Windows 7より前のWindowsゲストのデフォルトです。
  • 何らかの形の3Dパススルーがありますが、私が正しく覚えていれば、ゲストにホストGPUへのすべてのコマンドをダンプさせるだけの安全でないアプローチを使用しています。
  • このアダプターは(まだ)メインラインLinuxカーネルでサポートされていないため、Linuxゲストで使用するにはゲスト追加をインストールする必要があります。
  • 64ビットWindows 10およびすべてのLinuxゲストでのみOpenGL 1.1をサポートします。

このオプションは、継続性を提供するためだけに存在する可能性があります。6.0にアップグレードすると、すべての古いVMでこのモードが自動的に選択されるため、予期しない動作の変化はありません。 以前はのアクセラレーションを失うことはありません。

VMSVGA

これは、「VMware SVGA 3D」アクセラレーション方式でVMware Workstationグラフィックアダプターをエミュレートします。

  • マニュアルに書かれていることとは逆に、これは現在Linuxゲストのデフォルトです。
  • 古い方法よりも優れたパフォーマンスとセキュリティを提供することになっています。
  • これは SVGAドライバー を使用するメインラインLinuxカーネルでサポートされています。
  • すべてのWindowsおよびLinuxゲストでOpenGL 2.1をサポートします。
  • また、VMwareゲストの追加が利用可能で、VirtualBoxゲストの追加は利用できなかった古いオペレーティングシステムをサポートするという利点もあります。 (これをWindows 9xでテストする予定です。これを行わないと、VESAグラフィックスでもVirtualBoxを使用できるようになるのは非常に面倒です)

VBoxSVGA

これにより、VMSVGA(新しい3Dアクセラレーション機能を含む)のように機能するハイブリッドデバイスが提供されますが、VBoxVGAと同じ古いPCI VID:PIDが報告されます。

  • これはWindowsゲストのデフォルトです。
  • このモードの利点は、既存のVM(以前はVBoxVGAを使用し、VirtualBoxビデオドライバーがインストールされていた)をアップグレードでき、プロセス中にグラフィックが失われないことです。「ゲストをアップグレードするまで、同じデバイスが表示されます。 3Dアクセラレーションを有効にするための追加の時間」。
  • また、VirtualBoxによってVMware SVGA emulatedであるため、このオプションを選択してVirtualBoxドライバーを使用すると、VMwareのドライバーよりも利点がある場合があります。 VirtualBox固有の追加機能を利用できるようにします。

"なし"

これは、明らかに、まったくエミュレートされたグラフィックではありません。 PCIパススルー経由で実際のGPUを提供する場合、またはシステムがneed GPUを絶対に提供しない場合にのみ使用してください。

ソース

127
user1686

しかし、彼らはdoを好むはずのタイミングを明確に伝えます。

– VBoxSVGA:LinuxまたはWindows 7以降を使用する新しいVMのデフォルトのグラフィックスコントローラー。このグラフィックスコントローラーは、従来のVBoxVGAオプションと比較して、パフォーマンスと3Dサポートを向上させます。

  • LinuxまたはWindows> 7
  • パフォーマンスと3Dサポートを改善

– VBoxVGA:このグラフィックスコントローラーをレガシーゲストOSに使用します。これは、Windows 7より前のWindowsバージョンのデフォルトのグラフィックスコントローラーです。

  • (推論による)パフォーマンスはわずかに低下しますが、古いOSとの互換性は向上します
  • 古いOSまたはWindows <7

– VMSVGA:このグラフィックコントローラを使用して、VMware SVGAグラフィックデバイスをエミュレートします。

  • VMWareデバイスをエミュレートします
  • VMが最初にVMWareでセットアップされ、ツールがインストールされている場合におそらく最適です
  • 他のものとの互換性を確保しようとしているため、VBoxカードほど高速ではない可能性があります。

–なし:グラフィックアダプタータイプをエミュレートしません。

  • あなたはグラフィックアダプターを望んでいない
    すなわちマシンをヘッドレスまたはSSHで実行し、グラフィックスをエミュレートするオーバーヘッドが必要ない場合。
  • レイヤーやエミュレーションが削除されるため、パフォーマンスが向上する可能性があります
25
Mokubai

パフォーマンスが1つの違いです。 glxgearsでテストすると、次のようになります。

  • VBoxVGA:60fps +/- 2(非常に低いですが、ウィンドウの移動はスムーズではないため、もっともらしいようです)
  • VMSVGA:1570fps +/- 50(再起動後、1300fps +/- 200 ?!)
  • VBoxSVGA:970fps +/- 30(このモードでは、Cinnamonはデスクトップ環境のグラフィックスがCPUで実行されていることを警告します)

ゲストの追加は、VBoxVGAの非推奨警告が最初に生成される前に、Debianリポジトリから既に更新されているため、最初に更新する必要なしに切り替えることができます。 dpkg -l | grep virtualboxを使用してバージョンを確認してください。

ゲストの追加はバージョン6.0.4、mesa-utils(glxgearsを含む)8.4.0-1+b1、ベースOSはCinnamonを搭載したDebian 10(Buster)です。

VMはPAE/NXが有効で、3Dアクセラレーションはあるが2Dアクセラレーションはなく、2つのCPUが割り当てられています(ホストにはそれぞれ2つのスレッドを持つ2つのコアがあります)、PVのデフォルト、VT-x/AMD-Vが有効、ネストされたページング。

6
Luc

waylandのみを使用してVBoxSVGAコンポジターでゲストの解像度を自動設定できました。 virtualbox-guest-additionsできませんでしたauto-resize guest display with wayland with VMSVGA

3
Necktwi

VBoxVGAは、Windowsゲストウィンドウのサイズ調整を記憶し、復元します。 VBoxSVGAはサイズ調整を記憶しません。

Windowsゲストを1240x712のディスプレイサイズで開く必要があります。 VBoxSVGAを使用する場合、ゲストは常に1024x768で開き、サイズを変更する必要があります。

VBoxVGAを使用すると、ディスプレイが保存/復元され、ホストはそれ以上調整せずに1240x712で開きます。

実際、「ウィンドウサイズの調整」設定を使用して表示を変更した場合、Windowsゲストをシャットダウンしてスナップショットを作成しても、新しい設定は保持されます。 VBoxSVGAは、実行中のサイズ変更を無視します。

0
HrdWorker