From 15ada70677719290ffa01910852c34991cde0023 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Thu, 16 Jan 2025 11:08:08 -0800 Subject: [PATCH] freedreno/pps: Fix multiple counter collection runs The drm device file is closed and re-opened between perfetto traces. So we either need to re-create the fd_device, or use fd_device_new_dup() so we hold on to our own fd. The former is preferred so that the kernel can realize when we are no longer reading the perfcntrs. Signed-off-by: Rob Clark Part-of: --- src/freedreno/ds/fd_pps_driver.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/freedreno/ds/fd_pps_driver.cc b/src/freedreno/ds/fd_pps_driver.cc index ea292efe2f7..a3f67692de3 100644 --- a/src/freedreno/ds/fd_pps_driver.cc +++ b/src/freedreno/ds/fd_pps_driver.cc @@ -1467,7 +1467,7 @@ FreedrenoDriver::init_perfcnt() uint64_t val; if (dev) - return true; + fd_device_del(dev); dev = fd_device_new(drm_device.fd); pipe = fd_pipe_new2(dev, FD_PIPE_3D, 0);