あるいはMax frames to render aheadの意味について。
GeForceでCoolBits2を有効にすると、クラシックコントロールパネルにDirect3Dの追加設定が現れ、そこに「先読みレンダする最大フレーム数」という項目が現れる。英語版だと"Max frames to render ahead"になる。最新のForceWareでも現れるのかどうかは知らないが。
玄人志向のGeForce7900GSカードを差したついでに、一通りの設定を見直すことにしてみたのだが、ここがやっぱり気になる。だが、意味が分からない。「0がいい」「いや2くらいが良かった」とか聞いても何の参考にもならん。そもそも何の設定なのかを教えろ。
ということで軽く検索するが、日本語で調べても10件目までにヒットしてくれないので諦めて、英語で調べたら一件目でちゃんと解説されてて嫌になる。
つまりは、CPUによるプリレンダリングを何フレームまでやらせちゃうか、っつー話らしい。GPUがレンダリング終わらなくても、CPUには先に仕事しといてもらう、って奴だろうか。
これは、かなりGPUの負荷が高い状況を想定していると思われるが、昨今のオンラインゲームなんかはCPUの方が足引っ張り率が高そうな気が。
まあ、最適値がどうなるかは、CPUとGPUの能力バランスによるってことだよな。CPUの足引っ張り度が高いなら、低く設定した方がいいはずだ。特に0にすると露骨に変わってもおかしくない。
が、CPU負荷が高いのか、それともGPU負荷が高いのかなんてのは、アプリによって激しく変わる訳だ。普通に「パフォーマンスと品質の設定」に入れておいてくれれば、ゲームによって調整も出来るのに、何でこんな変なところに隠しておくんだろう。まあ、自己責任でやって欲しい部分なのかもなあ(笑)。
で、うちでは「GPU負荷の方が高いぜ」などという凶悪なゲームを走らせることが全く無いので、0に設定した。ゆめりあベンチの数値とかは当然悪化すると思われるが、どうでもいいです。
それじゃ早速、何か適当なゲームを起動して…。
えーと。
普段やってるゲームで重いゲームが無いんですが。
FEZも完全にやめちゃったしなあ。エンチャを導入した人に10年分くらいの怨念を。バランシングに関わるなー、バランシングに関わるなー。
実験用に再インストールしようにも、nProのことを思うと二の足を踏むし。
まあ、相変わらずマビメインだから、変わるとしたらデザドラかな…。
ダンバ銀行前は全然違いが分からなかった。どっちも15fps前後。しょぼいな(笑)。CPU交換となると、M/Bとメモリも交換だから辛いんだよな。
デザドラはすぐに確認出来るもんでもないから、しばらくこの設定にしとくか。理屈では俺マシンには最適だと思うし。Athlon64 3500+にGeForce 7900GSじゃアンバランスだよなあ。購入時期が違いすぎるから仕方ないが。
ちなみに玄人志向のカードだが、今のところ普通にいいカードなんじゃないかという気がしている。電解コンの存在感はELSAの7600GTカードより多めに見えなくもないが、その辺は素人なんでよく分からん。
玄人志向は何となく嫌だったのだが、その理由ってのが、メルコ製のUMBローダがどうもバグるんで解析したら信じられないほどの超ウンココードだった、という物なので(笑)、さすがにドッグイヤー的に考えて時効にすべき案件であろう。うむ。
…と、ここまででこのエントリは一段落と思ってたが、マルチコアになるとまた変わってくるのだろうか。でもアプリのマルチスレッド化の具合にもよるよなあ…。
むーん。やっぱアプリ別に設定させて欲しいなあ。
追記:
追記は極力しない方針だけど、久々にRefererログを取ったら、ここが0を推奨する記事という誤解があったようなので、補足。
- 明らかに利用状況次第なので推奨値は無い
- うちでは0がいいけど恐らくレアケース
- GPUがフルロードになりがちなら0は非推奨
- CPUがフルロードになりがちなら0が有力
- たぶんね
書いた時点では、読めばこれらのことは分かりそうと思ってたけど、久々に自分で読み返したら本人ですら少し理解に時間が掛かったので。詰め込んだコードみたいに。コードも詰め込む癖あるからなあ(笑)。
あと、最後のとこでマルチコアに触れてるけど、古い記事だからMT対応の進展がまだ不明だったので曖昧なまま終わってるんだよな。結局アムダールの法則には勝てないのかな、という趨勢なので、0はどんどん非推奨になりそう。1は普通に考えて一番無難。昨今のCPU使用率の余りっぷりから察するに、2や3くらいあってもいいかも。完全にアプリ次第だが。うちはシングルコアの古いCPUに少しだけ新しいビデオカードという構成でMMOばかりやるからCPU100%が当たり前なせいか、未だに0が有効だけど。
って補足を書いてると思うけど、同じ内容の繰り返しになってるのが気になるんだよな、プログラマ的に(笑)。まあでも、詰め込みすぎたコードにコメント入れるようなもんと思えばいいか。
再度の追記:
全く別方面の切り口から、実は0が最適らしいという説が。
真偽は不明なのだが、遅延フレームとしてそのまま響く、という説があるらしい。本当なら0以外はゲーマー的には論外だよな…。でもデマかもしれんし。情報欲しいなあ。さすがに1/60秒の差を体感で比べて断言出来るかは自信が無いし。