2

glxgears.c のデモ コードを mesa が提供する libGL.so とリンクしてコンパイルしました。

このコンパイルは、仮想ボックスの ubuntu ゲスト用で、ホストは Windows 7 です。

ubuntu でデモ コードを実行しています。実行時に、仮想ボックス ゲストの追加によって提供される VBoxOGL.so にアクセスし、ホストの 3D ハードウェア アクセラレーションを使用しています。

VBoxOGL.so の名前を別の名前に変更すると、デモ コードはハードウェア アクセラレーションを使用せず、ソフトウェア レンダリングを使用します。

私のデモ コードが VBoxOGL.so にどのように接続されているか教えてください。

democode->libGL.so->how からの流れが必要ですか? ->VBoxOGL.so->h/w. これら 2 つのライブラリはコンパイル中にリンクされないため、libGL 呼び出しが VBoxOGL.so にどのように送信されるかはわかりません。

フローと、どのライブラリまたはモジュールがこのリダイレクトを行っているかを理解するのを手伝ってください。

4

1 に答える 1

1

Virtual Boxの内部はわかりませんが、libGL.soではなく.soをLD_PRELOADするか、Mesa状態トラッカーとして実装されて他のDRI2と同じようにMesaの裏側で動作するのではないかと思います。ベースのGPUドライバーはそうします。

于 2012-11-29T12:08:23.557 に答える