Cycles: oneAPI: Remove separate context workaround

The minimum supported driver version for Blender 5.1 and
5.2 already includes a fix for the underlying issue, so
there is no need to keep the workaround that isolated each
device into a separate DPC++ context when multiple
descrete GPUs or Level-Zero platforms were detected.
It is now removed.

Ref #138384

Pull Request: https://projects.blender.org/blender/blender/pulls/156249
This commit is contained in:
Nikita Sirgienko 2026-03-25 00:10:23 +01:00 • committed by Gitea
parent d15d20d51e
commit ecdb7fdcaf

View file

@ -1047,23 +1047,8 @@ bool OneapiDevice::create_queue(SyclQueue *&external_queue,
return false;
}
sycl::queue *created_queue = nullptr;
/* In case if we are detecting several L0 platforms being utilised, we need to isolate
* each device in its own DPC++ context. Otherwise we are likely to experience failures and
* crashes, like it was in Blender bug report #138384. Performance impact of this workaround is
* unmeasurable, as we cannot use both GPUs without it at the moment without this workaround.
* In the future, it will be removed.
*/
if (*multiple_level_zero_platforms_detected_pointer == false) {
created_queue = new sycl::queue(devices[device_index], sycl::property::queue::in_order());
}
else {
sycl::context device_context(devices[device_index]);
created_queue = new sycl::queue(
device_context, devices[device_index], sycl::property::queue::in_order());
LOG_TRACE << "Separate context was generated for the new queue, as several available SYCL "
"devices were detected";
}
sycl::queue *created_queue = new sycl::queue(devices[device_index],
sycl::property::queue::in_order());
external_queue = reinterpret_cast<SyclQueue *>(created_queue);
# ifdef WITH_EMBREE_GPU