cloudqq / docker-opengl

Docker - Mesa 3D OpenGL Software Rendering (Gallium) - LLVMpipe, and OpenSWR Drivers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Docker - Mesa 3D OpenGL Software Rendering (Gallium) - LLVMpipe, and OpenSWR Drivers

CircleCI Docker Automated build Docker Pulls Docker Stars

About

Minimal Docker container bundled with the Mesa 3D Gallium Drivers: LLVMpipe & OpenSWR, enabling OpenGL support inside a Docker container without the need for a GPU.

Features

  • Alpine Linux 3.10
  • LLVMpipe Driver (Mesa 19.0.8)
  • OpenSWR Driver (Mesa 19.0.8)
  • OSMesa Interface (Mesa 19.0.8)
  • softpipe - Reference Gallium software driver
  • swrast - Legacy Mesa software rasterizer
  • Xvfb - X Virtual Frame Buffer

Docker Images

Image Description
utensils/opengl:latest Latest/Dev Mesa version
utensils/opengl:stable Stable Mesa version
utensils/opengl:19.0.8 Mesa version 19.0.8
utensils/opengl:18.3.6 Mesa version 18.3.6
utensils/opengl:18.2.8 Mesa version 18.2.8

Building

This image can be built using the supplied Makefile

Make default image (latest):

make

Make stable image:

make stable

Make all images:

make all

Usage

This image is intended to be used as a base image to extend from. One good example of this is the Envisaged project which allows for quick and easy Gource visualizations from within a Docker container.

Extending from this image.

FROM utensils/opengl:19.0.8
COPY ./MyAppOpenGLApp /AnywhereMyHeartDesires
RUN apk add --update my-deps...

Environment Variables

The following environment variables are present to modify rendering options.

High level settings

Variable Default Value Description
XVFB_WHD 1920x1080x24 Xvfb demensions and bit depth.
DISPLAY :99 X Display number.
LIBGL_ALWAYS_SOFTWARE 1 Forces Mesa 3D to always use software rendering.
GALLIUM_DRIVER llvmpipe Sets OpenGL Driver llvmpipe, swr, softpipe, and swrast

Lower level settings / tweaks

Variable Default Value Description
LP_NO_RAST false LLVMpipe - If set LLVMpipe will no-op rasterization
LP_DEBUG "" LLVMpipe - A comma-separated list of debug options is accepted
LP_PERF "" LLVMpipe - A comma-separated list of options to selectively no-op various parts of the driver.
LP_NUM_THREADS "" LLVMpipe - An integer indicating how many threads to use for rendering. Zero (0) turns off threading completely. The default value is the number of CPU cores present.

About

Docker - Mesa 3D OpenGL Software Rendering (Gallium) - LLVMpipe, and OpenSWR Drivers

License:MIT License


Languages

Language:Dockerfile 49.4%Language:Makefile 39.8%Language:Shell 10.8%