Skip to content
Snippets Groups Projects

Package swiftshader and gl4es

Closed Imported Administrator requested to merge swiftshader-glshim into master

This MR packages SwiftShader and gl4es. Fixes #23 (closed).

Current status

Both packages build correctly and can be installed properly. See below for known bugs.

SwiftShader

Tested with gl4es, see notes in the gl4es section.

Unfortunately Plasma Mobile doesn't seem to work due to a lack of proper Wayland support in the EGL library. There seems to be more Wayland progress in the Vulkan driver, but it doesn't seem like kwin supports Vulkan. This may also be related to the broken XWayland, or perhaps EGL is trying to look for GL stuff instead of GLES.

Current status: trying to get the tests to succeed on the most important architectures. Likely no point in doing this, unless the test failures are somehow linked to actual failures while using swiftshader with actual software.

GL4ES

Tested on armv7 with glxgears and swiftshader on the Galaxy Grand Neo. Runs at ~16fps in fullscreen mode, windowed breaks due to this bug. (For comparison, llvmpipe runs glxgears on the same device at about 70fps.)

Xwayland fails to relocate due to missing symbols, xvfb is missing the same things. ldd output:

samsung-baffinlite:~$ ldd /usr/bin/Xwayland 
	/lib/ld-musl-armhf.so.1 (0x400cb000)
	libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x403b6000)
	libXfont2.so.2 => /usr/lib/libXfont2.so.2 (0x404a1000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x404fc000)
	libwayland-client.so.0 => /usr/lib/libwayland-client.so.0 (0x40592000)
	libdrm.so.2 => /usr/lib/libdrm.so.2 (0x40609000)
	libepoxy.so.0 => /usr/lib/libepoxy.so.0 (0x4071f000)
	libgbm.so.1 => /usr/lib/libgbm.so.1 (0x40818000)
	libxshmfence.so.1 => /usr/lib/libxshmfence.so.1 (0x40849000)
	libnettle.so.8 => /usr/lib/libnettle.so.8 (0x40948000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x40a20000)
	libGL.so.1 => /usr/lib/libGL.so.1 (0x40a36000)
	libc.musl-armv7.so.1 => /lib/ld-musl-armhf.so.1 (0x400cb000)
	libz.so.1 => /lib/libz.so.1 (0x40bc4000)
	libfontenc.so.1 => /usr/lib/libfontenc.so.1 (0x40bf9000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x40c9b000)
	libbsd.so.0 => /usr/lib/libbsd.so.0 (0x40d71000)
	libffi.so.7 => /usr/lib/libffi.so.7 (0x40e53000)
	libwayland-server.so.0 => /usr/lib/libwayland-server.so.0 (0x40e95000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0x40eff000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x40ffc000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x41108000)
	libbz2.so.1 => /usr/lib/libbz2.so.1 (0x411e9000)
	libpng16.so.16 => /usr/lib/libpng16.so.16 (0x412c5000)
	libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x413b7000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x414c5000)
	libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x414fd000)
Error relocating /usr/bin/Xwayland: glConvolutionFilter1D: symbol not found
Error relocating /usr/bin/Xwayland: glGetConvolutionParameteriv: symbol not found
Error relocating /usr/bin/Xwayland: glGetColorTable: symbol not found
Error relocating /usr/bin/Xwayland: glGetColorTableParameteriv: symbol not found
Error relocating /usr/bin/Xwayland: glConvolutionParameteriv: symbol not found
Error relocating /usr/bin/Xwayland: glConvolutionParameterf: symbol not found
Error relocating /usr/bin/Xwayland: glMinmax: symbol not found
Error relocating /usr/bin/Xwayland: glGetMinmaxParameteriv: symbol not found
Error relocating /usr/bin/Xwayland: glGetMinmaxParameterfv: symbol not found
Error relocating /usr/bin/Xwayland: glResetMinmax: symbol not found
Error relocating /usr/bin/Xwayland: glCopyConvolutionFilter1D: symbol not found
Error relocating /usr/bin/Xwayland: glCopyColorSubTable: symbol not found
Error relocating /usr/bin/Xwayland: glGetHistogram: symbol not found
Error relocating /usr/bin/Xwayland: glConvolutionParameterfv: symbol not found
Error relocating /usr/bin/Xwayland: glGetConvolutionParameterfv: symbol not found
Error relocating /usr/bin/Xwayland: glGetHistogramParameteriv: symbol not found
Error relocating /usr/bin/Xwayland: glGetSeparableFilter: symbol not found
Error relocating /usr/bin/Xwayland: glSeparableFilter2D: symbol not found
Error relocating /usr/bin/Xwayland: glGetMinmax: symbol not found
Error relocating /usr/bin/Xwayland: glHistogram: symbol not found
Error relocating /usr/bin/Xwayland: glCopyConvolutionFilter2D: symbol not found
Error relocating /usr/bin/Xwayland: glConvolutionFilter2D: symbol not found
Error relocating /usr/bin/Xwayland: glConvolutionParameteri: symbol not found
Error relocating /usr/bin/Xwayland: glCopyColorTable: symbol not found
Error relocating /usr/bin/Xwayland: glResetHistogram: symbol not found
Error relocating /usr/bin/Xwayland: glGetConvolutionFilter: symbol not found
Error relocating /usr/bin/Xwayland: glColorTableParameteriv: symbol not found
Error relocating /usr/bin/Xwayland: glGetHistogramParameterfv: symbol not found
Error relocating /usr/bin/Xwayland: glColorSubTable: symbol not found
Error relocating /usr/bin/Xwayland: glGetColorTableParameterfv: symbol not found
Error relocating /usr/bin/Xwayland: glColorTableParameterfv: symbol not found
samsung-baffinlite:~$ 

Tests fail, as xvfb cannot be run due to missing symbols (see above). They pass happily when bash is not installed (that's a bug, of course, as the test scripts require bash).

glshim

Breaks, see this bug. No longer focusing on packaging it as gl4es provides pretty much the same functionality.

Edited by Administrator

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Administrator
  • Administrator
  • Author Owner

    There ideally should be proper cmake package file (for find_package) to provide all this info without need to manually invoke llvm-config or hardcode llvm version or lib names

    By Alexey Min on 2020-07-01T20:36:38

  • Administrator added 2 commits · Imported

    added 2 commits

    • e11ee682 - main/gl4es: package gl4es
    • 5a0da2ca - main/glshim: reenable execinfo

    Compare with previous version

    By knuxify on 2020-07-02T21:56:58

  • Administrator added 1 commit · Imported

    added 1 commit

    • 35162f02 - main/swiftshader: update and try to get llvm includes right

    Compare with previous version

    By knuxify on 2020-07-03T18:48:33

  • Administrator changed the description · Imported

    changed the description

    By knuxify on 2020-07-05T20:31:19

  • Administrator changed the description · Imported

    changed the description

    By knuxify on 2020-07-05T21:18:54

  • Administrator changed the description · Imported

    changed the description

    By knuxify on 2020-07-05T22:04:49

  • Administrator added 2 commits · Imported

    added 2 commits

    • 8a1e3b26 - main/gl4es: fix linting error
    • 6b70cc5b - main/swiftshader: change tar download to github to (hopefully) eliminate checksum issues in ci

    Compare with previous version

    By knuxify on 2020-07-06T07:58:27

  • Administrator added 3 commits · Imported

    added 3 commits

    • 5ab66519 - main/swiftshader: replace replaces with provides
    • f0ff66f2 - main/gl4es: replace replaces with provides
    • d118c803 - main/glshim: remove, since gl4es does pretty much the same thing

    Compare with previous version

    By knuxify on 2020-07-06T09:48:25

  • Administrator changed title from WIP: Package swiftshader and glshim to WIP: Package swiftshader and gl4es · Imported

    changed title from WIP: Package swiftshader and glshim to WIP: Package swiftshader and gl4es

    By knuxify on 2020-07-06T09:53:45

  • Administrator changed the description · Imported

    changed the description

    By knuxify on 2020-07-06T09:53:45

  • Administrator changed the description · Imported

    changed the description

    By knuxify on 2020-07-06T11:11:06

  • Administrator added 2 commits · Imported

    added 2 commits

    • 4c931e0d - main/gl4es: provides -> replaces, again
    • bdbc4459 - main/swiftshader: make libraries build with the correct version suffixes

    Compare with previous version

    By knuxify on 2020-07-07T21:00:17

  • Administrator changed the description · Imported

    changed the description

    By knuxify on 2020-07-07T21:03:20

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading