Hm it’s been quite a while since I asked about this issue. On Android, you wouldn’t need any of this if your app renders with Vulkan, as Vulkan supports async GPU readbacks. If you must use OpenGL ES (for example, if your app uses ARCore/ARFoundation) then you’ll likely need to use pixel buffer objects which give you async readbacks. I should note that even with PBO’s, readback performance isn’t guaranteed (some devices still have terrible performance).
I have a custom readback solution in the works for Android + OpenGL ES that doesn’t use PBO’s. [Performance is looking pretty good so far]( https://discussions.unity.com/t/683160 page-70#post-6580216), but I’m not yet sure on how to release the library (paid, free but not open-source). Feel free to DM me for more info.