12 mThreadName(inThreadName)
48 if (!sOutOfSamplesReported)
50 Trace(
"ProfileMeasurement: Too many samples, some data will be lost!");
51 sOutOfSamplesReported =
true;
59 if (mSample !=
nullptr)
65 static_assert(
sizeof(
ProfileSample) == 32,
"Assume 32 bytes");
66 static_assert(
alignof(
ProfileSample) == 16,
"Assume 16 byte alignment");
67 #if defined(JPH_USE_SSE)
68 const __m128i *src =
reinterpret_cast<const __m128i *
>(&mTemp);
69 __m128i *dst =
reinterpret_cast<__m128i *
>(mSample);
70 __m128i val = _mm_loadu_si128(src);
71 _mm_stream_si128(dst, val);
72 val = _mm_loadu_si128(src + 1);
73 _mm_stream_si128(dst + 1, val);
74 #elif defined(JPH_USE_NEON)
75 const int *src =
reinterpret_cast<const int *
>(&mTemp);
76 int *dst =
reinterpret_cast<int *
>(mSample);
77 int32x4_t val = vld1q_s32(src);
79 val = vld1q_s32(src + 4);
80 vst1q_s32(dst + 4, val);
uint32_t uint32
Definition Core.h:312
#define JPH_NAMESPACE_END
Definition Core.h:240
#define JPH_NAMESPACE_BEGIN
Definition Core.h:234
TraceFunction Trace
Definition IssueReporting.cpp:18
JPH_NAMESPACE_BEGIN JPH_INLINE uint64 GetProcessorTickCount()
Functionality to get the processors cycle counter.
Definition TickCounter.h:24
ProfileMeasurement(const char *inName, uint32 inColor=0)
Constructor.
Definition Profiler.inl:26
~ProfileMeasurement()
Definition Profiler.inl:57
Definition Profiler.h:161
uint32 mColor
Color to use for this sample.
Definition Profiler.h:166
uint64 mEndCycle
Cycle counter at end of measurement.
Definition Profiler.h:170
JPH_OVERRIDE_NEW_DELETE const char * mName
User defined name of this item.
Definition Profiler.h:165
uint64 mStartCycle
Cycle counter at start of measurement.
Definition Profiler.h:169
ProfileSample mSamples[cMaxSamples]
Buffer of samples.
Definition Profiler.h:186
uint mCurrentSample
Next position to write a sample to.
Definition Profiler.h:187
~ProfileThread()
Definition Profiler.inl:17
JPH_OVERRIDE_NEW_DELETE ProfileThread(const string_view &inThreadName)
Constructor.
Definition Profiler.inl:11
static thread_local ProfileThread * sInstance
Definition Profiler.h:189
static const uint cMaxSamples
Definition Profiler.h:183
void RemoveThread(ProfileThread *inThread)
Remove a thread from being instrumented.
Definition Profiler.cpp:56
void AddThread(ProfileThread *inThread)
Add a thread to be instrumented.
Definition Profiler.cpp:49
static Profiler * sInstance
Singleton instance.
Definition Profiler.h:96