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 <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33073>
This commit is contained in:
Rob Clark 2025-01-16 11:08:08 -08:00 committed by Marge Bot
parent fb09dac988
commit 15ada70677

View file

@ -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);