- Notifications
You must be signed in to change notification settings - Fork709
A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.
License
google/angle
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and otherOpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs availablefor that platform. ANGLE currently provides translation from OpenGL ES 2.0, 3.0 and 3.1 to Vulkan,desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Future plans include ES 3.2, translation toMetal and MacOS, Chrome OS, and Fuchsia support.
| Direct3D 9 | Direct3D 11 | Desktop GL | GL ES | Vulkan | Metal | |
|---|---|---|---|---|---|---|
| OpenGL ES 2.0 | complete | complete | complete | complete | complete | complete |
| OpenGL ES 3.0 | complete | complete | complete | complete | complete | |
| OpenGL ES 3.1 | complete | complete | complete | |||
| OpenGL ES 3.2 | in progress | in progress | complete |
Additionally, OpenGL ES 1.1 is implemented in the front-end using OpenGL ES 3.0 features. Thisversion of the specification is thus supported on all platforms specified above that support OpenGLES 3.0 withknown issues.
| Direct3D 9 | Direct3D 11 | Desktop GL | GL ES | Vulkan | Metal | WebGPU | |
|---|---|---|---|---|---|---|---|
| Windows | complete | complete | complete | complete | complete | ||
| Linux | complete | complete | |||||
| Mac OS X | complete | complete [1] | |||||
| iOS | complete [2] | ||||||
| Chrome OS | complete | planned | |||||
| Android | complete | complete | |||||
| Fuchsia | complete |
[1] Metal is supported on macOS 10.14+
[2] Metal is supported on iOS 12+
ANGLE v1.0.772 was certified compliant by passing the OpenGL ES 2.0.3 conformance tests in October 2011.
ANGLE has received the following certifications with the Vulkan backend:
- OpenGL ES 2.0: ANGLE 2.1.0.d46e2fb1e341 (Nov, 2019)
- OpenGL ES 3.0: ANGLE 2.1.0.f18ff947360d (Feb, 2020)
- OpenGL ES 3.1: ANGLE 2.1.0.f5dace0f1e57 (Jul, 2020)
- OpenGL ES 3.2: ANGLE 2.1.2.21688.59f158c1695f (Sept, 2023)
ANGLE also provides an implementation of the EGL 1.5 specification.
ANGLE is used as the default WebGL backend for both Google Chrome and Mozilla Firefox on Windowsplatforms. Chrome uses ANGLE for all graphics rendering on Windows, including the acceleratedCanvas2D implementation and the Native Client sandbox environment.
Portions of the ANGLE shader compiler are used as a shader validator and translator by WebGLimplementations across multiple platforms. It is used on Mac OS X, Linux, and in mobile variants ofthe browsers. Having one shader validator helps to ensure that a consistent set of GLSL ES shadersare accepted across browsers and platforms. The shader translator can be used to translate shadersto other shading languages, and to optionally apply shader modifications to work around bugs orquirks in the native graphics drivers. The translator targets Desktop GLSL, Vulkan GLSL, Direct3DHLSL, and even ESSL for native GLES2 platforms.
In addition to OpenGL ES, ANGLE also provides an optionalOpenCL runtime built into the sameoutput GLES lib.
This work/effort is currentlywork-in-progress/experimental.
This work provides the same benefits as the OpenGL implementation, having OpenCL APIs betranslated to other HW-supported APIs available on that platform.
| Vulkan | OpenCL | |
|---|---|---|
| OpenCL 1.0 | in progress | in progress |
| OpenCL 1.1 | in progress | in progress |
| OpenCL 1.2 | in progress | in progress |
| OpenCL 3.0 | in progress | in progress |
Each supported backing renderer above ends up being an OpenCLPlatform for the user to choose from.
TheOpenCL backend is a "passthrough" implementation which does not perform any API translationat all, instead forwarding API calls to other OpenCL driver(s)/implementation(s).
OpenCL also has an online compiler component to it that is used to compileOpenCL C source code at runtime(similarly to GLES and GLSL). Depending on the chosen backend(s), compiler implementations may vary. Below isa list of renderers and what OpenCL C compiler implementation is used for each:
Vulkan:clspvOpenCL: Compiler is part of the native driver
ANGLE repository is hosted by Chromium project and can bebrowsed online or cloned with
git clone https://chromium.googlesource.com/angle/angleView theDev setup instructions.
Join ourGoogle group to keep up to date.
Join us onSlack in the #angle channel. You canfollow the instructions on theChromium developer pagefor the steps to join the Slack channel. For Googlers, please follow theinstructions on thisdocumentto use your google or chromium email to join the Slack channel.
File bugs in theissue tracker (preferably with an isolated test-case).
Choose an ANGLE branch to track in your own project.
Read ANGLE developmentdocumentation.
Become acode contributor.
Use ANGLE'scoding standard.
Learn how tobuild ANGLE for Chromium development.
Get help ondebugging ANGLE.
Go throughANGLE's orientation and sift throughissues. If you decide to take on any task, write a comment so you can get in touch with us, and more importantly, set yourself as the "owner" of the bug. This avoids having multiple people accidentally working on the same issue.
Read about WebGL on theKhronos WebGL Wiki.
Learn about the internals of ANGLE:
- Overview with a focus on the Vulkan backend (2022)
- Ashort presentation on the Vulkan back-end (2018).
- Historicalpresentation on the evolution of ANGLE and its use in Chromium
- Historicalpresentation with a focus on D3D
- The details of the initial implementation of ANGLE in theOpenGL Insights chapter on ANGLE (these details are severely out-of-date, and this reference is listed here for historical reference only)
Read design docs on theVulkan back-end
Read about ANGLE'stesting infrastructure
View information on ANGLE'ssupported extensions
If you use ANGLE in your own project, we'd love to hear about it!
About
A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.