GtkGlArea fails with Intel chipsets

We (VICE), have a longstanding problem with GtkGlArea failing on Intel GPU’s. Especially on Windows, which unfortunately is most of our users.

Is there some workaround for this, except using Cairo, which we currently request our users select as a fallback. Gtk (epoxy?) reports it supports OpenGL 3.2+ with Intel chipsets (specsheets usually indicate much higher OpenGL standards), but either realizing a GtkGlArea either immediately fails or it runs for a few minutes and then segfaults.

Has anyone had similar issues?

I am not aware of segfaults on Linux.

On Windows, there are known issues with the Intel GL driver, but the driver is a black box, so there’s not much that can be done.

In general, GtkGLArea doesn’t do much on its own, but it definitely should not segfault.

I’m afraid you’ll have to create a block/allow-list, and decide whether or not to use the fallback code by default depending on that list.

Hi Bas! That might be of interest to you:

Thank you, I’ll have a closer look soon. When we get new reports of Intel OpenGL failing, I’ll suggest using the GDK_GL=backend variable, see if that makes a difference.

@ebassi: After some more investigation, it looks like the segfaults are limited to Windows indeed.

I activated the Intel GPU in my BIOS, but with my CPU (Intel i5-7400), I of course cannot get the driver/GtkGlArea to fail on Windows. The reports I got so far seem to indicate the failures mostly happen on older gen/lower-end Intel systems, but not always.

Usually Gtk aborts immediately or shows a GtkGlArea with nothing rendered on it, sometimes it’ll run for a few minutes and then segfault. But as you said, the Windows Intel driver is a black box, so nothing we can do about it.

One of our devs is working on patches for Gtk, mostly meant to fix issues with rendering on MacOS, but perhaps it’ll ‘magically’ help with Windows as well. Not holding my breath though =)

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.