回答:
ドライバー開発の数年の経験がある人として、私はこれを2つの別個の問題と考えています。
グラフィックスドライバーは非常に複雑な獣です。すべてを最適な方法で実装することは、単に不可能な作業です。実際に仕様に準拠するドライバーを作成するだけの十分なハードルであり、仕様はますます複雑になっています。そのため、仕様に基づいてドライバーを開発し、いくつかのテストアプリケーションを使用します(多くの場合、実際のソフトウェアはまだありません)。
ドライバーのボトルネックを明らかにする実際のゲーム(またはベンチマーク、またはビデオデコードなどのドライバーのその他のユースケース)が登場します。あなたが行って、物事をスムーズにし、そのユースケースをより速くする方法を見つけます。ゲームXYZは27.3%高速であることを簡単に報告できますが、実際には、ユースケース(動的テクスチャ更新など)を指定したすべてのアプリケーションが高速になります。
次に、アプリケーションごとに最適化されるrealい側面があります。ドライバーは、実行中のアプリケーション(またはコンパイル中のシェーダー)を検出し、一般的ではない処理を実行します。これに関する多くの公のケースがありました。たとえば、3dmark実行可能ファイルの名前を変更すると、突然結果が変わります。
この種の最適化はみんなの時間の無駄だと感じています。ベンチマークの場合は顧客に嘘をつき、開発者が実際に望んでいるものからシェーダーの動作を変えるかもしれません。シェーダーがテクスチャルックアップからシェーダー計算(上記のメーカーのハードウェアでのみ機能する)に変更された場合を思い出します。これは厳密ではありませんが、まったく同じ結果ではありません。最適化。
理想的な世界ではそうではありません。
ただし、これは理想的な世界ではないため、ゲーム固有のパフォーマンスの向上は、次の1つ以上から得られる可能性があります(完全なリストではありません)。
ゲームは、X、Y、Zの状態を設定して、操作A、B、Cを組み合わせて実行しています。ドライバーはこれに基づいて推測を行い、より最適なコードパスに物事をプッシュできます。
ゲームは、I、J、またはKの操作を実行しません。繰り返しますが、ドライバーは、これらの操作が実行されないと想定できることに基づいて、より最適なコードパスを選択できる場合があります。
ゲームはいくつかのことをやや(またはそれほどではない)準最適な方法で行います。ドライバーはこれを認識し、呼び出しをインターセプトし、それらをより適切に機能する同等のものに変換します(できれば!)。
ゲーム固有のトレードオフを行うことができます。たとえば、レンダリング状態のこの組み合わせが遅くなっても問題ありません。その組み合わせは速くなることがより重要なので、それに応じて最適化しましょう。
ここでは、これらのどれも実際には「必要」ではないことに注意することが重要です。ドライバーとゲームのAPI使用の両方が適合している限り、物事は機能するはずです。ただし、最大のパフォーマンスを引き出すための特殊なケースのトレードオフが適切と見なされる場合があります。それが良いことかどうかについてコメントすることは控えます。
ゲーム開発者はGPUの限界を押し広げます。ゲームとゲームエンジンを類推できます。ゲームの要件が高度であればあるほど、ゲームエンジンはそれをサポートするためにより高度なものを必要とします。これはグラフィックスカードでも同じです。
コンピューターゲームとGPUの製造業者は、良い仲間です。協力してGPUを改善し、それによってゲームを改善することが彼らの最大の関心事です。これは、ハードウェアの人との関係で働く古典的なソフトウェアの人です。ソフトウェアとハードウェア間のインターフェースの設計に関しては、両者に追加すべきことがあります。そのインターフェースがドライバーです。
これらの更新には、ソフトウェア担当者が見つけたバグ修正、またはソフトウェア担当者の要件をサポートするためにハードウェア担当者が行った改善が含まれる場合があります。この関係はどこにでもあります。
ドライバー更新リリースノートに特定のゲームを含めることの背後にある理由はおそらくPRです。カードメーカーXがゲームYと非常にうまく機能することを示すだけでなく、ゲームYが以前よりもさらに良くなることを示しています。
ゲーム開発チームがGPUドライバーのバグに遭遇し、ドライバーのバグが修正されなかった場合、ゲームが正しく動作しなくなる可能性があります。
また、マーケティングの仕掛けである場合もあります。たとえば、ATI / AMDは最近、新しいGPUにDirt 3のコピーをバンドルし、このゲームで3つのモニターを使用してEyefinityで遊ぶというアイデアを推進しました。
だからそこに少し共生しています。
GPUベンダー:やあ!この新機能!誰も使っていない!
ゲーム開発者:我々はそれを使用することができます!この機能を使用するGPUにゲームをバンドルしますか?
GPUベンダー:やった!