Skip to content

Commit

Permalink
Command-buffer query for supported queue properties
Browse files Browse the repository at this point in the history
CTS test update to match OpenCL-Doc & OpenCL-Header PRs:
* KhronosGroup/OpenCL-Headers#265
* KhronosGroup/OpenCL-Docs#850

Still in draft as i've not yet updated an implementation to verify these test changes
  • Loading branch information
EwanC committed Jan 8, 2025
1 parent d058dfd commit 2af801e
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,14 @@ bool BasicCommandBufferTest::Skip()
"Unable to query "
"CL_DEVICE_COMMAND_BUFFER_REQUIRED_QUEUE_PROPERTIES_KHR");

cl_command_queue_properties supported_properties;
error = clGetDeviceInfo(
device, CL_DEVICE_COMMAND_BUFFER_SUPPORTED_QUEUE_PROPERTIES_KHR,
sizeof(supported_properties), &supported_properties, NULL);
test_error(error,
"Unable to query "
"CL_DEVICE_COMMAND_BUFFER_SUPPORTED_QUEUE_PROPERTIES_KHR");

cl_command_queue_properties queue_properties;
error = clGetCommandQueueInfo(queue, CL_QUEUE_PROPERTIES,
sizeof(queue_properties), &queue_properties,
Expand All @@ -70,7 +78,7 @@ bool BasicCommandBufferTest::Skip()
&& (capabilities & CL_COMMAND_BUFFER_CAPABILITY_SIMULTANEOUS_USE_KHR)
!= 0;
out_of_order_support =
capabilities & CL_COMMAND_BUFFER_CAPABILITY_OUT_OF_ORDER_KHR;
supported_properties & CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE;
device_side_enqueue_support =
(capabilities & CL_COMMAND_BUFFER_CAPABILITY_DEVICE_SIDE_ENQUEUE_KHR)
!= 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,10 +104,10 @@ int MakeAndRunTest(cl_device_id device, cl_context context,
cl_version extension_version =
get_extension_version(device, "cl_khr_command_buffer");

if (extension_version < CL_MAKE_VERSION(0, 9, 5))
if (extension_version < CL_MAKE_VERSION(0, 9, 6))
{

log_info("cl_khr_command_buffer version 0.9.5 or later is required "
log_info("cl_khr_command_buffer version 0.9.6 or later is required "
"to run "
"the test, skipping.\n ");
return TEST_SKIPPED_ITSELF;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,22 @@ struct CommandBufferProfiling : public BasicCommandBufferTest
//--------------------------------------------------------------------------
cl_int SetUp(int elements) override
{
cl_int error = CL_SUCCESS;

cl_command_queue_properties supported_properties;
cl_int error = clGetDeviceInfo(
device, CL_DEVICE_COMMAND_BUFFER_SUPPORTED_QUEUE_PROPERTIES_KHR,
sizeof(supported_properties), &supported_properties, NULL);
test_error(error,
"Unable to query "
"CL_DEVICE_COMMAND_BUFFER_SUPPORTED_QUEUE_PROPERTIES_KHR");

// CL_QUEUE_PROFILING_ENABLE is mandated minimum property returned by
// CL_DEVICE_COMMAND_BUFFER_SUPPORTED_QUEUE_PROPERTIES_KHR
if (!(supported_properties & CL_QUEUE_PROFILING_ENABLE))
{
return TEST_FAIL;
}

queue = clCreateCommandQueue(context, device, CL_QUEUE_PROFILING_ENABLE,
&error);
test_error(error, "clCreateCommandQueue failed");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -244,8 +244,8 @@ struct CreateCommandBufferQueueWithoutMinProperties

// CL_INCOMPATIBLE_COMMAND_QUEUE_KHR if any command-queue in queues is an
// out-of-order command-queue and the device associated with the command-queue
// does not support the CL_COMMAND_BUFFER_CAPABILITY_OUT_OF_ORDER_KHR
// capability.
// does not return CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE from
// CL_DEVICE_COMMAND_BUFFER_SUPPORTED_QUEUE_PROPERTIES_KHR
struct CreateCommandBufferDeviceDoesNotSupportOutOfOderQueue
: public BasicCommandBufferTest
{
Expand Down

0 comments on commit 2af801e

Please sign in to comment.