rusticl/queue: add clSetCommandQueueProperty

The CL CTS started to call this API, luckily we don't have to actually
implement it, because we don't intent to support CL 1.0 only devices in
the first place (probably).

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30575>
(cherry picked from commit cd2dc4f70c)
This commit is contained in:
Karol Herbst 2024-08-08 19:35:51 +02:00 committed by Eric Engestrom
parent 34467ad0be
commit a891ed8dcf
3 changed files with 18 additions and 2 deletions

View file

@ -2654,7 +2654,7 @@
"description": "rusticl/queue: add clSetCommandQueueProperty",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -32,7 +32,7 @@ pub static DISPATCH: cl_icd_dispatch = cl_icd_dispatch {
clRetainCommandQueue: Some(cl_retain_command_queue),
clReleaseCommandQueue: Some(cl_release_command_queue),
clGetCommandQueueInfo: Some(cl_get_command_queue_info),
clSetCommandQueueProperty: None,
clSetCommandQueueProperty: Some(cl_set_command_queue_property),
clCreateBuffer: Some(cl_create_buffer),
clCreateImage2D: Some(cl_create_image_2d),
clCreateImage3D: Some(cl_create_image_3d),

View file

@ -41,6 +41,22 @@ impl CLInfo<cl_command_queue_info> for cl_command_queue {
}
}
#[cl_entrypoint(clSetCommandQueueProperty)]
fn set_command_queue_property(
_command_queue: cl_command_queue,
_properties: cl_command_queue_properties,
_enable: cl_bool,
_old_properties: *mut cl_command_queue_properties,
) -> CLResult<()> {
// clSetCommandQueueProperty may unconditionally return an error if no devices in the context
// associated with command_queue support modifying the properties of a command-queue. Support
// for modifying the properties of a command-queue is required only for OpenCL 1.0 devices.
//
// CL_INVALID_OPERATION if no devices in the context associated with command_queue support
// modifying the properties of a command-queue.
Err(CL_INVALID_OPERATION)
}
fn valid_command_queue_properties(properties: cl_command_queue_properties) -> bool {
let valid_flags = cl_bitfield::from(
CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE