Name EXT_platform_device Name Strings EGL_EXT_platform_device Contributors James Jones Daniel Kartch Contacts James Jones, NVIDIA (jajones 'at' nvidia.com) Status Complete Version Version 6 - May 16th, 2014 Number EGL Extension #73 Extension Type EGL client extension Dependencies Requires EGL_EXT_device_base Requires EGL_EXT_platform_base or EGL 1.5 Written against the wording of EGL 1.5 Overview Increasingly, EGL and its client APIs are being used in place of "native" rendering APIs to implement the basic graphics functionality of native windowing systems. This creates demand for a method to initialize EGL displays and surfaces directly on top of native GPU or device objects rather than native window system objects. The mechanics of enumerating the underlying native devices and constructing EGL displays and surfaces from them have been solved in various platform and implementation- specific ways. The EGL device family of extensions offers a standardized framework for bootstrapping EGL without the use of any underlying "native" APIs or functionality. This extension defines a method to create an EGLDisplay from an EGLDeviceEXT by treating the EGLDeviceEXT as an EGLNativeDisplay object. New Types None New Functions None New Tokens Accepted by the parameter of eglGetPlatformDisplayEXT and eglGetPlatformDisplay: EGL_PLATFORM_DEVICE_EXT 0x313F Replace the last paragraph of section 2.1 "Native Window System and Rendering APIs" "This specification defines only the EGLDeviceEXT platform, and behavior specific to it. Implementations may support other platforms, but their existence and behavior is defined by extensions. To detect support for other platforms, clients should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY using eglQueryString (see section 3.3). Replace the second sentence of the paragraph following the eglGetPlatformDisplay prototype "The only valid value for is EGL_PLATFORM_DEVICE_EXT. When is EGL_PLATFORM_DEVICE_EXT, must be an EGLDeviceEXT object. Platform-specific extensions may define other valid values for ." Add the following sentence to the end of the second paragraph after the eglCreatePlatformWindowSurface prototype. "There are no valid values of when belongs to the EGL_PLATFORM_DEVICE_EXT platform." Add the following sentence to the end of the second paragraph after the eglCreatePlatformPixmapSurface prototype. "There are no valid values of when belongs to the EGL_PLATFORM_DEVICE_EXT platform. Issues 1. Do EGLDevice-backed displays support window or pixmap surfaces? If so, what native objects are they associated with? If not, are EGLDevice-backed displays useful in any way? RESOLVED: This extension defines no method to create window or pixmap surfaces on the EGLDeviceEXT platform. Other extensions may define such functionality. Presumably, if there are no other extensions that expose native window or pixmap types associated with EGL devices, EGLDeviceEXT-backed displays could expose EGLConfigs that only support rendering to EGLStreamKHR or EGLPbuffer surfaces. 2. Should the EGL_PLATFORM_DEVICE_EXT platform be included in the EGL specification as a special "blessed" platform, or exist only as an extension like other platforms? RESOLVED: EGL devices are defined as part of the EGL specification, so there's no reason to exclude their associated platform from the core EGL specification. They are not native objects, therefore they can not be referred to as a native platform, even though they are used interchangeably with native objects in this extension. Revision History: #6 (May 16th, 2014) James Jones - Marked the extension complete - Marked all issues resolved #5 (April 8th, 2014) James Jones - Updated wording based on the EGL 1.5 spec - Assigned values to tokens #4 (November 6th, 2013) James Jones - Specified this is a device extension - Requires, rather than interacts with EGL_EXT_platform_base - Removed EGL_SUPPORTS_PLATFORM_DEVICE_EXT. There is no need for a separate query now that the name string is listed in the per-device extension string #3 (April 23rd, 2013) James Jones - Fixed minor typos #2 (April 18th, 2013) James Jones - Moved eglGetDisplayPointerEXT to a stand-alone extension - Renamed from EGL_EXT_device_display to EGL_EXT_platform_device - Filled in the actual spec language modifications - Replaced issue 2, since the original was moved to EGL_EXT_display_attributes - Reworded issue 1. - Fixed some typos #1 (April 16th, 2013) James Jones - Initial Draft