-
Notifications
You must be signed in to change notification settings - Fork 49
Description
While investigating #370, it seems that transparent textures in-game are broken when running via sdl12-compat (on top of the latest sdl2-compat and SDL3). Rendering is correct when using the native (modified) SDL 1.2 shared library the game ships with.
To reproduce (borrowed from #370):
ETQW Demo:
https://cdn.splashdamage.com/downloads/games/etqw/ETQW-demo2-client-full.r1.x86.run
After installing the demo, the game ships with a custom SDL 1.2 build, which needs to be manually overridden. On my Fedora 42 system:
- mv libSDL-1.2.id.so.0 libSDL-1.2.id.so.0.bak
- ln -s /usr/lib/libSDL-1.2.so.0 <install path>/libSDL-1.2.id.so.0
- SDL_VIDEODRIVER=x11 ./etqw-rthread
Note: The game uses Nvidia's cg to compile shaders, which needs GLX, so Wayland is not expected to work. This is not currently detected, so manually specifying X11 is necessary if running via sdl2-compat.
Transparent textures are broken, and the logs are filled with messages that look like shader compilation failures along the lines of:
WARNING: GL_PROGRAM_ERROR_STRING_ARB:
GL_PROGRAM_ERROR_POSITION_ARB < 0 with error
WARNING: idDeclLocal::ParseLocal Failed to Parse decl 'trivialrgb' in file 'renderprogs/trivial.rprog' line 0
WARNING: sdDeclRenderProgram::ResolveReferences : Reference shader of type 1 is defaulted in 'trivialrgbwithtexturematrix'
WARNING: idDeclLocal::ParseLocal Failed to Parse decl 'trivialrgbwithtexturematrix' in file 'renderprogs/trivial.rprog' line 0
WARNING: file materials/shaderdemo.mtr: wipe2material, line 0: Unable to parse render program 'trivialRGBWithTextureMatrix'
WARNING: idDeclLocal::ParseLocal Failed to Parse decl 'wipe2material' in file 'materials/shaderdemo.mtr' line 0
This is on the proprietary NVIDIA 580.82.09 driver. I attempted to test with Zink, but it hangs on startup. Reverting to the real SDL 1.2 build that ships with the game fixes it, but mouse grabbing is broken.
