2012年3月18日日曜日

プチコンmkII 描画能力ベンチマーク

プチコンmkII ベンチマーク結果

60fpsを維持できる描画回数を求めるベンチマークを作成し、10回まわして平均とり、そこからコストを割り出してみた表を作ってみました。

> Function:命令名。
> 1~10:計測した60fpsを維持できる最大描画回数。
> Average:10回計測した結果の平均最大描画回数
> Cost:1フレーム中で何%処理を食うかを表す。数値が低い方が高速。(1.0=100%)

※注意点
※ Q,GCLSよりGFILLのほうが圧倒的に軽いならそっち使ってクリアーすればいいんじゃね?
※ A,申し訳有りませんが、基本的にランダムで描画しているのでGCLSとの対等な比較になっていません。画面全体でGFILLをするとGCLSとまったく同じ結果になります。

※注意点2
※スプライトを実際に使うときには毎回SPSETを呼ぶわけではないので、このベンチマークでは多少のオーバーヘッドが発生していると思われます。

※注意点3
※BG面の描画は負荷を増やす方法が無かったためベンチマークは作成できていないため結果は有りません。

○グラフィックス面
基本的にはどれも重いですね。
描画面積が増えれば増えるほど負荷も増えるのはどの命令にも共通して言えそうです。
GPUTCHRよりもGCOPYのほうが圧倒的に速く動くという点は注目すべきところですね。
GPUTCHRを使いたいときは、一度、バックバッファにプットしたあと、GCOPYでその画像を使うのが吉だと思います。
GCIRCLEはハイパー重い。この速度ではあまり使えそうに無いです。

GCLSは死ぬほど重いです。グラフィック面の画面全体書き換えをしようと思うと、GCLS+GPAGEだけで13%以上もってかれるので相当の覚悟が必要になりますね。

○スプライト面
スプライトは流石に速いですね。
速いとはいえ、マックスの100個は60fpsでは出せないみたいなので残念。
しかし、サイズを変更してもペナルティなしってのには驚きました。
出来る限り大きいサイズのスプライトを使った方がお得ということでしょうか。
ただ、スプライトはサイズを大きくして数を多く出そうとしても横方向表示限界がきてしまうようなので注意が必要です。

------

個人的にはグラフィック面もバリバリ使ってN88-BASICライクに組み立てていきたいと思ってしまうのですがこれだけ重いと躊躇してしまいますね。

やはりここは慣れないスプライトとBGを使って作るべきっぽいですね。

・・・何を作ろうってのが一番の問題なわけですが・・・。

-----

2012/5/2 追記 : プチコンが更新されてGCIRCLEが高速化したのでベンチを取り直しました。 → http://rrrqs.blogspot.jp/2012/05/blog-post.html