![]() |
Jo Engine 2026.11.1
Jo Sega Saturn Engine
|
Jo Engine profiler: time spent by the CPUs and the VDP1 in each frame. More...
Go to the source code of this file.
Macros | |
| #define | JO_PROFILE_USER(N) |
| Measure of the program. | |
| #define | JO_PROFILE_FRAMES |
| Frames of the averages and of the maximums. | |
| #define | jo_profile_begin(SLOT) |
| #define | jo_profile_end(SLOT) |
| #define | jo_profile_count(SLOT, VALUE) |
| #define | jo_profile_set_name(SLOT, NAME) |
| #define | jo_profile_print(X, Y) |
| #define | jo_profile_count_pixels(ENABLED) |
| #define | jo_profile_sampling_start(M, S) |
| #define | __jo_profile_slave_job() |
Enumerations | |
| enum | jo_profile_slot { JO_PROFILE_FRAME , JO_PROFILE_CALLBACKS , JO_PROFILE_WAIT_SLAVE , JO_PROFILE_SLAVE , JO_PROFILE_VDP1_SORT , JO_PROFILE_VDP1_COPY , JO_PROFILE_VDP1_WAIT , JO_PROFILE_VSYNC , JO_PROFILE_VDP1_DRAW , JO_PROFILE_VBLANKS , JO_PROFILE_VDP1_COMMANDS , JO_PROFILE_POLYGONS , JO_PROFILE_3D_POLYGON_COUNT , JO_PROFILE_3D_VERTEX_COUNT , JO_PROFILE_3D_VERTICES , JO_PROFILE_3D_POLYGONS , JO_PROFILE_3D_CLIP , JO_PROFILE_3D_LIGHT , JO_PROFILE_3D_PIXELS , JO_PROFILE_FIRST_USER , JO_PROFILE_COUNT } |
| Measures of the engine and of the program (jo_profile_begin(), jo_profile_end(), jo_profile_count()). More... | |
Jo Engine profiler: time spent by the CPUs and the VDP1 in each frame.
Example:
| #define __jo_profile_slave_job | ( | ) |
| #define jo_profile_begin | ( | SLOT | ) |
| #define jo_profile_count | ( | SLOT, | |
| VALUE ) |
| #define jo_profile_count_pixels | ( | ENABLED | ) |
| #define jo_profile_end | ( | SLOT | ) |
| #define JO_PROFILE_FRAMES |
Frames of the averages and of the maximums.
| #define jo_profile_print | ( | X, | |
| Y ) |
| #define jo_profile_sampling_start | ( | M, | |
| S ) |
| #define jo_profile_set_name | ( | SLOT, | |
| NAME ) |
| #define JO_PROFILE_USER | ( | N | ) |
Measure of the program.
| N | 0 to 7 |
| enum jo_profile_slot |
Measures of the engine and of the program (jo_profile_begin(), jo_profile_end(), jo_profile_count()).
| Enumerator | |
|---|---|
| JO_PROFILE_FRAME | Frame: from the start of the callbacks of a frame to the start of the next one. |
| JO_PROFILE_CALLBACKS | Callbacks of the master CPU (jo_core_add_callback()). |
| JO_PROFILE_WAIT_SLAVE | Master CPU waiting for the slave CPU (jo_core_wait_for_slave()). |
| JO_PROFILE_SLAVE | Slave CPU busy (all its jobs: the callbacks of jo_core_exec_on_slave() and the engine jobs). |
| JO_PROFILE_VDP1_SORT | Sort of the VDP1 commands of a frame. |
| JO_PROFILE_VDP1_COPY | Copy of the VDP1 commands of a frame into the VDP1 VRAM. |
| JO_PROFILE_VDP1_WAIT | Wait for the VDP1 before the copy (previous table not displayed yet, or still drawn). |
| JO_PROFILE_VSYNC | Master CPU waiting for the VBLANK at the end of the frame (JO_FRAMERATE). |
| JO_PROFILE_VDP1_DRAW | VDP1: from the display of a new command table to the end of its drawing. |
| JO_PROFILE_VBLANKS | VBLANK per frame (count, x 100). |
| JO_PROFILE_VDP1_COMMANDS | VDP1 commands per frame (count). |
| JO_PROFILE_POLYGONS | 3D polygons displayed per frame (count) |
| JO_PROFILE_3D_POLYGON_COUNT | 3D polygons tested per frame, visible or not (count, both CPUs) |
| JO_PROFILE_3D_VERTEX_COUNT | 3D vertices transformed per frame (count, both CPUs) |
| JO_PROFILE_3D_VERTICES | 3D: transformation and projection of the vertices (both CPUs) |
| JO_PROFILE_3D_POLYGONS | 3D: polygons (visibility, clipping, lighting, VDP1 commands), both CPUs |
| JO_PROFILE_3D_CLIP | 3D: polygons near the camera (subdivided) or crossing the near plane (clipped), both CPUs (included in JO_PROFILE_3D_POLYGONS) |
| JO_PROFILE_3D_LIGHT | 3D: lighting of the polygons (JO_3D_USE_LIGHT), both CPUs (included in JO_PROFILE_3D_POLYGONS) |
| JO_PROFILE_3D_PIXELS | 3D: estimate of the pixels the VDP1 draws for the polygons of a frame (count, both CPUs): the VDP1 draws about max(lines, texture height) x max(pixels per line, texture width) pixels for a polygon, even smaller on the screen, even hidden by the next polygons or outside of the screen (about 28 pixels per microsecond) |
| JO_PROFILE_FIRST_USER | First measure of the program (see JO_PROFILE_USER()). |
| JO_PROFILE_COUNT | Measures count. |