ValveSoftware / voglperf

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

ERROR: Could not retrieve pid of launched game. #7

Closed leinardi closed 10 years ago

leinardi commented 10 years ago

Voglperf seems to have trouble finding the PID of the started game:

Welcome!
Gameid: ''
  WS Connections: 1
  logfile: Off (Launch option)
  verbose: Off
  fpsprint: Off
  fpsshow: Off
  dry-run: Off (Launch option)
  ld-debug: Off (Launch option)
  xterm: Off (Launch option)
  debugger-pause: Off (Launch option)
> fpsshow on
fpsshow: On
> fpsprint on
fpsprint: On
> game start 253030
GameID: 253030 (gameid253030)
LD_PRELOAD=./libvoglperf32.so:/home/leinardi/temp/voglperf/bin/libvoglperf64.so:$LD_PRELOAD
VOGLPERF_CMD_LINE="--msqid=131075  --showfps"
Steam url string:
  steam steam://run/253030//VOGLPERF_CMD_LINE="--msqid=131075  --showfps" LD_PRELOAD=./libvoglperf32.so:/home/leinardi/temp/voglperf/bin/libvoglperf64.so:$LD_PRELOAD %command%
Launch string:
  steam steam://run/253030//VOGLPERF_CMD_LINE%3d%22--msqid%3d131075%20%20--showfps%22%20LD_PRELOAD%3d.%2flibvoglperf32.so%3a%2fhome%2fleinardi%2ftemp%2fvoglperf%2fbin%2flibvoglperf64.so%3a%24LD_PRELOAD%20%25command%25
Waiting for child process to start...
Running Steam on ubuntu 14.04 64-bit
STEAM_RUNTIME is enabled automatically
ERROR: Could not retrieve pid of launched game.
> game start 440
GameID: 440 (TF2)
LD_PRELOAD=./libvoglperf32.so:/home/leinardi/temp/voglperf/bin/libvoglperf64.so:$LD_PRELOAD
VOGLPERF_CMD_LINE="--msqid=131075  --showfps"
Steam url string:
  steam steam://run/440//VOGLPERF_CMD_LINE="--msqid=131075  --showfps" LD_PRELOAD=./libvoglperf32.so:/home/leinardi/temp/voglperf/bin/libvoglperf64.so:$LD_PRELOAD %command%
Launch string:
  steam steam://run/440//VOGLPERF_CMD_LINE%3d%22--msqid%3d131075%20%20--showfps%22%20LD_PRELOAD%3d.%2flibvoglperf32.so%3a%2fhome%2fleinardi%2ftemp%2fvoglperf%2fbin%2flibvoglperf64.so%3a%24LD_PRELOAD%20%25command%25
Waiting for child process to start...
Running Steam on ubuntu 14.04 64-bit
STEAM_RUNTIME is enabled automatically
ERROR: Could not retrieve pid of launched game.

System Info: https://gist.github.com/leinardi/4c1779f0f800850724d1

MichaelAquilina commented 10 years ago

I have the same problem. Is there something I am possibly missing?

ubuntuaddicted commented 10 years ago

i'm running xubuntu 14.04 and I can't even figure out how to get volgperf working at all. i've compiled it and after a few errors I managed to get it compiled running the make command without errors. THe instructions don't mention a make install, was I suppose to run sudo make install? The instructions say to cd to the voglperf directory and run steam like so "steam bin/voglperfrun64" but in the terminal i never see anything about a web server starting up like it says it should from the instructions. Any tips to get this to work so I can see how many FPS i am getting in The Witcher 2

MichaelAquilina commented 10 years ago

Once you have compiled it you just need to start it:

bin/voglperfrun64

This should start a web server for you:

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

Just direct your browser to that page and you should find that voglperf is running. You can start a game from voglperf using a command like:

game start 440

Which starts TF2. You can get a list of game ids from steamdb.

I have a problem getting games to run though because I get an error message saying the pid could not be retrieved.

mikesart commented 10 years ago

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

It looks like maybe you haven't built the 32-bit version? TF2 is a 32-bit game so it would need libvoglperf32.so to be injected there.

leinardi commented 10 years ago

Yep, that seems to be the problem.

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.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- 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/leinardi/temp/voglperf/build_x86_64
make[1]: ingresso nella directory "/home/leinardi/temp/voglperf/build_x86_64"
make[2]: ingresso nella directory "/home/leinardi/temp/voglperf/build_x86_64"
make[3]: ingresso nella directory "/home/leinardi/temp/voglperf/build_x86_64"
Scanning dependencies of target voglperf
make[3]: uscita dalla directory "/home/leinardi/temp/voglperf/build_x86_64"
make[3]: ingresso nella directory "/home/leinardi/temp/voglperf/build_x86_64"
[ 25%] Building C object CMakeFiles/voglperf.dir/voglperf.c.o
Linking C shared library /home/leinardi/temp/voglperf/bin/libvoglperf64.so
make[3]: uscita dalla directory "/home/leinardi/temp/voglperf/build_x86_64"
[ 25%] Built target voglperf
make[3]: ingresso nella directory "/home/leinardi/temp/voglperf/build_x86_64"
Scanning dependencies of target voglperfrun
make[3]: uscita dalla directory "/home/leinardi/temp/voglperf/build_x86_64"
make[3]: ingresso nella directory "/home/leinardi/temp/voglperf/build_x86_64"
[ 50%] Building CXX object CMakeFiles/voglperfrun.dir/voglperfrun.cpp.o
In file included from /home/leinardi/temp/voglperf/src/voglperfrun.cpp:40:0:
/home/leinardi/temp/voglperf/src/libedit-3.1/include/histedit.h:199:46: warning: ‘int history(History*, HistEvent*, int, ...)’ hides constructor for ‘struct history’ [-Wshadow]
 int  history(History *, HistEvent *, int, ...);
                                              ^
[ 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/leinardi/temp/voglperf/bin/voglperfrun64
make[3]: uscita dalla directory "/home/leinardi/temp/voglperf/build_x86_64"
[100%] Built target voglperfrun
make[2]: uscita dalla directory "/home/leinardi/temp/voglperf/build_x86_64"
make[1]: uscita dalla directory "/home/leinardi/temp/voglperf/build_x86_64"

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.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- 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...
CMake Error at CMakeLists.txt:40 (message):
  Find_package failed to locate i386-linux-gnu libGL.so.

-- Configuring incomplete, errors occurred!
See also "/home/leinardi/temp/voglperf/build32/CMakeFiles/CMakeOutput.log".
See also "/home/leinardi/temp/voglperf/build32/CMakeFiles/CMakeError.log".
make[1]: ingresso nella directory "/home/leinardi/temp/voglperf/build32"
make[1]: *** Nessun obiettivo specificato e nessun makefile trovato.  Arresto.
make[1]: uscita dalla directory "/home/leinardi/temp/voglperf/build32"
make: *** [voglperf32] Errore 2

I solved it by creating a symbolic link: sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

Thanks for the hint.

MichaelAquilina commented 10 years ago

I managed to solve the libGL problem but I am also getting this error:

In file included from /usr/include/unistd.h:25:0,
                 from /home/michaela/Development/voglperf/src/voglperf.c:26:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
 #  include <sys/cdefs.h>

Running a find lists the following:

 /usr/include/x86_64-linux-gnu/sys/cdefs.h

Did you have this problem? Do I simply need to symlink this file to /usr/include? I'm hesitant about doing so in case it screws up any future files that rely on it. Plus I'm guessing it was placed in the x64 directory for a reason.

mikesart commented 10 years ago

I'm on Mint 17 and to get the 32-bit version building I had to apt-get these libraries as well:

g++-multilib, gcc-multilib, and libc6-dev-i386

MichaelAquilina commented 10 years ago

That seemed to do it thanks!

On Tue, Jun 3, 2014 at 6:31 PM, Michael Sartain notifications@github.com wrote:

I'm on Mint 17 and to get the 32-bit version building I had to apt-get these libraries as well:

g++-multilib, gcc-multilib, and libc6-dev-i386

— Reply to this email directly or view it on GitHub https://github.com/ValveSoftware/voglperf/issues/7#issuecomment-44995449 .

Michael Aquilina

mikesart commented 10 years ago

Great. Thanks Michael.

MichaelAquilina commented 10 years ago

Hey guys I wanted to warn everyone that copying libGL.so to /usr/lib/i386-linux-gnu will cause dota2 and other source games to segfault. Running rm /usr/lib/i386-linux-gnu/libGL.* will solve the problem.

mdeguzis commented 9 years ago

Why was this closed? This is still an issue with 32 bit games and voglperf. Even if I follow the advice to link libGL, this still does not work. Example below with Super Meat Boy:

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

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

game start 40800
> game start 40800

GameID: 40800 (gameid40800)

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

VOGLPERF_CMD_LINE="--msqid=229380 "

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

Launch string:
  steam steam://run/40800//VOGLPERF_CMD_LINE%3d%22--msqid%3d229380%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

The game attempts to start, then crashes back to Steam and wrecks gamepad input.