すべてを思い出してください:プログラムによるグラフィックス出力
個人用プラットフォームのグラフィックサブシステムの開発の初期段階で、ISAバスの統治期間中、画面上のオブジェクトの「描画」はプログラムで実行されました。 原理は簡単です。ビデオメモリは中央処理装置のアドレス空間に配置され、グラフィックオブジェクトの出力は指定されたアドレスで指定された情報を記録するために削減されます。 少し簡略化すると、表示された各ポイントの座標は、記録が行われたアドレスと、記録されたデータの色によって決定されると言えます。 このモデルの利点は、ソフトウェアとハードウェアの実装が単純であることであり、欠点は生産性が低いことです。
コンピューターからコンピューター:ハードウェアグラフィックス出力
ご存知のように、最新のビデオアダプターは「コンピューター間」です。 これに含まれるグラフィックプロセッサは、バスマスタモードでプラットフォームのRAMと対話し、ビデオアダプタのローカルメモリと対話する独自のコマンドストリームを実行できます。 この場合、中央処理装置の主なタスクは、GPUのタスクのメインメモリブロックでの準備に削減されます。
典型的な現代のパーソナルコンピューティングシステムでは、ビデオコントローラーチップとビデオメモリを接続するバスは、ビット深度とクロック周波数によって特徴付けられ、メインボードRAMバスと同じパラメーターを大幅に超えています。 また、中央処理装置とは異なり、GPUはビデオメモリにアクセスするときに中継リンク(AGPまたはPCI Expressバスの形式)を使用しません。 その結果、明らかな利点は高いパフォーマンスです。 しかし、欠点もあります。 それについては以下。
解決された問題と解決されていない問題
業界では、ビデオアクセラレータレジスタへの低レベルアクセス用の単一の統合ソフトウェアモデルを開発していませんでした。 統合は、ドライバソフトウェアインターフェイスのレベルでのみ実装されます。 最新のオペレーティングシステムの環境で実行するアプリケーションの開発者は、製造元がこのタスクを引き受けるドライバーを提供しているため、ビデオコントローラーのレジスタとの低レベルの相互作用を心配する必要はありません。 問題は、そのようなインフラストラクチャがUEFI環境に提供されていないことです。
間違いなく、16ビットリアルモードから64ビットプロテクトモードへの移行や、ソフトウェアの代わりにUEFIドライバーモデルを使用するなどの要因がレガシーBIOSを中断し、このようなインフラストラクチャを作成するための基盤を築きます。 しかし、今日は基盤がありますが、インフラストラクチャはありません。
妥協が可能です
多くの最新技術により、中央処理装置を使用したグラフィックスの実装に「第二の生命を吹き込む」ことが可能になりました。 これは主に、128および256ビットのSSE命令の使用と、複数のプロセッサ書き込みサイクルの結果をPCI Expressバス経由で送信するための最大4キロバイトのサイズのパケットに結合できるWrite Combiningテクノロジに関するものです。 このアプローチにより、UEFI Graphics Output Protocolを「grandfather」視覚化方法と組み合わせて使用するフレームワークで、2Dグラフィックの許容可能な結果を得ることができる場合があります。

図1 。 Tetris64ゲームの起動中にUEFI環境から取得したスクリーンショット
ただし、この方法では、ハードウェアGPUを使用して実装された機能とパフォーマンスを実現できないことは明らかです。
まとめ
映画品質の3Dグラフィックスを実装するUEFIアプリケーションを作成することは不可能であることを認めなければなりません。 なんで? UEFIで3Dをサポートする統一されたプロトコルや市販のドライバーはありません。 UEFIアプリケーションからビデオアクセラレータのハードウェアリソースに直接アクセスしてこの問題を解決することも非現実的です。機器の統合がないため、開発者はグラフィックプロセッサのすべてのモデルのドライバーを作成する必要があります。