From 1a4862e84e4add3a88574d4461578da8fb333f32 Mon Sep 17 00:00:00 2001 From: Ahmed <36049290+AhmedAmraniAkdi@users.noreply.github.com> Date: Tue, 28 Oct 2025 15:50:08 +0000 Subject: [PATCH] Use a more genuine kernel for the command buffer device enqueue negative test (#2532) The current one has no arguments and does not enqueue any work. --- .../negative_command_nd_range_kernel.cpp | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/test_conformance/extensions/cl_khr_command_buffer/negative_command_nd_range_kernel.cpp b/test_conformance/extensions/cl_khr_command_buffer/negative_command_nd_range_kernel.cpp index d3ba72b4..c6e2262e 100644 --- a/test_conformance/extensions/cl_khr_command_buffer/negative_command_nd_range_kernel.cpp +++ b/test_conformance/extensions/cl_khr_command_buffer/negative_command_nd_range_kernel.cpp @@ -398,16 +398,17 @@ struct CommandNDRangeKernelWithKernelEnqueueCall : public BasicCommandBufferTest const char* kernel_str = R"( -__kernel void enqueue_call_func() { - } - -__kernel void enqueue_call_kernel() { -queue_t def_q = get_default_queue(); -ndrange_t ndrange = ndrange_1D(1); -enqueue_kernel(def_q, CLK_ENQUEUE_FLAGS_WAIT_KERNEL, ndrange, - ^{enqueue_call_func();}); - } -)"; + __kernel void enqueue_call_func(__global int* out_mem) { + out_mem[get_global_id(0)] = 0x1234; + } + + __kernel void enqueue_call_kernel(__global int* out_mem) { + queue_t def_q = get_default_queue(); + ndrange_t ndrange = ndrange_1D(1); + enqueue_kernel(def_q, CLK_ENQUEUE_FLAGS_WAIT_KERNEL, ndrange, + ^{enqueue_call_func(out_mem);}); + } + )"; std::string build_options = std::string(" ") + cl_std; error = create_single_kernel_helper(context, &program, &kernel, 1, @@ -443,7 +444,17 @@ enqueue_kernel(def_q, CLK_ENQUEUE_FLAGS_WAIT_KERNEL, ndrange, cl_int Run() override { - cl_int error = clCommandNDRangeKernelKHR( + cl_int error = CL_SUCCESS; + + clMemWrapper out_mem = + clCreateBuffer(context, CL_MEM_WRITE_ONLY, + num_elements * sizeof(cl_int), nullptr, &error); + test_error(error, "clCreateBuffer failed"); + + error = clSetKernelArg(kernel, 0, sizeof(cl_mem), &out_mem); + test_error(error, "clSetKernelArg failed"); + + error = clCommandNDRangeKernelKHR( command_buffer, nullptr, nullptr, kernel, 1, nullptr, &num_elements, nullptr, 0, nullptr, nullptr, nullptr);