@@ -53,8 +53,8 @@ struct MetricContextImp : public MetricContext {
5353 Device &getDevice () override ;
5454 MetricsLibrary &getMetricsLibrary () override ;
5555 MetricEnumeration &getMetricEnumeration () override ;
56- MetricTracer * getMetricTracer () override ;
57- void setMetricTracer (MetricTracer *pMetricTracer ) override ;
56+ MetricStreamer * getMetricStreamer () override ;
57+ void setMetricStreamer (MetricStreamer *pMetricStreamer ) override ;
5858 void setMetricsLibrary (MetricsLibrary &metricsLibrary) override ;
5959 void setMetricEnumeration (MetricEnumeration &metricEnumeration) override ;
6060
@@ -72,7 +72,7 @@ struct MetricContextImp : public MetricContext {
7272 std::unique_ptr<MetricEnumeration> metricEnumeration = nullptr ;
7373 std::unique_ptr<MetricsLibrary> metricsLibrary = nullptr ;
7474 MetricGroupDomains metricGroupDomains;
75- MetricTracer *pMetricTracer = nullptr ;
75+ MetricStreamer *pMetricStreamer = nullptr ;
7676 bool useCompute = false ;
7777};
7878
@@ -118,10 +118,10 @@ MetricsLibrary &MetricContextImp::getMetricsLibrary() { return *metricsLibrary;
118118
119119MetricEnumeration &MetricContextImp::getMetricEnumeration () { return *metricEnumeration; }
120120
121- MetricTracer *MetricContextImp::getMetricTracer () { return pMetricTracer ; }
121+ MetricStreamer *MetricContextImp::getMetricStreamer () { return pMetricStreamer ; }
122122
123- void MetricContextImp::setMetricTracer (MetricTracer *pMetricTracer ) {
124- this ->pMetricTracer = pMetricTracer ;
123+ void MetricContextImp::setMetricStreamer (MetricStreamer *pMetricStreamer ) {
124+ this ->pMetricStreamer = pMetricStreamer ;
125125}
126126
127127void MetricContextImp::setMetricsLibrary (MetricsLibrary &metricsLibrary) {
@@ -146,7 +146,7 @@ ze_result_t
146146MetricContextImp::activateMetricGroupsDeferred (const uint32_t count,
147147 zet_metric_group_handle_t *phMetricGroups) {
148148
149- // Activation: postpone until zetMetricTracerOpen or zeCommandQueueExecuteCommandLists
149+ // Activation: postpone until zetMetricStreamerOpen or zeCommandQueueExecuteCommandLists
150150 // Deactivation: execute immediately.
151151 return phMetricGroups ? metricGroupDomains.activateDeferred (count, phMetricGroups)
152152 : metricGroupDomains.deactivate ();
@@ -250,7 +250,7 @@ bool MetricGroupDomains::activateMetricGroupDeferred(const zet_metric_group_hand
250250
251251 // Associate metric group with domain and mark it as not active.
252252 // Activation will be performed during zeCommandQueueExecuteCommandLists (query)
253- // or zetMetricTracerOpen (time based sampling).
253+ // or zetMetricStreamerOpen (time based sampling).
254254 domains[domain].first = hMetricGroup;
255255 domains[domain].second = false ;
256256
@@ -269,7 +269,7 @@ ze_result_t MetricGroupDomains::activate() {
269269 ZET_METRIC_GROUP_SAMPLING_TYPE_EVENT_BASED;
270270
271271 // Activate only event based metric groups.
272- // Time based metric group will be activated during zetMetricTracerOpen .
272+ // Time based metric group will be activated during zetMetricStreamerOpen .
273273 if (metricGroupEventBased && !metricGroupActive) {
274274
275275 metricGroupActive = activateEventMetricGroup (hMetricGroup);
@@ -347,11 +347,26 @@ ze_result_t metricGroupGet(zet_device_handle_t hDevice, uint32_t *pCount, zet_me
347347 phMetricGroups);
348348}
349349
350+ ze_result_t metricStreamerOpen (zet_device_handle_t hDevice, zet_metric_group_handle_t hMetricGroup,
351+ zet_metric_streamer_desc_t *pDesc, ze_event_handle_t hNotificationEvent,
352+ zet_metric_streamer_handle_t *phMetricStreamer) {
353+
354+ return MetricStreamer::open (hDevice, hMetricGroup, *pDesc, hNotificationEvent, phMetricStreamer);
355+ }
356+
350357ze_result_t metricTracerOpen (zet_device_handle_t hDevice, zet_metric_group_handle_t hMetricGroup,
351358 zet_metric_tracer_desc_t *pDesc, ze_event_handle_t hNotificationEvent,
352359 zet_metric_tracer_handle_t *phMetricTracer) {
353360
354- return MetricTracer::open (hDevice, hMetricGroup, *pDesc, hNotificationEvent, phMetricTracer);
361+ zet_metric_streamer_handle_t *phMetricStreamer = reinterpret_cast <zet_metric_streamer_handle_t *>(phMetricTracer);
362+ zet_metric_streamer_desc_t metricStreamerDesc = {};
363+
364+ metricStreamerDesc.notifyEveryNReports = pDesc->notifyEveryNReports ;
365+ metricStreamerDesc.samplingPeriod = pDesc->samplingPeriod ;
366+ metricStreamerDesc.stype = ZET_STRUCTURE_TYPE_METRIC_STREAMER_DESC;
367+ metricStreamerDesc.pNext = nullptr ;
368+
369+ return MetricStreamer::open (hDevice, hMetricGroup, metricStreamerDesc, hNotificationEvent, phMetricStreamer);
355370}
356371
357372} // namespace L0
0 commit comments