rusticl: Enable out-of-order execution

Ought to work, let's find out.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12029
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31672>
This commit is contained in:
Adam Jackson
2024-09-27 15:47:29 -04:00
committed by Marge Bot
parent 1798597637
commit 514ba16d95
2 changed files with 9 additions and 8 deletions
+3 -3
View File
@@ -262,9 +262,9 @@ impl CLInfo<cl_device_info> for cl_device_id {
CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE => cl_prop::<cl_uint>(0),
CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE => cl_prop::<cl_uint>(0),
CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES => cl_prop::<cl_command_queue_properties>(0),
CL_DEVICE_QUEUE_ON_HOST_PROPERTIES => {
cl_prop::<cl_command_queue_properties>(CL_QUEUE_PROFILING_ENABLE.into())
}
CL_DEVICE_QUEUE_ON_HOST_PROPERTIES => cl_prop::<cl_command_queue_properties>(
(CL_QUEUE_PROFILING_ENABLE | CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE).into(),
),
CL_DEVICE_REFERENCE_COUNT => cl_prop::<cl_uint>(1),
CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL => {
cl_prop::<cl_device_unified_shared_memory_capabilities_intel>(0)
+6 -5
View File
@@ -71,13 +71,14 @@ fn supported_command_queue_properties(
dev: &Device,
properties: cl_command_queue_properties,
) -> bool {
let profiling = cl_bitfield::from(CL_QUEUE_PROFILING_ENABLE);
let valid_flags = profiling;
if properties & !valid_flags != 0 {
return false;
let mut valid_flags = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE;
if dev.caps.has_timestamp {
valid_flags |= CL_QUEUE_PROFILING_ENABLE;
}
if properties & profiling != 0 && !dev.caps.has_timestamp {
// add on device queue properties here once supported and called from `clCreateCommandQueueWithProperties`
if properties & !cl_bitfield::from(valid_flags) != 0 {
return false;
}