You may run into some OpenGL issues while trying to run your Kivy app in your VirtualBox Windows VM. Your Command Line (CMD) may display something along the following:

[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] GLEW initialization succeeded
[INFO   ] [GL          ] No framebuffers extension is supported
[INFO   ] [GL          ] Backend used <glew>
[INFO   ] [GL          ] OpenGL version <b'1.1.0'>
[INFO   ] [GL          ] OpenGL vendor <b'Microsoft Corporation'>
[INFO   ] [GL          ] OpenGL renderer <b'GDI Generic'>
[INFO   ] [GL          ] OpenGL parsed version: 1, 1
[CRITICAL] [GL          ] Minimum required OpenGL version (2.0) NOT found!

OpenGL version detected: 1.1

Version: b'1.1.0'
Vendor: b'Microsoft Corporation'
Renderer: b'GDI Generic'

Try upgrading your graphics drivers and/or your graphics hardware in case of problems.

The application will leave now.

An additional pop-up message such as the one below is usually displayed as well:

Most solutions found through your popular search engines will hint on how to enable OpenGL 2 in your VirtualBox Windows guest system and you will see a lot of older posts saying this is not possible, as well as more recent ones telling you to enable 3D Acceleration in your Windows VM, and so on.

There is a 3rd party OpenGL dll that you can download, and while it does not provide 100% OpenGL support, it seems to work well enough to satisfy Kivy minimum requirement. A related source is at https://mesa3d.org/.

In addition, it appears that you do NOT need to enable 3D Acceleration in your Windows VM, despite almost all articles around this subject will tell you to enable it. In fact, enabling the 3D Acceleration caused errors in my VBox WDDM driver that I could not seem to resolve. I suspect it had something to do with my MacOS host.

Once you have downloaded the opengl32.dll file, you need to copy it somewhere kivy will find it. This may depend on how you installed Python and Kivy, but as a reference, in my case the file had to be copied to C:\Users\user\AppData\Local\Programs\Python\Python311

If successful, your Kivy application should now run, and your Command Line (CMD) should reflect the new OpenGL driver:

[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] GLEW initialization succeeded
[INFO   ] [GL          ] Backend used <glew>
[INFO   ] [GL          ] OpenGL version <b'3.1 Mesa 20.1.8'>
[INFO   ] [GL          ] OpenGL vendor <b'VMware, Inc.'>
[INFO   ] [GL          ] OpenGL renderer <b'llvmpipe (LLVM 8.0, 256 bits)'>
[INFO   ] [GL          ] OpenGL parsed version: 3, 1

Note that while the dll has 32 in the name, it in fact runs on the 64 bit of Python and Windows.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.