diff --git a/sycl/source/detail/sycl_mem_obj_t.cpp b/sycl/source/detail/sycl_mem_obj_t.cpp index 009f910be440c..374f6f1247097 100644 --- a/sycl/source/detail/sycl_mem_obj_t.cpp +++ b/sycl/source/detail/sycl_mem_obj_t.cpp @@ -205,13 +205,16 @@ void SYCLMemObjT::detachMemoryObject( // For L0 context could be created with two ownership strategies - keep and // transfer. If user keeps ownership - we could not enable deferred buffer // release due to resource release conflict. + // MRecord->MCurContext == nullptr means that last submission to buffer is on + // host (host task), this execution doesn't depend on device context and fully + // controlled by RT. In this case deferred buffer destruction is allowed. bool InteropObjectsUsed = !MOwnNativeHandle || (MInteropContext && !MInteropContext->isOwnedByRuntime()); - if (MRecord && MRecord->MCurContext && - MRecord->MCurContext->isOwnedByRuntime() && !InteropObjectsUsed && - (!MHostPtrProvided || MIsInternal)) { + if (MRecord && + (!MRecord->MCurContext || MRecord->MCurContext->isOwnedByRuntime()) && + !InteropObjectsUsed && (!MHostPtrProvided || MIsInternal)) { bool okToDefer = GlobalHandler::instance().isOkToDefer(); if (okToDefer) Scheduler::getInstance().deferMemObjRelease(Self); diff --git a/sycl/test-e2e/BFloat16/bfloat16_vec.cpp b/sycl/test-e2e/BFloat16/bfloat16_vec.cpp index bca68c2e6d290..549dc13ed76c6 100644 --- a/sycl/test-e2e/BFloat16/bfloat16_vec.cpp +++ b/sycl/test-e2e/BFloat16/bfloat16_vec.cpp @@ -10,9 +10,6 @@ // TODO enable opaque pointers support on CPU. // UNSUPPORTED: cpu || accelerator -// https://github.com/intel/llvm/issues/14397 -// UNSUPPORTED: windows && gpu-intel-gen12 - // RUN: %{build} -o %t.out // RUN: %{run} %t.out // RUN: %if preview-breaking-changes-supported %{ %{build} -fpreview-breaking-changes -o %t2.out %} diff --git a/sycl/test-e2e/Basic/stream/blocking_pipes_and_stream.cpp b/sycl/test-e2e/Basic/stream/blocking_pipes_and_stream.cpp index 12e2c062999d3..d61f1f69234a3 100644 --- a/sycl/test-e2e/Basic/stream/blocking_pipes_and_stream.cpp +++ b/sycl/test-e2e/Basic/stream/blocking_pipes_and_stream.cpp @@ -1,4 +1,4 @@ -// REQUIRES: accelerator, TEMPORARY_DISABLED +// REQUIRES: accelerator // RUN: %{build} -o %t.out // RUN: %{run} %t.out | FileCheck %s diff --git a/sycl/test-e2e/Basic/stream/stream.cpp b/sycl/test-e2e/Basic/stream/stream.cpp index 04680d969841e..fe3429cffad2b 100644 --- a/sycl/test-e2e/Basic/stream/stream.cpp +++ b/sycl/test-e2e/Basic/stream/stream.cpp @@ -9,9 +9,6 @@ // //===----------------------------------------------------------------------===// -// https://github.com/intel/llvm/issues/14397 -// UNSUPPORTED: windows && gpu-intel-gen12 - #include #include diff --git a/sycl/test-e2e/Complex/sycl_complex_stream_test.cpp b/sycl/test-e2e/Complex/sycl_complex_stream_test.cpp index 1140ef603d336..d8d645f6ac7dc 100644 --- a/sycl/test-e2e/Complex/sycl_complex_stream_test.cpp +++ b/sycl/test-e2e/Complex/sycl_complex_stream_test.cpp @@ -1,8 +1,5 @@ // DEFINE: %{mathflags} = %if cl_options %{/clang:-fno-finite-math-only%} %else %{-fno-finite-math-only%} -// https://github.com/intel/llvm/issues/14397 -// UNSUPPORTED: windows && gpu-intel-gen12 - // RUN: %{build} -fsycl-device-code-split=per_kernel %{mathflags} -o %t.out // RUN: %{run} %t.out