ValveSoftware / source-sdk-2013

The 2013 edition of the Source SDK
https://developer.valvesoftware.com/wiki/SDK2013_GettingStarted
Other
3.77k stars 2k forks source link

SDK no longer launchable through the command line on Linux. #431

Open Nolan-O opened 7 years ago

Nolan-O commented 7 years ago

Lanching through steam still works, but the old method of hl2.sh -game <folder> yields

OpenGL: Gallium 0.4 on AMD POLARIS10 (DRM 3.10.0 / 4.11.0-2-amd64, LLVM 4.0.1) 3.0 Mesa 17.1.5 (3.0.0)
GL_NV_bindless_texture: DISABLED
GL_AMD_pinned_memory: DISABLED
GL_ARB_buffer_storage: AVAILABLE
GL_EXT_texture_sRGB_decode: AVAILABLE
AppFramework : Unable to load module engine.so!
Unable to load interface VCvarQuery001 from engine.so

Instead, I have to launch the game through steam's gui, which makes it nearly impossible to be able to debug, for example, a startup crash, or utilize console output.

kisak-valve commented 7 years ago

Hello @Nolan-O, you may get better behavior by trying to run hl2.sh from the steam runtime with the convenience script. The location can vary by distro / steam package, but the default would be ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ./hl2.sh -game <folder>

Nolan-O commented 7 years ago

That gives me a new error:

/bin/bash: /valve/steam-runtime/bin/../runtime/amd64/lib/x86_64-linux-gnu/libtinfo.so.5: no version information available (required by /bin/bash)
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast

I usually have to delete the opengl libs that are packaged with source engine games to get them to boot, could that be the same kind of error?

kisak-valve commented 7 years ago

The common cause of these messages is that libstdc++ in the steam runtime is too old to be used with the system built variant of mesa.

Nolan-O commented 7 years ago

For anyone reading this issue: find -type f -name libstdc++.so.* | sudo xargs rm from the runtime folder fixed the issue, but it only works through run.sh.

Note, however, that this will prevent linking from working when you compile.

fresh-eggs commented 4 years ago

I managed to get hl2_linux working again.

For anyone else running into the issue, if you take a look at tlhe steam runtime shellscript that @kisak-valve mentions, you'll notice that it adds the steam-runtime-library-paths to your LD_LIBRARY_PATH environment variable.

If you pass the --print-steam-runtime-library-paths to run.sh, it will print out the list of paths for you.

if [ "$1" = "--print-steam-runtime-library-paths" ]; then
    echo "$steam_runtime_library_paths"
    exit 0
fi

Copy that list and append the relevant bin folder for the version of the SDK you're using. In my case, this is :"/your/path/to/steam/common/Source SDK Base 2013 Singleplayer/bin". Setting LD_LIBRARY_PATH to that set of paths should do the trick.

You can then launch mods with ./hl2_linux -game <mod_root>.