Closed
Bug 711687
Opened 13 years ago
Closed 4 years ago
Investigate asynchronous texture upload
Categories
(Firefox for Android Graveyard :: General, defect, P4)
Tracking
(Not tracked)
RESOLVED
INCOMPLETE
People
(Reporter: pcwalton, Unassigned)
Details
It seems that we may be able to do asynchronous texture upload. See this thread:
http://groups.google.com/group/android-platform/msg/d1457a38055f5996
One of the Android engineers states that the browser (presumably the stock Honeycomb browser) uses this technique, so we should definitely investigate it IMHO.
This would presumably be done similarly to the gralloc stuff, and in fact it uses most of the same calls. The main difference is that we use EGL_GL_TEXTURE_2D_KHR instead of EGL_NATIVE_BUFFER_ANDROID in the call to eglCreateImageKHR().
Reporter | ||
Comment 1•13 years ago
|
||
This would be a fallback in case gralloc isn't supported on the device.
Reporter | ||
Comment 2•13 years ago
|
||
I experimented with this today. Turns out that this is not possible, except maybe on Honeycomb/ICS. The stock Android EGL drivers on everything Gingerbread and below fail on the eglCreateImageKHR() call if passed anything but EGL_NATIVE_BUFFER_ANDROID. Sigh.
It is also impossible to do texture sharing between threads. The only way to do it in EGL is to use eglImage. It is likewise impossible to do asynchronous texture upload using PBOs, as PBOs are unsupported on Android.
The end result is that on non-grallocable devices it's looking like there's no alternative to the slow glTexImage2D(). Android on Gingerbread and below is extremely hostile to performant texture upload. The best we can do is to double buffer, chop up the texture, and throttle the number of glTexImage2D() calls to a small number per frame. I've already prototyped this (slicing is quite easy with glDrawTexfOES); it should be relatively easy to implement.
Updated•13 years ago
|
Priority: -- → P4
Comment 3•4 years ago
|
||
We have completed our launch of our new Firefox on Android. The development of the new versions use GitHub for issue tracking. If the bug report still reproduces in a current version of [Firefox on Android nightly](https://play.google.com/store/apps/details?id=org.mozilla.fenix) an issue can be reported at the [Fenix GitHub project](https://github.com/mozilla-mobile/fenix/). If you want to discuss your report please use [Mozilla's chat](https://wiki.mozilla.org/Matrix#Connect_to_Matrix) server https://chat.mozilla.org and join the [#fenix](https://chat.mozilla.org/#/room/#fenix:mozilla.org) channel.
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → INCOMPLETE
Assignee | ||
Updated•4 years ago
|
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•