Types of debug graphs.
Synopsis:
#include <screen/screen.h>
enum {
SCREEN_DEBUG_GRAPH_FPS = (1 << 0)
SCREEN_DEBUG_GRAPH_POSTS = (1 << 1)
SCREEN_DEBUG_GRAPH_BLITS = (1 << 2)
SCREEN_DEBUG_GRAPH_UPDATES = (1 << 3)
SCREEN_DEBUG_GRAPH_CPU_TIME = (1 << 4)
SCREEN_DEBUG_GRAPH_GPU_TIME = (1 << 5)
SCREEN_DEBUG_STATISTICS = (1 << 7)
};
Data:
- SCREEN_DEBUG_GRAPH_FPS
- Frames per second; the number of posts over time.
- SCREEN_DEBUG_GRAPH_POSTS
- Pixel count of pixels in dirty rectangles over time.
- SCREEN_DEBUG_GRAPH_BLITS
- Pixel count of pixels that were in blit requests over time.
- SCREEN_DEBUG_GRAPH_UPDATES
- Pixel count of pixels used by composition manager in the window to update the framebuffer over time.
- SCREEN_DEBUG_GRAPH_CPU_TIME
- The time spent on the CPU drawing each frame.
- SCREEN_DEBUG_GRAPH_GPU_TIME
- The time spent on the GPU drawing each frame.
- SCREEN_DEBUG_STATISTICS
- Certain staticstics of a window.
The statistics are updated once per second and therefore represent a one second average. The statistics that are displayed are:
- cpu usage, cpu time, gpu time
- private mappings, free memory
- window fps, display fps
- events
- objects
- draws
- triangles
- vertices
Library:
libscreen
Description:
All masks except SCREEN_DEBUG_STATISTICS are intended to be combined in a single integer bitmask. The bitmask represents combinations of desired debug graphs to be displayed. Only one window can enable debug graphs at a time; the last window to have enabled debug will have its values displayed in the graph. All data but the FPS is normalized to buffer size and refresh rate of display.