Path: blob/21.2-virgl/docs/_extra/specs/EGL_MESA_platform_surfaceless.txt
4566 views
Name12MESA_platform_surfaceless34Name Strings56EGL_MESA_platform_surfaceless78Contributors910Chad Versace <[email protected]>11Haixia Shi <[email protected]>12Stéphane Marchesin <[email protected]>13Zach Reizner <[email protected]>14Gurchetan Singh <[email protected]>1516Contacts1718Chad Versace <[email protected]>1920Status2122DRAFT2324Version2526Version 2, 2016-10-132728Number2930EGL Extension #TODO3132Extension Type3334EGL client extension3536Dependencies3738Requires EGL 1.5 or later; or EGL 1.4 with EGL_EXT_platform_base.3940This extension is written against the EGL 1.5 Specification (draft4120140122).4243This extension interacts with EGL_EXT_platform_base as follows. If the44implementation supports EGL_EXT_platform_base, then text regarding45eglGetPlatformDisplay applies also to eglGetPlatformDisplayEXT;46eglCreatePlatformWindowSurface to eglCreatePlatformWindowSurfaceEXT; and47eglCreatePlatformPixmapSurface to eglCreatePlatformPixmapSurfaceEXT.4849Overview5051This extension defines a new EGL platform, the "surfaceless" platform. This52platfom's defining property is that it has no native surfaces, and hence53neither eglCreatePlatformWindowSurface nor eglCreatePlatformPixmapSurface54can be used. The platform is independent of any native window system.5556The platform's intended use case is for enabling OpenGL and OpenGL ES57applications on systems where no window system exists. However, the58platform's permitted usage is not restricted to this case. Since the59platform is independent of any native window system, it may also be used on60systems where a window system is present.6162New Types6364None6566New Procedures and Functions6768None6970New Tokens7172Accepted as the <platform> argument of eglGetPlatformDisplay:7374EGL_PLATFORM_SURFACELESS_MESA 0x31DD7576Additions to the EGL Specification7778None.7980New Behavior8182To determine if the EGL implementation supports this extension, clients83should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.8485To obtain an EGLDisplay on the surfaceless platform, call86eglGetPlatformDisplay with <platform> set to EGL_PLATFORM_SURFACELESS_MESA.87The <native_display> parameter must be EGL_DEFAULT_DISPLAY.8889eglCreatePlatformWindowSurface fails when called with a <display> that90belongs to the surfaceless platform. It returns EGL_NO_SURFACE and91generates EGL_BAD_NATIVE_WINDOW. The justification for this unconditional92failure is that the surfaceless platform has no native windows, and93therefore the <native_window> parameter is always invalid.9495Likewise, eglCreatePlatformPixmapSurface also fails when called with a96<display> that belongs to the surfaceless platform. It returns97EGL_NO_SURFACE and generates EGL_BAD_NATIVE_PIXMAP.9899The surfaceless platform imposes no platform-specific restrictions on the100creation of pbuffers, as eglCreatePbufferSurface has no native surface101parameter. Specifically, if the EGLDisplay advertises an EGLConfig whose102EGL_SURFACE_TYPE attribute contains EGL_PBUFFER_BIT, then the EGLDisplay103permits the creation of pbuffers with that config.104105Issues106107None.108109Revision History110111Version 2, 2016-10-13 (Chad Versace)112- Assign enum values113- Define interfactions with EGL 1.4 and EGL_EXT_platform_base.114- Add Gurchetan as contributor, as he implemented the pbuffer support.115116Version 1, 2016-09-23 (Chad Versace)117- Initial version118- Posted for review at119https://lists.freedesktop.org/archives/mesa-dev/2016-September/129549.html120121122