Open Bug 719168 Opened 10 years ago Updated 3 years ago

Use async ReadPixels into a PBO for faster WebGL with non-accel layers

Categories

(Core :: Canvas: WebGL, enhancement, P2)

enhancement

Tracking

()

Tracking Status
e10s later ---

People

(Reporter: bjacob, Unassigned)

References

Details

(Whiteboard: webgl-next)

WebGL on non-accelerated layers is slow because we have to glReadPixels every frame.

A big part of why glReadPixels is slowing us down is that it's synchronous. There exists an asynchronous variant, reading the pixels into a PBO, and we should seriously consider that. It should fit well with OMTC. It would get us faster WebGL where we can't have accelerated layers.

See:
http://www.songho.ca/opengl/gl_pbo.html
Indeed. I believe it will also need its own form of multibuffering, though.
I am told that PBOs aren't available on Android.
Component: Graphics → Canvas: WebGL
OS: Linux → All
QA Contact: thebes → canvas.webgl
Hardware: x86_64 → All
Summary: Use async ReadPixels into a PBO for faster WebGL with non-accel layers with OMTC → Use async ReadPixels into a PBO for faster WebGL with non-accel layers
Whiteboard: webgl-next
Blocks: 703484
No longer blocks: omtc
Blocks: omtc
No longer blocks: 703484
Severity: normal → enhancement
Mass tracking-e10s flag change. Filter bugmail on "2be0fcce-e36a-4e2c-aa80-0e3d33eb5406".
tracking-e10s: --- → +

It would be great to implement this:
https://jdashg.github.io/misc/async-gpu-downloads.html

Priority: -- → P2
You need to log in before you can comment on or make changes to this bug.