moderngl / glcontext

connects moderngl to your window or create headless contexts :electric_plug:
https://moderngl.readthedocs.io/
MIT License
38 stars 13 forks source link

osmesa backend #10

Closed christopherhesse closed 4 years ago

christopherhesse commented 4 years ago

The standalone EGL backend looks great for hardware-accelerated 3D rendering on headless Linux servers. For software rendering, it could be useful to have an osmesa backend which allows software rendering without an X server running.

Admittedly, headless software rendering from python isn't the most popular setup, but is useful for things like reinforcement learning environments such as https://gym.openai.com/envs/CarRacing-v0/ where you want to render pixels, but often on a remote linux machine, and sometimes without a GPU available (on that machine).

For reference, here's glfw's osmesa context: https://github.com/glfw/glfw/blob/master/src/osmesa_context.c

How do you guys feel about an osmesa backend?

einarf commented 4 years ago

I guess the general attitude is: If it can be supported, we're all for it. As long as it can support at least opengl 3.3 contexts it should in theory work out of the box for moderngl 5.6.

Still we're constrained be the fact that a day only has 24 hours, so contributions are extremely appreciated.

christopherhesse commented 4 years ago

Seems like with the correct setup, EGL can do headless rendering through mesa, so going to close this for now.