I have OpenGL 3.1 but kivy says that I have only 1.1

Considering the OP had his problem solved I’d like to end this discussion with a very detailed background info about this issue which may help community provide even better support in the future.

Intel OpenGL drivers for legacy systems (everything before Ivy Bridge and Bay Trail) refuse to load under Windows 10 if loading program declares Windows 10 compatibility essentially getting a windows version that begins with 10 when calling appropriate Windows APIs. This happens because the OpenGL driver has hardcoded OS version string checks that don’t recognize Windows 10 and Intel refuses to fix this despite being a very easy fix instead opted to end graphics driver development for these old systems.

Programs can declare Windows 10 compatibility in any of these 3 ways:

  • implicitly by running in kernel mode (it was done by Virtualbox until release 6.0 which moved guest OS OpenGL to run on host user mode essentially fixing this issue for itself);
  • manifest embedded into the executable with a SupportedOS tag with a value beginning with {8 (ex: python 3.x used in this topic);
  • same as above but the manifest is an external file named filename.exe.manifest if the program executable is filename.exe.(ex: any AIDA64 win32 edition).

There are 6 possible solutions, last 2 requiring hardware investments: