アプリケーションがハードウェアまたはソフトウェアベースのディスプレイレンダリングを使用しているかどうかを確認する方法は?

アプリケーションがハードウェアまたはソフトウェアベースのディスプレイレンダリングを使用しているかどうかを確認する方法は?

私のシステムには1つGPUの共有ビデオメモリがあります。私はFedora 27を使用しています。lspci出力のいくつかの重要な行は次のとおりです。

00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
0a:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun LE [Radeon HD 8550M / R5 M230]

私が何を学んだのか「システムがハードウェアアクセラレーションをサポートしているかどうかを確認するには?はい、ハードウェアベースのレンダリングを使用するかソフトウェアベースのレンダリングを使用するかを決定するアプリケーションです。

Google Chromeこれは、ハードウェアレンダリングをオフにするオプションがあるという事実によって裏付けられています。

ただし、すべてのアプリケーションでアプリケーションを実行するときに専用のグラフィックgnome 3で実行するオプションがあります。

だから、2つの質問があります

  1. 誰が決めるどのレンダリングが使用されますか(ランチャーGnome 3や別のアプリなど)?
  2. 確認方法実行中のアプリケーションはどのレンダリングを使用していますか?

これの説明は高く評価されます。

ベストアンサー1

ここには多くの問題があります。

まず、アプリケーションはさまざまなレンダリング方法をサポートできます。例えばOpenGLとソフトウェアレンダリング。アプリケーションがソフトウェアでレンダリングされる場合、ハードウェアアクセラレーションはまったく使用されません(または少なくとも例えばこれは通常、ソフトウェアレンダリングをサポートするアプリケーション(Chrome、以前の多くのゲーム)でソフトウェアレンダリングを選択したときに発生します。アプリケーションが OpenGL または同様のレンダリングを使用する場合、速度の向上は、使用可能なハードウェアと適切なドライバとライブラリをインストールするかどうかによって異なります。ほとんどの場合、特にGNOME 3を使用している場合は、ハードウェアアクセラレーションが必要になるため、ハードウェアアクセラレーションが得られます(したがって、GNOME 3が非クラシックモードで起動すると、どのようなハードウェアアクセラレーションも可能であることがわかります)。

第二に、2つのGPUを持つシステムでは、統合GPUまたは専用GPUを介して加速を提供できます。これは一般的にいいえアプリケーションによって制御されるがカーネルによって制御される場合VGAスイッチ。最新バージョンのGNOMEは、統合GPUまたは専用GPUを使用して明示的に実行されるアプリケーションをサポートしています。それ「専用グラフィックで起動」オプションによって決定されます(参照:このブログ投稿詳細はこちら)。 OpenGLアプリケーションを「一般的に」実行すると、ハードウェアアクセラレーションに統合(Intel)GPUを使用し、「専用グラフィックで実行」を使用して実行すると、ハードウェアアクセラレーションに専用(AMD)GPUを使用します。

実行中のアプリケーションがハードウェアレンダリングを使用していることを確認するには、少なくとも非排他ドライバを使用するときにアプリケーションのプロセスIDを見つけて実行します。

lsof -p ${pid} | grep /dev/dri

(適切な値に置き換えます${pid})出力行に次の内容が含まれている場合、/dev/dri/card0アプリケーションはハードウェアレンダリングで実行されています(そしてカード番号は使用しているGPUを示します。/dev/dri/by-path値をPCI識別子と一致させてください)。そうでなければそうではありません。

おすすめ記事