• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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