docs: fix intel_icd.json path
[mesa.git] / docs / specs / EGL_MESA_platform_surfaceless.txt
1 Name
2
3 MESA_platform_surfaceless
4
5 Name Strings
6
7 EGL_MESA_platform_surfaceless
8
9 Contributors
10
11 Chad Versace <chadversary@google.com>
12 Haixia Shi <hshi@google.com>
13 Stéphane Marchesin <marcheu@google.com>
14 Zach Reizner <zachr@chromium.org>
15 Gurchetan Singh <gurchetansingh@google.com>
16
17 Contacts
18
19 Chad Versace <chadversary@google.com>
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