102f4aeb0Sopenharmony_ciName
202f4aeb0Sopenharmony_ci
302f4aeb0Sopenharmony_ci    EXT_device_query_name
402f4aeb0Sopenharmony_ci
502f4aeb0Sopenharmony_ciName Strings
602f4aeb0Sopenharmony_ci
702f4aeb0Sopenharmony_ci    EGL_EXT_device_query_name
802f4aeb0Sopenharmony_ci
902f4aeb0Sopenharmony_ciContributors
1002f4aeb0Sopenharmony_ci
1102f4aeb0Sopenharmony_ci    Kyle Brenneman,  NVIDIA  (kbrenneman 'at' nvidia.com)
1202f4aeb0Sopenharmony_ci    Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
1302f4aeb0Sopenharmony_ci
1402f4aeb0Sopenharmony_ciContact
1502f4aeb0Sopenharmony_ci
1602f4aeb0Sopenharmony_ci    Kyle Brenneman,  NVIDIA  (kbrenneman 'at' nvidia.com)
1702f4aeb0Sopenharmony_ci
1802f4aeb0Sopenharmony_ciStatus
1902f4aeb0Sopenharmony_ci
2002f4aeb0Sopenharmony_ci    Complete
2102f4aeb0Sopenharmony_ci
2202f4aeb0Sopenharmony_ciVersion
2302f4aeb0Sopenharmony_ci
2402f4aeb0Sopenharmony_ci    Version 1 - June 12, 2020
2502f4aeb0Sopenharmony_ci
2602f4aeb0Sopenharmony_ciNumber
2702f4aeb0Sopenharmony_ci
2802f4aeb0Sopenharmony_ci    EGL Extension #140
2902f4aeb0Sopenharmony_ci
3002f4aeb0Sopenharmony_ciExtension Type
3102f4aeb0Sopenharmony_ci
3202f4aeb0Sopenharmony_ci    EGL device extension
3302f4aeb0Sopenharmony_ci
3402f4aeb0Sopenharmony_ciDependencies
3502f4aeb0Sopenharmony_ci
3602f4aeb0Sopenharmony_ci    Written based on the wording of the EGL 1.5 specification.
3702f4aeb0Sopenharmony_ci
3802f4aeb0Sopenharmony_ci    EGL_EXT_device_query is required.
3902f4aeb0Sopenharmony_ci
4002f4aeb0Sopenharmony_ciOverview
4102f4aeb0Sopenharmony_ci
4202f4aeb0Sopenharmony_ci    The EGL_EXT_device_enumeration and EGL_EXT_device_query extensions
4302f4aeb0Sopenharmony_ci    provide a list of devices and a list of extensions, but lacks a way
4402f4aeb0Sopenharmony_ci    to find a name for a device that an application can present to a
4502f4aeb0Sopenharmony_ci    user.
4602f4aeb0Sopenharmony_ci
4702f4aeb0Sopenharmony_ci    This extension adds two new strings that an application can query to
4802f4aeb0Sopenharmony_ci    find human-readable names.
4902f4aeb0Sopenharmony_ci
5002f4aeb0Sopenharmony_ciNew Types
5102f4aeb0Sopenharmony_ci
5202f4aeb0Sopenharmony_ci    None
5302f4aeb0Sopenharmony_ci
5402f4aeb0Sopenharmony_ciNew Functions
5502f4aeb0Sopenharmony_ci
5602f4aeb0Sopenharmony_ci    None
5702f4aeb0Sopenharmony_ci
5802f4aeb0Sopenharmony_ciNew Tokens
5902f4aeb0Sopenharmony_ci
6002f4aeb0Sopenharmony_ci    Accepted by the <name> parameter of eglQueryDeviceStringEXT:
6102f4aeb0Sopenharmony_ci
6202f4aeb0Sopenharmony_ci        EGL_RENDERER_EXT                0x335F
6302f4aeb0Sopenharmony_ci
6402f4aeb0Sopenharmony_ciNew Device Queries
6502f4aeb0Sopenharmony_ci
6602f4aeb0Sopenharmony_ci    eglQueryDeviceStringEXT accepts two new attributes.
6702f4aeb0Sopenharmony_ci
6802f4aeb0Sopenharmony_ci    EGL_VENDOR and EGL_RENDERER_EXT return a human-readable name for the
6902f4aeb0Sopenharmony_ci    vendor and device, respectively.
7002f4aeb0Sopenharmony_ci
7102f4aeb0Sopenharmony_ci    The format of the EGL_VENDOR and EGL_RENDERER strings is
7202f4aeb0Sopenharmony_ci    implementation-dependent.
7302f4aeb0Sopenharmony_ci
7402f4aeb0Sopenharmony_ci    The EGL_VENDOR string for an EGLDeviceEXT is not required to match
7502f4aeb0Sopenharmony_ci    the EGL_VENDOR string for an EGLDisplay or the GL_VENDOR string for
7602f4aeb0Sopenharmony_ci    a context. Similarly, the EGL_RENDERER string is not required to
7702f4aeb0Sopenharmony_ci    match the GL_RENDERER string for a context.
7802f4aeb0Sopenharmony_ci
7902f4aeb0Sopenharmony_ciIssues
8002f4aeb0Sopenharmony_ci
8102f4aeb0Sopenharmony_ci    1.  Do we need a device query, instead of just creating an
8202f4aeb0Sopenharmony_ci        EGLDisplay and calling eglQueryString?
8302f4aeb0Sopenharmony_ci
8402f4aeb0Sopenharmony_ci        RESOLVED: Yes, a device-level query is useful, because some
8502f4aeb0Sopenharmony_ci        devices might not be usable with EGL_EXT_platform_device. This
8602f4aeb0Sopenharmony_ci        is especially true on systems where different devices are
8702f4aeb0Sopenharmony_ci        handled by different drivers.
8802f4aeb0Sopenharmony_ci
8902f4aeb0Sopenharmony_ci    2.  If an application creates an EGLDisplay from an EGLDevice,
9002f4aeb0Sopenharmony_ci        are the EGL_VENDOR strings required to match?
9102f4aeb0Sopenharmony_ci
9202f4aeb0Sopenharmony_ci        RESOLVED: No. Some implementations might not load a driver until
9302f4aeb0Sopenharmony_ci        eglInitialize, and so might have a different or more specific
9402f4aeb0Sopenharmony_ci        EGL_VENDOR string associated with an EGLDisplay than with an
9502f4aeb0Sopenharmony_ci        EGLDeviceEXT. In addition, an implementation might select a
9602f4aeb0Sopenharmony_ci        driver to use based on other parameters in
9702f4aeb0Sopenharmony_ci        eglGetPlatformDisplay.
9802f4aeb0Sopenharmony_ci
9902f4aeb0Sopenharmony_ciRevision History
10002f4aeb0Sopenharmony_ci
10102f4aeb0Sopenharmony_ci    #1 (June 12, 2020) Kyle Brenneman
10202f4aeb0Sopenharmony_ci
10302f4aeb0Sopenharmony_ci        - Initial draft
10402f4aeb0Sopenharmony_ci
105