Lines Matching +full:ts +full:- +full:api +full:- +full:utils
4 * Use of this source code is governed by a BSD-style license that can be
12 #include "src/utils/SkJSONWriter.h"
13 #include "src/utils/SkOSPath.h"
50 char* stringTable() { return reinterpret_cast<char*>(this->args() + fNumArgs); } in stringTable()
56 this->createBlock(); in ChromeTracingTracer()
59 ChromeTracingTracer::~ChromeTracingTracer() { this->flush(); } in ~ChromeTracingTracer()
73 this->createBlock(); in appendEvent()
108 traceEvent->fPhase = phase; in addTraceEvent()
109 traceEvent->fNumArgs = numArgs; in addTraceEvent()
110 traceEvent->fSize = size; in addTraceEvent()
111 traceEvent->fName = name; in addTraceEvent()
112 traceEvent->fID = id; in addTraceEvent()
113 traceEvent->fClockBegin = std::chrono::steady_clock::now().time_since_epoch().count(); in addTraceEvent()
114 traceEvent->fClockEnd = 0; in addTraceEvent()
115 traceEvent->fThreadID = SkGetThreadID(); in addTraceEvent()
117 TraceEventArg* traceEventArgs = traceEvent->args(); in addTraceEvent()
118 char* stringTableBase = traceEvent->stringTable(); in addTraceEvent()
125 traceEventArgs[i].fArgValue = stringTable - stringTableBase; in addTraceEvent()
138 return this->appendEvent(storagePtr, size); in addTraceEvent()
147 traceEvent->fClockEnd = std::chrono::steady_clock::now().time_since_epoch().count(); in updateTraceEventDuration()
155 case TRACE_VALUE_TYPE_BOOL: writer->appendBool(argValue); break; in trace_value_to_json()
156 case TRACE_VALUE_TYPE_UINT: writer->appendU64(argValue); break; in trace_value_to_json()
157 case TRACE_VALUE_TYPE_INT: writer->appendS64(static_cast<int64_t>(argValue)); break; in trace_value_to_json()
158 case TRACE_VALUE_TYPE_DOUBLE: writer->appendDouble(sk_bit_cast<double>(argValue)); break; in trace_value_to_json()
160 writer->appendPointer(skia_private::TraceValueAsPointer(argValue)); in trace_value_to_json()
163 writer->appendCString(skia_private::TraceValueAsString(argValue)); in trace_value_to_json()
167 writer->appendCString(stringTableBase + argValue); in trace_value_to_json()
169 default: writer->appendNString("<unknown type>"); break; in trace_value_to_json()
201 auto baseTypeResolver = &(serializationState->fBaseTypeResolver); in trace_event_to_json()
202 if (TRACE_EVENT_PHASE_CREATE_OBJECT == traceEvent->fPhase) { in trace_event_to_json()
203 SkASSERT(nullptr == baseTypeResolver->find(traceEvent->fID)); in trace_event_to_json()
204 baseTypeResolver->set(traceEvent->fID, traceEvent->fName); in trace_event_to_json()
205 } else if (TRACE_EVENT_PHASE_DELETE_OBJECT == traceEvent->fPhase) { in trace_event_to_json()
206 SkASSERT(nullptr != baseTypeResolver->find(traceEvent->fID)); in trace_event_to_json()
207 baseTypeResolver->remove(traceEvent->fID); in trace_event_to_json()
210 writer->beginObject(); in trace_event_to_json()
212 writer->appendString("ph", &traceEvent->fPhase, 1); in trace_event_to_json()
213 writer->appendCString("name", traceEvent->fName); in trace_event_to_json()
214 if (0 != traceEvent->fID) { in trace_event_to_json()
216 writer->appendPointer("id", reinterpret_cast<void*>(traceEvent->fID)); in trace_event_to_json()
222 static_cast<int64_t>(traceEvent->fClockBegin - serializationState->fClockOffset); in trace_event_to_json()
223 writer->appendDouble("ts", static_cast<double>(relativeTimestamp) * 1E-3); in trace_event_to_json()
224 if (0 != traceEvent->fClockEnd) { in trace_event_to_json()
225 double dur = static_cast<double>(traceEvent->fClockEnd - traceEvent->fClockBegin) * 1E-3; in trace_event_to_json()
226 writer->appendDouble("dur", dur); in trace_event_to_json()
229 writer->appendS64("tid", serializationState->getShortThreadID(traceEvent->fThreadID)); in trace_event_to_json()
231 // important (and certainly not worth adding a cross-platform API to get it). in trace_event_to_json()
232 writer->appendS32("pid", 0); in trace_event_to_json()
234 if (traceEvent->fNumArgs) { in trace_event_to_json()
235 writer->beginObject("args"); in trace_event_to_json()
236 const char* stringTable = traceEvent->stringTable(); in trace_event_to_json()
238 if (TRACE_EVENT_PHASE_SNAPSHOT_OBJECT == traceEvent->fPhase && in trace_event_to_json()
239 baseTypeResolver->find(traceEvent->fID) && in trace_event_to_json()
240 0 != strcmp(*baseTypeResolver->find(traceEvent->fID), traceEvent->fName)) { in trace_event_to_json()
242 writer->beginObject("snapshot"); in trace_event_to_json()
243 writer->appendCString("base_type", *baseTypeResolver->find(traceEvent->fID)); in trace_event_to_json()
247 for (int i = 0; i < traceEvent->fNumArgs; ++i) { in trace_event_to_json()
248 const TraceEventArg* arg = traceEvent->args() + i; in trace_event_to_json()
250 writer->appendName(arg->fArgName); in trace_event_to_json()
252 if (arg->fArgName && '#' == arg->fArgName[0]) { in trace_event_to_json()
253 writer->beginObject(); in trace_event_to_json()
254 writer->appendName("id_ref"); in trace_event_to_json()
255 trace_value_to_json(writer, arg->fArgValue, arg->fArgType, stringTable); in trace_event_to_json()
256 writer->endObject(); in trace_event_to_json()
258 trace_value_to_json(writer, arg->fArgValue, arg->fArgType, stringTable); in trace_event_to_json()
263 writer->endObject(); in trace_event_to_json()
266 writer->endObject(); in trace_event_to_json()
269 writer->endObject(); in trace_event_to_json()
288 clockOffset = reinterpret_cast<TraceEvent*>(fBlocks[0].fBlock.get())->fClockBegin; in flush()
290 clockOffset = reinterpret_cast<TraceEvent*>(fCurBlock.fBlock.get())->fClockBegin; in flush()
301 traceEvent = traceEvent->next(); in flush()