• Stars
    star
    198
  • Rank 190,044 (Top 4 %)
  • Language
    C
  • License
    Other
  • Created about 10 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Benchmarking tool for Linux OpenGL games. Spews frame information, logs frametimes.

voglperf

Benchmarking tool for Linux OpenGL games. Spews frame information every second. Example:

##############################################################################
Voglperf framerates from pid 12106.
##############################################################################
3564.35 fps frames:3567 time:1000.74ms min:0.23ms max:14.72ms
4144.01 fps frames:4145 time:1000.24ms min:0.23ms max:1.20ms
4037.20 fps frames:4038 time:1000.20ms min:0.23ms max:1.20ms
4059.60 fps frames:4060 time:1000.10ms min:0.23ms max:1.09ms

Can also write frame times to a log file which can then be graphed with gnuplot, etc.

cat /tmp/voglperf.glxspheres64.2014_02_12-16_02_20.csv:
# Feb 12 16:02:20 - glxspheres64                                                                                                                                                    
# 3414.30 fps frames:3417 time:1000.79ms min:0.23ms max:15.00ms
0.42
0.34
0.30
0.30
0.29
0.29
...

Building

We use cmake and the voglproj binaries are put into the bin directory. A Makefile is included to simplify this a bit and see how cmake is launched.

To build amd64 and i386 packages:

make

To build just i386:

make voglperf32

To build just amd64:

make voglperf64

To delete the build32, build64, and bin build files:

make clean

Building voglperf on SteamOS

  • Click "Settings" on top right.
  • Click "Interface" on left.
  • Check "Enable access to the Linux desktop".
  • Head back to main menu, click "Exit", "Return to Desktop" (or hit ctrl+alt+F8)
  • Click "Activities" on top left, then "Applications".
  • 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
  • Get the volgperf source:
  • git clone https://github.com/ValveSoftware/voglperf.git
  • Build:
  • cd voglperf
  • make

Run voglperf on SteamOS

  • Run voglperf as "steam" user.
  • sudo -u steam bin/voglperfrun64
  • You should see something like:
  • Starting web server...
  • Started http://172.16.10.93:8081
  • Double click "Return to Steam" (or hit ctrl+alt+f7)
  • Connect to voglperf url with Chrome or Firefox browser from another computer.
  • Browser should show something like:
Connected to ws://172.16.10.93:8081/ws  
  Welcome!
Gameid: ''  
    WS Connections: 1  
    logfile: Off (Launch option)  
    verbose: Off  
    fpsspew: Off  
    fpsshow: Off (Launch option)  
    dry-run: Off (Launch option)  
    ld-debug: Off (Launch option)  
    xterm: Off (Launch option)  
    debugger-pause: Off (Launch option)
  • To launch TF2, do:
  • game start 440
  • Click OK button on "Allow game launch" dialog.
  • logfile start 10 ;
  • Should see something like:
  • Logfile started: /tmp/voglperf.Team-Fortress-2.2014_04_01-06_28_16.csv (10 seconds).

  • Logfile stopped: http://172.16.10.93:8081/logfile/tmp/voglperf.Team-Fortress-2.2014_04_01-06_28_16.csv

  • Right click on logfile link and say "Open in New Tab" (or whatever).

Run vogl w/ SSH on SteamOS

  • Run ip addr and note IP address of your SteamOS box.
  • ssh [email protected]
  • cd voglperf
  • sudo -u steam bin/voglperfrun64
  • Run various commands:
    • help
    • status
    • showfps on
    • game start 440
    • etc.

Notes

  • HTML needs to be cleaned up.
  • Occasionally web client will think two clients are connected and duplicated messages. (Needs to be tracked down.)
  • We are currently adding voglperf as a SteamOS package.

Logfiles

Display graph in gnuplot (install gnuplot-x11):

gnuplot -p -e 'set terminal wxt size 1280,720;set ylabel "milliseconds";set yrange [0:100]; plot "/tmp/voglperf.Team-Fortress-2.2014_02_13-13_06_20.csv" with lines'

Output graph to blah.png:

gnuplot -p -e 'set output "blah.png";set terminal pngcairo size 1280,720 enhanced;set ylabel "milliseconds";set yrange [0:100]; plot "/tmp/voglperf.Team-Fortress-2.2014_02_13-13_06_20.csv" with lines'

Example Screenshot

Example screenshot

License and Credits

voglperf code is under the MIT License. The license file Repository License is stored within the repository (and is reproduced here):

                       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.

src/eintr_wrapper.h- Chromium Authors (2012); BSD-style License. [Current License] (https://chromium.googlesource.com/chromium/src.git/+/master/LICENSE)

src/webby/ - Andreas Fredriksson (2012); BSD-style License Current License; Source Location

src/libedit/ - Jess Thrysoee and NetBSD (2014); BSD-style License Current License; Source Location

More Repositories

1

Proton

Compatibility tool for Steam Play based on Wine and additional components
C++
22,477
star
2

GameNetworkingSockets

Reliable & unreliable messages over UDP. Robust message fragmentation & reassembly. P2P networking / NAT traversal. Encryption.
C++
7,681
star
3

openvr

OpenVR SDK
C++
5,946
star
4

steam-for-linux

Issue tracking for the Steam for Linux beta client
4,034
star
5

source-sdk-2013

The 2013 edition of the Source SDK
C++
3,591
star
6

halflife

Half-Life 1 engine based games
C++
2,971
star
7

steam-audio

Steam Audio
C++
2,055
star
8

ToGL

Direct3D to OpenGL abstraction layer
C++
2,009
star
9

SteamOS

SteamOS community tracker
1,465
star
10

vogl

OpenGL capture / playback debugger.
C++
1,415
star
11

Dota2-Gameplay

Public Bug Tracker for Dota2
1,388
star
12

steam-runtime

A runtime environment for Steam applications
Shell
1,133
star
13

wine

Wine with a bit of extra spice
C
1,093
star
14

steamvr_unity_plugin

SteamVR Unity Plugin - Documentation at: https://valvesoftware.github.io/steamvr_unity_plugin/
C#
1,010
star
15

SteamVR-for-Linux

Issue tracker for the Linux port of SteamVR
901
star
16

csgo-osx-linux

Counter-Strike: Global Offensive
750
star
17

Source-1-Games

Source 1 based games such as TF2 and Counter-Strike: Source
572
star
18

Fossilize

A serialization format for various persistent Vulkan object types.
C++
510
star
19

IndexHardware

474
star
20

csgo-demoinfo

CS:GO demo parsing tool
C++
472
star
21

Dota-2

Tracker for issues specific to Linux and Mac in the Reborn client. If you have a general issue or non-system-specific feature request please go to dev.dota2.com
454
star
22

steamlink-sdk

450
star
23

counter-strike

CS:GO
JavaScript
430
star
24

steamos_kernel

SteamOS kernel branches
C
388
star
25

dxvk

dxvk tree containing branches used by Proton
C++
342
star
26

unity-xr-plugin

OpenVR plugin for Unity's XR API
C#
298
star
27

ArtifactDeckCode

Reference code and documentation for Artifact deck codes
PHP
276
star
28

the_lab_renderer

Valve’s VR renderer used in The Lab (Valve’s VR launch title for the HTC Vive).
C#
272
star
29

steamvr_unreal_plugin

SteamVR Input Unreal Plugin - Documentation at: https://github.com/ValveSoftware/steamvr_unreal_plugin/wiki Sample project (UE4.15-4.23): https://github.com/ValveSoftware/steamvr_unreal_plugin/wiki/sample/SteamVRInputPlugin.zip Sample Project (UE.424+): https://github.com/ValveSoftware/steamvr_unreal_plugin/wiki/sample/SteamVRInputPlugin_UEIntegrated.7z
C++
164
star
30

steamos_mesa

Patched branches of Mesa used in SteamOS
C
157
star
31

Moondust

C#
156
star
32

portal2

Issues for the Linux port of Portal 2
136
star
33

steamworks-vr-api

Source for the Steamworks VR API
136
star
34

steam-devices

List of devices Steam and SteamVR will want read/write permissions on, to help downstream distributions create udev rules/etc
128
star
35

vkd3d

C
120
star
36

steamos-compositor

SteamOS session compositing window manager
C
109
star
37

driver_hydra

OpenVR Driver for Razer Hydra using Sixense SDK
C++
99
star
38

Dota-2-Vulkan

Tracker for issues specific to the Vulkan version of Dota 2 on Windows, Linux, and macOS
93
star
39

virtual_display

An example OpenVR driver for demonstrating the IVRVirtualDisplay interface.
C++
80
star
40

openxr_engine_plugins

Contains Valve-provided plugins for using OpenXR extensions with various game engines
Mathematica
46
star
41

linux

SteamOS fork of the Debian kernel packaging repository at https://anonscm.debian.org/git/kernel/linux.git/
45
star
42

eigen

Fork of Eigen release version 3.4. Adds ability to use alternate threading systems from Open MP.
C++
22
star
43

Dota-Underlords

Tracker for issues specific to the Linux and macOS client of Dota Underlords
22
star
44

OpenXR-Canonical-Pose-Tool

A tool to help OpenXR runtime developers match their poses to other runtimes' poses.
C
10
star
45

VR-Community-Bugs

Repository for VR Bugs reported through tickets and community outreach
9
star