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

EGL_CHROMIUM_sync_control extension missing from EGL-Registry #115

Closed
pasikarkkainen opened this issue Oct 8, 2020 · 13 comments
Closed

Comments

@pasikarkkainen
Copy link

It seems for some reason "EGL_CHROMIUM_sync_control" extension is missing from the registry. Specification is available at https://chromium.googlesource.com/chromium/src/gpu/+/master/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_sync_control.txt

At least Mesa implements EGL_CHROMIUM_sync_control extension since 2014, and for example Firefox is planning to start using it with the (recently introduced) EGL/X11 backend (https://bugzilla.mozilla.org/show_bug.cgi?id=1640779). Chromium afaik already uses it. There are probably other users aswell.

@rmader
Copy link
Contributor

rmader commented Oct 8, 2020

For the record: it may make sense to rename it to EGL_ANGLE_sync_control to match EGL_ANGLE_sync_control_rate (#116)

@oddhack
Copy link
Contributor

oddhack commented Oct 9, 2020

We don't include extensions in the registry unless the authors ask for them to be included. Given the age of the extension, it was probably done internally at that time and the author simply didn't realize, or forgot to submit it here, then moved on to other things. The only identified contact is Stéphane Marchesin and if you want to reach out to them, or to the Chromium project, and ask them to submit the extension here, that would be great.

@stonesthrow
Copy link
Contributor

👍

@pasikarkkainen
Copy link
Author

pasikarkkainen commented Aug 16, 2021

I managed to contact Stéphane Marchesin who is marked as the contact for EGL_CHROMIUM_sync_control extension in the spec. This is the response I got:

For Chrome OS (which is what I work on, and why this extension was made),
we have stopped using sync_control circa 2015, when Chrome OS moved all
the WSI stuff outside of the driver. Now we use external eglimages as our
render targets, and then take those buffers to DRM/KMS directly to display
them. In other words, we don't use eglSwapBuffers and friends, and as such
we don't have a need for this extension because we do our own frame
scheduling directly on the display driver.

EGL_CHROMIUM_sync_control extension is marked as "Related" in another recently merged EGL_ANGLE_sync_control_rate extension ( https://github.com/KhronosGroup/EGL-Registry/blob/master/extensions/ANGLE/EGL_ANGLE_sync_control_rate.txt ) so for completeness it would of course be good to have EGL_CHROMIUM_sync_control spec merged aswell, but it sounds like google does not have interest for the extension anymore..

@oddhack
Copy link
Contributor

oddhack commented Aug 18, 2021

... so for completeness it would of course be good to have EGL_CHROMIUM_sync_control spec merged aswell, but it sounds like google does not have interest for the extension anymore..

Realistically all that can be done is to create a stub extension specification quoting what you've learned here, in case someone raises the question in the future, and likewise create a stub extension interface in egl.xml (or an actual extension if the API is known from their SDKs). If you want to make a PR along those lines I think it would be accepted - you would want to include a disclaimer in the "specification" saying that it is not an official Google submission, just a community attempt to document the old extension. We have a few GL extension specs like that already.

@stonesthrow
Copy link
Contributor

Checking back, is this issue ready for closure? or do you have action?

@pasikarkkainen
Copy link
Author

Well, as it seems the original authors are not interested in creating a PR for this, i guess I can copy the extension spec from https://chromium.googlesource.com/chromium/src/gpu/+/refs/heads/main/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_sync_control.txt and create a PR here, with the notes @oddhack mentioned..

I won't have time for this right now, but hopefully I will have before not too long from now.
Thanks for pinging @stonesthrow

@stonesthrow
Copy link
Contributor

I'll leave open for you to follow up then.

@stonesthrow
Copy link
Contributor

ANGLE has both extensions in angle/extensions.
The EGL registry has EGL_ANGLE_sync_control_rate.txt
So its up to Chromium if EGL_CHROMIUM_sync_control is added to the registry.
If this is not important, then lets close this issue.

@pasikarkkainen
Copy link
Author

It seems we don't have any EGL_CHROMIUM extensions in EGL-Registry so far.

Thus I'm not sure if I'm allowed to copy and add "EGL_CHROMIUM_sync_control" extension myself, as that would introduce the whole CHROMIUM directory.. what's the policy on that? Does the directory need to be added by someone from CHROMIUM ?

Would be good if someone from CHROMIUM did this, but I guess they haven't been interested in having their extensions in EGL-Registry ..

@stonesthrow
Copy link
Contributor

It would be totally up to the Chromium team, whether they want to add/expose extensions to the registry or not. I can try and contact someone, but since they have not published any extensions, I would think that is their policy.
Let me ask a few Googlers on the Chromium team and see if there is a policy. But neither I or you should because its a vendor purview.

@stonesthrow
Copy link
Contributor

"The ANGLE policy is to skip upstreaming extensions unless we determine it's needed for other teams (outside Google generally)."

  • I will use this as Chromium policy. So no Chromium extensions will be expected.
    So this issue can be closed and will not fix.

@stonesthrow
Copy link
Contributor

Will not add extension to registry per Chromium policy.

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

No branches or pull requests

4 participants