Open4
WSL1にはmemfdが無いのでEGLを使えない問題
いやこれどうしようも無いな。。Mesaをリビルドしてみる。。?
memfd_create("mesa-shared", MFD_CLOEXEC|MFD_ALLOW_SEALING) = -1 ENOSYS (Function not implemented)
writev(2, [{iov_base="libEGL debug: ", iov_len=14}, {iov_base="EGL user error 0x3003 (EGL_BAD_A"..., iov_len=89}], 2libEGL debug: EGL user error 0x3003 (EGL_BAD_ALLOC) in eglMakeCurrent: failed to allocate color buffer
) = 103
writev(2, [{iov_base="\n", iov_len=1}, {iov_base=NULL, iov_len=0}], 2
) = 1
というかfallback無いの。。?
動いた
適当にmemfdを検出しないパスにしたら動いた。
というかLinuxはもうmemfd必須にできるのか。。
パッケージ
doas apk add glslang rust py3-mako byacc flex
Rustは要らないかも。
Configure
meson setup -Degl=enabled -Dgles1=enabled -Dgles2=enabled \
-Dgallium-drivers=swrast -Dplatforms=wayland -Dglx=disabled \
-Dmicrosoft-clc=disabled -Dvulkan-drivers= --prefix /opt/mesa build
ブラウザも動いた
とんでもねぇ重さで笑ってしまう。そりゃまぁLLVM一切使わないソフトウェアレンダリングだもんな。。
$ export WEBKIT_DISABLE_SANDBOX_THIS_IS_DANGEROUS=1
$ export XDG_RUNTIME_DIR=/tmp
$ export DISPLAY=:0
$ export LD_LIBRARY_PATH=/opt/mesa/lib
$ export GALLIUM_DRIVER=softpipe
$ epiphany
OpenGLとGLES1は抜いておいても良いか
meson setup -Degl=enabled -Dopengl=false -Dgles1=disabled -Dgles2=enabled \
-Dgallium-drivers=swrast -Dplatforms=wayland -Dglx=disabled -Dvulkan-drivers= \
--prefix /opt/mesa build
あとLLVMpipeでも動くけど、スクロールが多少速くなるくらいしか利点が無かった。。
export WEBKIT_DISABLE_SANDBOX_THIS_IS_DANGEROUS=1
export XDG_RUNTIME_DIR=/tmp
export DISPLAY=:0
export LD_LIBRARY_PATH=/opt/mesa/lib
export GALLIUM_DRIVER=llvmpipe
epiphany