Implement async uploads for Android+ES2 in RenderCompositorOGLSWGL
Categories
(Core :: Graphics: WebRender, enhancement, P3)
Tracking
()
People
(Reporter: lsalzman, Unassigned)
References
(Depends on 1 open bug, Blocks 4 open bugs)
Details
Attachments
(1 file)
7.89 KB,
text/plain
|
Details |
As noted in bug 1678892 comment 11, ES2 does not provide PBOs, so RenderCompositorOGLSWGL will only be accelerated for desktop GL or ES3. We might need to use SurfaceTextures to support this.
Comment 1•4 years ago
|
||
SurfaceTexture might not get good performance. Allocation of buffer is very slow, since buffer allocation happens in SurfaceFlinger process. And unlocking buffer is also very slow.
Updated•4 years ago
|
Updated•3 years ago
|
Comment 2•3 years ago
|
||
Mali-400 supports GL_OES_mapbuffer.
:jnicol, can we use GL_OES_mapbuffer for async uploads?
Comment 3•3 years ago
|
||
I don't think so, unfortunately. We'd still need some way to copy from the buffer to the texture. Are there any other interesting extensions supported?
My hunch here is that glTexSubImage2D is so slow because it cannot upload to a texture which is locked by the GPU (because it is being composited). So it has to wait until the GPU is done compositing before it can upload.
So if the full tile has been invalidated we should just orphan the texture (glTexImage
, not Sub
) and uploading the whole thing. And when only a small region has been invalidated, we should upload these to a staging texture (that is not locked by the GPU), then blit or draw call to copy to the real texture (which the driver should be able to do asynchronously).
Updated•3 years ago
|
Comment 4•3 years ago
|
||
About support of Sunny2 Plus(with Mali-400)
https://www.gsmarena.com/wiko_sunny2_plus-9026.php
Updated•3 years ago
|
Description
•