OpenXRay / xray-16

Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. Join OpenXRay! ;)
https://discord.gg/sjRMQwv
Other
2.98k stars 456 forks source link

ARM64 LuaJIT problem (Engine doesn't launch) (RK3399) #1296

Closed nickbailuc closed 1 year ago

nickbailuc commented 1 year ago

open-xray does not start on the ARM64 PineBook Pro (no matter what I try). No window is ever initialized.

The compilation process runs completely normally. The errors only occur at runtime. Every listed dependency is installed and recognized by cmake.

I've tried every combination of (malloc/mimalloc), providing user.ltx from a working amd64 computer (for some reason the arm64 engine in my case does not generate one), and switching between x.org / wayland (in case SDL is acting up).

I've also tried doing the c/c++ optimizations (-march=native), but initially I was doing it without any arguments at all.

Desktop

glxinfo -B

display: :1  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Panfrost (0xffffffff)
    Device: Mali-T860 (Panfrost) (0xffffffff)
    Version: 22.3.6
    Accelerated: yes
    Video memory: 3855MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 3.3
    Max compat profile version: 3.3
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: Panfrost
OpenGL renderer string: Mali-T860 (Panfrost)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 22.3.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.3 (Compatibility Profile) Mesa 22.3.6
OpenGL shading language version string: 3.30
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 22.3.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

Engine logs (stderr) wayland.nouserltx.malloc.txt wayland.nouserltx.mimalloc.txt wayland.withuserltx.malloc.txt wayland.withuserltx.mimalloc.txt xorg.nouserltx.malloc.txt xorg.withuserltx.malloc.txt

Additional context I'm familiar with the project (beat cop and cs multiple times on different amd64 computers in the past back when the engine wasn't as stable as now). This ARM book is my daily driver, but also for development. It is my goto for opensource games, (the videodrivers run great).

OpenGL version I know the project requires GL and GLSL 4.1+, however I've been able to run the engine and play the game on my old amd64 ThinkPad which only supports GL 2.1 and GLSL 1.20 via spoofing the versions. The Mesa Panfrost supports GL 3.3 and GLSL 3.30, so I assume there may be a way to get it running, HOWEVER looking at the project it seems the ARM opengl renderer may have been partly rewritten. Perhaps this is the reason why simply spoofing the GL and GLSL versions doesn't work like it does on the ThinkPad? Maybe Viktor @Zigatun could provide some insight?

I really wanna get open-xray working on this laptop to do testing for arm64. Currently using this laptop for testing Unreal Tournament 1999 arm64 port (will be released in the next oldunreal patch if anyone is interested), so the computer is well setup for testing at the moment.

P.S. I speak Russian, so if it's easier for you guys to respond in Russian, all good!

-Thank you for the great work!

Xottab-DUTY commented 1 year ago

Looking at the logs you've provided, I see that crash is not related to OpenGL at all. It's related to LuaJIT!

Could you try to build the engine with -DLUAJIT_SECURITY_PRNG=0 and see it if works?

P.S.

I'm familiar with the project (beat cop and cs multiple times on different amd64 computers in the past back when the engine wasn't as stable as now).

Oh, it's so lovely! Thank you! :D ❤️

nickbailuc commented 1 year ago

Tried recompiling with the optimizations, malloc, and -DLUAJIT_SECURITY_PRNG=0 as you asked. Unfortunately, looks like the same issue

! Couldn't create surface from image: Parameter 'src' is invalid
OpenXRay Release Master Gold build 8832, Apr 13 2023 (Linux ARM 64-bit, shared)
Custom build from commit[79427a35ea1b81b28655763e078e746558a7eb71] branch[dev]

command line -cop -fsltx fsgame.ltx 

* CPU features: ARMSIMD, NEON
* CPU threads: 6

Initializing File System...
$fs_root$ = /home/nick/Games/S.T.A.L.K.E.R.: Call of Pripyat
using fs-ltx fsgame.ltx
FS: 39123 files cached 29 archives, 11Kb memory used.
Init FileSystem 0.582386 sec
-----loading \home\nick\Games\S.T.A.L.K.E.R.: Call of Pripyat\gamedata\configs\system.ltx
-----loading \home\nick\Games\S.T.A.L.K.E.R.: Call of Pripyat\gamedata\configs\system.ltx
! Failed to determine on which monitor the game is launched.
! SDL: Invalid window
Starting INPUT device...
Loading module: xrRender_GL
Available render modes[1]:
renderer_rgl
Executing config-script "user.ltx"...
! Cannot open script file [user.ltx]
Selected renderer: renderer_rgl
Loading module: xrGame
Initializing Engine...
SOUND: OpenAL: system default sound device name is OpenAL Soft
Executing config-script "\home\nick\Games\S.T.A.L.K.E.R.: Call of Pripyat\gamedata\configs\default_controls.ltx"...
[\home\nick\Games\S.T.A.L.K.E.R.: Call of Pripyat\gamedata\configs\default_controls.ltx] successfully loaded.
Executing config-script "user.ltx"...
! Cannot open script file [user.ltx]
SOUND: Selected device is OpenAL Soft
* SOUND: EFX extension: present
* sound : cache: 65537 kb, 4856 lines, 13820 bpl
Starting RENDER device...
* GPU vendor: [Panfrost] device: [Mali-T860 (Panfrost)]
* GPU OpenGL version: 4.1 (Core Profile) Mesa 22.3.6
* GPU OpenGL shading language version: 4.10
* GPU OpenGL VTF units: [32] CTI units: [96]
* DVB created: 4096K
* DIB created: 512K
! ERROR : Cannot initialize script virtual machine!

FATAL ERROR

[error] Expression    : <no expression>
[error] Function      : handler_base
[error] File          : /home/nick/Downloads/xray-16/src/xrCore/xrDebug.cpp
[error] Line          : 885
[error] Description   : segmentation fault

stack trace:

xrDebug::GatherInfo(char*, unsigned long, ErrorLocation const&, char const*, char const*, char const*, char const*)
xrDebug::Fail(bool&, ErrorLocation const&, char const*, char const*, char const*, char const*)
/home/nick/Games/S.T.A.L.K.E.R.: Call of Pripyat/bin/xrCore.so(+0x3c77c) [0xffff885fc77c]
linux-vdso.so.1(__kernel_rt_sigreturn+0) [0xffff88aaa7bc]
/home/nick/Games/S.T.A.L.K.E.R.: Call of Pripyat/bin/xrLuajit.so(lua_pushthread+0x14) [0xffff87cc8a94]
luabind::open(lua_State*)
CScriptEngine::init(void (*)(lua_State*), bool)
CResourceManager::LS_Load()
/home/nick/Games/S.T.A.L.K.E.R.: Call of Pripyat/bin/xrRender_GL.so(+0x149798) [0xffff7ee19798]
CResourceManager::OnDeviceCreate(char const*)
D3DXRenderBase::OnDeviceCreate(char const*)
/home/nick/Games/S.T.A.L.K.E.R.: Call of Pripyat/bin/xrEngine.so(+0xd3b94) [0xffff88923b94]
Startup()
RunApplication()
./bin/xr_3da(+0x1694) [0xaaaadeb21694]
./bin/xr_3da(+0x1260) [0xaaaadeb21260]
/lib/aarch64-linux-gnu/libc.so.6(+0x27780) [0xffff87fd7780]
/lib/aarch64-linux-gnu/libc.so.6(__libc_start_main+0x98) [0xffff87fd7858]
./bin/xr_3da(+0x14b0) [0xaaaadeb214b0]

On the working AMD64 computer, i have liblua5.2 , 5.3, and 5.4 installed, no package specifically for luajit installed. On the ARM64 i tried installing a few related to libluajit but it didnt seem to change the error at all. ldd -r xr_3da shows that it is linked to xrLuabind.so and xrLuajit.so but not linking to any lua-jit library in the system. If the engine is somehow trying to link to a lua-jit library in the system, could you tell me which one? I cant install all of them at once, luajit1 conflicts luajit2 and so on...

Here are some lua* packages available in Debian testing at the moment, please let me know if any of them might be useful for the engine:

liblua5.1-0/testing 5.1.5-9 arm64
liblua5.1-0-dbg/testing 5.1.5-9 arm64
liblua5.1-0-dev/testing 5.1.5-9 arm64
liblua5.1-luacsnd/testing 1:6.18.1+dfsg-1 arm64
liblua5.2-0/testing,now 5.2.4-3 arm64 [installed]
liblua5.2-dev/testing 5.2.4-3 arm64
liblua5.3-0/testing,now 5.3.6-2 arm64 [installed,automatic]
liblua5.3-0-dbg/testing 5.3.6-2 arm64
liblua5.3-dev/testing 5.3.6-2 arm64
liblua5.4-0/testing,now 5.4.4-3 arm64 [installed,automatic]
liblua5.4-0-dbg/testing 5.4.4-3 arm64
liblua5.4-dev/testing 5.4.4-3 arm64
libluabind-dev/testing 0.9.1+git20150823+dfsg-3 arm64
libluabind-doc/testing 0.9.1+git20150823+dfsg-3 all
libluabind-examples/testing 0.9.1+git20150823+dfsg-3 all
libluabind0.9.1d1/testing 0.9.1+git20150823+dfsg-3 arm64
libluajit-5.1-2/testing 2.1.0~beta3+git20220320+dfsg-4.1 arm64
libluajit-5.1-common/testing 2.1.0~beta3+git20220320+dfsg-4.1 all
libluajit-5.1-dev/testing 2.1.0~beta3+git20220320+dfsg-4.1 arm64
libluajit2-5.1-2/testing 2.1-20230119-1 arm64
libluajit2-5.1-common/testing 2.1-20230119-1 all
libluajit2-5.1-dev/testing 2.1-20230119-1 arm64

libluajit-5.1-2/testing 2.1.0~beta3+git20220320+dfsg-4.1 arm64
libluajit-5.1-common/testing 2.1.0~beta3+git20220320+dfsg-4.1 all
libluajit-5.1-dev/testing 2.1.0~beta3+git20220320+dfsg-4.1 arm64
libluajit2-5.1-2/testing 2.1-20230119-1 arm64
libluajit2-5.1-common/testing 2.1-20230119-1 all
libluajit2-5.1-dev/testing 2.1-20230119-1 arm64
luajit/testing 2.1.0~beta3+git20220320+dfsg-4.1 arm64
luajit2/testing 2.1-20230119-1 arm64
uwsgi-plugin-luajit/testing 2.0.21+3+0.0.8 arm64
OPNA2608 commented 1 year ago

On my PBP on commit 83c0397f2b51e12f1507697c1f2a8e1095a62f5a I get a slightly different log.

↪ env SDL_VIDEODRIVER=x11 MESA_GL_VERSION_OVERRIDE=4.1 MESA_GLSL_VERSION_OVERRIDE=410 /nix/store/x86qmh33k12h2bvs87dfqf9k7mvxi0wp-openxray-unstable-2023-04-15/bin/xr_3da
! Couldn't create surface from image: Parameter 'src' is invalid
OpenXRay Release Master Gold build -6965, Jan  1 1980 (Linux ARM 64-bit, shared)
Custom build from commit[] branch[]

command line 

* CPU features: ARMSIMD, NEON
* CPU threads: 6

Initializing File System...
$fs_root$ = /home/puna/.local/share/GSC Game World/S.T.A.L.K.E.R. - Call of Pripyat/
using fs-ltx fsgame.ltx
FS: 39053 files cached 29 archives, 12Kb memory used.
Init FileSystem 0.709442 sec
-----loading \home\puna\.local\share\GSC Game World\S.T.A.L.K.E.R. - Call of Pripyat\gamedata\configs\system.ltx
-----loading \home\puna\.local\share\GSC Game World\S.T.A.L.K.E.R. - Call of Pripyat\gamedata\configs\system.ltx
! Failed to determine on which monitor the game is launched.
! SDL: Invalid window
Starting INPUT device...
Loading module: xrRender_GL
Available render modes[1]:
renderer_rgl
Executing config-script "user.ltx"...
! Cannot open script file [user.ltx]
Selected renderer: renderer_rgl
Loading module: xrGame
Initializing Engine...
SOUND: OpenAL: system default sound device name is OpenAL Soft
Executing config-script "\home\puna\.local\share\GSC Game World\S.T.A.L.K.E.R. - Call of Pripyat\gamedata\configs\default_controls.ltx"...
[\home\puna\.local\share\GSC Game World\S.T.A.L.K.E.R. - Call of Pripyat\gamedata\configs\default_controls.ltx] successfully loaded.
Executing config-script "user.ltx"...
! Cannot open script file [user.ltx]
SOUND: Selected device is OpenAL Soft
* SOUND: EFX extension: present
* sound : cache: 65537 kb, 4856 lines, 13820 bpl
Starting RENDER device...
* GPU vendor: [Panfrost] device: [Mali-T860 (Panfrost)]
* GPU OpenGL version: 4.1 (Core Profile) Mesa 22.3.7
* GPU OpenGL shading language version: 4.10
* GPU OpenGL VTF units: [32] CTI units: [96]
* DVB created: 4096K
* DIB created: 512K

FATAL ERROR

[error] Expression    : <no expression>
[error] Function      : handler_base
[error] File          : /build/source/src/xrCore/xrDebug.cpp
[error] Line          : 885
[error] Description   : segmentation fault

stack trace:

xrDebug::GatherInfo(char*, unsigned long, ErrorLocation const&, char const*, char const*, char const*, char const*)
xrDebug::Fail(bool&, ErrorLocation const&, char const*, char const*, char const*, char const*)
/nix/store/x86qmh33k12h2bvs87dfqf9k7mvxi0wp-openxray-unstable-2023-04-15/lib/xrCore.so(+0x3f7c0) [0xffffb806f7c0]
linux-vdso.so.1(__kernel_rt_sigreturn+0) [0xffffb84fc7ec]
/nix/store/x86qmh33k12h2bvs87dfqf9k7mvxi0wp-openxray-unstable-2023-04-15/lib/xrLuajit.so(+0x4ce08) [0xffffb74dce08]
/nix/store/x86qmh33k12h2bvs87dfqf9k7mvxi0wp-openxray-unstable-2023-04-15/lib/xrLuajit.so(+0x51924) [0xffffb74e1924]
/nix/store/x86qmh33k12h2bvs87dfqf9k7mvxi0wp-openxray-unstable-2023-04-15/lib/xrLuajit.so(+0x42b08) [0xffffb74d2b08]
/nix/store/x86qmh33k12h2bvs87dfqf9k7mvxi0wp-openxray-unstable-2023-04-15/lib/xrLuajit.so(+0x63578) [0xffffb74f3578]
/nix/store/x86qmh33k12h2bvs87dfqf9k7mvxi0wp-openxray-unstable-2023-04-15/lib/xrLuajit.so(lua_loadx+0x50) [0xffffb74d2c50]
/nix/store/x86qmh33k12h2bvs87dfqf9k7mvxi0wp-openxray-unstable-2023-04-15/lib/xrLuajit.so(luaL_loadbufferx+0x20) [0xffffb74d2e90]
CScriptEngine::load_buffer(lua_State*, char const*, unsigned long, char const*, char const*)
CScriptEngine::do_file(char const*, char const*)
CScriptEngine::load_file_into_namespace(char const*, char const*)
CResourceManager::LS_Load()
/nix/store/x86qmh33k12h2bvs87dfqf9k7mvxi0wp-openxray-unstable-2023-04-15/lib/xrRender_GL.so(+0x1463f8) [0xffffaee263f8]
CResourceManager::OnDeviceCreate(char const*)
D3DXRenderBase::OnDeviceCreate(char const*)
/nix/store/x86qmh33k12h2bvs87dfqf9k7mvxi0wp-openxray-unstable-2023-04-15/lib/xrEngine.so(+0xd01a8) [0xffffb83901a8]
Startup()
RunApplication()
fish: Job 5, 'env SDL_VIDEODRIVER=x11 MESA_GL…' has stopped

Note that I'm not getting this line

! ERROR : Cannot initialize script virtual machine!

but I'm still segfaulting somewhere in LuaJIT stuff

Thread 1 "Primary thread" received signal SIGSEGV, Segmentation fault.
fs_fixup_k (kptr=0x1fc1818, pt=0x1fc1720, fs=0xffffffff2ec0) at /build/source/Externals/LuaJIT/src/lj_parse.c:1398
1398        lj_gc_objbarrier(fs->L, pt, o);
(gdb) bt
#0  fs_fixup_k (kptr=0x1fc1818, pt=0x1fc1720, fs=0xffffffff2ec0) at /build/source/Externals/LuaJIT/src/lj_parse.c:1398
#1  fs_finish (ls=ls@entry=0xffffffff32b0, line=<optimized out>) at /build/source/Externals/LuaJIT/src/lj_parse.c:1599
#2  0x0000fffff6fd1924 in lj_parse (ls=ls@entry=0xffffffff32b0) at /build/source/Externals/LuaJIT/src/lj_parse.c:2741
#3  0x0000fffff6fc2b08 in cpparser (L=0x1e9bd30, dummy=<optimized out>, ud=0xffffffff32b0) at /build/source/Externals/LuaJIT/src/lj_load.c:41
#4  0x0000fffff6fe3578 in lj_vm_cpcall () at buildvm_arm64.dasc:1262
#5  0x0000fffff6fc2c50 in lua_loadx (L=0x1e9bd30, reader=reader@entry=0xfffff6fc2aa0 <reader_string>, data=data@entry=0xffffffff3380, chunkname=<optimized out>, mode=<optimized out>)
    at /build/source/Externals/LuaJIT/src/lj_load.c:58
#6  0x0000fffff6fc2e90 in luaL_loadbufferx (L=<optimized out>, buf=<optimized out>, size=<optimized out>, name=<optimized out>, mode=<optimized out>)
    at /build/source/Externals/LuaJIT/src/lj_load.c:143
#7  0x0000fffff7365710 in CScriptEngine::load_buffer (this=this@entry=0x1e99c08, L=0x1e9bd30, 
    caBuffer=0x1fc0bb0 "function normal\t\t(shader, t_base, t_second, t_detail)\n\tshader:begin\t(\"accum_sun\", \"accum_volumetric_sun_nomsaa\")\n\t\t\t: fog\t\t(false)\n\t\t\t: zb \t\t(false,false)\n\t\t\t: blend\t\t(true,blend.one,blend.one)\n\t\t\t: s"..., tSize=607, 
    caScriptName=0xffffffff3a58 "@\\home\\puna\\.local\\share\\GSC Game World\\S.T.A.L.K.E.R. - Call of Pripyat\\gamedata\\shaders\\gl\\accum_volumetric_sun_nomsaa.s", 
    caNameSpaceName=caNameSpaceName@entry=0xffffffff5b38 "accum_volumetric_sun_nomsaa") at /build/source/src/xrScriptEngine/script_engine.cpp:356
#8  0x0000fffff7365864 in CScriptEngine::do_file (this=this@entry=0x1e99c08, 
    caScriptName=caScriptName@entry=0xffffffff7b38 "\\home\\puna\\.local\\share\\GSC Game World\\S.T.A.L.K.E.R. - Call of Pripyat\\gamedata\\shaders\\gl\\accum_volumetric_sun_nomsaa.s", 
    caNameSpaceName=caNameSpaceName@entry=0xffffffff5b38 "accum_volumetric_sun_nomsaa") at /build/source/src/xrScriptEngine/script_engine.cpp:379
#9  0x0000fffff73659dc in CScriptEngine::load_file_into_namespace (this=this@entry=0x1e99c08, 
    caScriptName=caScriptName@entry=0xffffffff7b38 "\\home\\puna\\.local\\share\\GSC Game World\\S.T.A.L.K.E.R. - Call of Pripyat\\gamedata\\shaders\\gl\\accum_volumetric_sun_nomsaa.s", 
    caNamespaceName=caNamespaceName@entry=0xffffffff5b38 "accum_volumetric_sun_nomsaa") at /build/source/src/xrScriptEngine/script_engine.cpp:423
#10 0x0000ffffee492718 in CResourceManager::LS_Load (this=this@entry=0x1e997f0) at /build/source/src/Layers/xrRenderGL/glResourceManager_Scripting.cpp:427
#11 0x0000ffffee4163f8 in CResourceManager::OnDeviceCreate (this=0x1e997f0, F=0x179afc0) at /build/source/src/Layers/xrRender/ResourceManager_Loader.cpp:59
#12 0x0000ffffee416778 in CResourceManager::OnDeviceCreate (this=0x1e997f0, 
    shName=shName@entry=0xffffffff9e68 "\\home\\puna\\.local\\share\\GSC Game World\\S.T.A.L.K.E.R. - Call of Pripyat\\gamedata\\shaders.xr")
    at /build/source/src/Layers/xrRender/ResourceManager_Loader.cpp:143
#13 0x0000ffffee3c4f2c in D3DXRenderBase::OnDeviceCreate (this=0xffffee5b9ca8 <RImplementation>, 
    shName=0xffffffff9e68 "\\home\\puna\\.local\\share\\GSC Game World\\S.T.A.L.K.E.R. - Call of Pripyat\\gamedata\\shaders.xr") at /build/source/src/Layers/xrRender/D3DXRenderBase.cpp:121
#14 0x0000fffff7e801a8 in CRenderDevice::CreateInternal (this=0xfffff7fa6770 <Device>) at /build/source/src/xrEngine/Device_create.cpp:58
#15 0x0000fffff7e7075c in Startup () at /build/source/src/xrEngine/main.cpp:299
#16 0x0000fffff7e7128c in RunApplication () at /build/source/src/xrEngine/main.cpp:366
#17 0x0000000000401958 in entry_point (commandLine=commandLine@entry=0x43d2b0 "") at /build/source/src/xr_3da/entry_point.cpp:96
#18 0x00000000004014f0 in main (argc=<optimized out>, argv=<optimized out>) at /build/source/src/xr_3da/entry_point.cpp:155
Xottab-DUTY commented 1 year ago

Seems like it's ARM64-specific issue in LuaJIT itself. Maybe this can be fixed by updating it (we have old enough version, last time it was updated is 2021). But it's a major thing, we don't want to have things broken after upgrade (we had such problem in 2020-2021, when behaviour in LuaJIT was changed), so, we want to try to upgrade to upstream LuaJIT after releasing stable version of OpenXRay :)

nickbailuc commented 1 year ago

is there a particular version of luajit that is being used? i cant install them all because it'd create package version conflicts, but I will try to install or compile the exact version that the project uses

(completely off topic but has anyone at the team tried to contact GSC, or vise versa? i understand this is in somewhat of a grey area, but would be interesting if they'd wanna endorse it seeing how they released the SDK before and the modding community keeps the franchise alive)

Xottab-DUTY commented 1 year ago

is there a particular version of luajit that is being used? i cant install them all because it'd create package version conflicts, but I will try to install or compile the exact version that the project uses

We use our custom version, with our patches. https://github.com/OpenXRay/LuaJIT/commits/v2.1

completely off topic but has anyone at the team tried to contact GSC, or vise versa? i understand this is in somewhat of a grey area, but would be interesting if they'd wanna endorse it seeing how they released the SDK before and the modding community keeps the franchise alive

I was contacting them in 2020, I was in contact with Zakhar Bocharov. They were reaally busy with and dedicated to S.T.A.L.KE.R. 2 development, so we ended with the words that GSC is really happy that community still keeps the franchise alive (I don't remember exactly what he said, but something like that) and they know about many community projects, including OpenXRay :)

nickbailuc commented 1 year ago

I think I will close this because months later I tried recompiling on the same platform (PineBook Pro) and it worked. I see there were some commits to the LuaJIT compiler, so I'm guessing whatever it was fixed the issue, so I'll be closing this issue

OPNA2608 commented 1 year ago

I'm still getting the same crash on my PBP as before, on latest tag & master. But, on Wayland I crash before Lua with a glew error. Curious if it's really the same glew error and the backtrace in lua is just a red herring somehow?

Are you still on Debian bookworm, could you share if you're on X11 or Wayland & how you built the engine?

nickbailuc commented 1 year ago

I'm still getting the same crash on my PBP as before, on latest tag & master. But, on Wayland I crash before Lua with a glew error. Curious if it's really the same glew error and the backtrace in lua is just a red herring somehow?

Are you still on Debian bookworm, could you share if you're on X11 or Wayland & how you built the engine?

yes im still using debian bookworm (so i used the installer when bookworm was testing, but then turned into stable) and now i got deb stable on the pbp using KDE and Wayland. I think I just compiled with the -march=native flags for C and Cpp nothing else. I use a completely portable installation, manually copying the compiled binaries, the gamedata/ and fsltx file