All Projects → Think-Silicon → Glove

Think-Silicon / Glove

Licence: lgpl-3.0
GLOVE (GL Over Vulkan) is a cross-platform software library that acts as an intermediate layer between an OpenGL application and Vulkan

Projects that are alternatives of or similar to Glove

Nabla
OpenGL/OpenGL ES/Vulkan/CUDA/OptiX Modular Rendering Framework for PC/Linux/Android
Stars: ✭ 235 (-40.36%)
Mutual labels:  vulkan, computer-graphics, opengles, opengl-es
Gapid
GAPID is a collection of tools that allows you to inspect, tweak and replay calls from an application to a graphics driver.
Stars: ✭ 1,975 (+401.27%)
Mutual labels:  vulkan, opengl-es, opengles
Shader-Playgrounds
A WebGL shaders editor for beginners and otherwise.
Stars: ✭ 28 (-92.89%)
Mutual labels:  computer-graphics, opengl-es
render-doctor
渲染医生,基于 RenderDoc 的渲染分析工具,以 html 形式展现方便阅读和分享。
Stars: ✭ 46 (-88.32%)
Mutual labels:  vulkan, opengles
Camera2GLPreview
Android camera preview application using Camera2 API and OpenGL ES/Vulkan
Stars: ✭ 140 (-64.47%)
Mutual labels:  vulkan, opengl-es
AndroidGLKit
AndroidGLKit provides OpenGL ES 2.0 boilerplate codes for Android.
Stars: ✭ 22 (-94.42%)
Mutual labels:  opengles, opengl-es
mojoshader
Use Direct3D shaders with other 3D rendering APIs.
Stars: ✭ 91 (-76.9%)
Mutual labels:  vulkan, opengl-es
harfang3d
HARFANG 3D source code public repository
Stars: ✭ 173 (-56.09%)
Mutual labels:  vulkan, opengles
glfw-d
D translation of GLFW, a multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
Stars: ✭ 14 (-96.45%)
Mutual labels:  vulkan, opengl-es
CLUSEK-RT
Vulkan based C++ ray-tracing game engine.
Stars: ✭ 24 (-93.91%)
Mutual labels:  vulkan, computer-graphics
Diligentcore
Core functionality of Diligent Engine
Stars: ✭ 263 (-33.25%)
Mutual labels:  vulkan, opengl-es
ogl to vlk
Vulkan Tutorials For OpenGL Developers
Stars: ✭ 16 (-95.94%)
Mutual labels:  vulkan, opengl-es
clustered forward demo vk
Clustered forward rendering demo with Vulkan
Stars: ✭ 50 (-87.31%)
Mutual labels:  vulkan, computer-graphics
racket-vulkan
Racket integration with all things Vulkan 💥
Stars: ✭ 40 (-89.85%)
Mutual labels:  vulkan, computer-graphics
Nimgl
NimGL is a Nim library that offers bindings for popular libraries used in computer graphics
Stars: ✭ 218 (-44.67%)
Mutual labels:  vulkan, computer-graphics
Flextgl
OpenGL and Vulkan header and loader generator.
Stars: ✭ 180 (-54.31%)
Mutual labels:  vulkan, opengl-es
Diligentsamples
Sample projects demonstrating the usage of Diligent Engine
Stars: ✭ 138 (-64.97%)
Mutual labels:  vulkan, opengl-es
Viry3d
Cross platform 2D and 3D game engine in C++.
Stars: ✭ 307 (-22.08%)
Mutual labels:  vulkan, opengl-es
vktut
Shabi's Vulkan Tutorials
Stars: ✭ 88 (-77.66%)
Mutual labels:  vulkan, computer-graphics
Lwjgl3
LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan), audio (OpenAL), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR) applications.
Stars: ✭ 3,540 (+798.48%)
Mutual labels:  vulkan, opengl-es

Build Status

GLOVE - GL Over Vulkan

GLOVE functionality

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 has been designed towards facilitating developers to easily build and integrate new features, allowing at the same time its further extension, portability and interoperability. Currently, GLOVE supports OpenGL ES 2.0 and EGL 1.4 on Linux, Android, MS Windows and MacOS platforms, but the modular design can be easily extended to encompass implementations of other client APIs as well.

GLOVE is considered as a work-in-progress and is open-sourced under the LGPL v3 license through which it is provided as free software with unlimited use for educational and research purposes.

Future planned extensions of GLOVE include the support for OpenGL ES 3.x and OpenGL applications.

Prerequisites

The minimum Vulkan loader version must be 1.0.24.

Optionally, GLOVE supports the VK_KHR_maintenance1 extension, used for OpenGL to Vulkan Coordinates conversion (left handed to right handed coordinate system).

Tested with the following configurations

GLOVE has been successfully tested with GLOVE demos with the following configurations

GL version Graphics Card Vulkan Driver Vulkan API OS Windows Platform Status
ES 2.0 Intel Ivybridge Desktop Mesa 17.3.3 1.0.54 Ubuntu 16.04 XCB success
ES 2.0 Intel HD Graphics 530 (Skylake GT2) Mesa 18.0.5 1.0.57 Ubuntu 16.04 XCB success
ES 2.0 Intel HD Graphics 630 (Kabylake GT2) Mesa 18.0.5 1.0.61 Ubuntu 16.04 XCB success
ES 2.0 Intel Ivybridge Desktop Mesa 17.3.3 1.0.54 Ubuntu 16.04 WAYLAND success
ES 2.0 Intel HD Graphics 530 (Skylake GT2) Mesa 18.0.5 1.0.57 Ubuntu 16.04 WAYLAND success
ES 2.0 Radeon RX 550 Series Mesa 18.0.5 1.0.61 Ubuntu 16.04 XCB success
ES 2.0 Radeon RX 550 Series AMDGPU-Pro v18.40 1.1.77 Ubuntu 16.04 XCB success
ES 2.0 GeForce 940M NVIDIA 396.51 1.1.70 Ubuntu 16.04 XCB success
ES 2.0 GeForce GTX 670 NVIDIA 396.54 1.1.70 Ubuntu 18.04 XCB success
ES 2.0 Mali-G71 ARM 482.381.3347 1.0.26 Android 7.0 Android success
ES 2.0 Mali-G71 ARM 485.111.1108 1.0.65 Android 8.0 Android success
ES 2.0 GeForce GTX 1050 NVIDIA 416.83 1.1.84 Windows 10 Windows success
ES 2.0 Intel Iris Graphics 6100 MoltenVK v1.0.38 1.1.126 macOS Catalina MacOS success
ES 2.0 Intel HD Graphics 530 (Skylake GT2) Mesa v19.3.2 1.2.31 OpenSUSE Tumbleweed XCB success
ES 2.0 Intel HD Graphics 530 (Skylake GT2) Mesa v19.3.2 1.2.31 OpenSUSE Tumbleweed WAYLAND success

Software Design

You can find a short description on GLOVE's software design as well as "How To extend GLOVE" guidelines in the GLOVE Design Document.

Contribution

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

Installation Instructions

Download the Repository

To create your local git repository:

git clone https://github.com/Think-Silicon/GLOVE.git

Required Packages

Required Packages for Linux Distributions

To install all required packages:

For Ubuntu

sudo apt-get install git cmake extra-cmake-modules libvulkan-dev vulkan-utils build-essential libx11-xcb-dev

Optionally "mesa-vulkan-drivers" package is needed if no other Vulkan driver is available. The compiler minimum version that this project is built with, is GCC 4.9.3, although earlier versions may work.

For OpenSUSE

sudo zypper install -t pattern devel_C_C++
sudo zypper install cmake extra-cmake-modules libX11-devel

To install packages libvulkan1 vulkan-headers vulkan-loader vulkan tools follow the directions in the links below

https://software.opensuse.org/package/libvulkan1 https://software.opensuse.org/package/vulkan-loader https://software.opensuse.org/package/vulkan-headers https://software.opensuse.org/package/vulkan-tools

Required Packages for MS Windows

To compile GLOVE on Windows, you need

  • MS Visual Studio 2019 (Download here), with CMake enabled
  • Python3 (Download here)

Vulkan SDK

To facilitate running and debugging GLOVE on MS Windows, it is recommended to download Vulkan SDK .

Required Packages for MacOS

Python3 and cmake are required for MacOS. You can install them via homebrew with the following commands

brew install cmake
brew install python3

MoltenVK

GLOVE has been tested in macOS, using MoltenVK (Vulkan to Metal middleware), which creates the necessary Vulkan headers and Vulkan loader (libMoltenVK.dylib). Instructions on how to build MoltenVk can be found here.

External Repositories Dependencies

Khronos glslang repository is mandatory for compiling, validating and generating SPIR-V from ESSL shaders.

Google googletest repository is used for unit testing.

To get and build the above projects:

python3.x update_external_sources.py

ATTENTION: Python 3 is supported only, so you need to install python 3.x version

Linux Users can also use the equivalent bash shell script, as follows

./update_external_sources.sh

Building

View the Building Instructions for detailed instructions on how to configure and build GLOVE on the supported platforms.

Known Issues

GLOVE is considered as work-in-progress, therefore there are known issues that have to be resolved or improved.

You can see a detailed list of issues in the Known Issues List.

Demos

A demo SDK that contains fully commented, highly optimized C applications (accompanied by the ESSL shader source code) is available with GLOVE. 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.

Benchmarking

GLOVE is aiming to take advantage of Vulkan in terms of performance. Our preliminary results are very promising and further major performance upgrades are also in progress. Instructions to use some available benchmarks for testing can be found in the Benchmarking README.

Credits

Full Credit list at Credits page.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].