Vulkan NOT enabled but "Default ANGLE Vulkan" is enabled, what will happen?

2,146 views
Skip to first unread message

from_wuhan_with_v

unread,
May 14, 2024, 12:32:27 PMMay 14
to angleproject
In chrome://gpu, it shows that Vulkan is disabled, but if I enable "Default ANGLE Vulkan" in chrome://flags, is ANGLE still using Vulkan in this scenario? Also, What does "Vulkan from ANGLE" flag do? Is it recommended to enable it?

Shahbaz Youssefi

unread,
May 14, 2024, 12:54:31 PMMay 14
to angleproject
Hi,

There are two entities that may be using Vulkan. One is Chrome itself, and one is ANGLE. When "Vulkan" is enabled in Chrome, it means that Chrome uses Vulkan itself for rendering and compositing. ANGLE would only be used for WebGL, which itself may be rendering using Vulkan (or not, like GL). In contrast, if "Vulkan" is disabled in Chrome, it means that Chrome is making OpenGL calls, which goes through ANGLE. ANGLE may then be translating those calls to Vulkan (or not). You can tell what ANGLE is using by looking at the GL_RENDERER in chrome://gpu.

So there are three related features:

- Vulkan: Whether Chrome should use Vulkan directly
- DefaultANGLEVulkan: Whether ANGLE should use Vulkan
- VulkanFromANGLE: Whether Chrome should share its Vulkan objects with ANGLE. This lets Vulkan+DefaultANGLEVulkan work more efficiently because Chrome won't have to talk to ANGLE through the GL_EXT_external_objects interface.

To reiterate the answer to your specific question ("Vulkan NOT enabled but "Default ANGLE Vulkan" is enabled, what will happen?"), Chrome would be making GL calls and ANGLE would be translating them to Vulkan.

> Is it recommended to enable it?
I work on the Vulkan backend of ANGLE, and I have it enabled on my machines (all Linux). There are a number of things in the Vulkan backend that make it more efficient than even the GL backend. Chrome's Vulkan is not completely stable however (though I also have that enabled, so it _is_ very usable). So, it's really up to yourself whether you want to enable it. If you do, make sure to enable all three features for the best experience. Except for Android, never enable Chrome Vulkan without enabling ANGLE Vulkan, that's not supported (nor would it have been efficient).

FYI, I did try enabling Vulkan on someone else's machine on windows, and Chrome was very laggy. It looked like Chrome's compositor never expected to have to interface Vulkan with windows' window system. I wouldn't recommend it there.

Cheers,

from_wuhan_with_v

unread,
May 14, 2024, 6:42:52 PMMay 14
to angleproject
Thanks for your reply.
It seems to me that Vulkan backend for ANGLE only works under X11.  In Wayland, enabling Default ANGLE Vulkan in chrome://flags still ends up with outputs in chrome://gpu like this: 

GL implementation parts         : (gl=egl-angle,angle=opengl)
Display type                    : ANGLE_OPENGL
GL_VENDOR                       : Google Inc. (Intel)
GL_RENDERER                     : ANGLE (Intel, Mesa Intel(R) HD Graphics 630 (KBL GT2), OpenGL ES 3.2 Mesa 24.0.7)

Under X11 or launch Chrome in XWayland mode, angle=vulkan is properly activated. 
Reply all
Reply to author
Forward
0 new messages