[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