X11-EGL support request for testing

I am working on Wayland support in Blender. For this to eventually be enabled, Blender has to switch from GLX to EGL for OpenGL context creation.

I created a pull request ⚙ D12034 GHOST/X11: enable EGL to enable EGL for X11 during the 3.0 alpha development phase, so this can be tested properly on a much wider user basis. To make sure that this works, I would like to ask users and developers to test the experimental x11-egl build at https://builder.blender.org/download/experimental/blender-3.0.0-alpha+x11-egl.e07b67740471-linux.x86_64-release.tar.xz. This only touches X11. Wayland will stay disabled in this build.

If you encounter errors, please report them here or in the original pull request D12034 and paste the output of inxi -G -xx. If this works for you, maybe just give this a thumbs up so I can see how large the “experimental group” is.

1 Like

Is there any particular error you’re looking for? In other words, is starting Blender and trying a couple things sufficient testing for this patch? Or is more in-depth testing required?

Yes, I think so. A testing protocol could be:

  1. start Blender
  2. use parts of the UI like menus and other windows
  3. open a demo project and render to an image
  4. if you have a VR headset (or monado-service), start a VR session to test OpenXR support (I think this only works on nvidia)

Blender used to print the EGL version to stdout, but I think this was removed recently. To make sure you are indeed using the EGL version (and not another build) you can try to start a VR session and it should print the available extensions to stdout, e.g. EGL_KHR_fence_sync: true.

Since EGL only creates the OpenGL context, I would only expect issues when initialising OpenGL and when selecting a configuration. So, if anything goes wrong there could be obvious issues like straight out crashes, or more subtle issues related to the OpenGL configuration. These subtle issues could be that parts of the UI are rendered without an alpha channel or that offscreen rendering just gives you a black image.