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

Implement a bunch of additional EGL extensions #877

Merged
merged 11 commits into from Jul 4, 2023

Conversation

linkmauve
Copy link
Contributor

@linkmauve linkmauve commented Jul 2, 2023

All of these are used or at least linked to by Wayland compositors, this makes it much easier to debug what is going on while debugging those, as otherwise the function calls just don’t get displayed in apitrace dump.

I have tested those against both Weston and Catacomb, on iris, lima and nouveau.

This series is more easily read per commit than as a whole.

I’m not quite sure how to best handle the third commit, which would look much better if I would basically import drm_fourcc.h, but then keeping it up to date might be an issue.

Supersedes #876.

Latest Khronos headers changed the rects argument to be const, which
caused a build failure here.
This extension allows programs to use efficient memory layouts.

Ideally both formats and modifiers would get displayed as enums, or at
least as hex, but I’m not sure it makes sense to copy the full
drm_fourcc.h in there.

I have tested this commit against both Weston and Catacomb, two
Wayland compositors.
This extension has values which conflict with EGL_KHR_platform_x11,
EGL_KHR_platform_gbm and EGL_KHR_platform_wayland, I’m not completely
sure how to handle that.
@jrfonseca
Copy link
Member

Looks good AFAICT. Thanks.

@jrfonseca jrfonseca merged commit 55f5b47 into apitrace:master Jul 4, 2023
10 checks passed
@jrfonseca
Copy link
Member

I’m not quite sure how to best handle the third commit, which would look much better if I would basically import drm_fourcc.h, but then keeping it up to date might be an issue.

I have no issues with the commit as is, as it doesn't break anything.

Including drm_fourcc.h might be a hassle, as it might not be always present, especially outside Linux. The best is to duplicate the enum.

Another solution is to wrap the FourCC codes with trace::Repr, which allows to give a human legible representation to any value. You can see an example of using this to wrap Direct3D shader byte code with a human legible disassembly on https://github.com/apitrace/apitrace/blob/master/wrappers/d3dcommonshader.cpp

@linkmauve linkmauve deleted the egl-specs branch July 12, 2023 10:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants