AndroidのJelly Beanから導入されたProject Butterのトリプルバッファリングってなんなの?

タイトルが長いよね。かなり。
23
わかめ@毎日猫がいる @vvakame

For Butter or Worse: Smoothing Out Performance in Android UIs のセッション資料チェックしてから動画見る。http://t.co/YFl3K6D7

2012-07-16 10:32:56
わかめ@毎日猫がいる @vvakame

ダブルバッファリングだとCPUとGPU同時に動かせないの?トリプルバッファリングだと出来るの?そういう絵に見えるけど正しいかわからないな…。GPUががバッファ1に作業してる時にバッファ2用の計算を始めても問題ない気がするんだけど…。

2012-07-16 11:00:25
はまつまる @hamatz

@vvakame ダブルよりトリプルの方が凄そうだよなー、程度しかオレも分かってないから理解したら教えてね!\(^o^)/

2012-07-16 11:03:13
わかめ@毎日猫がいる @vvakame

トリプルバッファリングにすると、描画を1フレーム分キャッシュできる(=1フレーム遅延させる)事が出来るので、描画に16ms以上かかるようなスパイクが発生した場合にごまかしやすい(=ジャンクフレームの発生を抑制できる)という利点があるということ?

2012-07-16 11:22:33
わかめ@毎日猫がいる @vvakame

ダブルバッファリングだと2枚の描画サーフェスをフリップして書込を行うので、1フレームの描画に許される最大の猶予は16ms。。トリプルバッファリングにすると非表示のサーフェスが2枚存在することになるので、ある特定の1フレームを描画するのに許容される時間は最大32msになる。

2012-07-16 11:24:23
はまつまる @hamatz

@vvakame なんかそれっぽい説明を他の人からも聞いたから合ってそうだけど分かんない\(^o^)/

2012-07-16 11:24:31
わかめ@毎日猫がいる @vvakame

つまり、前+そのフレームが32ms以内であり、かつそのフレーム+後が32ms以内の両方を満たす場合、処理のスパイクが発生しても見た目上ジャンクフレームが発生しない!ぬるぬる!!という誤魔化しが効くようになる。

2012-07-16 11:25:20
わかめ@毎日猫がいる @vvakame

デメリットとして1F常に遅延が発生してしまう。格ゲーマー的に1F常に遅延とか言われるとスゴいデメリットに感じるけど、一般ユーザ的には全然許容範囲内なんだろう。JB以前はOpenGL使えばトリプルバッファリング可能だったのかな?(=JB以降もダブルバッファリングにできるのかな?)

2012-07-16 11:27:08
わかめ@毎日猫がいる @vvakame

格ゲーマーにとって1Fは大変重要で、お前16msが認識できるの??っていう話しじゃあないんだよ!!!違うよ!!全然違うよ!!! 1F遅延するということは、反応するまでの猶予が1F減るということだから、発生14F(相手が攻撃だしてから攻撃判定が発生するまで14フレームかかる)の場合

2012-07-16 11:31:49
zaki50 @zaki50

@vvakame 常に1F遅れるのと、たまに1F飛ばされるんだったら後者の方がプレイが楽ってこと?

2012-07-16 11:32:42
わかめ@毎日猫がいる @vvakame

1フレームの遅延があると13Fで反応しなきゃいけなくなるんだよ!そんなの無理だよ!! ちなみに、16Fくらいまでが割りと反応できる範囲。18Fくらいだと割りと余裕、14Fくらいになると体調のいい日は見える、13Fになるとかなり辛い。ぐらいの感じな気がする。適当だけど。

2012-07-16 11:32:59
わかめ@毎日猫がいる @vvakame

@zaki50 いや、ジャンクフレーム発生してる時点でクソゲーだと思う…。そこは飛ばすんじゃなくて処理落ちしていただきたい。

2012-07-16 11:33:49
zaki50 @zaki50

@vvakame ふむ、まぁでもAndroid だと裏でメール来るかもしれないしそもそも向いてない気がすru

2012-07-16 11:36:00
わかめ@毎日猫がいる @vvakame

@zaki50 そんなこといったらXBOXとかPS3とかだってプレイ中に ○○さんがログインしました って通知が来るよ

2012-07-16 11:36:31
しんすく(け) さん。 @snsk

わかりやすい例では「モリガンのダッシュ中段が最速で14F」らしい。まさしく、”体調のいい日は見える”。

2012-07-16 11:36:39
おっさん @kmt_t

@vvakame さん、vsync待ちの間も裏画面に書き込めますしね。

2012-07-16 11:39:17
zaki50 @zaki50

@vvakame あれって別プロセスで動いてるのかな。プロセスをスイッチしちゃうと強制スイッチまでは少なくとも 10msec かかるのでけっこう厳しいと思う(最近はもっと細かくしてるかもしれないけど)

2012-07-16 11:39:21
わかめ@毎日猫がいる @vvakame

@kmt_t 省略しないで全部説明しなおしてみてください!!!

2012-07-16 11:39:53
わかめ@毎日猫がいる @vvakame

@zaki50 多分、ゲーム以外の処理に常に1コア割り当ててるんだと思うな。

2012-07-16 11:40:23
わかめ@毎日猫がいる @vvakame

@zaki50 PSVitaの解説記事で、全12コア(コア数適当)で、ゲームプログラムからアクセス可能なのが11コア、みたいな説明があった気がする。

2012-07-16 11:41:17
inuchin @inuchin

@vvakame @zaki50 360はUI用に1スレッド割りあたってます

2012-07-16 11:41:22