Add a port of GpuTest, OpenGL-based GPU stress test and popular benchmark.

This is the last version which natively supports GNU/Linux, the later are
unfortunately Windows-only.

WWW: http://www.Geeks3D.com/GpuTest/
This commit is contained in:
Alexey Dokuchaev 2020-09-18 04:41:44 +00:00
parent 316e9ac74c
commit 8d8e0de553
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=548874
6 changed files with 153 additions and 0 deletions

View File

@ -38,6 +38,7 @@
SUBDIR += iperf3
SUBDIR += libcelero
SUBDIR += libmicro
SUBDIR += linux-gputest
SUBDIR += linux-vdbench
SUBDIR += lmbench
SUBDIR += lzbench

View File

@ -0,0 +1,73 @@
# Created by: Alexey Dokuchaev <danfe@FreeBSD.org>
# $FreeBSD$
PORTNAME= gputest
PORTVERSION= 0.7.0
CATEGORIES= benchmarks linux
MASTER_SITES= http://vault.101011010.xyz/distfiles/ \
http://freebsd.nsu.ru/distfiles/ LOCAL/danfe
# http://www.ozone3d.net/gputest/dl/ (original
# upstream URL, but they ask not to hotlink)
DISTNAME= GpuTest_Linux_x64_${PORTVERSION}
PKGNAMEPREFIX= linux-
MAINTAINER= danfe@FreeBSD.org
COMMENT= GPU stress test and OpenGL benchmark
LICENSE= GEEKS3D
LICENSE_NAME= Geeks3D End-User License Agreement
LICENSE_FILE= ${WRKSRC}/EULA.txt
LICENSE_PERMS= dist-mirror pkg-mirror auto-accept
ONLY_FOR_ARCHS= amd64
USES= linux zip
USE_LINUX= dri libglvnd xorglibs
NO_BUILD= yes
OPTIONS_DEFINE= DOCS GUI
OPTIONS_DEFAULT= GUI
OPTIONS_SUB= yes
GUI_DESC= Install Python/Tkinter-based GUI launcher
GUI_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tkinter>0:x11-toolkits/py-tkinter@${PY_FLAVOR}
GUI_USES= python:run
post-patch:
@${REINPLACE_CMD} -e '1s,bash,sh,' ${WRKSRC}/start_*.sh
@${RM} ${WRKSRC}/data/.DS_Store
# Save log file in writable location instead of ${PREFIX}/lib/${PORTNAME}
@${REINPLACE_CMD} -e \
's,_geeks3d_gputest_log\.txt,/tmp/geeks3d_gputest.log,' \
${WRKSRC}/GpuTest
# We cannot just embed shebang line in the patch because 210:fix-shebang
# happens before 500:do-patch :(
post-patch-GUI-on:
@${REINPLACE_CMD} -e '1 { x; s,^,#!${PYTHON_CMD},; G; }' \
${WRKSRC}/gputest_gui.py
do-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
cd ${WRKSRC} && ${COPYTREE_SHARE} data \
${STAGEDIR}${PREFIX}/lib/${PORTNAME}
${INSTALL_LIB} ${WRKSRC}/*.so ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
${INSTALL_PROGRAM} ${WRKSRC}/GpuTest \
${STAGEDIR}${PREFIX}/lib/${PORTNAME}
${INSTALL_SCRIPT} ${WRKSRC}/start_*.sh \
${STAGEDIR}${PREFIX}/lib/${PORTNAME}
${INSTALL_DATA} ${WRKSRC}/_geeks3d_gputest_scores.csv \
${STAGEDIR}${PREFIX}/lib/${PORTNAME}
${PRINTF} '#!/bin/sh\n\ncd ${PREFIX}/lib/${PORTNAME} || exit\
1\n\nexec ./GpuTest "$$@"\n' > \
${STAGEDIR}${PREFIX}/bin/${PORTNAME}
${CHMOD} +x ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
do-install-GUI-on:
${INSTALL_SCRIPT} ${WRKSRC}/gputest_gui.py ${STAGEDIR}${PREFIX}/bin
do-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/README.txt ${STAGEDIR}${DOCSDIR}
.include <bsd.port.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1393924825
SHA256 (GpuTest_Linux_x64_0.7.0.zip) = a6cbddfb40dc203735d63bc9609b24abde8613fbb649d0ef7d0d4515842ba263
SIZE (GpuTest_Linux_x64_0.7.0.zip) = 2083164

View File

@ -0,0 +1,29 @@
--- gputest_gui.py.orig 2014-03-04 02:16:44 UTC
+++ gputest_gui.py
@@ -7,7 +7,7 @@
import os
#from subprocess import call
-import Tkinter as tk
+import tkinter as tk
root = tk.Tk()
@@ -90,7 +90,7 @@ def prepare_command_line():
index = cs[0]
seltext = listbox1.get(index)
else:
- print "\nPlease select a test (FurMark is the default test)."
+ print("\nPlease select a test (FurMark is the default test).")
index = 0
seltext = listbox1.get(index)
@@ -98,7 +98,7 @@ def prepare_command_line():
for demo in allDemos:
if demo.demo_name == seltext:
demo_code = demo.demo_code
- g_command_line = "./GpuTest /test='%s' /width=%d /height=%d /gpumon_terminal" % (demo_code, g_width, g_height)
+ g_command_line = "gputest /test='%s' /width=%d /height=%d /gpumon_terminal" % (demo_code, g_width, g_height)
if (fullscreen.get() == 1):
g_command_line += " /fullscreen"

View File

@ -0,0 +1,9 @@
GpuTest is a cross-platform GPU stress test and benchmarking utility, based
on OpenGL. It comes with a number of different tests, including the famous
stress test based on FurMark (OpenGL 2.1 or 3.2), a tessellation test based
on TessMark (OpenGL 4.0), and geometry instancing test (OpenGL 3.3).
An optional GUI (graphical user interface) program made with Python/Tkinter
is available since GpuTest version 0.6.0.
WWW: http://www.Geeks3D.com/GpuTest/

View File

@ -0,0 +1,38 @@
bin/gputest
%%GUI%%bin/gputest_gui.py
lib/gputest/GpuTest
lib/gputest/_geeks3d_gputest_scores.csv
lib/gputest/data/_bg.jpg
lib/gputest/data/_fur.jpg
lib/gputest/data/apple_logo.jpg
lib/gputest/data/bg.jpg
lib/gputest/data/bg02.jpg
lib/gputest/data/bg02_.jpg
lib/gputest/data/bg08.jpg
lib/gputest/data/bg09.jpg
lib/gputest/data/fur.jpg
lib/gputest/data/linux_logo.jpg
lib/gputest/data/piano_texture.jpg
lib/gputest/data/piano_texture_01.jpg
lib/gputest/data/tess_bump.jpg
lib/gputest/data/tess_diffuse.jpg
lib/gputest/data/tess_normal.jpg
lib/gputest/data/windows_logo.jpg
lib/gputest/libgxl3d_r_linux.so
lib/gputest/plugin_gxl3d_gpu_monitor_gml_x64.so
lib/gputest/plugin_gxl3d_opencl_x64.so
lib/gputest/start_furmark_benchmark_fullscreen_1920x1080.sh
lib/gputest/start_furmark_windowed_1024x640.sh
lib/gputest/start_gimark_benchmark_fullscreen_1920x1080.sh
lib/gputest/start_gimark_windowed_1024x640.sh
lib/gputest/start_pixmark_piano_benchmark_fullscreen_1920x1080.sh
lib/gputest/start_pixmark_piano_windowed_1024x640.sh
lib/gputest/start_pixmark_volplosion_benchmark_fullscreen_1920x1080.sh
lib/gputest/start_pixmark_volplosion_windowed_1024x640.sh
lib/gputest/start_plot3d_benchmark_fullscreen_1920x1080.sh
lib/gputest/start_plot3d_windowed_1024x640.sh
lib/gputest/start_tessmark_benchmark_fullscreen_1920x1080.sh
lib/gputest/start_tessmark_windowed_1024x640.sh
lib/gputest/start_triangle_benchmark_fullscreen_1920x1080.sh
lib/gputest/start_triangle_windowed_1024x640.sh
%%PORTDOCS%%%%DOCSDIR%%/README.txt