Skip to content

Transparent textures broken on ETQW #372

@Kontrabant

Description

@Kontrabant

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.

X11:
Image

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions