Skip to content

WebGL No Hardware Acceleration on Jetson #1458

@xinsonglin-bc

Description

@xinsonglin-bc

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:

  1. Compiling normally, with all the flags untouched in OptionsWPE.cmake
  2. Turn off USE_LIBEPOXY
  3. Turn off USE_LIBEPOXY and turn on USE_ANGLE, USE_ANGLE_EGL and USE_ANGLE_WEBGL

The results of each of the above

  1. Compiles. WebGL is operational but no hardware acceleration present.
  2. Compiles. WebGL is operational but no hardware acceleration present.
  3. 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:

  1. I installed chromium from a non-snap source and WebGL hardware acceleration works
  2. 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions