Requesting feedback on disallowing handle attribute values in EGLint attribute lists
Chad Versace
chad.versace at linux.intel.com
Wed Oct 9 10:01:03 PDT 2013
Khronos is proposing a change affecting EGL attribute lists, and they
are requesting feedback on this forum thread [1]. They have specifically
requested feedback from the opensource community.
[1]
http://www.khronos.org/message_boards/showthread.php/9138-Requesting-feedback-on-disallowing-handle-attribute-values-in-EGLint-attribute-lists
The root of the problem is that the EGL headers define EGLint to be
32-bit, but the EGL spec states that EGLint is large enough to hold
pointers and "handles". This, of course, causes a conflict on 64-bit
platforms.
Don't worry. Khronos does not intend to break the EGL ABI by redefining
EGLint as 64-bit.
The EGL spec authors' intention was that EGL attribute lists (whose type
is an array of EGLint) should be able to hold pointer values. In
reality, there are only two instances where an attribute list needs to
hold a pointer: the EGL_MATCH_NATIVE_PIXMAP attribute to eglChooseConfig
and the EGL_CL_EVENT_HANDLE_KHR attribute to eglCreateSyncKHR for
EGL_KHR_cl_event.
The take-away message is: Don't try to put pointers in EGLint attribute
lists, because it will break on 64-bit platforms. For future EGL
extensions, Khronos is planning to define a new EGLattrib type for
attribute lists, which will properly hold a pointer.
More information about the xorg-devel
mailing list