diff --git a/sycl/source/detail/adapter.hpp b/sycl/source/detail/adapter.hpp index 0e2a9f7230384..6b9bb35808831 100644 --- a/sycl/source/detail/adapter.hpp +++ b/sycl/source/detail/adapter.hpp @@ -66,8 +66,8 @@ class Adapter { /// \throw SYCL 2020 exception(errc) if ur_result is not UR_RESULT_SUCCESS template void checkUrResult(ur_result_t ur_result) const { - const char *message = nullptr; if (ur_result == UR_RESULT_ERROR_ADAPTER_SPECIFIC) { + const char *message = nullptr; int32_t adapter_error = 0; ur_result = call_nocheck( MAdapter, &message, &adapter_error); @@ -84,9 +84,7 @@ class Adapter { throw sycl::detail::set_ur_error( sycl::exception(sycl::make_error_code(errc), __SYCL_UR_ERROR_REPORT + - sycl::detail::codeToString(ur_result) + - (message ? "\n" + std::string(message) + "\n" - : std::string{})), + sycl::detail::codeToString(ur_result)), ur_result); } } diff --git a/sycl/source/detail/scheduler/scheduler.cpp b/sycl/source/detail/scheduler/scheduler.cpp index 2d3e7d17668af..2c16c4054faa3 100644 --- a/sycl/source/detail/scheduler/scheduler.cpp +++ b/sycl/source/detail/scheduler/scheduler.cpp @@ -188,9 +188,14 @@ void Scheduler::enqueueCommandForCG(EventImplPtr NewEvent, try { bool Enqueued = GraphProcessor::enqueueCommand( NewCmd, Lock, Res, ToCleanUp, NewCmd, Blocking); - if (!Enqueued && EnqueueResultT::SyclEnqueueFailed == Res.MResult) - throw exception(make_error_code(errc::runtime), - "Enqueue process failed."); + if (!Enqueued && EnqueueResultT::SyclEnqueueFailed == Res.MResult) { + throw sycl::detail::set_ur_error( + sycl::exception(sycl::make_error_code(errc::runtime), + std::string("Enqueue process failed.\n") + + __SYCL_UR_ERROR_REPORT + + sycl::detail::codeToString(Res.MErrCode)), + Res.MErrCode); + } } catch (...) { // enqueueCommand() func and if statement above may throw an exception, // so destroy required resources to avoid memory leak