Steam: Civilization V, Arch Linux and ERROR:Invalid resolutions constraints: 0x0 must not be greater than 0x0

By | 04/27/2020
 

I’m using Steam on Arch Linux (see the Arch Linux: Steam installation).

And I have Civilization V game here – my favorite game for last N-years.

I have NVIDIA drivers installed and most of the games work fine, even World Of Tanks, but I wasn’t able to play Civilization from the moment I’ve installed Steam here.

The issue and its solution aren’t’ specific to the Arch Linux and must be working for any Linux-based OS.

The issue

Actually, the messages during start and errors look like the next:

[simterm]

...
Game update: AppID 8930 "", ProcID 1463098, IP 0.0.0.0:0
Starting app 8930
>>> Adding process 1463098 for game ID 8930
GameAction [AppID 8930, ActionID 2] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/setevoy/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/setevoy/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
GameAction [AppID 8930, ActionID 2] : LaunchApp changed task to Completed with ""
>>> Adding process 1463099 for game ID 8930
...
[0427/121055.396740:ERROR:frame_sink_video_capturer_impl.cc(206)] Invalid resolutions constraints: 0x0 must not be greater than 0x0; and also within media::limits.
Game removed: AppID 8930 "", ProcID 1463099 
...
Uploaded AppInterfaceStats to Steam
Exiting app 8930

[/simterm]

The investigation (aka “googling)

When I faced that issue for the first time –  I’ve tried to google by the “from LD_PRELOAD cannot be preloaded” error, and found nothing helpful, so I left it and occasionally rebooted to Windows.

But today I noticed another message here:

[0427/121055.396740:ERROR:frame_sink_video_capturer_impl.cc(206)] Invalid resolutions constraints: 0x0 must not be greater than 0x0; and also within media::limits.

And googling led me to this discussion, 22 Feb. 2018 (!)

So, the solution is just to get rid of video-files used during game start, because my CPU has only 4 cores with 1 thread each, which is causing the BinkPlayer to stop working, check the Civ5-LinuxPatch.md for details:

[simterm]

$ lscpu
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   39 bits physical, 48 bits virtual
CPU(s):                          4
On-line CPU(s) list:             0-3
Thread(s) per core:              1
Core(s) per socket:              4
Socket(s):                       1
...

[/simterm]

The solution

Go to the game’s directory:

[simterm]

$ cd .local/share/Steam/steamapps/common/Sid\ Meier\'s\ Civilization\ V

[/simterm]

Rename all .mov  video files into the .mov_bak:

[simterm]

$ for m in `find . -name \*.mov -type f`; do mv "$m" "$m"_bak; done

[/simterm]

Here the are:

[simterm]

$ find . -name *_bak
./steamassets/civ5_opening_movie_en_us.mov_bak
./steamassets/civ5_opening_movie_fr_fr.mov_bak
./steamassets/civ5_opening_movie_de_de.mov_bak
./steamassets/assets/dlc/expansion2/civ5xp2_opening_movie_en_us.mov_bak
./steamassets/assets/dlc/expansion/civ5xp_opening_movie_en_us.mov_bak

[/simterm]

And start the game:

Done.