Name

    EXT_device_drm_render_node

Name Strings

    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.
