@@ -160,7 +160,9 @@ void launch_grouped(const queue &q, range<1> r, range<1> size, KernelType &&k,
160160 // TODO The handler-less path does not support kernel function properties yet.
161161 if constexpr (!(ext::oneapi::experimental::detail::
162162 HasKernelPropertiesGetMethod<
163- const KernelType &>::value)) {
163+ const KernelType &>::value) &&
164+ !(detail::KernelLambdaHasKernelHandlerArgT<
165+ KernelType, sycl::nd_item<1 >>::value)) {
164166 detail::submit_kernel_direct_parallel_for (
165167 q, ext::oneapi::experimental::empty_properties_t {},
166168 nd_range<1 >(r, size), std::forward<KernelType>(k));
@@ -178,7 +180,9 @@ void launch_grouped(const queue &q, range<2> r, range<2> size, KernelType &&k,
178180 // TODO The handler-less path does not support kernel function properties yet.
179181 if constexpr (!(ext::oneapi::experimental::detail::
180182 HasKernelPropertiesGetMethod<
181- const KernelType &>::value)) {
183+ const KernelType &>::value) &&
184+ !(detail::KernelLambdaHasKernelHandlerArgT<
185+ KernelType, sycl::nd_item<2 >>::value)) {
182186 detail::submit_kernel_direct_parallel_for (
183187 q, ext::oneapi::experimental::empty_properties_t {},
184188 nd_range<2 >(r, size), std::forward<KernelType>(k));
@@ -196,7 +200,9 @@ void launch_grouped(const queue &q, range<3> r, range<3> size, KernelType &&k,
196200 // TODO The handler-less path does not support kernel function properties yet.
197201 if constexpr (!(ext::oneapi::experimental::detail::
198202 HasKernelPropertiesGetMethod<
199- const KernelType &>::value)) {
203+ const KernelType &>::value) &&
204+ !(detail::KernelLambdaHasKernelHandlerArgT<
205+ KernelType, sycl::nd_item<3 >>::value)) {
200206 detail::submit_kernel_direct_parallel_for (
201207 q, ext::oneapi::experimental::empty_properties_t {},
202208 nd_range<3 >(r, size), std::forward<KernelType>(k));
@@ -316,7 +322,9 @@ void launch_task(const sycl::queue &q, const KernelType &k,
316322 sycl::detail::code_location::current ()) {
317323 if constexpr (!(ext::oneapi::experimental::detail::
318324 HasKernelPropertiesGetMethod<
319- const KernelType &>::value)) {
325+ const KernelType &>::value) &&
326+ !(detail::KernelLambdaHasKernelHandlerArgT<KernelType,
327+ void >::value)) {
320328 detail::submit_kernel_direct_single_task (
321329 q, ext::oneapi::experimental::empty_properties_t {}, k, codeLoc);
322330 } else {
0 commit comments