Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EGL_WL_bind_wayland_display and EGL_WL_create_wayland_buffer_from_image #95

Merged
merged 1 commit into from
Jan 6, 2020

Conversation

fooishbar
Copy link
Contributor

These extensions were developed by the Wayland project several years
ago, but never proposed for inclusion in the primary Khronos repository.

Unfortunately this includes tokens which alias with already-defined
values for the EGL platform extensions. Downstream implementations also
offered non-standard typedefs (e.g. PFNEGLBINDWAYLANDDISPLAYWL instead
of PFNEGLBINDWAYLANDDISPLAYWLPROC) which will have to be accounted for
in those implementations.

@fooishbar
Copy link
Contributor Author

These were originally developed by @krh and @bpeel. They have been shipped in Mesa as well as Wayland for quite some time now. We would like to stop doing it downstream and have them included in the primary registry - despite our mistake of plucking an arbitrary unregistered vendor token ('WL' for the Wayland project) and accidentally aliasing enum values with Mesa's platform tokens.

Copy link
Contributor

@oddhack oddhack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks OK. It would be possible to add aliases / #defines of the nonstandard PFNEGL* names in egl.xml rather than downstream, if that's helpful.

@fooishbar
Copy link
Contributor Author

@oddhack Yeah, that would be incredibly helpful and stop us shipping some bad hacks downstream! Should I do that next to the typedefs like EGLDEBUGPROCKHR?

@fooishbar
Copy link
Contributor Author

@oddhack I've replaced the commits in this branch with one that adds typedefs for the legacy entrypoints. This was a little bit hairy, so let me know if it was the right thing to do or if there's another suitable way.

@krh
Copy link

krh commented Nov 13, 2019

Thanks @fooishbar.

@oddhack
Copy link
Contributor

oddhack commented Nov 13, 2019

I think this can be simplified into using either typedefs of the old and new names, or #defines (if you don't mind that approach). Will give it a try if you wish, probably not until tomorrow though.

@fooishbar
Copy link
Contributor Author

I think this can be simplified into using either typedefs of the old and new names, or #defines (if you don't mind that approach). Will give it a try if you wish, probably not until tomorrow though.

Thanks, I'm fine with anything which actually works, so if you think you have a better approach please feel free. No rush on the time either: it's been 8.5 years already, so I'm sure we can live with another couple of days.

index.php Outdated Show resolved Hide resolved
@fooishbar
Copy link
Contributor Author

No rush on the time either: it's been 8.5 years already, so I'm sure we can live with another couple of days.

I hope I wasn't too literal with the wording here :P

@oddhack
Copy link
Contributor

oddhack commented Dec 12, 2019

Sorry about that. See #97 for an example. It is not elegant but hopefully will suffice. A better job would require out of scope changes to the schema and generator scripts.

…_image

These extensions were developed by the Wayland project several years
ago, but never proposed for inclusion in the primary Khronos repository.

Unfortunately this includes tokens which alias with already-defined
values for the EGL platform extensions. Downstream implementations also
offered non-standard typedefs (e.g. PFNEGLBINDWAYLANDDISPLAYWL instead
of PFNEGLBINDWAYLANDDISPLAYWLPROC) which will have to be accounted for
in those implementations.
@fooishbar
Copy link
Contributor Author

@oddhack Thanks a lot for your help! I've revised this so it uses the #define method instead of generating two typedefs (which, in hindsight, would have been treated as distinct types by the compiler).

I tested this with Weston, which uses the old non-PROC names, and it built fine.

@stonesthrow
Copy link
Contributor

If this WL extension is ready, just mark as "Approved for Merge" and assign to oddhack to have that completed.

@fooishbar fooishbar assigned fooishbar and oddhack and unassigned fooishbar Jan 6, 2020
@fooishbar
Copy link
Contributor Author

@stonesthrow PR submitters can't approve their own PRs, but I have assigned to @oddhack for merging.

@oddhack oddhack merged commit aa9b63f into KhronosGroup:master Jan 6, 2020
Tofee added a commit to Tofee/meta-webos-ports that referenced this pull request Jan 12, 2020
For Pinephone we need a newer version of Mesa, and that breaks one of
the plugins of qtwayland.
Indeed, eglmesaext.h doesn't get indirectly included by eglext.h, and
some typedefs aren't defined anymore.

This patch will become useless when Mesa ships with an updated set of
Khronos headers, because KhronosGroup/EGL-Registry#95
has now been merged.

Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>
shr-project pushed a commit to webOS-ports/meta-webos-ports that referenced this pull request Jan 12, 2020
For Pinephone we need a newer version of Mesa, and that breaks one of
the plugins of qtwayland.
Indeed, eglmesaext.h doesn't get indirectly included by eglext.h, and
some typedefs aren't defined anymore.

This patch will become useless when Mesa ships with an updated set of
Khronos headers, because KhronosGroup/EGL-Registry#95
has now been merged.

Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>
shr-project pushed a commit to webOS-ports/meta-webos-ports that referenced this pull request Jan 12, 2020
For Pinephone we need a newer version of Mesa, and that breaks one of
the plugins of qtwayland.
Indeed, eglmesaext.h doesn't get indirectly included by eglext.h, and
some typedefs aren't defined anymore.

This patch will become useless when Mesa ships with an updated set of
Khronos headers, because KhronosGroup/EGL-Registry#95
has now been merged.

Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>
emersion added a commit to emersion/wlroots that referenced this pull request May 25, 2020
This is a Mesa-specific header that was needed because some Wayland EGL
extensions were missing from the Khronos registry. Now that this has
been fixed [1] and Mesa [2] & glvnd [3] have sync'ed their headers, we
can drop this workaround.

[1]: KhronosGroup/EGL-Registry#95
[2]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4953
[3]: https://gitlab.freedesktop.org/glvnd/libglvnd/-/merge_requests/225
emersion added a commit to swaywm/wlroots that referenced this pull request Nov 18, 2020
This is a Mesa-specific header that was needed because some Wayland EGL
extensions were missing from the Khronos registry. Now that this has
been fixed [1] and Mesa [2] & glvnd [3] have sync'ed their headers, we
can drop this workaround.

[1]: KhronosGroup/EGL-Registry#95
[2]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4953
[3]: https://gitlab.freedesktop.org/glvnd/libglvnd/-/merge_requests/225
emersion added a commit to emersion/wlroots that referenced this pull request Nov 25, 2020
This is a Mesa-specific header that was needed because some Wayland EGL
extensions were missing from the Khronos registry. Now that this has
been fixed [1] and Mesa [2] & glvnd [3] have sync'ed their headers, we
can drop this workaround.

[1]: KhronosGroup/EGL-Registry#95
[2]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4953
[3]: https://gitlab.freedesktop.org/glvnd/libglvnd/-/merge_requests/225
udfn pushed a commit to udfn/wlroots that referenced this pull request Dec 8, 2020
This is a Mesa-specific header that was needed because some Wayland EGL
extensions were missing from the Khronos registry. Now that this has
been fixed [1] and Mesa [2] & glvnd [3] have sync'ed their headers, we
can drop this workaround.

[1]: KhronosGroup/EGL-Registry#95
[2]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4953
[3]: https://gitlab.freedesktop.org/glvnd/libglvnd/-/merge_requests/225
XZiar pushed a commit to XZiar/EGL-Registry that referenced this pull request Jan 22, 2022
…_image (KhronosGroup#95)

These extensions were developed by the Wayland project several years
ago, but never proposed for inclusion in the primary Khronos repository.

Unfortunately this includes tokens which alias with already-defined
values for the EGL platform extensions. Downstream implementations also
offered non-standard typedefs (e.g. PFNEGLBINDWAYLANDDISPLAYWL instead
of PFNEGLBINDWAYLANDDISPLAYWLPROC) which will have to be accounted for
in those implementations.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants