diff --git a/README.md b/README.md index 317fbf5..b360d2a 100644 --- a/README.md +++ b/README.md @@ -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 -------- @@ -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` @@ -126,7 +137,7 @@ Run vogl w/ SSH on SteamOS * Run various commands: * `help` * `status` - * `showfps on` + * `fpsshow on` * `game start 440` * etc. diff --git a/debian/LICENSE b/debian/LICENSE new file mode 100644 index 0000000..2f5923c --- /dev/null +++ b/debian/LICENSE @@ -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. + + diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/debian/changelog @@ -0,0 +1 @@ + diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..5bcab3e --- /dev/null +++ b/debian/control @@ -0,0 +1,26 @@ +Source: voglperf +Section: utils +Priority: extra +Maintainer: SteamOS-Tools Signing Key +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. diff --git a/debian/install b/debian/install new file mode 100644 index 0000000..4b6bb62 --- /dev/null +++ b/debian/install @@ -0,0 +1,2 @@ +voglperf32 /usr/bin/ +voglperf64 /usr/bin/ diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..2d33f6a --- /dev/null +++ b/debian/rules @@ -0,0 +1,4 @@ +#!/usr/bin/make -f + +%: + dh $@ diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/src/notes b/src/notes new file mode 100644 index 0000000..5ce8358 --- /dev/null +++ b/src/notes @@ -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. diff --git a/src/voglperf.c b/src/voglperf.c index d271e28..803db9a 100644 --- a/src/voglperf.c +++ b/src/voglperf.c @@ -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. diff --git a/src/voglperfrun.cpp b/src/voglperfrun.cpp index aca4bc6..84858f8 100644 --- a/src/voglperfrun.cpp +++ b/src/voglperfrun.cpp @@ -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); } }