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_LIBEPOXY and turn on USE_ANGLE, USE_ANGLE_EGL and USE_ANGLE_WEBGL
The results of each of the above
- Compiles.
WebGL is operational but no hardware acceleration present.
- Compiles.
WebGL is operational but no hardware acceleration present.
- Does not compile. At first, I ran into this issue, which seems related to
USE_NICOSIA
../Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerDmabuf.cpp:107:5: error: ‘glEGLImageTargetTexture2DOES’ was not declared in this scope
I turned off USE_NICOSIA and ran into some more issues like
../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3159:41: error: no match for call to ‘(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor()::<lambda(WebCore::TextureMapperPlatformLayerProxyGL&)>) (WebCore::TextureMapperPlatformLayerProxy&)’
So I turned off USE_TEXTURE_MAPPER and USE_TEXTURE_MAPPER_GL and 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
chromium from a non-snap source and WebGL hardware acceleration works
- I have used
lsof to make sure these 3 libraries are loaded
* /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.0
but it seems somehow WPEWebkit is not calling them but instead some software rendering library like mesa. For context the libEGL_mesa.so is 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!
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, andwpewebkit 2.38.6.I have tried three scenarios:
OptionsWPE.cmakeUSE_LIBEPOXYUSE_LIBEPOXYand turn onUSE_ANGLE,USE_ANGLE_EGLandUSE_ANGLE_WEBGLThe results of each of the above
WebGLis operational but no hardware acceleration present.WebGLis operational but no hardware acceleration present.USE_NICOSIAUSE_NICOSIAand ran into some more issues likeUSE_TEXTURE_MAPPERandUSE_TEXTURE_MAPPER_GLand ran into more issues likeSome additional background information:
chromiumfrom a non-snap source andWebGLhardware acceleration workslsofto make sure these 3 libraries are loadedWPEWebkitis 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
WPEWebkitto make hardware acceleration work in Jetson? Alternatively, is there some combination of flags that can makeWPEWebkitcompile withANGLE?chromiumusesANGLEand apparently it correctly enables hardware acceleration.Thank you!