1{ lib
2, stdenv
3, makeWrapper
4, fetchurl
5, autoPatchelfHook
6, dbus
7, fontconfig
8, freetype
9, glib
10, libGLU
11, libglvnd
12, libX11
13, libxcb
14, libXi
15, ncurses
16, qtbase
17, qtdeclarative
18, zlib
19}:
20
21let
22 buildNum = "2023-05-22-1083";
23in
24stdenv.mkDerivation {
25 pname = "rgp";
26 version = "1.15.1";
27
28 src = fetchurl {
29 url = "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-${buildNum}.tgz";
30 hash = "sha256-WSSiNiiIVw1wwt9vxgyirBDe+SPzH87LU1GlSdUhZB8=";
31 };
32
33 nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
34
35 buildInputs = [
36 dbus
37 fontconfig
38 freetype
39 glib
40 libGLU
41 libglvnd
42 libX11
43 libxcb
44 libXi
45 ncurses
46 qtbase
47 qtdeclarative
48 zlib
49 ];
50
51 dontWrapQtApps = true;
52
53 installPhase = ''
54 mkdir -p $out/opt/rgp $out/bin
55 cp -r . $out/opt/rgp/
56
57 chmod +x $out/opt/rgp/scripts/*
58 patchShebangs $out/opt/rgp/scripts
59
60 for prog in RadeonDeveloperPanel RadeonDeveloperService RadeonDeveloperServiceCLI RadeonGPUAnalyzer RadeonGPUProfiler RadeonMemoryVisualizer RadeonRaytracingAnalyzer rga rtda; do
61 # makeWrapper is needed so that executables are started from the opt
62 # directory, where qt.conf and other tools are
63 makeWrapper \
64 $out/opt/rgp/$prog \
65 $out/bin/$prog
66 done
67 '';
68
69 meta = with lib; {
70 description = "A tool from AMD that allows for deep inspection of GPU workloads";
71 homepage = "https://gpuopen.com/rgp/";
72 sourceProvenance = with sourceTypes; [ binaryNativeCode ];
73 license = licenses.unfree;
74 platforms = [ "x86_64-linux" ];
75 maintainers = with maintainers; [ Flakebi ];
76 };
77}