Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 17 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,15 @@ Can also write frame times to a log file which can then be graphed with gnuplot,
0.29
0.29
...
Dependencies
------------
libboost-thread-dev

libsdl2-dev

build-essential

The above appears to be the minimum required to get voglperf to build on xubuntu 16.04

Building
--------
Expand Down Expand Up @@ -52,11 +61,13 @@ Building voglperf on SteamOS
- Click **"Terminal"** icon.
- Type **`passwd`** and enter a password.
- Install build packages:
* `sudo apt-get install steamos-dev `
* `echo "deb http://ftp.debian.org/debian wheezy main contrib non-free" | sudo tee -a /etc/apt/sources.list`
* `sudo apt-get update`
* `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`
```
sudo apt-get install steamos-dev
echo "deb http://ftp.debian.org/debian wheezy main contrib non-free" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install git ca-certificates cmake g++ gcc-multilib g++-multilib
sudo apt-get install ncurses-dev mesa-common-dev libedit-dev libtinfo-dev libtinfo-dev:i386
```

- Get the volgperf source:
* `git clone https://github.com/ValveSoftware/voglperf.git`
Expand Down Expand Up @@ -126,7 +137,7 @@ Run vogl w/ SSH on SteamOS
* Run various commands:
* `help`
* `status`
* `showfps on`
* `fpsshow on`
* `game start 440`
* etc.

Expand Down
24 changes: 24 additions & 0 deletions debian/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
VOGLPERF CODE LICENSE

Copyright 2013-2014 RAD Game Tools and Valve Software
All Rights Reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


1 change: 1 addition & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions debian/compat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
9
26 changes: 26 additions & 0 deletions debian/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Source: voglperf
Section: utils
Priority: extra
Maintainer: SteamOS-Tools Signing Key <mdeguzis@gmail.com>
Build-Depends: debhelper (>= 9),
steamos-dev,
ca-certificates,
cmake,
g++,
gcc-multilib,
g++-multilib,
ncurses-dev,
mesa-common-dev,
libedit-dev,
libtinfo-dev,
libtinfo-dev:i386
Standards-Version: 3.9.5
Homepage: http://github.com/ProfessorKaos64/voglperf
Vcs-Git: git://github.com/ProfessorKaos64/voglperf
Vcs-Browser: http://github.com/ProfessorKaos64/voglperf

Package: voglperf
Architecture: all
Depends: curl
Description: voglperf Benchmarking tool for Linux OpenGL game.
Spews frame information every second.
2 changes: 2 additions & 0 deletions debian/install
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
voglperf32 /usr/bin/
voglperf64 /usr/bin/
4 changes: 4 additions & 0 deletions debian/rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/make -f

%:
dh $@
1 change: 1 addition & 0 deletions debian/source/format
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.0 (native)
18 changes: 18 additions & 0 deletions src/notes
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
1000/average frame time = fps adjusted for average frame time.

stdev(fps) = how "flaky" the fps is, good measure of whether or not the game runs "well/stable"
stdev (frame times) = same as aboveish, engine efficiency.


todo:

remove 2 lines @ start of log (pulseaudio?? x64 )
mitigate the -nan value for fps @ start, maybe trim first 3 lines?

add hwinfo @ end of log for automated report/testing for easy reposting/sharing.

possibly auto parse logs?

min/max/avg/stdev for frametime * fps.

logfiles go to home instead of tmp/ or allow user specify.
4 changes: 3 additions & 1 deletion src/voglperf.c
Original file line number Diff line number Diff line change
Expand Up @@ -595,8 +595,10 @@ static void voglperf_swap_buffers(Display *dpy, GLXDrawable drawable, int flush_
if (g_logfile_fd != -1)
{
// Add this frame time to our logfile.
snprintf(g_logfile_buf + g_logfile_buf_len, sizeof(g_logfile_buf) - g_logfile_buf_len, "%.2f\n", time_frame * g_rcpMILLION);
snprintf(g_logfile_buf + g_logfile_buf_len, sizeof(g_logfile_buf) - g_logfile_buf_len, "%.2f, %.2f\n", time_frame * g_rcpMILLION, s_frameinfo.frame_count * (double)g_BILLION / s_frameinfo.time_benchmark);
g_logfile_buf_len += strlen(g_logfile_buf + g_logfile_buf_len);


}

// If this time would push our total benchmark time over 1 second, spew out the benchmark data.
Expand Down
7 changes: 4 additions & 3 deletions src/voglperfrun.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -729,9 +729,10 @@ static void update_app_messages(voglperf_data_t &data)
app_finished = true;
}
else if (data.flags & F_FPSPRINT)
{
webby_ws_printf("%.2f fps frames:%u time:%.2fms min:%.2fms max:%.2fms\n",
mbuf_fps.fps, mbuf_fps.frame_count, mbuf_fps.frame_time, mbuf_fps.frame_min, mbuf_fps.frame_max);
{
//overlay output
webby_ws_printf("%.2f fps FT%.2fms FTMin:%.2fms FTMax:%.2fms\n",
mbuf_fps.fps, mbuf_fps.frame_time, mbuf_fps.frame_min, mbuf_fps.frame_max);
}
}

Expand Down