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 Screen 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 statistics of a window.
The statistics are updated once per second and therefore represent a one second average. The following statistics are displayed:
- 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.