102f4aeb0Sopenharmony_ciName 202f4aeb0Sopenharmony_ci 302f4aeb0Sopenharmony_ci EXT_platform_device 402f4aeb0Sopenharmony_ci 502f4aeb0Sopenharmony_ciName Strings 602f4aeb0Sopenharmony_ci 702f4aeb0Sopenharmony_ci EGL_EXT_platform_device 802f4aeb0Sopenharmony_ci 902f4aeb0Sopenharmony_ciContributors 1002f4aeb0Sopenharmony_ci 1102f4aeb0Sopenharmony_ci James Jones 1202f4aeb0Sopenharmony_ci Daniel Kartch 1302f4aeb0Sopenharmony_ci 1402f4aeb0Sopenharmony_ciContacts 1502f4aeb0Sopenharmony_ci 1602f4aeb0Sopenharmony_ci James Jones, NVIDIA (jajones 'at' nvidia.com) 1702f4aeb0Sopenharmony_ci 1802f4aeb0Sopenharmony_ciStatus 1902f4aeb0Sopenharmony_ci 2002f4aeb0Sopenharmony_ci Complete 2102f4aeb0Sopenharmony_ci 2202f4aeb0Sopenharmony_ciVersion 2302f4aeb0Sopenharmony_ci 2402f4aeb0Sopenharmony_ci Version 6 - May 16th, 2014 2502f4aeb0Sopenharmony_ci 2602f4aeb0Sopenharmony_ciNumber 2702f4aeb0Sopenharmony_ci 2802f4aeb0Sopenharmony_ci EGL Extension #73 2902f4aeb0Sopenharmony_ci 3002f4aeb0Sopenharmony_ciExtension Type 3102f4aeb0Sopenharmony_ci 3202f4aeb0Sopenharmony_ci EGL device extension 3302f4aeb0Sopenharmony_ci 3402f4aeb0Sopenharmony_ciDependencies 3502f4aeb0Sopenharmony_ci 3602f4aeb0Sopenharmony_ci Requires EGL_EXT_device_base 3702f4aeb0Sopenharmony_ci 3802f4aeb0Sopenharmony_ci Requires EGL_EXT_platform_base or EGL 1.5 3902f4aeb0Sopenharmony_ci 4002f4aeb0Sopenharmony_ci Written against the wording of EGL 1.5 4102f4aeb0Sopenharmony_ci 4202f4aeb0Sopenharmony_ciOverview 4302f4aeb0Sopenharmony_ci 4402f4aeb0Sopenharmony_ci Increasingly, EGL and its client APIs are being used in place of 4502f4aeb0Sopenharmony_ci "native" rendering APIs to implement the basic graphics 4602f4aeb0Sopenharmony_ci functionality of native windowing systems. This creates demand 4702f4aeb0Sopenharmony_ci for a method to initialize EGL displays and surfaces directly on 4802f4aeb0Sopenharmony_ci top of native GPU or device objects rather than native window 4902f4aeb0Sopenharmony_ci system objects. The mechanics of enumerating the underlying 5002f4aeb0Sopenharmony_ci native devices and constructing EGL displays and surfaces from 5102f4aeb0Sopenharmony_ci them have been solved in various platform and implementation- 5202f4aeb0Sopenharmony_ci specific ways. The EGL device family of extensions offers a 5302f4aeb0Sopenharmony_ci standardized framework for bootstrapping EGL without the use of 5402f4aeb0Sopenharmony_ci any underlying "native" APIs or functionality. 5502f4aeb0Sopenharmony_ci 5602f4aeb0Sopenharmony_ci This extension defines a method to create an EGLDisplay from an 5702f4aeb0Sopenharmony_ci EGLDeviceEXT by treating the EGLDeviceEXT as an EGLNativeDisplay 5802f4aeb0Sopenharmony_ci object. 5902f4aeb0Sopenharmony_ci 6002f4aeb0Sopenharmony_ciNew Types 6102f4aeb0Sopenharmony_ci 6202f4aeb0Sopenharmony_ci None 6302f4aeb0Sopenharmony_ci 6402f4aeb0Sopenharmony_ciNew Functions 6502f4aeb0Sopenharmony_ci 6602f4aeb0Sopenharmony_ci None 6702f4aeb0Sopenharmony_ci 6802f4aeb0Sopenharmony_ciNew Tokens 6902f4aeb0Sopenharmony_ci 7002f4aeb0Sopenharmony_ci Accepted by the <platform> parameter of eglGetPlatformDisplayEXT 7102f4aeb0Sopenharmony_ci and eglGetPlatformDisplay: 7202f4aeb0Sopenharmony_ci 7302f4aeb0Sopenharmony_ci EGL_PLATFORM_DEVICE_EXT 0x313F 7402f4aeb0Sopenharmony_ci 7502f4aeb0Sopenharmony_ciReplace the last paragraph of section 2.1 "Native Window System and 7602f4aeb0Sopenharmony_ciRendering APIs" 7702f4aeb0Sopenharmony_ci 7802f4aeb0Sopenharmony_ci "This specification defines only the EGLDeviceEXT platform, and 7902f4aeb0Sopenharmony_ci behavior specific to it. Implementations may support other 8002f4aeb0Sopenharmony_ci platforms, but their existence and behavior is defined by 8102f4aeb0Sopenharmony_ci extensions. To detect support for other platforms, clients should 8202f4aeb0Sopenharmony_ci query the EGL_EXTENSIONS string of EGL_NO_DISPLAY using 8302f4aeb0Sopenharmony_ci eglQueryString (see section 3.3). 8402f4aeb0Sopenharmony_ci 8502f4aeb0Sopenharmony_ciReplace the second sentence of the paragraph following the 8602f4aeb0Sopenharmony_cieglGetPlatformDisplay prototype 8702f4aeb0Sopenharmony_ci 8802f4aeb0Sopenharmony_ci "The only valid value for <platform> is EGL_PLATFORM_DEVICE_EXT. 8902f4aeb0Sopenharmony_ci When <platform> is EGL_PLATFORM_DEVICE_EXT, <native_display> must 9002f4aeb0Sopenharmony_ci be an EGLDeviceEXT object. Platform-specific extensions may 9102f4aeb0Sopenharmony_ci define other valid values for <platform>." 9202f4aeb0Sopenharmony_ci 9302f4aeb0Sopenharmony_ciAdd the following sentence to the end of the second paragraph after 9402f4aeb0Sopenharmony_cithe eglCreatePlatformWindowSurface prototype. 9502f4aeb0Sopenharmony_ci 9602f4aeb0Sopenharmony_ci "There are no valid values of <native_window> when <dpy> belongs 9702f4aeb0Sopenharmony_ci to the EGL_PLATFORM_DEVICE_EXT platform." 9802f4aeb0Sopenharmony_ci 9902f4aeb0Sopenharmony_ciAdd the following sentence to the end of the second paragraph after 10002f4aeb0Sopenharmony_cithe eglCreatePlatformPixmapSurface prototype. 10102f4aeb0Sopenharmony_ci 10202f4aeb0Sopenharmony_ci "There are no valid values of <native_pixmap> when <dpy> belongs 10302f4aeb0Sopenharmony_ci to the EGL_PLATFORM_DEVICE_EXT platform. 10402f4aeb0Sopenharmony_ci 10502f4aeb0Sopenharmony_ciIssues 10602f4aeb0Sopenharmony_ci 10702f4aeb0Sopenharmony_ci 1. Do EGLDevice-backed displays support window or pixmap surfaces? 10802f4aeb0Sopenharmony_ci If so, what native objects are they associated with? If not, 10902f4aeb0Sopenharmony_ci are EGLDevice-backed displays useful in any way? 11002f4aeb0Sopenharmony_ci 11102f4aeb0Sopenharmony_ci RESOLVED: This extension defines no method to create window or 11202f4aeb0Sopenharmony_ci pixmap surfaces on the EGLDeviceEXT platform. Other 11302f4aeb0Sopenharmony_ci extensions may define such functionality. Presumably, if 11402f4aeb0Sopenharmony_ci there are no other extensions that expose native window or 11502f4aeb0Sopenharmony_ci pixmap types associated with EGL devices, EGLDeviceEXT-backed 11602f4aeb0Sopenharmony_ci displays could expose EGLConfigs that only support rendering 11702f4aeb0Sopenharmony_ci to EGLStreamKHR or EGLPbuffer surfaces. 11802f4aeb0Sopenharmony_ci 11902f4aeb0Sopenharmony_ci 2. Should the EGL_PLATFORM_DEVICE_EXT platform be included in the 12002f4aeb0Sopenharmony_ci EGL specification as a special "blessed" platform, or exist 12102f4aeb0Sopenharmony_ci only as an extension like other platforms? 12202f4aeb0Sopenharmony_ci 12302f4aeb0Sopenharmony_ci RESOLVED: EGL devices are defined as part of the EGL 12402f4aeb0Sopenharmony_ci specification, so there's no reason to exclude their 12502f4aeb0Sopenharmony_ci associated platform from the core EGL specification. They are 12602f4aeb0Sopenharmony_ci not native objects, therefore they can not be referred to as a 12702f4aeb0Sopenharmony_ci native platform, even though they are used interchangeably 12802f4aeb0Sopenharmony_ci with native objects in this extension. 12902f4aeb0Sopenharmony_ci 13002f4aeb0Sopenharmony_ciRevision History: 13102f4aeb0Sopenharmony_ci 13202f4aeb0Sopenharmony_ci #6 (May 16th, 2014) James Jones 13302f4aeb0Sopenharmony_ci - Marked the extension complete 13402f4aeb0Sopenharmony_ci - Marked all issues resolved 13502f4aeb0Sopenharmony_ci 13602f4aeb0Sopenharmony_ci #5 (April 8th, 2014) James Jones 13702f4aeb0Sopenharmony_ci - Updated wording based on the EGL 1.5 spec 13802f4aeb0Sopenharmony_ci - Assigned values to tokens 13902f4aeb0Sopenharmony_ci 14002f4aeb0Sopenharmony_ci #4 (November 6th, 2013) James Jones 14102f4aeb0Sopenharmony_ci - Specified this is a device extension 14202f4aeb0Sopenharmony_ci - Requires, rather than interacts with EGL_EXT_platform_base 14302f4aeb0Sopenharmony_ci - Removed EGL_SUPPORTS_PLATFORM_DEVICE_EXT. There is no need 14402f4aeb0Sopenharmony_ci for a separate query now that the name string is listed in 14502f4aeb0Sopenharmony_ci the per-device extension string 14602f4aeb0Sopenharmony_ci 14702f4aeb0Sopenharmony_ci #3 (April 23rd, 2013) James Jones 14802f4aeb0Sopenharmony_ci - Fixed minor typos 14902f4aeb0Sopenharmony_ci 15002f4aeb0Sopenharmony_ci #2 (April 18th, 2013) James Jones 15102f4aeb0Sopenharmony_ci - Moved eglGetDisplayPointerEXT to a stand-alone extension 15202f4aeb0Sopenharmony_ci - Renamed from EGL_EXT_device_display to 15302f4aeb0Sopenharmony_ci EGL_EXT_platform_device 15402f4aeb0Sopenharmony_ci - Filled in the actual spec language modifications 15502f4aeb0Sopenharmony_ci - Replaced issue 2, since the original was moved to 15602f4aeb0Sopenharmony_ci EGL_EXT_display_attributes 15702f4aeb0Sopenharmony_ci - Reworded issue 1. 15802f4aeb0Sopenharmony_ci - Fixed some typos 15902f4aeb0Sopenharmony_ci 16002f4aeb0Sopenharmony_ci #1 (April 16th, 2013) James Jones 16102f4aeb0Sopenharmony_ci - Initial Draft 162