From 35b8db35c657c8ed14ba564e2fb65490cf0a2c4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Jastrz=C4=99bski?= Date: Tue, 30 May 2023 17:43:58 +0200 Subject: [PATCH] Add check for CL_COMMAND_BUFFER_STATE_EXECUTABLE_KHR after completion. (#1740) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add check for CL_COMMAND_BUFFER_STATE_EXECUTABLE_KHR after completion. Added check for state CL_COMMAND_BUFFER_STATE_EXECUTABLE_KHR in state info tests. Signed-off-by: Paweł Jastrzębski * Add wait for event. Wait for event to guarantee that a command-buffer has finished executing by this point. Signed-off-by: Paweł Jastrzębski * Add new event to wait for. Signed-off-by: Paweł Jastrzębski --------- Signed-off-by: Paweł Jastrzębski --- .../command_buffer_get_command_buffer_info.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/test_conformance/extensions/cl_khr_command_buffer/command_buffer_get_command_buffer_info.cpp b/test_conformance/extensions/cl_khr_command_buffer/command_buffer_get_command_buffer_info.cpp index 3ce410c0..d46b2888 100644 --- a/test_conformance/extensions/cl_khr_command_buffer/command_buffer_get_command_buffer_info.cpp +++ b/test_conformance/extensions/cl_khr_command_buffer/command_buffer_get_command_buffer_info.cpp @@ -240,9 +240,10 @@ struct CommandBufferGetCommandBufferInfo : public BasicCommandBufferTest clEventWrapper trigger_event = clCreateUserEvent(context, &error); test_error(error, "clCreateUserEvent failed"); + clEventWrapper execute_event; // enqueued command buffer blocked on user event error = clEnqueueCommandBufferKHR(0, nullptr, command_buffer, 1, - &trigger_event, nullptr); + &trigger_event, &execute_event); test_error(error, "clEnqueueCommandBufferKHR failed"); // verify pending state @@ -255,6 +256,13 @@ struct CommandBufferGetCommandBufferInfo : public BasicCommandBufferTest test_error(signal_error, "clSetUserEventStatus failed"); + error = clWaitForEvents(1, &execute_event); + test_error(error, "Unable to wait for execute event"); + + // verify executable state + error = verify_state(CL_COMMAND_BUFFER_STATE_EXECUTABLE_KHR); + test_error(error, "verify_state failed"); + return CL_SUCCESS; }