PowerVR SGX ハードウェアを搭載した ARM デバイスのテクスチャにオフスクリーン レンダリングを実装する必要があります。
すべてが完了しました (ピクセルバッファと OpenGL ES 2.0 API が使用されました)。未解決の唯一の問題は、機能が非常に遅い glReadPixels
ことです。
私は OpenGL ES の専門家ではないので、コミュニティに質問しています: テクスチャをユーザー空間メモリに直接レンダリングすることは可能ですか? または、テクスチャのメモリ領域のハードウェア アドレスを取得する方法があるのでしょうか? 他の手法 (EGL 拡張機能) はありますか?
ユニバーサル ソリューションは必要ありません。PowerVR ハードウェア用に機能するだけです。
更新:「遅い関数」に関するもう少しの情報glReadPixels
。512x512 RGB テクスチャ データを CPU のメモリにコピーします。
glReadPixels(0, 0, WIDTH, HEIGHT, GL_RGBA, GL_UNSIGNED_BYTE, &arr)
210ミリ秒かかり、glReadPixels(0, 0, WIDTH, HEIGHT, GL_BGRA, GL_UNSIGNED_BYTE, &arr)
24 ミリ秒かかります (GL_BGRA
glReadPixels の標準ではなく、PoverVR 拡張機能です)。memcpy(&arr, &arr2, WIDTH * HEIGHT * 4)
5ミリ秒かかります
テクスチャが大きいほど、差も大きくなります。