1Name 2 3 EXT_platform_device 4 5Name Strings 6 7 EGL_EXT_platform_device 8 9Contributors 10 11 James Jones 12 Daniel Kartch 13 14Contacts 15 16 James Jones, NVIDIA (jajones 'at' nvidia.com) 17 18Status 19 20 Complete 21 22Version 23 24 Version 6 - May 16th, 2014 25 26Number 27 28 EGL Extension #73 29 30Extension Type 31 32 EGL device extension 33 34Dependencies 35 36 Requires EGL_EXT_device_base 37 38 Requires EGL_EXT_platform_base or EGL 1.5 39 40 Written against the wording of EGL 1.5 41 42Overview 43 44 Increasingly, EGL and its client APIs are being used in place of 45 "native" rendering APIs to implement the basic graphics 46 functionality of native windowing systems. This creates demand 47 for a method to initialize EGL displays and surfaces directly on 48 top of native GPU or device objects rather than native window 49 system objects. The mechanics of enumerating the underlying 50 native devices and constructing EGL displays and surfaces from 51 them have been solved in various platform and implementation- 52 specific ways. The EGL device family of extensions offers a 53 standardized framework for bootstrapping EGL without the use of 54 any underlying "native" APIs or functionality. 55 56 This extension defines a method to create an EGLDisplay from an 57 EGLDeviceEXT by treating the EGLDeviceEXT as an EGLNativeDisplay 58 object. 59 60New Types 61 62 None 63 64New Functions 65 66 None 67 68New Tokens 69 70 Accepted by the <platform> parameter of eglGetPlatformDisplayEXT 71 and eglGetPlatformDisplay: 72 73 EGL_PLATFORM_DEVICE_EXT 0x313F 74 75Replace the last paragraph of section 2.1 "Native Window System and 76Rendering APIs" 77 78 "This specification defines only the EGLDeviceEXT platform, and 79 behavior specific to it. Implementations may support other 80 platforms, but their existence and behavior is defined by 81 extensions. To detect support for other platforms, clients should 82 query the EGL_EXTENSIONS string of EGL_NO_DISPLAY using 83 eglQueryString (see section 3.3). 84 85Replace the second sentence of the paragraph following the 86eglGetPlatformDisplay prototype 87 88 "The only valid value for <platform> is EGL_PLATFORM_DEVICE_EXT. 89 When <platform> is EGL_PLATFORM_DEVICE_EXT, <native_display> must 90 be an EGLDeviceEXT object. Platform-specific extensions may 91 define other valid values for <platform>." 92 93Add the following sentence to the end of the second paragraph after 94the eglCreatePlatformWindowSurface prototype. 95 96 "There are no valid values of <native_window> when <dpy> belongs 97 to the EGL_PLATFORM_DEVICE_EXT platform." 98 99Add the following sentence to the end of the second paragraph after 100the eglCreatePlatformPixmapSurface prototype. 101 102 "There are no valid values of <native_pixmap> when <dpy> belongs 103 to the EGL_PLATFORM_DEVICE_EXT platform. 104 105Issues 106 107 1. Do EGLDevice-backed displays support window or pixmap surfaces? 108 If so, what native objects are they associated with? If not, 109 are EGLDevice-backed displays useful in any way? 110 111 RESOLVED: This extension defines no method to create window or 112 pixmap surfaces on the EGLDeviceEXT platform. Other 113 extensions may define such functionality. Presumably, if 114 there are no other extensions that expose native window or 115 pixmap types associated with EGL devices, EGLDeviceEXT-backed 116 displays could expose EGLConfigs that only support rendering 117 to EGLStreamKHR or EGLPbuffer surfaces. 118 119 2. Should the EGL_PLATFORM_DEVICE_EXT platform be included in the 120 EGL specification as a special "blessed" platform, or exist 121 only as an extension like other platforms? 122 123 RESOLVED: EGL devices are defined as part of the EGL 124 specification, so there's no reason to exclude their 125 associated platform from the core EGL specification. They are 126 not native objects, therefore they can not be referred to as a 127 native platform, even though they are used interchangeably 128 with native objects in this extension. 129 130Revision History: 131 132 #6 (May 16th, 2014) James Jones 133 - Marked the extension complete 134 - Marked all issues resolved 135 136 #5 (April 8th, 2014) James Jones 137 - Updated wording based on the EGL 1.5 spec 138 - Assigned values to tokens 139 140 #4 (November 6th, 2013) James Jones 141 - Specified this is a device extension 142 - Requires, rather than interacts with EGL_EXT_platform_base 143 - Removed EGL_SUPPORTS_PLATFORM_DEVICE_EXT. There is no need 144 for a separate query now that the name string is listed in 145 the per-device extension string 146 147 #3 (April 23rd, 2013) James Jones 148 - Fixed minor typos 149 150 #2 (April 18th, 2013) James Jones 151 - Moved eglGetDisplayPointerEXT to a stand-alone extension 152 - Renamed from EGL_EXT_device_display to 153 EGL_EXT_platform_device 154 - Filled in the actual spec language modifications 155 - Replaced issue 2, since the original was moved to 156 EGL_EXT_display_attributes 157 - Reworded issue 1. 158 - Fixed some typos 159 160 #1 (April 16th, 2013) James Jones 161 - Initial Draft 162