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