1 Basic usage
When an animation is running on the display, the related framerate can be monitored from the display driver level thanks to the command:
(while true; do export fps=`cat /sys/kernel/debug/dri/0/state | grep fps -m1 | grep -o '[0-9]\+'`; echo display ${fps}fps; sleep 4; done) &
The display framerate is then periodically output in the user console in "fps" (frames per second):
display 50fps display 50fps display 50fps
2 Advanced usage
The display can be composed of several layers which can be refreshed independently. Associated framerates can be monitored from the display driver level thanks to the command:
(while true; do cat /sys/kernel/debug/dri/0/state | sed -nE '/user|plane-/p' | sed -e ':a;N;$!ba;s/\n\t//g;s/user_updates=/ /g;s/plane-/display layer/g;' | sed -e 's/^.\{,11\}//g'; sleep 4; done) &
The display layer framerates are then periodically output in the user console in "fps" (frames per second):
display layer0 60fps display layer1 25fps display layer2 30fps
3 How to stop the monitoring?
- Stop monitoring the framerate with the command "kill -9 `ps -o ppid= -C sleep`".
- Adjust the framerate update period by modifying the "sleep" value (4 seconds in these examples).
- Use the command "dmesg -n8" to mix both user and kernel console outputs.
- Debugfs configuration needs to be enabled.