Repository navigation
WebGL No Hardware Acceleration on Jetson #1458
Copy link
Copy link
Open
Labels
Description
As described in #1456, I am setting up WPEWebkit on Nvidia Jetson Xavier AGX with Weston on Jetpack 5.1.4
I am using libwpe 1.14.2, wpebackend-fdo 1.14.3, and wpewebkit 2.38.6.
I have tried three scenarios:
- Compiling normally, with all the flags untouched in
OptionsWPE.cmake - Turn off
USE_LIBEPOXY - Turn off
USE_LIBEPOXYand turn onUSE_ANGLE,USE_ANGLE_EGLandUSE_ANGLE_WEBGL
The results of each of the above
- Compiles.
WebGLis operational but no hardware acceleration present. - Compiles.
WebGLis operational but no hardware acceleration present. - Does not compile. At first, I ran into this issue, which seems related to
USE_NICOSIAI turned off../Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerDmabuf.cpp:107:5: error: ‘glEGLImageTargetTexture2DOES’ was not declared in this scopeUSE_NICOSIAand ran into some more issues likeSo I turned off../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3159:41: error: no match for call to ‘(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor()::<lambda(WebCore::TextureMapperPlatformLayerProxyGL&)>) (WebCore::TextureMapperPlatformLayerProxy&)’USE_TEXTURE_MAPPERandUSE_TEXTURE_MAPPER_GLand ran into more issues like../Source/WebCore/platform/graphics/texmap/TextureMapperSolidColorLayer.h:36:10: error: ‘void WebCore::TextureMapperSolidColorLayer::paintToTextureMapper(WebCore::TextureMapper&, const WebCore::FloatRect&, const WebCore::TransformationMatrix&, float)’ marked ‘override’, but does not override
Some additional background information:
- I installed
chromiumfrom a non-snap source andWebGLhardware acceleration works - I have used
lsofto make sure these 3 libraries are loadedbut it seems somehow* /usr/lib/aarch64-linux-gnu/tegra-egl/libEGL_nvidia.so.0 * /usr/lib/aarch64-linux-gnu/tegra-egl/libGLESv2_nvidia.so.2 * /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.35.5.0WPEWebkitis not calling them but instead some software rendering library like mesa. For context thelibEGL_mesa.sois also loaded and that seems to be doing the work setting up software rendering context.
So I am wondering if there are some code changes required in WPEWebkit to make hardware acceleration work in Jetson? Alternatively, is there some combination of flags that can make WPEWebkit compile with ANGLE? chromium uses ANGLE and apparently it correctly enables hardware acceleration.
Thank you!
Reactions are currently unavailable
Activity
magomez commentedon Feb 7, 2025
If WebGL is working, despite not accelerated, then it's not a WPE problem.
The problem is probably that libepoxy is not using the nvidia version of EGL/GLESv2.
I'm not an expert on libepoxy, but I guess that, when building, it uses pkg-config to find the libEGL/libGLESv2 libraries that it should use, creates the wrappers and links to them. I guess in you system, for some reason, the libraries that it's using are the mesa ones and not the nvidia ones, as you want. Maybe because the libraries have a different name. Maybe because you installed the nvidia version first and then the mesa, which overwrote the nvidia pkg-config file (assuming that you have a pkg-config file for the nvidia installation).
xinsonglin-bc commentedon Feb 8, 2025
And my other question regarding ANGLE. Just to be clear, that is not currently supported correct?
magomez commentedon Feb 10, 2025
MG-ng commentedon Mar 11, 2026
Hey @xinsonglin-bc ,
You wrote "I installed chromium from a non-snap source and WebGL hardware acceleration works"
May I ask you from which source you got that?
Kind regards
xinsonglin-bc commentedon Mar 11, 2026
It's been a while but I remember getting the tar ball from the official website!
MG-ng commentedon Mar 18, 2026
Ah, okay, interesting, thank!