Hash :
ccd9a43b
        
        Author :
  
        
        Date :
2024-05-22T11:15:39
        
      
Split EGL_ANGLE_device_d3d into D3D9 and D3D11 versions. Add EGL_ANGLE_device_d3d9 and EGL_ANGLE_device_d3d11 which make it possible to know what type of device can be queried ahead of time without generating EGL errors. Refactor the DeviceD3D class into Device9 and Device11. Remove the getType method now that it's not needed for internal validation. Keep EGL_ANGLE_device_d3d for backwards compatibility. Bug: angleproject:342096132 Change-Id: Ib950abad58e46a5be269891ea7afd0cb8534cbe8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5559163 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@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
Name
    ANGLE_device_d3d11
Name Strings
    EGL_ANGLE_device_d3d11
Contributors
    Geoff Lang  (geofflang 'at' google.com)
    Contributors of EGL_ANGLE_device_d3d
Contact
    Geoff Lang  (geofflang 'at' google.com)
Status
    Draft
Version
    Version 1, May 21, 2024
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 native D3D11 device.
    This extension defines a mapping from an EGL device to a D3D11
    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_D3D11_DEVICE_ANGLE             0x33A1
Add a new section 2.1.3 (D3D11 Devices) after 2.1.2 (Devices)
    Somewhat analogous to an EGL device, a D3D11 device establishes a
    namespace for D3D operations. In the D3D APIs, such devices are
    represented by pointers. For more details, see the D3D11
    documentation.
Changes to section 3.2 (Devices)
    Replace the paragraph immediately following the prototype for
    eglQueryDeviceAttribEXT:
    <attribute> may EGL_D3D11_DEVICE_ANGLE. On success, EGL_TRUE is
    returned, and a valid D3D11 device pointer corresponding to the EGL
    device is returned in <value>. This handle is compatible with D3D11
    API functions.
Issues
    None
Revision History
    Version 1, May 21, 2024 (Geoff Lang)
        - Initial Draft, based off of EGL_ANGLE_device_d3d