summary refs log tree commit diff
path: root/pkgs/development/tools/rgp/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/rgp/default.nix')
-rw-r--r--pkgs/development/tools/rgp/default.nix71
1 files changed, 71 insertions, 0 deletions
diff --git a/pkgs/development/tools/rgp/default.nix b/pkgs/development/tools/rgp/default.nix
new file mode 100644
index 00000000000..dea0512b7d6
--- /dev/null
+++ b/pkgs/development/tools/rgp/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, stdenv
+, makeWrapper
+, fetchurl
+, autoPatchelfHook
+, dbus
+, fontconfig
+, freetype
+, glib
+, libglvnd
+, libX11
+, libxcb
+, libXi
+, ncurses5
+, qtbase
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rgp";
+  version = "1.7.0.29";
+
+  src = fetchurl {
+    url = "https://github.com/GPUOpen-Tools/radeon_gpu_profiler/releases/download/v${lib.versions.majorMinor version}/RadeonGPUProfiler_${version}.tgz";
+    sha256 = "d7d4aa92231796a509dfcf92e9618cac98ae6572c12efd0871eb43afa4e8240a";
+  };
+
+  nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
+
+  buildInputs = [
+    dbus
+    fontconfig
+    freetype
+    glib
+    libglvnd
+    libX11
+    libxcb
+    libXi
+    ncurses5
+    qtbase
+    zlib
+  ];
+
+  runtimeDependencies = [
+    "${placeholder "out"}/opt/rgp"
+    "${placeholder "out"}/opt/rgp/qt"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/opt/rgp $out/bin
+    cp -r . $out/opt/rgp/
+    # Breaks autoPatchelfHook and has no known usage
+    rm $out/opt/rgp/AMDToolsDownloader
+
+    for prog in RadeonGPUProfiler RadeonDeveloperPanel RadeonDeveloperService RadeonDeveloperServiceCLI; do
+      # makeWrapper is needed so that executables are started from the opt
+      # directory, where qt.conf is
+      makeWrapper \
+        $out/opt/rgp/$prog \
+        $out/bin/$prog
+    done
+  '';
+
+  meta = with lib; {
+    description = "A tool from AMD that allows for deep inspection of GPU workloads";
+    homepage = "https://gpuopen.com/gaming-product/radeon-gpu-profiler-rgp/";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ Flakebi ];
+  };
+}