Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/docs/_extra/specs/EGL_MESA_platform_surfaceless.txt
4566 views
1
Name
2
3
MESA_platform_surfaceless
4
5
Name Strings
6
7
EGL_MESA_platform_surfaceless
8
9
Contributors
10
11
Chad Versace <[email protected]>
12
Haixia Shi <[email protected]>
13
Stéphane Marchesin <[email protected]>
14
Zach Reizner <[email protected]>
15
Gurchetan Singh <[email protected]>
16
17
Contacts
18
19
Chad Versace <[email protected]>
20
21
Status
22
23
DRAFT
24
25
Version
26
27
Version 2, 2016-10-13
28
29
Number
30
31
EGL Extension #TODO
32
33
Extension Type
34
35
EGL client extension
36
37
Dependencies
38
39
Requires EGL 1.5 or later; or EGL 1.4 with EGL_EXT_platform_base.
40
41
This extension is written against the EGL 1.5 Specification (draft
42
20140122).
43
44
This extension interacts with EGL_EXT_platform_base as follows. If the
45
implementation supports EGL_EXT_platform_base, then text regarding
46
eglGetPlatformDisplay applies also to eglGetPlatformDisplayEXT;
47
eglCreatePlatformWindowSurface to eglCreatePlatformWindowSurfaceEXT; and
48
eglCreatePlatformPixmapSurface to eglCreatePlatformPixmapSurfaceEXT.
49
50
Overview
51
52
This extension defines a new EGL platform, the "surfaceless" platform. This
53
platfom's defining property is that it has no native surfaces, and hence
54
neither eglCreatePlatformWindowSurface nor eglCreatePlatformPixmapSurface
55
can be used. The platform is independent of any native window system.
56
57
The platform's intended use case is for enabling OpenGL and OpenGL ES
58
applications on systems where no window system exists. However, the
59
platform's permitted usage is not restricted to this case. Since the
60
platform is independent of any native window system, it may also be used on
61
systems where a window system is present.
62
63
New Types
64
65
None
66
67
New Procedures and Functions
68
69
None
70
71
New Tokens
72
73
Accepted as the <platform> argument of eglGetPlatformDisplay:
74
75
EGL_PLATFORM_SURFACELESS_MESA 0x31DD
76
77
Additions to the EGL Specification
78
79
None.
80
81
New Behavior
82
83
To determine if the EGL implementation supports this extension, clients
84
should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
85
86
To obtain an EGLDisplay on the surfaceless platform, call
87
eglGetPlatformDisplay with <platform> set to EGL_PLATFORM_SURFACELESS_MESA.
88
The <native_display> parameter must be EGL_DEFAULT_DISPLAY.
89
90
eglCreatePlatformWindowSurface fails when called with a <display> that
91
belongs to the surfaceless platform. It returns EGL_NO_SURFACE and
92
generates EGL_BAD_NATIVE_WINDOW. The justification for this unconditional
93
failure is that the surfaceless platform has no native windows, and
94
therefore the <native_window> parameter is always invalid.
95
96
Likewise, eglCreatePlatformPixmapSurface also fails when called with a
97
<display> that belongs to the surfaceless platform. It returns
98
EGL_NO_SURFACE and generates EGL_BAD_NATIVE_PIXMAP.
99
100
The surfaceless platform imposes no platform-specific restrictions on the
101
creation of pbuffers, as eglCreatePbufferSurface has no native surface
102
parameter. Specifically, if the EGLDisplay advertises an EGLConfig whose
103
EGL_SURFACE_TYPE attribute contains EGL_PBUFFER_BIT, then the EGLDisplay
104
permits the creation of pbuffers with that config.
105
106
Issues
107
108
None.
109
110
Revision History
111
112
Version 2, 2016-10-13 (Chad Versace)
113
- Assign enum values
114
- Define interfactions with EGL 1.4 and EGL_EXT_platform_base.
115
- Add Gurchetan as contributor, as he implemented the pbuffer support.
116
117
Version 1, 2016-09-23 (Chad Versace)
118
- Initial version
119
- Posted for review at
120
https://lists.freedesktop.org/archives/mesa-dev/2016-September/129549.html
121
122