Name

    EXT_device_drm_render_node

Name Strings

    EGL_EXT_device_drm_render_node

Contributors

    James Jones
    Simon Ser
    Daniel Stone

Contacts

    James Jones, NVIDIA (jajones 'at' nvidia.com)

Status

    Draft

Version

    Version 1 - June 4th, 2021

Number

    EGL Extension #144

Extension Type

    EGL device extension

Dependencies

    Written based on the wording of the EGL 1.5 specification.

    EGL_EXT_device_query is required.

    EGL_EXT_device_drm interacts with this extension.

Overview

    The EGL_EXT_device_drm extension provided a method for applications
    to query the DRM device node file associated with a given
    EGLDeviceEXT object. However, it was not clear whether it referred to
    the primary or render device node. This extension adds an enum to
    refer explicitly to the render device node and defines the existing
    EGL_DRM_DEVICE_FILE_EXT as explicitly refering to the primary device
    node.

New Types

    None

New Procedures and Functions

    None

New Tokens

    Accepted as the <name> parameter of eglQueryDeviceStringEXT

        EGL_DRM_RENDER_NODE_FILE_EXT            0x3377

Changes to section 3.2 (Devices)

    Add the following paragraph to the description of
    eglQueryDeviceStringEXT:

    "To obtain a DRM device file for the render node associated with an
    EGLDeviceEXT, call eglQueryDeviceStringEXT with <name> set to
    EGL_DRM_RENDER_NODE_FILE_EXT. The function will return a pointer to
    a string containing the name of the device file (e.g.
    "/dev/dri/renderDN"), or NULL if the device has no associated DRM
    render node."

    If EGL_EXT_device_drm is present, append the following to the
    paragraph in the same section describing EGL_DRM_DEVICE_FILE_EXT:

    "If the EGL_EXT_device_drm_render_node extension is supported, the
    value returned will refer to a primary device node, and will be NULL
    if the device has no associated DRM primary node. If
    EGL_EXT_device_drm_render_node is not supported, the value returned
    will refer to a primary device node if there exists one associated
    with the device. Otherwise, it will refer to a render device node if
    there exists one associated with the device. If neither exists, NULL
    is returned."

Issues

    1)  Should this extension clarify that EGL_DRM_DEVICE_FILE_EXT refers
        only to primary device nodes?

        RESOLVED: Yes, but only when this extension is supported. Existing
        implementations return render node paths for that string when no
        suitable primary node is available.

Revision History:

    #2  (June 8th, 2021) James Jones
        - Added issue #1 and related spec changes.

    #1  (June 4th, 2021) James Jones
        - Initial draft.
