toge's diary

コンピュータ関連の趣味をつらつらと。

やっぱり(場合によっては)PBO最速!

ぬぬぬ、比較したものが間違っていたか。
どうやらPBOにとって都合の悪いデータだったみたいだ。

Running Simple Upload Tests (BasicUploadTest)
===========================
Upload Format  =GL_RGBA
Upload type    =GL_UNSIGNED_BYTE
Mbs/s          =486

Upload Format  =GL_BGRA
Upload type    =GL_UNSIGNED_BYTE
Mbs/s          =720

Upload Format  =GL_RGBA
Upload type    =GL_UNSIGNED_INT_8_8_8_8
Mbs/s          =563.184

Upload Format  =GL_BGRA
Upload type    =GL_UNSIGNED_INT_8_8_8_8
Mbs/s          =508

Running Single PBO Upload Tests - Map (SinglePboUploadTestMap)
===========================
Upload Format  =GL_RGBA
Upload type    =GL_UNSIGNED_BYTE
Mbs/s          =252

Upload Format  =GL_BGRA
Upload type    =GL_UNSIGNED_BYTE
Mbs/s          =914

Upload Format  =GL_RGBA
Upload type    =GL_UNSIGNED_INT_8_8_8_8
Mbs/s          =262

Upload Format  =GL_BGRA
Upload type    =GL_UNSIGNED_INT_8_8_8_8
Mbs/s          =252 

ということで以下教訓。

  • GL_RGBAじゃなくてGL_BGRA使え(GPUってリトルエンディアンなのかな?)
  • GL_RGBAを使わざる得ないならGL_UNSIGNED_BYTEでなくてGL_UNSIGNED_INT_8_8_8_8を使え
  • GL_BGRAを使うならPBO使え

しかしやっぱり他のPBOが遅いのが理由不明だなぁ。