Announcement

Collapse
No announcement yet.

Company of Heroes 2 - Free in Steam

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Company of Heroes 2 - Free in Steam

    OFFER ENDED
    Dear all,

    If you are interested in running some more Graphics Benchmarks, such as Company of Heroes 2
    Please note that it is currently Free to keep forever in Steam , via this Steam link.
    This offer will expire on 31-May-2021 17.00UTC
    (Hope I am posting this in the right section)
    Happy benchmarking
    Cheers
    Last edited by spyrou008; 07 June 2021, 10:15 AM. Reason: Offer ended

  • #2
    Hi,
    I took you up on the challenge. Braver men have failed, I am sure. This is how far I got:

    A first attempt to launch the game will result in error. In command line the error appears to be that libpcre.so.3 is missing. This seems to be a deprecated library, maybe still relevant when game was released. Upon inspection (lddtree), we find that solving this dependency won't help, potentially many more libraries are missing:

    Code:
    cd $HOME/.steam/steam/steamapps/common/Company\ of\ Heroes\ 2/bin
    lddtree CompanyOfHeroes2
    
    CompanyOfHeroes2 (interpreter => /lib64/ld-linux-x86-64.so.2)
    libacml_mp.so => None
    libiomp5.so => None
    libtbb.so.2 => None
    libpcre.so.3 => None
    libicui18n.so.51 => None
    libicuuc.so.51 => None
    libicudata.so.51 => None
    libCoreFoundation.so.476 => None
    libcef.so => None
    libpdf.so => None
    First thing then was to force game to run on compatibility layer (Steam runtime).

    1) First potential issue from benchmarking point of view: The game launches with a warning that my GPU (RX 6800) is not detected therefore there might be performance issues.

    Once the game was running, I tried my luck with PTS:

    Code:
    phoronix-test-suite debug-run pts/coh2
    Finding the following errors seemingly due to installation path:

    Code:
    Running Pre-Test Script
    Running Steam on garuda Soaring 64-bit
    STEAM_RUNTIME is enabled automatically
    Pins up-to-date!
    Steam client's requirements are satisfied
    WARNING: Using default/fallback debugger launch
    $HOME/.local/share/Steam/ubuntu12_32/steam steam://run/231430
    $HOME/.phoronix-test-suite/test-profiles/pts/coh2-1.0.3/pre.sh: line 12: /proc//environ: No such file or directory
    kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
    Possibly the PID was not found which is why kill command failed.
    In file: $HOME/.phoronix-test-suite/test-profiles/pts/coh2-1.0.3/pre.sh, added case-insensitive and more flexible regex to narrow down the search:

    Code:
    GAME_BINARY="company.*of.*heroes"
    (...)

    Code:
    GAME_PID=`pgrep -i "$GAME_BINARY"`
    Finally, the above pgrep will return multiple PID's. If we only want the ENV of one of the PID's we must select e.g. the first ("GAME_FIRST_PID"):

    Code:
    GAME_FIRST_PID=$(pgrep -i "$GAME_BINARY"|head --lines=1)
    while read -d $'\0' ENV; do NAME=`echo $ENV | cut -d= -f1`; VAL=`echo $ENV | cut -d= -f2`; echo "export $NAME=\"$VAL\""; done < /proc/$GAME_FIRST_PID/environ >> steam-env-vars.sh
    Now, we must find a way to force steam runtime also on the "coh2" script under pts, since the binary discovers again that it cannot run the native version (same library is missing):

    Code:
    ========================================
    Company of Heroes 2 (Run 1 of 1)
    ========================================
    
    Test Run Command: cd $HOME/.phoronix-test-suite/installed-tests/pts/coh2-1.0.3/ && ./coh2 1920 1080 MAX 2>&1
    
    ERROR: ld.so: object '$HOME/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
    ERROR: ld.so: object '$HOME/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
    ./CompanyOfHeroes2: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
    ERROR: ld.so: object '$HOME/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
    cp: cannot stat '$HOME//.local/share/feral-interactive/CompanyOfHeroes2/AppData/LogFiles/pts.csv': No such file or directory
    The command $HOME/.local/share/Steam/ubuntu12_32/steam steam://run/231430 did the trick before:

    Code:
    STEAM_RUNTIME is enabled automatically
    but it is not clear how it can be used.

    Comment


    • #3
      Originally posted by BHZeto View Post
      Hi,
      I took you up on the challenge. Braver men have failed, I am sure. [...]
      Hi BHZeto ,

      I am happy to see that you could benefit from this offer. But, I am sorry to hear that you are having issues. (also welcome , as this seems to be your first post with us)

      You seem way better than I am, for debugging and resolving Linux/PTS issues: Last time a PTS benchmark was not working , I just gave up. Especially, if the game requires Proton to launch. So .... I won't be able to help you on this.
      That being said, here are few high level questions I keep in mind to sort me out:
      1. Can I run the game natively (just from Steam, without using PTS)?
        1. If I have to use Proton: I do not know how to work it out with PTS. (Example Deus Ex MD or DiRT Rally)
      2. Does my version of the game have a benchmark mode and can it be run manually? (Example Mad Max)
      3. Try to launch it with debug-benchmark: Check errors.
      4. Is there already a defect linked to this test ? https://github.com/phoronix-test-suite

      I know this is not the answer you were expecting, BHZeto , but it may help someone else?
      Good luck

      Comment


      • #4
        Originally posted by spyrou008 View Post
        [*]Can I run the game natively (just from Steam, without using PTS)?
        Yes.
        Originally posted by spyrou008 View Post
        [*]Try to launch it with debug-benchmark: Check errors.
        This is the thing: The game runs OK from Steam. So PTS must find out how did steam run the game, and do the same.
        This means: while the game is running, PTS gets the PID from running game, the exact command that was used to launch the game, and env of running process. PTS will call exact same command with exact same env as running process, but it will fail. So it is quite a mystery.

        Comment


        • #5
          Originally posted by BHZeto View Post
          Yes.
          This is the thing: The game runs OK from Steam.
          well, that's the thing BHZeto ... I do not think you run the game natively , as you mentioned at the beginning of your first post that you forced the compatibility layer. I have found out that PTS works (mostly) fine with game that run natively (no compatibility layer at all). But when it comes to have Proton (Wine) in the mix , things are getting realllllly difficult. Hence my first response.

          Comment

          Working...
          X