diff --git a/sycl/source/backend.cpp b/sycl/source/backend.cpp index 8e9d9e94a3223..495c123f7d008 100644 --- a/sycl/source/backend.cpp +++ b/sycl/source/backend.cpp @@ -141,6 +141,8 @@ make_kernel_bundle(pi_native_handle NativeHandle, const context &TargetContext, pi::PiProgram PiProgram = nullptr; Plugin.call( NativeHandle, ContextImpl->getHandleRef(), !KeepOwnership, &PiProgram); + if (Plugin.getBackend() == backend::opencl) + Plugin.call(PiProgram); std::vector ProgramDevices; size_t NumDevices = 0; diff --git a/sycl/source/detail/device_image_impl.hpp b/sycl/source/detail/device_image_impl.hpp index 719563d456e1f..f04fea1b8c774 100644 --- a/sycl/source/detail/device_image_impl.hpp +++ b/sycl/source/detail/device_image_impl.hpp @@ -230,6 +230,8 @@ class device_image_impl { const auto &ContextImplPtr = detail::getSyclObjImpl(MContext); const plugin &Plugin = ContextImplPtr->getPlugin(); + if (Plugin.getBackend() == backend::opencl) + Plugin.call(MProgram); pi_native_handle NativeProgram = 0; Plugin.call(MProgram, &NativeProgram);