diff --git a/benchmarks/mangohud/Makefile b/benchmarks/mangohud/Makefile index d2e96215ead9dbd0c434e4ad9a39dc6770f2cf38..2be3c8377b8f7ef0e832dbc76cca2f26560fca58 100644 --- a/benchmarks/mangohud/Makefile +++ b/benchmarks/mangohud/Makefile @@ -1,12 +1,11 @@ # Created by: Alexey Dokuchaev <danfe@FreeBSD.org> PORTNAME= mangohud -PORTVERSION= 0.5.1 +PORTVERSION= 0.6.5 DISTVERSIONPREFIX= v CATEGORIES= benchmarks graphics - -PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ -PATCHFILES= cec98369ae34d910476b78f98adece96016ab603.diff:-p1 +MASTER_SITES= https://wrapdb.mesonbuild.com/v1/projects/imgui/1.81/1/get_zip?dummy=/:igw +DISTFILES= imgui-1.81-1-wrap.zip:igw MAINTAINER= danfe@FreeBSD.org COMMENT= Vulkan/OpenGL overlay for CPU/GPU monitoring @@ -21,11 +20,15 @@ LIB_DEPENDS= libinotify.so:devel/libinotify USES= compiler:c++14-lang meson pkgconfig python:build xorg USE_GITHUB= yes -GH_ACCOUNT= flightlessmango -GH_PROJECT= MangoHud +GH_ACCOUNT= flightlessmango ocornut:ig +GH_PROJECT= MangoHud imgui:ig +GH_TAGNAME= v1.81:ig +GH_SUBDIR= subprojects/imgui-1.81:ig USE_XORG= x11 MESON_ARGS= -Duse_system_vulkan=enabled -Dwith_xnvctrl=disabled +CPPFLAGS+= -DPROCDIR=\\\"${LINUXBASE}/proc\\\" + PLIST_FILES= bin/mangohud lib/mangohud/libMangoHud.so \ lib/mangohud/libMangoHud_dlsym.so man/man1/mangohud.1.gz \ share/vulkan/implicit_layer.d/MangoHud.json @@ -38,15 +41,13 @@ DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus DBUS_MESON_OFF= -Dwith_dbus=disabled post-patch: - @${REINPLACE_CMD} -e '/version : /s,0\.4\.0,${PORTVERSION}, ; \ + @${REINPLACE_CMD} -e 's,cygwin,${OPSYS:tl}, ; \ /^prog_python = /s,3,${PYTHON_VER},' ${WRKSRC}/meson.build - @${REINPLACE_CMD} -e '1s,usr/bin/env ba,bin/,' \ - ${WRKSRC}/bin/mangohud.in @${REINPLACE_CMD} -e 's,/usr/share/doc,${PREFIX}/share/examples,' \ ${WRKSRC}/data/mangohud.1 - @${REINPLACE_CMD} -e '/#include <sys\/sysinfo\.h>/d' \ - ${WRKSRC}/src/overlay_params.cpp @${REINPLACE_CMD} -e 's,libdl\.so,ld-elf.so,' \ ${WRKSRC}/src/real_dlsym.cpp + @${REINPLACE_CMD} -e 's,def __gnu_linux__,ndef _WIN32,' \ + ${WRKSRC}/src/logging.cpp .include <bsd.port.mk> diff --git a/benchmarks/mangohud/distinfo b/benchmarks/mangohud/distinfo index efa987906ddeab1c38ceedc99424578b5c738e19..e5afe5bc64825593a9a2a6275c98ed73a7457187 100644 --- a/benchmarks/mangohud/distinfo +++ b/benchmarks/mangohud/distinfo @@ -1,5 +1,7 @@ -TIMESTAMP = 1597596860 -SHA256 (flightlessmango-MangoHud-v0.5.1_GH0.tar.gz) = 3e91d4fc7369d46763894c13f3315133871dd02705072981770c3cf58e8081c6 -SIZE (flightlessmango-MangoHud-v0.5.1_GH0.tar.gz) = 15042595 -SHA256 (cec98369ae34d910476b78f98adece96016ab603.diff) = 5af8817cc62bbf441c7a7b735f391bb648e7d90668e7a3746c1b91199698b1d6 -SIZE (cec98369ae34d910476b78f98adece96016ab603.diff) = 551 +TIMESTAMP = 1625725439 +SHA256 (imgui-1.81-1-wrap.zip) = 6d00b442690b6a5c5d8f898311daafbce16d370cf64f53294c3b8c5c661e435f +SIZE (imgui-1.81-1-wrap.zip) = 1850 +SHA256 (flightlessmango-MangoHud-v0.6.5_GH0.tar.gz) = 5e5490407a64275e04dae7b3068cbfcbb522f02c632c872a212b95025a316f72 +SIZE (flightlessmango-MangoHud-v0.6.5_GH0.tar.gz) = 14828281 +SHA256 (ocornut-imgui-v1.81_GH0.tar.gz) = f7c619e03a06c0f25e8f47262dbc32d61fd033d2c91796812bf0f8c94fca78fb +SIZE (ocornut-imgui-v1.81_GH0.tar.gz) = 1413443 diff --git a/benchmarks/mangohud/files/patch-meson.build b/benchmarks/mangohud/files/patch-meson.build index eb9ffcf29134369760066daf575948133264e932..5068faad26438c937174ecba73c89425a5306b3f 100644 --- a/benchmarks/mangohud/files/patch-meson.build +++ b/benchmarks/mangohud/files/patch-meson.build @@ -15,6 +15,6 @@ -if dep_vulkan.found() +if true - datadir = get_option('datadir') - if not datadir.startswith('/') - datadir = get_option('prefix') / datadir + datadir = get_option('vulkan_datadir') + if datadir == '' + datadir = get_option('datadir') diff --git a/benchmarks/mangohud/files/patch-src_file__utils.cpp b/benchmarks/mangohud/files/patch-src_file__utils.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4ae32c1fc2b297830c8cdf9a52679cfe5feb4223 --- /dev/null +++ b/benchmarks/mangohud/files/patch-src_file__utils.cpp @@ -0,0 +1,28 @@ +--- src/file_utils.cpp.orig 2021-07-08 06:23:59 UTC ++++ src/file_utils.cpp +@@ -109,7 +109,7 @@ std::string read_symlink(const char * link) + + std::string get_exe_path() + { +- return read_symlink("/proc/self/exe"); ++ return read_symlink(PROCDIR "/self/exe"); + } + + std::string get_wine_exe_name(bool keep_ext) +@@ -119,14 +119,14 @@ std::string get_wine_exe_name(bool keep_ext) + return std::string(); + } + +- std::string line = read_line("/proc/self/comm"); // max 16 characters though ++ std::string line = read_line(PROCDIR "/self/comm"); // max 16 characters though + if (ends_with(line, ".exe", true)) + { + auto dot = keep_ext ? std::string::npos : line.find_last_of('.'); + return line.substr(0, dot); + } + +- std::ifstream cmdline("/proc/self/cmdline"); ++ std::ifstream cmdline(PROCDIR "/self/cmdline"); + // Iterate over arguments (separated by NUL byte). + while (std::getline(cmdline, line, '\0')) { + auto n = std::string::npos; diff --git a/benchmarks/mangohud/files/patch-src_meson.build b/benchmarks/mangohud/files/patch-src_meson.build index 2a87d1c1eef4341818fec418675d189a1f4f46fe..9f796c4462355ff754fefcd51079db62f23ca02e 100644 --- a/benchmarks/mangohud/files/patch-src_meson.build +++ b/benchmarks/mangohud/files/patch-src_meson.build @@ -13,11 +13,11 @@ dep_dl, dep_rt, dep_pthread, -- dep_vulkan], -+ dep_inotify], +- dep_vulkan, ++ dep_inotify, + windows_deps], include_directories : [inc_common], link_args : link_args, - install_dir : libdir_mangohud, @@ -187,7 +187,7 @@ configure_file(input : '../bin/mangohud.in', if get_option('include_doc') install_data( diff --git a/benchmarks/mangohud/files/patch-src_vulkan.cpp b/benchmarks/mangohud/files/patch-src_vulkan.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7c8876346f0163ad3c6122257b9e75f605b8eb42 --- /dev/null +++ b/benchmarks/mangohud/files/patch-src_vulkan.cpp @@ -0,0 +1,77 @@ +--- src/vulkan.cpp.orig 2021-07-08 06:23:59 UTC ++++ src/vulkan.cpp +@@ -33,7 +33,7 @@ + #include <vector> + #include <list> + #include <array> +-#ifdef __gnu_linux__ ++#ifndef _WIN32 + #include <libgen.h> + #include <unistd.h> + #endif +@@ -464,10 +464,10 @@ struct overlay_draw *get_overlay_draw(struct swapchain + + void init_cpu_stats(overlay_params& params) + { +-#ifdef __gnu_linux__ + auto& enabled = params.enabled; + enabled[OVERLAY_PARAM_ENABLED_cpu_stats] = cpuStats.Init() + && enabled[OVERLAY_PARAM_ENABLED_cpu_stats]; ++#ifdef __gnu_linux__ + enabled[OVERLAY_PARAM_ENABLED_cpu_temp] = cpuStats.GetCpuFile() + && enabled[OVERLAY_PARAM_ENABLED_cpu_temp]; + enabled[OVERLAY_PARAM_ENABLED_cpu_power] = cpuStats.InitCpuPowerData() +@@ -600,21 +600,24 @@ void init_gpu_stats(uint32_t& vendorID, overlay_params + } + + void init_system_info(){ +- #ifdef __gnu_linux__ + const char* ld_preload = getenv("LD_PRELOAD"); + if (ld_preload) + unsetenv("LD_PRELOAD"); + +- ram = exec("cat /proc/meminfo | grep 'MemTotal' | awk '{print $2}'"); ++ ram = exec("grep MemTotal " PROCDIR "/meminfo | awk '{print $2}'"); + trim(ram); +- cpu = exec("cat /proc/cpuinfo | grep 'model name' | tail -n1 | sed 's/^.*: //' | sed 's/([^)]*)/()/g' | tr -d '(/)'"); ++ cpu = exec("grep 'model name' " PROCDIR "/cpuinfo | tail -n1 | sed 's/^.*: //' | sed 's/([^)]*)/()/g' | tr -d '(/)'"); + trim(cpu); + kernel = exec("uname -r"); + trim(kernel); + os = exec("cat /etc/*-release | grep 'PRETTY_NAME' | cut -d '=' -f 2-"); + os.erase(remove(os.begin(), os.end(), '\"' ), os.end()); + trim(os); +- cpusched = read_line("/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"); ++ gpu = exec("pciconf -lv | grep -A2 ^vgapci0 | tail -1 | cut -d\\' -f2"); ++ trim(gpu); ++ driver = exec("glxinfo -B | grep 'OpenGL version' | sed 's/^.*: //'"); ++ trim(driver); ++ cpusched = exec("sysctl -b kern.sched.name"); + + const char* mangohud_recursion = getenv("MANGOHUD_RECURSION"); + if (!mangohud_recursion) { +@@ -669,6 +672,8 @@ void init_system_info(){ + else { + wineVersion = ""; + } ++ ++#ifdef __gnu_linux__ + // check for gamemode and vkbasalt + stringstream ss; + string line; +@@ -686,6 +691,7 @@ void init_system_info(){ + if (HUDElements.gamemode_bol && HUDElements.vkbasalt_bol) + break; + } ++#endif + + if (ld_preload) + setenv("LD_PRELOAD", ld_preload, 1); +@@ -697,7 +703,6 @@ void init_system_info(){ + << "Gpu:" << gpu << "\n" + << "Driver:" << driver << "\n" + << "CPU Scheduler:" << cpusched << std::endl; +-#endif + #endif + } +