@@ -314,26 +314,28 @@ fill_copy_args(detail::handler_impl *impl,
314314
315315handler::handler (std::shared_ptr<detail::queue_impl> Queue,
316316                 bool  CallerNeedsEvent)
317-     : impl(std::make_shared<detail::handler_impl>(Queue.get(),  nullptr , 
317+     : impl(std::make_shared<detail::handler_impl>(Queue.get(),
318318                                                  CallerNeedsEvent)),
319319      MQueue (Queue) {}
320320
321321#ifndef  __INTEL_PREVIEW_BREAKING_CHANGES
322322//  TODO: This function is not used anymore, remove it in the next
323323//  ABI-breaking window.
324- handler::handler (std::shared_ptr<detail::queue_impl> Queue,
325-                  std::shared_ptr<detail::queue_impl> PrimaryQueue,
326-                  std::shared_ptr<detail::queue_impl> SecondaryQueue,
327-                  bool  CallerNeedsEvent)
328-     : impl(std::make_shared<detail::handler_impl>(
329-           PrimaryQueue.get(), SecondaryQueue.get(), CallerNeedsEvent)),
324+ handler::handler (
325+     std::shared_ptr<detail::queue_impl> Queue,
326+     std::shared_ptr<detail::queue_impl> PrimaryQueue,
327+     [[maybe_unused]] std::shared_ptr<detail::queue_impl> SecondaryQueue,
328+     bool  CallerNeedsEvent)
329+     : impl(std::make_shared<detail::handler_impl>(PrimaryQueue.get(),
330+                                                   CallerNeedsEvent)),
330331      MQueue(Queue) {}
331332#endif 
332333
333334handler::handler (std::shared_ptr<detail::queue_impl> Queue,
334335                 detail::queue_impl *PrimaryQueue,
335-                  detail::queue_impl *SecondaryQueue, bool  CallerNeedsEvent)
336-     : impl(std::make_shared<detail::handler_impl>(PrimaryQueue, SecondaryQueue,
336+                  [[maybe_unused]] detail::queue_impl *SecondaryQueue,
337+                  bool  CallerNeedsEvent)
338+     : impl(std::make_shared<detail::handler_impl>(PrimaryQueue,
337339                                                  CallerNeedsEvent)),
338340      MQueue(std::move(Queue)) {}
339341
@@ -1775,14 +1777,6 @@ void handler::use_kernel_bundle(
17751777        " Context associated with the primary queue is different from the " 
17761778        " context associated with the kernel bundle"  );
17771779
1778-   if  (impl->MSubmissionSecondaryQueue  &&
1779-       impl->MSubmissionSecondaryQueue ->get_context () !=
1780-           ExecBundle.get_context ())
1781-     throw  sycl::exception (
1782-         make_error_code (errc::invalid),
1783-         " Context associated with the secondary queue is different from the " 
1784-         " context associated with the kernel bundle"  );
1785- 
17861780  setStateExplicitKernelBundle ();
17871781  setHandlerKernelBundle (detail::getSyclObjImpl (ExecBundle));
17881782}
@@ -1928,34 +1922,28 @@ void handler::verifyDeviceHasProgressGuarantee(
19281922}
19291923
19301924bool  handler::supportsUSMMemcpy2D () {
1931-   for  (detail::queue_impl *QueueImpl :
1932-        {impl->MSubmissionPrimaryQueue , impl->MSubmissionSecondaryQueue }) {
1933-     if  (QueueImpl &&
1934-         !checkContextSupports (QueueImpl->getContextImplPtr (),
1935-                               UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT))
1936-       return  false ;
1937-   }
1938-   return  true ;
1925+   auto  &PrimQueue = impl->MSubmissionPrimaryQueue ;
1926+   if  (PrimQueue)
1927+     return  checkContextSupports (PrimQueue->getContextImplPtr (),
1928+                                 UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT);
1929+   else 
1930+     //  Return true when handler_impl is constructed with a graph.
1931+     return  true ;
19391932}
19401933
19411934bool  handler::supportsUSMFill2D () {
1942-   for  (detail::queue_impl *QueueImpl : 
1943-        {impl-> MSubmissionPrimaryQueue , impl-> MSubmissionSecondaryQueue }) { 
1944-     if  (QueueImpl && ! checkContextSupports (QueueImpl ->getContextImplPtr (),
1945-                                             UR_CONTEXT_INFO_USM_FILL2D_SUPPORT)) 
1946-        return   false ; 
1947-   } 
1948-   return  true ;
1935+   auto  &PrimQueue = impl-> MSubmissionPrimaryQueue ; 
1936+   if  (PrimQueue) 
1937+     return   checkContextSupports (PrimQueue ->getContextImplPtr (),
1938+                                 UR_CONTEXT_INFO_USM_FILL2D_SUPPORT); 
1939+   else 
1940+      //  Return true when handler_impl is constructed with a graph. 
1941+      return  true ;
19491942}
19501943
19511944bool  handler::supportsUSMMemset2D () {
1952-   for  (detail::queue_impl *QueueImpl :
1953-        {impl->MSubmissionPrimaryQueue , impl->MSubmissionSecondaryQueue }) {
1954-     if  (QueueImpl && !checkContextSupports (QueueImpl->getContextImplPtr (),
1955-                                            UR_CONTEXT_INFO_USM_FILL2D_SUPPORT))
1956-       return  false ;
1957-   }
1958-   return  true ;
1945+   //  memset use the same UR check as fill2D.
1946+   return  supportsUSMFill2D ();
19591947}
19601948
19611949id<2 > handler::computeFallbackKernelBounds (size_t  Width, size_t  Height) {
0 commit comments