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