summaryrefslogtreecommitdiff
path: root/src/cl_device_id.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cl_device_id.c')
-rw-r--r--src/cl_device_id.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/cl_device_id.c b/src/cl_device_id.c
index 6cba2b57..76549a43 100644
--- a/src/cl_device_id.c
+++ b/src/cl_device_id.c
@@ -1377,6 +1377,10 @@ cl_get_device_info(cl_device_id device,
src_ptr = device->driver_version;
src_size = device->driver_version_sz;
break;
+ case CL_DEVICE_SUB_GROUP_SIZES_INTEL:
+ src_ptr = device->sub_group_sizes;
+ src_size = device->sub_group_sizes_sz;
+ break;
default:
return CL_INVALID_VALUE;
@@ -1520,6 +1524,7 @@ cl_get_kernel_workgroup_info(cl_kernel kernel,
DECL_FIELD(COMPILE_WORK_GROUP_SIZE, kernel->compile_wg_sz)
DECL_FIELD(PRIVATE_MEM_SIZE, kernel->stack_size)
case CL_KERNEL_GLOBAL_WORK_SIZE:
+ {
dimension = cl_check_builtin_kernel_dimension(kernel, device);
if ( !dimension ) return CL_INVALID_VALUE;
if (param_value_size_ret != NULL)
@@ -1537,6 +1542,18 @@ cl_get_kernel_workgroup_info(cl_kernel kernel,
return CL_SUCCESS;
}
return CL_SUCCESS;
+ }
+ case CL_KERNEL_SPILL_MEM_SIZE_INTEL:
+ {
+ if (param_value && param_value_size < sizeof(cl_ulong))
+ return CL_INVALID_VALUE;
+ if (param_value_size_ret != NULL)
+ *param_value_size_ret = sizeof(cl_ulong);
+ if (param_value)
+ *(cl_ulong*)param_value = (cl_ulong)interp_kernel_get_scratch_size(kernel->opaque);
+ return CL_SUCCESS;
+ }
+
default:
return CL_INVALID_VALUE;
};
@@ -1620,6 +1637,16 @@ cl_get_kernel_subgroup_info(cl_kernel kernel,
}
break;
}
+ case CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL:
+ {
+ if (param_value && param_value_size < sizeof(size_t))
+ return CL_INVALID_VALUE;
+ if (param_value_size_ret != NULL)
+ *param_value_size_ret = sizeof(size_t);
+ if (param_value)
+ *(size_t*)param_value = interp_kernel_get_simd_width(kernel->opaque);
+ return CL_SUCCESS;
+ }
default:
return CL_INVALID_VALUE;
};