From 86e0c236a144c46161c8113d3301f6f238dd5236 Mon Sep 17 00:00:00 2001 From: Romaric Jodin Date: Tue, 7 Jan 2025 18:33:29 +0100 Subject: [PATCH] =?UTF-8?q?fix=20negative=5Fcreate=5Fcommand=5Fbuffer=5Fde?= =?UTF-8?q?vice=5Fdoes=5Fnot=5Fsupport=5Fout=5Fof=5Ford=E2=80=A6=20(#2207)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit …er_queue Test should be skipped if device does not support out of order queue or if device supports out of order command buffer. Fix #2204 --- .../cl_khr_command_buffer/basic_command_buffer.cpp | 5 +++-- .../extensions/cl_khr_command_buffer/basic_command_buffer.h | 1 + .../cl_khr_command_buffer/negative_command_buffer_create.cpp | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/test_conformance/extensions/cl_khr_command_buffer/basic_command_buffer.cpp b/test_conformance/extensions/cl_khr_command_buffer/basic_command_buffer.cpp index 97dcb9da41..c5dc9010c1 100644 --- a/test_conformance/extensions/cl_khr_command_buffer/basic_command_buffer.cpp +++ b/test_conformance/extensions/cl_khr_command_buffer/basic_command_buffer.cpp @@ -27,7 +27,7 @@ BasicCommandBufferTest::BasicCommandBufferTest(cl_device_id device, cl_command_queue queue) : CommandBufferTestBase(device), context(context), queue(nullptr), num_elements(0), simultaneous_use_support(false), - out_of_order_support(false), + out_of_order_support(false), queue_out_of_order_support(false), // try to use simultaneous path by default simultaneous_use_requested(true), // due to simultaneous cases extend buffer size @@ -57,7 +57,8 @@ bool BasicCommandBufferTest::Skip() sizeof(queue_properties), &queue_properties, NULL); test_error(error, "Unable to query CL_QUEUE_PROPERTIES"); - + queue_out_of_order_support = + queue_properties & CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE; // Query if device supports simultaneous use cl_device_command_buffer_capabilities_khr capabilities; diff --git a/test_conformance/extensions/cl_khr_command_buffer/basic_command_buffer.h b/test_conformance/extensions/cl_khr_command_buffer/basic_command_buffer.h index efe5bb14fd..8c2e273613 100644 --- a/test_conformance/extensions/cl_khr_command_buffer/basic_command_buffer.h +++ b/test_conformance/extensions/cl_khr_command_buffer/basic_command_buffer.h @@ -75,6 +75,7 @@ struct BasicCommandBufferTest : CommandBufferTestBase // Device support query results bool simultaneous_use_support; bool out_of_order_support; + bool queue_out_of_order_support; bool device_side_enqueue_support; // user request for simultaneous use diff --git a/test_conformance/extensions/cl_khr_command_buffer/negative_command_buffer_create.cpp b/test_conformance/extensions/cl_khr_command_buffer/negative_command_buffer_create.cpp index f6401cead6..538a9eef46 100644 --- a/test_conformance/extensions/cl_khr_command_buffer/negative_command_buffer_create.cpp +++ b/test_conformance/extensions/cl_khr_command_buffer/negative_command_buffer_create.cpp @@ -289,8 +289,9 @@ struct CreateCommandBufferDeviceDoesNotSupportOutOfOderQueue { BasicCommandBufferTest::Skip(); - // If device supports out of order queues test should be skipped - return out_of_order_support != 0; + // If device does not support out of order queue or if device supports + // out of order command buffer test should be skipped + return !queue_out_of_order_support || out_of_order_support; } clCommandQueueWrapper out_of_order_queue;