Calling all Devs: Benchmarking and Diagnostic Tools for Linux Gaming

I’ve experienced the same variances in my own testing, and it’s been incredibly frustrating, building a testing methodology for linux that’s application/hardware agnostic and accurate. I’d love to be looped in if you find something that works well for OGL as well as vulkan

does it log to csv

It can


it’s discontinued, but Bugle has framerate/frametime logging functionality:

I need this in my life. Have to fish some kittens out of a toilet then maybe I’ll have time to poke at it tmrw

1 Like


bugle still compiles fine with glew/SCons 3, but the resulting installation can’t find any of its shared objects

glxgears: error while loading shared libraries: cannot open shared object file: No such file or directory

Anyone with experience with SCons want to chime in on how to configure it properly? I’d assume it has something with the install path or env but I don’t have any experience with this build system or tweaking it

edit: just me being dumb and tired, had to add /usr/local/lib to my LD_LIBRARY_PATH, got bugle up and running, tested on glxgears with logging enabled, and got some output

[INFO] per frame: 16.62 ms/frame
[INFO] logstats.frames per second: 58.3 fps
[INFO] per frame: 17.16 ms/frame
[INFO] logstats.frames per second: 55.6 fps
[INFO] per frame: 17.98 ms/frame
[INFO] logstats.frames per second: 49.6 fps
[INFO] per frame: 20.14 ms/frame
[INFO] logstats.frames per second: 83.7 fps
[INFO] per frame: 11.95 ms/frame
[INFO] logstats.frames per second: 60.8 fps
[INFO] per frame: 16.45 ms/frame
[INFO] logstats.frames per second: 59.4 fps
[INFO] per frame: 16.85 ms/frame
[INFO] logstats.frames per second: 60.1 fps
[INFO] per frame: 16.64 ms/frame
[INFO] logstats.frames per second: 60.0 fps
[INFO] per frame: 16.68 ms/frame
[INFO] logstats.frames per second: 60.2 fps
[INFO] per frame: 16.62 ms/frame
[INFO] logstats.frames per second: 59.9 fps
[INFO] per frame: 16.68 ms/frame
[INFO] logstats.frames per second: 60.0 fps
[INFO] per frame: 16.67 ms/frame
[INFO] logstats.frames per second: 60.0 fps
[INFO] per frame: 16.65 ms/frame
[INFO] logstats.frames per second: 60.6 fps
[INFO] per frame: 16.51 ms/frame
[INFO] logstats.frames per second: 60.2 fps
[INFO] per frame: 16.60 ms/frame
[INFO] logstats.frames per second: 59.4 fps
[INFO] per frame: 16.84 ms/frame
[INFO] logstats.frames per second: 59.8 fps
[INFO] per frame: 16.73 ms/frame

with a little profile config, this can easily spit out opengl data in csv format

hell, even the gui still works

I’ll be doing a writeup soon on this, but all you have to do is install, set the path, and run

BUGLE_CHAIN=<profile> LD_PRELOAD=/usr/local/lib/ <application>

and you get whatever data you set up in the profile in a log or as output

Update: also works with the game transistor (GOG), yet to test on steam titles, but it should be as simple as adding the string above as a launch option

I wouldn’t know where to start building something like this but if someone has a plan and needs help, I would love to help with this.

Shameless thread plug:

It’s unfortunate they don’t offer a .run or a precompiled archive

Does everything need to run through bugle?
Comparing it to fraps, can’t we run it separately and then hook into process?

it’s a preload wrapper

Remember to target as easy and painless for the least linux savvy users. I’m on the proton spreadsheet thing discord and I’m seeing a ton of new users.

as an example: Some of them have followed really really really outdated guides to get their nvidia graphics drivers installed, leaving them without usable gui and screaming help via mobile discord.

Something that can be run via GUI and installed via appimage would be best.

That way we don’t scare the newcomers :joy:


Personally, having a utility like HWInfo64 is my top priority. I have not found anything exactly like this (but would love if you could point me to something, as I am new to linux, coming from Windows). Then, something like CPU-Z or AIDA64 for the reading of components, frequencies, etc. For the windows overclocking community, which is what most of is, CPU-Z and a powerful utility that can capture all temps and voltages is invaluable. Having voltage and temp monitoring that is low impact on performance can allow overclockers to bring their rigs to working within a specific temp window under load, which is essential if a person is trying to overclock without harming their hardware. For voltage monitoring, it is important to watch for voltage spikes which can damage hardware, as well as throttle events. This means frequency dips on the hardware due to built in safety mechanisms, but also means power and current throttling conditions, like the VRM getting too hot and clamping down on power throughput, which can also effect performance (also worth having to a degree to check servers if running custom firmware or BCLK manipulation at times).

CPU-Z has handy interface to look at what is read by the system on frequency, SPD, Memory set clocks, Motherboard data, and, under tools, has a timer checker that allows for examining which clock is used as the platform clock and comparing the ITSC, RTC, and HPET timer performance, that way to check for clock drift depending on timer and OS. Similar is found in the other side of HWInfo that is not the sensors part of the program for hardware monitoring, or like AIDA64 does to breakdown hardware information.

That is what I think of immediately when I think simple diagnostics for overclocking. I do not do the GPU side as much, so cannot speak as to the best way to accomplish that, nor have I tried like ocat, fcat, and fraps. I know on Windows side, some have used rivatuner in the past or afterburner and set up the OSD to measure fraps, etc., while also being able to adjust card voltages, etc. A couple card utilities for overclocking include Nvidia Inspector, Precision X (EVGA), MSI Afterburner, and I think there were a couple others, but those are the main ones used. They allow for changing the power limits to a degree, prioritize temp or current, etc.

Then you have the utilities for overclocking the CPU and memory, such as Intel XTU, RyzenMaster, and ThrottleStop. Now, Throttlestop was created for use with laptops and Intel CPUs so that you could diagnose and stop the throttle conditions causing unstable overclocks. The creator of that program said he will not support AMD chips. But, it allows for changing certain voltages and the clocks in OS similar to Intel XTU. Motherboard vendors also have their own overclocking utilities similar to these programs, such as DIP5 on ASUS, a voltage setting program with ASROCK (A-Tuning and other variant names, but just reskins of the same program, mostly, on AMD side, haven’t tried Intel side with ASROCK yet). Some of these programs allow for memory timing manipulation, but often requires a reboot to set (for obvious reasons).

Then you have MemTweakIt utility from Asus and Asrock had Timing Configurator. These are detailed analysis of subtimings, also allowing changing some subtimings depending on platform support, etc. For AMD, the Ryzen Timing Checker from the Stilt (a memory overclocker that works with Asus). So, something that can dive in and adequately read these subtimings and settings would be AMAZING.

But those are my thoughts on the utilities/tools that might give inspiration.

For stress testing, I often use blender and Sisoft Sandra on Windows to check for stability, just because Prime95 runs my hardware hotter than any of my workloads, so it leaves performance on the table, which is fine if you want that large of a buffer built into your temps so as dust accumulates or fan or pump failure occurs, you may have a bit more time to catch what is causing the problems on heat without having a hard safety shutdown immediately. I find AIDA64 can give false stability and hate XTU. You could also run Cinebench R15 in loop, or something similar. I recommend doing stability and error testing, generally, using the same types of workloads you will be performing. So rendering is always stressful and a good thing, monte carlo simulations are wonderful to test or stress, pi and prime depend (like prime95 or finding a pi program able to maintain full load on HCC computers).

For error testing on memory stability, I currently use TestMem5 ( on windows with a custom cfg file from 1usmus, the creator of the Ryzen DRAM calculator, HCI memtest as a cache coherency and mem stress test on windows, then stressapptest from Google for both cache and without cache on linux. Even though overclocking the ram, making sure you are not getting errors is extremely important.

Going to read through the rest to see what programs others recommended here, so I apologize if I said anything already addressed.

Edit: I also forgot to mention GPU-Z as a GPU utility.

Found this useful infographic.

1 Like

open source amd mesa user? then use gallium_hud copy paste this into steam launch options (easy way) or run from elsewhere

GALLIUM_HUD="fps:100+GPU+GPU-load+temperature+shader+clock+memory+clock+temp1+shaders-busy+GPU-scratch-ram+busy+draw-calls+CS+thread-busy+drequested-VRAM+VRAM-usage+mapped-VRAM+GTT-usage+mapped-GTT+samples-passed+primitives-generated;cpu:100+cpu0+cpu1+cpu2+cpu3+cpu4+cpu5+cpu6+cpu7+cpu8;ps-invocations+buffer-wait-time+ta-busy+GPU-vgt-busy+GPU-sx-busy+GPU-wd-busy+GPU-sc-busy+GPU-pa-busy+GPU-db-busy+GPU-cp-busy+GPU-cb-busy+hud_toggle_visibility" %command%

An example of how it looks and what information is available: (with the above settings, even more can be added)

Not sure if it’s been mentioned but Handbrake, mprime, linpack, and Memtest86+ should accomplish that.

Any activity on this? Wonder if there’s a better place we can pool resources to make something like this happen? I have a front-end application ready to go that could be made to display benchmark results/store them. I wrote a thread about it here: Developing a benchmark comparison site, need feedback

Bumpin this ^

Hey, as per FAQ:
Each thread can be revived or brought back within 6 months. Look at the thread carefully and consider if it is still relevant. Would it be better to make a new thread instead? Remember that you can link back to old topics. When a thread is brought back after 6 months, the post reviving the thread is reviewed.

Since the OP has already been anoned and it’s likely topic is no longer relevant, I’ve locked the thread. If someone feels the thread should be reopened please let me or other Leaders know about it. You are also free to make new thread discussing about Linux Benchmarking tools and link this original thread to new discussion.