ValveSoftware / voglperf

Benchmarking tool for Linux OpenGL games. Spews frame information, logs frametimes.
Other
201 stars 31 forks source link

Voglperf Not Working In SteamOS #19

Closed Balderick closed 8 years ago

Balderick commented 10 years ago

Following instruction from voglperf main github page for steamos (https://github.com/ValveSoftware/voglperf#building-voglperf-on-steamos) when intending to build 32 and 64 bit packages with make there appears to be 64 bit build only. What i see when building with make is

desktop@steamos:~/voglperf$ make

cmake options:
  -DCMAKE_BUILD_TYPE='Release': Build debug or release. (Debug|Release)
  -DCMAKE_VERBOSE='OFF': Spew cmake project options. (On|Off)
  -DBUILD_X64='': Build 32 or 64-bit. (On|Off)

Building 64-bit voglperf...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/desktop/voglperf/build_unknown
make[1]: Entering directory `/home/desktop/voglperf/build_unknown'
make[2]: Entering directory `/home/desktop/voglperf/build_unknown'
make[3]: Entering directory `/home/desktop/voglperf/build_unknown'
make[3]: Leaving directory `/home/desktop/voglperf/build_unknown'
make[3]: Entering directory `/home/desktop/voglperf/build_unknown'
Linking C shared library /home/desktop/voglperf/bin/libvoglperf64.so
make[3]: Leaving directory `/home/desktop/voglperf/build_unknown'
[ 25%] Built target voglperf
make[3]: Entering directory `/home/desktop/voglperf/build_unknown'
make[3]: Leaving directory `/home/desktop/voglperf/build_unknown'
make[3]: Entering directory `/home/desktop/voglperf/build_unknown'
Linking CXX executable /home/desktop/voglperf/bin/voglperfrun64
make[3]: Leaving directory `/home/desktop/voglperf/build_unknown'
[100%] Built target voglperfrun
make[2]: Leaving directory `/home/desktop/voglperf/build_unknown'
make[1]: Leaving directory `/home/desktop/voglperf/build_unknown'
desktop@steamos:~/voglperf$ man make
desktop@steamos:~/voglperf$ cd build_unknown/
desktop@steamos:~/voglperf/build_unknown$ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  index.html  Makefile
desktop@steamos:~/voglperf/build_unknown$

When running sudo -u steam bin/voglperfrun64 we get

desktop@steamos:~/voglperf$ sudo -u steam bin/voglperfrun64

Starting web server...
  Started http://192.168.1.66:8081

[webby] WebSocket connected GET on /ws
Welcome!

which is good but when trying to start a game we get

> game start 20920

GameID: 20920 (gameid20920)
WARNING: realpath /home/desktop/voglperf/bin/./libvoglperf32.so failed 'No such file or directory.'

LD_PRELOAD=./libvoglperf32.so:/home/desktop/voglperf/bin/libvoglperf64.so:$LD_PRELOAD

VOGLPERF_CMD_LINE="--msqid=65538 "

Steam url string:
  steam steam://run/20920//VOGLPERF_CMD_LINE="--msqid=65538 " LD_PRELOAD=./libvoglperf32.so:/home/desktop/voglperf/bin/libvoglperf64.so:$LD_PRELOAD %command%

Launch string:
  steam steam://run/20920//VOGLPERF_CMD_LINE%3d%22--msqid%3d65538%20%22%20LD_PRELOAD%3d.%2flibvoglperf32.so%3a%2fhome%2fdesktop%2fvoglperf%2fbin%2flibvoglperf64.so%3a%24LD_PRELOAD%20%25command%25
Waiting for child process to start...
Running Steam on steamos 1.0 64-bit
STEAM_RUNTIME is enabled automatically

ERROR: Could not retrieve pid of launched game.

I have not worked out what i need to do to get both 32bit and 64bit builds available for voglperf and posted here because of the unexpected behaviour of voglperf.

SteamOS is the latest beta build 133.

Balderick commented 10 years ago

On a clean install using SteamOSDVD.iso and then opting in to beta repo and building voglperf from scratch now gives

desktop@steamos:~$ git clone https://github.com/ValveSoftware/voglperf.git
Cloning into 'voglperf'...
remote: Counting objects: 238, done.
remote: Total 238 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (238/238), 742.81 KiB | 643 KiB/s, done.
Resolving deltas: 100% (132/132), done.
desktop@steamos:~$ cd voglperf
desktop@steamos:~/voglperf$ make

cmake options:
  -DCMAKE_BUILD_TYPE='Release': Build debug or release. (Debug|Release)
  -DCMAKE_VERBOSE='': Spew cmake project options. (On|Off)
  -DBUILD_X64='': Build 32 or 64-bit. (On|Off)

-- The C compiler identification is GNU 4.7.2
-- The CXX compiler identification is GNU 4.7.2
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found.
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
Building 64-bit voglperf...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/desktop/voglperf/build_unknown
make[1]: Entering directory `/home/desktop/voglperf/build_unknown'
make[2]: Entering directory `/home/desktop/voglperf/build_unknown'
make[3]: Entering directory `/home/desktop/voglperf/build_unknown'
Scanning dependencies of target voglperf
make[3]: Leaving directory `/home/desktop/voglperf/build_unknown'
make[3]: Entering directory `/home/desktop/voglperf/build_unknown'
[ 25%] Building C object CMakeFiles/voglperf.dir/voglperf.c.o
Linking C shared library /home/desktop/voglperf/bin/libvoglperf64.so
make[3]: Leaving directory `/home/desktop/voglperf/build_unknown'
[ 25%] Built target voglperf
make[3]: Entering directory `/home/desktop/voglperf/build_unknown'
Scanning dependencies of target voglperfrun
make[3]: Leaving directory `/home/desktop/voglperf/build_unknown'
make[3]: Entering directory `/home/desktop/voglperf/build_unknown'
[ 50%] Building CXX object CMakeFiles/voglperfrun.dir/voglperfrun.cpp.o
In file included from /home/desktop/voglperf/src/voglperfrun.cpp:40:0:
/home/desktop/voglperf/src/libedit-3.1/include/histedit.h:199:46: warning: ‘int history(History*, HistEvent*, int, ...)’ hides constructor for ‘struct history’ [-Wshadow]
[ 75%] Building CXX object CMakeFiles/voglperfrun.dir/voglutils.cpp.o
[100%] Building C object CMakeFiles/voglperfrun.dir/webby/webby.c.o
Linking CXX executable /home/desktop/voglperf/bin/voglperfrun64
make[3]: Leaving directory `/home/desktop/voglperf/build_unknown'
[100%] Built target voglperfrun
make[2]: Leaving directory `/home/desktop/voglperf/build_unknown'
make[1]: Leaving directory `/home/desktop/voglperf/build_unknown'
desktop@steamos:~/voglperf$ 

Any help in getting voglperf working would be apppreciated.

kingtaurus commented 10 years ago

Can you give the output of the command uname -i?

Balderick commented 10 years ago

@kingtaurus uname -i gives unknown

Trying to work around the build_unknown issue trying to use voglperf32 by

desktop@steamos:~/voglperf$ make clean
desktop@steamos:~/voglperf$ make voglperf32

cmake options:
  -DCMAKE_BUILD_TYPE='Release': Build debug or release. (Debug|Release)
  -DCMAKE_VERBOSE='': Spew cmake project options. (On|Off)
  -DBUILD_X64='False': Build 32 or 64-bit. (On|Off)

-- The C compiler identification is GNU 4.7.2
-- The CXX compiler identification is GNU 4.7.2
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found.
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
Building 32-bit voglperf...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/desktop/voglperf/build32
make[1]: Entering directory `/home/desktop/voglperf/build32'
make[2]: Entering directory `/home/desktop/voglperf/build32'
make[3]: Entering directory `/home/desktop/voglperf/build32'
Scanning dependencies of target voglperf
make[3]: Leaving directory `/home/desktop/voglperf/build32'
make[3]: Entering directory `/home/desktop/voglperf/build32'
[ 25%] Building C object CMakeFiles/voglperf.dir/voglperf.c.o
Linking C shared library /home/desktop/voglperf/bin/libvoglperf32.so
make[3]: Leaving directory `/home/desktop/voglperf/build32'
[ 25%] Built target voglperf
make[3]: Entering directory `/home/desktop/voglperf/build32'
Scanning dependencies of target voglperfrun
make[3]: Leaving directory `/home/desktop/voglperf/build32'
make[3]: Entering directory `/home/desktop/voglperf/build32'
[ 50%] Building CXX object CMakeFiles/voglperfrun.dir/voglperfrun.cpp.o
In file included from /home/desktop/voglperf/src/voglperfrun.cpp:40:0:
/home/desktop/voglperf/src/libedit-3.1/include/histedit.h:199:46: warning: ‘int history(History*, HistEvent*, int, ...)’ hides constructor for ‘struct history’ [-Wshadow]
[ 75%] Building CXX object CMakeFiles/voglperfrun.dir/voglutils.cpp.o
[100%] Building C object CMakeFiles/voglperfrun.dir/webby/webby.c.o
Linking CXX executable /home/desktop/voglperf/bin/voglperfrun32
make[3]: Leaving directory `/home/desktop/voglperf/build32'
[100%] Built target voglperfrun
make[2]: Leaving directory `/home/desktop/voglperf/build32'
make[1]: Leaving directory `/home/desktop/voglperf/build32'
desktop@steamos:~/voglperf$ make voglperf64

cmake options:
  -DCMAKE_BUILD_TYPE='Release': Build debug or release. (Debug|Release)
  -DCMAKE_VERBOSE='': Spew cmake project options. (On|Off)
  -DBUILD_X64='True': Build 32 or 64-bit. (On|Off)

-- The C compiler identification is GNU 4.7.2
-- The CXX compiler identification is GNU 4.7.2
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found.
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
Building 64-bit voglperf...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/desktop/voglperf/build64
make[1]: Entering directory `/home/desktop/voglperf/build64'
make[2]: Entering directory `/home/desktop/voglperf/build64'
make[3]: Entering directory `/home/desktop/voglperf/build64'
Scanning dependencies of target voglperf
make[3]: Leaving directory `/home/desktop/voglperf/build64'
make[3]: Entering directory `/home/desktop/voglperf/build64'
[ 25%] Building C object CMakeFiles/voglperf.dir/voglperf.c.o
Linking C shared library /home/desktop/voglperf/bin/libvoglperf64.so
make[3]: Leaving directory `/home/desktop/voglperf/build64'
[ 25%] Built target voglperf
make[3]: Entering directory `/home/desktop/voglperf/build64'
Scanning dependencies of target voglperfrun
make[3]: Leaving directory `/home/desktop/voglperf/build64'
make[3]: Entering directory `/home/desktop/voglperf/build64'
[ 50%] Building CXX object CMakeFiles/voglperfrun.dir/voglperfrun.cpp.o
In file included from /home/desktop/voglperf/src/voglperfrun.cpp:40:0:
/home/desktop/voglperf/src/libedit-3.1/include/histedit.h:199:46: warning: ‘int history(History*, HistEvent*, int, ...)’ hides constructor for ‘struct history’ [-Wshadow]
[ 75%] Building CXX object CMakeFiles/voglperfrun.dir/voglutils.cpp.o
[100%] Building C object CMakeFiles/voglperfrun.dir/webby/webby.c.o
Linking CXX executable /home/desktop/voglperf/bin/voglperfrun64
make[3]: Leaving directory `/home/desktop/voglperf/build64'
[100%] Built target voglperfrun
make[2]: Leaving directory `/home/desktop/voglperf/build64'
make[1]: Leaving directory `/home/desktop/voglperf/build64'
desktop@steamos:~/voglperf$ cd ..
desktop@steamos:~$ sudo -u steam bin/voglperfrun32
[sudo] password for desktop: 
sudo: bin/voglperfrun32: command not found
desktop@steamos:~$ cd voglperf
desktop@steamos:~/voglperf$ sudo -u steam bin/voglperfrun32

Starting web server...
  Started http://192.168.1.66:8081

[webby] WebSocket connected GET on /ws
Welcome!
> game start 20920

GameID: 20920 (gameid20920)

LD_PRELOAD=/home/desktop/voglperf/bin/libvoglperf32.so:/home/desktop/voglperf/bin/libvoglperf64.so:$LD_PRELOAD

VOGLPERF_CMD_LINE="--msqid=0 "

Steam url string:
  steam steam://run/20920//VOGLPERF_CMD_LINE="--msqid=0 " LD_PRELOAD=/home/desktop/voglperf/bin/libvoglperf32.so:/home/desktop/voglperf/bin/libvoglperf64.so:$LD_PRELOAD %command%

Launch string:
  steam steam://run/20920//VOGLPERF_CMD_LINE%3d%22--msqid%3d0%20%22%20LD_PRELOAD%3d%2fhome%2fdesktop%2fvoglperf%2fbin%2flibvoglperf32.so%3a%2fhome%2fdesktop%2fvoglperf%2fbin%2flibvoglperf64.so%3a%24LD_PRELOAD%20%25command%25
Waiting for child process to start...
Running Steam on steamos 1.0 64-bit
STEAM_RUNTIME is enabled automatically

ERROR: Could not retrieve pid of launched game.
> game start 841

GameID: 841 (gameid841)

LD_PRELOAD=/home/desktop/voglperf/bin/libvoglperf32.so:/home/desktop/voglperf/bin/libvoglperf64.so:$LD_PRELOAD

VOGLPERF_CMD_LINE="--msqid=0 "

Steam url string:
  steam steam://run/841//VOGLPERF_CMD_LINE="--msqid=0 " LD_PRELOAD=/home/desktop/voglperf/bin/libvoglperf32.so:/home/desktop/voglperf/bin/libvoglperf64.so:$LD_PRELOAD %command%

Launch string:
  steam steam://run/841//VOGLPERF_CMD_LINE%3d%22--msqid%3d0%20%22%20LD_PRELOAD%3d%2fhome%2fdesktop%2fvoglperf%2fbin%2flibvoglperf32.so%3a%2fhome%2fdesktop%2fvoglperf%2fbin%2flibvoglperf64.so%3a%24LD_PRELOAD%20%25command%25
Waiting for child process to start...
Running Steam on steamos 1.0 64-bit
STEAM_RUNTIME is enabled automatically

ERROR: Could not retrieve pid of launched game.
> game start 550

GameID: 550 (L4D2)

LD_PRELOAD=/home/desktop/voglperf/bin/libvoglperf32.so:/home/desktop/voglperf/bin/libvoglperf64.so:$LD_PRELOAD

VOGLPERF_CMD_LINE="--msqid=0 "

Steam url string:
  steam steam://run/550//VOGLPERF_CMD_LINE="--msqid=0 " LD_PRELOAD=/home/desktop/voglperf/bin/libvoglperf32.so:/home/desktop/voglperf/bin/libvoglperf64.so:$LD_PRELOAD %command%

Launch string:
  steam steam://run/550//VOGLPERF_CMD_LINE%3d%22--msqid%3d0%20%22%20LD_PRELOAD%3d%2fhome%2fdesktop%2fvoglperf%2fbin%2flibvoglperf32.so%3a%2fhome%2fdesktop%2fvoglperf%2fbin%2flibvoglperf64.so%3a%24LD_PRELOAD%20%25command%25
Waiting for child process to start...
Running Steam on steamos 1.0 64-bit
STEAM_RUNTIME is enabled automatically

ERROR: Could not retrieve pid of launched game.
> game start 35720

GameID: 35720 (Trine2)

LD_PRELOAD=/home/desktop/voglperf/bin/libvoglperf32.so:/home/desktop/voglperf/bin/libvoglperf64.so:$LD_PRELOAD

VOGLPERF_CMD_LINE="--msqid=0 "

Steam url string:
  steam steam://run/35720//VOGLPERF_CMD_LINE="--msqid=0 " LD_PRELOAD=/home/desktop/voglperf/bin/libvoglperf32.so:/home/desktop/voglperf/bin/libvoglperf64.so:$LD_PRELOAD %command%

Launch string:
  steam steam://run/35720//VOGLPERF_CMD_LINE%3d%22--msqid%3d0%20%22%20LD_PRELOAD%3d%2fhome%2fdesktop%2fvoglperf%2fbin%2flibvoglperf32.so%3a%2fhome%2fdesktop%2fvoglperf%2fbin%2flibvoglperf64.so%3a%24LD_PRELOAD%20%25command%25
Waiting for child process to start...
Running Steam on steamos 1.0 64-bit
STEAM_RUNTIME is enabled automatically

ERROR: Could not retrieve pid of launched game.
Balderick commented 10 years ago

Very first line of Makefile.md reads UNAME := $(shell uname -i)

In my case uname -i and -p are the only two unknown outputs from uname. This is likely due to unreliable thermal monitoring caused by AMD Phenom 9500 running in FM2+ board and k10temp/init panicing. sensors needs k10temp force=1 to detect CPU temps reliably.

SUGGEST EDIT: Replace UNAME := $(shell uname -i) with UNAME := $(shell uname -r)OR UNAME := $(shell uname -m) to determine platform architecture in Makefile.md.

Following instruction on main github page indicates using make should make both 32 and 64 voglperf. Applying what i suggested with uname -m only makes 64 voglperf as does the build_unknown however in the Makefile.md it is indicated that running the command make voglperf32 voglperf64 should make both libraries available when running voglperf. Running make voglperf32 voglperf64 returns make: *** No rule to make targetvoglperf32'. Stop.`

Making both 32 and 64 seperately dos not give working voglperf.

Balderick commented 10 years ago

Making sure am in voglperf dir then running make voglperf32 voglperf64 does indeed build both builds. The outcome is the same ERROR: Could not retrieve pid of launched game. when trying to launch any steam game using voglperf.

Why does makefile.bin make native library only when it is confirmed in https://github.com/ValveSoftware/voglperf/issues/7 that most steam games are 32bit and steamos is 64bit so both builds are NEEDED to run steam games with voglperf?

Most of the discussion in https://github.com/ValveSoftware/voglperf/issues/7 is related to a libGL.so error which i am not affected by. The only error i get is ERROR: Could not retrieve pid of launched game.

The instructions for building and using voglperf on steamos appear to be inaccurate and/or incomplete.

Balderick commented 9 years ago

Is there any information that i should or could be providing in order to help voglperf work in steam@steamos?

I started a steam discussions thread. It would appear voglperf does not work at all in steam@steamos for other users. http://steamcommunity.com/groups/steamuniverse/discussions/1/616188677563448037/

Steam users have posted videos for both successful and unsuccessful game launches in that discussion thread from steam@steamos showing what happens on steam end using voglperf.

mdeguzis commented 9 years ago

@Balderick , I automated this in my steamos-stats script. The sequence of commands should be the following (in my experience):

sudo apt-get install steamos-dev git
sudo apt-get install git ca-certificates cmake g++ gcc-multilib g++-multilib 
sudo apt-get install mesa-common-dev libedit-dev libtinfo-dev libtinfo-dev:i386 
cd ~
git clone https://github.com/ValveSoftware/voglperf
cd voglperf/
make