Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/wolfpld/tracy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
authorPilzschaf <pilzschaf@t-online.de>2022-09-09 19:40:17 +0300
committerPilzschaf <pilzschaf@t-online.de>2022-09-09 19:40:17 +0300
commit41a1ac203b5fc54bb96bbbaa2c76a3b4cc370132 (patch)
treebfd9ba2644567e791d9ce2fbdd062550b8f14841 /public
parenteee6cb06fa54e6262312231ff747e8d4d2357c7b (diff)
Added gpu calibration to the C API
Diffstat (limited to 'public')
-rw-r--r--public/client/TracyProfiler.cpp21
-rw-r--r--public/tracy/TracyC.h8
2 files changed, 29 insertions, 0 deletions
diff --git a/public/client/TracyProfiler.cpp b/public/client/TracyProfiler.cpp
index e0783825..55b92d3b 100644
--- a/public/client/TracyProfiler.cpp
+++ b/public/client/TracyProfiler.cpp
@@ -4219,6 +4219,16 @@ TRACY_API void ___tracy_emit_gpu_context_name( const struct ___tracy_gpu_context
TracyLfqCommitC;
}
+TRACY_API void ___tracy_emit_gpu_calibration( const struct ___tracy_gpu_calibration_data data )
+{
+ TracyLfqPrepareC( tracy::QueueType::GpuCalibration );
+ tracy::MemWrite( &item->gpuCalibration.cpuTime, tracy::Profiler::GetTime() );
+ tracy::MemWrite( &item->gpuCalibration.gpuTime, data.gpuTime );
+ tracy::MemWrite( &item->gpuCalibration.cpuDelta, data.cpuDelta );
+ tracy::MemWrite( &item->gpuCalibration.context, data.context );
+ TracyLfqCommitC;
+}
+
TRACY_API void ___tracy_emit_gpu_zone_begin_alloc_serial( const struct ___tracy_gpu_zone_begin_data data )
{
auto item = tracy::Profiler::QueueSerial();
@@ -4279,6 +4289,17 @@ TRACY_API void ___tracy_emit_gpu_context_name_serial( const struct ___tracy_gpu_
tracy::Profiler::QueueSerialFinish();
}
+TRACY_API void ___tracy_emit_gpu_calibration_serial( const struct ___tracy_gpu_calibration_data data )
+{
+ auto item = tracy::Profiler::QueueSerial();
+ tracy::MemWrite( &item->hdr.type, tracy::QueueType::GpuCalibration );
+ tracy::MemWrite( &item->gpuCalibration.cpuTime, tracy::Profiler::GetTime() );
+ tracy::MemWrite( &item->gpuCalibration.gpuTime, data.gpuTime );
+ tracy::MemWrite( &item->gpuCalibration.cpuDelta, data.cpuDelta );
+ tracy::MemWrite( &item->gpuCalibration.context, data.context );
+ tracy::Profiler::QueueSerialFinish();
+}
+
TRACY_API int ___tracy_connected( void )
{
return tracy::GetProfiler().IsConnected();
diff --git a/public/tracy/TracyC.h b/public/tracy/TracyC.h
index ffcca5a1..2500bbb4 100644
--- a/public/tracy/TracyC.h
+++ b/public/tracy/TracyC.h
@@ -136,6 +136,12 @@ struct ___tracy_gpu_context_name_data {
uint16_t len;
};
+struct ___tracy_gpu_calibration_data {
+ int64_t gpuTime;
+ int64_t cpuDelta;
+ uint8_t context;
+};
+
// Some containers don't support storing const types.
// This struct, as visible to user, is immutable, so treat it as if const was declared here.
typedef /*const*/ struct ___tracy_c_zone_context TracyCZoneCtx;
@@ -164,12 +170,14 @@ TRACY_API void ___tracy_emit_gpu_zone_end( const struct ___tracy_gpu_zone_end_da
TRACY_API void ___tracy_emit_gpu_time( const struct ___tracy_gpu_time_data );
TRACY_API void ___tracy_emit_gpu_new_context( const struct ___tracy_gpu_new_context_data );
TRACY_API void ___tracy_emit_gpu_context_name( const struct ___tracy_gpu_context_name_data );
+TRACY_API void ___tracy_emit_gpu_calibration( const struct ___tracy_gpu_calibration_data );
TRACY_API void ___tracy_emit_gpu_zone_begin_alloc_serial( const struct ___tracy_gpu_zone_begin_data );
TRACY_API void ___tracy_emit_gpu_zone_end_serial( const struct ___tracy_gpu_zone_end_data data );
TRACY_API void ___tracy_emit_gpu_time_serial( const struct ___tracy_gpu_time_data );
TRACY_API void ___tracy_emit_gpu_new_context_serial( const struct ___tracy_gpu_new_context_data );
TRACY_API void ___tracy_emit_gpu_context_name_serial( const struct ___tracy_gpu_context_name_data );
+TRACY_API void ___tracy_emit_gpu_calibration_serial(const struct ___tracy_gpu_calibration_data );
TRACY_API int ___tracy_connected(void);