@@ -30,13 +30,9 @@ provider_counter::provider_counter(ur_platform_handle_t platform,
3030 assert (flags & EVENT_FLAGS_COUNTER);
3131
3232 // Try to get the counter-based event extension function
33- auto result =
34- ZE_CALL_NOCHECK (zeDriverGetExtensionFunctionAddress,
35- (platform->ZeDriver , " zexCounterBasedEventCreate2" ,
36- (void **)&this ->eventCreateFunc ));
37- if (result != ZE_RESULT_SUCCESS) {
38- throw ur_result_t (ze2urResult (result));
39- }
33+ ZE2UR_CALL_THROWS (zeDriverGetExtensionFunctionAddress,
34+ (platform->ZeDriver , " zexCounterBasedEventCreate2" ,
35+ (void **)&this ->eventCreateFunc ));
4036
4137 ZE2UR_CALL_THROWS (zelLoaderTranslateHandle,
4238 (ZEL_HANDLE_CONTEXT, context->getZeHandle (),
@@ -107,10 +103,10 @@ std::unique_ptr<event_provider> createProvider(ur_platform_handle_t platform,
107103 return std::make_unique<provider_counter>(platform, context, queueType,
108104 device, flags);
109105 } catch (...) {
110- // If counter-based events are not supported, fall back to normal events
111- // Remove the counter flag as the normal provider doesn't support it
112- event_flags_t normalFlags = flags & ~EVENT_FLAGS_COUNTER;
113- return std::make_unique<provider_normal>(context, queueType, normalFlags );
106+ // If the new counter-based API (zexCounterBasedEventCreate2) is not
107+ // available, fall back to normal provider which support counter-based
108+ // events using the old API
109+ return std::make_unique<provider_normal>(context, queueType, flags );
114110 }
115111 }
116112
0 commit comments