Preferred backing renderer for Chromium on Yocto Linux

18 views
Skip to first unread message

spbh

unread,
Nov 3, 2025, 10:40:02 AM (3 days ago) Nov 3
to angleproject
Hi,
I am running Chromium on Yocto Linux on an embedded target with Intel CPU & GPU. My intention is to get the WebGL working with hardware acceleration on Chromium.

I am able to get the hardware acceleration working for most of the Graphics Features including WebGL when i launch chromium with commandline flag "--use-angle=gl". 

Please find below the Chromium gpu report when running with ANGLE backend set to gl.

about-gpu-2025-10-27T12-27-21-921Z.txt

When i launch Chromium with any other ANGLE backing renderers like "--use-angle=gles-egl", it doesn't give me hardware acceleration. Instead it switches to Software rendering using SwiftShader.

As per the second table in the page https://chromium.googlesource.com/angle/angle , under Linux, only desktop gl & vulkan are supported as a backing renderer to ANGLE. 

1- But then does it mean that gles works only on Windows, Chrome OS & Android and not on embedded Linux (yocto based) on embedded targets like what i am using now, as per this table?

2-If yes, is desktop gl or vulkan ANGLE backing renderers advisable on embedded targets or should i get the gles/gles-egl ANGLE backing renderer working on my embedded target?

3- Also, what is the difference between -use-angle=gles-egl and --use-angle=gles (without -egl suffix)?

4- When i run chromium with "use-angle=gles", i see these below lines in the logs:
[2272:2272:1028/202932.054245:ERROR:angle_platform_impl.cc(44)] Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Intel or NVIDIA OpenGL ES drivers are not supported.
ERR: Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Intel or NVIDIA OpenGL ES drivers are not supported.
[2272:2272:1028/202932.056216:ERROR:gl_display.cc(493)] EGL Driver message (Critical) eglInitialize: Intel or NVIDIA OpenGL ES drivers are not supported.
[2272:2272:1028/202932.056271:ERROR:gl_display.cc(762)] eglInitialize OpenGLES failed with error EGL_NOT_INITIALIZED
[2272:2272:1028/202932.056346:ERROR:gl_display.cc(796)] Initialization of all EGL display types failed.

[2272:2272:1028/202932.056499:ERROR:gl_ozone_egl.cc(26)] GLDisplayEGL::Initialize failed.
[2333:2333:1028/202932.639607:ERROR:viz_main_impl.cc(185)] Exiting GPU process due to errors during initialization
[2348:2348:1028/202942.497239:ERROR:gl_display.cc(493)] EGL Driver message (Error) eglCreateContext: Requested version is not supported
Warning: eglCreateContext failed with EGL_BAD_ATTRIBUTE
While trying to discover a BackendType::OpenGL adapter.
at CheckEGL (../../third_party/dawn/src/dawn/native/opengl/UtilsEGL.cpp:84)
[2469:2469:1028/203232.050065:ERROR:gpu_blocklist.cc(71)] Unable to get gpu adapter
[2231:2231:1028/203232.050371:ERROR:service_client.cc(36)] Unexpected on_device_model service disconnect: The device's GPU is not supported.

Some of the above lines are seen when running with --use-angle=gles-egl too. But the bolded lines are something which i see only occurring when i run with "--use-angle=gles"

Does this mean that with the Intel GPU which i am using, ANGLE is not compatible with its Intel OpenGL ES drivers and due to this reason, "--use-angle=gles" or --use-angle=gles-egl options never works with hardware acceleration for chromium?

Geoff Lang

unread,
Nov 3, 2025, 12:00:29 PM (3 days ago) Nov 3
to shiraspa...@gmail.com, angleproject

1- But then does it mean that gles works only on Windows, Chrome OS & Android and not on embedded Linux (yocto based) on embedded targets like what i am using now, as per this table?

GLES is really only officially supported on Android and ChromeOS where the drivers give a proper GLES driver. On other OSs like Windows and Linux, wgl and glx sometimes allow creating GLES contexts.
 

2-If yes, is desktop gl or vulkan ANGLE backing renderers advisable on embedded targets or should i get the gles/gles-egl ANGLE backing renderer working on my embedded target?

When running Chrome on Linux, I would prefer gl, then vulkan/gles-egl. Chrome prefers gl on Linux right now but vulkan often works as well.
 

3- Also, what is the difference between -use-angle=gles-egl and --use-angle=gles (without -egl suffix)?

Linux can create GL contexts with GLX or EGL. GLX was first and got the name `gles`, when EGL started being supported on linux we needed the new name `gles-egl`. Your driver has to support EGL for it to work which is less universally available.
 

4- When i run chromium with "use-angle=gles", i see these below lines in the logs:
[2272:2272:1028/202932.054245:ERROR:angle_platform_impl.cc(44)] Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Intel or NVIDIA OpenGL ES drivers are not supported.
ERR: Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Intel or NVIDIA OpenGL ES drivers are not supported.
[2272:2272:1028/202932.056216:ERROR:gl_display.cc(493)] EGL Driver message (Critical) eglInitialize: Intel or NVIDIA OpenGL ES drivers are not supported.
[2272:2272:1028/202932.056271:ERROR:gl_display.cc(762)] eglInitialize OpenGLES failed with error EGL_NOT_INITIALIZED
[2272:2272:1028/202932.056346:ERROR:gl_display.cc(796)] Initialization of all EGL display types failed.

[2272:2272:1028/202932.056499:ERROR:gl_ozone_egl.cc(26)] GLDisplayEGL::Initialize failed.
[2333:2333:1028/202932.639607:ERROR:viz_main_impl.cc(185)] Exiting GPU process due to errors during initialization
[2348:2348:1028/202942.497239:ERROR:gl_display.cc(493)] EGL Driver message (Error) eglCreateContext: Requested version is not supported
Warning: eglCreateContext failed with EGL_BAD_ATTRIBUTE
While trying to discover a BackendType::OpenGL adapter.
at CheckEGL (../../third_party/dawn/src/dawn/native/opengl/UtilsEGL.cpp:84)
[2469:2469:1028/203232.050065:ERROR:gpu_blocklist.cc(71)] Unable to get gpu adapter
[2231:2231:1028/203232.050371:ERROR:service_client.cc(36)] Unexpected on_device_model service disconnect: The device's GPU is not supported.

Some of the above lines are seen when running with --use-angle=gles-egl too. But the bolded lines are something which i see only occurring when i run with "--use-angle=gles"

Does this mean that with the Intel GPU which i am using, ANGLE is not compatible with its Intel OpenGL ES drivers and due to this reason, "--use-angle=gles" or --use-angle=gles-egl options never works with hardware acceleration for chromium?


You're seeing errors because the GLES contexts on GLX don't work great. I would avoid `gles` on Linux. 

--
You received this message because you are subscribed to the Google Groups "angleproject" group.
To unsubscribe from this group and stop receiving emails from it, send an email to angleproject...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/angleproject/fdc64d09-ef65-46f9-8368-9e5fc59c4586n%40googlegroups.com.

shiras pallikkara

unread,
Nov 3, 2025, 3:01:13 PM (3 days ago) Nov 3
to Geoff Lang, angleproject
Thanks for the quick response.

So I understand I have to continue with 
desktop gl as the backing renderer for my embedded linux target.. Does using desktop gl against gles, affect the performance on embedded targets as gles is actually meant for embedded and gl is meant for desktop environments..?


Geoff Lang

unread,
Nov 3, 2025, 4:02:51 PM (3 days ago) Nov 3
to shiras pallikkara, angleproject
Performance will likely be unaffected, especially if the device already has a desktop GL driver. Besides, ANGLE will only be using GLES-level features of desktop GL.

Geoff

shiras pallikkara

unread,
Nov 3, 2025, 8:33:08 PM (3 days ago) Nov 3
to Geoff Lang, angleproject
Ok, thanks for the clarification.
Reply all
Reply to author
Forward
0 new messages