EMONE DDI レジストリ設定
[HKEY_LOCAL_MACHINE\Drivers\Display\Active\組み込み LCD]
-"Dll"="ddi.dll"
+"Dll"="nvddi.dll"
[HKEY_LOCAL_MACHINE\Software\NVIDIA Corporation\NVDDI]
+"ENHANCE_2D_PERF"=dword:1
+"USE_VIDEO_MEMORY_FOR_GPE"=dword:1
記述の意味は、- はレジストリ削除、 + はレジストリ追加、 -+ は変更ってことです(diff方式な感じ)。
これで、GDIのBitBltは確実に早くなります。TCPMPとかは、GDIを選択している場合(そんな人は居ないと思いますが)、確実に早くなるはずです。
ENHANCE_2D_PERF は、今のところ、性能向上は見られません。xda flame では 1 に設定されているので、まぁ、おまじないと言うことで(ぉ
[HKEY_LOCAL_MACHINE\Software\NVIDIA Corporation\GFSDK] の中にも関係するところはあるのかもしれませんが、取りあえず2D周りのチューニングはこれで一段落。ですな。
USE_VIDEO_MEMORY_FOR_GPE と Raw frame buffer の関係
ゲームなんかを作るとき、Windows API の ExtEscape() を使って、RAWフレームバッファアドレスを取得し、バッファ転送をするのが通例みたいですが、このオプションを有効にして、RAWフレームバッファにmemsetした結果…
な結果となりました。およよ。Rawフレームバッファの場合には、ハードウェアアクセラレーションの恩恵が受けられないみたいですな。
TCPMPとか、ビデオドライバにRAWフレームバッファを指定した時、どんな処理になっているのか解りませんが、いろいろ試してみると面白いかもしれません。何か面白い結果を発見した人は、コメントしてください。
よろしくです。