Open Bug 901503 Opened 12 years ago Updated 2 years ago

GLContext multiplexing

Categories

(Core :: Graphics, defect)

defect

Tracking

()

People

(Reporter: bjacob, Unassigned)

References

Details

We need to have multiple GLContext's use the same underlying OpenGL context, multiplexing the state machine, implementing context switches in MakeCurrent. The need for this is especially coming from canvas contexts, like Canvas 2D using Skia/GL --- it is very wasteful to have separate physical OpenGL contexts for each canvas. Each OpenGL context is ~ 1 M of memory usage immediately on creation, on typical b2g devices (see bug 813783). By itself, multiplexing OpenGL contexts is easy enough as there is not too much global state to switch. For example, texture-wise, only the texture unit bindings are global state, while all the state contained in individual texture objects is insensitive to multiplexing. The problem right now is that GLContext is ridden with a lot of extra features that make it harder to multiplex than a plain OpenGL context should be. That should be fixed by the GLContext refactoring (bug 901498).
Assignee: nobody → bjacob
I also noticed this issue if you launch everything.me app on b2g device... It creates lots of new CanvasRender2D context/GLContext pairs.

The bug assignee didn't login in Bugzilla in the last 7 months, so the assignee is being reset.

Assignee: jacob.benoit.1 → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.