From 4bfacbc8139149d61ade445146bf60d6a15d58a5 Mon Sep 17 00:00:00 2001
From: Rouven Czerwinski <rouven@czerwinskis.de>
Date: Fri, 19 Feb 2021 20:44:43 +0100
Subject: [PATCH] gpuvis: init at 20210220

Signed-off-by: Rouven Czerwinski <rouven@czerwinskis.de>
---
 .../development/tools/misc/gpuvis/default.nix | 42 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 +
 2 files changed, 44 insertions(+)
 create mode 100644 pkgs/development/tools/misc/gpuvis/default.nix

diff --git a/pkgs/development/tools/misc/gpuvis/default.nix b/pkgs/development/tools/misc/gpuvis/default.nix
new file mode 100644
index 000000000000..5e0f54b2feef
--- /dev/null
+++ b/pkgs/development/tools/misc/gpuvis/default.nix
@@ -0,0 +1,42 @@
+{ fetchFromGitHub
+, freetype
+, gtk3
+, lib
+, meson
+, ninja
+, pkg-config
+, SDL2
+, stdenv
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gpuvis";
+  version = "20210220";
+
+  src = fetchFromGitHub {
+    owner = "mikesart";
+    repo = pname;
+    rev = "216f7d810e182a89fd96ab9fad2a5c2b1e425ea9";
+    sha256 = "15pj7gy0irlp849a85z68n184jksjri0xhihgh56rs15kq333mwz";
+  };
+
+  # patch dlopen path for gtk3
+  # python2 is wrongly added in the meson file, upstream PR: https://github.com/mikesart/gpuvis/pull/62
+  postPatch = ''
+    substituteInPlace src/hook_gtk3.h \
+      --replace "libgtk-3.so" "${lib.getLib gtk3}/lib/libgtk-3.so"
+  '';
+
+  nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook ];
+
+  buildInputs = [ SDL2 gtk3 freetype ];
+
+  meta = with lib; {
+    description = "GPU Trace Visualizer";
+    homepage = "https://github.com/mikesart/gpuvis";
+    license = licenses.mit;
+    maintainers = with maintainers; [ emantor ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 9b40c8075c99..67ef21054b24 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12337,6 +12337,8 @@ in
 
   gputils = callPackage ../development/tools/misc/gputils { };
 
+  gpuvis = callPackage ../development/tools/misc/gpuvis { };
+
   gradleGen = callPackage ../development/tools/build-managers/gradle {
     java = jdk8; # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
   };