Alexander Bock
f7fb2af5c2
Update TracyOpenGL.hpp
...
Removing explicit GL_TIMESTAMP check
2021-11-04 10:46:13 +01:00
Bartosz Taudul
733d267768
Disable OpenGL callstacks when fibers are enabled.
...
This has little impact, but saves much of the hassle.
2021-10-10 16:39:22 +02:00
Bartosz Taudul
b0fc0d5dcc
Check if rpmalloc has to be initialized before each operation.
...
The C++11 spec states in [basic.stc.thread] thread storage duration:
2. A variable with thread storage duration shall be initialized before its
first odr-use (3.2) and, if constructed, shall be destroyed on thread exit.
Previously Tracy relied on the TLS data being initialized:
- During thread creation (MSVC).
- Or during first use in a thread, but the initialization was performed for
the whole TLS block.
It seems that new compilers are more granular with how they perform the
initialization, hence rpmalloc init has to be checked before each allocation,
as it cannot be "folded" into, for example, initialization of the profiler
itself.
2021-05-31 02:31:42 +02:00
Bartosz Taudul
e606c75695
Don't require GL headers if tracing is disabled.
2021-05-29 12:01:03 +02:00
Bartosz Taudul
cd4114f264
Add GPU name transfer macros.
2021-01-31 19:15:23 +01:00
Bartosz Taudul
5a8d30ddc3
Add transient OpenGL zones.
2021-01-15 20:13:09 +01:00
Bartosz Taudul
bd31e3d2d6
Send callstacks before sending events they belong to.
2020-09-29 16:40:19 +02:00
Bartosz Taudul
8243604943
Mark SourceLocationData constexpr, not const.
2020-08-16 02:32:17 +02:00
Bartosz Taudul
1b6bc1b69a
Send Vulkan GPU calibration messages.
2020-07-07 21:25:35 +02:00
Bartosz Taudul
54a029356d
Explicitly store GPU context type.
2020-05-27 18:16:53 +02:00
Bartosz Taudul
fad7e72fd4
Harden against uninitialized rpmalloc.
...
Initialize rpmalloc either by explicitly calling InitRPMallocThread(),
or by forcing initialization of thread local variables block.
2020-05-19 13:51:11 +02:00
Bartosz Taudul
2b584a94c5
Fix GLES check.
2020-03-02 17:06:25 +01:00
Bartosz Taudul
ac9479aa3f
Change OpenGL headers comment to compilation error.
2020-01-27 17:50:44 +01:00
Bartosz Taudul
35a2baf5ef
GPU zones may also be inactive.
2020-01-25 17:44:46 +01:00
Bartosz Taudul
55d03cb03e
Hide async queue setup/commit behind macros.
2020-01-19 15:06:11 +01:00
Alexander Bock
ce8f10f2b1
Removed unused parameter for the case when the TracyOpenGL.hpp is included by TRACY_ENABLE is not defined
2019-12-28 14:33:47 +00:00
Bartosz Taudul
0f68e1e981
Send thread id in GPU zone end message.
...
We don't care about OpenGL zone thread ids, so the identifier is zeroed.
2019-09-23 16:06:14 +02:00
Bartosz Taudul
a6a3f45810
Fill in thread id during dequeue, not during enqueue.
2019-07-30 01:15:14 +02:00
Bartosz Taudul
89928fde7b
Queue must be always able to alloc.
2019-07-29 22:13:16 +02:00
Bartosz Taudul
dc992266fd
Simplify OpenGL query checks.
2019-07-16 19:42:06 +02:00
Bartosz Taudul
06a41708a7
Move TLS accesses close together.
2019-06-24 19:38:44 +02:00
Bartosz Taudul
5e6bc30bab
Support GL_EXT_disjoint_timer_query with EXT postfix.
2019-06-18 16:34:27 +02:00
Bartosz Taudul
3f914834b7
Hide rest of statics.
2019-02-19 19:33:37 +01:00
Bartosz Taudul
2421e05c27
Prevent direct access to s_profiler.
2019-02-19 18:38:08 +01:00
Bartosz Taudul
d865d1cc87
Disallow direct access to s_token.
2019-02-19 18:27:00 +01:00
Bartosz Taudul
9040953e13
Proper constructors are needed.
2019-02-18 14:57:46 +01:00
Bartosz Taudul
c9c4d2845a
Provide empty {Gpu,Vk}CtxScope classes if tracy is disabled.
...
This may be needed if some wrapping is done, abstracting the OpenGL and
Vulkan tracing.
2019-02-18 14:45:09 +01:00
Bartosz Taudul
537cee911c
Allow forcing call stack capture.
2018-12-13 14:43:37 +01:00
Bartosz Taudul
31c2ddb8ac
Rename client's SourceLocation to SourceLocationData.
2018-07-28 00:34:04 +02:00
Bartosz Taudul
dbdc530f1c
Named GPU zones.
2018-07-26 20:15:39 +02:00
Bartosz Taudul
3737e122cf
Of course, this can't work without stupid fuckery.
2018-07-26 19:59:55 +02:00
Bartosz Taudul
1111980f1f
Make source location names unique.
2018-07-26 19:22:19 +02:00
Arvid Gerstmann
6b87aecdce
Wrap concurrentqueue in tracy namespace
2018-07-13 20:01:27 +02:00
Bartosz Taudul
dacbfbd031
Support on-demand OpenGL tracing.
2018-07-11 17:10:53 +02:00
Bartosz Taudul
d0868b5004
Early exit in GpuCtx::Collect().
2018-07-11 17:10:34 +02:00
Bartosz Taudul
1f7246f6b9
Defer OpenGL/Vulkan context announce.
2018-07-11 15:00:30 +02:00
Bartosz Taudul
e5b133073c
Disable all tracing if TRACY_ON_DEMAND is defined.
2018-07-10 20:49:51 +02:00
Bartosz Taudul
a347ddd753
OpenGL needs query id translation.
2018-06-22 16:46:47 +02:00
Bartosz Taudul
af0c64c888
Remove GPU resync support.
...
The whole concept is not really reliable. And it forces CPU to GPU sync,
which is bad.
2018-06-22 16:34:51 +02:00
Bartosz Taudul
62267399bc
Send query ids of GPU times.
2018-06-22 16:19:53 +02:00
Bartosz Taudul
51c5f47ae2
Transfer query ids of GPU events.
2018-06-22 15:57:54 +02:00
Bartosz Taudul
55ddb64352
GPU context counter is now 8 bit.
2018-06-22 15:10:23 +02:00
Bartosz Taudul
3a885bb8fd
Support callstack collection for OpenGL GPU zones.
2018-06-22 02:13:35 +02:00
Bartosz Taudul
684ba455a2
Send GPU zone thread handle.
2018-06-17 18:55:38 +02:00
Bartosz Taudul
8495e5b094
Send timestamp period in GPU context announcement.
2018-06-17 18:21:15 +02:00
Bartosz Taudul
3b03e849f0
Harden client code against unaligned memory access.
...
There shouldn't be any changes in generated code on modern
architectures, as the memcpy will be reduced to a store/load operation
identical to the one generated with plain struct member access.
GetTime( cpu ) needs special handling, as the MSVC intrinsic for rdtscp
can't store cpu identifier in a register. Using intermediate variable
would cause store to stack, read from stack, store to the destination
address. Since rdtscp is only available on x86, which handles unaligned
stores without any problems, we can have one place with direct struct
member access.
2018-03-31 14:15:04 +02:00
Bartosz Taudul
71ad3c3b0c
Use named colors.
2017-11-25 15:33:10 +01:00
Bartosz Taudul
6008c85999
Move common variables out of the loop.
2017-11-25 13:41:12 +01:00
Bartosz Taudul
a515bf8878
Perform GPU to CPU resynchronization on each collect event.
2017-11-25 13:33:57 +01:00
Bartosz Taudul
0100266234
Use consistent names.
2017-11-25 13:14:16 +01:00