1Name 2 3 ANGLE_device_metal 4 5Name Strings 6 7 EGL_ANGLE_device_metal 8 9Contributors 10 11 Le Hoang Quyen 12 13Contact 14 15 Jamie Madill, Google (jmadill 'at' google 'dot' com) 16 Le Hoang Quyen (lehoangq 'at' gmail.com) 17 18Status 19 20 Draft 21 22Version 23 24 Version 1, Jul 19, 2020 25 26Number 27 28 EGL Extension #XXX 29 30Extension Type 31 32 EGL device extension 33 34Dependencies 35 36 This extension is written against the language of EGL 1.5 as 37 modified by EGL_EXT_device_query. 38 39 EGL_EXT_device_query is required. 40 41Overview 42 43 ANGLE has the ability to run GPU commands on a metal device. 44 This extension defines a mapping from an EGL device to a metal 45 device, after it's queried from an EGL display. 46 47IP Status 48 49 No known claims. 50 51New Types 52 53 None. 54 55New Procedures and Functions 56 57 None. 58 59New Tokens 60 61 Accepted as a queried <attribute> in eglQueryDeviceAttribEXT: 62 63 EGL_METAL_DEVICE_ANGLE 0x34A6 64 65Add a new section 2.1.3 (Metal Devices) after 2.1.2 (Devices) 66 67 Somewhat analogous to an EGL device, a Metal device establishes a 68 namespace for Metal operations. In the Metal APIs, such devices are 69 represented by pointers. For more details, see the Metal 70 documentation. 71 72Changes to section 3.2 (Devices) 73 74 Replace the paragraph immediately following the prototype for 75 eglQueryDeviceAttribEXT: 76 77 <attribute> may be EGL_METAL_DEVICE_ANGLE. 78 On success, EGL_TRUE is returned, and a valid MTLDevice pointer 79 corresponding to the EGL device is returned in <value>. This handle 80 is compatible with Metal API functions. If the EGL device is not currently 81 associated with a Metal device and <attribute> is EGL_METAL_DEVICE_ANGLE, 82 EGL_BAD_ATTRIBUTE is returned, and <value> is left unchanged. 83 84Issues 85 86 None 87 88Revision History 89 90 Version 1, Jul 19, 2020 (Le Hoang Quyen) 91 - Initial Draft 92