Skip to content

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

License

Notifications You must be signed in to change notification settings

utensils/docker-opengl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

CircleCIDocker Automated buildDocker PullsDocker 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.12
  • LLVMpipe Driver (Mesa 20.0.6)
  • OpenSWR Driver (Mesa 20.0.6)
  • OSMesa Interface (Mesa 20.0.6)
  • softpipe - Reference Gallium software driver
  • swrast - Legacy Mesa software rasterizer
  • Xvfb - X Virtual Frame Buffer

Docker Images

Please note there are images available for Alpine versions 3.10, 3.11 as well. Please see all available tags on DockerHub

ImageDescriptionArchitecturesBase Image
utensils/opengl:latestLatest Mesa versionamd64, 386, arm64, arm/v7alpine:3.12
utensils/opengl:stableStable Mesa version (Personally Tested)amd64, 386, arm64, arm/v7alpine:3.12
utensils/opengl:20.0.6Mesa version 20.0.6amd64, 386, arm64, arm/v7alpine:3.12
utensils/opengl:19.0.8Mesa version 19.0.8amd64alpine:3.10
utensils/opengl:18.3.6Mesa version 18.3.6amd64alpine:3.10
utensils/opengl:18.2.8Mesa version 18.2.8amd64alpine:3.10

Building

This image can be built locally using the supplied Makefile

Make default image (stable):

make

Make latest image:

make latest

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:20.0.6 COPY ./MyAppOpenGLApp /AnywhereMyHeartDesires RUN apk add --update my-deps...

Environment Variables

The following environment variables are present to modify rendering options.

High level settings

VariableDefault ValueDescription
XVFB_WHD1920x1080x24Xvfb demensions and bit depth.
DISPLAY:99X Display number.
LIBGL_ALWAYS_SOFTWARE1Forces Mesa 3D to always use software rendering.
GALLIUM_DRIVERllvmpipeSets OpenGL Driver llvmpipe, swr, softpipe, and swrast

Lower level settings / tweaks

VariableDefault ValueDescription
LP_NO_RASTfalseLLVMpipe - 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.
close