[Mesa-dev] [RFC] New EGL extension: EGL_EXT_platform_display

Chad Versace chad.versace at linux.intel.com
Thu Feb 21 13:16:47 PST 2013


On 02/20/2013 05:44 PM, Eric Anholt wrote:
> Chad Versace <chad.versace at linux.intel.com> writes:
> 
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> I'm seeking feedback on an EGL extension that I'm drafting. The ideas have
>> already been discussed at Khronos meetings to a good reception, but I want
>> feedback from Mesa developers too.
>>
>> Summary
>> - -------
>> The extension, tentatively named EGL_EXT_platform_display, enables EGL clients
>> to specify to which platform (X11, Wayland, gbm, etc) an EGL resource
>> (EGLDisplay, EGLSurface, etc) belongs when the resource is derived from
>> a platform-native type. As a corollary, the extension enables the creation of
>> EGL resources from different platforms within a single process.
>>
>>
>> Feedback
>> - --------
>> I'd like to hear feeback about the details below. Do you see any potential
>> problems? Is it lacking a feature that you believe should be present?
> 
> Seems pretty reasonable as an outline.  I'm not clear, though, what are
> the rules on sharing EGL resources like EGLImages between EGLDisplays?

If I interpreted correctly all the pertinent EGL specs, currently no resource
sharing is allowed between EGLDisplays. So, the EGL_EXT_display_platform
doesn't need to define additional restrictions here.

Here's my reasoning based on my interpretation of the specs. I can think of
four resources that can potentially be shared:

  - EGLContext

    The EGL 1.4 spec states that all contexts in a share group must belong to
    the same display. This restriction should not be lifted by
    EGL_EXT_platform_display.

  - EGLSurface

    I could find no text in the EGL 1.4 discussing sharing of EGLSurfaces, so the
    EGL_EXT_platform_display spec should explicitly ban sharing them between
    displays from different platforms. If necessary, a layered extension can add
    sharing for special cases.

  - EGLImage

    EGLImages are created with respect to an EGLDisplay and EGLContext, so I
    assume that they can be shared only among contexts within same share group.
    The EGL_KHR_image_base specs give any useful details about sharing.

  - EGLStream

    An EGLStream is created with respect to an EGLDisplay, but not a context.
    Because the spec does not say otherwise, I assume EGLStreams also cannot
    be shared across displays.


More information about the mesa-dev mailing list