やっぱり(場合によっては)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が遅いのが理由不明だなぁ。