How to request the OpenGL Core profile

Yes, it is intentional: GLES gives us more coverage across a more varied spectrum of platforms and devices, and allows us to use zero-copy paths to shared hardware buffers like dmabuf.

You can use gtk_gl_area_set_allowed_apis() with GDK_GL_API_GL to tell GLArea to bind the GL API instead of GLES.

Just be careful that unlike Mesa, some drivers—namely, older versions of the closed source nVidia binary driver—do not allow mixing GL and GLES. If that happens, you can use the GDK_DEBUG environment variable, and set GDK_DEBUG=gl-prefer-gl in your environment to tell GTK to prefer GL instead of GLES.