GLOVE™ (GL Over Vulkan) is a cross-platform software library that acts as an intermediate layer between an OpenGL® ES application and Vulkan®.

GLOVE™ is focused towards embedded systems and is comprised of OpenGL ES and EGL implementations, which translate at runtime all OpenGL ES / EGL calls & ESSL shaders to Vulkan commands & SPIR-V shader respectively and finally relays them to the underlying Vulkan driver.

GLOVE functionality

GLOVE™ has been designed towards facilitating developers to easily build and integrate new features, allowing at the same time its further extension, portability and interoperability.

System Architecture

System Architecture

GLOVE™ is comprised of two shared libraries: and  Additionally, the translation from OpenGL|ES ESSL shaders to Vulkan SPIR-V  shaders is handled by the external glslang library from the Khronos github repository. The latter is statically linked to

The same architecture applies on MS Windows and MacOS, changing only the name of shared libraries (GLESv2.dll and libEGL.dll for MS Windows - libGLESv2.dylib and libEGL.dylib for MacOS).

GLOVE™ is designed to perform various optimizations such as caching OpenGL|ES shaders, use of Vulkan secondary buffers for performance optimization, use of multi threading for modern multicore systems and power optimization techniques for embedded devices. Yet it is modular, portable an easy to extend.

GLOVE™ EGL implementation can be connected to one or more window platforms, such as XCB, Wayland, Android or fbdev, which handle framebuffer allocation / deallocation and presentation onto the system's display. Currently EGL supports XCB, Wayland, Android, Windows and MacOS surfaces. Moreover, it can be easily extended to support even more back-ends.

More information about the system architecture of GLOVE™ can be found here.

Product Support

GLOVE™ is designed to support any Vulkan Compliant GPU. As part of the testing process we continuously test results against Mesa/Intel, nVidia and ARM Mali drivers.

Operating System Support

GLOVE™ is designed to support the following operating systems:

  • Android™,
  • Linux®
  • Windows®
  • macOS®


GLOVE™ is designed to support the following features:

  • OpenGL|ES
  • EGL
  • ESSL shaders
  • Vulkan
  • Android support (compilation, examples)

The following features and improvements are planned in future releases:

  • Upcoming versions of the OpenGL, EGL, and Vulkan API


GLOVE™ is aiming to take advantage of Vulkan in terms of performance. First results are very promising and major performance upgrades are in progress too. Instructions to use some available benchmarks for testing can be found here.


GLOVE™ is accompanied by a demo SDK that contains fully commented, highly optimized C applications (accompanied by the ESSL shader source code). These demos demonstrate some simple rendering techniques with different geometry complexities, as they were designed with the restrictions of low-power embedded platforms in mind.

See details in Demos README

How To Contribute

The GLOVE™ project is continuously updated and considered as work in progress, therefore contributions are more than welcome! Guidelines of how to contribute to GLOVE™ can be found here.

More information

For more information, including detailed build instructions, installation instructions, demos, and benchmarking, please head on over to GitHub and check out the in the GLOVE™ repository.



GLOVE™ manual

Versions and Release Notes

Portability Release. GLOVE can now be deployed in many OS and cooperate with many GPUs.

Changes from v0.3:

    • Support AMD GPU (tested in Linux PC).
    • Support Wayland window platform in Linux.
    • Support Microsoft Windows (via Visual Studio 2019) - tested in Win 10.
    • Support MacOS (tested in macOS Catalina).
  • Other Versions of GLOVE™
    • Release v0.3
      • Compatibility work (NVIDIA Vulkan driver, ARM Vulkan driver)
      • Android support (compilation, examples)
      • Performance work (Using Vulkan Secondary buffers in draw operations)
    • Release v0.2
      • Compatibility work (NVIDIA Vulkan driver, ARM Vulkan driver)
      • Support of Window Reshape functionality
      • Support of Native Surface rendering (experimental)
    • Release v0.1
      • Initial Release of GLOVE
      • OS Support: Linux (Tested on Ubuntu 16.04)
      • Vulkan driver support: MESA Intel
      • HW support: Tested on several Intel GPUs on desktop machines (e.g Intel Ivybridge Desktop)

For more information about GLOVE™ you may contact us at info(at)