COMPMID-994 : Check cl_arm_printf is supported in the CLScheduler

Introduced static and dynamic checks before using printf vendor extension features (callbacks and buffers)

Change-Id: Ib38cb3d8591bbb482d02a41918f4b52efde75267
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/126751
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
diff --git a/arm_compute/core/CL/CLHelpers.h b/arm_compute/core/CL/CLHelpers.h
index d239a61..c718265 100644
--- a/arm_compute/core/CL/CLHelpers.h
+++ b/arm_compute/core/CL/CLHelpers.h
@@ -134,6 +134,16 @@
  * @return the highest OpenCL version supported
  */
 CLVersion get_cl_version(const cl::Device &device);
+
+/** Helper function to check whether a given extension is supported
+ *
+ * @param[in] device         A CL device
+ * @param[in] extension_name Name of the extension to be checked
+ *
+ * @return True if the extension is supported
+ */
+bool device_supports_extension(const cl::Device &device, const char *extension_name);
+
 /** Helper function to check whether the cl_khr_fp16 extension is supported
  *
  * @param[in] device A CL device