Stage3DでGPGPU

無理やりStage3DでGPGPUしてみました。
クリックで再計算。5秒くらいかかります。

2048*2048個のランダムなNumber(-512～512)に対して
1 / √(|cos(x * RAD)|)
という意味のない計算をさせています。(CPU側ではMath.abs()を使ってますが許してください)


結果を100個載せていて左がCPUでの結果、右がGPUです。
ピクセルカラーを読み取る際にアルファが1でないと正しく読み取れないため、GPUでは値の精度を24ビットに落としています。

prepare : シェーダープログラムやバッファなどを準備するのにかかった時間
texture : データを整形し、色としてテクスチャに書き込み、アップロードをするのにかかった時間
calc+draw : drawTrianglesで計算し、drawToBitmapDataするのにかかった時間
read : BDから色を読み取り、整形するのにかかった時間