GPUにゲーム固有のドライバーが必要なのはなぜですか?


31

PC GPUドライバーの更新では、最近リリースされた特定のゲームのパフォーマンスが改善されることがよくあります。なぜこのゲーム固有の更新が必要なのですか?ゲーム固有の変更は、ゲームコードとどのように相互作用しますか?

回答:


31

ドライバー開発の数年の経験がある人として、私はこれを2つの別個の問題と考えています。

グラフィックスドライバーは非常に複雑な獣です。すべてを最適な方法で実装することは、単に不可能な作業です。実際に仕様に準拠するドライバーを作成するだけの十分なハードルであり、仕様はますます複雑になっています。そのため、仕様に基づいてドライバーを開発し、いくつかのテストアプリケーションを使用します(多くの場合、実際のソフトウェアはまだありません)。

ドライバーのボトルネックを明らかにする実際のゲーム(またはベンチマーク、またはビデオデコードなどのドライバーのその他のユースケース)が登場します。あなたが行って、物事をスムーズにし、そのユースケースをより速くする方法を見つけます。ゲームXYZは27.3%高速であることを簡単に報告できますが、実際には、ユースケース(動的テクスチャ更新など)を指定したすべてのアプリケーションが高速になります。

次に、アプリケーションごとに最適化されるrealい側面があります。ドライバーは、実行中のアプリケーション(またはコンパイル中のシェーダー)を検出し、一般的ではない処理を実行します。これに関する多くの公のケースがありました。たとえば、3dmark実行可能ファイルの名前を変更すると、突然結果が変わります。

この種の最適化はみんなの時間の無駄だと感じています。ベンチマークの場合は顧客に嘘をつき、開発者が実際に望んでいるものからシェーダーの動作を変えるかもしれません。シェーダーがテクスチャルックアップからシェーダー計算(上記のメーカーのハードウェアでのみ機能する)に変更された場合を思い出します。これは厳密ではありませんが、まったく同じ結果ではありません。最適化。


2
+1、これは受け入れられた答えでなければなりません。正確な状況を内部の観点から説明するのに非常に役立ちます。あなたが言及したそのケースを知っていると思う-おそらく鏡面反射計算?;)
Maximus Minimus

14

理想的な世界ではそうではありません。

ただし、これは理想的な世界ではないため、ゲーム固有のパフォーマンスの向上は、次の1つ以上から得られる可能性があります(完全なリストではありません)。

  • ゲームは、X、Y、Zの状態を設定して、操作A、B、Cを組み合わせて実行しています。ドライバーはこれに基づいて推測を行い、より最適なコードパスに物事をプッシュできます。

  • ゲームは、I、J、またはKの操作を実行しません。繰り返しますが、ドライバーは、これらの操作が実行されないと想定できることに基づいて、より最適なコードパスを選択できる場合があります。

  • ゲームはいくつかのことをやや(またはそれほどではない)準最適な方法で行います。ドライバーはこれを認識し、呼び出しをインターセプトし、それらをより適切に機能する同等のものに変換します(できれば!)。

  • ゲーム固有のトレードオフを行うことができます。たとえば、レンダリング状態のこの組み合わせが遅くなっても問題ありません。その組み合わせは速くなることがより重要なので、それに応じて最適化しましょう。

ここでは、これらのどれも実際には「必要」ではないことに注意することが重要です。ドライバーとゲームのAPI使用の両方が適合している限り、物事は機能するはずです。ただし、最大のパフォーマンスを引き出すための特殊なケースのトレードオフが適切と見なされる場合があります。それが良いことかどうかについてコメントすることは控えます。


1
GPUドライバーライターは、人気のあるゲームのシェーダーを時々覗き、ハードウェアに最適化された独自のバージョンを書くこともあると言われています。
ネイサンリード

9
@NathanReedむかしむかし、それはそれよりずっと遠くに行きました。異方性フィルタリングとテクスチャ圧縮が高価だった時代に戻って、GPU企業は最終製品のリアルタイムでの実行時に最終製品の視覚品質を低下させ、安価なモニターで誰にも警告せずに高速化するために邪魔にならなかったゲームがずっと悪く見えたこと。さらに、PrintScreenの呼び出しをインターセプトし、画像の完全な品質のレンダリングを行います。
ノーガード

8
GPUメーカーも、人気のベンチマークをごまかしています。私は、同じシステムで同じ設定で同じベンチマークを2回実行したPCマガジンの比較ベンチマークを覚えています。しかし、ドライバーがそれを認識しないように、一度ベンチマークの実行可能ファイルの名前を変更しました。奇妙なことに、名前が変更された実行可能ファイルのスコアは、ATIカードとnvidiaカードの両方で著しく悪化しました。
フィリップ

8

ゲーム開発者はGPUの限界を押し広げます。ゲームとゲームエンジンを類推できます。ゲームの要件が高度であればあるほど、ゲームエンジンはそれをサポートするためにより高度なものを必要とします。これはグラフィックスカードでも同じです。

コンピューターゲームとGPUの製造業者は、良い仲間です。協力してGPUを改善し、それによってゲームを改善することが彼らの最大の関心事です。これは、ハードウェアの人との関係で働く古典的なソフトウェアの人です。ソフトウェアとハ​​ードウェア間のインターフェースの設計に関しては、両者に追加すべきことがあります。そのインターフェースがドライバーです。

これらの更新には、ソフトウェア担当者が見つけたバグ修正、またはソフトウェア担当者の要件をサポートするためにハードウェア担当者が行った改善が含まれる場合があります。この関係はどこにでもあります。

ドライバー更新リリースノートに特定のゲームを含めることの背後にある理由はおそらくPRです。カードメーカーXがゲームYと非常にうまく機能することを示すだけでなく、ゲームYが以前よりもさらに良くなることを示しています。


6

ゲーム開発チームがGPUドライバーのバグに遭遇し、ドライバーのバグが修正されなかった場合、ゲームが正しく動作なくなる可能性があります。

また、マーケティングの仕掛けである場合もあります。たとえば、ATI / AMDは最近、新しいGPUにDirt 3のコピーをバンドルし、このゲームで3つのモニターを使用してEyefinityで遊ぶというアイデアを推進しました。

だからそこに少し共生しています。

GPUベンダー:やあ!この新機能!誰も使っていない!

ゲーム開発者:我々はそれを使用することができます!この機能を使用するGPUにゲームをバンドルしますか?

GPUベンダー:やった!


1

真実は、GPUはゲーム固有のドライバーを必要としないということです

ゲーム固有のドライバーは、GPUメーカーが他のGPUメーカーより優位に立つためのマーケティング努力の一環です。それらの特定のゲーム用にドライバーをカスタム調整することにより、人気のあるゲームでより良いパフォーマンスを示すことができれば、それらのゲームのより多くのプレイヤーを引き付けます(理論上)。

これでほとんどすべてです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.