When using the tracy ON_DEMAND mode, it is ok in most cases to drop measurements and do a GPU clock synchronization (that may stall) during the first tracyCollect. This is not enabled by default in the CMakeLists for backward compatibility and because it may be a bit intrusive.
This commit also makes the OpenGL tracy TracyGpuZone* a tiny bit more efficient by not calling the threadlocal GetGpuCtx(). It is also more resilient if no context has been declared on this thread. This means that the application will not crash if a context was used on different threads even though declared only on one (thus GetGpuCtx().ptr == nullptr). Tracy does not support this scenario, so on one hand this helps users by not crashing, on the other it is an error that is now silent.
This usually prevents the compiler from emitting warnings about stuff it found in
the included files.
Since the CMakeLists.txt seems to be exclusively meant for code that is making use
of Tracy rather than Tracy itself using it to build, silencing the warnings should probably
be what most folks would want.
This will prevent things like #126
The disconnect handling logic is broken on the client, after the symbol
resolution was moved to a separate thread. Use workaround until a proper fix
is available.
On Windows there is no way to distinguish callstack data coming from random
sampling and from context switches. Each callstack timestamp has to be matched
against the context switch data in order to decide its origin. This is
obviously non-trivial.
On some other platforms, the origin information may be available right away,
in which case the process of matching against the context switch data, which
possibly includes postponing callstacks for processing in the future, may be
completely omitted.