[PATCH] gnu: Add tracy.

  • Done
  • quality assurance status badge
Details
3 participants
  • dan
  • Ludovic Courtès
  • Maxim Cournoyer
Owner
unassigned
Submitted by
dan
Severity
normal
D
(address . guix-patches@gnu.org)
20230806054011.16970-1-i@dan.games
---
gnu/packages/profiling.scm | 48 +++++++++++++++++++++++++++++++++++++-
1 file changed, 47 insertions(+), 1 deletion(-)

Toggle diff (91 lines)
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 8a1c609669..799b333162 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2017 Dave Love <fx@gnu.org>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2023 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,6 +22,7 @@
(define-module (gnu packages profiling)
#:use-module (guix packages)
#:use-module (guix gexp)
+ #:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes
#:use-module (guix download)
#:use-module (guix utils)
@@ -31,17 +33,20 @@ (define-module (gnu packages profiling)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages engineering)
#:use-module (gnu packages fabric-management)
#:use-module (gnu packages flex)
+ #:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
+ #:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
- #:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages qt))
@@ -389,3 +394,44 @@ (define (make-scorep mpi)
(license license:cpl1.0)))
(define-public scorep-openmpi (make-scorep openmpi))
+
+(define-public tracy
+ (package
+ (name "tracy")
+ (version "0.9.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wolfpld/tracy.git")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
+ (file-name (git-file-name "tracy" version))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ;no test for the profiler
+ #:make-flags #~(list "LEGACY=1"
+ (string-append "CC="
+ #$(cc-for-target)))
+ #:phases #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (chdir "profiler/build/unix")))
+ (replace 'install
+ (lambda _
+ (let ((out (string-append #$output "/bin/tracy"))
+ (bin (string-append #$output "/bin")))
+ (mkdir-p bin)
+ (copy-file "Tracy-release" out)
+ (wrap-program out
+ `("LD_LIBRARY_PATH" ":" =
+ (,(string-append #$mesa "/lib"))))))))))
+ (inputs (list capstone dbus freetype glfw))
+ (native-inputs (list pkg-config))
+ (home-page "https://github.com/wolfpld/tracy")
+ (synopsis "Frame profiler")
+ (description
+ "A real time, nanosecond resolution, remote telemetry, hybrid frame and
+sampling profiler for games and other applications.")
+ (license license:bsd-3)))

base-commit: c4b9f726e3a1889b92a4b14a2af1c25f10798469
--
2.41.0
M
M
Maxim Cournoyer wrote on 5 Sep 2023 15:46
(name . dan)(address . i@dan.games)(address . 65106@debbugs.gnu.org)
87zg20ka0c.fsf@gmail.com
Hello!

dan <i@dan.games> writes:

Toggle quote (69 lines)
> ---
> gnu/packages/profiling.scm | 48 +++++++++++++++++++++++++++++++++++++-
> 1 file changed, 47 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
> index 8a1c609669..799b333162 100644
> --- a/gnu/packages/profiling.scm
> +++ b/gnu/packages/profiling.scm
> @@ -2,6 +2,7 @@
> ;;; Copyright © 2017 Dave Love <fx@gnu.org>
> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
> ;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
> +;;; Copyright © 2023 dan <i@dan.games>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -21,6 +22,7 @@
> (define-module (gnu packages profiling)
> #:use-module (guix packages)
> #:use-module (guix gexp)
> + #:use-module (guix git-download)
> #:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes
> #:use-module (guix download)
> #:use-module (guix utils)
> @@ -31,17 +33,20 @@ (define-module (gnu packages profiling)
> #:use-module (gnu packages bison)
> #:use-module (gnu packages compression)
> #:use-module (gnu packages documentation)
> + #:use-module (gnu packages engineering)
> #:use-module (gnu packages fabric-management)
> #:use-module (gnu packages flex)
> + #:use-module (gnu packages fontutils)
> #:use-module (gnu packages gawk)
> #:use-module (gnu packages gcc)
> + #:use-module (gnu packages gl)
> #:use-module (gnu packages glib)
> #:use-module (gnu packages libunwind)
> #:use-module (gnu packages linux)
> #:use-module (gnu packages mpi)
> #:use-module (gnu packages ncurses)
> #:use-module (gnu packages perl)
> - #:use-module (gnu packages perl)
> + #:use-module (gnu packages pkg-config)
> #:use-module (gnu packages python)
> #:use-module (gnu packages qt))
>
> @@ -389,3 +394,44 @@ (define (make-scorep mpi)
> (license license:cpl1.0)))
>
> (define-public scorep-openmpi (make-scorep openmpi))
> +
> +(define-public tracy
> + (package
> + (name "tracy")
> + (version "0.9.1")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/wolfpld/tracy.git")
> + (commit (string-append "v" version))))
> + (sha256
> + (base32
> + "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
> + (file-name (git-file-name "tracy" version))))
> + (build-system gnu-build-system)
> + (arguments
> + (list #:tests? #f ;no test for the profiler
> + #:make-flags #~(list "LEGACY=1"

Why is LEGACY needed? A comment should say so.

Toggle quote (13 lines)
> + (string-append "CC="
> + #$(cc-for-target)))
> + #:phases #~(modify-phases %standard-phases
> + (replace 'configure
> + (lambda _
> + (chdir "profiler/build/unix")))
> + (replace 'install
> + (lambda _
> + (let ((out (string-append #$output "/bin/tracy"))
> + (bin (string-append #$output "/bin")))
> + (mkdir-p bin)
> + (copy-file "Tracy-release" out)

You can simplify this by using the 'install-file' procedure, which is in
scope here (it comes from (guix build utils)). 'Tracy-release' is a
weird name for a binary; is this how it's packaged on other system? I'd
have expected 'tracy' or similar.

Toggle quote (4 lines)
> + (wrap-program out
> + `("LD_LIBRARY_PATH" ":" =
> + (,(string-append #$mesa "/lib")))

Since this is also unusual in Guix (usually RUNPATH is baked in the Elf
by the ld-wrapper script and it just works), it deserves an explanatory
comment too.

--
Thanks,
Maxim
L
L
Ludovic Courtès wrote on 14 Sep 2023 23:29
control message for bug #65106
(address . control@debbugs.gnu.org)
87il8c4f6j.fsf@gnu.org
tags 65106 + moreinfo
quit
D
[PATCH v2 1/2] gnu: Add tracy-wayland.
(address . 65106@debbugs.gnu.org)(address . maxim.cournoyer@gmail.com)
20230924171400.7496-2-i@dan.games
* gnu/packages/profiling.scm (tracy-wayland): New variable.
---
gnu/packages/profiling.scm | 53 ++++++++++++++++++++++++++++++++++++--
1 file changed, 51 insertions(+), 2 deletions(-)

Toggle diff (95 lines)
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 8a1c609669..af79488c30 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2017 Dave Love <fx@gnu.org>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2023 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,6 +22,7 @@
(define-module (gnu packages profiling)
#:use-module (guix packages)
#:use-module (guix gexp)
+ #:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes
#:use-module (guix download)
#:use-module (guix utils)
@@ -31,19 +33,24 @@ (define-module (gnu packages profiling)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages engineering)
#:use-module (gnu packages fabric-management)
#:use-module (gnu packages flex)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
+ #:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
- #:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
- #:use-module (gnu packages qt))
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages xdisorg))
;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
;; output(?); build libmsr and add that component.
@@ -389,3 +396,45 @@ (define (make-scorep mpi)
(license license:cpl1.0)))
(define-public scorep-openmpi (make-scorep openmpi))
+
+(define-public tracy-wayland
+ (package
+ (name "tracy-wayland")
+ (version "0.9.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wolfpld/tracy.git")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
+ (file-name (git-file-name "tracy" version))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ;no test for the profiler
+ #:make-flags #~(list (string-append "CC="
+ #$(cc-for-target)))
+ #:phases #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (chdir "profiler/build/unix")))
+ (replace 'install
+ (lambda _
+ (let ((bin (string-append #$output "/bin"))
+ (tracy (string-append #$output "/bin/tracy")))
+ (mkdir-p bin)
+ (copy-file "Tracy-release" tracy)))))))
+ (inputs (list capstone
+ dbus
+ freetype
+ libxkbcommon
+ mesa
+ wayland))
+ (native-inputs (list pkg-config))
+ (home-page "https://github.com/wolfpld/tracy")
+ (synopsis "Frame profiler")
+ (description
+ "A real time, nanosecond resolution, remote telemetry, hybrid frame and
+sampling profiler for games and other applications.")
+ (license license:bsd-3)))
--
2.41.0
D
[PATCH v2 0/2] gnu: Add tracy and tracy-wayland.
(address . 65106@debbugs.gnu.org)(address . maxim.cournoyer@gmail.com)
20230924171400.7496-1-i@dan.games
This patch series add two versions of tracy, one for x11 and the other for
wayland. Note that the output binary name is "Tracy-release" by default, and
changing the name in the makefile breaks the build process. Seems like other
things rely on the name.

dan (2):
gnu: Add tracy-wayland.
gnu: Add tracy.

gnu/packages/profiling.scm | 81 +++++++++++++++++++++++++++++++++++++-
1 file changed, 79 insertions(+), 2 deletions(-)


base-commit: e134686cead6db62ea8b941b2ed7c0bd660804da
--
2.41.0
D
[PATCH v2 2/2] gnu: Add tracy.
(address . 65106@debbugs.gnu.org)(address . maxim.cournoyer@gmail.com)
20230924171400.7496-3-i@dan.games
* gnu/packages/profiling.scm (tracy): New variable.
---
gnu/packages/profiling.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index af79488c30..5f5b4b07d0 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -438,3 +438,31 @@ (define-public tracy-wayland
"A real time, nanosecond resolution, remote telemetry, hybrid frame and
sampling profiler for games and other applications.")
(license license:bsd-3)))
+
+(define-public tracy
+ (package
+ (inherit tracy-wayland)
+ (name "tracy")
+ (inputs (modify-inputs (package-inputs tracy-wayland)
+ (delete "libxkbcommon" "wayland")
+ (prepend glfw)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments tracy-wayland)
+ ((#:make-flags flags
+ #~'())
+ #~(append #$flags
+ ;; The LEGACY flag indicate we want to build tracy with glfw
+ (list "LEGACY=1")))
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ ;; Tracy depends on glfw to load libGL.so, but glfw doesn't have
+ ;; mesa in its rpath. Thus, we need to manually modify tracy's
+ ;; LD_LIBRARY_PATH.
+ (add-after 'install 'wrap-program
+ (lambda _
+ (let ((out (string-append #$output "/bin/tracy"))
+ (mesa (string-append #$(this-package-input "mesa")
+ "/lib")))
+ (wrap-program out
+ `("LD_LIBRARY_PATH" ":" =
+ (,mesa))))))))))))
--
2.41.0
M
M
Maxim Cournoyer wrote on 26 Sep 2023 17:22
Re: [PATCH v2 1/2] gnu: Add tracy-wayland.
(name . dan)(address . i@dan.games)(address . 65106-done@debbugs.gnu.org)
87o7hp0xj4.fsf@gmail.com
Hello!

dan <i@dan.games> writes:

Toggle quote (99 lines)
> * gnu/packages/profiling.scm (tracy-wayland): New variable.
> ---
> gnu/packages/profiling.scm | 53 ++++++++++++++++++++++++++++++++++++--
> 1 file changed, 51 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
> index 8a1c609669..af79488c30 100644
> --- a/gnu/packages/profiling.scm
> +++ b/gnu/packages/profiling.scm
> @@ -2,6 +2,7 @@
> ;;; Copyright © 2017 Dave Love <fx@gnu.org>
> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
> ;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
> +;;; Copyright © 2023 dan <i@dan.games>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -21,6 +22,7 @@
> (define-module (gnu packages profiling)
> #:use-module (guix packages)
> #:use-module (guix gexp)
> + #:use-module (guix git-download)
> #:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes
> #:use-module (guix download)
> #:use-module (guix utils)
> @@ -31,19 +33,24 @@ (define-module (gnu packages profiling)
> #:use-module (gnu packages bison)
> #:use-module (gnu packages compression)
> #:use-module (gnu packages documentation)
> + #:use-module (gnu packages engineering)
> #:use-module (gnu packages fabric-management)
> #:use-module (gnu packages flex)
> + #:use-module (gnu packages fontutils)
> + #:use-module (gnu packages freedesktop)
> #:use-module (gnu packages gawk)
> #:use-module (gnu packages gcc)
> + #:use-module (gnu packages gl)
> #:use-module (gnu packages glib)
> #:use-module (gnu packages libunwind)
> #:use-module (gnu packages linux)
> #:use-module (gnu packages mpi)
> #:use-module (gnu packages ncurses)
> #:use-module (gnu packages perl)
> - #:use-module (gnu packages perl)
> + #:use-module (gnu packages pkg-config)
> #:use-module (gnu packages python)
> - #:use-module (gnu packages qt))
> + #:use-module (gnu packages qt)
> + #:use-module (gnu packages xdisorg))
>
> ;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
> ;; output(?); build libmsr and add that component.
> @@ -389,3 +396,45 @@ (define (make-scorep mpi)
> (license license:cpl1.0)))
>
> (define-public scorep-openmpi (make-scorep openmpi))
> +
> +(define-public tracy-wayland
> + (package
> + (name "tracy-wayland")
> + (version "0.9.1")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/wolfpld/tracy.git")
> + (commit (string-append "v" version))))
> + (sha256
> + (base32
> + "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
> + (file-name (git-file-name "tracy" version))))
> + (build-system gnu-build-system)
> + (arguments
> + (list #:tests? #f ;no test for the profiler
> + #:make-flags #~(list (string-append "CC="
> + #$(cc-for-target)))
> + #:phases #~(modify-phases %standard-phases
> + (replace 'configure
> + (lambda _
> + (chdir "profiler/build/unix")))
> + (replace 'install
> + (lambda _
> + (let ((bin (string-append #$output "/bin"))
> + (tracy (string-append #$output "/bin/tracy")))
> + (mkdir-p bin)
> + (copy-file "Tracy-release" tracy)))))))
> + (inputs (list capstone
> + dbus
> + freetype
> + libxkbcommon
> + mesa
> + wayland))
> + (native-inputs (list pkg-config))
> + (home-page "https://github.com/wolfpld/tracy")
> + (synopsis "Frame profiler")
> + (description
> + "A real time, nanosecond resolution, remote telemetry, hybrid frame and
> +sampling profiler for games and other applications.")
> + (license license:bsd-3)))

Looking at this package more closely, I found it was bundling imgui and
zstd, so I tried unbundling both, and was successful for zstd:

Toggle snippet (87 lines)
modified gnu/packages/profiling.scm
@@ -402,35 +402,61 @@ (define-public tracy-wayland
(package
(name "tracy-wayland")
(version "0.9.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/wolfpld/tracy")
- (commit (string-append "v" version))))
- (sha256
- (base32
- "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
- (file-name (git-file-name "tracy" version))))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wolfpld/tracy")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b"))
+ (file-name (git-file-name "tracy" version))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; XXX: Sadly, the ImGui loaders appear to have been customized by
+ ;; the project and the build fails when using the 'imgui' Guix
+ ;; package due to a missing GL_TEXTURE_WRAP_S definition, so keep
+ ;; the bundled copy.
+
+ ;; Unbundle Zstd.
+ (delete-file-recursively "zstd")
+ ;; Adjust the include directives.
+ (substitute* (find-files "server" "\\.(c|h)pp$")
+ (("#include \".*zstd/(zstd|zdict).h\"" _ header)
+ (format #f "#include \"~a.h\"" header)))
+ ;; De-register source files from Visual Code project.
+ (substitute* "profiler/build/win32/Tracy.vcxproj"
+ ((".*Include=\"..\\\\..\\\\..\\\\zstd\\\\.*") ""))))))
+ ;; Note: There is also CMake and Meson support, but only to build the
+ ;; tracy library, not the profiler command.
(build-system gnu-build-system)
(arguments
- (list #:tests? #f ;no test for the profiler
- #:make-flags #~(list (string-append "CC=" #$(cc-for-target)))
- #:phases #~(modify-phases %standard-phases
- (replace 'configure
- (lambda _
- (chdir "profiler/build/unix")))
- (replace 'install
- (lambda _
- (let ((bin (string-append #$output "/bin"))
- (tracy (string-append #$output "/bin/tracy")))
- (mkdir-p bin)
- (copy-file "Tracy-release" tracy)))))))
+ (list
+ #:tests? #f ;no test for the profiler
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "CFLAGS=-lzstd"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'chdir
+ (lambda _
+ (chdir "profiler/build/unix")))
+ (delete 'configure) ;the profiler has no configure script
+ (replace 'install
+ (lambda _
+ (let ((bin (string-append #$output "/bin"))
+ (tracy (string-append #$output "/bin/tracy")))
+ (mkdir-p bin)
+ (copy-file "Tracy-release" tracy)))))))
(inputs (list capstone
dbus
freetype
libxkbcommon
mesa
- wayland))
+ wayland
+ `(,zstd "lib")))
(native-inputs (list pkg-config))
(home-page "https://github.com/wolfpld/tracy")
(synopsis "Frame profiler")

For the X11 variant working around packaging problems in glfw (dlopen)
with LD_LIBRARY_PATH, I've fixed these in glfw (by patching the so names
in its source with their absolute paths) and removed the workaround:

Toggle snippet (37 lines)
@@ -443,29 +469,13 @@ (define-public tracy
(package
(inherit tracy-wayland)
(name "tracy")
- (inputs (modify-inputs (package-inputs tracy-wayland)
- (delete "libxkbcommon" "wayland")
- (prepend glfw)))
(arguments
(substitute-keyword-arguments (package-arguments tracy-wayland)
- ((#:make-flags flags
- #~'())
+ ((#:make-flags flags #~'())
#~(append #$flags
- ;; The LEGACY flag indicate we want to build tracy with glfw
- (list "LEGACY=1")))
- ((#:phases phases)
- #~(modify-phases #$phases
- ;; Tracy depends on glfw to load libGL.so, but glfw doesn't have
- ;; mesa in its rpath. Thus, we need to manually modify tracy's
- ;; LD_LIBRARY_PATH.
- (add-after 'install 'wrap-program
- (lambda _
- (let ((out (string-append #$output "/bin/tracy"))
- (mesa (string-append #$(this-package-input "mesa")
- "/lib")))
- (wrap-program out
- `("LD_LIBRARY_PATH" ":" =
- (,mesa))))))))))
+ ;; The LEGACY flag indicate we want to build tracy with glfw.
+ (list "LEGACY=1")))))
(inputs (modify-inputs (package-inputs tracy-wayland)
- (append bash-minimal)))
+ (delete "libxkbcommon" "wayland")
+ (prepend glfw)))
(synopsis "Frame profiler (X11 version)")))

It at least still runs for me, though I'm not sure how to use it (it
seems to require the target application to be built with libtracy and
act as a server?).

Closing, thank you for contributing to Guix!

--
Thanks,
Maxim
Closed
?