The open source OpenXR runtime

external: Add monado_metrics protocol

authored by

Jakob Bornecrantz and committed by
Moses Turner
2a7c4117 58186cc6

+310
+2
src/external/CMakeLists.txt
··· 54 54 # Nano Protobuf 55 55 add_library( 56 56 xrt-external-nanopb STATIC 57 + nanopb/monado_metrics.pb.c 58 + nanopb/monado_metrics.pb.h 57 59 nanopb/pb.h 58 60 nanopb/pb_common.c 59 61 nanopb/pb_common.h
+30
src/external/nanopb/monado_metrics.pb.c
··· 1 + /* Automatically generated nanopb constant definitions */ 2 + /* Generated by nanopb-0.4.7-dev */ 3 + 4 + #include "monado_metrics.pb.h" 5 + #if PB_PROTO_HEADER_VERSION != 40 6 + #error Regenerate this file with the current version of nanopb generator. 7 + #endif 8 + 9 + PB_BIND(monado_metrics_Version, monado_metrics_Version, AUTO) 10 + 11 + 12 + PB_BIND(monado_metrics_SessionFrame, monado_metrics_SessionFrame, AUTO) 13 + 14 + 15 + PB_BIND(monado_metrics_Used, monado_metrics_Used, AUTO) 16 + 17 + 18 + PB_BIND(monado_metrics_SystemFrame, monado_metrics_SystemFrame, AUTO) 19 + 20 + 21 + PB_BIND(monado_metrics_SystemGpuInfo, monado_metrics_SystemGpuInfo, AUTO) 22 + 23 + 24 + PB_BIND(monado_metrics_SystemPresentInfo, monado_metrics_SystemPresentInfo, AUTO) 25 + 26 + 27 + PB_BIND(monado_metrics_Record, monado_metrics_Record, AUTO) 28 + 29 + 30 +
+278
src/external/nanopb/monado_metrics.pb.h
··· 1 + /* Automatically generated nanopb header */ 2 + /* Generated by nanopb-0.4.7-dev */ 3 + 4 + #ifndef PB_MONADO_METRICS_MONADO_METRICS_PB_H_INCLUDED 5 + #define PB_MONADO_METRICS_MONADO_METRICS_PB_H_INCLUDED 6 + #include <pb.h> 7 + 8 + #if PB_PROTO_HEADER_VERSION != 40 9 + #error Regenerate this file with the current version of nanopb generator. 10 + #endif 11 + 12 + /* Struct definitions */ 13 + typedef struct _monado_metrics_SessionFrame { 14 + int64_t session_id; 15 + int64_t frame_id; 16 + uint64_t predicted_frame_time_ns; 17 + uint64_t predicted_wake_up_time_ns; 18 + uint64_t predicted_gpu_done_time_ns; 19 + uint64_t predicted_display_time_ns; 20 + uint64_t predicted_display_period_ns; 21 + uint64_t display_time_ns; 22 + uint64_t when_predicted_ns; 23 + uint64_t when_wait_woke_ns; 24 + uint64_t when_begin_ns; 25 + uint64_t when_delivered_ns; 26 + uint64_t when_gpu_done_ns; 27 + bool discarded; 28 + } monado_metrics_SessionFrame; 29 + 30 + typedef struct _monado_metrics_SystemFrame { 31 + int64_t frame_id; 32 + uint64_t predicted_display_time_ns; 33 + uint64_t predicted_display_period_ns; 34 + uint64_t desired_present_time_ns; 35 + uint64_t wake_up_time_ns; 36 + uint64_t present_slop_ns; 37 + } monado_metrics_SystemFrame; 38 + 39 + typedef struct _monado_metrics_SystemGpuInfo { 40 + int64_t frame_id; 41 + uint64_t gpu_start_ns; 42 + uint64_t gpu_end_ns; 43 + uint64_t when_ns; 44 + } monado_metrics_SystemGpuInfo; 45 + 46 + typedef struct _monado_metrics_SystemPresentInfo { 47 + int64_t frame_id; 48 + uint64_t expected_comp_time_ns; 49 + uint64_t predicted_wake_up_time_ns; 50 + uint64_t predicted_done_time_ns; 51 + uint64_t predicted_display_time_ns; 52 + uint64_t when_predict_ns; 53 + uint64_t when_woke_ns; 54 + uint64_t when_began_ns; 55 + uint64_t when_submitted_ns; 56 + uint64_t when_infoed_ns; 57 + uint64_t desired_present_time_ns; 58 + uint64_t present_slop_ns; 59 + uint64_t present_margin_ns; 60 + uint64_t actual_present_time_ns; 61 + uint64_t earliest_present_time_ns; 62 + } monado_metrics_SystemPresentInfo; 63 + 64 + typedef struct _monado_metrics_Used { 65 + int64_t session_id; 66 + int64_t session_frame_id; 67 + int64_t system_frame_id; 68 + uint64_t when_ns; 69 + } monado_metrics_Used; 70 + 71 + typedef struct _monado_metrics_Version { 72 + uint32_t major; 73 + uint32_t minor; 74 + } monado_metrics_Version; 75 + 76 + typedef struct _monado_metrics_Record { 77 + pb_size_t which_record; 78 + union { 79 + monado_metrics_Version version; 80 + monado_metrics_SessionFrame session_frame; 81 + monado_metrics_Used used; 82 + monado_metrics_SystemFrame system_frame; 83 + monado_metrics_SystemGpuInfo system_gpu_info; 84 + monado_metrics_SystemPresentInfo system_present_info; 85 + } record; 86 + } monado_metrics_Record; 87 + 88 + 89 + #ifdef __cplusplus 90 + extern "C" { 91 + #endif 92 + 93 + /* Initializer values for message structs */ 94 + #define monado_metrics_Version_init_default {0, 0} 95 + #define monado_metrics_SessionFrame_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} 96 + #define monado_metrics_Used_init_default {0, 0, 0, 0} 97 + #define monado_metrics_SystemFrame_init_default {0, 0, 0, 0, 0, 0} 98 + #define monado_metrics_SystemGpuInfo_init_default {0, 0, 0, 0} 99 + #define monado_metrics_SystemPresentInfo_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} 100 + #define monado_metrics_Record_init_default {0, {monado_metrics_Version_init_default}} 101 + #define monado_metrics_Version_init_zero {0, 0} 102 + #define monado_metrics_SessionFrame_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} 103 + #define monado_metrics_Used_init_zero {0, 0, 0, 0} 104 + #define monado_metrics_SystemFrame_init_zero {0, 0, 0, 0, 0, 0} 105 + #define monado_metrics_SystemGpuInfo_init_zero {0, 0, 0, 0} 106 + #define monado_metrics_SystemPresentInfo_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} 107 + #define monado_metrics_Record_init_zero {0, {monado_metrics_Version_init_zero}} 108 + 109 + /* Field tags (for use in manual encoding/decoding) */ 110 + #define monado_metrics_SessionFrame_session_id_tag 1 111 + #define monado_metrics_SessionFrame_frame_id_tag 2 112 + #define monado_metrics_SessionFrame_predicted_frame_time_ns_tag 3 113 + #define monado_metrics_SessionFrame_predicted_wake_up_time_ns_tag 4 114 + #define monado_metrics_SessionFrame_predicted_gpu_done_time_ns_tag 5 115 + #define monado_metrics_SessionFrame_predicted_display_time_ns_tag 6 116 + #define monado_metrics_SessionFrame_predicted_display_period_ns_tag 7 117 + #define monado_metrics_SessionFrame_display_time_ns_tag 8 118 + #define monado_metrics_SessionFrame_when_predicted_ns_tag 9 119 + #define monado_metrics_SessionFrame_when_wait_woke_ns_tag 10 120 + #define monado_metrics_SessionFrame_when_begin_ns_tag 11 121 + #define monado_metrics_SessionFrame_when_delivered_ns_tag 12 122 + #define monado_metrics_SessionFrame_when_gpu_done_ns_tag 13 123 + #define monado_metrics_SessionFrame_discarded_tag 14 124 + #define monado_metrics_SystemFrame_frame_id_tag 1 125 + #define monado_metrics_SystemFrame_predicted_display_time_ns_tag 2 126 + #define monado_metrics_SystemFrame_predicted_display_period_ns_tag 3 127 + #define monado_metrics_SystemFrame_desired_present_time_ns_tag 4 128 + #define monado_metrics_SystemFrame_wake_up_time_ns_tag 5 129 + #define monado_metrics_SystemFrame_present_slop_ns_tag 6 130 + #define monado_metrics_SystemGpuInfo_frame_id_tag 1 131 + #define monado_metrics_SystemGpuInfo_gpu_start_ns_tag 2 132 + #define monado_metrics_SystemGpuInfo_gpu_end_ns_tag 3 133 + #define monado_metrics_SystemGpuInfo_when_ns_tag 4 134 + #define monado_metrics_SystemPresentInfo_frame_id_tag 1 135 + #define monado_metrics_SystemPresentInfo_expected_comp_time_ns_tag 2 136 + #define monado_metrics_SystemPresentInfo_predicted_wake_up_time_ns_tag 3 137 + #define monado_metrics_SystemPresentInfo_predicted_done_time_ns_tag 4 138 + #define monado_metrics_SystemPresentInfo_predicted_display_time_ns_tag 5 139 + #define monado_metrics_SystemPresentInfo_when_predict_ns_tag 6 140 + #define monado_metrics_SystemPresentInfo_when_woke_ns_tag 7 141 + #define monado_metrics_SystemPresentInfo_when_began_ns_tag 8 142 + #define monado_metrics_SystemPresentInfo_when_submitted_ns_tag 9 143 + #define monado_metrics_SystemPresentInfo_when_infoed_ns_tag 10 144 + #define monado_metrics_SystemPresentInfo_desired_present_time_ns_tag 11 145 + #define monado_metrics_SystemPresentInfo_present_slop_ns_tag 12 146 + #define monado_metrics_SystemPresentInfo_present_margin_ns_tag 13 147 + #define monado_metrics_SystemPresentInfo_actual_present_time_ns_tag 14 148 + #define monado_metrics_SystemPresentInfo_earliest_present_time_ns_tag 15 149 + #define monado_metrics_Used_session_id_tag 1 150 + #define monado_metrics_Used_session_frame_id_tag 2 151 + #define monado_metrics_Used_system_frame_id_tag 3 152 + #define monado_metrics_Used_when_ns_tag 4 153 + #define monado_metrics_Version_major_tag 1 154 + #define monado_metrics_Version_minor_tag 2 155 + #define monado_metrics_Record_version_tag 1 156 + #define monado_metrics_Record_session_frame_tag 2 157 + #define monado_metrics_Record_used_tag 3 158 + #define monado_metrics_Record_system_frame_tag 4 159 + #define monado_metrics_Record_system_gpu_info_tag 5 160 + #define monado_metrics_Record_system_present_info_tag 6 161 + 162 + /* Struct field encoding specification for nanopb */ 163 + #define monado_metrics_Version_FIELDLIST(X, a) \ 164 + X(a, STATIC, SINGULAR, UINT32, major, 1) \ 165 + X(a, STATIC, SINGULAR, UINT32, minor, 2) 166 + #define monado_metrics_Version_CALLBACK NULL 167 + #define monado_metrics_Version_DEFAULT NULL 168 + 169 + #define monado_metrics_SessionFrame_FIELDLIST(X, a) \ 170 + X(a, STATIC, SINGULAR, INT64, session_id, 1) \ 171 + X(a, STATIC, SINGULAR, INT64, frame_id, 2) \ 172 + X(a, STATIC, SINGULAR, UINT64, predicted_frame_time_ns, 3) \ 173 + X(a, STATIC, SINGULAR, UINT64, predicted_wake_up_time_ns, 4) \ 174 + X(a, STATIC, SINGULAR, UINT64, predicted_gpu_done_time_ns, 5) \ 175 + X(a, STATIC, SINGULAR, UINT64, predicted_display_time_ns, 6) \ 176 + X(a, STATIC, SINGULAR, UINT64, predicted_display_period_ns, 7) \ 177 + X(a, STATIC, SINGULAR, UINT64, display_time_ns, 8) \ 178 + X(a, STATIC, SINGULAR, UINT64, when_predicted_ns, 9) \ 179 + X(a, STATIC, SINGULAR, UINT64, when_wait_woke_ns, 10) \ 180 + X(a, STATIC, SINGULAR, UINT64, when_begin_ns, 11) \ 181 + X(a, STATIC, SINGULAR, UINT64, when_delivered_ns, 12) \ 182 + X(a, STATIC, SINGULAR, UINT64, when_gpu_done_ns, 13) \ 183 + X(a, STATIC, SINGULAR, BOOL, discarded, 14) 184 + #define monado_metrics_SessionFrame_CALLBACK NULL 185 + #define monado_metrics_SessionFrame_DEFAULT NULL 186 + 187 + #define monado_metrics_Used_FIELDLIST(X, a) \ 188 + X(a, STATIC, SINGULAR, INT64, session_id, 1) \ 189 + X(a, STATIC, SINGULAR, INT64, session_frame_id, 2) \ 190 + X(a, STATIC, SINGULAR, INT64, system_frame_id, 3) \ 191 + X(a, STATIC, SINGULAR, UINT64, when_ns, 4) 192 + #define monado_metrics_Used_CALLBACK NULL 193 + #define monado_metrics_Used_DEFAULT NULL 194 + 195 + #define monado_metrics_SystemFrame_FIELDLIST(X, a) \ 196 + X(a, STATIC, SINGULAR, INT64, frame_id, 1) \ 197 + X(a, STATIC, SINGULAR, UINT64, predicted_display_time_ns, 2) \ 198 + X(a, STATIC, SINGULAR, UINT64, predicted_display_period_ns, 3) \ 199 + X(a, STATIC, SINGULAR, UINT64, desired_present_time_ns, 4) \ 200 + X(a, STATIC, SINGULAR, UINT64, wake_up_time_ns, 5) \ 201 + X(a, STATIC, SINGULAR, UINT64, present_slop_ns, 6) 202 + #define monado_metrics_SystemFrame_CALLBACK NULL 203 + #define monado_metrics_SystemFrame_DEFAULT NULL 204 + 205 + #define monado_metrics_SystemGpuInfo_FIELDLIST(X, a) \ 206 + X(a, STATIC, SINGULAR, INT64, frame_id, 1) \ 207 + X(a, STATIC, SINGULAR, UINT64, gpu_start_ns, 2) \ 208 + X(a, STATIC, SINGULAR, UINT64, gpu_end_ns, 3) \ 209 + X(a, STATIC, SINGULAR, UINT64, when_ns, 4) 210 + #define monado_metrics_SystemGpuInfo_CALLBACK NULL 211 + #define monado_metrics_SystemGpuInfo_DEFAULT NULL 212 + 213 + #define monado_metrics_SystemPresentInfo_FIELDLIST(X, a) \ 214 + X(a, STATIC, SINGULAR, INT64, frame_id, 1) \ 215 + X(a, STATIC, SINGULAR, UINT64, expected_comp_time_ns, 2) \ 216 + X(a, STATIC, SINGULAR, UINT64, predicted_wake_up_time_ns, 3) \ 217 + X(a, STATIC, SINGULAR, UINT64, predicted_done_time_ns, 4) \ 218 + X(a, STATIC, SINGULAR, UINT64, predicted_display_time_ns, 5) \ 219 + X(a, STATIC, SINGULAR, UINT64, when_predict_ns, 6) \ 220 + X(a, STATIC, SINGULAR, UINT64, when_woke_ns, 7) \ 221 + X(a, STATIC, SINGULAR, UINT64, when_began_ns, 8) \ 222 + X(a, STATIC, SINGULAR, UINT64, when_submitted_ns, 9) \ 223 + X(a, STATIC, SINGULAR, UINT64, when_infoed_ns, 10) \ 224 + X(a, STATIC, SINGULAR, UINT64, desired_present_time_ns, 11) \ 225 + X(a, STATIC, SINGULAR, UINT64, present_slop_ns, 12) \ 226 + X(a, STATIC, SINGULAR, UINT64, present_margin_ns, 13) \ 227 + X(a, STATIC, SINGULAR, UINT64, actual_present_time_ns, 14) \ 228 + X(a, STATIC, SINGULAR, UINT64, earliest_present_time_ns, 15) 229 + #define monado_metrics_SystemPresentInfo_CALLBACK NULL 230 + #define monado_metrics_SystemPresentInfo_DEFAULT NULL 231 + 232 + #define monado_metrics_Record_FIELDLIST(X, a) \ 233 + X(a, STATIC, ONEOF, MESSAGE, (record,version,record.version), 1) \ 234 + X(a, STATIC, ONEOF, MESSAGE, (record,session_frame,record.session_frame), 2) \ 235 + X(a, STATIC, ONEOF, MESSAGE, (record,used,record.used), 3) \ 236 + X(a, STATIC, ONEOF, MESSAGE, (record,system_frame,record.system_frame), 4) \ 237 + X(a, STATIC, ONEOF, MESSAGE, (record,system_gpu_info,record.system_gpu_info), 5) \ 238 + X(a, STATIC, ONEOF, MESSAGE, (record,system_present_info,record.system_present_info), 6) 239 + #define monado_metrics_Record_CALLBACK NULL 240 + #define monado_metrics_Record_DEFAULT NULL 241 + #define monado_metrics_Record_record_version_MSGTYPE monado_metrics_Version 242 + #define monado_metrics_Record_record_session_frame_MSGTYPE monado_metrics_SessionFrame 243 + #define monado_metrics_Record_record_used_MSGTYPE monado_metrics_Used 244 + #define monado_metrics_Record_record_system_frame_MSGTYPE monado_metrics_SystemFrame 245 + #define monado_metrics_Record_record_system_gpu_info_MSGTYPE monado_metrics_SystemGpuInfo 246 + #define monado_metrics_Record_record_system_present_info_MSGTYPE monado_metrics_SystemPresentInfo 247 + 248 + extern const pb_msgdesc_t monado_metrics_Version_msg; 249 + extern const pb_msgdesc_t monado_metrics_SessionFrame_msg; 250 + extern const pb_msgdesc_t monado_metrics_Used_msg; 251 + extern const pb_msgdesc_t monado_metrics_SystemFrame_msg; 252 + extern const pb_msgdesc_t monado_metrics_SystemGpuInfo_msg; 253 + extern const pb_msgdesc_t monado_metrics_SystemPresentInfo_msg; 254 + extern const pb_msgdesc_t monado_metrics_Record_msg; 255 + 256 + /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ 257 + #define monado_metrics_Version_fields &monado_metrics_Version_msg 258 + #define monado_metrics_SessionFrame_fields &monado_metrics_SessionFrame_msg 259 + #define monado_metrics_Used_fields &monado_metrics_Used_msg 260 + #define monado_metrics_SystemFrame_fields &monado_metrics_SystemFrame_msg 261 + #define monado_metrics_SystemGpuInfo_fields &monado_metrics_SystemGpuInfo_msg 262 + #define monado_metrics_SystemPresentInfo_fields &monado_metrics_SystemPresentInfo_msg 263 + #define monado_metrics_Record_fields &monado_metrics_Record_msg 264 + 265 + /* Maximum encoded size of messages (where known) */ 266 + #define monado_metrics_Record_size 168 267 + #define monado_metrics_SessionFrame_size 145 268 + #define monado_metrics_SystemFrame_size 66 269 + #define monado_metrics_SystemGpuInfo_size 44 270 + #define monado_metrics_SystemPresentInfo_size 165 271 + #define monado_metrics_Used_size 44 272 + #define monado_metrics_Version_size 12 273 + 274 + #ifdef __cplusplus 275 + } /* extern "C" */ 276 + #endif 277 + 278 + #endif