LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software > Linux - Games
User Name
Password
Linux - Games This forum is for all discussion relating to gaming in Linux.

Notices


Reply
  Search this Thread
Old 02-12-2004, 03:18 PM   #1
Thetargos
Senior Member
 
Registered: Mar 2003
Location: Mexico City
Distribution: Fedora, Ubuntu & Mint
Posts: 1,679

Rep: Reputation: 45
[Script for]Benchmarking UT2K3 performance


I wrote this little script for benchmarking UT2K3 performance, enjoy!
Code:
#!/bin/bash
# Unreal Tournament 2003 batch benchmark script
#
# This scritp is made public in the hopes that
# some one may find it useful, I know I did.
# You are welcome to redistribute, edit or make any
# corrections to the present code, as long as you give
# back what you did. You are free to distribute this 
# code under the terms of the GNU General Public License, 
# which can be found on-line at www.gnu.org/licenses/.
#
#
# Original Author: Gian Paolo Mureddu AKA Thetargos.

function reswrite ()
{
	for i in $BENCHRESDIR/$NAME/*log
	do
	{	
		map=`awk -F? 'NR == 6 {printf("%s\t", $1)}' $i`
		min=`awk 'NR == 8 {printf("%.3f\t", $1)}' $i`
		mean=`awk 'NR == 8 {printf("%.3f\t", $3)}' $i`
		max=`awk 'NR == 8 {printf("%.3f\t", $5)}' $i`
		score=`awk 'NR == 9 {printf("%.3f", $3)}' $i`
		echo "$map$min$mean$max$score" >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	
	}
	done
	echo >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	rm -f $BENCHRESDIR/$NAME/*log
}

function header ()
{
	echo "Benchmark Name: $NAME" > "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo "Unreal Tournament 2003" >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo -n "OS: " >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	uname -rsmp >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	glxinfo | grep renderer|  gawk '{print $4,$5,$6,$7,$8}' >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo -n "Processor: " >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	cat /proc/cpuinfo | grep name | gawk '{print $4,$5,$6,$7}' >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo -n "Speed: " >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	cat /proc/cpuinfo | grep MHz | gawk '{print $4}' >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo -n "Memory (Mb): " >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	free -mot | grep Mem | gawk '{print $2}' >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
}

function flyprnt ()
{
	echo "Flyby benchmarks" >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo "map		min	mean	max	score" >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
}


function botprnt ()
{
	echo >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo "Botmatch benchmarks" >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
	echo "map		min	mean	max	score" >> "$BENCHRESDIR/$NAME/$NAME-results.txt"
}

# Defining the default path for Unreal Tournament installation.
DEFPATH="/usr/local/games/ut2003"

# Stablish the possible drivers to look for
ATi="fglrx"
NVIDIA="nvidia"

echo "#####################################################"
echo "# This program will test you computer graphic capa- #"
echo "# city based on the rendering engine and benchmarks #"
echo "# from the Unreal Tournament 2003 for Linux game.   #"
echo "#####################################################"
echo
echo
echo "Performing a series of tests..."

# Test to see whether we are using an nvidia or ATi card with their closed source drivers.
echo "Looking for the NVIDIA driver..."
echo
DRIVER=`/sbin/lsmod | grep $NVIDIA | awk '{print $1}'`
if [ "$DRIVER" == "" ]
then
	echo "No NVIDIA driver found"
	echo
	echo "Looking for the ATi driver..."
	echo
	DRIVER=`/sbin/lsmod | grep $ATi | awk '{print $1}'`
	if [ "$DRIVER" == "" ]
	then
		echo "You are not using either NVIDIA or ATi Linux drivers!"
		echo "To ensure the best performance you should use the official drivers."
		echo "Do you want me to search for the Radeon or NVIDIA DRI drivers? (y/n)"
		read ANS
		while :
		do
			case $ANS in
				y|Y)
					echo
					echo "Searching for NVIDIA and ATi DRI drivers..."
					echo
					DRIVER=`/sbin/lsmod | grep nv | awk '{print $1}'`
					if [ "$DRIVER" == "" ]
					then
						DRIVER=`/sbin/lsmod | grep radeon | awk '{print $1}'`
						if [ "$DRIVER" == "" ]
						then
							echo "I could not find an NVIDIA or ATi DRI driver"
							echo "Exiting..."
							exit 0
						fi
						
					elif [ "$DRIVER" == "nv" ]
					then
						echo "NVIDIA DRI driver found: $DRIVER"
						break
					elif [ "$DRIVER" == "radeon"
					then
						echo "ATi Radeon DRI driver found: $DRIVER"
						break
					fi
					;;
				n|N)
					echo "I couldn't find any suitable driver and you chose not"
					echo "to search for DRI drivers, exiting..."
					exit 1
					;;
				*)
					echo "Please answer either y/n or cancel this program execution"
					echo "with CTRL-C"
			esac
		done
	elif [ "$DRIVER" == "$NVIDIA" ]

	then
		echo "You are using the NVIDIA driver"
		echo "Verifying that you have VSync disabled..."
	
		# Test to see if we have vsync enabled
		if [ "$__GL_SYNC_TO_VBLANK" == "" || "$__GL_SYNC_TO_VBLANK" == "0" ]
		then
			echo "You have VSync disabled, proceding"
		elif [ "$__GL_SYNC_TO_VBLANK" > "0" ]
		then
			echo "You do not have VSync disabled, disabling..."
			echo
			export __GL_SYNC_TO_VBLANK=0
			echo "VSync disabled, proceding with benchmarks"
		# Test to see if we have FSAA enabled
		elif [ "$__GL_FSAA_MODE" != "0" ]
		then
			echo "You are running with FSAA enabled"			
			while :
			do
			echo "Do you want to run the tests with FSAA on? (y/n)"
			read AA
			case $AA in
				y|Y)
					echo
					echo "Running with FSAA mode $__GL_FSAA_MODE"
					break
					;;
				n|N)
					echo
					echo "Disabling FSAA..."
					export __GL_FSAA_MODE=0
					break
					;;
				*)
					echo "Please answer whether yes or no since the results"
					echo "will be affected by this option."
			esac
			done
		# Test to see if we have AF enabled
		elif [ "$__GL_DEFAULT_LOG_ANISO" != "0" ]
		then
			echo "You have Anisotropic Filtering enabled."
			while :
			do
			echo "Do you want to run the tests with FSAA on? (y/n)"
			read AF
			case $AF in
				y|Y)
					echo
					echo "Running with AF mode $__GL_DEFAULT_LOG_ANISO"
					break
					;;
				n|N)
					echo
					echo "Disabling AF..."

					export __GL_DEFAULT_LOG_ANISO=0
					break
					;;
				*)
					echo "Please answer whether yes or no since the results"
					echo "will be affected by this option."
			esac
			done
		fi
	elif [ "$DRIVER" == "$ATi" ]
	then
		echo "You are using the ATi $DRIVER driver."
		echo "As I have no way to test for VSync or FSAA with these drivers"
		echo "it is advisable for you to disable it before running this"
		echo "program. Just press CTRL-C to abort execution and"
		echo "procede to disabling VSync by running fglrxconfig"
	fi
fi

echo
echo "Looking for an Unreal Tournament 2003 installation"
echo "at the default location $DEFPATH"

while :
do
	if [ ! -d "$DEFPATH" ]
	then
		echo
		echo "The installation directory of UT2003 could not be found"
		echo "Please enter the path to your UT2003 install directory"
		read DEFPATH
	elif [ ! -x "$DEFPATH"  ]
	then
		echo
		echo "The installation directory is not executlable by $USER"
		echo "Please change the permissons or log in as another user"
		echo "Exiting..."
		exit 1
	elif [ ! -x "$DEFPATH/Benchmark/" ]
	then
		echo
		echo "The benchmark scripts are not executable by $USER"
		echo "Please change the permissons or log in as another user"
		echo "Exiting..."
		exit 2
	else
		break
	fi
done

cd "$DEFPATH/Benchmark"
NAME=$1
while [ "$NAME" == "" ]
do
	echo "You must specify a name for the benchmark"
	echo "Usage $0 <benchmark name>"
	unset NAME
	echo
	echo "Please enter the name for this benchmark"
	read NAME
done

BENCHRESDIR="$HOME/.ut2003/Benchmark/Results"

# Create benchmark name directory to store benchmark results
if [ ! -d "$BENCHRESDIR/$NAME" ]
then
	echo
	echo "Creating the directory to which the results will be stored"
	mkdir $BENCHRESDIR/$NAME
	if [ ! -f "$BENCHRESDIR/$NAME/$NAME-results.txt" ]
	then
		touch "$BENCHRESDIR/$NAME/$NAME-results.txt"
	fi
fi

header

echo "Executing Flyby benchmarks..."

flyprnt

for i in flyby*.sh
do
{
	./$i
	for j in $BENCHRESDIR/*log
	do
	{
		mv $j $BENCHRESDIR/$NAME
	}
	done
}
done

reswrite

unset i
unset j

echo "Executing Botmatch tests"

botprnt

for i in botmatch*.sh
do
{
	./$i -nosound
	for j in $BENCHRESDIR/*log
	do
	{
		mv $j $BENCHRESDIR/$NAME
	}
	done
}
done

reswrite

unset i
unset j

echo "Storing benchmark results..."

cd "$BENCHRESDIR/$NAME"

echo "Results stored in $BENCHRESDIR/$NAME/$NAME-results.txt"

echo
echo "Would you like to open the results?"
read ANS0

case $ANS0 in
	y|Y)
		echo "Which program would you like to use to open the files?"
		echo
		echo "1) gedit		2) kedit"
		echo
		echo "default: gedit"
		read ANS1
		case $ANS1 in
			1)
				gedit *txt
				;;
			2)
				kedit *txt
				;;
			*)
				gedit *txt
		esac
		;;
	n|N)
		echo "You selected not to open the files, exiting"
		exit 2
		;;
	*)
		echo "You did not select either y/n, exiting."
		echo "To view the files just open them in your favourite text editor"
		exit 3
esac
Just copy/paste the code, and save it as text file, then change the permisons on the file
[code]
chmod +x <filename>
[/code
And place it under your ~/bin directory to call it directly

EDIT: Results stored into ~/.ut2003/Benchmark/Results/<benchmarkname>/<benchmarkname>.txt

Last edited by Thetargos; 02-12-2004 at 04:34 PM.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
SuSE: Disk quota, tar extraction, Performance & Benchmarking colabus Linux - Newbie 1 11-14-2004 03:16 PM
SuSE: Disk quota, tar extraction, Performance & Benchmarking colabus SUSE / openSUSE 1 11-14-2004 12:18 AM
A little UT2k3? trojan[xterra] Linux - Newbie 3 08-29-2003 06:03 AM
update ut2k3 jpbarto Linux - Software 0 05-23-2003 08:08 PM
Ut2k3 NSKL Linux - Software 8 11-17-2002 03:17 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software > Linux - Games

All times are GMT -5. The time now is 10:07 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration