我试图找到一个变量/一些指标,可以帮助我计算在 Linux 内核的 Midgard GPU 驱动程序中呈现的实际帧数。
在用户级程序上测试我的算法时,我使用了一个系统调用(如下所示),它从 SurfaceFlinger 获取帧计数并将该值存储到一个文件中,稍后我在用户级程序中读取该文件。
system("setsid adb shell service call SurfaceFlinger 1013 | \
grep -o -E \\([a-fA-F0-9]+\\ \\)> frames.txt");
注意:我正在尝试创建一个使用此信息的 dvfs 调节器,但我似乎无法在 Midgard 驱动程序中找到访问它的方法。我只能访问 GPU 内核的“利用率”,但这并不总是与帧数匹配。关于如何解决这个问题的任何想法?