-
Notifications
You must be signed in to change notification settings - Fork 329
Open
Labels
Description
(Note to readers: native, non-web-exposed WebGPU implementations aren't beholden any minimum requirements here, or to the standard. So they may support older or less capable devices with feature emulation or compatibility gaps compared to the official spec.)
By category of platforms, with links to the decisions.
-
iOS/iPadOS
-
Mac Apple Silicon: all (macOS 11.0, A12z+ (Apple5))
-
Mac x86: 10.13+
- MTLGPUFamilyMac1 (but some implementations will, at least initially, require MTLGPUFamilyMac2 for indirect command buffers) - note this family has been deprecated in favor of MTLGPUFamilyMac2(?) starting with macOS 13.0
-
D3D12: Windows 10 (first release (1507)?), FL 11_1 or (FL 11_0 + resource binding tier 2).
(D3D12 FL11_0+ = SM5.1+)
- FL docs
- Direct3D 11 only support SM5.0 or less.
- Direct3D 12 only support SM4.0 or above.
- SM5.1 and below are DXBC.
- SM6.0 and above are DXIL.
-
Android/Linux: Vulkan 1.0+(?) with:
fragmentStoresAndAtomics
fullDrawIndexUint32
- BC || (ETC2 && ASTC LDR 2D)
maxImageArrayLayers
≥ 256- Implicitly must have either
S8_UINT
orD24_UNORM_S8_UINT
(which is true universally across AMD/NVIDIA/Intel/Android), though only because the spec saysstencil8
can be implemented as eitherstencil8
ordepth24unorm-stencil8
and doesn't mentiondepth32float-stencil8
. - Vulkan 1.1, or the following extensions:
maxVertexOutputComponents >= 68 && maxFragmentInputComponents >= 68
-
Vulkan mobile hardware
- Adreno: 500+
- Mali: ?
- Haven't chosen a target, but see query results below for what should currently be supported (looks like most Mali-G51+ devices)
- PowerVR: ?
Useful sources:
- Metal Feature Set Tables
- macOS/iOS version required for each Metal Shading Language version
- GPUinfo.org: Vulkan 1.0 features (android) and Vulkan extensions (android) (be sure to look at other platforms too)
kvark, lin7sh, Daasin, darzu, lin72h and 1 moreDaasin, lin72h and ghishadowDaasin and ghishadow