Name

    ANGLE_device_d3d9

Name Strings

    EGL_ANGLE_device_d3d9

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 D3D9 device.
    This extension defines a mapping from an EGL device to a D3D9
    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_D3D9_DEVICE_ANGLE              0x33A0

Add a new section 2.1.3 (D3D9 Devices) after 2.1.2 (Devices)

    Somewhat analogous to an EGL device, a D3D9 device establishes a
    namespace for D3D operations. In the D3D APIs, such devices are
    represented by pointers. For more details, see the D3D9
    documentation.

Changes to section 3.2 (Devices)

    Replace the paragraph immediately following the prototype for
    eglQueryDeviceAttribEXT:

    <attribute> may EGL_D3D9_DEVICE_ANGLE. On success, EGL_TRUE is
    returned, and a valid D3D9 device pointer corresponding to the EGL
    device is returned in <value>. This handle is compatible with D3D9
    API functions.

Issues

    None

Revision History

    Version 1, May 21, 2024 (Geoff Lang)
        - Initial Draft, based off of EGL_ANGLE_device_d3d
