Corentin Wallez | 142141c | 2022-08-08 17:42:41 +0000 | [diff] [blame] | 1 | # Platform and API support for Dawn/Tint |
| 2 | |
| 3 | ## Khronos's Vulkan |
| 4 | |
cryvosh | 3f487d8 | 2024-01-08 19:50:02 +0000 | [diff] [blame] | 5 | Vulkan is supported with minimal features, limits and extensions being required (what's required has been measured to be widely available). |
Corentin Wallez | 142141c | 2022-08-08 17:42:41 +0000 | [diff] [blame] | 6 | Vulkan is the preferred target API on platforms that don't have other "modern" GPU APIs. |
| 7 | Vulkan is supported as best effort on other platforms (e.g. Windows and macOS). |
| 8 | |
| 9 | **Required version**: Vulkan 1.0 is supported with some required extensions (`VK_KHR_maintenance1`), or Vulkan 1.1 and above without extensions. |
| 10 | |
| 11 | **Required features**: `depthBiasClamp`, `fragmentStoresAndAtomics`, `fullDrawIndexUint32`, `imageCubeArray`, `independentBlend`, `sampleRateShading`, and either `textureCompressionBC` or both of `textureCompressionETC` and `textureCompressionASTC_LDR`. |
| 12 | |
cryvosh | 3f487d8 | 2024-01-08 19:50:02 +0000 | [diff] [blame] | 13 | **Required limits**: they are too detailed to describe here, but in general should be widely supported. |
Corentin Wallez | 142141c | 2022-08-08 17:42:41 +0000 | [diff] [blame] | 14 | See the [WebGPU limits](https://gpuweb.github.io/gpuweb/#limits) that mostly correspond to Vulkan limits. |
| 15 | |
| 16 | **Operating system support**: |
| 17 | |
| 18 | - Linux: Supported. |
| 19 | - ChromeOS: Supported. |
| 20 | - Android: Work in progress. |
| 21 | - Fuchsia: Work in progress. |
| 22 | |
| 23 | ## Microsoft's D3D12 |
| 24 | |
| 25 | D3D12 is supported with feature level 11.1, or feature level 11.0 with Resource Binding Tier 2. |
| 26 | This is the vast majority of D3D12 devices. |
| 27 | Supported shader models are 5.1 and above. It is the preferred target API when available. |
| 28 | |
| 29 | **Windows flavor support**: |
| 30 | |
| 31 | - Win32: Supported. |
| 32 | - UWP: Supported, best effort. |
| 33 | - Xbox: Not supported, contributions welcome. |
| 34 | |
| 35 | ## Apple's Metal |
| 36 | |
| 37 | Metal is supported and is the preferred target API when available. |
| 38 | |
| 39 | **Apple OS support:** |
| 40 | |
| 41 | - macOS: supported. |
| 42 | - iOS: supported, best effort. |
| 43 | - tvOS/ipadOS/...: Not supported, contributions welcome. |
| 44 | |
| 45 | ## Khronos's OpenGL family |
| 46 | |
| 47 | Support for OpenGL is in progress with the aim to make OpenGL ES 3.1 (with extensions and limits) supported through EGL. |
| 48 | Other flavors of OpenGL (desktop OpenGL) or binding APIs (GLX, WGL, EAGL, CGL) are supported as best effort with contributions welcome. |
| 49 | |
| 50 | |
Alan Cutter | 2219dc0 | 2023-06-01 15:35:42 +0000 | [diff] [blame] | 51 | ## Microsoft's D3D11 |
Corentin Wallez | 142141c | 2022-08-08 17:42:41 +0000 | [diff] [blame] | 52 | |
| 53 | Dawn doesn't have a D3D11 backend at the moment, but D3D11 support can be achieved with the OpenGL ES backend through ANGLE's OpenGL ES to D3D11 translation. |
| 54 | There might be a D3D11 backend in the future. |