Running opengl under WSL

Opengl and WSL

There is little information about opengl under wsl. The first post that comes up on google with a blog states that opengl doesn’t function under WSL and he gave up.

https://bowenzhai.ca/2018/04/15/OpenGL-Development-on-WSL-From-Setting-Up-to-Giving-Up-And-What-I-Learned/

A response from the WSL repo states that it may/may not work

https://github.com/microsoft/WSL/issues/2855

However, advanced opengl apps can definitely run under WSL!

Demo

The demo can be found here

Setup

The demo includes scripts for installing the following

Some dependencies to install

sudo apt install mesa-utils

sudo apt-get install x11-apps

sudo apt install clang

sudo apt-get install libglfw3

sudo apt-get install libglfw3-dev

On the desktop, install MobaXterm, which has a X server for displaying graphics from WSL

Test

Run the following to see if it works:

export DISPLAY=:0

xeyes

Now compile your program with the flags

-lX11 -lGL `pkg-config --static --libs glfw3`

In your opengl code, DO NOT INITIALIZE THE CORE! Comment it out

//glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

Now run your program including the environment variable to tell opengl to run with 3.3 MESA_GL_VERSION_OVERRIDE=3.3

For example, MESA_GL_VERSION_OVERRIDE=3.3 ./test_program

Now you can run opengl applications under WSL! :)

Let me know if this works for you / or you encounter problems!




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Uniqueness
  • Paul Graham - When To Do What You Love
  • Review - Managing Memory Tiers with CXL in Virtualized Environments
  • Paul Graham - The Right Kind of Stubborn
  • Working on hard problems